/*********************************************************
表单通用验证函数库 by Landers update on 2009.03.26
*********************************************************/

/*************************常规服务*****************************/
//DoEvent：查完表单之后要执行的函数，若为空则返回IsCheckAll
function GoCheckForm(oForm,DoEvent){
	var IsCheckAll = true 									//初始化返回值，默认为true
	var OnEven = event.srcElement							//找出触发事件的对象，如果不是Form，则要对它“灰色不可用”
	if (OnEven.tagName!="FORM") OnEven.disabled = true;
	var BtnSubmit = ""		
	for (var i=0; i<oForm.elements.length;i++){			//检查各控件是否有onblur事件，有就执行
		//alert(oForm.elements[i].name + oForm.elements[i].onblur)
		if (oForm.elements[i].type=="submit"){
			if(BtnSubmit==""){
				BtnSubmit = oForm.elements[i]
				ChangeMainSubmitStyle(oForm,BtnSubmit.name,1)
			}else{
				alert("表单有两个submit。");return 
			}
		}
		if (oForm.elements[i].CheckPass!="1"){
			if(oForm.elements[i].onfocus!=null) oForm.elements[i].onfocus()
			if(oForm.elements[i].onblur!=null){
				if (!oForm.elements[i].onblur()){
					if (oForm.chkMode=="2") return false
				}
			}
		}
	}
	for (var i=0; i<oForm.elements.length;i++){ 			//验证检查结果
		if(oForm.elements[i].onblur!=null){
			if (oForm.elements[i].CheckPass!="1"){
				//alert(oForm.elements[i].name + " ** " + oForm.elements[i].CheckPass)
				IsCheckAll = false
			}
		}
	}
	if (!IsCheckAll){
		alert("您提交的数据存在错误！请核实后重试！")		
		ChangeMainSubmitStyle(oForm,BtnSubmit.name,0);
		return false
	}
	if (DoEvent!=null&&DoEvent!=false){
		if (DoEvent==true) DoEvent = function(){return AjaxPostForm(oForm,true,null,true,true)}
		if (typeof(DoEvent)=="function"){
			DoEvent();
		}else alert("意外参数错误。")
		return false;
	}else{//没有事件，则返回True
		return true;
	}
}

//改变Submit的外观
function ChangeMainSubmitStyle(TheForm,Submit,n){
	var SiteMainUrl	= AjaxGet("/Include/Asp/AjaxServer/GetApplicationVar.asp?var=MainUrl",false)
	try{
		var objSubmit,oForm = GetObj(TheForm)
		if (Submit==null){
			objSubmit = getObjSubmit(oForm)
		}else
			objSubmit = eval("document."+oForm.name+"."+Submit)
		objSubmit.style.paddingTop			= "3px"
		objSubmit.style.height				= "28px"
		objSubmit.style.backgroundPosition	= "37px 0px"
		objSubmit.style.backgroundRepeat	= "no-repeat"
		var gifLoading	= SiteMainUrl + "/Images/SysImg/IconImg/Loading_1.gif"
		var btnBg		= Array("",gifLoading,gifLoading)
		var btnValue	= Array(objSubmit.defaultValue,"操作执行中","数据加载中")
		var btnDisabled	= Array(false,true,true)
		objSubmit.style.backgroundImage = "url("+btnBg[n]+")"
		objSubmit.value		= (n>0)?"　　"+btnValue[n]+"...请稍候...":btnValue[n]
		objSubmit.disabled	= btnDisabled[n]
	}catch(e){}
}
//找出Submit对象
function getObjSubmit(oForm){
	for (var i=oForm.elements.length-1;i>=0;i--){
		var obj = oForm.elements[i]
		if (obj.type=="submit") return obj
	}
	return null
}

//清除表单所有元素的值
function ClearForm(oForm){
	for (var i=0;i<=oForm.elements.length-1;i++){
		var obj = oForm.elements[i]
		obj.CheckPass = "0"		
		switch(obj.type){
			case "text"			: obj.value = "";break;
			case "select-one"	: obj.options[0].selected = true;break;
			case "textarea"		: obj.value = "";break;
		}
	}
	try{ReloadImg("ImgPsnCode")}catch(e){}
}

//清除表单所有元素的事件
function ClearEvent(oForm){
	for (var i=0; i<=oForm.elements.length-1;i++){
		oForm.elements[i].onfocus	= null
		oForm.elements[i].onblur	= null
	}
}


//用于Ajax的Post方法，若想提交部分数据，将不提交的元素的NoPost设为1即可
function SetNoPost(oForm,ObjName,strValue){
	if(oForm!=null){alert("表单对象参数为空。");return}
	if (strValue==null) strValue = 1
	
	var objEles, nCase		//nCase -----1: 单个元素情况 2: 多个元素情况
	if (ObjName==null){	//ObjName为空则对表单全部元素操作
		objEles = oForm.elements; nCase = 2
	}else{
		var objEles = eval("document."+oForm.name+"."+ObjName)
		if (objEles.type==null) nCase = 2; else nCase = 1
	}
	
	if (nCase>1){
		for (var i=0;i<=objEles.length-1;i++) objEles[i].NoPost = strValue
	}else{
		objEles.NoPost = strValue
	}
}

//显示初始提示，用于控件OnClick事件
function ChangeMyBgBd(objFld,nStyle){
	switch(nStyle){
		case 1:
			objFld.style.border			= "#FF0000 1px solid"
			objFld.style.backgroundColor= "#FFE8EA"
			objFld.style.color			= "#333333"
			break;
		case 2:
			objFld.style.border			= "#CCCCCC 1px solid"
			objFld.style.backgroundColor= "#FFFFFF"
			objFld.style.color			= "#666666"
			break;
	}
}

//清空表单元素中的CheckPass
function ClearCheckPass(oForm){
	for(var i=0; i<oForm.elements.length;i++) oForm.elements[i].CheckPass = "0"
}

//处理字段值是否为空情况
function HandleIsFldNullCase(objFld,IsOkNull){
	if (IsOkNull){
		if (objFld.value.length==0){
			objFld.CheckPass = "1"
			HideTip(objFld.name)
			return true
		}
	}
	objFld.CheckPass = "0"
	return false;
}

//显示提示文字
function ShowTipText(strFldName,strInfo){
	var objTip = GetObj(strFldName+"Tip")
	if (objTip!=null) objTip.innerHTML = strInfo
}

//显示正确文字，并用正确外观风格
function ShowOkTip(objFld,strTip){
	if (strTip==null) strTip = "填写正确。"
	objFld.CheckPass = "1"
	ShowTipText(objFld.name,strTip) 
	ChangeTipStyle(objFld.name,3)
	setTimeout('HideTip("'+objFld.name+'")',2000)
	return true;
}

//显示错误提示，并用错误的外观
function ShowErrTip(objFld){
	objFld.CheckPass = "0"
	var ArrTmp = objFld.TipInfo.split("|")
	var TipText = ""
	if (ArrTmp.length>=2) TipText = ArrTmp[1]; else TipText = ArrTmp[0]

	var oForm = objFld.form
	if(oForm.chkMode=="2"){
		try{HideTip(objFld.name)}catch(e){}
		alert(TipText)
	}else{
		ShowTipText(objFld.name,TipText)
		ChangeTipStyle(objFld.name,2)
	}
	return false;
}

//隐藏提示信息及风格
function HideTip(strFldName){
	ShowTipText(strFldName,"")
	ChangeTipStyle(strFldName,4)
}

//改变提示框风格
function ChangeTipStyle(strFldName,nStyle){
	var objContain	= document.getElementById(strFldName+"Tip")
	if (objContain==null) return 
	var sBorder,sColor,sBgColor
	switch(nStyle){
		case 1 : //点击时提示
			sBorder		= "1px solid #0084CA"; 
			sColor		= "#0084CA"
			sBgColor	= "#E2F5FF"
			sBgGround	= "/Images/SysImg/IconImg/Info_1.gif"
			//sHeight		= 20
			break;
		case 2 : //光标离开时，检测到错误
			sBorder 	= "1px solid #FF5B5B"; 
			sColor		= "#FF5B5B"
			sBgColor	= "#FDE8F0"
			sBgGround	= "/Images/SysImg/IconImg/ChaCha_2.gif"
			//sHeight		= 20
			break;
		case 3 : //光标离开时，检测正确
			sBorder 	= "1px solid #578929";
			sColor		= "#578929"
			sBgColor	= "#E2F2D5"
			sBgGround	= "/Images/SysImg/IconImg/Gou_4.gif"
			//sHeight		= 20
			break;
		case 4 : //无边框显示
			sBorder		= ""; 
			sColor		= ""
			sBgColor	= ""
			sBgGround	= ""
			//sHeight		= 0
			break;
	}
	try{
		var SiteMainUrl	= AjaxGet("/Include/Asp/AjaxServer/GetApplicationVar.asp?var=MainUrl",false)
	}catch(e){}
	objContain.style.lineHeight			= "15px"
	objContain.style.backgroundImage	= "url("+SiteMainUrl+sBgGround+")"
	objContain.style.backgroundPosition	= "5px 6px"
	objContain.style.backgroundRepeat	= "no-repeat"
	objContain.style.paddingLeft		= "28px"
	objContain.style.paddingTop			= "7px"
	objContain.style.paddingBottom		= "3px"
	objContain.style.verticalAlign		= "top"
	//objContain.style.width			= 400
	//objContain.style.height				= sHeight
	objContain.style.border				= sBorder
	objContain.style.color				= sColor
	objContain.style.backgroundColor	= sBgColor
}

//常用提示文字
function ShowInitTipInfo(objFld,nFldId){
	try{
		var oForm	= objFld.form
		if (oForm!=null) objFld = eval("document."+oForm.name+"."+objFld.name)
	}catch(e){}
	ChangeMyBgBd(objFld,1)
	if (objFld.TipInfo==null) objFld.TipInfo = ""
	if (nFldId!=""){
		switch (nFldId){
			case 0 : strTipInfo = "" ; break;
			case 1 :		//可修改用户名提示
				objFld.TipInfo = "请用英文字母、数字、下划线或其组合，长度在6～20字节之间！|"
				objFld.TipInfo +="用户名不符合要求，请用英文字母、数字、下划线或其组合，长度在6～20字节之间！" ; 
				break;		
			case 2 :		//不可修改用户名提示
				objFld.TipInfo = "用户名不可修改。" ; break;
			case 3 :		//密码
				objFld.TipInfo = "请用英文字母、数字、下划线或其组合，长度在6～20字节之间。|"
				objFld.TipInfo +="密码只能用大小写英文字母、数字、下划线或它们组合而成，长度在6～20位之间。" ; break;
			case 4 :		//确认密码
				objFld.TipInfo = "请再输入一次确认密码。" ; break;
			case 5 : 		//姓名
				objFld.TipInfo	= "姓名请填写２个中文汉字以上。|姓名只允许用中文，长度在2～4个汉字间。" ;
				if (objFld.onblur==null){
					objFld.onblur	= function(){CheckPeopleName(objFld,false)}
				}
				break;
			case 6 : 		//地址
				if (objFld.TipInfo.length<=20){
					objFld.TipInfo = "输入" + objFld.TipInfo + "的详细地址。|"
					objFld.TipInfo +="地址字数不合要求，长度在10～50个字节之间。（相当于5～25汉字的长度）" ; 
				}
				break;
			case 7 : 		//手机号码
				objFld.TipInfo = "输入 11 位手机号码。|手机号码格式不正确。" ;
				if (objFld.onblur==null){
					objFld.onblur = function(){CheckMobileFld(this,false)}
				}
				break;
			case 8 : 		//邮编
				objFld.TipInfo = "填写6位邮政编码。|邮政编码不正确。" ;
				if (objFld.onblur==null){
					objFld.onblur = function(){CheckPostZipFld(this,false)}
				}
				break;
			case 9 : 		//固电
				objFld.TipInfo = "输入形如“区号-电话号码-分机号”格式的电话号码，其中“-分机号”可省略。|"
				objFld.TipInfo +="电话号码格式不正确。" ;
				if (objFld.onblur==null){
					objFld.onblur = function(){CheckTelFld(this,true)}
				}
				break;
			case 10: 		//传真
				objFld.TipInfo = "输入形如“区号-电话号码”格式的电话号码。|传真号码格式不正确。" ;
				break;
			case 11:		//Email
				if (objFld.TipInfo==""){objFld.TipInfo = "请输入您电子邮件。|电子邮件格式不正确。" ;};
				if (objFld.onblur==null){
					objFld.onblur = function(){CheckEmailFld(this,false)}
				}
				break;
			case 12:		//Web
				objFld.TipInfo = "请输入贵公司的企业网站网址。|网址格式不正确。" ; break;
			case 13:		//内容
				if (objFld.TipInfo.length<=20){
					var ArrTmp = GetCheckGeneralFldPara(objFld)
					objFld.TipInfo =  "请输入" + objFld.TipInfo + "内容。|"
					objFld.TipInfo += "内容字数约束在"+ArrTmp[0]+"～"+ArrTmp[1]+"个字节之间。"
					objFld.TipInfo += "（相当于"+(ArrTmp[0]/2)+"～"+(ArrTmp[1]/2)+"个汉字）" ; 
				}
				break;
			case 14:		//验证码
				var strTitle	= "看不清楚？点击刷新验证码！" 
				objFld.TipInfo	= "请输入右侧图片中的验证码（注：区分大小写）。|"
				objFld.TipInfo +="验证码错误，请区分大小写。（无法更换验证码图片请"
				objFld.TipInfo +="<a href='javascript:void(null)' "
				objFld.TipInfo += "onClick='document.location.reload()' "
				objFld.TipInfo += "style='color:#6600FF'>点此刷新页面</a>）" ;
				objFld.title	= strTitle
				var objTd	= objFld.parentNode
				var imgSrc	= "/Include/Asp/Components/PsnCode/?ID="+objFld.PsnId
				var objABtn	= GetChildObj("BtnPsnCode",objTd,false)
				if (objABtn==null){
					var nMode = 1
					objFld.maxlength = "4"
					objFld.onblur = function(){return CheckValidateCode(this)}
					if (nMode==1){
					var objA	= document.createElement("A")
					objA.href	= "javascript:void(null)"
					objA.title	= strTitle
					objA.onclick= function(){return false}
					objA.id		= "BtnPsnCode"
					objTd.appendChild(objA)
					var objImg	= document.createElement("img")
					objImg.id	= "ImgPsnCode"
					objImg.src	= imgSrc
					objImg.onclick = function(){ReloadImg(objImg)}
					objA.appendChild(objImg)
					objImg.style.cssText = "width:112px; height:28px"
					}else{
					objTd.innerHTML += "<a href='javascript:void(null)' onclick='return false' id='BtnPsnCode' title='"+strTitle+"'><img src='"+imgSrc+"' id='ImgPsnCode' onclick='ReloadImg(this)'></a>"
					}
				}
				objFld.onblur = function(){CheckValidateCode(this)}
				break;
			case 15:		//Web
				objFld.TipInfo = "请输入18位身份证号码。|身份证号码格式不正确。" ;
				if (objFld.onblur==null){
					objFld.onblur = function(){CheckIDCardFld(this,true)}
				}
				break;
			case 16:		//身高
				objFld.TipInfo = "请输入身高，单位：cm。|"
				objFld.TipInfo +="您填写的身高不符要求，请注意用半角数字。" ; break;
			case 17:		//体重
				objFld.TipInfo = "请输入体重，单位：kg。|"
				objFld.TipInfo +="您填写的体重不符要求，请注意用半角数字。" ; break;
			case 18:		//年龄
				objFld.TipInfo = "请输入年龄。|您填写的年龄不切实际或出现非半角数字。" ; break;
			case 19:		//月薪
				objFld.TipInfo = "请填写您的月薪要求，“０”代表面议。|"
				objFld.TipInfo +="月薪要求不正确，请用半角数字。" ; break;
			case 20:		//产品标题
				objFld.TipInfo = "请输入产品标题，字数长度在10～50字节。|"
				objFld.TipInfo +="标题字数约束在10～50个字节之间（相当于5～25汉字）。" ;
				break;
			case 21:		//产品型号规格
				objFld.TipInfo = "请输入型号规格，字数长度在0～50字节。|"
				objFld.TipInfo +="型号规格字数约束在0～50个字节之间（相当于0～25汉字）。" ;
				break;
			case 22:		//价格
				if (objFld.TipInfo=="") objFld.TipInfo = "价格"
				if (objFld.TipInfo.length<=10){
						var ArrTmp =  GetCheckNumberRangePara(objFld)
						objFld.TipInfo =  "请填写"+objFld.TipInfo
						if (Number(ArrTmp[0])==0) objFld.TipInfo += "，<b>“0”代表面议</b>"
						objFld.TipInfo += "。|数据必须为半角数字，且要切合实际。" ;
						var PEle	= objFld.parentElement
						var ObjSpan	= document.createElement("span")
						var RmbUnit; try{RmbUnit = objFld.RmbUnit}catch(e){}
						if (RmbUnit==null) RmbUnit = ""
						ObjSpan.innerHTML = "（RMB:"+RmbUnit+"元）"
						PEle.appendChild(ObjSpan)
				}
				break;
			case 23:		//有效期
				objFld.readOnly = true;
				objFld.TipInfo = "请输入有效期。|有效期无效，至少是今天以后的日期。" ;
				objFld.onclick = function(){WdatePicker();}
				if (objFld.onchange==null){
					objFld.onchange= objFld.onblur;
				}
				break;
			case 24:		//QQ
				objFld.TipInfo = "请输入至少5位ＱＱ号。|无效ＱＱ号，必须为至少５位的半角数字。" ;
				if (objFld.onblur==null){
					objFld.onblur = function(){CheckQQFld(this,true)}
				}
				break;
			case 50 : 		//适用CheckGeneralFld
				if (objFld.TipInfo.length<=20){
					var ArrTmp = GetCheckGeneralFldPara(objFld)
					objFld.TipInfo = "请输入" + objFld.TipInfo + "，长度在"+ArrTmp[0]+"～"+ArrTmp[1]+"个字节之间。"
					objFld.TipInfo += "|数据长度不合要求，长度在"+ArrTmp[0]+"～"+ArrTmp[1]+"个字节之间。"
					objFld.TipInfo += "（相当于"+(ArrTmp[0]/2)+"～"+(ArrTmp[1]/2)+"个汉字）" ; 
				}
				break;
			case 51: 		//适用CheckGeneralFld中，长度提示自动获取
				var strTmp = objFld.TipInfo
				if (strTmp.indexOf("长度")<0){var ArrTmp = GetCheckGeneralFldPara(objFld)};break;
		}
	}
	var ArrTmp	= objFld.TipInfo.split("|")
	ShowTipText(objFld.name,ArrTmp[0])
	ChangeTipStyle(objFld.name,1)
}

/*************************数据验证服务*****************************/
/*用于普通字符串的验证
	３种返回形式：	0|提示信息：验证未通过
					1|提示信息：验证通过了
					2|		  ：无需验证，也不给提示*/
function CheckGeneralString(strCheck,ArrLenLimit,IsNoHTML){
	var boolTmp1,boolTmp2,boolTmp3
	var Ret	= ""
	if(IsNoHTML==true) strCheck = RemoveHTML(strCheck)
	var valueLen = LenB(strCheck)
	
	boolTmp1	= (ArrLenLimit[0]==null || ArrLenLimit[0]==0)
	boolTmp2	= (ArrLenLimit[1]==null || ArrLenLimit[1]==0)
	boolTmp3	= (ArrLenLimit[2]==null || ArrLenLimit[2]==0)
	if (boolTmp1 && boolTmp2 && boolTmp3) return "2|"

	boolTmp1	= (ArrLenLimit[1]!=null && ArrLenLimit[1]!=0)
	boolTmp2	= (valueLen!=ArrLenLimit[1])
	if (boolTmp1){if (boolTmp2){return "0|请必须输入固定的 "+ArrLenLimit[1]+" 个长度的字符。"/*第１种返回形式*/}}
	
	boolTmp1	= (ArrLenLimit[0]>0 && valueLen<ArrLenLimit[0])
	if (boolTmp1){Ret = "请至少输入 "+ArrLenLimit[0]+" 个字符"; /*长度下限验证*/}


	boolTmp1	= (ArrLenLimit[2]>0 && valueLen>ArrLenLimit[2])
	if (boolTmp1){ //长度上限验证
		if(Ret==""){Ret="最多只能输入 "+ArrLenLimit[2]+" 个字符。"}else{Ret+="，且不能超过"+ArrLenLimit[2]+"个字符。"}
	}else{
		if (Ret != "") Ret += "。"
	}
	if (Ret == ""){	return "1|填写正确。"/*第２种返回形式*/	}else{return "0|" + Ret/*第１种返回形式*/}
}


//用于数字范围验证 : IsCalledBySonFun:是否被子函数调用，苦为true，则直接返回值，否而要调用错误显示
function CheckNumberRange(objFld,ArrNumRange,IsOkNull,IsCalledBySonFun){
	var RetString = ""
	var FldValue = Trim(objFld.value)
	if (isNaN(FldValue)||(IsNull(FldValue)&&FldValue!=0)){
		RetString = "未输入或输入有误，只能输入为半角数字。"
	}else{
		FldValue = Number(FldValue)
		objFld.value = FldValue
		if (FldValue<ArrNumRange[0] || FldValue>ArrNumRange[1]){
			RetString = "您输入的数必须在"+ArrNumRange[0]+"～"+ArrNumRange[1]+"之间。"
		}
	}
	if (IsCalledBySonFun){
		if (RetString == "") RetString = 1 ; else RetString = "0|" + RetString
		return RetString
	}else{
		ChangeMyBgBd(objFld,2)
		if (RetString == "") return ShowOkTip(objFld); else return ShowErrTip(objFld);
	}
}


//验证用户名
function CheckUserName(objFld,ValidateUrl,IsChkExist){
	ChangeMyBgBd(objFld,2)
	if (objFld.TipInfoX==null)	objFld.TipInfoX = objFld.TipInfo	//给TipInfo作备份
	var FldName		= objFld.name
	var FldValue	= Trim(objFld.value)
	if (IsRegMatch(FldValue,1)){
		if (IsChkExist==true){
			if (ValidateUrl.indexOf("?")==-1)
				ValidateUrl += "?TipID="+FldName+"&UserName="+FldValue
			else
				ValidateUrl += "&TipID="+FldName+"&UserName="+FldValue
			ChangeTipStyle(FldName,1)
			ShowTipText(FldName,"检测中...请稍等...")
			Ajax().get(ValidateUrl,function(RetString){
				var ArrRet = HandleRet(RetString,true,"|",false)
				if (ArrRet[0]=="1"){
					return ShowOkTip(objFld,ArrRet[1])
				}else{
					objFld.TipInfo = ReBuildStr(objFld.TipInfoX,"|",2,ArrRet[1])/*重置TipInfo*/
					return ShowErrTip(objFld)
				}
			},false)
		}else{
			return ShowOkTip(objFld);
		}
	}else{
		objFld.TipInfo = objFld.TipInfoX
		return ShowErrTip(objFld)
	}
	return true
}


//用于验证密码
function CheckPassword(objFld,ComfirmObjfld){
	var FldName		= objFld.name
	var FldValue	= Trim(objFld.value)
	if (ComfirmObjfld!=null){
		ChangeMyBgBd(ComfirmObjfld,2)
		var ConfirmFldName	= ComfirmObjfld.name
		var ConfirmFldValue	= Trim(ComfirmObjfld.value)
		if (FldValue==""){
			objFld.CheckPass = "0"
			ChangeTipStyle(FldName,2)
			ShowTipText(FldName,"密码未输入。")
			HideTip(ConfirmFldName)
			return false;
		}else{
			if (ConfirmFldValue==""){
				objFld.CheckPass = "0"
				ChangeTipStyle(ConfirmFldName,2)
				ShowTipText(ConfirmFldName,"确认密码未输入。")
				return false
			}else{
				if (ConfirmFldValue!=FldValue){
					objFld.CheckPass = "0"
					ChangeTipStyle(ConfirmFldName,2)
					ShowTipText(ConfirmFldName,"两次密码不一样，请重新输入。")
					return false
				}else{
					return ShowOkTip(ComfirmObjfld)
				}
			}
		}
	}else{
		ChangeMyBgBd(objFld,2)
	}

	if (IsRegMatch(FldValue,1)){
		objFld.CheckPass = "1"
		return ShowOkTip(objFld)
	}else{
		objFld.CheckPass = "0"
		ChangeTipStyle(FldName,2)
		var ArrTmp = objFld.TipInfo.split("|")
		ShowTipText(FldName,ArrTmp[1])
		return false;
	}
}

//用于必是一个正整数
function CheckIsPositiveInteger(objFld){
	ChangeMyBgBd(objFld,2)
	if (!IsRegMatch(objFld.value,2)){
		return ShowErrTip(objFld)
	}else{
		return ShowOkTip(objFld)
	}
}

//用于验证企业名称
function CheckCompanyName(objFld){
	ChangeMyBgBd(objFld,2)
	ChangeMyBgBd(objFld,2)
	objFld.value	= Trim(objFld.value)
	if (!IsRegMatch(objFld.value,3) || !CheckGeneralFld(objFld,Array(12,0,50))){
		return ShowErrTip(objFld)
	}else{
		return ShowOkTip(objFld)
	}
}

//用于验证人的姓名
function CheckPeopleName(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	var ArrTipInfo	= objFld.TipInfo.split("|")
	objFld.value	= Trim(objFld.value)
	if (!IsRegMatch(objFld.value,3) || !CheckGeneralFld(objFld,Array(4,0,8))){
		return ShowErrTip(objFld)
	}else{
		return ShowOkTip(objFld)		
	}
}

//用于验证某物的名称（如公司名称，代理名称)
function CheckSthName(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	var ArrTipInfo	= objFld.TipInfo.split("|")
	objFld.value	= Trim(objFld.value)
	if (!IsRegMatch(objFld.value,3) || !CheckGeneralFld(objFld,Array(4,0,25))){
		return ShowErrTip(objFld)
	}else{
		return ShowOkTip(objFld)		
	}
}


//用于普通字符串字段的验证
function CheckGeneralFld(objFld,ArrLenLimit,IsNoHTML){
	ChangeMyBgBd(objFld,2)
	var strTmp	= CheckGeneralString(objFld.value,ArrLenLimit,IsNoHTML)
	var ArrTmp	= strTmp.split("|")
	if (ArrTmp[0]=="1" || ArrTmp[0]=="true" || ArrTmp[0]=="True"){
		if (ArrLenLimit[0]==0 && ArrLenLimit[1]==0){
			objFld.CheckPass = 1
			HideTip(objFld.name)
		}else{
			return ShowOkTip(objFld)
		}
	}else{
		return ShowErrTip(objFld)
	}
}

//用于手机号码的验证
function CheckMobileFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,4)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)
	}
}

//用于电话号码的验证
function CheckTelFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,5)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}

//用于电子邮件Email的验证
function CheckEmailFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,6)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}


//用于邮政编码的验证
function CheckPostZipFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,11)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}

//用于Url的验证
function CheckUrlFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,7)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}

//用于QQ的验证
function CheckQQFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,13)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}

//用于身份证号的验证
function CheckIDCardFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,12)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}


//用于纯日期的验证
function CheckDateFld(objFld,IsOkNull,LimitDate){
	if (objFld.TipInfoX==null)	objFld.TipInfoX = objFld.TipInfo	//给TipInfo作备份
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,8)){
		if (LimitDate==null) return ShowOkTip(objFld)
		objFld.CheckPass = "0"
		var NowDate		= strToDate(objFld.value,0)
		if (LimitDate[0]!=null){
			var LimitDate1	= strToDate(LimitDate[0],0)
			if (NowDate<=LimitDate1){
				objFld.TipInfo = ReBuildStr(objFld.TipInfoX,"|",2,"输入的日期必须在"+LimitDate[0]+"之后。")/*重置TipInfo*/
				return ShowErrTip(objFld)
			}
		}
		if (LimitDate[1]!=null){
			var LimitDate2	= strToDate(LimitDate[1],0)
			if (NowDate>=LimitDate2){
				objFld.TipInfo = ReBuildStr(objFld.TipInfoX,"|",2,"输入的日期必须在"+LimitDate[1]+"之前。")/*重置TipInfo*/
				return ShowErrTip(objFld)
			}
		}
		return ShowOkTip(objFld)
	}else{
		return ShowErrTip(objFld)		
	}
}


//用于ＱＱ的验证
function CheckQQFld(objFld,IsOkNull){
	ChangeMyBgBd(objFld,2)
	if (HandleIsFldNullCase(objFld,IsOkNull)) return true;
	if (IsRegMatch(objFld.value,13)){
		return ShowOkTip(objFld)		
	}else{
		return ShowErrTip(objFld)		
	}
}

//验证Select控件是否为无效值（空或０）
function CheckSelectCtrl(objFld){
	if (objFld.TipInfoX==null){
		objFld.TipInfoX = (objFld.TipInfo==null)?"":objFld.TipInfo	//给TipInfo作备份
	}
	if (IsNull(objFld.value)){
		objFld.TipInfo = ReBuildStr(objFld.TipInfoX,"|",2,"必选项！")/*重置TipInfo*/
		return ShowErrTip(objFld)
	}else{
		HideTip(objFld.name);
		objFld.CheckPass = 1
		return true
	}
}

//用于验证码验证
function CheckValidateCode(objFld){
	ChangeMyBgBd(objFld,2)
	if (objFld.value!=""){
		var ValidateUrl = document.getElementById("ImgPsnCode").src
		if (ValidateUrl.indexOf("?")==-1)
			ValidateUrl += "?FldName="+objFld.name+"&ValidateCode="+objFld.value
		else
			ValidateUrl += "&FldName="+objFld.name+"&ValidateCode="+objFld.value
		ChangeTipStyle(objFld.name,1)
		ShowTipText(objFld.name,"检测中...请稍等..." + ValidateUrl)
		Ajax().get(ValidateUrl,function(RetString){
			var ArrRet = RetString.split("|")
			objFld.CheckPass = ArrRet[0]
			switch(ArrRet[0]){
				case "1": return ShowOkTip(objFld)		; break;
				case "0": return ShowErrTip(objFld)	; break;
				default:
					alert("检测验证码时，发生未知错误！(" + RetString + ")")
					return false;	break;
			}
		},false)
	}else{
		return ShowErrTip(objFld)
	}
}

//代理号是否有效（是否存在）
function CheckAgentId(objFld){
	if (AjaxGet("/Include/Asp/AjaxServer/ChkIsValidAgentId.asp?AgentId="+objFld.value,false,null,false)){
		objFld.CheckPass = 1
		return true;
	}else{
		ShowErrTip(objFld)
	}
}

/********************与应用无关的底层函数*************************/
//取得CheckGeneralFld调用时的参数
function GetCheckGeneralFldPara(objFld){
	var strTmp = String(objFld.onblur)
	var arrTmp = strTmp.split("\n")
	strTmp = arrTmp[2]
	arrTmp = strTmp.split("(")
	strTmp = arrTmp[2].replace(/\)/g,"");
	arrTmp = strTmp.split(",")
	return Array(arrTmp[0],arrTmp[2])
}
function GetCheckNumberRangePara(objFld){
	var strTmp = String(objFld.onblur)
	var arrTmp = strTmp.split("\n")
	strTmp = arrTmp[2]
	arrTmp = strTmp.split("(")
	strTmp = arrTmp[2]
	arrTmp = strTmp.split(")")
	strTmp = arrTmp[0]
	arrTmp = strTmp.split(",")
	return Array(arrTmp[0],arrTmp[1])
}