Ext.BLANK_IMAGE_URL = '../resources/skin/images/default/s.gif';	
Ext.QuickTips.init();

	Ext.form.Myimg = Ext.extend(Ext.BoxComponent, {   
	    onRender : function(ct, position){   
	      
	        if(!this.el){   
	            this.el = document.createElement('img');               
	            this.el.src = this.src;  
	            
	            if(this.forId){  
	                this.el.setAttribute('htmlFor', this.forId);   
	            }  
	             	
	        }   
	        Ext.form.Label.superclass.onRender.call(this, ct, position);   
	    } ,
	    /*加载验证码图片方法，加上随机数参数让图片刷新*/  
	    loadCodeImg: function(){   
	        this.el.set({src:this.src+'?id='+Math.random()});   
	    }  
	});   
	  
	Ext.reg('myimg', Ext.form.Myimg);   
  
 	
	Login = function(){   
	    var win,   
	        form,
            dynamicform,
            myimg,
            btn,
	        submitUrl = 'j_spring_security_check';  
            
            
	    function onSubmit(){ 
	    	   var tabpanel=Ext.getCmp('tabPanel');
	    	   var tabtext=Ext.getCmp('tabPanel').getActiveTab().title;
	    	   //判断登录模式
	    	  // alert(tabtext);
	    	   if(tabtext=='普通登录'){
				        form.getForm().submit({   
				           
				            waitMsg: '正在提交数据，请等待...',   
				           // reset: true,   
				            success: Login.Success,  
				            failure:function(retForm,retAction){
				            	var o=retAction.result;
				            	//alert("o.errors.reason="+o.errors.reason);
				            	//刷新验证码
				            	myimg.loadCodeImg();
				            	var e=''; 
				            	if(o==null || o==undefined ){ 
				            	     e='服务器发生异常，'; 
				            	} else{
				            	    if(o.errors==null || o.errors==undefined){
				            	       e='服务器发生异常，未返回错误信息！'; 
				            	    }else{
				            	       e=o.errors.reason;
				            	    }
				            	}
				            	
				            	Ext.Msg.alert('警告',e+' 登录失败! ');
				            	 
				            },   
				            scope: Login   
				        });
		         }else if(tabtext=='动态密码登录'){
		                   dynamicform.getForm().submit({  
				            waitMsg: '正在提交数据，请等待...',   
				           // reset: true,   
				            success: Login.Success,  
				            failure:function(retForm,retAction){
				            	var o=retAction.result;
				            	//alert("o.errors.reason="+o.errors.reason);
				            	
				            	var e=''; 
				            	if(o==null || o==undefined ){ 
				            	     e='服务器发生异常，'; 
				            	} else{
				            	    if(o.errors==null || o.errors==undefined){
				            	       e='服务器发生异常，未返回错误信息！'; 
				            	    }else{
				            	       e=o.errors.reason;
				            	    }
				            	}
				            	Ext.Msg.alert('警告',e+' 登录失败! ');
				            	 
				            },   
				            scope: Login   
				        });
		         }
	       
	    }   
	    function onRest(){   
	           var tabpanel=Ext.getCmp('tabPanel');
	    	   var tabtext=Ext.getCmp('tabPanel').getActiveTab().title;
	    	   //判断登录模式
	    	  // alert(tabtext);
	    	   if(tabtext=='普通登录'){
	    	       window.location ='rtnpwd.jsp';
	    	   }else if(tabtext=='动态密码登录'){
	    	        alert("警告");
	    	   }
	       
	    }  	 
	     function onHelp(){             
	    	       window.location ='./help/dynpwd.html';
	    	  	       
	    }  	   
	    return{    
	        Init:function(){   
	           // Ext.QuickTips.init();   
	          
		    var logoPanel = new Ext.Panel({   
		                baseCls: 'x-plain',   
		                id: 'login-logo',   
		                region: 'center'  
		            });  
		            
		    /*
			 * 普通登录表单
			 */	        
		     myimg=new Ext.form.Myimg({
                                        src:'validateCode.jsp',   
					                    width:100,   
					                    height:22,   
					                    itemCls:'validatecode', //向左浮动,处理控件横排      
					                    clearCls:'allow-float' 
                                     });     
            
                                        	        
	            form = new Ext.form.FormPanel({   
	            	        method :'POST', 
	            	        standardSubmit :false,
			                baseCls: 'x-plain',   
			                labelWidth:120,   
			                //region: 'south',   
			                url: submitUrl,   
			                defaultType: 'textfield',   
			                frame: false,   
			                height: 150,   
			                id: 'login-form',   
			                items: [{   
				                    fieldLabel: '帐号',   
				                    name: 'j_username',
				                    allowBlank:false,
				                    blankText : '帐号不能为空'
				                },{   
				                    fieldLabel: '密码',   
				                    inputType: 'password',   
				                    name: 'j_password',
				                    allowBlank:false,
				                    blankText : '密码不能为空'
				                },{   
				                    fieldLabel:'验证码',   
				                    name:'imgCode',   
				                    itemCls:'validatecodenone', //向左边浮动,处理控件横排      
				                    clearCls:'allow-float',
				                    allowBlank:false,
				                    blankText:'验证码不能为空!' 
				                },myimg] 
			            });   
			           
	                    //form = formPanel.getForm(); 
	                    /*
		            formPanel.on('render', function(){   
		                var f = form.findField('userName');   
		                   
		                if(f){   
		                    f.focus();   
		                }   
		            }, this, {delay: 200});   
		            */   
		      var formlayout = new Ext.Panel({ 
						        region:'center',
						        height: 150,   
						         frame:true, 
						         border : false,
						        layout : 'fit', 
						        items :  form
						    });
 		    
		     var layout = {
                                        title:'普通登录',  
		                        layout : 'border',
		                        items : formlayout
			           };	
		/*
		 * 动态密码登录表单
		 */	             
		btn=new Ext.Button({ 
				    text:'获取手机动态密码', 
                    itemCls:'validatecode', //向左浮动,处理控件横排      
                    clearCls:'allow-float',  
				    handler: function() {
				       var username=Ext.getCmp('username').getValue() ;
				       var mobile=Ext.getCmp('mobile').getValue() ;
				       if(username==null || username==''){
				           Ext.MessageBox.alert('警告','帐号不能为空！');
				           return;
				       } 
				       if(mobile==null || mobile==''){
				           Ext.MessageBox.alert('警告','手机号不能为空！');
				           return;
				       } 
				       
				      //动态发送用户密码
				       Ext.lib.Ajax.request(   
						                    'POST',   
						                    'dynlogin.action?j_username='+username+'&mobile='+mobile,
						                    {   
						                        success:function(response){  
						                            
						                             var json = response.responseText; 
									                 try {
											            var res = Ext.util.JSON.decode(json);   
											            var o = res.result;
											            var mm=res.message;
											            if(!o){
											                Ext.Msg.alert("错误", mm); 
											            }else{
											                Ext.Msg.alert("信息", mm); 
											                
											            }
											         }catch(e){
											             alert(e); 
											         }
											         
						                        },   
						                        failure:function(){   
						                            Ext.Msg.alert("错误", "与后台联系的时候出现了问题");   
						                        }   
						                    },   
						                    ''
						                );   
				    }
				});
		
		dynamicform = new Ext.form.FormPanel({   
	            	        method :'POST',
	            	        standardSubmit :false,
		                baseCls: 'x-plain',   
		                labelWidth:120,   
		                //region: 'south',   
		                 
		                url: submitUrl,   
		                defaultType: 'textfield',   
		                frame: false,   
		                height: 150,   
		                id: 'dyn-login-form',   
		                items: [{   
			                    fieldLabel: '帐号', 
			                    id: 'username',  
			                    name: 'j_username',
			                    allowBlank:false,
			                    blankText : '帐号不能为空',
			                     maxLength: 20
			                },{   
			                    xtype:'numberfield',
			                    fieldLabel: '手机号码',
			                    id: 'mobile',    
			                    name: 'mobile', 
			                    allowBlank:false,
			                    blankText : '手机号码不能为空',
			                    maxLength: 15
			                },{   
			                    fieldLabel:'动态密码',   
			                    name:'j_password', 
			                    inputType: 'password',      
			                    allowBlank:false,
			                    itemCls:'validatecodenone', //向左边浮动,处理控件横排      
			                    clearCls:'allow-float', 
			                    blankText:'动态密码不能为空!' 
			                },btn,{xtype:"hidden",name:'from',value:'dynamic'}] 
		            });   	           
			var dynamicformlayout = new Ext.Panel({ 
						        region:'center',
						        height: 150,   
						         frame:true, 
						         border : false,
						        layout : 'fit', 
						        items :  dynamicform
						    });
 		    
		     var dynamiclayout = {
                                        title:'动态密码登录',  
		                        layout : 'border',
		                        items : dynamicformlayout
			           };	  		              
			var tab=new Ext.TabPanel({ 
		                                            region:'center',
               			 			    id:"tabPanel",
		                                            border:false,
				                            deferredRender:false,   
						            activeTab:0,   
						            //layoutOnTabChange: true,
						           //enableTabScroll:true,  
						            tabPosition:'top', 
						           // margins: '0 0 0 0', 
		                            items :  [
					                       layout,
					                       dynamiclayout,
					                       {
								                title:'关于',
								                layout:'',
								                html: '云计算自服务系统 V2.0 Build 20090915.10.01 <hr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;云计算自服务系统是一个为方便用户管理自己所租用主机的WEB应用程序，用户可以通过自服务系统，远程管理和维护已购买的产品和服务。同时，自服务平台还实现了跨数据中心的主机管理。',
								                defaults: {width: 230}
								            }
								    ]
		                		});  
		      var tablayout = new Ext.Panel({ 
						        region:'south',
						        height: 150,   
						         frame:true, 
						         border : false,
						        layout : 'fit', 
						        items :  tab
						    });           		  
		     var alllayout = {  
		                        layout : 'border',
		                        region:'center',
		                        items : [logoPanel,tablayout]
			           };        		       
		      win = new Ext.Window({   
		           	//renderTo: Ext.getBody(),
		                buttons: [{   
		                    handler: onSubmit,   
		                    scope: Login,   
		                    text: '登 录'  
		                }, {
		                    text : '忘记密码？',
		                    handler : onRest
		                }, {
		                    text : '帮助',
		                    handler : onHelp
		                }
		                
		                ],   
		                buttonAlign: 'right', 
		                plain: true,
		                modal:true,
		                collapsible: true,
		                maximizable:false,
		                draggable: true,
		                closable: false,
		                resizable:false,
		                animateTarget:document.body, 
		                height: 360,   
		                id: 'login-win',   
		                keys: {   
		                    key: [13], // enter key   
		                    fn: onSubmit,   
		                    scope:this  
		                },   
		                layout: 'border',   
		                minHeight: 290,   
		                minWidth: 530,    
		                items: alllayout,   
		                iconCls: 'login', 
		                title: '用户登录',   
		                width: 530  
		            });   	      
		            
		            win.show();     
		           //清除加载提示		  
			   setTimeout(function(){
			        Ext.get('loading').remove();
			        Ext.get('loading-mask').fadeOut({remove:true});
			    }, 250); 	               
		            
		        },   
	           
		        Success: function(f,a){ 
		        	 
		            if(a && a.result && a.result.success){   
		                win.destroy(true);   
		                // get the path   
		                var path=a.result.targetUrl;
		                /*
		                var path = window.location.pathname,   
		                    path = path.substring(0, path.lastIndexOf('/'));   
		                    alert(path);
		                     alert(a.result.targetUrl);
		                    path += a.result.targetUrl;   
		                 */  
		                // set the cookie   
		               // set_cookie('sessionId', a.result.sessionId, '', path, '', '' );   
		               // set_cookie('memberName', a.result.name, '', path, '', '' );   
		               // set_cookie('memberGroup', a.result.group, '', path, '', '' );   
		                // redirect the window  
		             
		                window.location =path;   
		            }else{
		                  Ext.Msg.alert('警告','登录失败,请重新登录!');  
		            }   
		        }   
	    };   
	}();   

Ext.onReady(Login.Init, Login, true);