﻿$(document).ready(function() {
    setInitialHint();
    //刷新验证码
	regCode();	
	$('#input_0').focus(function() {
		$('#input_0').addClass('inputFocus');
	});
	$('#input_0').blur(function() {
		checkAccount($('#input_0').attr('value'));
		$('#input_0').removeClass('inputFocus');
	});
	$('#input_1').focus(function() {
		$('#input_1').addClass('inputFocus');
	});
	$('#input_1').blur(function() {
		checkPassword($('#input_1').attr('value'));	
		$('#input_1').removeClass('inputFocus');
	});
	$('#input_2').focus(function() {
		$('#input_2').addClass('inputFocus');
	});
	$('#input_2').blur(function() {
		confirmPassword($('#input_2').attr('value'));
		$('#input_2').removeClass('inputFocus');
	});
	$('#input_3').focus(function() {
		$('#input_3').addClass('inputFocus');
	});
	$('#input_3').blur(function() {
		checkCertId($('#input_3').attr('value'));
		$('#input_3').removeClass('inputFocus');
	});
	$('#input_4').focus(function() {
		$('#input_4').addClass('inputFocus');
	});
	$('#input_4').keyup(function() {
	    if($('#input_4').attr('value').length>0)
	    {
		    checkVerifyCode($('#input_4').attr('value'));
		    setInitialHint();
		    $('#input_4').removeClass('inputFocus');
		}
	});
	$('#input_4').blur(function() {	
            if($('#input_4').attr('value').length==0)
	    {
	        flagHint[4] = '0';
		    setSignal();
	    }	
		setInitialHint();
		$('#input_4').removeClass('inputFocus');
	});
	$('#input_5').focus(function() {
		$('#input_5').addClass('inputFocus');
	});
	$('#input_5').blur(function() {		
		$('#input_5').removeClass('inputFocus');
	});
	$('#reset').click(function(){
	    for(var i = 0; i < (flagHint.length); i++) {		
			  document.getElementById('input_' + i).value = '';
		}
	    setInitialHint();
	    flagHint[0] = '0';
        flagHint[1] = '0';
        flagHint[2] = '0';
        flagHint[3] = '0';
        flagHint[4] = '0';
	    setSignal();
	    regCode();
	}
	)
});


//检查帐号
function checkAccount(account) {
    ereg = /^[A-Za-z0-9]+$/;
	if(account == '') {
		flagHint[0] = '0';
		setSignal();
		return;
	}	
	//普通格式账号
	else {
		//普通账号长度检查
		if(account.length < 6 || account.length > 16 ) {	
		    setErrmsg("帐号长度为6位至16位");
			flagHint[0] = '6';
			setSignal();
			return;
		}
		if(!ereg.test(account))
		{
		     setErrmsg("帐号为数字或者英文字母组成");
			flagHint[0] = '6';
			setSignal();
			return;
		}
		//普通账号字符检查
		ereg = /^[A-Za-z_]{1}[A-Za-z0-9_\-]{5,15}$/;
		if(!ereg.test(account)) {
			flagHint[0] = '7';
			setSignal();
			setErrmsg("帐号过于简单");
			return;
		}
	}	

    $.ajax({ 
  type: 'POST',//URL方式为POST 
  url: '/QuickReg.aspx',//这里是指向登录验证的页面 
  data:'passAccount='+$('#input_0')[0].value.toLowerCase(),//把要验证的参数传过去 
  dataType:'json',//数据类型为JSON格式的验证 
  timeout:5000,
  //在发送数据之前要运行的函数 
  beforeSend:function(){ 
 
  },   
  success:
  function(data) 
          {               
                if(data.sta==0) 
                { 
                  setErrmsg("帐号已被占用，请换个再试");
				  flagHint[0] = '3';
			      setSignal();
                } 
                else 
                {                
                  flagHint[0] = 'R';
		          setSignal();    
         
                } 
        },
   complete: function(XMLHttpRequest, textStatus){

        },
   error:function(){
         alert("注册失败，请重新尝试！");
       }
  }); 
  setInitialHint();
}

//检查EMAIL
function checkEmail(email) {
	if(email == '') {
		flagHint[3] = '0';
	}
	else {
		if(email.length < 6 || email.length > 50) {
			flagHint[3] = '2';
		}
		else if(!emailValidator(email)) {
			flagHint[3] = '1';
	    }
	    else {
	    	flagHint[3] = 'R';
	    	$.ajax({ 
                  type: 'POST',//URL方式为POST 
                  url: 'QuickReg.aspx',//这里是指向登录验证的页面 
                  data:'email='+$('#input_3')[0].value.toLowerCase(),//把要验证的参数传过去 
                  dataType:'json',//数据类型为JSON格式的验证 
                  timeout:5000,
                  //在发送数据之前要运行的函数 
                  beforeSend:function(){ 
                  $('#input_3_signal').html('验证中。。。。。。。'); 
                  },   
                  success:
                  function(data) 
                          {                
                                if(data.sta==0) 
                                {                  
				                  flagHint[3] = '3';
			                      setSignal();
                                } 
                                else 
                                {                
                                  flagHint[3] = 'R';
		                          setSignal();             
                                } 
                        },
                  complete: function(XMLHttpRequest, textStatus){

                                },
                  error:function(){
                        alert("注册失败，请重新尝试！");
    }
                  }); 
	    }	
	}
	setSignal(); 
}

function emailValidator(email) {
	var reg_email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;	
	if(email.length < 6 || email.length > 50 || !reg_email.test(email)) {
		return false;
    }
    else {
    	return true;
    }}

//验证密码
function checkPassword(password) {
	if(password == '') {
		flagHint[1] = '0';
	}
	else {
		//密码长度检查
		if(password.length < 7 || password.length > 20) {
			flagHint[1] = '1';
			setErrmsg("密码长度为7位至20位");	
				setSignal();
			return;		
		}
		//密码字符检查
		else if(!passwordValidator(password)) {
			flagHint[1] = '2';
			setErrmsg("密码为数字或者大小写英文组成");
				setSignal();		
			return;	
		}
		//密码不能与账号相同
		else if(password == $('#input_0')[0].value.toLowerCase()) {
			flagHint[1] = '3';
			setErrmsg("密码不能与帐号相同");	
				setSignal();
			return;		
		}
		else {
			flagHint[1] = 'R';
				setSignal();
			return;
		}
		
	}
	setInitialHint();
	
}

function passwordValidator(password) {
	var numFlag = 2;
	var charFlag = 2;
	validnum = /^\d$/;
	validchar = /^\[a-zA-Z]+$/;
	validall = /^\w{6,10}$/;
		for(var i = 0; i < password.length; i++) {
			cPwd = password.substr(i, 1);
			if(validnum.test(cPwd)) {
				numFlag = 1;
			}
			else if(65 < cPwd < 90 || 97 < cPwd < 122) {
				charFlag = 1;
			}
			if((numFlag == 1) || (charFlag == 1)) {
				return true;
			}
		}
		if((numFlag == 2) || (charFlag == 2)) {
			return false;
		}
		return true;
		
}

function confirmPassword(password) {
	if(password == '' && password == $('#input_1')[0].value) {
		flagHint[2] = '0';
	}
	else if(password != '' && password != $('#input_1')[0].value) {
		flagHint[2] = '1';
		setErrmsg("二次密码必须一致，请重新输入正确的密码");
		return;
	}
	else if(password == '') {
		flagHint[2] = '2';
	}
	else {
		flagHint[2] = 'R';
	}
	setSignal();
	setInitialHint();	
}

//检查验证身份证ID
function checkCertId(certid) {
	var ret = certIdValidator(certid);
	isFcm = false;
	if(certid == '') {
		flagHint[3] = '0';
	}
	else if(ret == 0) {
		flagHint[3] = '1';
		setErrmsg("请重新输入正确的身份证号码");
		setSignal();
		return;
	}
	else if(ret == 1) {
		isFcm = true;
		flagHint[3] = 'R';
			
	}
	else {
		flagHint[3] = 'R';
			
	}
	setSignal();
	setInitialHint();

}

function certIdValidator(certid) {
	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.length!=15&&certid.length!=18)
	{
	    return 0;
	}
	if(certid == "" || certid=="111111111111111") {
		return 0;
	}
	var ret = certid.length == 15?reg_15.test(certid):reg_18.test(certid);
	if(!ret) {
		return 0;
	}
	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) {
		return 0;
	}
	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 0;
	}
	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 0;
		}
	}
//	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 1;
//	}
	return 2;
}

//更改验证码
function changeRegImg() {	
	document.getElementById('regimg').src = 'CheckCode.aspx?id=' + Math.random();
	document.getElementById('input_4').value = '';
	checkVerifyCode(document.getElementById('input_4').value);
}

//获取验证码
function regCode() {
	$('#regimg')[0].src = 'CheckCode.aspx?' + Math.random();
}
//检查验证码
function checkVerifyCode(verifycode) {
	ereg = /^[A-Za-z0-9]+$/;//正则表达式不能输入中文
	if(verifycode == '') {
		flagHint[4] = '0';
		setSignal();
	}	
	else if(verifycode.length != 4 || !ereg.test(verifycode)) {
		flagHint[4] = '1';
		setSignal();
	}	
	else {
            $.ajax({ 
              type: 'POST',//URL方式为POST 
              url: 'QuickReg.aspx',//这里是指向登录验证的页面 
              data:'checkcode='+$('#input_4')[0].value.toLowerCase(),//把要验证的参数传过去 
              dataType:'json',//数据类型为JSON格式的验证 
              timeout:5000,
              //在发送数据之前要运行的函数 
              beforeSend:function(){ 
              },   
              success:
              function(data) 
                      {                
                            if(data.sta==0) 
                            { 
				              flagHint[4] = '1';
			                  setSignal();
                            } 
                            else 
                            {    
                                    
                              flagHint[4] = 'R';
		                      setSignal();             
                            } 
                    },
             complete: function(XMLHttpRequest, textStatus){

                    },
             error:function(){
                    alert("注册失败，请重新尝试！");
                    }
              }); 
	}
}

//根据标志位设置错误标记
function setSignal() {
	for(var i = 0; i < (flagHint.length); i++) {
		if(flagHint[i] == '0') {
			  document.getElementById('input_' + i + '_signal').innerHTML = '';
		}
		else if(flagHint[i] == 'R') {
			  document.getElementById('input_' + i + '_signal').innerHTML = '<img src="/images/icon_check_right.jpg" width="17" height="17" align="absmiddle" />';
			//setHint('initialize');
		}
		else {
			  document.getElementById('input_' + i + '_signal').innerHTML = '<img src="/images/icon_check_wrong.jpg" width="17" height="17" align="absmiddle" />';
		}
	}
}


//检查所有输入，并清空错误提示
function checkAllValue() {
	checkAccount(document.getElementById('input_0').value);
	checkPassword(document.getElementById('input_1').value);
	confirmPassword(document.getElementById('input_2').value);
	checkCertId(document.getElementById('input_3').value);
	checkVerifyCode(document.getElementById('input_4').value);
	setInitialHint();
}
function checkRegForm() {	
	for(var i = 0; i < (flagHint.length); i++) {
		if(flagHint[i] != 'R') {
			alert('请检查填写的内容');
			document.getElementById('input_' + i).focus();
			return;
		}
	}	
	if(document.getElementById('licenseFlag').checked == false) {
		alert('请认真阅读派讯通行证协议');
		return;
	}
	regFormAjaxSend();
}
var regFormAjaxSend = function (){	
	var sPassport = $('#input_0')[0].value;
	var sPassword = $('#input_1')[0].value;
	var sCertId = $('#input_3')[0].value;
	var guildVIPcode = $('#input_5')[0].value;
$.ajax({ 
  type: 'POST',//URL方式为POST 
  url: 'QuickReg.aspx',//这里是指向登录验证的页面 
  data:'IsQuickReg='+'1'+'&passAccount='+sPassport+'&password='+sPassword+'&CerID='+sCertId+'&guildVIPcode='+guildVIPcode,//把要验证的参数传过去 
  dataType:'json',//数据类型为JSON格式的验证 
  timeout:10000,
  //在发送数据之前要运行的函数 
  beforeSend:function(){ 
            $('#regFormSubmitButton')[0].disabled=true; 
            $('#regFormSubmitButton').css('cursor','auto');
           },   
  success:
  function(data) 
          {             
                if(data.sta==1) 
                {
                  alert("恭喜您注册成功！ 浏览器会自动跳转到派讯通行证系统http://pt.passionent.com，您可以激活游戏");
				  location.href="http://pt.passionent.com/member/RegSuccess.aspx?snumb="+data.snumb+"&anmub="+data.account+"&check="+data.check;		   
//				  $('#reset').click();	               
                }  
                if(data.sta==2)
                {
                  alert("恭喜您注册成功！ 请到派讯商城中我的宝盒领取您的礼包，祝您游戏愉快！");
				  location.href="http://pt.passionent.com/member/RegSuccess.aspx?snumb="+data.snumb+"&anmub="+data.account+"&check="+data.check;		   
                }             
                else 
                {                
                  alert(data.info);         
                } 
        },
  complete: function(XMLHttpRequest, textStatus){
        $('#regFormSubmitButton')[0].disabled=false;
		$('#regFormSubmitButton').css('cursor','pointer');       
                },
  error: function(xhr,status,errMsg){
        alert("注册失败，请重新尝试！error");
        $('#regFormSubmitButton')[0].disabled=false;
		$('#regFormSubmitButton').css('cursor','pointer');
    }
  }); 
  jQuery(document).ready(function() {
		$('#regFormSubmitButton')[0].disabled=false;
		$('#regFormSubmitButton').css('cursor','pointer');
	}
);
}

//初始化提示语
function setInitialHint() {
	$('#errmsg').html('');	
}

function setErrmsg(msg)
{
    $('#errmsg').html(msg);	    
}


//标记一维数组
var flagHint = new Array();
flagHint[0] = '0';
flagHint[1] = '0';
flagHint[2] = '0';
flagHint[3] = '0';
flagHint[4] = '0';


