﻿function checkPWD( me ){
	if( ! isPassword( me.value ) || !/^[^%&]*$/.test( me.value )) _( "chkPwd" ).style.display = "";
	else {
		_( "chkPwdStr" ).innerHTML = "<font color=black>密码安全程度：</font>"+checkStrong(me.value);
		_( "chkPwdStr" ).style.display = "";
	}
}
function isPassword( str ){
	if (str.length < 6 || str.length > 16) return false;
	var len;
	var i;
	len = 0;
	for (i=0;i<str.length;i++){
		if (str.charCodeAt(i)>255) return false;
	}
	return true;
}
function checkNumber( num ,max){
    if( /^[0-9]+$/.test( num ) && num <=max && num > 0)
		return true;
	else return false;
}
function birthPress(){
	var k = window.event.keyCode;
	if (k < 48 || k > 57)
		window.event.keyCode = 0 ;
}
function confirmPwd( me ){
	var oPassword = _( "password" );
	if( ! ( me.value == oPassword.value ) || ! isPassword( me.value ) ) _( "pwdConfirm" ).style.display = "";
}
function checkVerifyCode( me ){
	if( me.value == "" || !( /^\w{6}$/.test( me.value ) ) || me.value.length != 6 ) _( "verifyConfirm" ).style.display = "";
}
function checkBirthday() {
	if (_("year").value == "" || !checkNumber(_("month").value,12) || !checkNumber(_("date").value,31)){
		_( "birthdayConfirm" ).style.display = "";
	}
}
function isAnswer( answer ){
	return /^[^%&]{2,20}$/.test( answer );
}
function checkGender(){
	for( var i = 0; i < document.getElementsByName("gender").length; i++ )	{
		if(document.getElementsByName("gender")[i].checked) return true;
	}
	return false;
}
function checkQuestion()
{
    if ( _("question").value == "cus" )
    {
    	_("cus_question").style.display="";
    }else{  
    	_("cus_question").style.display="none";
    	showCQChk( "no" );
    }
}
function showCQChk(show)
{
    if(show=="yes")
    { 
    	_("questionConfirm").style.display="";
    }else{  
    	_("questionConfirm").style.display="none";
    }
}
function checkCustomQuestion( customquestion )
{
    var oCQ = _( 'questionConfirm' );
    showCQChk( "yes" );
    if ( customquestion == null || customquestion == "" )
    {
    	oCQ.innerHTML = "请填写自定义提示问题";
    	return;
    }
    if ( customquestion.length > 30 )
    {
    	oCQ.innerHTML = "提示问题答案应不超过30个字符";
    	return;
    }
    if(! /^[^%&]+$/.test( customquestion ) )
    {
    	oCQ.innerHTML = "提示问题中不能包含'%'和'&'这两个字符";
    	return;
    }
    showCQChk( "no" );
}
function isMobile( mobile ){
    return /^13\d{9}$/.test( mobile ) | /^15\d{9}$/.test( mobile );
}
function isAlt_email( alt_email ){
    return ( /^[^@]+@[^@]+\.[^@]+$/.test( alt_email ) && alt_email.length<128 );
}
function checkAltEmail( me ){
	if( ! isAlt_email( me.value ) ) _( "altConfirm" ).style.display = "";
}
function checkMobile( me ){
	if( ! isMobile( me.value ) ) _( "mobileConfirm" ).style.display = "";
}
function checkAnswer( me ){
	if( ! isAnswer( me.value ) ) _( "answerConfirm" ).style.display = "";
}
function _(id) {
	return document.getElementById(id);
}
function fCheck(){
	_('rppassconfirm').style.display='none';
	if( !_("readed").checked )	{
		_('readdiv').style.display='';
		return false;
	}
	/*something wrong*/
	/*form.txtName.trim();*/
	if( ! isPassword( _("password").value ) || !/^[^%&]*$/.test( _("password").value )) {
		_( "chkPwd" ).style.display = "";
		window.scroll(0,0);
		return false;
	}
	if( _("password_cf").value =="" ) {
		_( "pwdConfirm" ).style.display = "";
		window.scroll(0,0);
		return false;
	}
	if( _("password_cf").value != _("password").value ) {
		_( "pwdConfirm" ).style.display = "";
		window.scroll(0,0);
		return false;
	}
	if(_("alt_email").value !="") {
		if(!isAlt_email(_("alt_email").value)) {
			_( "altConfirm" ).style.display = "";
			window.scroll(0,0);
			return false;
		}
	}
	if(_("mobile").value !="") {
		if(!isMobile(_("mobile").value)) {
			_( "mobileConfirm" ).style.display = "";
			window.scroll(0,0);
			return false;
		}
	}

	/* 密码保护设置必须填两项 */
	var mc = 0;
	if(_("alt_email").value !="") {
		mc++;
	}
	if(_("mobile").value !="") {
		mc++;
	}

	if(mc < 2){
		_('rppassconfirm').style.display='';
		window.scroll(0,0);
		return false;
	}
	if (_("year").value == "" || !checkNumber(_("month").value,12) || !checkNumber(_("date").value,31)){
		_( "birthdayConfirm" ).style.display = "";
		return false;
	}
	if( !checkGender() ) {
		_('genderConfirm').style.display='';
		return false;
	}
	if( _("verify_code").value =="") {
		_( "verifyConfirm" ).style.display = "";
		return false;
	}
	_("errMsg").innerHTML = "";
	_("errMsgTitle").style.display = "none";
	_("errMsg").style.display = "none";
	return true;
}
function addErrMsg(msg) {
	var nmsg = "<div style=\"text-align:left;padding-left:180px;\" class=\"error_explain font_space\">"+msg+"</div>";
	_("errMsg").innerHTML = _("errMsg").innerHTML + nmsg;
	_("errMsgTitle").style.display = "";
	_("errMsg").style.display = "";
	_('vadimg').src='/magic126v2.jsp?t='+(new Date().getTime());
	_('verify_code').value = "";
	window.scroll(0,0);
	//location.href="#";
}

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){ 
	Modes=0; 
	for (i=0;i<sPW.length;i++){ 
		//测试每一个字符的类别并统计一共有多少种模式. 
		Modes|=CharMode(sPW.charCodeAt(i)); 
	} 
	switch(bitTotal(Modes)) {
		case 1:
			return "<font color='#FF0000'>弱</font>";
			break;
		case 2:
			return "<font color='#FF9900'>中</font>";
			break;
		case 3:
			return "<font color='#33CC00'>强</font>";
			break;
		default:
			return "<font color='#FF0000'>弱</font>";
	}
}
