document.domain='xunlei.com';
var PageConfig={
	isIE         : (document.all && document.attachEvent),
	loginURL     : 'http://svr.game.xunlei.com/login.webGameLogin',
	loginOutURL  : 'http://svr.game.xunlei.com/logout.webGameLogin',
	validURL     : 'http://svr.game.xunlei.com/loginWithUsername.webGameLogin',
	gameLoginV   : 'http://svr.game.xunlei.com/loginWithServerid.webGameLogin',
	pvURL        : 'http://svr.game.xunlei.com/newRegister.webGameUnionStat',
	pvURL1       : 'http://svr.game.xunlei.com/newRelation.webGameUnionStat',
	pvURL2       : 'http://svr.game.xunlei.com/newRelation.webGameAdvStat',
	pvURL3       : 'http://svr.game.xunlei.com/newRegister.webGameAdvStat',
	xmlAgent     : null,
	userIsLogin  : false,			//用户登录状态
	cookieTimeOut: 10000,
	loginUname   : '',
	validPic	 : 'http://verify.xunlei.com/image?',
	validImg     : 'img_verify',		//验证码图片ID
	loginBtn     : 'loginBtn',
	usernameTxt  : 'txt_uname',
	userpwdTxt   : 'txt_pwd',
	vcodeTxt     : 'txt_validCode',
	frmProxyAgent: 'frProxy',
	maskDiv      : 'mask',
	loadingBar	 : 'loading',
	fmLogin      : 'fmLogin',
	pnlUser      : 'p_userPanel',               //用户登陆后的面板ID
	pnlUsername  : 'p_userPanel_name',          //登陆用户名
	pnlUserexit  : 'p_userPanel_exit',          //用户信息面板中退出按钮的ID
	pnlUserReg   : 'regBtn',
	topUserReg   : 'regID',
	pnlUserserver: 'p_userPanel_serverlist',    //用户面板中服务器列表
	pnlLoading   : 'p_loginLoading',            //
	pnlLogin     : 'p_userLogin',
	gameID		 : '000001',					//武林三国ID
	gameINFO     : null,
	pvImg        : 'pv_img',
	newUserCook  : 'statusername',
	cookie1      : 'location',
	regURL       : 'http://i.xunlei.com/register/register.htm'
};

var UVALID_MSG  = {1:'用户名不存在或密码错误',2:'密码错误',3:'用户名错误',4:'网络故障',5:'验证码错误',6:'未知错误'};
var SCONNET_MSG = {CONNECTERR:'登录验证失败,请重新登录!',CONNECTTIMEOUT:'链接服务器超时，请稍候重试!'};

//页面初始化入口
function body_initialize(){

	//验证码点击事件
	$(PageConfig.validImg).onclick = function(){reloadImg();};
	$(PageConfig.fmLogin).onsubmit = function(){login();return false;}
	//$(PageConfig.loginBtn).onclick = login;
	
	//退出按钮事件
	$(PageConfig.pnlUserexit).onclick = loginout;

	var regFun = function(){document.location.href="redirect.html?pgn="+encodeURIComponent(document.location.search)+'&advid='+_GET['advid'];return false;};

	//注册按钮事件
	$(PageConfig.pnlUserReg).onclick = regFun;
	$(PageConfig.topUserReg).onclick = regFun;

	//设置验证地址
	UserLogin.loginURL    = PageConfig.loginURL;
	UserLogin.validURL    = PageConfig.validURL;
	UserLogin.loginOutURL = PageConfig.loginOutURL;

	//设置验证触发事件
	UserLogin.onBeforeLogin = beforeLogin;
	UserLogin.onAfterLogin  = afterLogin;
	
	UserLogin.onBeforeValid = beforeValid;
	UserLogin.onAfterValid  = afterValid;

	UserLogin.onBeforeLogOut = beforeLogout;
	UserLogin.onAfterLogOut  = afterLogout;
	
	//注册用户PV统计
	/**************************************************/	
	try{		
		var ureged=UserLogin.getCookie(PageConfig.newUserCook); 
		if(!ureged.isEmpty()){
			_GET['gid']    = (_GET['gid']==undefined?'':_GET['gid']);
			_GET['cflag']  = (_GET['cflag']==undefined?'':_GET['cflag']);
			PvCount((_GET['gid'].isEmpty()?'xunlei':_GET['gid']),(_GET['cflag'].isEmpty()?'000':_GET['cflag']),ureged);
			pvCount1(ureged);
			UserLogin.setCookie(PageConfig.newUserCook,'',0);
			$(PageConfig.usernameTxt).value = ureged;
		}else{}
	}catch(e){}
	/*************************************************/
}

function beforeLogout(){
	showLoading(true);
}
function afterLogout(){
	UserLogin.removeCookie(UserLogin.cookieName);
	PageConfig.loginUname = '';			//清除页面变量
	$(PageConfig.usernameTxt).value = '';
	$(PageConfig.userpwdTxt).value = '';
	reloadImg();
	showUserInfoPanel(0,1);				//显示用户登陆面板	
	showLoading(false);
	return false;
}


//用户退出登陆
function loginout(){
	UserLogin.loginOut(PageConfig.loginUname);
	return false;
}


//登陆游戏
function gameLogin(serverid,serverurl){		
	var frm=$(PageConfig.frmProxyAgent);
	if(!frm) return;
    var objA = new Ajax(frm.contentWindow.remoteProxy);
	objA._method='GET';
	var strP = '';

	objA.onBeginPost = beforeGameLoginValid;
	objA.onPosted    = afterGameLoginValid;

	strP = 'username=' + escape(PageConfig.loginUname);
	strP+= '&serverid=' + serverid;
	strP+= '&vcodestr=2';
	strP+= '&vcode=1';
	strP+= '&Random=' + getRandomizChar();
	strP+= '&loginurl=' + escape(serverurl);

	objA.post(PageConfig.gameLoginV,strP);
}


//登陆游戏前
function beforeGameLoginValid(){
	showLoading(true);
}

//登陆游戏后
function afterGameLoginValid(obj){

	var altMSG='';
    var retStr=obj.responseText;
	
	try{
		eval('var ret='+retStr);
	}catch(e){
		ret=null;
	}

	if(!ret){
		altMSG = SCONNET_MSG['CONNECTERR'];
	}else{
		if(ret.gameLoginStatus == 0){
			//验证cookie登陆成功
			var loginURL='';
			try{
				loginURL=ret.gameLoginURL;
			}catch(e){}

			if(!loginURL){
                altMSG = SCONNET_MSG['CONNECTERR'];
			}else{
				var win=null;
				_GET['gid']    = (_GET['gid']==undefined?'':_GET['gid']);
				_GET['cflag']  = (_GET['cflag']==undefined?'':_GET['cflag']);
				
				pvCount1(PageConfig.loginUname,PageConfig.gameID);
				PvCount((_GET['gid'].isEmpty()?'xunlei':_GET['gid']),(_GET['cflag'].isEmpty()?'000':_GET['cflag']),PageConfig.loginUname,PageConfig.gameID);
				try{
					win=window.open(loginURL);
				}catch(e){}
				
				if(!win){
					document.location.href=loginURL;
				}
			}			
		}else{
			altMSG = SCONNET_MSG['CONNECTTIMEOUT'];
		}
	}
	showLoading(false);
	if(!altMSG.isEmpty()){
		alert(altMSG);
	}
}


//用户登陆
function login(){
 
  var uname = $(PageConfig.usernameTxt).value;
  var pwd   = $(PageConfig.userpwdTxt).value;
  var vcode = $(PageConfig.vcodeTxt).value;  
  
  var selT  = PageConfig.usernameTxt;
  var vResult='';

  if(uname.isEmpty()){
	  vResult='用户名、密码不能为空!\n';
  }else if(pwd.isEmpty()){
	  selT  = PageConfig.userpwdTxt;
	  vResult='用户名、密码不能为空!\n';
  }else if(vcode.isEmpty()){
	  selT  = PageConfig.vcodeTxt;
      vResult='验证码不得为空!\n';
  }

  if(vResult){
	  alert(vResult);
	  try{
			$(selT).focus();
	  }catch(e){}
	  return;
  }else{
	  UserLogin.loginURL=PageConfig.loginURL;
	  seeds = getRandomizChar();
      UserLogin.login(uname,pwd,vcode,seeds);		//加入seeds防止缓存

	  PageConfig.loginUname=uname;
  }
}

//设置xml代理
function setAgent(){	
	var frm=$(PageConfig.frmProxyAgent);
	if(!frm) return;
	if(frm.readyState=='complete'){
		if(frm.contentWindow.remoteProxy){
			UserLogin.initialize(frm.contentWindow.remoteProxy);				
			//验证登陆状态
			UserLogin.loginURL = PageConfig.loginURL;
	        UserLogin.validURL = PageConfig.validURL;

			UserLogin.onBeforeValid = beforeValid;
	        UserLogin.onAfterValid  = afterValid;

            UserLogin.validLoginCache();
		}else{
            alert('创建对象失败!');	
		}
	}
}

//设置xml代理
function setAgentF(){
	if(PageConfig.isIE){
		return false;
	}

	var frm=$(PageConfig.frmProxyAgent);	
	if(!frm) return;
	var objW = frm.contentWindow;
	if(objW){
		if(objW.window.remoteProxy){
			UserLogin.initialize(objW.window.remoteProxy);

			//验证登陆状态
			UserLogin.loginURL = PageConfig.loginURL;
	        UserLogin.validURL = PageConfig.validURL;

			UserLogin.onBeforeValid = beforeValid;
	        UserLogin.onAfterValid  = afterValid;

            UserLogin.validLoginCache();
		}else{
            alert('创建对象失败!');	
		}
	}
}

//用户登陆前触发事件
function beforeLogin(){
	showLoading(true);
}

//HTML编码
function HTMLencode(str){	
	var obj=document.createElement('span');
	obj.innerText=str;
	return obj.innerHTML;
}

//登陆后触发事件
function afterLogin(sFlag){
	var altMsg='';
	//alert(sFlag);
	if(typeof(sFlag)=='object'){
		var retStr=sFlag.responseText;
		
		try{
			eval('var ret='+retStr);
		}catch(e){
			ret=null;

		}
		//验证登陆
		if(!ret){
		//验证失败
			altMsg=UVALID_MSG[5];
			reloadImg();
		}else{
			if(ret.loginStatus==0){
			//登陆验证成功
				//将用户名写入cookie
				UserLogin.setCookie(UserLogin.cookieName,PageConfig.loginUname,PageConfig.cookieTimeOut);
				initUserInfo();
				showUserInfoPanel(1);
			}else{
				//错误信息
				altMsg=UVALID_MSG[ret.loginStatus];
				if(altMsg.isEmpty()){
					altMsg=LANG['UNEXPECTEDERR'];
				}
				reloadImg();
			}
			delete(ret);
		}
	}else{
		altMsg = LANG['UNEXPECTEDERR'];
	}
	showLoading(false);
	if(!altMsg.isEmpty()){
		alert(altMsg);
		try{
			$(PageConfig.usernameTxt).focus();
		}catch(e){}
	}
	
}



//登陆后初始化用户信息面板
function initUserInfo(){
	var gid       = PageConfig.gameID;
	var ObjGINFO  = null;
	
	if(PageConfig.isIE){
		$(PageConfig.pnlUsername).innerText=PageConfig.loginUname;
	}else{
		$(PageConfig.pnlUsername).textContent=PageConfig.loginUname;
	}

	var serverP   = $(PageConfig.pnlUserserver);
	serverP.innerHTML = '';   //清除原来的内容

	if(!webGameNew) return;

/*
	for(var i=0;i<webGame.length;i++){
		if(webGame[i].gameID==PageConfig.gameID){
			PageConfig.gameINFO=webGame[i];
			break;
		}
	}
*/
    PageConfig.gameINFO = webGameNew.servers[gid];

	if(!PageConfig.gameINFO) return;

	for(var i=0;i<PageConfig.gameINFO.length;i++){
		var li   = document.createElement('li');
		var sid  = PageConfig.gameINFO[i].serverid;
		var surl = PageConfig.gameINFO[i].serveraddress;
		var a    = document.createElement('a');

		a.href   = 'javascript:///';
		var funstr ="var func=function(){gameLogin('"+String(sid)+"','"+String(surl)+"');return false;}";
		try{
		  eval(funstr);
		}catch(e){
		  var func =function(){return false;}
		}
		a.onclick= func;

		if(PageConfig.isIE){
			a.innerText = PageConfig.gameINFO[i].servername;
		}else{
			a.textContent = PageConfig.gameINFO[i].servername;
		}
		li.appendChild(a);
		delete(sid);
		delete(surl);

		serverP.appendChild(li);
	}
}


//验证登陆状态前触发事件
function beforeValid(){
	showUserInfoPanel(0,0,1);
}

//验证登陆状态后触发事件
function afterValid(sFlag){
	if(typeof(sFlag)!='object'){
		try{
		showUserInfoPanel(0,1);
		}catch(e){alert(e);}
	}else{
		try{
			var retStr=sFlag.responseText;
			eval('var ret='+retStr);
		}catch(e){
			ret=null;
		}
        if(!ret){
		  showUserInfoPanel(0,1);
          return false;
        }else if(ret.loginStatus == 0){
		  //验证成功
          PageConfig.loginUname = UserLogin.getCookie(UserLogin.cookieName);
		  initUserInfo();
		  showUserInfoPanel(1);          
		}else{
		  showUserInfoPanel(0,1);
          return false;
		}
	}
}

// 显示\隐藏用户信息面板
function showUserInfoPanel(){
	var l = arguments.length;
	var panels=[PageConfig.pnlUser,PageConfig.pnlLogin,PageConfig.pnlLoading];

	for(var i=0;i<panels.length;i++){
		if(i<l){
			showPanel(panels[i],(arguments[i]?true:false));		
			if(panels[i]==PageConfig.pnlLogin && arguments[i]){
				$(PageConfig.usernameTxt).focus();
			}
		}else{
			showPanel(panels[i],false);
		}		
	}
}

//重新载入验证码
function reloadImg(){
	var vimg  = $(PageConfig.validImg);

	if(!vimg) return;

	var sURL  = PageConfig.validPic;
    vimg.src=sURL+getRandomizChar();

	$(PageConfig.vcodeTxt).value = '';
}

function getRandomizChar(){
	var str='';
	var i=Math.ceil(Math.random()*10);
	for(var j=0;j<i;j++){
	  str+=String.fromCharCode(97+Math.ceil(Math.random()*25));
	}
	return str;
}



function showLoading(flag){
	showPanel(PageConfig.maskDiv,flag);	
	showPanel(PageConfig.loadingBar,flag);

	if(!PageConfig.isIE && flag){
		var mask = $(PageConfig.maskDiv);
		if(mask){
			mask.style.width  = document.body.scrollWidth.toString()+'px';
			mask.style.height = document.body.scrollHeight.toString()+'px';
		}
		var bar  = $(PageConfig.loadingBar);
		if(bar){
			//bar.style.left = '100px';
			bar.style.left = String(Math.floor((document.body.offsetWidth - bar.offsetWidth)/2))+'px';
			bar.style.top  = String(Math.floor((document.body.offsetHeight - bar.offsetHeight)/2))+'px';
		}
	}
}

//PV统计
function PvCount(unid,cflag,uname,gid){
	
	if(gid==undefined || !gid){		
		var PV_URL=PageConfig.pvURL;
		PV_URL+= '?uid='+unid+'&utype='+cflag+'&uname='+uname+'&gameid='+PageConfig.gameID;
	}else{
		var PV_URL=PageConfig.pvURL1;
		PV_URL+= '?uid='+unid+'&utype='+cflag+'&uname='+uname+'&gameid='+gid;
	}
	var pvImg=$(PageConfig.pvImg).src=PV_URL;
}

function pvCount1(un,gid){
	if(gid){
		var pvURL = PageConfig.pvURL2 + "?";
	}else{
		var pvURL = PageConfig.pvURL3 + "?";
	}
	script = document.createElement('script');
	document.getElementsByTagName('head')[0].appendChild(script);

	var advid = _GET['advid'];
	if(advid){
		pvURL +='advid=' + encodeURIComponent(advid)+'&';
	}
	pvURL +='uname=' + encodeURIComponent(un)+'&';

	if(gid){
		pvURL +='gameid=' + encodeURIComponent(gid);
	}
	pvURL += '&'+String(Date.parse(new Date()));
	/*
	if(script.attachEvent){
		script.onreadystatechange = function(){if(script.readyState=='complete' || script.readyState=='loaded'){script.parentNode.removeChild(script);}}
	}else{
		script.onload = function(){script.parentNode.removeChild(script);}
		script.onerror = function(){script.parentNode.removeChild(script);}
	}*/
	script.src=pvURL;

}