﻿/**************************************************************
 * <p>网站JavaScript Document</p>
 *  @Author:Summer
 **************************************************************/
 /* 消息长度 */
var regMsgLen = 315;
var objUsername=$("in_username");
var objPassword1=$("in_password1");
var objPassword2=$("in_password2");
var objVerify=$("in_verifycode");
var btn_morefaces=$("btn_morefaces");
var btn_div_moreinfo=$("btn_div_moreinfo");
//var btn_reg=$("btn_reg");
var btn_reg=$("ctl00_cphmain_reg_btn_reg");
//var btn_index=$("btn_index");



/********* 验证码事件处理 BEGIN **********************************/
// 为空验证
function checkVerifycode() {
    if(objVerify.value.trim()=="") { $("chk_verifycode").innerHTML=getWidthTipFrame("blue","验证码不能为空&nbsp;",regMsgLen);	return false; }
    else if (objVerify.value.trim().length < 5) { { $("chk_verifycode").innerHTML=getWidthTipFrame("red","验证码输入错误&nbsp;",regMsgLen);	return false; } }
    else { return true; }
}

function fnVerifycodeKeyUp() {
    $("chk_verifycode").innerHTML = getWidthTipFrame(MsgStateColor.Loading, "正在建立连接……", regMsgLen);   
	setTimeout("hitVerifycodeTimeout();", 100);
}

function hitVerifycodeTimeout(){
    if (!checkVerifycode()) { return;}
	var vcode = objVerify.value.trim();
	Client.Reg.CheckVerifycode(vcode, showhitcodeCallback);
}

//
function showhitcodeCallback(res) {
    var resContainer = $("chk_verifycode");    
	if (res.error){ resContainer.innerHTML = getWidthTipFrame(MsgStateColor.Red,"验证码输入错误，请重新填写。", regMsgLen); }
	else if (res.value == "1") { resContainer.innerHTML = getWidthTipFrame(MsgStateColor.Red,"验证码输入错误，请重新填写。", regMsgLen); }
	else { resContainer.innerHTML = getWidthTipFrame(MsgStateColor.Right, "验证码输入正确", regMsgLen); }
}

/********* 验证码事件处理 OVER **********************************/

/********* 协议事件处理 BEGIN **********************************/
function fnAgreementOnClick () {    
	if ($("in_agreement").checked==false) { $("in_agreement").focus(); $("chk_agreement").innerHTML=getWidthTipFrame(MsgStateColor.Red,AccountsAbout.AgreeNotChoice); return false; }
	else { $("chk_agreement").innerHTML=getWidthTipFrame(MsgStateColor.Right, AccountsAbout.AgreeOk); return true;}
}

// 协议 
function openagreement(){
    openPic("/reg/agreement.htm");
}

/********* 协议事件处理 OVER **********************************/

/********* 密码处理 BEGIN **********************************/
// 密码
function fnPassword1Check() {
	if(!isValidAccountPass(objPassword1.value.trim())) { $("chk_password1").focus(); $("chk_password1").innerHTML=getWidthTipFrame(MsgStateColor.Red, PassSafetyAbout.PassComboIllegal); return false; }
	if(objPassword1.value.trim()=="" || objPassword1.value.trim().length < 6)	{ $("chk_password1").focus(); $("chk_password1").innerHTML=getWidthTipFrame(MsgStateColor.Red, PassSafetyAbout.PassNotEnoughLen); return false; }
	else { $("chk_password1").innerHTML=getWidthTipFrame(MsgStateColor.Right, GameSiteSuccess.FormatRight,0); return true;}
}

// 确认密码
var fnPassword2OnBlur=function () {	
	if(objPassword2.value.trim()=="") { $("chk_password2").innerHTML=getWidthTipFrame("", PassSafetyAbout.ConfigPassError_v1,regMsgLen); return false; }
	else{
		if(objPassword1.value.trim()!=objPassword2.value.trim()) { $("chk_password2").innerHTML =getWidthTipFrame(MsgStateColor.Red, PassSafetyAbout.ConfigPassNoMatch, regMsgLen); return false; }
		else { $("chk_password2").innerHTML=getWidthTipFrame(MsgStateColor.Right, "",regMsgLen); }
		}
}

// 在确认密码表单回车或Tab
var fnPassword2KeyDown=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; }
}

/********* 密码处理 OVER **********************************/


/********* 证件号码 BEGIN **********************************/
// 证件
function fnChkCardtype() {
    var card = $("sel_cardtype");
    if (card.value.trim() == "") { $("chk_cardtype").innerHTML = getWidthTipFrame(MsgStateColor.Red, SecretSafetyAbout.CardIdIllegal, regMsgLen); return false;}
    else { $("chk_cardtype").innerHTML = getWidthTipFrame(MsgStateColor.Right, "", regMsgLen); return true; }
} // fnChkCardtype

// 证件号码
function fnChkCardtypenum() {
    var m = document.forms[0];
    if (m.in_cardtypenum.value.trim() == "") {
        $("chk_cardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Red, SecretSafetyAbout.CardIdNull, regMsgLen); return false;
    }
    //if ($("sel_cardtype").value.trim()=="1"){
    if (m.in_cardtypenum.value.trim().length < 15) {
        $("chk_cardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Red, "身份证号码必须在15-18位之间", regMsgLen); return false;
    }
    //}

    if (m.in_cardtypenum.value.trim().length < 6) {
        $("chk_cardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Red, SecretSafetyAbout.CardIdIllegal, regMsgLen); return false;
    }
    else {
        $("chk_cardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Right, "", regMsgLen); return true;
        return true;
    }
} // fnChkCardtypenum

// 证件号码匹配
function fnChkConfigCardtypenum() {
    var m = document.forms[0];
    if (m.in_cardtypenum.value.trim() != m.in_configCardtypenum.value.trim()) { $("chk_configCardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Red, SecretSafetyAbout.CardIdConfigIllegal, regMsgLen); return false; }
    else { $("chk_configCardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Right, "", regMsgLen); return true; }
} // fnChkConfigCardtypenum

/********* 证件号码 OVER **********************************/


/********* 注册处理 BEGIN **********************************/
// 
function cancel(){
   objUsername.focus();
}

// 回首页
function fnReturnIndex() {
  goURL(Redirection.GameHomeUrl);
}

// 用户名合法性检测
function checkUsername() {
	//var nickname = objUsername.value.trim();
	var nickname = objUsername.value;
	if (nickname.length == 0) {
		$("chk_username").innerHTML = getWidthTipFrame(MsgStateColor.Red, AccountsAbout.LengthNotEnough, regMsgLen);
		return false;
		}
	var rValid = isValidAccountCombination(nickname);
	if (rValid == 1 ){
		$("chk_username").innerHTML=getWidthTipFrame(MsgStateColor.Red, AccountsAbout.ContainSpace, regMsgLen);
		return false;
	}	
	if (rValid == 2 || rValid == 4) {
		$("chk_username").innerHTML = getWidthTipFrame(MsgStateColor.Red, AccountsAbout.ComboIllegal, regMsgLen);
		return false;
	}	
	if(rValid ==7) {
		$("chk_username").innerHTML=getWidthTipFrame(MsgStateColor.Red,AccountsAbout.ComboIllegal, regMsgLen);
		return false;
	}
	return true;
}

function fnHitUsernameOnBlur(){
	var nickname = objUsername.value.trim();
	if (!checkUsername()) { return false;}
	$("chk_username").innerHTML = getWidthTipFrame(MsgStateColor.Loading, SystemPrompt.DealingQuery, regMsgLen);
	setTimeout("hitUsernameTimeout();", 100);
}

function hitUsernameTimeout(){	
	var nickname = objUsername.value.trim();
	var par="";
	var url="/tools/ajax.aspx?t=checkusername&username="+escape(nickname);
	ajaxRead(url, "showhitresult(obj,'" + nickname + "');");
}

function showhitresult(obj, username)
{
	var res = obj.getElementsByTagName('result');
	var resContainer = $("chk_username");

	var result = "";
	if (res[0] != null && res[0] != undefined)
	{
		if (res[0].childNodes.length > 1) {
			result = res[0].childNodes[1].nodeValue;
		} else {
			result = res[0].firstChild.nodeValue;    		
		}
	}
	if (result == "1")
	{
		resContainer.innerHTML = getWidthTipFrame(MsgStateColor.Red,"对不起，您输入的用户名<font color='red'>\"" +  htmlEncode(username, true, 4) +"\"</font>已经被他人使用或被禁用，请选择其他名字后再试。");
	}
	else if (result == "2")
	{
	    resContainer.innerHTML = getWidthTipFrame(MsgStateColor.Red, SystemPrompt.ServerBusy, 0);
	}
	else
	{
		resContainer.innerHTML = getWidthTipFrame(MsgStateColor.Right, AccountsAbout.CanUse);
	}
}

function checkSubmit(){
		if($("in_agreement").checked==false) { $("in_agreement").focus(); return false;	}
		if (!checkUsername()) { objUsername.focus(); return false; }
		if(objPassword1.value.trim() =="" || objPassword1.value.trim().length < 6) { objPassword1.focus(); return false;}
		if(objPassword2.value.trim() =="" || objPassword2.value.trim().length < 6)	{ objPassword2.focus();	return false; }
		if (objPassword2.value.trim() != objPassword1.value.trim()) { objPassword2.focus(); return false; }
		if (!fnChkCardtype()) { $("sel_cardtype").focus(); return false; }
		if (!fnChkCardtypenum()) { $("in_cardtypenum").focus(); return false; }
		if (!fnChkConfigCardtypenum()) { $("in_configCardtypenum").focus(); return false; }	
		if(objVerify.value.trim()=="" || objVerify.value.trim().length < 4) { objVerify.focus(); return false;	}
		
		// 截取形象
		getUserfaces();	
		submitState();	
		
		// 省份
		if ($("hid_moreinfo").value == "2222fe4dcd14e7d5")	{ $("hid_ap").value = getAreaName($("sel_addressp").value);	 $("hid_ac").value = getAreaName($("sel_addressc").value); }
}

function enterSubmit(evt) {
    // 浏览器事件兼容性问题
    evt = (evt) ? evt : ((window.event) ? window.event : "");     
    var keyCode = evt.keyCode ? evt.keyCode : (evt.which ? evt.which :evt.charCode);
    
    if (keyCode==13) { btn_reg.focus();  }
}

/********* 注册处理 OVER **********************************/

/********* 焦点事件处理 BEGIN **********************************/

var fnUsernameOnFocus = function() {
    objUsername.select();
    $("chk_username").innerHTML = getWidthTipFrame(MsgStateColor.Blue, AccountsAbout.LengthNotEnough, regMsgLen);
}

var fnPassword1OnFocus = function() {
    objPassword1.select();
    $("chk_password1").innerHTML = getWidthTipFrame(MsgStateColor.Blue, PassSafetyAbout.PassNotEnoughLen, regMsgLen);
}

var fnPassword2OnFocus = function() {
    objPassword2.select();
    $("chk_password2").innerHTML = getWidthTipFrame(MsgStateColor.Blue, PassSafetyAbout.ConfigPassError_v1, regMsgLen);
}

var fnVerifyOnFocus = function() {
    objVerify.select();
    $("chk_verifycode").innerHTML = getWidthTipFrame(MsgStateColor.Blue, AuthcodeNull, regMsgLen);
}

// 证件
var fnCardtypeOnfocus = function() {
    $("chk_cardtype").select();
    $("chk_cardtype").innerHTML = getWidthTipFrame(MsgStateColor.Blue, SecretSafetyAbout.CardTypesNUll, regMsgLen);
}

// 证件号码
var fnCardtypenumOnfocus = function() {
    $("in_cardtypenum").select();
    $("chk_cardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Blue, SecretSafetyAbout.CardIdNull, regMsgLen);  
}

// 匹配证件号码
var fnConfigCardtypenumOnfocus = function() {
    $("in_configCardtypenum").select();
    $("chk_configCardtypenum").innerHTML = getWidthTipFrame(MsgStateColor.Blue, SecretSafetyAbout.CardIdConfigNull, regMsgLen);  
}

/********* 焦点事件处理 OVER **********************************/

/********* 键盘事件处理 BEGIN **********************************/

var fnPasswordStrengthOnKeyUp=function() {    
    pwStrength(objPassword1.value)
}

/********* 键盘事件处理 OVER **********************************/



/********* 省份地区 BEGIN **********************************/

/**输出省下面的地区*/
var fnSelAddresscOnchange = function(flag) {
    var objname = $("sel_addressp");
    var desname = $("sel_addressc");
	var j=0;	
	desname.options.length=0;		
	if (objname.value.length!=0)
	{
		var catv=objname.value.substr(0,2);
	
		for(var i=0;i<areaCount;i++)
		{
			if(catv==""||catv==null) //当为空或null时跳出循环
			break;
			var areaNo=regArea[i][0]; 
			var areaNm= regArea[i][1];
			
			if (areaNo!=null && areaNo.length >= 2 && areaNo.substr(0,2)==catv)			
			{		 
				if(areaNo.substr(2,2)=="00")
					desname.options[j]= new Option(areaNm,areaNo);
				else									
					desname.options[j]= new Option(areaNm,areaNo);
				j++;
			}			
		}		
	}
	else
	{
		desname.length=0;
		var areaNm="";
		if(objname.value=="")
			areaNm ="";
		var jobNo="";
		var areaNo="";
		desname.options[j]= new Option(areaNm,areaNo);
	}	
	
   if($("sel_addressp").value!=0)
      $("chk_addressp").innerHTML=getWidthTipFrame("right","",0);
   else
     $("chk_addressp").innerHTML="";
}

/********* 省份地区 OVER **********************************/

/********* 玩家形象设置 BEGIN **********************************/

var fnMorefacesBtnOver = function() {
   btn_morefaces.src="/images/reg/btn_morefaces_a.gif";
}

var fnMorefacesBtnOut = function() {
   btn_morefaces.src="/images/reg/btn_morefaces.gif";
}

function fnOpenUserfaces() {  // 形像的显示与隐藏	
	openWindow(Redirection.UserfacesUrl, 800, 500);
	return false;
}

function getUserfaces() { 	// 截取头像ID
	var vcaimg =  $("img_userfaces_reg");
	var vurlface = $("hid_faceurl");
	var faceid = vcaimg.src.substr(vcaimg.src.length-6,3);
					
	if (faceid.charAt(0) == "/")  {	vurlface.value = faceid.substr(1,1);} 
	else if (faceid.charAt(2) == ".") {	vurlface.value = faceid.substr(0, 2); }
	else { vurlface.value = faceid; }	
} // 用户输入


/********* 玩家形象设置 OVER **********************************/

/********* 更多信息 BEGIN **********************************/
var fnMoreInfoOnClick = function() {
   var a = $("regoptions");
	if(a.style.display=='')
	{
		a.style.display='none';
		$("hid_moreinfo").value="";
	}
	else
	{
		a.style.display='';
		$("hid_moreinfo").value="2222fe4dcd14e7d5";
	}
}

/********* 更多信息 OVER **********************************/

/********* 返回首页 BEGIN **********************************/
var fnBtnIndexOnClick = function() {
    alert(Redirection.GameHomeUrl);
   // goURL(Redirection.GameHomeUrl);
   window.location.href=Redirection.GameHomeUrl;
}

/********* 返回首页 OVER **********************************/

/********* 提交状态 BEGIN **********************************/
function submitState()
{
	var randomNum = Math.random();	
	$("hid_submit").value = randomNum;
}

/********* 提交状态 OVER **********************************/

// 事件绑定
// IE 下的事件绑定
if(window.document.all){
    // onblur
   objUsername.attachEvent("onblur", fnHitUsernameOnBlur);
   objPassword2.attachEvent("onblur", fnPassword2OnBlur);
   objPassword1.attachEvent("onblur", fnPasswordStrengthOnKeyUp);
   objVerify.attachEvent("onblur", fnVerifycodeKeyUp);
   $("sel_cardtype").attachEvent("onblur", fnChkCardtype);
   $("in_cardtypenum").attachEvent("onblur", fnChkCardtypenum);
   $("in_configCardtypenum").attachEvent("onblur", fnChkConfigCardtypenum);
   
   // onkeydown
   objUsername.attachEvent("onkeydown", enterToTab);
   objPassword1.attachEvent("onkeydown", enterToTab);
   objPassword2.attachEvent("onkeydown", fnPassword2KeyDown);
   $("sel_cardtype").attachEvent("onkeydown", enterToTab);
   $("in_cardtypenum").attachEvent("onkeydown", enterToTab);
   $("in_configCardtypenum").attachEvent("onkeydown", enterToTab);
   objVerify.attachEvent("onkeydown", enterSubmit);
   
   
   // onkeyup
   objPassword1.attachEvent("onkeyup", fnPasswordStrengthOnKeyUp);
   objVerify.attachEvent("onkeyup", fnVerifycodeKeyUp);
   
   // onfocus
   objUsername.attachEvent("onfocus", fnUsernameOnFocus);
   objPassword1.attachEvent("onfocus", fnPassword1OnFocus);
   objPassword2.attachEvent("onfocus", fnPassword2OnFocus);
   objVerify.attachEvent("onfocus", fnVerifyOnFocus);
    $("sel_cardtype").attachEvent("onfocus", fnCardtypeOnfocus);
    $("in_cardtypenum").attachEvent("onfocus", fnCardtypenumOnfocus);
    $("in_configCardtypenum").attachEvent("onfocus", fnConfigCardtypenumOnfocus);
    
    $("sel_addressp").attachEvent("onchange", fnSelAddresscOnchange);
    
    // 按钮鼠标事件变化
	btn_morefaces.attachEvent("onmouseover", fnMorefacesBtnOver);
	btn_morefaces.attachEvent("onmouseout", fnMorefacesBtnOut);
    
    // 更多信息   
    $("btn_moreInfo").attachEvent("onclick", fnMoreInfoOnClick);
      
    // onclick    
   btn_reg.attachEvent("onclick", checkSubmit);
   //btn_index.attachEvent("onclick", fnBtnIndexOnClick);
   btn_morefaces.attachEvent("onclick", fnOpenUserfaces);
}
// Firefox, Opera 浏览器事件绑定
else {
    objUsername.addEventListener("blur", fnHitUsernameOnBlur, true);  
    objPassword2.addEventListener("blur", fnPassword2OnBlur, true);
    objPassword1.addEventListener("blur", fnPasswordStrengthOnKeyUp, true);
    objVerify.addEventListener("blur", fnVerifycodeKeyUp, true);
    $("sel_cardtype").addEventListener("blur", fnChkCardtype, true);
    $("in_cardtypenum").addEventListener("blur", fnChkCardtypenum, true);
    $("in_configCardtypenum").addEventListener("blur", fnChkConfigCardtypenum, true);
    
    objUsername.addEventListener("keydown", enterToTab, true);
    objPassword1.addEventListener("keydown", enterToTab, true); 
    objPassword2.addEventListener("keydown", fnPassword2KeyDown, true);
    objVerify.addEventListener("keydown", enterSubmit, true);
    $("sel_cardtype").addEventListener("keydown", enterToTab, true);
    $("in_cardtypenum").addEventListener("keydown", enterToTab, true);
    $("in_configCardtypenum").addEventListener("keydown", enterToTab, true);
    
    objPassword1.addEventListener("keyup", fnPasswordStrengthOnKeyUp, true);
    objVerify.addEventListener("keyup", fnVerifycodeKeyUp, true);
    
    objUsername.addEventListener("focus", fnUsernameOnFocus, true);
    objPassword1.addEventListener("focus", fnPassword1OnFocus, true);
    objPassword2.addEventListener("focus", fnPassword2OnFocus, true);
    objVerify.addEventListener("focus", fnVerifyOnFocus, true);
    $("sel_cardtype").addEventListener("focus", fnCardtypeOnfocus, true);
    $("in_cardtypenum").addEventListener("focus", fnCardtypenumOnfocus, true);
    $("in_configCardtypenum").addEventListener("focus", fnConfigCardtypenumOnfocus, true);
        
    
    // 按钮鼠标事件变化
	btn_morefaces.addEventListener("mouseover", fnMorefacesBtnOver, true);
	btn_morefaces.addEventListener("mouseout", fnMorefacesBtnOut, true);

    $("sel_addressp").addEventListener("change",fnSelAddresscOnchange, true);  
    $("btn_moreInfo").addEventListener("click", fnMoreInfoOnClick, true);    
    
   btn_reg.addEventListener("click", checkSubmit, true);
   //btn_index.addEventListener("click", fnBtnIndexOnClick, true);
   btn_morefaces.addEventListener("click", fnOpenUserfaces, true); 
}









