﻿/************************************************************************************
 *  (首页使用)用户登陆                                                                        
 * 解决浏览器事件兼容性问题                                                         
************************************************************************************/

/* 用户登陆变量获取 */

var divNotice=$("notice_bar");
var btn_logon=$("btn_logon");
var objUsername=$("in_username");
var objPassword=$("in_password");
var objVerify=$("in_verifyCode");

/* IE 下支持，登陆回车事件 BEGIN */

/**在用户表单回车或Tab*/
var fnUserKeyDown = function (evt){
    // 浏览器事件兼容性问题
    evt = (evt) ? evt : ((window.event) ? window.event : "");    
    var keyCode = evt.keyCode ? evt.keyCode : (evt.which ? evt.which :evt.charCode);
	
	if(keyCode==13) { objPassword.focus();	return false; }
 }
/**在密码表单回车或Tab*/
var fnPassKeyDown=function (evt) {
    // 浏览器事件兼容性问题
    evt = (evt) ? evt : ((window.event) ? window.event : "");     
    var keyCode = evt.keyCode ? evt.keyCode : (evt.which ? evt.which :evt.charCode);
    
    if (keyCode==13) {	objVerify.focus();	return false; }
}
/**在验证码上表单上回车*/
var fnVerifyKeyPress=function() {
    event.returnValue=IsDigit();		
}

/* 登陆回车事件 OVER */

/* 焦点选中事件 BEGIN */
var fnUserSelect = function () {
    objUsername.select();
}

var fnPassSelect = function () {
    objPassword.select();
}

var fnVerifySelect = function () {
    objVerify.select();
}
/* 焦点选中事件 END */

/* 鼠标事件 BEGIN */
// 登陆按钮图片鼠标事件
var logonBtnOver = function() {
    btn_logon.src="/images/btn_logon_a.gif";
}

var logonBtnOut = function() {
    btn_logon.src="/images/btn_logon.gif";
}

// 注销图片鼠标事件
function logoutBtnOver() {
    $("btn_logout").src="/images/btn_logout_a.gif";
}

function logoutBtnOut() {
    $("btn_logout").src="/images/btn_logout.gif";
}

// 注册按钮图片鼠标事件
var regBtnOver = function() {
    $("btn_reg").src="/images/btn_reg_a.gif";
}

var regBtnOut = function() {
     $("btn_reg").src="/images/btn_reg.gif";
}

// 验证码图片鼠标单击事件
var authPicClick = function() {
    $('authcodePic').src='/tools/AntiGameWebImageGen.aspx?id=18&amp;time=' + Math.random();
}

/* 鼠标事件 OVER */

/* 载入事件处理... BEGIN */

// 登陆载入中状态事件处理, loading...
function loadingDis(msg) {
	var ed1 = new StringBuilder();
	ed1.append("<div id='closewindow'>");
	ed1.append("<div class='msg_block'>");
	ed1.append("<div class='msg_content'>");
	ed1.append("<div class='msg_quit'><img src='/images/close.gif' width='10' height='10' type='button' style='cursor:hand;' onclick='loadingClose();' alt='关闭' /></div>");
	ed1.append("<div class='msgtxt'><p>");
	ed1.append(msg);
	ed1.append("</p></div>");
	ed1.append("</div></div></div>");	 
	
	// 隐藏登陆框体
	HiddenDiv($("logonBefore"));
	 
	$("closeshow").style.display = "block";
	$("closeshow").innerHTML = ed1.toString();
}

/** 登陆中状态关闭方法... */
function loadingClose() {
	if($("closeshow").style.display=="none")
		$("closeshow").style.display="block";
	else
		$("closeshow").style.display="none";
	
	$("logonBefore").style.display="block";
}

/* 载入事件处理... OVER */

/* 登陆事件 BEGIN */
var personLogon = function() {	
	Client.Logon.IamLogon(
	objUsername.value.trim(), 
	objPassword.value.trim(),
	objVerify.value.trim(),
	personLogon_Callback);
}

// 登陆回调事件
function personLogon_Callback(res) {   
	if (res.error)	{ loadingDis(GameLogonAbout.ServerVeryBusy); return;}
	
	var msg = res.value; /*debug*/ 
	if (msg.State == false) { loadingDis(unescape(msg.Content)); refreshSiteCode(); }
	else { setCookie(SystemPrompt.CookieName, unescape(msg.Content));
	    //setCookie(SystemPrompt.ucjs,SystemPrompt.ucjs);
	    setTimeout(fnLogonResult, 10); 
	   }
	msg=null;
}

// 登陆等待事件处理... 
function logonWaiting()
{	
    // 用户名
	if(objUsername.value.trim()=="" || objUsername.value.trim().length<2) {
	    objUsername.focus();
	    divNotice.innerHTML = getLetterTipFrame(MsgStateColor.Red, GameSiteNull.Username);    
	    return false;	
	 }
	 
	// 密码
	if(objPassword.value.trim()=="" || objPassword.value.trim().length<3) {	
	    objPassword.focus();
	    divNotice.innerHTML = getLetterTipFrame(MsgStateColor.Red, GameSiteNull.Password);	
	    return false; 
	 }
	 // 验证码
	if(objVerify.value.trim()=="" || objVerify.value.trim().length<4) {	
	    objVerify.focus();	
	    divNotice.innerHTML = getLetterTipFrame(MsgStateColor.Red, GameSiteNull.VertifyCode);	
	    return false; 
	 }
	
	loadingDis(GameLogonAbout.Entering);
	setTimeout(personLogon, 100);
}

/**在验证码上表单上回车*/
var fnVerifyKeyDown=function(evt) {
	// 浏览器事件兼容性问题
    evt = (evt) ? evt : ((window.event) ? window.event : "")     
    var keyCode = evt.keyCode ? evt.keyCode : (evt.which ? evt.which :evt.charCode);
	if(keyCode==13) { logonWaiting(); }
}

/* 登陆事件 OVER */



/* 用户状态事件处理 BEGIN */

/**加载用户状态, 验证登陆 Cookies */
function loadUserState() {
 var ticket = getCookie(SystemPrompt.CookieName);
 if (ticket != null && ticket != undefined) { setTimeout(fnLogonResult, 10); }
 else {	goURL(Redirection.NoLogonHomeUrl); }
}

/** 加载用户状态 */
var fnLogonResult=function() {
	var ticket = getCookie(SystemPrompt.CookieName);
	//alert(ticket);
	//alert(Client.Logon.LogonResult);
	setTimeout('',0);	
	Client.Logon.LogonResult(ticket,fnLogonResultCallback);
	setTimeout('',0);
}
/** 加载用户状态响应 */
var fnLogonResultCallback = function(res) {
   //alert("logonResultCallback" + res.error);
	if (res.error)	{ loadingDis(GameLogonAbout.ServerVeryBusy); }
	var u = res.value;
	//alert(u);
	disUserState(u);
	u=null;
}
/** 显示用户状态 begin */
function disUserState(u) { // v 1.0
	// 判断成功加载用户状态否
	if (u == null || u == undefined || u.GameID == undefined) { 
	//loadingDis(GameLogonAbout.ServerVeryBusy);
	// 隐藏登陆框体
	HiddenDiv($("logonBefore"));
	return false; 
	}
	
	//alert("disUserState");

	// 显示登陆窗体
	var before=$("logonBefore");
	if (before.style != undefined || before.style != null)
	    before.style.display = "none";

//
setCookie(SystemPrompt.UserId,unescape(u.UserID));	    
setCookie(SystemPrompt.GameId,unescape(u.GameID));
setCookie(SystemPrompt.Nickname,unescape(u.Nickname));

//用户状态
var ustr = new StringBuilder();
ustr.append("<div class='icon'>");
ustr.append("<img class='left' src='" + u.FaceUrl + "' style='width:48px;height:48px;' alt='' />");
ustr.append("<p class='accounts'>号码：");
ustr.append(unescape(u.GameID));
ustr.append("<br />昵称：<span class='username'>");
ustr.append(unescape(u.Nickname));
ustr.append("</span></p></div>");
ustr.append("<p class='lh18 mg5'>性别：");
ustr.append(unescape(u.StrGender));
ustr.append("&nbsp;&nbsp;社团：");
ustr.append(unescape(u.GroupTitle));
ustr.append("<br />游戏币：");
ustr.append(u.Score);
ustr.append("<br />经验值：");
ustr.append(u.Experience);
//ustr.append("<img src='/images/login_exp.gif' height='14' width='61' />");
ustr.append("<br />");
ustr.append(unescape(u.MemberInfo));
ustr.append("</p>");
ustr.append("<div class='quit'>");
ustr.append("<input type='image' id='btn_logout' name='btn_logout' src='/images/btn_logout.gif' style='width:53px;height:26px;' alt='退出登录' onmouseover='logoutBtnOver();' onmouseout='logoutBtnOut();' onclick='logout();' />");
ustr.append("</div>");

	// 显示登陆状态
	$("logonSith").style.display = "block";
	$("logonSith").innerHTML = ustr.toString();
	
	//alert(ustr.toString());

	// 隐藏错误信息框
	$("closeshow").innerHTML = '';
	HiddenDiv($("closeshow"));	
}
/** 显示用户状态 end */

/* 用户状态事件处理 OVER */


/* 额外事件处理 BEGIN */
/** 登陆数据删除 begin */
function delLogonInput() {
	objPassword.value='';
	objVerify.value='';
	refreshSiteCode();
}
/** 登陆数据删除 end */
/* 额外事件处理 OVER */


/** 验证登陆 Cookies BEGIN */
function IsLogonCookies(){
	var ticket = getCookie(SystemPrompt.CookieName);	
	//window.alert(ticket);
	
	if (ticket != null && ticket != undefined) { fnLogonResult(); }
	else {	$('logonBefore').style.display='block';	}
}
/** 验证登陆 Cookies OVER */

/* 更新当前页面标题栏文字 */
function updateTitle() {
	var title = document.title;
	var index = title.indexOf('(');
	if (index != -1)
	{
	title = title.substring(0, index);
	setTitle(title);
	}
}


// 事件绑定
// IE 下的事件绑定
if(window.document.all){
       
    objUsername.attachEvent("onkeydown", fnUserKeyDown);
    objPassword.attachEvent("onkeydown",fnPassKeyDown);
    objVerify.attachEvent("onkeydown",fnVerifyKeyDown);
    objVerify.attachEvent("onkeypress",fnVerifyKeyPress);
    
    objUsername.attachEvent("onfocus", fnUserSelect);
    objPassword.attachEvent("onfocus",fnPassSelect);
    objVerify.attachEvent("onfocus",fnVerifySelect);
	
	// 按钮鼠标事件变化
	btn_logon.attachEvent("onmouseover", logonBtnOver);
	btn_logon.attachEvent("onmouseout", logonBtnOut);
	
	$("btn_reg").attachEvent("onmouseover", regBtnOver);
	$("btn_reg").attachEvent("onmouseout", regBtnOut);
	
	//$("btn_logout").attachEvent("onmouseover", logoutBtnOver);
	//$("btn_logout").attachEvent("onmouseout", logoutBtnOut);	
	
	$('authcodePic').attachEvent("onclick", authPicClick);
	btn_logon.attachEvent("onclick", logonWaiting);	
	
}
// Firefox, Opera 浏览器事件绑定
else {
	objUsername.addEventListener("keydown",fnUserKeyDown, true);
	objPassword.addEventListener("keydown",fnPassKeyDown, true);
	objVerify.addEventListener("keydown",fnVerifyKeyDown, true);
	
	objUsername.addEventListener("focus",fnUserSelect, true);
	objPassword.addEventListener("focus",fnPassSelect, true);
	objVerify.addEventListener("focus",fnVerifySelect, true);
	
	// 按钮鼠标事件变化
	btn_logon.addEventListener("mouseover", logonBtnOver, true);
	btn_logon.addEventListener("mouseout", logonBtnOut, true);
	
	$("btn_reg").addEventListener("mouseover", regBtnOver, true);
	$("btn_reg").addEventListener("mouseout", regBtnOut, true);	
	
	$('authcodePic').addEventListener("click", authPicClick, true);	
	btn_logon.addEventListener("click", logonWaiting,true);
}