var accNameResult = false;
var realNameResult = false;
var passwdResult = false;
var emailResult = false;
var idcardResult = false;
var registerCodeResult = false;
var isSubmit = false;
function showErrorDiv(name, message){
	if(name.length > 0){
		var rightDiv = name+"Right";
		var errorDiv = name+"Error";
		var tipDiv = name+"Tip";
	 	document.getElementById(rightDiv).style.display = "none";
	   	document.getElementById(errorDiv).innerHTML=message;
	   	document.getElementById(errorDiv).style.display = "block";
	   	if(document.getElementById(tipDiv)){
	   		document.getElementById(tipDiv).style.display = "none";
	   	}
   	}
}
function showRightDiv(name){
	var righeDiv = name+"Right";
	var errorDiv = name+"Error";
	var tipDiv = name+"Tip";
 	document.getElementById(righeDiv).style.display = "block";
   	document.getElementById(errorDiv).innerHTML="";
   	document.getElementById(errorDiv).style.display = "none";
   	if(document.getElementById(tipDiv) != null){
   		document.getElementById(tipDiv).style.display = "none";
   	}
   	switch(name){
   		case "accName" : accNameResult = true;
   			break;
   		case "realName" : realNameResult = true;
   			break;
   		case "passwd" : passwdResult = true;
   			break;
   		case "email" : emailResult = true;
   			break;
   		case "idcard" : idcardResult = true;
   			break;
   		case "registerCode" : registerCodeResult = true;
   			break;
   	}
}
function showTip(name){
	document.getElementById(name+'Tip').style.display = "block";
	var righeDiv = name+"Right";
	document.getElementById(righeDiv).style.display = "none";
}

var reg = /^(?!_)(?!.*?_$)[a-zA-Z0-9\u4e00-\u9fa5_]{1,17}$/;
var con = /^(?!_)(?!.*?_$)[a-zA-Z0-9_]{4,17}$/;

function checkAccName(){
	accNameResult = false;
	var name = document.getElementById("accName");
	if(name == null || name.value == ""){
		showErrorDiv("accName", "用户名不能为空，请正确输入！");
		return false;
	}
	if(name.value.length < 4){
		showErrorDiv("accName", "用户名长度不能少于4个字符，请正确输入！");
		return false;
	}
	if(name.value.length > 14){
		showErrorDiv("accName", "用户名长度最多为14个字符，请正确输入！");
		return false;
	}
	if(!con.test(name.value)){
		showErrorDiv("accName", "请按照提示格式填写用户名！");
		return false;
	}else{
		validateAccName();
	}
} 
//删除左右两端的空格
function trim(str) {
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

function validateAccName(){
	function handleSuccess(o){
    	var meg = trim(o.responseText);
    	if(meg == "yes"){
 			showRightDiv("accName");
   		}else handleFailure();
	}
	function handleFailure(){
 		showErrorDiv("accName", "用户名已被使用,请重新输入");
 	}
	var acccallback = { 
		  success: handleSuccess, 
		  failure: handleFailure,
		  cache:false
	};
	var accName = document.getElementById("accName").value;
	var url = path+"/register/checkAccName.jhtml"; 
	var postData = "accName="+accName;
	var request = YAHOO.util.Connect.asyncRequest('POST', url, acccallback, postData); 
}

function checkRealName(){
	realNameResult = false;
	var name = document.getElementById("realName");	
	if(name == null || name.value =="" || name.value.length<1){
		showErrorDiv("realName", "真实姓名不能为空,请正确输入");
		return false;
	}
	var str = name.value;
	var num=str.length;
	var arr=str.match(/[^\x00-\x80]/ig);
	if(arr!=null)num+=arr.length ;
	if(num > 14){
		showErrorDiv("realName", "真实姓名长度最多为14个字符(7个汉字)，请正确输入！");
		return false;
	}
	if(!reg.test(name.value)){
		showErrorDiv("realName", "请按照正确格式填写真实姓名!");
		return false;
	}
	validateRealName(str);
}

function validateRealName(realName){
	function handleSuccess(o){
    	var meg = trim(o.responseText);
    	if(meg == "1"){
 			showRightDiv("realName");
   		}else handleFailure();
	}
	function handleFailure(){
 		showErrorDiv("realName", "请正确填写您的真实姓名");
 	}
	var acccallback = { 
		  success: handleSuccess, 
		  failure: handleFailure,
		  cache:false
	};

	var url = path+"/checkKeyword.jhtml"; 
	var postData = "keyword="+realName;
	var request = YAHOO.util.Connect.asyncRequest('POST', url, acccallback, postData); 
}

//定义检测函数,返回0/1/2/3分别代表无效/差/一般/强
function checkPwd(s){
	var point =0;
	if(s.length < 4){
	}else{
		if (s.match(/[a-z]/ig)){
			point++;
		}
		if (s.match(/[0-9]/ig)){
			point++;
		}
	 	if (s.match(/(.[^a-z0-9])/ig)){
	 		point++;
		}
		if (s.length < 6 && point > 0){
			point--;
		}
	}	
	var ruo = resourcePath+'/img02/register/ruo.gif';
	var zhong =resourcePath+ '/img02/register/zhong.gif';
	var qiang = resourcePath+'/img02/register/qiang.gif';
	var imageSrc = '';
	var pwdWord = '';
	if(point <2){
		imageSrc = ruo;
		pwdWord = '弱';
	}else if(point ==2){
		imageSrc = zhong;
		pwdWord = '中';
	}else{
		imageSrc = qiang;
		pwdWord = '强';
	}
	document.getElementById('pwdImg').src = imageSrc;
}

function checkPasswd(id){
	passwdResult = false;
	var name = document.getElementById(id);
	var secpasswd = document.getElementById("secPasswd");
	var passwd = document.getElementById("passwd");
	if(name == null || name.value == ""){
		showErrorDiv(id, "密码不能为空，请正确输入！");
		return false;
	}
	if(name.value.length < 6){
		showErrorDiv(id, "密码长度不能少于6个字符，请正确输入！");
		return false;
	}
	if(name.value.length > 14){
		showErrorDiv(id, "密码长度最多为14个字符，请正确输入！");
		return false;
	}
	if(!con.test(name.value)){
		showErrorDiv(id, "请按照提示格式填写密码！");
		return false;
	}
	showRightDiv(id);
}

function checkRePasswd(){
	var passwd = document.getElementById("passwd");
	var repasswd = document.getElementById("repasswd");
	if(passwd.value != repasswd.value){
		showErrorDiv('repasswd', "确认密码与密码不相符，请重新输入！");
		return false;
	}
	if(passwd.value != ''){
		showRightDiv('repasswd');
	}
}

function checkEmail(id){
	emailResult = false;
	var emailCon = /^[a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
	var name = document.getElementById(id);
	if(name == null || name.value == ""){
		showErrorDiv(id, "电子邮件不能为空，请正确输入！");
		str = "false";
		return false;
	}
	if(!emailCon.test(name.value)){
		showErrorDiv(id, "请按照提示格式填写电子邮件！");
		return false;
	}
	showRightDiv(id);
}
//验证身份证号码
function isIdCardNo(num) {   
    num = num.toUpperCase(num);           //身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。        
    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {     
        //alert('输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X。');              
        return false;         
    } //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。
    //下面分别分析出生日期和校验位
    var len, re; len = num.length; if (len == 15) {
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);  //检查生日日期是否正确
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
        var bGoodDay; bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {         
           // alert('输入的身份证号里出生日期不对！');            
            return false;
        } else { //将15位身份证转成18位 //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。        
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);         
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');      
            var nTemp = 0, i;            
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);           
            for(i = 0; i < 17; i ++) {                 
                nTemp += num.substr(i, 1) * arrInt[i];        
            }
            num += arrCh[nTemp % 11];
            return true;
        }
    }
    if (len == 18) {
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
        var arrSplit = num.match(re);  //检查生日日期是否正确
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
        var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
           // alert(dtmBirth.getYear());
           // alert(arrSplit[2]);
            //alert('输入的身份证号里出生日期不对！');
            return false;
        }
        else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。
            var valnum;
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            for(i = 0; i < 17; i ++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            valnum = arrCh[nTemp % 11];
            if (valnum != num.substr(17, 1)) {
                //alert('18位身份证的校验码不正确！应该为：' + valnum);
                return false;
            }
            return true;
        }
    } return false;

}

function checkIdcard(id){
	idcardResult = false;
	var name = document.getElementById(id);
	if(name == null || name.value == ""){
		showErrorDiv(id, "身份证号不能为空，请正确输入！");
		return false;
	}
	var idcardCon = /^[0-9]{9,17}[xX0-9]$/;
	if(!idcardCon.test(name.value)){
		showErrorDiv(id, "你输入的身份证号码不正确！");
		return false;
	}
	showRightDiv(id);
}

function reloadImage(url)
{
	rand = new Date();
	document.getElementById('regForm').img1.src = url + "?rand=" + rand;
	document.getElementById('registerCode').focus();
 	document.getElementById('registerCodeRight').style.display = "none";
 	document.getElementById('registerCodeError').style.display = "none";
}

function checkRegisterCode(){
	registerCodeResult = false;
	var name = document.getElementById("registerCode");
	if(name == null || name.value == ""){
		showErrorDiv("registerCode", "注册码不能为空，请正确输入！");
		return false;
	}
	showRightDiv("registerCode");
}

function check(){
	var accName = document.getElementById("accName");
	var realName = document.getElementById("realName");
	var passwd = document.getElementById("passwd");
	var repasswd = document.getElementById("repasswd");
	var email = document.getElementById("email");
	var registerCode = document.getElementById("registerCode");
	if(accName.value.length<1){
		showErrorDiv('accName', "用户名不能为空，请按正确格式填写！");
	}
	if (!accNameResult){
		checkAccName();
	}
	checkPasswd('passwd');
	if(passwd.value != repasswd.value){
		showErrorDiv('repasswd', "确认密码与密码不相符，请重新输入！");
	}
	
	if(!realNameResult)
		checkRealName();
	
	checkIdcard('idcard');
	checkEmail('email');
	checkRegisterCode();
	
	if(!registerCodeResult || !emailResult || ! idcardResult || !realNameResult || !accNameResult){
		return false;
	}
	
	//避免重复提交
	if(!isSubmit){
		formSubmit();
	}	
}

function formSubmit(){
	isSubmit = true;
	document.getElementById('closePopupWinDiv1').style.display = 'none';
	document.getElementById('closePopupWinDiv2').style.display = 'none';
	yxg.createPopupWin("","","errorsAlert","提示信息", "register_7");
	function handleSuccess(o){
    	var meg = trim(o.responseText);
    	var messages = YAHOO.lang.JSON.parse(meg);
    	if(messages.result == "yes" && messages.accountId > 0){
 			registerLogin();
 			sendRegisterInfo();//向产品的平台发送用户注册成功的消息
   		}else{
   			isSubmit = false;
   			yxg.closePopupWinHandle("errorsAlert");
   			if (messages.position != "login"){
   				showErrorDiv(messages.position, messages.errorMessage);
   			}else{
   				yxg.createPopupWin("","","errorsAlert","提示信息",messages.warn);
   			}   			
   		}
	}
	function handleFailure(){
		isSubmit = false;
 		yxg.createPopupWin("","","errorsAlert","提示信息", "gift_5");
 	}
	var acccallback = { 
		  success: handleSuccess, 
		  failure: handleFailure,
		  cache:false
	};
	var passwd = document.getElementById("passwd");
	var md5Passwd = document.getElementById("md5Passwd");
	var digest = hex_md5(passwd.value + loginid);
	md5Passwd.value = digest;
	var loginidinput = document.getElementById("loginid");
	loginidinput.value = loginid;
	var form1 = document.getElementById('regForm');
	YAHOO.util.Connect.setForm(form1);
	var request = YAHOO.util.Connect.asyncRequest('POST', form1.action, acccallback); 
}

function registerLogin(){
	function handleSuccess(o){		
		yxg.closePopupWinHandle("errorsAlert");
    	var meg = trim(o.responseText);
    	var messages = YAHOO.lang.JSON.parse(meg);
    	if(messages.result == "yes" && messages.accountId > 0){
    		if(typeof(referer)=='undefined'){
				window.location.href=path+"/register/registerSuccess.jhtml";
	   			//window.location.href=path+"/register/addLogo.jhtml";
    		}else{
    			window.location.href=referer; //跳转到目标页面
    		}	
   		}else{
   			isSubmit = false;
   			yxg.createPopupWin("","","errorsAlert","提示信息",messages.warn);
   		}
	}
	function handleFailure(){
		isSubmit = false;
		yxg.closePopupWinHandle("errorsAlert");
 		yxg.createPopupWin("","","errorsAlert","提示信息", "gift_5");
 	}
	var acccallback = { 
		  success: handleSuccess, 
		  failure: handleFailure,
		  cache:false
	};
	var accName = document.getElementById("accName").value;
	var url = path+"/register/login.jhtml"; 
	var postData = "accName="+accName;
	var request = YAHOO.util.Connect.asyncRequest('POST', url, acccallback, postData); 
}
//向产品的平台发送用户注册成功的消息
function sendRegisterInfo(){
	function handleSuccess(o){}
	function handleFailure(){}
	var acccallback = { 
		  success: handleSuccess, 
		  failure: handleFailure,
		  cache:false
	};
	var url = "http://opsweb.youxigu.com/opsweb/addAdClick.action"; 
	var postData = "uid="+document.getElementById("uid").value;
	var request = YAHOO.util.Connect.asyncRequest('POST', url, acccallback, postData); 
}

function aggressChange(){
	var isChecked = document.getElementById("agreeLicence").checked;
	if(isChecked){
		document.getElementById("btnAgressMSJR").style.display = 'block';
		document.getElementById("btnRejectMSJR").style.display = 'none';
	}else{
		document.getElementById("btnRejectMSJR").style.display = 'block';
		document.getElementById("btnAgressMSJR").style.display = 'none';
	}
}


		