﻿SongSoft.registerNamespace('Guoan.Client');
  
  var evt = evt||SongSoft.Client.Event;
  var ajax = ajax||SongSoft.Web.Ajax;
  var dom = dom||SongSoft.Client.Dom;
  var wnd = wnd||SongSoft.Client.Window;
  var validator = validator||SongSoft.Client.Validator;
  
  Guoan.Client.TitleUserLogin = {
    
    dlgContainer: null,
    loginInfo: null,
    titleInfo: null,

    loginName: null,
    password: null,
    remember: null,
    
    loginName_1: null,
    password_1: null,
    remember_1: null,
      
    login: function(e){
      var el=e.srcElement||e.target;
      var isTitleLogin=(el.id == 'btnLogin_1');
      if(!this._validate(isTitleLogin)) return;
      
      var paramStr=this._getParameterString(isTitleLogin);
      ajax.post('/login.aspx', paramStr, lg._onDataArrival, lg);
      return false;
    },
    titleLogin: function(){
      wnd.showDlg(this.dlgContainer);
    },
    logout: function(){
      ajax.post('/logout.aspx', '', lg._onDataArrival, lg);
    },
    closeDlg: function(){
      wnd.closeDlg(this.dlgContainer);
    },
    _validate: function(isTitleLogin){
      var success=true;
      var input=isTitleLogin?this.loginName_1 : this.loginName;
      if(validator.isEmptyStr(input.value)){
        success=false;
        alert('请输入登录名');
        input.focus();
        input.select();
      }
      return success;
    },
    _getParameterString: function(isTitleLogin){
     var plist=[];
     plist[plist.length]='name='+(isTitleLogin?this.loginName_1.value : this.loginName.value);
     plist[plist.length]='pwd='+(isTitleLogin?this.password_1.value:this.password.value);
     plist[plist.length]='rem='+(isTitleLogin?this.remember_1.checked:this.remember.checked);
     return plist.join('&');
    },
    init: function(){  
      this.loginInfo=dom.$('loginInfo');
      this.titleInfo=dom.$('titleInfo');  
      
      ajax.get('/ajax/getuserinfo.aspx', '', lg._onDataArrival, lg);
   },
    _internalInit: function(){
      this.loginName_1=dom.$('loginName_1');
      this.password_1=dom.$('pwd_1');
      this.remember_1=dom.$('remember_1');
      
      
      this.dlgContainer = dom.$('dlgContainer');
      this.loginName=dom.$('loginName');
      this.password=dom.$('pwd');
      this.remember=dom.$('remember');            
      
      this.addEvent();
    },
    addEvent: function(){
      evt.addListener('btnLogin','click',lg.login, lg,true);
      evt.addListener('btnLogout','click',lg.logout, lg,true);
      evt.addListener('btnTitleLogin', 'click', lg.titleLogin, lg, true);
      evt.addListener('btnLogin_1','click',lg.login, lg,true);
      evt.addListener('btnClose','click',lg.closeDlg, lg,true);
    },
    removeEvent: function(){
      var btnLogout=dom.$('btnLogout');
      if(btnLogout) evt.removeListener('btnLogout','click',lg.logout);
      var btnLogout=dom.$('btnLogin');
      if(btnLogout) evt.removeListener('btnLogin','click',lg.login);
      var btnTitleLogin=dom.$('btnTitleLogin');
      if(btnTitleLogin) evt.removeListener(btnTitleLogin, 'click', lg.titleLogin);
      var btnLogin_1=dom.$('btnLogin_1');
      evt.addListener(btnLogin_1,'click',lg.login, lg,true);
      var btnClose=dom.$('btnClose');
      evt.addListener(btnClose,'click',lg.closeDlg, lg,true);
    },
    // @static
    _onDataArrival: function(){
      var oThis = this.callbackArgs;
      if( this.isSuccess ) {
        var re=/^<error([^>]*)>(.+)<\/error>$/i;
        var m=this.responseText.match(re);
        
        if(!m){
          oThis.removeEvent();
          // 标题用户信息
          var titleInfoNode=this.getElementById('titleInfo');
          if(titleInfoNode && oThis.titleInfo) oThis.titleInfo.innerHTML=this.getNodeInnerHTML(titleInfoNode);
          
          // 登录框信息
          var loginInfoNode=this.getElementById('logininfo');
          if(loginInfoNode && oThis.loginInfo) oThis.loginInfo.innerHTML=this.getNodeInnerHTML(loginInfoNode);
          wnd.closeDlg(oThis.dlgContainer);
          oThis._internalInit();
        }
        else { // 错误
          alert(m[2]);
        }
      }
    }
  }
  var lg = Guoan.Client.TitleUserLogin;
  evt.addListener(window,'load',lg.init, lg,true);
          