﻿
function jlCheckServer( allst)
{
	//alert("server="+ allst);
	document.getElementById("check_checkcode_info").style.display = '';
}


function jlCheckTGUserID()
{
	 var o= document.getElementById("fTGUserID")  ;
	 var d = document.getElementById("fTGUserID_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	 if ( vv == "" ) {   return true;	 }
	 if (  !jlInt(vv) ) {  d.innerHTML = '<span class="regFalse" >推广员代码格式错误，请重新输入，如果没有推广员则无需输入。</span>';  return false ;	 }
	 d.innerHTML ='<span class="regDec"><a href="http://2061.gameyj.com/Promoter/index.html" target="_blank" style="text-decoration:underline;" >推广员</a>代码（数字），如没有可不填。</span>';
	 return true;
}

function jlCheckPhone()
{
	 var o= document.getElementById("phone")  ;
	 var d = document.getElementById("phone_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	 if ( vv == "" ) {   return true;	 }
	 if ( !jlPhone(vv) ) {  d.innerHTML = '<span class="regFalse" >手机号码格式错误，请重新输入或者选择不输入。</span>';  return false ;	 }
	 d.innerHTML ='<span class="regDec">此信息用于官方与玩家之间的沟通，绝对不会外泄，也不会用于商业（如广告）等用途。</span>';
	 return true;
}

function jlCheckCode()
{
	 document.getElementById("check_checkcode_info").style.display = 'none';
	 var o= document.getElementById("checkcode")  ;
	 var d = document.getElementById("checkcode_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	 if ( vv == "" ) {  d.innerHTML = '<span class="regFalse" >验证码为必填项。</span>';  return false ;	 }
	 if ( vv.length !=4 || !jlInt(vv)  ) {  d.innerHTML = '<span class="regFalse" >验证码格式有误。</span>';  return false ;	 }
	 d.innerHTML ='<span class="regDec"></span>';
	 return true;
}
function jlCheckPid()
{
	var o= document.getElementById("pid")  ;
	 var d = document.getElementById("pid_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	 var TrueNameFlag = document.getElementById("fTrueNameFlag") ; //是否采用实名 1为是
	 var noTx = "请输入您的身份证号码。"; //，如果您不想在此输入身份证号码，请勾选上面的选项
	 if(TrueNameFlag=="0") noTx = "请输入您的身份证号码。";
	 
	 if ( vv == "" ) {  d.innerHTML = '<span class="regFalse" >'+ noTx +'</span>';  return false ;	 }
      var result = checkIdcard( vv.replace(/(^\s*)|(\s*$)/g, "") );
      if (result != 0) {d.innerHTML = '<span class="regFalse" >您输入的身份证格式不对，请重新输入。</span>';  return false ;   }
		d.innerHTML ='<span class="regDec"></span>';
	return true;
}
function jlCheckTrueName()
{
	 var o= document.getElementById("truename")  ;
	 var d = document.getElementById("truename_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	 var TrueNameFlag = document.getElementById("fTrueNameFlag") ; //是否采用实名 1为是
	 var noTx = "请输入您身份证上的姓名。"; //，如果您不想在此输入姓名，请勾选上面的选项
	 if(TrueNameFlag=="0") noTx = "请输入您身份证上的姓名。";
	 
	 if ( vv == "" ) {  d.innerHTML = '<span class="regFalse" >'+ noTx +'</span>';  return false ;	 }
	 var unlen = vv.length;
	 if(unlen < 2 || unlen > 4) {d.innerHTML = '<span class="regFalse" >您输入的姓名格式不对，请重新输入。</span>'; return false;} 
     if (!jlTrueNane(vv)) {d.innerHTML = '<span class="regFalse" >您输入的姓名格式不对，请重新输入。</span>'; return false;}
	d.innerHTML ='<span class="regDec"></span>';
	return true;
}
function jlCheckEmail()
{
	 var o= document.getElementById("email")  ;
	 var d = document.getElementById("email_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	 if ( vv == "" ) {  d.innerHTML = '<span class="regFalse" >电子邮件为必填项。</span>';  return false ;	 }
	 if( !checkEmail(vv) || HadBadCode(vv)){  d.innerHTML = '<span class="regFalse" >邮件格式错误，请输入正确的电子邮件。</span>';  return false ;	 }
	d.innerHTML ='<span class="regDec"></span>';
	return true;
}
function jlCheckPassConfirm()
{
	 var o= document.getElementById("confirm_password")  ;
	 var d = document.getElementById("confirm_password_info") ;
	 d.innerHTML ="";
	 var vv = o.value.replace(/\s/g, "") ;
	var unlen = vv.length;
	if( vv == "" || unlen < 1 ){ d.innerHTML = '<span class="regFalse" >重输密码为必填项。</span>'; return  false;}
	if(unlen < 6 || unlen > 15) { d.innerHTML = '<span class="regFalse" >格式错误，密码必须由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>'; return false; }
	if(vv != document.getElementById("password").value )  {d.innerHTML = '<span class="regFalse" >两次密码输入不一致，请重新输入。</span>'; return  false;}
	d.innerHTML ='<span class="regDec"></span>';
	return true;
}

function jlCheckPassWord()
{
	 var o= document.getElementById("password")  ;
	 var d = document.getElementById("password_info") ;
	 var vv = o.value.replace(/\s/g, "") ;
	// if ( vv == "" ) {   d.innerHTML = '<span class="regFalse" >密码为必填项。</span>';	   return  false ;	 }
	var unlen = vv.length;
	if( vv == ""  || unlen < 1 ){ d.innerHTML = '<span class="regFalse" >密码为必填项。</span>'; return  false;}
    if(unlen < 6 || unlen > 15) {d.innerHTML = '<span class="regFalse" >格式错误，密码必须由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>'; return  false ;}
	if( !checkPasswd(vv) || HadBadCode(vv) ) {d.innerHTML = '<span class="regFalse" >格式错误，密码必须由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>'; return  false;}
	var result = checkSafePassword(vv.replace(/(^\s*)|(\s*$)/g, "") );
	if (result != 0) { d.innerHTML = '<span class="regFalse" >密码不安全，密码必须由6-15个字符组成（字母、数字、下划线、数字键上的符号）,不能全为数字。</span>'; return false; }
    if (isNumber(vv)) { d.innerHTML = '<span class="regFalse" >密码不安全，密码必须由6-15个字符组成（字母、数字、下划线、数字键上的符号）,不能全为数字。</span>'; return false; }
	d.innerHTML ='<span class="regAlert"></span>';
	return true;
}

function jlCheckname() {
    var username = document.getElementById("username").value ;
	var Data  ;
    Data = username;
    var d = document.getElementById("username_info");
	var vv = username.replace(/\s/g, "") ;
    //document.getElementById("username_info").style.display = "none";
	var unlen2 = vv.length;
	if( vv == "" || unlen2 < 1 ){ d.innerHTML ='<span class="regFalse" >通行证为必填项。</span>'; return false;}
	if(unlen2 < 6 || unlen2 > 15){ d.innerHTML = '<span class="regFalse" >格式错误，账号必须以字母开头，由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>'; return false ; }
	if( vv.indexOf("-") >-1 ) { d.innerHTML = '<span class="regFalse" >格式错误，账号必须以字母开头，由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>'; return false ; }
	
    var unlen = username.replace(/[^\x00-\xff]/g, "**").length;
    if(unlen < 6 || unlen > 15) {
	    d.innerHTML =(unlen < 6 ? '<span class="regFalse" >格式错误，账号必须以字母开头，由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>' : "用户名太长!");//此项为必填项 ->用户名太短
	    return false ;
	}
	//if (Form1.username.value.replace(/\s/g, "") == "")
	//{ d.innerHTML = '<span class="regFalse" >通行证为必填项</span>'; return false; }
	var oo = username.replace(/(^\s*)|(\s*$)/g, "") ;
	if (!checkbadname(oo))
	{ d.innerHTML = '<span class="regFalse" >您填写的会员名禁止注册!</span>'; return false; }
	if (!checkUserName(oo))
	{ d.innerHTML = '<span class="regFalse" >格式错误，账号必须以字母开头，由6-15个字符组成（字母、数字、下划线、数字键上的符号）。</span>'; return false ; }
	d.innerHTML ="";
	
    var Request = new XmlHttpRequest();
    Request.send("tools/AjaxData.aspx", "post", "Type=1&Data=" + Data, Back);
	return true ;
}

// son function
//检查汉字格式   
function jlTrueNane(s) {
    //var patrn = /^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$/ ;
	//if (patrn.test(s)) {
	if(s=="") return false ;
	var vv = s.replace( /[^\u4E00-\u9FA5]/g , "") ;
    if (s.length == vv.length ) {
        return true
    }
    else {
        return false
    }
}

function jlPhone(m){
	if(m.length > 11){
	return false;
	}else{
    	var t=/^(1\d{10})|(15\d{9})|(18\d{9})|(0\d{10,11})$/;
    	return t.test(m);
    }
}
function jlInt(m){
	if(isNaN(m))return false ; 
	return true ; 
}

//提交表单时作的一系列验证
function jlsubmitForm() {
	var tag = 0;
	if( !jlCheckname()  ) { tag =1 ; //alert('1');
	}
	if(  !jlCheckPassWord()  ) { tag =1 ; //alert('2');
	}
	if(  !jlCheckPassConfirm() ){ tag =1 ; //alert('3');
	}
	if( !jlCheckEmail() ){ tag =1 ; //alert('4');
	}
	if( !jlCheckPhone() ){ tag =1 ; //alert('5');
	}
	if( !jlCheckCode() ){ tag =1 ; //alert('7');
	}
	
	var TrueNameFlag = document.getElementById("fTrueNameFlag").value ; //是否采用实名 1为是
	var ckTrueNameFlag= true ;
	if(TrueNameFlag=="0"){
	   var o1 = document.getElementById("submit_type") ;
	   //alert("ol select="+ o1.checked );
	   if (o1.checked){ ckTrueNameFlag = false ;//alert('88'); 
	   }
	}
	if(ckTrueNameFlag){
		if( !jlCheckTrueName()  ) { tag =1 ; //alert('8');
			}
			if(  !jlCheckPid() ){ tag =1 ; //alert('9');
			}
	}
	
	var o2 = document.getElementById("agreement") ;
	if (!o2.checked) {
        document.getElementById("agree_Info").innerHTML = "请阅读《亿佳通行证用户协议》，并在前面打钩!";
        tag = 1;
		//alert('10');
    }
    o2 = document.getElementById("agreement2");
    if (!o2.checked) {
        document.getElementById("agree_Info").innerHTML = "请阅读《网络游戏防沉迷系统及实名认证服务协议》，并在前面打钩!";
        tag = 1;
        //alert('10');
    }
    if (tag == 1 || flag == 1 ) // || flag == 1
      {  //alert('11');
		return false;
	}
    else {
        var o3 = document.getElementById("submitbtn") ;
		o3.disabled = true;
        //alert('12');
		return true;
    }
	return true ;
}
//显示输入信息的提示

function ShowTips(n) {
    //document.getElementById("check_username_info").display = "none";
    //document.getElementById("check_password_info").display = "none";
    //document.getElementById("confirm_password_info").display = "none";
    //document.getElementById("check_email_info").display = "none";
    //document.getElementById("check_truename_info").display = "none";
    //document.getElementById("check_pid_info").display = "none";
    document.getElementById("check_checkcode_info").style.display = 'none';
	
    switch (n) {
        case 1:
            document.getElementById("username_info").innerHTML = "通行证以字母开头，由6-15个字符组成（可以为字母，数字，下划线，数字键上的符号）。"; break;
        case 2:
            document.getElementById("password_info").innerHTML = '密码由6-15个字符组成（字母、数字、下划线、数字键上的符号），请尽量组合设置，以保安全。'; break;
        case 3:
            document.getElementById("email_info").innerHTML = '<span class="regAlert" >没有电子邮件，推荐使用<a href="http://mail.qq.com/cgi-bin/loginpage" target="blank" style="text-decoration:underline;color:#FF7200;" >QQ邮箱</a>(你的QQ号码加上@QQ.com就是你的QQ邮箱地址),<a href="http://mail.163.com/" target="blank" style="text-decoration:underline;color:#FF7200;" >163邮箱</a>!</font>'; break;
        case 4:
            document.getElementById("truename_info").innerHTML = '请输入您身份证上的姓名。'; break;
        case 5:
            document.getElementById("pid_info").innerHTML = '请输入您的身份证号码。 '; break;
        case 6:
            document.getElementById("checkcode_info").innerHTML = '请输入图片上的数字，点击图片可以刷新。'; break;
        default: break;
    }
}
var flag = 0;
//提交表单时作的一系列验证

//检查用户名的格式

function checkUserName(s) {
    var patrn = /^[a-zA-Z]{1}[a-zA-Z0-9\-_]{5,15}$/;
    if (patrn.test(s)) {
        return true
    }
    else {
        return false
    }
}
//检查用户名的格式

function checkbadname(s) {
    var badname = new Array("admin", "administrator");

    for (var i = 0; i < badname.length; i++) {
        if (s.toString().toLowerCase() == badname[i]) {
            break;
        }
    }
    if (i == badname.length)
    { return true }
    else
    { return false}
}

//检查密码的长度要求
function checkPasswd(s) {

    var patrn = /.{6,15}/;
    if (patrn.test(s)) {
        return true
    }
    else {
        return false
    }
}

//检查密码的格式要求
function checkSafePassword(str) {
    if (str == document.getElementById("username").value)
        return 1;
    for (var i = 0; i < str.length; i++) {
        if (str.charAt(0) != str.charAt(i))
            break;
    }
    if (i == str.length) return 2;

    var seqStr = "01234567890";
    if (seqStr.indexOf(str) != -1) return 3;

    var seqStr = "9876543210";
    if (seqStr.indexOf(str) != -1) return 3;

    var seqStr = "abcdefghijklmnopqrstuvwxyz";
    if (seqStr.indexOf(str) != -1) return 4;

    var seqStr = "zyxwvutsrqponmlkjihgfedcba";
    if (seqStr.indexOf(str) != -1) return 4;

    var seqStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (seqStr.indexOf(str) != -1) return 5;

    var seqStr = "ZYXWVUTSRQPONMLKJIHGFEDCBA";
    if (seqStr.indexOf(str) != -1) return 5;

    return 0;
}

//校验身份证

function checkIdcard(idcard) {
    var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }

    var idcard, Y, JYM;
    var S, M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    //地区检验

    if (area[parseInt(idcard.substr(0, 2))] == null) return 4;
    //身份号码位数及格式检验

    switch (idcard.length) {
        case 15:
            if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //测试出生日期的合法性

            } else {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //测试出生日期的合法性

            }
            if (ereg.test(idcard)) return 0;
            else return 2;
            break;
        case 18:
            //18位身份号码检测

            //出生日期的合法性检查 
            //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
            //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
            if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
                ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //闰年出生日期的合法性正则表达式
            } else {
                ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式
            }
            if (ereg.test(idcard)) {//测试出生日期的合法性

                //计算校验位

                S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3;
                Y = S % 11;
                M = "F";
                JYM = "10X98765432";
                M = JYM.substr(Y, 1); //判断校验位

                if (M == idcard_array[17]) return 0; //检测ID的校验位
                else return 3;
            }
            else return 2;
            break;
        default:
            return 1;
            break;
    }
}

//检查邮箱格式   
function checkEmail(s) {
    //alert("s："+s);
    var patrn = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    if (patrn.test(s)) {
        return true
    }
    else {
        return false
    }
}


function showStrength() {
	var o= document.getElementById("password")  ;
	o.value = o.value.replace(/\s/g, "");
    //Form1.password.value = Form1.password.value.replace(/\s/g, "");
    var strength = checkPwdStrength(o.value);
    var show = document.getElementById("password_level");
    switch (strength) {
        case 2:
            show.innerHTML = "中"; break;
        case 3:
            show.innerHTML = "强"; break;
        case 4:
            show.innerHTML = "很强"; break;
        default:
            show.innerHTML = "弱"; break;
    }

}

//判断密码强度
function checkPwdStrength(pwd) {

    var strength = 0;
    var str1 = "0123456789";
    var str2 = "abcdefghijklmnopqrstuvwxyz";
    var str3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (pwd.length > 5) {
        document.getElementById("div_password_level").style.display = "block";
        for (var i = 0; i < pwd.length; i++) {
            if (str1.indexOf(pwd.charAt(i)) > -1) {
                strength++;
                break;
            }
        }
        for (var i = 0; i < pwd.length; i++) {
            if (str2.indexOf(pwd.charAt(i)) > -1) {
                strength++;
                break;
            }
        }
        for (var i = 0; i < pwd.length; i++) {
            if (str3.indexOf(pwd.charAt(i)) > -1) {
                strength++;
                break;
            }
        }
        for (var i = 0; i < pwd.length; i++) {
            if ((str1 + str2 + str3).indexOf(pwd.charAt(i)) == -1) {
                strength++;
                break;
            }
        }
    }
    return strength;
}

function Back(status, res) {
    flag = 0;
     var d = document.getElementById("username_info");
	if (status == "ok") {
        var IsExists = res.responseText;
        if (IsExists == "YES") {
            //document.getElementById("username_info").style.display = "none";
            //document.getElementById("check_username_info").style.color = "red";
            d.innerHTML = '<span class="regFalse">对不起，该账号已经被使用，请重新输入。</span>';
            flag = 1;
        }
        else {
            //document.getElementById("username_info").style.display = "none";
            //document.getElementById("check_username_info").style.color = "green";
            flag = 0 ;
			d.innerHTML = '<span class="regTrue">恭喜你，该账号可以使用。</span>';
        }
    }
}

function checkboxclick(obj)
{
    var o= document.getElementById("truename")  ;
	var o2 = document.getElementById("pid")  ;
	o.disabled=obj.checked;
	//Form1.truename.disabled=obj.checked;
	if (obj.checked){ 
	//Form1.truename.value='';
	o.value='';
	document.getElementById("truename_info").innerHTML ='<span class="regDec">姓名、身份证是确定账号最后归属的依据，也是是否纳入<a  href="faq.aspx#03" target="_blank" style="text-decoration:underline;" >防沉迷系统</a>的依据。姓名身份证一经填写，将不可修改，请认真谨慎填写。</span>';
	o2.value=''; 
		document.getElementById("pid_info").innerHTML ='' ;
		document.getElementById("submit_type_div").style.display = 'none';
	}else{
		document.getElementById("submit_type_div").style.display = '';
	}
    o2.disabled=obj.checked;
	//if (obj.checked){ Form1.pid.value=''; document.getElementById("pid_info").innerHTML ='' ;}
	
}
////检测用户名

function isNumber(oNum)
   {
  if(!oNum) return false;
  var strP=/^\d+(\.\d+)?$/;
  if(!strP.test(oNum)) return false;
  try{
  if(parseFloat(oNum)!=oNum) return false;
  }
  catch(ex)
  {
   return false;
  }
  return true;
}

/// 查 < >
function HadBadCode(o)
{
	if(o=="")return false ;
	try{
	if (o.indexOf('<') > -1) return true ;
	if (o.indexOf('>') > -1) return true ;	
	}
  catch(ex)
  {
   return false;
  }return false;
}
