var gEmailValidateFlag = false;
var isValidateCode = false;
var captcha = false;
var isclick = 1;
/*
    注册事件
*/

function registerEvent(){
	// 提交登陆表单
    $('#loginForm',$('#loginRange')).submit( function () {

		var text = this.Lemail.value;
		var textValue = text.replace(/(^\s*)|(\s*$)/g, "");     //替换输入内容当中所有的空字符，包括全角空格，半    
		if(textValue==null || textValue=="") {    
			alert("请输入登录邮箱！");    
			return false;    
		}

		var text = this.Lpwd.value;
		var textValue = text.replace(/(^\s*)|(\s*$)/g, ""); //替换输入内容当中所有的空字符，包括全角空格，半角空格
		if(textValue==null || textValue=="") {
			alert("请输入密码！");
			return false;
		}

    var p  = this.Lpwd.value;
		var s = this.Lsa.value;
		var str = hex_md5(p);
		switch (this.Lt.value) {
			case 'rand':
				//md5(pwd+md5(key))
				this.Lpwd.value = hex_md5(str.concat(hex_md5(s)));
				break;
			case 'time':
				//md5(key+md5(pwd))
				this.Lpwd.value = hex_md5(s.concat(hex_md5(str)));
				break;
		}
		return true;
    });
    
    // 提交注册表单
    $('#regForm',$('#registerRange')).submit( function () {
        if (isclick==0) {
          return false;
        }
        isclick = 0;
        // email
        if(validateEmailDisp(gEmailValidateFlag) == false){
            isclick = 1;
            return false;
        }

        /*
        if (! validateIdCard()) {
            isclick = 1;
            return false;
        }
        */
        //validateCode();

/*
        if (! isValidateCode) {
          isclick = 1;
          return false; 
        }
		*/
        
        // pwd
        if(validatePwd() == false) {
          isclick = 1;
          return false;
        }

        // pwd repeat
        if(validatePwdRepeat() == false){
            isclick = 1;
            return false;
        }


        // name
        if(validateName() == false){
            isclick = 1;
            return false;
        }

        /*
        // birthday
        if (! checkYear()) {
          isclick = 1;
          return false; 
        }

        if (! checkMonth()) {
          isclick = 1;
          return false; 
        }

        if (! checkDay()) {
          isclick = 1;
          return false; 
        }
        
        
        
        // local
        if(validateLocal(this) == false){
            isclick = 1;
            return false;
        }

        // job
        if(validateJob(this.job.value) == false){
            isclick = 1;
            return false;
        }
        */
        
        // code
        /* 去掉验证码长度验证
        if(validateCode() == false){
            return false;
        }
        */
        
        // 条款
        if(validateArgee() == false){
            isclick = 1;
            return false;
        }

        var p = this.pwd.value;
        var p1 = this.pwd1.value;
        var s = this.sa.value,str;
        this.p.value = str = hex_md5(p);
        switch (this.t.value) {
        	case 'rand':
	        	this.pwd.value = hex_md5(str.concat(hex_md5(s)));
	        	this.pwd1.value = hex_md5(str.concat(hex_md5(s)));
	        	break;
        	case 'time':
	        	this.pwd.value = hex_md5(s.concat(hex_md5(str)));
	        	this.pwd1.value = hex_md5(s.concat(hex_md5(str)));
	        	break;
        }
        return true;
    });
    
    // 为 id = registerRange 的注册区域下的 input type = text 的dom对象邦定事件
    $('input[class=text]',$('#registerRange')).each(function(){
        /*
        this.onfocus = function(){
            $('#icon_'+this.id).hide();
            $('#tips_'+this.id+'_bg').show();
        }
        */

        
        this.onblur = function(){
            $('#tips_'+this.id+'_bg').hide();
            switch(this.id){
                case 'email':
					this.value = Trim(this.value);
                    gEmailValidateFlag = false;
                    ajaxE({
                        'page':'chkReg',
                        'fun':'chkEmail',
                        'args':{email:this.value}
                    });
                    //validateEmailDisp(false);
                    break;
                case 'pwd':
                    validatePwd()
                    break;
                case 'pwd1':
                    validatePwdRepeat();
                    break;
                case 'name':
                    validateName();
                    break;
            }
        }
    });
    

    // 与上一段类似，暂时这样做 by dong4138
    $('input[class=text1]',$('#registerRange')).each(function(){
        /*
        this.onfocus = function(){
            $('#icon_'+this.id).hide();
            $('#tips_'+this.id+'_bg').show();
        }
        */

        
        this.onblur = function(){
            $('#tips_'+this.id+'_bg').hide();
            switch(this.id){
                case 'name':
                    validateName();
                    break;
                case 'identity_card':
                  validateIdCard();
                  break;
            }
        }
    });

    function currentLineColor(id) {
      $("input", $("#"+id)).each(function(){
          this.onfocus = function() {
            $("#"+id).addClass("red");
          }
      });
    }

    var tmparr = ['li_email', 'li_pwd', 'li_pwd1', 'li_name', 'li_code'];
    for (var i=0; i<tmparr.length; i++) {
      currentLineColor(tmparr[i]);
    }

    
    // 所在地区.
    // 在2.5.5上被去掉了 by dong4138 2009-10-29
    /*
    $('select[class=select]',$('#registerRange')).each(function(){
        this.onfocus = function(){
            $('#icon_local').hide();
        }
        
        this.onblur = function(){
            //alert("stop");return false;
            validateLocal($('#regForm',$('#registerRange')).get(0));
        }
    });
    */
    
    // 验证码
    $('input[id=code]',$('#registerRange')).each(function(){
        
        this.onfocus = function(){
			showCaptcha();
        }
        
        this.onblur = function(){
            validateCode();
        }
        
    });
    
    // 条款
    $('input[type=checkbox]',$('#registerRange')).each(function(){
        /*
        this.onfocus = function(){
            //$('#icon_agree').hide();
        }
        */
        
        this.onblur = function(){
            validateArgee();
        }
    });
    
    // 身份
    $('select[class=status]',$('#registerRange')).each(function(){
        this.onfocus = function(){
          //$('#icon_status').hide();
        }

        this.onblur = function(){
          validateJob(this.value);
        }

        this.onchange = function(){
          validateJob(this.value);
          changeJob();
        }
    });
}

//------------------ 验证模块 ------------------

//javascript去空格函数 
function LTrim(str)
{ //去掉字符串 的头空格
	var i;
	for(i=0;i<str.length-1;i++)
	{
		if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
	}
	str = str.substring(i,str.length);
	return str;
}

function RTrim(str)
{//去掉字符串的尾空格
	var i;
	for(i=str.length-1;i>=0;i--)
	{
		if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
	}
	str = str.substring(0,i+1);
	return str;
}

function Trim(str)
{
	return LTrim(RTrim(str));
}

// job
function validateJob(job){
	if(job == 'no' || job == '' || job == undefined || job == null) {
    rightError('li_job', 'error', '请选择身份！');
    return false;
  } else {
    rightError('li_job', 'right');
    return true;        
  }
}

// 验证密码
function validatePwd(){
    var pwd = $('#pwd').val();
    if(pwd == '' || pwd == undefined || pwd == null) {
        rightError('li_pwd', 'error', '密码不能为空！');
        return false;
    }
    var re = /^[0-9]{1,8}$/
    if (re.test(pwd)) {
      rightError('li_pwd', 'error', '纯数字密码不能小于9个');
      return false;
    }

    var re = /^[a-zA-Z0-9,!@#$%^&*\(\)_\-+=]{6,20}$/;
    //var re = /^[a-zA-Z0-9,!@#$^\(\)*_+%&=]{6,20}$/;
    if(re.test(pwd)) {
        rightError('li_pwd', 'right');
        return true;
    } else {
        rightError('li_pwd', 'error', '密码必须是6-20个英文字母与数字！');
        return false;
    }
}

// 验证密码是否重复
function validatePwdRepeat(){
    var pwd = $('#pwd1').val();
    if(pwd === $.id('pwd').value){
        rightError('li_pwd1', 'right');
        return true;
    } else {
        rightError('li_pwd1', 'error', '两次密码不一样！');
        return false;
    }
}

// 验证真实姓名
function validateName(){
    var str = $('#name').val();
    var reg = /^[\u4E00-\u9FA5]+$/;

    if(reg.test(str)){
		if(str.length > 7 || str.length < 2) {
			rightError('li_name', 'error', '真实姓名长度请保持在2-7个汉字！');
			return false;
		}
        rightError('li_name', 'right');
        return true;
    } else {
        rightError('li_name', 'error', '真实姓名必须是中文！');
        return false;
    }
}

// 验证条款
function validateArgee(){
    if($('#agree').attr("checked") == false) {
        rightError('li_agree', 'error', '必须同意woyo条款，才能注册！');
        return false;
    }
    rightError('li_agree', 'right');
    return true;
}

/*
验证所在地
obj = form表单对象
*/
function validateLocal(obj){

    if(obj.country.value == 'no'){
        rightError('icon_local', 'error', '请选择国家！');
        return false;
    }

    if(obj.province.value == 'no'){
        rightError('icon_local', 'error', '请选择省！');
        return false;
    }
    
    if(obj.city.value == 'no'){
        rightError('icon_local', 'error', '请选择城市！');
        return false;
    }
    
	var country_name=ary_area_data[obj.country.value][0];
	
	var prov=obj.province.value.split('|');
	var prov_name=ary_area_data[obj.country.value][prov[1]][0];
	
	var city_name=ary_area_data[obj.country.value][prov[1]][obj.city.value];
    
	obj.localInfo.value=country_name+'-'+prov_name+'-'+city_name;
	
    rightError('icon_local', 'right');
    return true;
}


function showCaptcha() {
	if(captcha == false) {
		$('#captcha').html('<a href="#" onclick="refreshCaptcha();return false;"><img id="verifycode" src="http://captcha.woyo.com/captcha.php?'+new Date().getTime()+'" alt="" /></a><a href="#" onclick="refreshCaptcha();return false;">看不清，换一张 </a>');
		captcha = true;
	}
}

function refreshCaptcha() {
    $("#verifycode").attr('src','http://captcha.woyo.com/captcha.php?'+new Date().getTime());
}

// 验证验证码
function validateCode(){
    var code = $('#code').val();
    ajaxE({
      'page':'chkReg',
      'fun':'chkCode',
      'args':{"code": code},
      "async": false
    });
    return true;

    /*
    if(code.length > 4 || code.length < 4){
        rightError('li_code', 'error', '验证码长度必须为4位！');
        return false;
    }
    rightError('li_code', 'right');

    return true;
    */
}



/*
    对错提示
    objId = 提示对象ID
    cls   = className
    msg   = 提示信息
*/
  /*
function rightError(objId, cls, msg){
    obj = $.id(objId);
    obj.className = cls;
    msg = (msg == undefined)? '&nbsp;' : '&nbsp;&nbsp;'+msg;
    $(obj).html(msg).show();

}
  */
function rightError(objId, type, msg) {
  var obj = $("#" + objId);
  var mes = $(".msg", obj);
  if (type=="right") {
    mes.hide();
    obj.removeClass("erro");
    obj.addClass("right");
    obj.removeClass("red");
  } else if(type=="error") {
    mes.show();
    if (msg) mes.text(msg);
    obj.removeClass("right");
    obj.addClass("erro")
  }
}

/*
    验证 email 是否存在后的处理
    flag = true 可用 false 不可用[存在]
*/
function validateEmailDisp(flag) {
    if(flag) {
        rightError("li_email", "right");
        gEmailValidateFlag = true;
    } else {
        //rightError('icon_email', 'error', '&nbsp;&nbsp;email 填写不正确或已经存在！<a href="http://www.woyo.com/needlogin.php">点此登录</a>');
        rightError("li_email", "error");
        return false;
    }
    return true;
}

function validateEmailDisp2(flag) {
    if(flag) {
        rightError("li_email", "right");
        gEmailValidateFlag = true;
    } else {
        //rightError('icon_email', 'error', '&nbsp;&nbsp;email 填写不正确或已经存在！<a href="http://www.woyo.com/needlogin.php">点此登录</a>');
        rightError("li_email", "error", "该email已经存在");
        return false;
    }
    return true;
}

function errorDisp(){
	var error = $('#regError',$('#registerRange')).val();
	
	error = error.split('|');
	
	for(var i = 0,total = error.length; i<total ;i++){
		switch(error[i]){
			case 'email':
				gEmailValidateFlag = false;
				validateEmailDisp(gEmailValidateFlag);
				break;
			case 'pwd':
				//rightError('icon_pwd', 'error', '密码必须是6-20个英文字母与数字！');
				rightError('icon_pwd', 'error', '密码必须是6-20个英文字母与数字！');
				break;
			case 'pwd1':
				rightError('icon_pwd1', 'error', '两次密码不一样！');
				break;
			case 'name':
				rightError('icon_name', 'error', '真实姓名必须是中文！');
				break;
			case 'sex':
	
				break;
			case 'province':
				rightError('icon_local', 'error', '请选择省！');
				break;
			case 'city':
				rightError('icon_local', 'error', '请选择市！');
				break;
			case 'agree':
				rightError('icon_agree', 'error', '必须同意woyo条款，才能注册！');
				break;
			case 'job':
				rightError('icon_status', 'error', '身份不能为空！');
				break;
			case 'code':
				rightError('icon_code', 'error', '验证码错误！');
				break;
		}
	}
}


//pwd check

function displayPasswd() 
{
    //var str=""+document.getElementById("pwd").value;
	//if(str.length>=1)
	//  document.getElementById("passwd").style.display="";
	//else
	//  document.getElementById("passwd").style.display="none";
}

//CharMode函数  
//测试某个字符是属于哪一类.  
function CharMode(iN){  
	if (iN>=48 && iN <=57) //数字  
		return 1;  
	if (iN>=65 && iN <=90) //大写字母  
		return 2;  
	if (iN>=97 && iN <=122) //小写  
		return 4;  
	else  
		return 8; //特殊字符  
}  

//bitTotal函数  
//计算出当前密码当中一共有多少种模式  
function bitTotal(num){  
	modes=0;  
	for (i=0;i<4;i++){  
		if (num & 1) modes++;  
		num>>>=1;  
	}  
	return modes;  
}  

//checkStrong函数  
//返回密码的强度级别  

function checkStrong(sPW){  
	if (sPW.length<=4)  
		return 0; //密码太短  
	Modes=0;  
	for (i=0;i<sPW.length;i++){  
		//测试每一个字符的类别并统计一共有多少种模式.  
		Modes|=CharMode(sPW.charCodeAt(i));  
	}  

	return bitTotal(Modes);  

}  

//pwStrength函数  
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色  

function pwStrength(pwd){  

	var O_color="#eeeeee";  
	var L_color="#FF0000";  
	var M_color="#FF9900";  
	var H_color="#33CC00";  

	if (pwd==null||pwd==''){  
		Lcolor=Mcolor=Hcolor=O_color;  
	}  
	else{  
		var S_level=checkStrong(pwd);  
		switch(S_level) {  
			case 0:  
			Lcolor=Mcolor=Hcolor=O_color;  
			$("#security_tip").html('弱');
			case 1:  
			Lcolor=L_color;  
			Mcolor=Hcolor=O_color;  
			$("#security_tip").html('弱');
			break;  
			case 2:  
			Lcolor=Mcolor=M_color;  
			Hcolor=O_color;  
			$("#security_tip").html('中');
			break;  
			default:  
			Lcolor=Mcolor=Hcolor=H_color;  
			$("#security_tip").html('强');
		}  
	}  
	//document.getElementById("strength_L").style.background=Lcolor;  
	//document.getElementById("strength_M").style.background=Mcolor;  
	//document.getElementById("strength_H").style.background=Hcolor;
	
	$("#strength_L").css("background",Lcolor);
	$("#strength_M").css("background",Mcolor);
	$("#strength_H").css("background",Hcolor);
	return;  
} 
//pwd check

//------------------ 初始环境 ------------------

// 文档加载完后自动触发	
function regDoneLoad() {
  registerEvent();
  /*
  var prov = $('#provError',$('#registerRange')).val();
  var city = $('#cityError',$('#registerRange')).val();
  var tmp_prov = prov.split('|');
  getInner('prov','1',tmp_prov[1]);
  getInner('city',prov,city);
  */
  errorDisp();
  //if(prov) gEmailValidateFlag = true;
  $('#email',$('#registerRange')).get(0).focus();
}


function validateIdCard() {
  var num = $("#identity_card").val();
  if (num=="") {   // 不是必填项
    var objId = "li_identity_card";
    var obj = $("#" + objId);
    var mes = $(".msg", obj);
    mes.hide();
    obj.removeClass("erro");
    obj.removeClass("right");
    obj.removeClass("red");
    return true;
  }

  var disp = isIdCardNo(num);
  if (disp==-1) {
    rightError('li_identity_card', 'error', '身份证格式不正确');
    return false;
  } else if (disp==-2) {
    rightError('li_identity_card', 'error', '身份证位数不正确');
    return false;
  } else if (disp==-3) {
    rightError('li_identity_card', 'error', '身份证生日不正确');
    return false; 
  } else {
    rightError('li_identity_card', 'right');
    return true;
  }
}

function isIdCardNo(num)
{
  var len = num.length, re; 
  if (len == 15) 
    re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
  else if (len == 18)
    re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\S)$/); 
  else {
    return -2;
    //alertTip("身份证位数不正确，请输入18位或15位的身份证号码！");
    return false; 
  } 
  var a = num.match(re); 
  if (a !=null)
  {
    if (len==15)
    { 
      var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
      var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
    }
    else { 
      var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
      var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
    } 
    if(!B)
    { 
      return -3;
      //alertTip("输入的身份证号 "+ a[0] +" 里出生日期不对！"); 
      return false; 
    } 
  } 
  return true; 
} 

function checkInput(){ 
  with(document.form1){ 
    if(!isIdCardNo(idCard.value))
    { 
      idCard.focus(); 
      return false; 
    } 
  } 
}
addLoadExec('regDoneLoad();');
