var flag = true;//防止重发
function checkUserLoginName() {
	if (flag) {
		flag = false;
		var userLoginName = document.getElementById("userName").value;
		if (userLoginName == "" || userLoginName == null) {
			alert("\u8bf7\u5148\u8f93\u5165\u7528\u6237\u540d");
			flag = true;
			return false;
		}
		var url = "../servlet/registerCheck.cl?type=checkLoginName&value=" + userLoginName + "&time=" + new Date();
		var xmlhttp = createXMLHttpRequest();
		if (!xmlhttp) {
			return false;
		}
		xmlhttp.open("post", url, true);
		xmlhttp.onreadystatechange = function () {
			if (xmlhttp.readyState == 4) {
				if (xmlhttp.status == 200) {
					document.getElementById("spanCheckLoginName").innerHTML = xmlhttp.responseText;
					flag = true;
				}
			}
		};
		xmlhttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8" );
		xmlhttp.send(null);
	}
}

//验证用户名
function checkRegisterName() {
	var userLoginName = document.getElementById("userName").value;
	if (!validateCharEare(userLoginName)) {
		alert("\u8BF7\u4F7F\u7528\u82F1\u6587\uFF08a\uFF0Dz\uFF09\u3001\u6570\u5B57\uFF080\uFF0D9\uFF09\u3001\u6C49\u5B57");
		//document.getElementById("userName").value = "";
		return false;
	}
	userLoginName = userLoginName.replace(/[^\x00-\xff]/g, "11");
	if (!validateCharLength(userLoginName, 3, 16)) {
		alert("\u7528\u6237\u540d\u5fc5\u987b\u662f3\uff0d16\u4e2a\u5b57\u7b26");
		//document.getElementById("userName").value = "";
		return false;
	}
	return true;
}
function checkProblemAnswer() {
	var questionAnswers = document.getElementById("questionAnswer").value;
	var reg = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
	var re = new RegExp(reg);
	if (!re.test(questionAnswers)) {
		alert("\u5141\u8bb8\u957f\u5ea6\u4e3a14\u4e2a\u5b57\u6bcd\u3001\u6570\u5b57\u62167\u4e2a\u6c49\u5b57\uff08\u5305\u62ec7\u4e2a\uff09\u4ee5\u4e0b.");
		//document.getElementById("questionAnswer").value = "";
		return false;
	}
	questionAnswers = questionAnswers.replace(/[^\x00-\xff]/g, "11");
	if (!validateCharLength(questionAnswers, 0, 14)) {
		alert("\u7b54\u6848\u957f\u5ea6\u4e3a\u5c0f\u4e8e14\u4e2a\u5b57\u7b26");
		//document.getElementById("questionAnswer").value = "";
		return false;
	}
	return true;
}

//验证用户密码
function checkRegisterPassword() {
	var userLoginPassword = document.getElementById("passwd").value;
	if (!validateCharEare2(userLoginPassword)) {
		alert("\u8bf7\u4f7f\u7528\u82f1\u6587\uff08a\uff0dz\uff0c\u533a\u5206\u5927\u5c0f\u5199\uff09\uff0c\u6570\u5b57\uff080\uff0d9\uff09");
		//document.getElementById("passwd").value = "";
		return false;
	}
	if (!validateCharLength(userLoginPassword, 4, 12)) {
		alert("\u5bc6\u7801\u5fc5\u987b\u662f4\uff0d12\u4f4d");
		//document.getElementById("passwd").value = "";
		return false;
	}
	var userLoginPassword2 = document.getElementById("passwd2").value;
	return true;
}

//密码确认验证
function checkRegisterPasswordRepeat() {
	var userLoginPassword = document.getElementById("passwd").value;
	var userLoginPassword2 = document.getElementById("passwd2").value;
	if (userLoginPassword2 == null || userLoginPassword2 == "") {
		return false;
	}
	if (userLoginPassword != userLoginPassword2) {
		alert("\u4e24\u6b21\u8f93\u5165\u7684\u5bc6\u7801\u4e0d\u4e00\u81f4");
		//document.getElementById("passwd2").value = "";
		return false;
	}
	return true;
}

//验证用户油箱
function chickUserEmail() {
	var mail = document.getElementById("email").value;
	if (!(new RegExp(/^[\-\.\w]+@[\.\-\w]+(\.\w+)+$/).test(mail))) {
		alert("\u8bf7\u4f7f\u7528\u6b63\u786e\u7684Email\u683c\u5f0f");
		//document.getElementById("email").value = "";
		return false;
	}
	return true;
}


//  验证输入的字符长度
function validateCharLength(charName, start, end) {
	if (charName.length < start || charName.length > end) {
		return false;
	}
	return true;
}

 //验证输入的字符是否是汉字、英文（a－z）、数字（0－9）
function validateCharEare(charName){
	var regu = "^[0-9a-z\u4e00-\u9fa5]+$";
	var re = new RegExp(regu);
	if (!re.test(charName)) {
		return false;
	}
	return true;
}


// 验证输入的字符是否是英文（a－z）、数字（0－9）
function validateCharEare2(charName) {
	var regu = "^[0-9a-zA-Z]+$";
	var re = new RegExp(regu);
	if (!re.test(charName)) {
		return false;
	}
	return true;
}


//验证输入的字符是否是数字（0-9）
function validateCharEare3(charName) {
	var regu = "^[0-9]+$";
	var re = new RegExp(regu);
	if (!re.test(charName)) {
		return false;
	}
	return true;
}
function isInteger(str) {
	if (/[^\d]+$/.test(str)) {
		return false;
	}
	return true;
}
function chickUserMobile() {
	var userMobile = document.getElementById("mobile").value;
	if (userMobile.length != 11) {
		alert("\u8fd9\u4e2a\u624b\u673a\u53f7\u4e0d\u5b58\u5728\uff01");
		//document.getElementById("mobile").value = "";
		return false;
	} else {
		if (userMobile.substring(0, 1) != "1") {
			alert("\u8fd9\u4e2a\u624b\u673a\u53f7\u4e0d\u5b58\u5728\uff01");
			//document.getElementById("mobile").value = "";
			return false;
		} else {
			if (isNaN(userMobile)) {
				alert("\u8fd9\u4e2a\u624b\u673a\u53f7\u4e0d\u5b58\u5728\uff01");
				//document.getElementById("mobile").value = "";
				return false;
			}
		}
	}
	return true;
}


//验证自定义问题格式  准确return true 错误 return false
function chickUserPasswordAnswer() {
	var userPasswordAnswer = document.getElementById("userPasswordQuestion1").value;
	var reg = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
	var re = new RegExp(reg);
	if (!re.test(userPasswordAnswer)) {
		alert("\u53ea\u5141\u8bb8\u4f7f\u7528\u6c49\u5b57\u3001\u82f1\u6587\uff08a\uff0dz\uff09\u3001\u6570\u5b57\uff080\uff0d9\uff09\u3002");
		document.getElementById("userPasswordQuestion1").value = "";
		return false;
	}
	var userPasswordAnswer = userPasswordAnswer.replace(/[^\x00-\xff]/g, "11");
	if (userPasswordAnswer.length > 14 || userPasswordAnswer.indexOf(" ") == 0 || userPasswordAnswer.indexOf(" ") == userPasswordAnswer.length - 1) {
		alert("\u5141\u8bb8\u957f\u5ea60\uff0d14\u4e2a\u5b57\u7b26");
		document.getElementById("userPasswordQuestion1").value = "";
		return false;
	}
	return true;
}

function chickUserCertNumber() {
	var cardType = document.getElementById("cardType").value;
	if (cardType == "1") {
		var StrNo = document.getElementById("cardNo").value;
		if (StrNo.length == 18) {
			var a, b, c;
			if (!isInteger(StrNo.substr(0, 17))) {
				alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
				document.registerForm.userCertNumber.value = "";
				return false;
			}
			a = parseInt(StrNo.substr(0, 1)) * 7 + parseInt(StrNo.substr(1, 1)) * 9 + parseInt(StrNo.substr(2, 1)) * 10;
			a = a + parseInt(StrNo.substr(3, 1)) * 5 + parseInt(StrNo.substr(4, 1)) * 8 + parseInt(StrNo.substr(5, 1)) * 4;
			a = a + parseInt(StrNo.substr(6, 1)) * 2 + parseInt(StrNo.substr(7, 1)) * 1 + parseInt(StrNo.substr(8, 1)) * 6;
			a = a + parseInt(StrNo.substr(9, 1)) * 3 + parseInt(StrNo.substr(10, 1)) * 7 + parseInt(StrNo.substr(11, 1)) * 9;
			a = a + parseInt(StrNo.substr(12, 1)) * 10 + parseInt(StrNo.substr(13, 1)) * 5 + parseInt(StrNo.substr(14, 1)) * 8;
			a = a + parseInt(StrNo.substr(15, 1)) * 4 + parseInt(StrNo.substr(16, 1)) * 2;
			b = a % 11;
			if (b == 2) { //最后一位为校验位  
				c = StrNo.substr(17, 1).toUpperCase(); //转为大写X
			} else {
				c = parseInt(StrNo.substr(17, 1));
			}
			switch (b) {
			  case 0:
				if (c != 1) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 1:
				if (c != 0) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 2:
				if (c != "X") {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 3:
				if (c != 9) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 4:
				if (c != 8) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 5:
				if (c != 7) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 6:
				if (c != 6) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 7:
				if (c != 5) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 8:
				if (c != 4) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 9:
				if (c != 3) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
				break;
			  case 10:
				if (c != 2) {
					alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u6821\u9a8c\u4f4d\u9519");
					document.getElementById("cardNo").value = "";
					return false;
				}
			}
		} else {
			if (StrNo.length == 15) { //15位身份证号
			}
		}
		if (!isInteger(StrNo)) {
			alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u9519\u8bef,\u524d15\u4f4d\u4e0d\u80fd\u542b\u6709\u82f1\u6587\u5b57\u6bcd\uff01");
			document.getElementById("cardNo").value = "";
			return false;
		}
		switch (StrNo.length) {
		  case 15:
			if (isValidDate("19" + StrNo.substr(6, 2), StrNo.substr(8, 2), StrNo.substr(10, 2))) {
				return true;
			} else {
				document.getElementById("cardNo").value = "";
				return false;
			}
		  case 18:
			if (isValidDate(StrNo.substr(6, 4), StrNo.substr(10, 2), StrNo.substr(12, 2))) {
				return true;
			} else {
				ddocument.getElementById("cardNo").value = "";
				return false;
			}
		}
		alert("\u8f93\u5165\u7684\u8eab\u4efd\u8bc1\u53f7\u7801\u5fc5\u987b\u4e3a15\u4f4d\u6216\u800518\u4f4d\uff01");
		document.getElementById("cardNo").value = "";
		return false;
	} else {
		var cardNo = document.getElementById("cardNo").value;
		if (cardNo == "" || cardNo == null) {
			alert("\u8bc1\u4ef6\u53f7\u7801\u4e0d\u80fd\u4e3a\u7a7a");
			return false;
		}
	}
}
function isValidDate(iY, iM, iD) {
	var a = new Date(iY, iM - 1, iD);
	var y = a.getFullYear();//
	var m = a.getMonth() + 1;
	var d = a.getDate();
	if (y != iY || m != iM || d != iD) {
		window.alert("\u8eab\u4efd\u8bc1\u53f7\u7801\u5185\u65e5\u671f\u9519\u8bef\uff01");
		return false;
	}
	return true;
}

//判断提交的信息是否完整
function onSumbitRegiest() {
	
	var userName = document.getElementById("userName").value;
	if (userName == "") {
		alert("\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a");
		return false;
	}
	if(!checkRegisterName()){
		return false;
	}
			
	var email = document.getElementById("email").value;
	if (email == "") {
		alert("\u7535\u5b50\u90ae\u7bb1\u4e0d\u80fd\u4e3a\u7a7a");
		return false;
	}

	if(!chickUserEmail()){
		return false;
	}
		
	var passwd = document.getElementById("passwd").value;
	if (passwd == "") {
		alert("\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a");
		return false;
	}
	if(!checkRegisterPassword()){
		return false;
	}	
		
	var passwd2 = document.getElementById("passwd2").value;
	if (passwd2 == "") {
		alert("\u786e\u8ba4\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a");
		return false;
	}
	if(!checkRegisterPasswordRepeat()){
		return false;
	}
		
	var problemAnswer = document.getElementById("questionAnswer").value;
	if (problemAnswer == "") {
		alert("\u5bc6\u7801\u67e5\u8be2\u7b54\u6848\u4e0d\u80fd\u4e3a\u7a7a");
		return false;
	}	
	if(!checkProblemAnswer()){
		return false;
	}	
	
	if (document.getElementById("registInvest").checked) {
		var mobile = document.getElementById("mobile").value;
		if (mobile == "") {
			alert("\u624b\u673a\u53f7\u7801\u4e0d\u80fd\u4e3a\u7a7a");
			return false;
		}

		if(!chickUserMobile()){
			return false;
		}
				
		var reallyName = document.getElementById("reallyName").value;
		if (reallyName == "") {
			alert("\u771f\u5b9e\u59d3\u540d\u4e0d\u80fd\u4e3a\u7a7a");
			return false;
		}
		var cardNo = document.getElementById("cardNo").value;
		if (cardNo == "") {
			alert("\u8bc1\u4ef6\u53f7\u7801\u4e0d\u80fd\u4e3a\u7a7a");
			return false;
		}
		if(!chkid()){
			return false;
		}		
	}
	if (!document.getElementById("chengNian").checked) {
		alert("\u6211\u5df2\u6ee118\u5c81\u5fc5\u987b\u9009\u4e0a");
		return false;
	}
	if (!document.getElementById("agreement").checked) {
		alert("\u6211\u5df2\u9605\u8bfb\u5e76\u540c\u610f\u5fc5\u987b\u9009\u4e0a");
		return false;
	}
	return true;
}

//是否显示投注用户的信息框
function isRegistInvest() {
	if (document.getElementById("registInvest").checked) {
		document.getElementById("touZhuYonghu").style.display = "";
	} else {
		document.getElementById("touZhuYonghu").style.display = "none";
		document.getElementById("mobile").value="";
		document.getElementById("cardNo").value="";
		document.getElementById("reallyName").value="";
		
	}
}
function checkIDCard(str,id) {
	
	var isIDCard1 = new Object();
	var isIDCard2 = new Object();
//身份证正则表达式(15位) 
	isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; 
//身份证正则表达式(18位) 
	isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 
//验证身份证，如果正确，提交到reg.asp页面
	if (isIDCard1.test(str) || isIDCard2.test(str)) {
		//document.forms["form1"].action = "";
		//document.forms[0].submit();
		return true;
	}else{
		document.getElementById(id).value="";
		alert("\u8bf7\u91cd\u65b0\u8f93\u5165\u6b63\u786e\u7684\u8eab\u4efd\u8bc1\u7801\uff01");
		return false;
	}
}

function oo(obj){
	return document.getElementById(obj);
}

////////////////////////////////////////////////////////////
////////////////////最终版本/////////////////////////////////
////////////////////////////////////////////////////////////

	function isDateyyyyMMdd(sDate)//专用于yyyyMMdd格式
{
        var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
        var iaDate = new Array(3);
        var year, month, day;

        if (arguments.length != 1) return false;
		if (sDate.length != 8) return false;

        iaDate[0] = sDate.substring(0,4);
		iaDate[1] = sDate.substring(4,6);
		iaDate[2] = sDate.substring(6,8);
        if (iaDate.length != 3) return false;
        if (iaDate[1].length > 2 || iaDate[2].length > 2) return false;

        year = parseFloat(iaDate[0]);
        month = parseFloat(iaDate[1]);
        day=parseFloat(iaDate[2]);
		//alert(year);
		//alert(month);
		//alert(day);
        if (year < 1900 || year > 2100) return false;
        if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
        if (month < 1 || month > 12) return false;
        if (day < 1 || day > iaMonthDays[month - 1]) return false;
        return true;
}

function isDateyyMMdd(sDate)//专用于yyMMdd格式,
{
        var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
        var iaDate = new Array(3);
        var year, month, day;

        if (arguments.length != 1) return false;
		if (sDate.length != 6) return false;

        iaDate[0] = sDate.substring(0,2);
		iaDate[1] = sDate.substring(2,4);
		iaDate[2] = sDate.substring(4,6);
        if (iaDate.length != 3) return false;
        if (iaDate[1].length > 2 || iaDate[2].length > 2) return false;

        year = parseFloat("19" + iaDate[0]);	//短日期直接加19，可能在某些场合判断错误，本函数设计目的是用于15位身份证验证
        month = parseFloat(iaDate[1]);
        day=parseFloat(iaDate[2]);
		//alert(year);
		//alert(month);
		//alert(day);
        if (year < 1900 || year > 2100) return false;
        if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
        if (month < 1 || month > 12) return false;
        if (day < 1 || day > iaMonthDays[month - 1]) return false;
        return true;
}



//--身份证号码验证-支持新的带x身份证
//必须配合上面isDateyyyyMMdd(date8),isDateyyMMdd(date6)两个函数使用
function chkid(){
	var num = document.getElementById("cardNo");
	var selectId = "cardType";
	if( oo(selectId).value == 1 ){
		 var error = '';
	     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
	     var error;
	     var varArray = new Array();
	     var intValue;
	     var lngProduct = 0;
	     var intCheckDigit;
	     var intStrLen = num.value.length;
	     var idNumber = num.value;
	     // initialize
	     if ((intStrLen != 15) && (intStrLen != 18)) {
	         error = "输入身份证号码长度不对！";
	         alert(error);
	         //frmAddUser.txtIDCard.focus();
	         num.value='';
	         return false;
	     }
	     // check and set value
	     for(i=0;i<intStrLen;i++) {
	         varArray[i] = idNumber.charAt(i);
	         if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
	             error = "错误的身份证号码！.";
	             alert(error);
	             //frmAddUser.txtIDCard.focus();
	             num.value='';
	             return false;
	         } else if (i < 17) {
	             varArray[i] = varArray[i]*factorArr[i];
	         }
	     }
	     if (intStrLen == 18) {
	         //check date
	         var date8 = idNumber.substring(6,14);
		     //alert(date8);
	         if (isDateyyyyMMdd(date8) == false) {
	             error = "身份证中日期信息不正确！.";
	             alert(error);
	             num.value='';
	             return false;
	         }
	         // calculate the sum of the products
	         for(i=0;i<17;i++) {
	             lngProduct = lngProduct + varArray[i];
	         }
	         // calculate the check digit
	         intCheckDigit = 12 - lngProduct % 11;
	         switch (intCheckDigit) {
	             case 10:
	                 intCheckDigit = 'X';
	                 break;
	             case 11:
	                 intCheckDigit = 0;
	                 break;
	             case 12:
	                 intCheckDigit = 1;
	                 break;
	         }
	         // check last digit
	         if (varArray[17].toUpperCase() != intCheckDigit) {
	             error = "身份证效验位错误!正确为： ";
	             //error = "身份证效验位错误!正确为： " + intCheckDigit + ".";
	             alert(error);
	             num.value='';
	             return false;
	         }
	     }
	     else{        //length is 15
	         //check date
	         var date6 = idNumber.substring(6,12);
			 if (isDateyyMMdd(date6) == false) {
	             alert("身份证日期信息有误！.");
	             num.value='';
	             return false;
	         }
	     }
	}
	else
	{
			if((/>|<|,|\[|\]|\{|\}|\?|\/|\+|=|\||\'|\\|\"|:|;|\~|\!|\@|\#|\*|\$|\%|\^|\&|\(|\)|`/i).test(idNumber)){
				alert("请勿使用特殊字符",1);
				num.value='';
				return false;
			}
	}
     //alert ("Correct.");
     return true;
}




