﻿//***************************************************
// ** Description: 常用JS验证函数 
// ** Author     :  
// ** Created    : 
// ** Modified   :
//***************************************************

//验证生份证号码,周岁在100-10岁
function ValidCertId(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 == "")
	{
		return "请填您的身份证";
	}
	var ret = certid.length == 15?reg_15.test(certid):reg_18.test(certid);
	if(certid=="111111111111111" || !ret)
	{
		return "您的身份证不合法";
	}
	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);
	if(yy<(new Date()).getFullYear()-100)
	{
		return "您的年不合法";
	}
	days = new Date();
	gdate = days.getDate();
	gmonth = days.getMonth();
	gyear18 = days.getFullYear()-18;
	if(mm>12 || mm<1 ||dd>31 || dd<1)
	{
		return "您的身份证月日不合法";
	}
	if(year % 100 != 0)
	{
		if(year % 4 ==0)
		monthPerDays[1] = 29;
	}
	else
	{
		if(year % 400 == 0)
		monthPerDays[1] = 29;
	}
	if(monthPerDays[mm - 1] < dd)
	{
		return "您的身份证日不合法";
	}
	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)
		{
			return "您的身份证不合法";
		}
	}
	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)
	{
		return "您小于18周岁，将被纳入防沉迷。";
	}
	return "";
}

function checkIdent(name)
{
    var userCode=$('#'+name);
    var msg = userCode.next('.etip');
    var er=ValidCertId(userCode.val());
    if(er!='')
    {
        msg.addClass("attn");
        msg.html(er);
		userCode.val("");
        r=0;
    }
    else
    {
        msg.removeClass("attn");
	    msg.html('请填写您的真实身份证号码，以保障您的用户权益');
	    r=1;
    }
    return r
}

function check_username(name,isAjax){
    var username=$('#'+name);
    var msg = username.next('.etip');
	msg.addClass("attn");
    var username_reg =  /^[a-zA-Z_][\d_a-zA-Z]{3,12}$/;
    r = 1;
    s = $.trim(username.attr('value'));
	if(!s){
		msg.html('请输入通行证帐号');
		r=0;
	}else if(!username_reg.exec(s)){
		msg.html('请输入正确的通行证帐号');
		username.val('');
		r=0;
	}else if(isAjax){
		var url='../ajax.ashx?className=User&methodName=ValidUserName&value='+escape(s);
		$.getJSON(url, function(data){
		           if(data.ok==1){
					   	  	msg.addClass("attn");
		                    msg.html('该通行证帐号格式错误');
                    		username.val('');
                    		r = 0;
		               }
		            else if (data.ok==3){
							msg.addClass("attn");
                    		msg.html('发生错误,请稍后再试');
                    		username.val('');
                    		r = 0;
                		}
                	else if (data.ok==4){
							msg.addClass("attn");
                    		msg.html('该通行证帐号已经存在');
                    		username.val('');
                    		r = 0;
                		}
                	else if (data.ok==5){
							msg.addClass("attn");
                    		msg.html('该通行证帐号有禁用字符');
                    		username.val('');
                    		r = 0;
                		}	
                	else{
                    		r = 1;
                		}
            	});		
	}
	if(r==1){
		msg.removeClass("attn");
	    msg.html('由4-12位字符或数字组成');
	}
    return r;
}; 
function check_password(pwd){
    var password=$('#'+pwd);
    var msg = password.next('.etip');
	msg.addClass("attn");
    r = 1;
    s = password.attr('value');
    if(!(s.length>5 && s.length<13 ) || new RegExp("^"+s.substring(0,1)+"+$","gi").test(s))
    {
        msg.html('您的密码过于简单,请输入正确密码.');
		password.val('');
		r=0;
    }
	if(r==1){
		msg.removeClass("attn");
		msg.html('由6-12位字符组成,且不能过于简单.');
	}
    return r;
};
function check_passwordcf(pwd,pwdcf){
    var password=$('#'+pwd);
    var passwordcf=$('#'+pwdcf);
    var msg = passwordcf.next('.etip');
	msg.addClass("attn");
    r = 1;
    sf = passwordcf.attr('value');
    s = password.attr('value');    
	if(sf!=s){
		msg.html('两次填写的密码不一致, 请检查并重新填写');
		passwordcf.val('');
		r=0;
	}
	if(r==1){
		msg.removeClass("attn");
		msg.html('再次输入密码以保证密码无误');
	}
    return r;
};
function check_email(email){
    var email=$('#'+email);
    var msg = email.next('.etip');
	msg.addClass("attn");
    var email_reg = /^[_\.0-9a-zA-Z+-]+@([0-9a-zA-Z]+[0-9a-zA-Z-]*\.)+[a-zA-Z]{2,4}$/; 
    r = 1;
    s = $.trim(email.attr('value'));
    if (!s){
	    r = 0;
	    msg.html('请输入Email地址');
    }else if (!email_reg.exec(s)){
	    msg.html('请输入正确的Email地址');
	    email.val('');
	    r = 0;
    }
    if(r==1){
		msg.removeClass("attn");
    	msg.html('方便您在忘记密码时找回');
    }
    return r
};
function check_name(){
    var name_reg = /^[\u4e00-\u9fa5]{2,4}$/;
    r = 1;
    s = $.trim(name.attr('value'));
    msg = name.siblings('.etip');
    msg.addClass("attn");
    if (!s){
	    msg.html('请输入真实姓名');
	    r = 0;
    }else if(!name_reg.exec(s)){
       	msg.html('请输入正确真实姓名');
       	name.val('');
	    r = 0;
    }
    if(r==1){
        msg.removeClass("attn");
    	msg.html('请确保所填真实姓名和填写的身份证号码上的姓名一致');
    }
    return r
};
function check_code(code){
    var code=$('#'+code);
    var msg = code.siblings('.etip');
	msg.addClass("attn");
    var code_reg = /^(\w){4}$/ ; 
    r = 1;
    s = $.trim(code.attr('value'));
    if (!s){
	    msg.html('请输入验证码');
	    r = 0;
    }else if(!code_reg.exec(s)){
        msg.html('请输入正确的验证码格式');
        code.val('');
	    r = 0;
    }
    if(r==1){
    	msg.html('');
    }
    return r
};
function changeVerifyCode()
{
	var checkcode = $("#icode");
	var oldSrc = checkcode.attr("src");
	if(oldSrc.indexOf("?")>0)
	{
	    oldSrc = oldSrc.substring(0,oldSrc.indexOf("?"));
	}
	checkcode.attr("src",oldSrc+"?_sed="+new Date().getTime());
}
function showmb()
{
	if($("#setmb").html()=="+设置密保")
	{
		$("#setmb").html("-设置密保");
		$("#question").show();	
		$("#answser").show();
	}
	else
	{
		$("#setmb").html("+设置密保");		
		$("#question").hide();	
		$("#answser").hide();
	}
}
function safePassword(pwd)
{
    var strPWD=$('#'+pwd).val();
    var objLow=$("#pwdLow");
    var objMed=$("#pwdMed");
    var objHi=$("#pwdHi");
    objLow.removeClass("pwd-strength-box-low");
    objMed.removeClass("pwd-strength-box-med");
    objHi.removeClass("pwd-strength-box-hi");
    if(strPWD.length<6&&strPWD.length>0)
    {
        objLow.addClass("pwd-strength-box-low");
    }
    else
    {
        var p1= (strPWD.search(/[a-zA-Z]/)!=-1) ? 1 : 0;
        var p2= (strPWD.search(/[0-9]/)!=-1) ? 1 : 0;
        var p3= (strPWD.search(/(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{12,20})/)!=-1) ? 1 : 0;
        var pa=p1+p2+p3;
        if(pa==1)
        {
            objLow.addClass("pwd-strength-box-low");
        }
        else if(pa==2)
        {
            objMed.addClass("pwd-strength-box-med");
        }else if(pa==3)
        {
            objHi.addClass("pwd-strength-box-hi");
        }
        else
        objLow.addClass("pwd-strength-box-low");
    }
}