﻿// JScript 文件
function createXMLHTTP()
{
    if(window.XMLHttpRequest)
    {
        xmlHttp=new XMLHttpRequest();//mozilla浏览器
    }
    else if(window.ActiveXObject)
    {
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
        }
        catch(e)
        {}
        try
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
        }
        catch(e)
        {}
        if(!xmlHttp)
        {
            window.alert("不能创建XMLHttpRequest对象实例！");
            return false;
        }
    }
}
//检测用户名是否存在
function CheckName()
{
    userName = document.getElementById('userName').value;
    if(userName=="")
    {
        return;
    }
    if(checkUserName(userName) == -1)
    {
        document.getElementById("msg_username").innerHTML = "<font color=red>通行证长度不合法或含有特殊字符</fonr>";
        document.getElementById("msg_username").className="ERROR";
    }
    else
    {
        createXMLHTTP();//创建XMLHttpRequest对象
        var url="AjaxAction/AjaxAction.aspx?Act=CheckUser&UserName="+userName;
        xmlHttp.open("GET",url,true);
        xmlHttp.onreadystatechange=CheckNameBack;
        xmlHttp.send(null);
    }
}
//检查帐号
function checkUserName(userName)
{
	validnum = /^\d$/; //判断是否为数字
	validchar = /^\[a-zA-Z]+$/; //判断是否为字母
	validall = /^\w{6,12}$/; //数字+字母+"_"
	if(!validall.test(userName))
	{
		return -1;
	}
	return 0
}
//执行检测用户名回调函数
function CheckNameBack()
{
    if(xmlHttp.readyState==4)//判断对象状态
    {
        if(xmlHttp.status==200)//信息成功返回，开始处理信息
        {
            switch(xmlHttp.responseText)
            {
                case "-100":
                    document.getElementById("msg_username").innerHTML = "<font color=red>检验帐号失败</font>";
                    document.getElementById("msg_username").className="ERROR";
                    username_ok = true;
                    break;
                case "0":
                    document.getElementById("msg_username").innerHTML = "由字母数字和下划线(不分大小写)组成，长度为6～12。";
                    document.getElementById("msg_username").className="RIGHT";
                    username_ok = true;
                    break;
                case "1":
                    document.getElementById("msg_username").innerHTML = "<font color=red>通行证已被注册</font>";
                    document.getElementById("msg_username").className="ERROR";
                    break;
            }
        }
    }
}

//检查密码
function checkPwd(pwdstring)
{
	var numFlag = 2;
	var charFlag = 2;
	validnum = /^\d$/; //判断是否为数字
	validchar = /^\[a-zA-Z]+$/; //判断是否为字母
	validall = /^\w{6,10}$/; //数字+字母+"_"
	if(!validall.test(pwdstring))
	{
		return -1;
	}
	else
	{
		for(var i = 0; i < pwdstring.length; i ++)
		{
			cPwd = pwdstring.substr(i, 1);
			if(validnum.test(cPwd))
			{
				numFlag = 1;
			}
			else if( 65 < cPwd < 90 || 97 < cPwd < 122)//validchar.test(cPwd))
			{
				charFlag = 1;
			}
			if((numFlag == 1) && (charFlag == 1))
			{
				break;
			}
		}
		if((numFlag == 2) || (charFlag == 2))	
		{
			return 0;
		}
	}
	return 1;	
}
function CheckPassword()
{
    password = document.getElementById('password').value;
    username = document.getElementById('userName').value;
    if(password=="")
    {
        return;
    }
    if(password!=username)
    {
        if(checkPwd(password) == -1)
        {
            
            document.getElementById("msg_password").innerHTML = "<font color=red>密码长度不合法或含有特殊字符</font>";
            document.getElementById("passlevel_low").src = "images/passlevel_low_off.jpg";
			document.getElementById("passlevel_mid").src = "images/passlevel_mid_off.jpg";
			document.getElementById("passlevel_high").src = "images/passlevel_high_off.jpg";
            document.getElementById("msg_password").className="ERROR";
        }
        else if(checkPwd(password) == 0)
	    {
            document.getElementById("msg_password").innerHTML = "由6～10字母数字和下划线(区分大小写)组成,不能与账号相同。";
            document.getElementById("passlevel_low").src = "images/passlevel_low_on.jpg";
		    document.getElementById("passlevel_mid").src = "images/passlevel_mid_off.jpg";
		    document.getElementById("passlevel_high").src = "images/passlevel_high_off.jpg";
            document.getElementById("msg_password").className="RIGHT";
        	userpass_ok = true;
	    }
	    else
        {
            userpass_ok = true;
            if(password.length==6)
            {
                document.getElementById("msg_password").innerHTML = "由6～10字母数字和下划线(区分大小写)组成,不能与账号相同。";
                document.getElementById("passlevel_low").src = "images/passlevel_low_on.jpg";
			    document.getElementById("passlevel_mid").src = "images/passlevel_mid_off.jpg";
			    document.getElementById("passlevel_high").src = "images/passlevel_high_off.jpg";
                document.getElementById("msg_password").className="RIGHT";
            }
            else if(password.length>=7 && password.length<=8)
            {
                document.getElementById("msg_password").innerHTML = "由6～10字母数字和下划线(区分大小写)组成,不能与账号相同。";
                document.getElementById("passlevel_low").src = "images/passlevel_low_off.jpg";
			    document.getElementById("passlevel_mid").src = "images/passlevel_mid_on.jpg";
			    document.getElementById("passlevel_high").src = "images/passlevel_high_off.jpg";
                document.getElementById("msg_password").className="RIGHT";
            }
            else
            {
                document.getElementById("msg_password").innerHTML = "由6～10字母数字和下划线(区分大小写)组成,不能与账号相同。";
                document.getElementById("passlevel_low").src = "images/passlevel_low_off.jpg";
			    document.getElementById("passlevel_mid").src = "images/passlevel_mid_off.jpg";
			    document.getElementById("passlevel_high").src = "images/passlevel_high_on.jpg";
                document.getElementById("msg_password").className="RIGHT";
            }
        }
    }
    else
    {
        document.getElementById("msg_password").innerHTML = "<font color=red>不能和帐号一样</fonr>";
        document.getElementById("passlevel_low").src = "images/passlevel_low_off.jpg";
		document.getElementById("passlevel_mid").src = "images/passlevel_mid_off.jpg";
		document.getElementById("passlevel_high").src = "images/passlevel_high_off.jpg";
        document.getElementById("msg_password").className="ERROR";
    }
}
//检查确认密码
function CheckRePassword(Password,RePassword)
{
    Password = document.getElementById('password').value;
    RePassword = document.getElementById('repassword').value;
    if(RePassword=="")
    {
        return;
    }
    if(Password==RePassword)
    {
        document.getElementById("msg_repassword").innerHTML = "填写正确";
        document.getElementById("msg_repassword").className="RIGHT";
        userrepass_ok = true;
    }
    else
    {
        document.getElementById("msg_repassword").innerHTML = "<font color=red>2次密码输入不一致</font>";
        document.getElementById("msg_repassword").className="ERROR";
    }
}

//验证邮箱
function CheckEmail()
{
    email = document.getElementById('email').value;
    if(email=="")
    {
        return;
    }
    var reg_email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    if(!reg_email.test(email) || email.length<3 || email.length>50)
    {
        document.getElementById("msg_email").innerHTML = "<font color=red>邮箱有误</font>";
        document.getElementById("msg_email").className="ERROR";
    }
    else
    {
        document.getElementById("msg_email").innerHTML = "邮箱正确";
        document.getElementById("msg_email").className="RIGHT";
        useremail_ok = true;
    }
}

//验证码
function CheckCode()
{
    code = document.getElementById('checkcode').value;
    if(code=="")
    {
        return;
    }
    createXMLHTTP();//创建XMLHttpRequest对象
    var url="AjaxAction/AjaxAction.aspx?Act=CheckCode&Code="+code;
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=CheckCodeBack;
    xmlHttp.send(null);
}
//执行验证码回调函数
function CheckCodeBack()
{
    if(xmlHttp.readyState==4)//判断对象状态
    {
        if(xmlHttp.status==200)//信息成功返回，开始处理信息
        {
            if(xmlHttp.responseText != "True")
            {
                document.getElementById("msg_chkcode").innerHTML = "<font color=red>验证码输入有误</font>";
                document.getElementById("msg_chkcode").className="ERROR";
            }
            else
            {
                document.getElementById("msg_chkcode").innerHTML = "填写正确";
                document.getElementById("msg_chkcode").className="RIGHT";
            }
        }
    }
}
function Register()
{
    if(document.getElementById('userName').value == '')
    {
        document.getElementById("msg_username").innerHTML = "<font color=red>请输入帐号</font>";
        document.getElementById("msg_username").className="ERROR";        
    }
    if(document.getElementById('password').value == '')
    {
        document.getElementById("msg_password").innerHTML = "<font color=red>请输入密码</font>";
        document.getElementById("msg_password").className="ERROR";   
    }
    if(document.getElementById('repassword').value == '')
    {
        document.getElementById("msg_repassword").innerHTML = "<font color=red>请输入确认密码</font>";
        document.getElementById("msg_repassword").className="ERROR";   
    }
    if(document.getElementById('email').value == '')
    {
        document.getElementById("msg_email").innerHTML = "<font color=red>请输入邮箱</font>";
        document.getElementById("msg_email").className="ERROR";   
    }
    if(document.getElementById('checkcode').value == '')
    {
        document.getElementById("msg_chkcode").innerHTML = "<font color=red>请输入验证码</font>";
        document.getElementById("msg_chkcode").className="ERROR";   
    }
    if(
    document.getElementById("msg_username").className!="RIGHT"||
    document.getElementById("msg_password").className!="RIGHT"||
    document.getElementById("msg_repassword").className!="RIGHT"||
    document.getElementById("msg_email").className!="RIGHT"||
    !document.getElementById("CBX_read").checked||
    document.getElementById("msg_chkcode").className!="RIGHT"
    )
    {
        return false;
    }
    else
    {
        document.Form1.action = "RegisterOK.aspx";
        document.Form1.submit();
        return true;
    }
}
function PostSecurity()
{
    if(document.getElementById("question").value != 0 )
    {
        if(document.getElementById("answer").value == '')
        {
            document.getElementById("msg_answer").className="ERROR"
            return false;
        }
    }
    if(document.getElementById("truename").value != '')
    {
        if(document.getElementById("cardid").value == '')
        {
            document.getElementById("msg_cardid").className="ERROR"
            return false;
        }
    }
    sPass = document.getElementById("scPassword").value;
    Q = document.getElementById("question").value;
    A = document.getElementById("answer").value;
    TName = document.getElementById("truename").value;
    CardID = document.getElementById("cardid").value;
    createXMLHTTP();//创建XMLHttpRequest对象
    var url="AjaxAction/AjaxAction.aspx?Act=UpdateSecurity&sPass="+sPass+"&Q="+Q+"&A="+A+"&Tname="+TName+"&CardID="+CardID;
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=PostSecurityCallBack;
    xmlHttp.send(null);
    return true;
}
function PostSecurityCallBack()
{
    if(xmlHttp.readyState==4)//判断对象状态
    {
        if(xmlHttp.status==200)//信息成功返回，开始处理信息
        {
            if(xmlHttp.responseText == "True")
            {
                location.href="default.aspx";
                return true;
            }
            else
            {
                location.href="Error.aspx?ErrorNo=1007";
            }
        }
    }
}

function CheckQ()
{
    if(document.getElementById("question").value != 0)
    {
        document.getElementById("msg_question").className = "RIGHT"
    }
    else
    {
        document.getElementById("msg_question").className = "DEFAULT"
    }
}
function CheckA()
{
    if(document.getElementById("answer").value.length != 0)
    {
        if(document.getElementById("question").value != 0)
        {
            document.getElementById("msg_answer").className = "RIGHT"
        }
        else
        {
            document.getElementById("msg_answer").className = "ERROR"
        }
    }
    else
    {
        document.getElementById("msg_answer").className = "DEFAULT"
    }
}

function CheckSCPassword()
{
    spass=document.getElementById("scPassword").value;
    if(spass.length!=0)
    {
        if(checkPwd(spass) == -1)
        {
            document.getElementById("msg_scPassword").className="ERROR";
        }
        else
        {
            document.getElementById("msg_scPassword").className="RIGHT";
        }
    }
    else
    {
        document.getElementById("msg_scPassword").className="DEFAULT";
    }
}

//真实姓名
function CheckTrueName()
{
    RealName = document.getElementById("truename").value;
    if(RealName.length == 0)
    {
        document.getElementById("msg_truename").className="DEFAULT";
    }
    else
    {
	    re = /^[\u4e00-\u9fff]*$/;
	    if(re.test(RealName)==false)
	    {
            document.getElementById("msg_truename").className="ERROR";
        }
        else
        {
            document.getElementById("msg_truename").innerHTML = "<img src=images/true.gif />请填写真实的姓名，以保护您所有的用户权益。";
            document.getElementById("msg_truename").className="RIGHT";
        }
	}
}

//身份证
function checkcertid()
{
	str = document.getElementById("cardid").value;
	if(str.length == 0)
    {
        document.getElementById("msg_cardid").className="DEFAULT";
    }
    else
    {
	    var sErrMsg = validateid(str);
	    if((sErrMsg == "") || (sErrMsg == "您小于18周岁，将被纳入防沉迷。"))
	    {//合法身份证
	        if(sErrMsg== "您小于18周岁，将被纳入防沉迷。")
	        {
                document.getElementById("msg_cardid").className="RIGHT";
	        }
	        else
	        {
                document.getElementById("msg_cardid").className="RIGHT";
	        }
	    }
	    else
	    {//非法身份证
            document.getElementById("msg_cardid").className="ERROR";
	    }
	}
}


//身份证检查函数
function validateid(certid)
{
	var sErrMsg = "";
	var reg_15 = /\d{15}/;
	var reg_18 = /\d{17}([0-9]{1}|x|X)/;
	var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	certid = certid.toLowerCase();
	if(certid == "" || certid=="111111111111111")
	{
		sErrMsg = "您的身份证不合法";
	}
	var ret = certid.length == 15?reg_15.test(certid):reg_18.test(certid);
	if(!ret)
	{
		sErrMsg = "您的身份证不合法 ";
	}
	birthDate = certid.length == 15?"19" + certid.substr(6,6):certid.substr(6,8);
	year = birthDate.substr(0,4);
	if(birthDate.substr(4,1) == '0')
		month = birthDate.substr(5,1);
	else
		month = birthDate.substr(4,2);
	if(birthDate.substr(6,1) == '0')
		day = birthDate.substr(7,1);
	else
		day = birthDate.substr(6,2);
	dd = parseInt(day);
	mm = parseInt(month);
	yy = parseInt(year);
	days = new Date();
	gdate = days.getDate();
	gmonth = days.getMonth();
	gyear18 = days.getFullYear()-18;
	if(mm>12 || mm<1 ||dd>31 || dd<1)
	{
		sErrMsg = "您的身份证不合法";
	}
	if(year % 100 != 0)
	{
		if(year % 4 ==0)
		monthPerDays[1] = 29;
	}
	else
	{
		if(year % 400 == 0)
		monthPerDays[1] = 29;
	}
	if(monthPerDays[mm - 1] < dd)
	{
		sErrMsg = "您的身份证不合法";
	}
	if(certid.length == 18)
	{
		var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
		var num = 0;
		var proof;
		for(var i=0; i < 17; i ++)
		{
			num = num + certid.substr(i,1) * arTemp[i];
		}
		num = num % 11;
		switch(num)
		{
			case 0:proof='1';break;
			case 1:proof='0';break;
			case 2:proof='x';break;
			case 3:proof='9';break;
			case 4:proof='8';break;
			case 5:proof='7';break;
			case 6:proof='6';break;
			case 7:proof='5';break;
			case 8:proof='4';break;
			case 9:proof='3';break;
			case 10:proof='2';break;
		}
		if(certid.substr(17, 1) != proof)
		{
			sErrMsg = "您的身份证不合法";
		}
	}
	mm = mm -1;
	var prevTS18 = new Date(gyear18, gmonth, gdate,0,0,0);
	var ageTs = new Date(yy,mm,dd,0,0,0)
	if((prevTS18 < ageTs)&&(sErrMsg == ""))
	{
		sErrMsg = "您小于18周岁，将被纳入防沉迷。";
		//	alert(sErrMsg);
	}
	return sErrMsg;
}

function GetQuestion()
{
    UserName = document.getElementById("userName").value
    if(UserName.length >= 6)
    {
        createXMLHTTP();//创建XMLHttpRequest对象
        var url="AjaxAction/AjaxAction.aspx?Act=GetQuestion&UserName="+UserName;
        xmlHttp.open("GET",url,true);
        xmlHttp.onreadystatechange=GetQuestionCallBack;
        xmlHttp.send(null);
    }
    else
    {
        document.getElementById("tbx_question").value = "输入用户名获取问题提示"
    }
    return true;
}
var Questins = ["您没有填写过密保信息！","我的宠物名字？","我最好的朋友是谁？","我最喜爱的颜色？","我最喜欢的电影？","我最喜欢的影星？","我最喜欢的歌？","我最喜欢的食物？","我最喜欢做的事情？"];
function GetQuestionCallBack()
{
    if(xmlHttp.readyState==4)//判断对象状态
    {
        if(xmlHttp.status==200)//信息成功返回，开始处理信息
        {
            document.getElementById("int_question").value = xmlHttp.responseText;
            document.getElementById("tbx_question").value = Questins[xmlHttp.responseText];
        }
    }
}
