/**
 * 检查邮箱
 * @return
 */
function checkEmail(){
	var email = $("#inp_email").val();
	var re = new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/g);
	if(email=="") {
	  return 0;
	}else if(!re.test(email)){
	  return -1;
	}
	return 1;
}
/**
 * 验证码
 * @return
 */
function checkAuthcode(){
	var authcode=$.trim($("#authcode").val());
	if(authcode=="") return 0;
	return 1;
}
/**
 * 真实姓名
 * @return
 */
function checkUsername(){
	var val = $.trim($("#username").val());
	if(fLen(val)==0){
		return 0;
	}
	else if(fLen(val)<4 || fLen(val)>20){
		return -1;
	}
	else return 1;
}
$(document).ready(function(){
	/** ----------- email输入框事件 ----------- */
	$("#inp_email").bind("focus", function(){
		$("#inp_email").attr("class","inp ipt-focus");
		var ret=checkEmail()		
		if(ret==0){
			//Email输入框为空,显示规则
			if($("#email_ico_err").is(":visible")){
				$("#div_email_err").hide();
				$("#email_ico_err").hide();
			}
			$("#div_email_rule").show();
		}
		return false;
	});
    $("#inp_email").bind("blur", function(){
		var ret=checkEmail();
		if(ret>0) {
			$("#inp_email").attr("class","inp ipt-normal");
			$("#email_ico_ok").show();
			$("#email_ico_err").hide();
			$("#div_email_rule").hide();
			$("#div_email_err").hide();
			$("#div_email_err_info").html("");
		}else if(ret==0){
			$("#inp_email").attr("class","inp ipt-normal");
			$("#div_email_rule").hide();
			$("#div_email_err").hide();
			$("#email_ico_err").hide();
	   }else{
		   $("#inp_email").attr("class","inp ipt-error");
			//显示错误提示图标
			$("#email_ico_err").show();
			//隐藏正常提示内容div
			$("#div_email_rule").hide();
			//打开用户名检查错误div
			$("#div_email_err").show();
			//显示具体的错误内容
		    $("#div_email_err_info").html("邮箱格式不正确！");
			return false;
		}		
		return false;
	});
    $("#inp_email").bind("keydown", function(event){
		//event = fGetEvent();
		if (event.keyCode == 13) { 
			if(event.preventDefault) {    
		        // Firefox    
				event.preventDefault();    
				event.stopPropagation();    
		     } else {    
		        // IE    
		    	 event.cancelBubble=true;    
		    	 event.returnValue = false;    
		     }  
			$("#inp_email").blur();
		}
		return true;
	});
	/** ----------- end ----------- */
	
    /** ----------- 密码输入框事件 ----------- */
	$("#password").bind("focus", function(){
		ret = chkPassword();
		$("#password").attr("class","inp ipt-focus");
		if(ret==0){
			if($("#password_ico_err").is(":visible")){
				$("#div_password_err").hide();
				$("#password_ico_err").hide();
			}
			$("#div_password_rule").show();
			//恢复重复输入密码状态
			$("#div_passwordconfirm_err").hide();
			$("#passwordconfirm").attr("class","inp ipt-normal");
			$("#passwordconfirm").attr("value","");
			$("#passwordconfirm_ico_ok").hide();
			$("#passwordconfirm_ico_err").hide();
		}
		else if(ret>0) {
			chkPasswordStrong($("#password").val());
		}
		return false;
	});
	$("#password").bind("blur", function(){
		ret = chkPassword();
		if(ret>0){
			$("#password").attr("class","inp ipt-normal");
			$("#password_ico_ok").show();
			$("#password_ico_err").hide();
			$("#div_password_rule").hide();
			$("#div_password_err").hide();
			$("#div_password_err_info").html("");
		}
		else {
			if(ret==0){
			$("#password").attr("class","inp ipt-normal");
			$("#password_ico_ok").hide();
			$("#password_ico_err").hide();
			$("#div_password_rule").hide();
			$("#div_password_err").hide();
			$("#div_password_err_info").html("");
		}
		else if(ret==-1){
			$("#password").attr("class","inp ipt-error");
			$("#password_ico_ok").hide();
			$("#password_ico_err").show();
			$("#div_password_rule").hide();
			$("#div_password_err").show();
			$("#div_password_err_info").html("请输入6～16位字符的密码");
			
		}
		}
		return false;
	});
	$("#password").bind("keyup", function(){
		$("#passwordconfirm").attr("value","");
		//检查密码强度
		chkPasswordStrong($("#password").val());
		return false;
	});
	
	$("#passwordconfirm").bind("blur",function(){
		$("#passwordconfirm").attr("class","inp ipt-normal");
		return chkPasswordconfirm();
	}
	);
	/** --------- end ------------ */

	/** --------- 验证码 ------------ */
	$("#authcode").bind("blur",function(){
		ret=checkAuthcode();
		if(ret==0){
			$("#authcode_ico_err").show();
			$("#div_authcode_err").show();
			$("#div_authcode_err_info").html("验证码不能为空");
		}
		else {
			$("#authcode_ico_err").hide();
			$("#div_authcode_err").hide();
		}
	});
	
	/** --------- end ------------ */
	
	/** ----------- username输入框事件 ----------- */
	$("#username").bind("focus", function(){
		$("#username").attr("class","inp ipt-focus");
		var ret=checkUsername()		
		if(ret==0){
			//真实姓名输入框为空,显示规则
			if($("#username_ico_err").is(":visible")){
				$("#div_username_err").hide();
				$("#username_ico_err").hide();
			}
			$("#div_username_rule").show();
		}
		return false;
	});
    $("#username").bind("blur", function(){
		var ret=checkUsername();
		if(ret>0) {
			$("#username").attr("class","inp ipt-normal");
			$("#username_ico_ok").show();
			$("#username_ico_err").hide();
			$("#div_username_rule").hide();
			$("#div_username_err").hide();
			$("#div_username_err_info").html("");
		}else if(ret==0){
			$("#username").attr("class","inp ipt-normal");
			$("#div_username_rule").hide();
			$("#div_username_err").hide();
			$("#username_ico_err").hide();
	   }else{
		   $("#username").attr("class","inp ipt-error");
			//显示错误提示图标
			$("#username_ico_err").show();
			//隐藏正常提示内容div
			$("#div_username_rule").hide();
			//打开用户名检查错误div
			$("#div_username_err").show();
			//显示具体的错误内容
		    $("#div_username_err_info").html("真实姓名应该4~20个字符，一个汉字占两个字符");
			return false;
		}		
		return false;
	});
    $("#username").bind("keydown", function(event){
		if (event.keyCode == 13) { 
			if(event.preventDefault) {    
		        // Firefox    
				event.preventDefault();    
				event.stopPropagation();    
		     } else {    
		        // IE    
		    	 event.cancelBubble=true;    
		    	 event.returnValue = false;    
		     }  
			$("#username").blur();
		}
		return true;
	});
	/** ----------- end ----------- */
	
	
}); 

function chkPassword(){
	password= $("#password").val();
	if(password == "") return 0;
	var len;
	var i;
	var isPassword = true;
	len = 0;
	for (i=0;i<password.length;i++){
		if (password.charCodeAt(i)>255) isPassword = false;
	}
	if(!isPassword || password.length > 16 || password.length < 6)
		return -1;
	
	return 1;
}

/**
 * 显示密码强弱
 * @return
 */
function chkPasswordStrong(me) {
	//恢复重复输入密码状态
	$("#div_passwordconfirm_err").hide();
	$("#passwordconfirm").attr("class","inp ipt-normal");
	$("#passwordconfirm_ico_ok").hide();
	$("#passwordconfirm_ico_err").hide();
	//-----
	$("#password_ico_ok").hide();
	$("#password_ico_err").hide();
	
	$("#div_password_err").hide();
	$("#div_password_err_info").html("");
	
	$("#password").attr("class","inp ipt-normal");
	//打开密码提示内容div
	$("#div_password_rule").show();
	var csint = checkStrong(me);
	$("#div_passowrd_Strong").attr("class","bar state"+csint);
}


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; //特殊字符 
} 

function chkPasswordconfirm(){
	var password= $("#password").val();
	var passwordconfirm = $("#passwordconfirm").val();
	
	if(password != passwordconfirm){
		$("#div_passwordconfirm_err").show();
		$("#passwordconfirm").attr("class","inp ipt-error");
		$("#passwordconfirm_ico_ok").hide();
		$("#passwordconfirm_ico_err").show();
		return false;
	}
	else if(passwordconfirm==''){
		$("#div_passwordconfirm_err").hide();
		$("#passwordconfirm").attr("class","inp ipt-normal");
		$("#passwordconfirm_ico_ok").hide();
		$("#passwordconfirm_ico_err").hide();
	}
	else {
		$("#div_passwordconfirm_err").hide();
		$("#passwordconfirm").attr("class","inp ipt-normal");
		
		$("#passwordconfirm_ico_err").hide();
		if($("#password_ico_err").is(":visible")){
			$("#passwordconfirm_ico_ok").hide();
		}
		else $("#passwordconfirm_ico_ok").show();
	}
	return true;
}

//bitTotal函数 
//计算出当前密码当中一共有多少种模式 
function bitTotal(num){
	modes=0; 
	for (i=0;i<4;i++){ 
		if (num & 1) modes++; 
		num>>>=1; 
	} 
	return modes; 
} 

//checkStrong函数 
//返回密码的强度级别 
function checkStrong(sPW){
	Modes=0; 
	for (i=0;i<sPW.length;i++){ 
		//测试每一个字符的类别并统计一共有多少种模式. 
		Modes|=CharMode(sPW.charCodeAt(i)); 
	} 
	return bitTotal(Modes);
}

//计算字符数，一个中文2个字符
function fLen(Obj){
  var nCNLenth = 0;
  var nLenth = Obj.length;
  for (var i=0; i<nLenth; i++){
    if(Obj.charCodeAt(i)>255){
      nCNLenth += 2; 
    }else{
      nCNLenth++;
    }
  }
  return nCNLenth;
}
