reg_check_php_rpc_url="http://web.4399.com/user/reg_check_rpc.php";
bValidUserName=false;
bValidPassword=false;
bValidEmail=false;
bValidCode=false;
bCheckEmailTime=0;
rpc=null;
function GetQueryString($){
  var A=new RegExp("(^|&)"+$+"=([^&]*)(&|$)","i"),_=window.location.search.substr(1).match(A);
  if(_!=null){
    return unescape(_[2]);
  }
  return null;
}
function Trim(){
  return this.replace(/\s+$|^\s+/g,"");
}
String.prototype.Trim=Trim;
function getObject($){
  if(document.getElementById){
    return document.getElementById($);
  }else {
    if(document.all){
      return document.all[$];
    }else {
      if(document.layers){
        return document.layers[$];
      }
    }
  }
}
function getObjValue(objID){
  if(getObject(objID)!=undefined && getObject(objID)!=null){
    return getObject(objID).value.Trim();
  }else {
    return "";
  }
}
function checkLoginName($){
  var _=/^[a-zA-Z0-9]{3,20}$/gi;
  if(!_.test(getObjValue("login_name").Trim())){
  	//ID_wrong
    show("u_info","帐号名格式不对","red","msgx msgC");
    if($=="1"){	
      show("a_info","帐号名格式不对","red","msgx msgC");
      has_error();
    }
    bValidUserName=false;
  }else {
    show("u_info","Loading...","black","loading");
    rpc.chk_username(getObjValue("login_name").Trim(),function(C,A,_,B){
      if(C instanceof PHPRPC_Error){
      	 //Network_wrong
        show("a_info","网络异常","black","msgx msgD");
        bValidUserName=false;
      }else {
        if(_=="user_no_standard"){
        	//ID_wrong
          show("u_info","帐号名格式不对","red","msgx msgC");
          $("uinfo").addClassName("msgx");
          if($=="1"){
            show("a_info","帐号名格式不对","red","msgx msgC");
            $("uinfo").addClassName("msgx");

            has_error();
          }
          bValidUserName=false;
        }else {
        	//ID_had_reg
          if(_=="user_exist"){
            show("u_info","帐号名已被注册","red","msgx msgD");
            if($=="1"){
              show("a_info","帐号名已被注册","red","msgx msgD");
              has_error();
            }
            bValidUserName=false;
          }else {
            if(_=="user_true"){
              show("u_info","&nbsp;","green","msgx msgB");
              bValidUserName=true;
              if($==1){
                checkForm();
              }
            }
          }
        }
      }
    });
  }
}
function show(A,$,B,_){
  if(typeof (A)=="string"){
    A=getObject(A);
  }
  if(A){
    A.innerHTML=$;
    A.className=_;
  }
}
function beforeSubmit($){
  var D=GetQueryString("cid"),_=window.location.search;
  if(_=="?youhua"){
    D="1210";
  }
  if(D==null){
    DD=getObjValue("cid");
    if(DD!=null){
      D=DD;
    }else {
      D=0;
    }
  }
  try{
    if($.cid){
      $.cid.value=D;
    }else {
      var C=document.createElement("input");
      C.name="cid";
      C.value=D;
      C.type="hidden";
      $.appendChild(C);
    }
    if(!$.referer){
      C=document.createElement("input");
      C.name="referer";
      var A="";
      if(document.referrer){
        A=document.referrer;
      }else {
        A=window.location.href;
      }
      C.value=A;
      C.type="hidden";
      $.appendChild(C);
    }
    var B=GetQueryString("unionid");
    if(B>0){
      C=document.createElement("input");
      C.name="unionid";
      C.value=B;
      C.type="hidden";
      $.appendChild(C);
    }
    var F=GetQueryString("uid");
    if(F>0){
      C=document.createElement("input");
      C.name="uid";
      C.value=F;
      C.type="hidden";
      $.appendChild(C);
    }
  }
  catch(E){
  }
  return true;
}
function checkPassword(A,$){
  var B=getObjValue("login_password").Trim(),_=getObjValue("relogin_pwd").Trim();
  bValidPassword=false;
  if(B.length==0){
    show("w_info","\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a","red","msgx msgC");
    if(A=="1"){
      show("a_info","\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a","red","msgx msgC");
      has_error();
    }
    bValidPassword=false;
  }else {
    if(B.length>30){
      show("w_info","\u5bc6\u7801\u4e0d\u80fd\u8d85\u8fc730\u4f4d","red","msgx msgD");
      if(A=="1"){
        show("a_info","\u5bc6\u7801\u4e0d\u80fd\u8d85\u8fc730\u4f4d","red","msgx msgD");
        has_error();
      }
      bValidPassword=false;
    }else {
      if(B.length<6){
        show("w_info","\u5bc6\u7801\u4e0d\u80fd\u5c11\u4e8e6\u4f4d","red","msgx msgC");
        if(A=="1"){
          show("a_info","\u5bc6\u7801\u4e0d\u80fd\u5c11\u4e8e6\u4f4d","red","msgx msgD");
          has_error();
        }
        bValidPassword=false;
      }else {
        if(B!=_){
          show("w_info","&nbsp;","green","msgx msgB");
          bValidPassword=false;
          if($&&_==""){
          }else {
            show("p_info","\u4e24\u6b21\u5bc6\u7801\u4e0d\u4e00\u81f4","red","msgx msgD");
            if(A=="1"){
              show("a_info","\u4e24\u6b21\u5bc6\u7801\u4e0d\u4e00\u81f4","red","msgx msgD");
              has_error();
            }
            bValidPassword=false;
          }
        }else {
          if(B==_){
            show("w_info","&nbsp;","green","msgx msgB");
            show("p_info","&nbsp;","green","msgx msgB");
            bValidPassword=true;
            if(A=="1"){
              checkForm();
            }
          }
        }
      }
    }
  }
}
function checkEmail($){
  if(bCheckEmailTime<=5){
    var _=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi,A=getObjValue("email").Trim();
    if(A.length>25){
      show("e_info","E-mail\u5730\u5740\u6700\u957f\u4e3a25\u4f4d","red","msgx msgD");
      if($=="1"){
        show("a_info","E-mail\u5730\u5740\u6700\u957f\u4e3a25\u4f4d","red","msgx msgC");
        has_error();
      }
      bValidEmail=false;
    }else {
      bCheckEmailTime++;
      if(!_.test(A)){
        show("e_info","\u90ae\u7bb1\u683c\u5f0f\u4e0d\u5bf9","red","msgx msgD");
        if($=="1"){
          show("a_info","\u90ae\u7bb1\u683c\u5f0f\u4e0d\u5bf9","red","msgx msgC");
          has_error();
        }
        bValidEmail=false;
      }else {
        show("e_info","Loading...","black","loading");
        rpc.chk_email(getObjValue("email").Trim(),function(A,B,_,C){
          if(A instanceof PHPRPC_Error){
            show("a_info","\u7f51\u7edc\u5f02\u5e38","black","msgx msgD");
            bValidEmail=false;
          }else {
            if(_=="email_no_standard"){
              show("e_info","\u90ae\u7bb1\u683c\u5f0f\u4e0d\u5bf9","red","msgx msgC");
              if($=="1"){
                show("a_info","\u90ae\u7bb1\u683c\u5f0f\u4e0d\u5bf9","red","msgx msgC");
                has_error();
              }
              bValidEmail=false;
            }else {
              if(_=="email_exist"){
                show("e_info","\u90ae\u7bb1\u5df2\u88ab\u4f7f\u7528","red","msgx msgD");
                if($=="1"){
                  show("a_info","\u90ae\u7bb1\u5df2\u88ab\u4f7f\u7528","red","msgx msgC");
                  has_error();
                }
                bValidEmail=false;
              }else {
                if(_=="email_true"){
                  show("e_info","&nbsp;","green","msgx msgB");
                  bValidEmail=true;
                  if($=="1"){
                    checkForm();
                  }
                }
              }
            }
          }
        });
      }
    }
  }else {
    bValidEmail=true;
  }
}
function checkCode($){
  var _=getObjValue("chk_code").Trim();
  bValidCode=false;
  if(_.length==0){
    if($=="1"){
      show("a_info","\u9a8c\u8bc1\u7801\u4e0d\u80fd\u4e3a\u7a7a!","red","msgx msgC");
      has_error();
    }
    show("code_info","\u9a8c\u8bc1\u7801\u4e0d\u80fd\u4e3a\u7a7a!","black","msgx msgD");
    bValidCode=false;
  }else {
    rpc.chk_code(getObjValue("chk_code").Trim(),function(C,A,_,B){
      if(C instanceof PHPRPC_Error){
        show("code_info","\u7f51\u7edc\u5f02\u5e38","black","msgx msgB");
        bValidCode=false;
      }else {
        if(_=="no_standard"){
          show("code_info","\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\uff01","red","msgx msgC");
          if($=="1"){
            show("a_info","\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e\uff01","red","msgx msgD");
            has_error();
          }
          bValidCode=false;
        }else {
          show("code_info","&nbsp;","green","msgx msgB");
          if($=="1"){
            checkForm();
          }
          bValidCode=true;
        }
      }
    });
  }
}

function reChangeClass($,newName){
	o = getObject($)
	o.className = newName;
}
function newrpc(){
  rpc=new PHPRPC_Client(reg_check_php_rpc_url,["chk_username","chk_email","chk_code"]);
}
function attackInputEvent(){
  var $=getObject("login_name");
  if($){
    $.onkeydown=function(){
      if(rpc==null){
        newrpc();
      }
      bValidUserName=false;
    };
    $.onblur=function(){
      if(rpc==null){
        newrpc();
      }
	$.className="";
      checkLoginName(0);
    };
  }
  var A=getObject("login_password");
  if(A){
    A.onkeydown=function(){
      if(rpc==null){
        newrpc();
      }
      bValidPassword=false;
    };
    A.onblur=function(){
      if(rpc==null){
        newrpc();
      }
        A.className="";
      checkPassword(0,this);
    };
  }
  var B=getObject("relogin_pwd");
  if(B){
    B.onkeydown=function(){
      if(rpc==null){
        newrpc();
      }
      bValidPassword=false;
    };
    B.onblur=function(){
      if(rpc==null){
        newrpc();
      }
        B.className="";
      checkPassword(0);
    };
  }
  var C=getObject("email");
  if(C){
    C.onkeydown=function(){
      if(rpc==null){
        newrpc();
      }
      bValidEmail=false;
    };
    C.onblur=function(){
      if(rpc==null){
        newrpc();
      }
        C.className="";
      checkEmail(0);
    };
  }
  var _=getObject("chk_code");
  if(_){
    _.onkeydown=function(){
      if(rpc==null){
        newrpc();
      }
      bValidCode=false;
    };
    _.onblur=function(){
      if(rpc==null){
        newrpc();
      }
        _.className="";
      checkCode(0);
    };
  }
    window.onload=function(){
      $.focus();
    };
}
function checkForm($){
  if(bValidCode){
    if(bValidUserName){
      if(bValidPassword){
        if(bValidEmail){
          show("a_info","&nbsp;","red","prompt");
          document.myform.submit();
          var _=getObject("Submit");
          if(_){
            _.disabled="true";
          }
          return true;
        }else {
          checkEmail(1);
        }
      }else {
        checkPassword(1);
      }
    }else {
      checkLoginName(1);
    }
  }else {
    checkCode(1);
  }
  return false;
}
function has_error(){
  if(!bValidCode){
    getObject("chk_code").select();
  }else {
    if(!bValidUserName){
      getObject("login_name").focus();
    }else {
      if(!bValidPassword){
        getObject("login_password").focus();
      }else {
        if(!bValidEmail){
          getObject("email").focus();
        }
      }
    }
  }
}
function codeflush(){
  var $=getObject("c_code");
  if($){
    $.src="./validateImg.php?t="+Math.random();
  }
}
String.prototype.md5=function(){
  var I=function(B,A){
    var $=(B&65535)+(A&65535),_=(B>>16)+(A>>16)+($>>16);
    return (_<<16)|($&65535);
  },P=function(_,$){
    return (_<<$)|(_>>>(32-$));
  },F=function(B,C,A,D,_,$){
    return I(P(I(I(C,B),I(D,$)),_),A);
  },O=function(D,B,C,$,E,A,_){
    return F((B&C)|((~B)&$),D,B,E,A,_);
  },Q=function(D,B,C,$,E,A,_){
    return F((B&$)|(C&(~$)),D,B,E,A,_);
  },E=function(D,B,C,$,E,A,_){
    return F(B^C^$,D,B,E,A,_);
  },D=function(D,B,C,$,E,A,_){
    return F(C^(B|(~$)),D,B,E,A,_);
  },G=function(_){
    var A=_.length<<2,$=new Array(A);
    for(var B=0;B<A;B++){
      $[B]=String.fromCharCode((_[B>>2]>>>((B%4)<<3))&255);
    }
    return $.join("");
  },$=function(_){
    var A=_.length,$=new Array();
    for(var B=0;B<A;B++){
      $[B>>2]|=(_.charCodeAt(B)&255)<<((B%4)<<3);
    }
    return $;
  },R=$(this),H=this.length<<3;
  R[H>>5]|=128<<((H)%32);
  R[(((H+64)>>>9)<<4)+14]=H;
  var C=1732584193,A=-271733879,B=-1732584194,_=271733878;
  for(var J=0;J<R.length;J+=16){
    var N=C,M=A,L=B,K=_;
    C=O(C,A,B,_,R[J+0],7,-680876936);
    _=O(_,C,A,B,R[J+1],12,-389564586);
    B=O(B,_,C,A,R[J+2],17,606105819);
    A=O(A,B,_,C,R[J+3],22,-1044525330);
    C=O(C,A,B,_,R[J+4],7,-176418897);
    _=O(_,C,A,B,R[J+5],12,1200080426);
    B=O(B,_,C,A,R[J+6],17,-1473231341);
    A=O(A,B,_,C,R[J+7],22,-45705983);
    C=O(C,A,B,_,R[J+8],7,1770035416);
    _=O(_,C,A,B,R[J+9],12,-1958414417);
    B=O(B,_,C,A,R[J+10],17,-42063);
    A=O(A,B,_,C,R[J+11],22,-1990404162);
    C=O(C,A,B,_,R[J+12],7,1804603682);
    _=O(_,C,A,B,R[J+13],12,-40341101);
    B=O(B,_,C,A,R[J+14],17,-1502002290);
    A=O(A,B,_,C,R[J+15],22,1236535329);
    C=Q(C,A,B,_,R[J+1],5,-165796510);
    _=Q(_,C,A,B,R[J+6],9,-1069501632);
    B=Q(B,_,C,A,R[J+11],14,643717713);
    A=Q(A,B,_,C,R[J+0],20,-373897302);
    C=Q(C,A,B,_,R[J+5],5,-701558691);
    _=Q(_,C,A,B,R[J+10],9,38016083);
    B=Q(B,_,C,A,R[J+15],14,-660478335);
    A=Q(A,B,_,C,R[J+4],20,-405537848);
    C=Q(C,A,B,_,R[J+9],5,568446438);
    _=Q(_,C,A,B,R[J+14],9,-1019803690);
    B=Q(B,_,C,A,R[J+3],14,-187363961);
    A=Q(A,B,_,C,R[J+8],20,1163531501);
    C=Q(C,A,B,_,R[J+13],5,-1444681467);
    _=Q(_,C,A,B,R[J+2],9,-51403784);
    B=Q(B,_,C,A,R[J+7],14,1735328473);
    A=Q(A,B,_,C,R[J+12],20,-1926607734);
    C=E(C,A,B,_,R[J+5],4,-378558);
    _=E(_,C,A,B,R[J+8],11,-2022574463);
    B=E(B,_,C,A,R[J+11],16,1839030562);
    A=E(A,B,_,C,R[J+14],23,-35309556);
    C=E(C,A,B,_,R[J+1],4,-1530992060);
    _=E(_,C,A,B,R[J+4],11,1272893353);
    B=E(B,_,C,A,R[J+7],16,-155497632);
    A=E(A,B,_,C,R[J+10],23,-1094730640);
    C=E(C,A,B,_,R[J+13],4,681279174);
    _=E(_,C,A,B,R[J+0],11,-358537222);
    B=E(B,_,C,A,R[J+3],16,-722521979);
    A=E(A,B,_,C,R[J+6],23,76029189);
    C=E(C,A,B,_,R[J+9],4,-640364487);
    _=E(_,C,A,B,R[J+12],11,-421815835);
    B=E(B,_,C,A,R[J+15],16,530742520);
    A=E(A,B,_,C,R[J+2],23,-995338651);
    C=D(C,A,B,_,R[J+0],6,-198630844);
    _=D(_,C,A,B,R[J+7],10,1126891415);
    B=D(B,_,C,A,R[J+14],15,-1416354905);
    A=D(A,B,_,C,R[J+5],21,-57434055);
    C=D(C,A,B,_,R[J+12],6,1700485571);
    _=D(_,C,A,B,R[J+3],10,-1894986606);
    B=D(B,_,C,A,R[J+10],15,-1051523);
    A=D(A,B,_,C,R[J+1],21,-2054922799);
    C=D(C,A,B,_,R[J+8],6,1873313359);
    _=D(_,C,A,B,R[J+15],10,-30611744);
    B=D(B,_,C,A,R[J+6],15,-1560198380);
    A=D(A,B,_,C,R[J+13],21,1309151649);
    C=D(C,A,B,_,R[J+4],6,-145523070);
    _=D(_,C,A,B,R[J+11],10,-1120210379);
    B=D(B,_,C,A,R[J+2],15,718787259);
    A=D(A,B,_,C,R[J+9],21,-343485551);
    C=I(C,N);
    A=I(A,M);
    B=I(B,L);
    _=I(_,K);
  }
  return G([C,A,B,_]);
};
String.prototype.toUTF8=function(){
  var $=this;
  if($.match(/^[\x00-\x7f]*$/)!=null){
    return $.toString();
  }
  var E,D,C,B,A,_;
  E=[];
  B=$.length;
  for(D=0,C=0;D<B;D++,C++){
    A=$.charCodeAt(D);
    if(A<=127){
      E[C]=$.charAt(D);
    }else {
      if(A<=2047){
        E[C]=String.fromCharCode(192|(A>>>6),128|(A&63));
      }else {
        if(A<55296||A>57343){
          E[C]=String.fromCharCode(224|(A>>>12),128|((A>>>6)&63),128|(A&63));
        }else {
          if(++D<B){
            _=$.charCodeAt(D);
            if(A<=56319&&56320<=_&&_<=57343){
              A=((A&1023)<<10|(_&1023))+65536;
              if(65536<=A&&A<=1114111){
                E[C]=String.fromCharCode(240|((A>>>18)&63),128|((A>>>12)&63),128|((A>>>6)&63),128|(A&63));
              }else {
                E[C]="?";
              }
            }else {
              D--;
              E[C]="?";
            }
          }else {
            D--;
            E[C]="?";
          }
        }
      }
    }
  }
  return E.join("");
};
String.prototype.toUTF16=function(){
  var _=this;
  if((_.match(/^[\x00-\x7f]*$/)!=null)||(_.match(/^[\x00-\xff]*$/)==null)){
    return _.toString();
  }
  var H,G,F,E,B,A,D,C,$;
  H=[];
  E=_.length;
  G=F=0;
  while(G<E){
    B=_.charCodeAt(G++);
    switch(B>>4){
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
      H[F++]=_.charAt(G-1);
      break ;
    case 12:
    case 13:
      A=_.charCodeAt(G++);
      H[F++]=String.fromCharCode(((B&31)<<6)|(A&63));
      break ;
    case 14:
      A=_.charCodeAt(G++);
      D=_.charCodeAt(G++);
      H[F++]=String.fromCharCode(((B&15)<<12)|((A&63)<<6)|(D&63));
      break ;
    case 15:
      switch(B&15){
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 6:
      case 7:
        A=_.charCodeAt(G++);
        D=_.charCodeAt(G++);
        C=_.charCodeAt(G++);
        $=((B&7)<<18)|((A&63)<<12)|((D&63)<<6)|(C&63)-65536;
        if(0<=$&&$<=1048575){
          H[F++]=String.fromCharCode((($>>>10)&1023)|55296,($&1023)|56320);
        }else {
          H[F++]="?";
        }
        break ;
      case 8:
      case 9:
      case 10:
      case 11:
        G+=4;
        H[F++]="?";
        break ;
      case 12:
      case 13:
        G+=5;
        H[F++]="?";
        break ;
      }
    }
  }
  return H.join("");
};
var XXTEA=new function(){
  var $=2654435769;
  function _(A,C){
    var _=A.length,$=(_-1)<<2;
    if(C){
      var B=A[_-1];
      if((B<$-3)||(B>$)){
        return null;
      }
      $=B;
    }
    for(var D=0;D<_;D++){
      A[D]=String.fromCharCode(A[D]&255,A[D]>>>8&255,A[D]>>>16&255,A[D]>>>24&255);
    }
    if(C){
      return A.join("").substring(0,$);
    }else {
      return A.join("");
    }
  }
  function A(_,B){
    var A=_.length,$=[];
    for(var C=0;C<A;C+=4){
      $[C>>2]=_.charCodeAt(C)|_.charCodeAt(C+1)<<8|_.charCodeAt(C+2)<<16|_.charCodeAt(C+3)<<24;
    }
    if(B){
      $[$.length]=A;
    }
    return $;
  }
  this.encrypt=function(I,L){
    if(I==""){
      return "";
    }
    var G=A(I,true),F=A(L,false);
    if(F.length<4){
      F.length=4;
    }
    var C=G.length-1,K=G[C],M=G[0],E,B,J,H=Math.floor(6+52/(C+1)),D=0;
    while(0<H--){
      D=D+$&4294967295;
      B=D>>>2&3;
      for(J=0;J<C;J++){
        M=G[J+1];
        E=(K>>>5^M<<2)+(M>>>3^K<<4)^(D^M)+(F[J&3^B]^K);
        K=G[J]=G[J]+E&4294967295;
      }
      M=G[0];
      E=(K>>>5^M<<2)+(M>>>3^K<<4)^(D^M)+(F[J&3^B]^K);
      K=G[C]=G[C]+E&4294967295;
    }
    return _(G,false);
  };
  this.decrypt=function(I,L){
    if(I==""){
      return "";
    }
    var G=A(I,false),F=A(L,false);
    if(F.length<4){
      F.length=4;
    }
    var C=G.length-1,K=G[C-1],M=G[0],E,B,J,H=Math.floor(6+52/(C+1)),D=H*$&4294967295;
    while(D!=0){
      B=D>>>2&3;
      for(J=C;J>0;J--){
        K=G[J-1];
        E=(K>>>5^M<<2)+(M>>>3^K<<4)^(D^M)+(F[J&3^B]^K);
        M=G[J]=G[J]-E&4294967295;
      }
      K=G[C];
      E=(K>>>5^M<<2)+(M>>>3^K<<4)^(D^M)+(F[J&3^B]^K);
      M=G[0]=G[0]-E&4294967295;
      D=D-$&4294967295;
    }
    return _(G,true);
  };
};
if(typeof (btoa)=="undefined"){
  btoa=function(){
    var $="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
    return function(_){
      var G,F,E,D,B,C,A;
      F=E=0;
      D=_.length;
      B=D%3;
      D=D-B;
      C=(D/3)<<2;
      if(B>0){
        C+=4;
      }
      G=new Array(C);
      while(F<D){
        A=_.charCodeAt(F++)<<16|_.charCodeAt(F++)<<8|_.charCodeAt(F++);
        G[E++]=$[A>>18]+$[A>>12&63]+$[A>>6&63]+$[A&63];
      }
      if(B==1){
        A=_.charCodeAt(F++);
        G[E++]=$[A>>2]+$[(A&3)<<4]+"==";
      }else {
        if(B==2){
          A=_.charCodeAt(F++)<<8|_.charCodeAt(F++);
          G[E++]=$[A>>10]+$[A>>4&63]+$[(A&15)<<2]+"=";
        }
      }
      return G.join("");
    };
  }();
}
if(typeof (atob)=="undefined"){
  atob=function(){
    var $=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1];
    return function(A){
      var _,C,G,E,J,H,F,B,D,I;
      F=A.length;
      if(F%4!=0){
        return "";
      }
      if(/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\+\/\=]/.test(A)){
        return "";
      }
      if(A.charAt(F-2)=="="){
        B=1;
      }else {
        if(A.charAt(F-1)=="="){
          B=2;
        }else {
          B=0;
        }
      }
      D=F;
      if(B>0){
        D-=4;
      }
      D=(D>>2)*3+B;
      I=new Array(D);
      J=H=0;
      while(J<F){
        _=$[A.charCodeAt(J++)];
        if(_==-1){
          break ;
        }
        C=$[A.charCodeAt(J++)];
        if(C==-1){
          break ;
        }
        I[H++]=String.fromCharCode((_<<2)|((C&48)>>4));
        G=$[A.charCodeAt(J++)];
        if(G==-1){
          break ;
        }
        I[H++]=String.fromCharCode(((C&15)<<4)|((G&60)>>2));
        E=$[A.charCodeAt(J++)];
        if(E==-1){
          break ;
        }
        I[H++]=String.fromCharCode(((G&3)<<6)|E);
      }
      return I.join("");
    };
  }();
}
var BigInteger=new function(){
  function G(A,$){
    var B=A.length,C=$.length,F=B+C,E,D,_=Array(F);
    for(E=0;E<F;E++){
      _[E]=0;
    }
    for(E=0;E<B;E++){
      for(D=0;D<C;D++){
        _[E+D]+=A[E]*$[D];
        _[E+D+1]+=(_[E+D]>>16)&65535;
        _[E+D]&=65535;
      }
    }
    return _;
  }
  function C(B,_,K){
    var D=B.length,E=_.length,H,F,$,J,L,I,A=Array();
    $=Math.floor(65536/(_[E-1]+1));
    B=G(B,[$]);
    _=G(_,[$]);
    for(F=D-E;F>=0;F--){
      J=B[F+E]*65536+B[F+E-1];
      I=J%_[E-1];
      L=Math.round((J-I)/_[E-1]);
      if(L==65536||(E>1&&L*_[E-2]>65536*I+B[F+E-2])){
        L--;
        I+=_[E-1];
        if(I<65536&&L*_[E-2]>65536*I+B[F+E-2]){
          L--;
        }
      }
      for(H=0;H<E;H++){
        J=H+F;
        B[J]-=_[H]*L;
        B[J+1]+=Math.floor(B[J]/65536);
        B[J]&=65535;
      }
      A[F]=L;
      if(B[J+1]<0){
        A[F]--;
        for(H=0;H<E;H++){
          J=H+F;
          B[J]+=_[H];
          if(B[J]>65535){
            B[J+1]++;
            B[J]&=65535;
          }
        }
      }
    }
    if(!K){
      return A;
    }
    _=Array();
    for(H=0;H<E;H++){
      _[H]=B[H];
    }
    return C(_,[$]);
  }
  function _(B,$,_){
    var D=$.length,A=[1],H,F,E;
    for(H=0;H<D-1;H++){
      E=$[H];
      for(F=0;F<16;F++){
        if(E&1){
          A=C(G(A,B),_,1);
        }
        E>>=1;
        B=C(G(B,B),_,1);
      }
    }
    E=$[H];
    while(E){
      if(E&1){
        A=C(G(A,B),_,1);
      }
      E>>=1;
      B=C(G(B,B),_,1);
    }
    return A;
  }
  function F(A,$){
    var B=$-A.toString().length,C,_="";
    for(C=0;C<B;C++){
      _+="0";
    }
    return _+A;
  }
  function A($){
    var A=$.length,_=[0],D,C,B;
    A+=4-(A%4);
    $=F($,A);
    A>>=2;
    for(D=0;D<A;D++){
      _=G(_,[10000]);
      _[0]+=parseInt($.substr(D<<2,4),10);
      B=_.length;
      C=_[B]=0;
      while(C<B&&_[C]>65535){
        _[C]&=65535;
        C++;
        _[C]++;
      }
      while(_.length>1&&!_[_.length-1]){
        _.length--;
      }
    }
    return _;
  }
  function B(_){
    var A=_.length<<1,$=Array(),B;
    for(B=0;B<A;B++){
      $[B]=F(C(_,[10000],1)[0],4);
      _=C(_,[10000]);
    }
    while($.length>1&&!parseInt($[$.length-1],10)){
      $.length--;
    }
    A=$.length-1;
    $[A]=parseInt($[A],10);
    $=$.reverse().join("");
    return $;
  }
  function E(_){
    var A=_.length;
    if(A&1){
      _="\x00"+_;
      A++;
    }
    A>>=1;
    var $=Array();
    for(var B=0;B<A;B++){
      $[A-B-1]=_.charCodeAt(B<<1)<<8|_.charCodeAt((B<<1)+1);
    }
    return $;
  }
  function $($){
    var A=$.length,_=Array();
    for(var B=0;B<A;B++){
      _[A-B-1]=String.fromCharCode($[B]>>8&255,$[B]&255);
    }
    return _.join("");
  }
  function D(D,_){
    var C=new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767),A=D%16,B=D>>4,$=Array();
    for(var E=0;E<B;E++){
      $[E]=Math.floor(Math.random()*65535);
    }
    if(A!=0){
      $[B]=Math.floor(Math.random()*C[A]);
      if(_){
        $[B]|=1<<(A-1);
      }
    }else {
      if(_){
        $[B-1]|=32768;
      }
    }
    return $;
  }
  this.mul=G;
  this.div=C;
  this.powmod=_;
  this.dec2num=A;
  this.num2dec=B;
  this.str2num=E;
  this.num2str=$;
  this.rand=D;
},PHPSerializer=(function(){
  function freeEval(s){
    return eval(s);
  }
  return {serialize:function(F){
      var M=0,N=[],D=[],B=1;
      function G(_){
        if(typeof (_)=="undefined"||typeof (_.constructor)=="undefined"){
          return "";
        }
        var $=_.constructor.toString();
        $=$.substr(0,$.indexOf("(")).replace(/(^\s*function\s*)|(\s*$)/ig,"").toUTF8();
        return (($=="")?"Object":$);
      }
      function O(_){
        var B,$=_.toString(),A=$.length;
        if(A>11){
          return false;
        }
        for(B=($.charAt(0)=="-")?1:0;B<A;B++){
          switch($.charAt(B)){
          case "0":
          case "1":
          case "2":
          case "3":
          case "4":
          case "5":
          case "6":
          case "7":
          case "8":
          case "9":
            break ;
          default:
            return false;
          }
        }
        return !(_<-2147483648||_>2147483647);
      }
      function H($){
        var _;
        for(_ in D){
          if(D[_]===$){
            return _;
          }
        }
        return false;
      }
      function A(){
        N[M++]="N;";
      }
      function P($){
        N[M++]=($?"b:1;":"b:0;");
      }
      function I($){
        N[M++]="i:"+$+";";
      }
      function K($){
        if(isNaN($)){
          $="NAN";
        }else {
          if($==Number.POSITIVE_INFINITY){
            $="INF";
          }else {
            if($==Number.NEGATIVE_INFINITY){
              $="-INF";
            }
          }
        }
        N[M++]="d:"+$+";";
      }
      function E($){
        var _=$.toUTF8();
        N[M++]="s:"+_.length+":\"";
        N[M++]=_;
        N[M++]="\";";
      }
      function $($){
        N[M++]="O:11:\"PHPRPC_Date\":7:{";
        N[M++]="s:4:\"year\";";
        I($.getFullYear());
        N[M++]="s:5:\"month\";";
        I($.getMonth()+1);
        N[M++]="s:3:\"day\";";
        I($.getDate());
        N[M++]="s:4:\"hour\";";
        I($.getHours());
        N[M++]="s:6:\"minute\";";
        I($.getMinutes());
        N[M++]="s:6:\"second\";";
        I($.getSeconds());
        N[M++]="s:11:\"millisecond\";";
        I($.getMilliseconds());
        N[M++]="}";
      }
      function Q(_){
        N[M++]="a:";
        var A,$=M;
        N[M++]=0;
        N[M++]=":{";
        for(A in _){
          if(typeof (_[A])!="function"){
            O(A)?I(A):E(A);
            C(_[A]);
            N[$]++;
          }
        }
        N[M++]="}";
      }
      function J(D){
        var $=G(D);
        if($==""){
          A();
        }else {
          if(typeof (D.serialize)!="function"){
            N[M++]="O:"+$.length+":\""+$+"\":";
            var B=M;
            N[M++]=0;
            N[M++]=":{";
            var F;
            if(typeof (D.__sleep)=="function"){
              var _=D.__sleep();
              for(F in _){
                E(_[F]);
                C(D[_[F]]);
                N[B]++;
              }
            }else {
              for(F in D){
                if(typeof (D[F])!="function"){
                  E(F);
                  C(D[F]);
                  N[B]++;
                }
              }
            }
            N[M++]="}";
          }else {
            var H=D.serialize();
            N[M++]="C:"+$.length+":\""+$+"\":"+H.length+":{"+H+"}";
          }
        }
      }
      function _($){
        N[M++]="R:"+$+";";
      }
      function L($){
        N[M++]="r:"+$+";";
      }
      function C(F){
        if(typeof (F)=="undefined"||F==null||F.constructor==Function){
          B++;
          A();
          return ;
        }
        var M=G(F);
        switch(F.constructor){
        case Boolean:
          B++;
          P(F);
          break ;
        case Number:
          B++;
          O(F)?I(F):K(F);
          break ;
        case String:
          B++;
          E(F);
          break ;
        case Date:
          B+=8;
          $(F);
          break ;
        default:
          if(M=="Object"||F.constructor==Array){
            var C=H(F);
            if(C){
              _(C);
            }else {
              D[B++]=F;
              Q(F);
            }
            break ;
          }else {
            C=H(F);
            if(C){
              B++;
              L(C);
            }else {
              D[B++]=F;
              J(F);
            }
          }
        }
      }
      C(F);
      return N.join("");
    },unserialize:function(N){
      var K=0,A=[],_=1;
      function E(){
        K++;
        return null;
      }
      function P(){
        K++;
        var $=(N.charAt(K++)=="1");
        K++;
        return $;
      }
      function F(){
        K++;
        var $=parseInt(N.substring(K,K=N.indexOf(";",K)));
        K++;
        return $;
      }
      function B(){
        K++;
        var $=N.substring(K,K=N.indexOf(";",K));
        switch($){
        case "NAN":
          $=NaN;
          break ;
        case "INF":
          $=Number.POSITIVE_INFINITY;
          break ;
        case "-INF":
          $=Number.NEGATIVE_INFINITY;
          break ;
        default:
          $=parseFloat($);
        }
        K++;
        return $;
      }
      function C(){
        K++;
        var _=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        var $=N.substring(K,K+=_).toUTF16();
        K+=2;
        return $;
      }
      function L(A){
        K++;
        var _=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        var B,$=new Array(_);
        for(B=0;B<_;B++){
          if(($[B]=N.charAt(K++))=="\\"){
            $[B]=String.fromCharCode(parseInt(N.substring(K,K+=A),16));
          }
        }
        K+=2;
        return $.join("");
      }
      function $(){
        K++;
        var B=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        var G,E,$=[];
        A[_++]=$;
        for(G=0;G<B;G++){
          switch(N.charAt(K++)){
          case "i":
            E=F();
            break ;
          case "s":
            E=C();
            break ;
          case "S":
            E=L(2);
            break ;
          case "U":
            E=L(4);
            break ;
          default:
            return false;
          }
          $[E]=D();
        }
        K++;
        return $;
      }
      function O(D){
        var G,E,B={};
        for(G=0;G<D;G++){
          switch(N.charAt(K++)){
          case "s":
            E=C();
            break ;
          case "S":
            E=L(2);
            break ;
          case "U":
            E=L(4);
            break ;
          default:
            return false;
          }
          if(N.charAt(K++)=="i"){
            B[E]=F();
          }else {
            return false;
          }
        }
        K++;
        var $=new Date(B.year,B.month-1,B.day,B.hour,B.minute,B.second,B.millisecond);
        A[_++]=$;
        A[_++]=B.year;
        A[_++]=B.month;
        A[_++]=B.day;
        A[_++]=B.hour;
        A[_++]=B.minute;
        A[_++]=B.second;
        A[_++]=B.millisecond;
        return $;
      }
      function M(){
        K++;
        var F=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        var $=N.substring(K,K+=F).toUTF16();
        K+=2;
        var B=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        if($=="PHPRPC_Date"){
          return O(B);
        }
        var H,G,E=J($);
        A[_++]=E;
        for(H=0;H<B;H++){
          switch(N.charAt(K++)){
          case "s":
            G=C();
            break ;
          case "S":
            G=L(2);
            break ;
          case "U":
            G=L(4);
            break ;
          default:
            return false;
          }
          if(G.charAt(0)=="\x00"){
            G=G.substring(G.indexOf("\x00",1)+1,G.length);
          }
          E[G]=D();
        }
        K++;
        if(typeof (E.__wakeup)=="function"){
          E.__wakeup();
        }
        return E;
      }
      function I(){
        K++;
        var D=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        var $=N.substring(K,K+=D).toUTF16();
        K+=2;
        var B=parseInt(N.substring(K,K=N.indexOf(":",K)));
        K+=2;
        var C=J($);
        A[_++]=C;
        if(typeof (C.unserialize)!="function"){
          K+=B;
        }else {
          C.unserialize(N.substring(K,K+=B));
        }
        K++;
        return C;
      }
      function G(){
        K++;
        var $=parseInt(N.substring(K,K=N.indexOf(";",K)));
        K++;
        return A[$];
      }
      function H(A,D,F,_){
        if(F<D.length){
          var E=D[F];
          A[E]=_;
          var C=H(A,D,F+1,".");
          if(F+1<D.length){
            if(C==null){
              C=H(A,D,F+1,"_");
            }
          }
          return C;
        }
        var B=A.join("");
        try{
          return freeEval("new "+B+"()");
        }
        catch($){
          return null;
        }
      }
      function J(_){
        if(freeEval("typeof("+_+") == \"function\"")){
          return freeEval("new "+_+"()");
        }
        var B=[],C=_.indexOf("_");
        while(C>-1){
          B[B.length]=C;
          C=_.indexOf("_",C+1);
        }
        if(B.length>0){
          var $=_.split(""),A=H($,B,0,".");
          if(A==null){
            A=H($,B,0,"_");
          }
          if(A!=null){
            return A;
          }
        }
        return freeEval("new function "+_+"(){};");
      }
      function D(){
        switch(N.charAt(K++)){
        case "N":
          return A[_++]=E();
        case "b":
          return A[_++]=P();
        case "i":
          return A[_++]=F();
        case "d":
          return A[_++]=B();
        case "s":
          return A[_++]=C();
        case "S":
          return A[_++]=L(2);
        case "U":
          return A[_++]=L(4);
        case "r":
          return A[_++]=G();
        case "a":
          return $();
        case "O":
          return M();
        case "C":
          return I();
        case "R":
          return G();
        default:
          return false;
        }
      }
      return D();
    }};
})();
function PHPRPC_Error($,_){
  this.getNumber=function(){
    return $;
  };
  this.getMessage=function(){
    return _;
  };
  this.toString=function(){
    return $+":"+_;
  };
}
var PHPRPC_Client=(function(){
  function freeEval(s){
    return eval(s);
  }
  return (function(){
    var _=[],B=0,C=null;
    function $(){
      if(window.XMLHttpRequest){
        var A=new XMLHttpRequest();
        if(A.readyState==null){
          A.readyState=0;
          A.addEventListener("load",function(){
            A.readyState=4;
            if(typeof (A.onreadystatechange)=="function"){
              A.onreadystatechange();
            }
          },false);
        }
        return A;
      }else {
        if(C!=null){
          return new ActiveXObject(C);
        }else {
          var $=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MsXML2.XMLHTTP.2.6","MSXML2.XMLHTTP","Microsoft.XMLHTTP.1.0","Microsoft.XMLHTTP.1","Microsoft.XMLHTTP"],B=$.length;
          for(var D=0;D<B;D++){
            try{
              A=new ActiveXObject($[D]);
              C=$[D];
              return A;
            }
            catch(_){
            }
          }
          return null;
        }
      }
    }
    function D(){
      return B++;
    }
    function E(A,$){
      if(typeof (_[A])!="undefined"){
        _[A].abort($);
      }
    }
    function A(f,d){
      var L=XXTEA,S=BigInteger,K=PHPSerializer,R=false,n=_.length,T=30000,H,Y,o,m,F,i,h,e,k,J,g,B;
      this.dispose=function(){
        this.abort();
        _[n]=null;
        delete _[n];
      };
      this.useService=function(A,_,B,$){
        o=null;
        m=null;
        if(typeof (A)=="undefined"){
          return new PHPRPC_Error(1,"You should set serverURL first!");
        }
        F=A;
        if((typeof (_)!="undefined")&&(typeof (B)!="undefined")){
          o=_;
          m=B;
        }
        j();
        if((typeof ($)=="undefined")||($==null)){
          V(this.onready);
        }else {
          a($,this.onready);
        }
        return true;
      };
      this.setKeyLength=function($){
        if(i!=null){
          return false;
        }else {
          h=$;
          return true;
        }
      };
      this.getKeyLength=function(){
        return h;
      };
      this.setEncryptMode=function($){
        if($>=0&&$<=3){
          e=parseInt($);
          return true;
        }else {
          e=0;
          return false;
        }
      };
      this.getEncryptMode=function(){
        return e;
      };
      this.invoke=function(){
        var $=p(arguments),_=$.shift();
        return l(_,$);
      };
      this.abort=function($){
        if(typeof ($)=="undefined"){
          for($ in k){
            this.abort($);
          }
        }else {
          if(typeof (k[$])!="undefined"){
            if(H){
              if((k[$]!=null)&&(typeof (k[$].abort)=="function")){
                k[$].onreadystatechange=function(){
                };
                k[$].abort();
              }
              b($);
            }else {
              N($);
              b($);
            }
          }
        }
      };
      this.setTimeout=function($){
        T=$;
      };
      this.getTimeout=function(){
        return T;
      };
      this.getReady=function(){
        return R;
      };
      this.__getFunctions=function($){
        var _=phprpc_functions;
        delete phprpc_functions;
        a(K.unserialize(_),this.onready);
        N($);
      };
      this.__keyExchange=function($){
        if(typeof (phprpc_url)!="undefined"){
          I(phprpc_url);
          delete phprpc_url;
        }
        if(typeof (phprpc_encrypt)=="undefined"){
          N($);
          i=null;
          e=0;
          B=false;
          Q();
        }else {
          if(typeof (phprpc_keylen)!="undefined"){
            h=parseInt(phprpc_keylen);
            delete phprpc_keylen;
          }else {
            h=128;
          }
          var _=phprpc_encrypt;
          delete phprpc_encrypt;
          N($);
          var C=btoa((Y+".__keyExchange2('"+$+"');").toUTF8()),A="phprpc_encrypt="+G(K.unserialize(_))+"&phprpc_encode=false&phprpc_callback="+C;
          P($,A);
        }
      };
      this.__keyExchange2=function($){
        N($);
        B=false;
        Q();
      };
      this.__callback=function($){
        if(typeof (k[$])=="undefined"){
          return ;
        }
        var _={};
        _.phprpc_errno=phprpc_errno;
        _.phprpc_errstr=phprpc_errstr;
        _.phprpc_output=phprpc_output;
        delete phprpc_errno;
        delete phprpc_errstr;
        delete phprpc_output;
        if(typeof (phprpc_result)!="undefined"){
          _.phprpc_result=phprpc_result;
          delete phprpc_result;
        }
        if(typeof (phprpc_args)!="undefined"){
          _.phprpc_args=phprpc_args;
          delete phprpc_args;
        }
        g[$]=_;
        var A=document.getElementById("script_"+$);
        O($,A.args,A.ref,A.encrypt,A.callback);
        M($);
        b($);
        N($);
      };
      function I(E){
        var B=0,_=null,A=null,C=null;
        if(E.substr(0,7).toLowerCase()=="http://"){
          _="http:";
          B=7;
        }else {
          if(E.substr(0,8).toLowerCase()=="https://"){
            _="https:";
            B=8;
          }
        }
        if(B>0){
          A=E.substring(B,E.indexOf("/",B));
          var D=A.match(/^([^:]*):([^@]*)@(.*)$/);
          if(D!=null){
            if(o==null){
              o=decodeURIComponent(D[1]);
            }
            if(m==null){
              m=decodeURIComponent(D[2]);
            }
            A=D[3];
          }
          C=E.substr(E.indexOf("/",B));
        }
        if(((_==null)||(location.protocol=="file:")||(_==location.protocol&&A==location.host))&&$()!=null){
          H=true;
        }else {
          H=false;
        }
        if((B>0)&&(o!=null)&&(m!=null)){
          E=_+"//";
          if(!H){
            E+=encodeURIComponent(o)+":"+encodeURIComponent(m)+"@";
          }
          E+=A+C;
        }
        F=E.replace(/[\&\?]+$/g,"");
        F+=(F.indexOf("?",0)==-1)?"?":"&";
        F+="phprpc_id="+n+"&";
      }
      function j(){
        R=false;
        i=null;
        h=128;
        B=false;
        e=0;
        k=[];
        J=[];
        g=[];
        I(F);
      }
      function V(G){
        if(H){
          var I=$(),B=false;
          I.onreadystatechange=function(){
            if(I.readyState==4&&!B){
              B=true;
              if(I.responseText){
                var $=D();
                c(I.responseText,$);
                a(K.unserialize(g[$].phprpc_functions),G);
                M($);
              }
              I=null;
            }
          };
          try{
            I.open("GET",F+"phprpc_encode=false",true);
            if(o!==null){
              I.setRequestHeader("Authorization","Basic "+btoa(o+":"+m));
            }
            I.send(null);
          }
          catch(A){
            I=null;
            H=false;
            V(G);
          }
        }else {
          var _=D(),E=btoa((Y+".__getFunctions('"+_+"');").toUTF8()),C="phprpc_encode=false&phprpc_callback="+E;
          P(_,C);
        }
      }
      function P($,C,B,_,A,D){
        var G=document.createElement("script");
        G.id="script_"+$;
        G.src=F+C.replace(/\+/g,"%2B");
        G.charset="UTF-8";
        G.defer=true;
        G.type="text/javascript";
        G.args=B;
        G.ref=_;
        G.encrypt=A;
        G.callback=D;
        var E=document.getElementsByTagName("head");
        if(E[0]){
          E[0].appendChild(G);
        }else {
          document.body.appendChild(G);
        }
      }
      function N($){
        var A=document.getElementById("script_"+$);
        if(A){
          try{
            A.parentNode.removeChild(A);
          }
          catch(_){
          }
        }
      }
      function p(_){
        var A=_.length,$=new Array(A);
        for(var B=0;B<A;B++){
          $[B]=_[B];
        }
        return $;
      }
      function c(C,$){
        var F=C.split(";\r\n"),_={},D=F.length;
        for(var G=0;G<D;G++){
          var B=F[G].indexOf("=");
          if(B>=0){
            var E=F[G].substr(0,B),A=F[G].substr(B+1);
            _[E]=freeEval(A);
          }
        }
        g[$]=_;
      }
      function M($){
        if(g[$]){
          delete g[$];
        }
      }
      function b($){
        if(typeof (k[$])!="undefined"){
          k[$]=null;
          delete k[$];
        }
      }
      function l(C,B){
        var $=D();
        k[$]=null;
        var _=function(){
          if(T){
            setTimeout(function(){
              E(n,$);
            },T);
          }
          A($,C,B);
        };
        J.push(_);
        W();
        return $;
      }
      function X($){
        return function(){
          return l($,p(arguments));
        };
      }
      function a($,A){
        for(var B=0;B<$.length;B++){
          _[n][$[B]]=X($[B]);
        }
        R=true;
        if(typeof (A)=="function"){
          A();
        }
      }
      function W(){
        if(B){
          return ;
        }
        if(i==null&&e>0){
          B=true;
          if(H){
            var G=$(),A=false;
            G.onreadystatechange=function(){
              if(G.readyState==4&&!A){
                A=true;
                if(G.responseText){
                  var $=D();
                  c(G.responseText,$);
                  U($);
                  M($);
                }
                G=null;
              }
            };
            G.open("GET",F+"phprpc_encrypt=true&phprpc_encode=false&phprpc_keylen="+h,true);
            if(o!==null){
              G.setRequestHeader("Authorization","Basic "+btoa(o+":"+m));
            }
            G.send(null);
          }else {
            var _=D(),E=btoa((Y+".__keyExchange('"+_+"');").toUTF8()),C="phprpc_encrypt=true&phprpc_encode=false&phprpc_keylen="+h+"&phprpc_callback="+E;
            P(_,C);
          }
        }else {
          Q();
        }
      }
      function U(_){
        if(typeof (g[_].phprpc_url)!="undefined"){
          I(g[_].phprpc_url);
        }
        var D=g[_];
        if(typeof (D.phprpc_encrypt)=="undefined"){
          i=null;
          e=0;
          B=false;
          Q();
        }else {
          if(typeof (D.phprpc_keylen)!="undefined"){
            h=parseInt(D.phprpc_keylen);
          }else {
            h=128;
          }
          var C=G(K.unserialize(D.phprpc_encrypt)),E=$(),A=false;
          E.onreadystatechange=function(){
            if(E.readyState==4&&!A){
              A=true;
              B=false;
              Q();
              E=null;
            }
          };
          E.open("GET",F+"phprpc_encode=false&phprpc_encrypt="+C,true);
          if(o!==null){
            E.setRequestHeader("Authorization","Basic "+btoa(o+":"+m));
          }
          E.send(null);
        }
      }
      function G(_){
        var A=S.dec2num(_["p"]),$=S.dec2num(_["g"]),E=S.dec2num(_["y"]),G=S.rand(h-1,1),D=S.powmod(E,G,A);
        if(h==128){
          D=S.num2str(D);
          var B=16-D.length,C=[];
          for(var F=0;F<B;F++){
            C[F]="\x00";
          }
          C[B]=D;
          i=C.join("");
        }else {
          i=S.num2dec(D).md5();
        }
        return S.num2dec(S.powmod($,G,A));
      }
      function Q(){
        while(J.length>0){
          var $=J.shift();
          if(typeof ($)=="function"){
            $();
          }
        }
      }
      function A(A,L,E){
        if(typeof (k[A])=="undefined"){
          return ;
        }
        var B=false,D=e,I=_[n][L+"_callback"];
        if(typeof (I)!="function"){
          I=null;
        }
        if(typeof (E[E.length-1])=="boolean"&&typeof (E[E.length-2])=="function"){
          B=E[E.length-1];
          I=E[E.length-2];
          E.length-=2;
        }else {
          if(typeof (E[E.length-1])=="function"){
            I=E[E.length-1];
            E.length--;
          }
        }
        var G="phprpc_func="+L+"&phprpc_args="+btoa(Z(K.serialize(E),D,1))+"&phprpc_encode=false"+"&phprpc_encrypt="+D;
        if(!B){
          G+="&phprpc_ref=false";
        }
        if(H){
          if(typeof (k[A])=="undefined"){
            return ;
          }
          var J=$();
          k[A]=J;
          var C=false;
          J.onreadystatechange=function(){
            if(J.readyState==4&&!C){
              C=true;
              if(J.responseText){
                c(J.responseText,A);
                O(A,E,B,D,I);
                M(A);
              }
              b(A);
              J=null;
            }
          };
          J.open("POST",F,true);
          J.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
          if(o!==null){
            J.setRequestHeader("Authorization","Basic "+btoa(o+":"+m));
          }
          J.send(G.replace(/\+/g,"%2B"));
        }else {
          G+="&phprpc_callback="+btoa((Y+".__callback('"+A+"');").toUTF8());
          if(typeof (k[A])=="undefined"){
            return ;
          }
          P(A,G,E,B,D,I);
        }
      }
      function Z(A,_,$){
        if((i!=null)&&(_>=$)){
          A=L.encrypt(A,i);
        }
        return A;
      }
      function C(A,_,$){
        if((i!=null)&&(_>=$)){
          A=L.decrypt(A,i);
        }
        return A;
      }
      function O($,D,A,B,F){
        if(typeof (F)=="function"&&typeof (k[$])!="undefined"){
          var E=g[$],G=E.phprpc_output;
          if((i!==null)&&(B>2)){
            G=L.decrypt(G,i);
            if(G===null){
              G=E.phprpc_output;
            }else {
              G=G.toUTF16();
            }
          }
          var _=new PHPRPC_Error(E.phprpc_errno,E.phprpc_errstr),H=_;
          if(typeof (E.phprpc_result)!="undefined"){
            _=K.unserialize(C(E.phprpc_result,B,2));
            if(A&&(typeof (E.phprpc_args)!="undefined")){
              D=K.unserialize(C(E.phprpc_args,B,1));
            }
          }
          F(_,D,G,H);
        }
      }
      _[n]=this;
      Y="PHPRPC_Client.__getClient("+n+")";
      if(typeof (f)!="undefined"){
        if(typeof (d)=="undefined"){
          d=null;
        }
        this.useService(f,null,null,d);
      }
    }
    A.create=function(_,$){
      if(typeof ($)=="undefined"){
        $=null;
      }
      return new A(_,$);
    };
    A.__getClient=function($){
      return _[$];
    };
    return A;
  })();
})();
