//包含密码健壮性检验js
document.write("<script language=\"javascript\" src=\"js/chkPassword.js\" charset=\"gb2312\" ></script>");
/*******************************
配置参数
*******************************/
var ImageButton_post                    //回传img对象
var ImageButton_post_imageUrl           //回传img对象可用url
var ImageButton_post_imageUrl_disable   //回传img对象不可用时url
/*******************************
函数名：ChkInput
函数功能：检验输入字符串合法性
参数说明：obj 输入对象 obj_plus 附加对象
返回值：显示正确错误提示
*******************************/
function ChkInput(obj,obj_plus){

	var _Value = obj.value;				//输入内容
	var _plusValue;						//比较验证内容
	var _Len = GetLength(_Value);		//输入内容真实长度
	var _Type = obj.cType;				//验证类型
	var _Name = obj.cName;				//提示控件名称
	var _showID = obj.cInfoSpan || "";	//提示信息span的ID
	var _Null = obj.cNull || false;		//是否验证必填 true验证 false不验证
	var _min = obj.min || 5;			//输入最小长度
	var _max = obj.max || 50;			//输入最大长度
	var _regStr = "";					//临时正则表达式变量
	if (obj_plus != null){
		_plusValue = obj_plus.value;
	}
	
	switch(_Type){
		//验证用户名
		case "UserName":
			_regStr = /^\d.*/ig;
			if (_Len > 0 && _regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"不能以数字开头");
				return false;
			}
			_regStr = /[^\w\u4e00-\u9fa5]/ig;
			if (_Len > 0 && _regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"中不能含有特殊字符");
				return false;
			}
			break;

		//验证密码
		case "PassWord":
			ChkSucLevel(document.forms[0], _Value);
			break;

		//验证重复密码
		case "ChkPassWord":
			if (_Value != _plusValue){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"与新密码不符");
				return false;
			}
			break;

		//验证年龄
		case "Age":
			_regStr = /^\d{1,2}$/ig;
			if (_Len > 0 && !_regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"格式不正确");
				return false;
			}
			break;

		//验证下拉选择框
		case "Select":
			if (_Len == 0 && _Null){
				obj.cFlag = "0";
				ShowErrMsg(_showID, "请选择"+ _Name);
				return false;
			}
			break;

		//验证一般不能含有特殊字符的输入框
		case "Text":
			_regStr = /[\\\/\:\*\?\"\<\>\|\@\#\&\$\^\%\!\~\`\"\']/; //上一次的写法/[^\w\u4e00-\u9fa5]/ig
			if (_Len > 0 && _regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"不能含有特殊字符");
				return false;
			}
			break;
		//验证注册输入框
		case "RegText":
			_regStr = /[\\\/\:\*\?\"\<\>\|\@\#\&\$\^\%\!\~\`\"\']/; //上一次的写法/[^\w\u4e00-\u9fa5]/ig
			_regStr1 = /[0-9]/
			   

			if(_Len > 0 && _regStr1.test(_Value.substr(0,1)))
			    {
			    obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"中不能以数字开头");
				return false;   
			    } 
			    
			    if (_Len > 0 && _regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"中不能含有特殊字符");
				return false;
				}
			
			
			break;	
			//验证英文域名
		case "Domain":
			_regStr = /[\\\/\:\*\?\"\<\>\|\@\#\&\$\^\%\!\~\`\u4e00-\u9fa5]/; 
			if (_Len > 0 && _regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"中不能含有特殊字符和中文字符");
				return false;
			}
			break;

		//验证URL
		case "Url":
			_regStr = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/ig;
			if (_Len > 0 && !_regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"格式不正确");
				return false;
			}
			break;
		//验证EMail格式
		case "Email": 
			_regStr = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ig;
			if (_Len > 0 && !_regStr.test(_Value)){
				obj.cFlag = "0";
				ShowErrMsg(_showID, _Name +"格式不正确");
				return false;
			}
			break;	
		//验证CheckBox
		case "CheckBox":
		    if(!obj.checked){
		    obj.cFlag = "0";
				ShowErrMsg(_showID, "请选择"+_Name );
				return false;
		    }	    
            default:
      }
	//如需要验证非空，则验证
	if (_Null == "true"){
		if (_Len < _min || _Len > _max){
			obj.cFlag = "0";
			ShowErrMsg(_showID, _Name +"长度不正确");
			return false;
		}
	}
	if (_Len > 0){
		obj.cFlag = "1";
		ShowSuccMsg(_showID);
		return true;
	}
	else{
		obj.cFlag = "1";
		ClearMsg(_showID);
		return false;
    	}
}
/*******************************
函数名：GetLength
函数功能：得到输入框内容的真实长度
参数说明：theStr(要检查的内容)
返回值：内容的真实长度
*******************************/
function GetLength(theStr){
	//去内容前的空格
	theStr = theStr.replace(/^[\s]+/,"");
	//去内容后的空格
	theStr = theStr.replace(/[\s]+$/,"");
	var i,sum;
	sum = 0;
	for (i = 0; i < theStr.length; i++){
		if ((theStr.charCodeAt(i) >= 0) && (theStr.charCodeAt(i) <= 255))
			sum += 1;
		else
			sum += 2;
	}
	return sum;
}

/*******************************
函数名：ShowErrMsg
函数功能：显示输入错误提示信息
参数说明：showID(提示span的ID) showMsg(提示内容)
返回值：无
*******************************/
function ShowErrMsg(showID, showMsg){
	if (showID.length > 0){
		eval("document.all."+ showID +".innerHTML=\"<img src='js/wrong.jpg' alt=''> "+ showMsg +"\"");
		//document.all.Submit_False.style.display = "";
		//document.all.Submit_True.style.display = "none";
		ImageButton_post.disabled = true;
		ImageButton_post.src = ImageButton_post_imageUrl_disable
	}
}

/******************************* 
函数名：ShowSuccMsg
函数功能：显示输入正确提示
参数说明：showID(提示span的ID)
返回值：无
*******************************/ 
function ShowSuccMsg(showID){
	if (showID.length > 0){
		eval("document.all."+ showID +".innerHTML=\"<img src='js/right.jpg' alt=''>\"");
		var tmpFlag = true;
		for(var i = 0; i < document.forms[0].length; i++){
			if (document.forms[0].elements[i].cFlag != undefined){
				if (document.forms[0].elements[i].cFlag == "0"){
					tmpFlag = false;
					//return;
				}
			}
		}
		ImageButton_post.disabled = tmpFlag ? false : true;
		if(tmpFlag)
		{
		    ImageButton_post.src = ImageButton_post_imageUrl
		}
		else
		{
		    ImageButton_post.src = ImageButton_post_imageUrl_disable
		}
		//document.all.Submit_True.style.display = tmpFlag ? "" : "none";
	}
}
/******************************* 
函数名：ClearMsg 
函数功能：清除提示信息
参数说明：showID(提示span的ID)
返回值：无
*******************************/ 
function ClearMsg(showID){
	if (showID.length > 0){
		eval("document.all."+ showID +".innerHTML=\"\"");
		var tmpFlag = true;
		for(var i = 0; i < document.forms[0].length; i++){
			if (document.forms[0].elements[i].cFlag != undefined){
				if (document.forms[0].elements[i].cFlag == "0"){
					tmpFlag = false;
					//return;
				}
				
			}
		}
		ImageButton_post.disabled = tmpFlag ? false : true;
		if(tmpFlag)
		{
		    ImageButton_post.src = ImageButton_post_imageUrl
		}
		else
		{
		    ImageButton_post.src = ImageButton_post_imageUrl_disable
		}
	}
}
/******************************* 
函数名：onSubMit 
函数功能：触发所有cFlog=1的onblur事件 
参数说明：无 
返回值：无 
*******************************/
function onSubMit()
{
    var tmpFlag = true;
		for(var i = 0; i < document.forms[0].length; i++){
			if (document.forms[0].elements[i].cFlag != undefined){
				if (document.forms[0].elements[i].cFlag == "1"){
					document.forms[0].elements[i].onblur()
					if(ImageButton_post.disabled)
					        return false;
				}
			}
		}
		return !ImageButton_post.disabled;
}
function ResetLog()
{
    var el = document.getElementsByTagName('SPAN')
    for(i=0; i<el.length; i++)
    {
        
        if(el[i].className == 'errFont')
        {
            ClearMsg(el[i].id)
        }
     }
}

