﻿// JScript 文件
function STHValid(){}
function STHValidCheck(objE,strReport){
	if(objE==null){
		alert("Object checked is null!");
	}else{
		var strType=objE.type;
		if(strType==null&&objE.length>0){
			objE=objE[0];
			strType=objE.type;
		}
		alert(strReport);
		if(strType!=null&&strType!="hidden"&&!objE.disabled&&!(objE.style.display=="none")){
			objE.focus();
		}
	}
}
STHValid.prototype.IsEmpty=function(objE,strReport){
	var strIn;
	if(objE!=null)strIn=objE.value;
	var blnValid=!STHIsEmpty(strIn);
	if(!blnValid)STHValidCheck(objE,strReport);
	return blnValid;
}
function STHIsEmpty(strIn){
	var blnIsEmpty=false;
	if(strIn==null||strIn=="undefined"||strIn=="")blnIsEmpty=true;
	else{
		var regEmpty=/^(\s|  )+$/g;
		blnIsEmpty=regEmpty.test(strIn);
	}
	return blnIsEmpty;
}
STHValid.prototype.IsWord=function(objE,strReport,num1){
	var strIn;
	if(objE!=null)strIn=objE.value;
	var blnValid=STHIsWord(strIn,num1);
	if(!blnValid)STHValidCheck(objE,strReport);
	return blnValid;
}
function STHIsWord(strIn,numType){
	var blnIsWord=true;
	if(strIn==null||strIn=="undefined")blnIsWord=false;
	else{
		var strRegWord;
		switch(numType){
			case 1:
				strRegWord="^[\\d]+$";
				break;
			case 2:
				strRegWord="^[a-z|A-Z]+$";
				break;
			case 3:
				strRegWord="^[\\w]+$";
				break;
		    default:
		        strRegWord="^[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]+$";
		        break;
		}
		var regWord=new RegExp(strRegWord,"g");
		blnIsWord=regWord.test(strIn);
	}
	return blnIsWord;
}
STHValid.prototype.IsBetween=function(objE,strReport,num1,num2){
	var strIn="";
	if(objE!=null)strIn=objE.value;
	var blnValid=STHIsBetween(strIn,num1,num2);
	if(!blnValid)STHValidCheck(objE,strReport);
	return blnValid;
}
function STHIsBetween(strIn,num1,num2){
	if(strIn==null||strIn=="undefined")strIn="";
	if(num1==null)num1=1;
	if(num2==null)num2=20;
	var numLen=strIn.length;
	var blnIsBetween=(numLen>=num1&&numLen<=num2);
	return blnIsBetween;
}
STHValid.prototype.IsDate=function(objE,strReport,num1,num2){
	var blnValid=false;
	if(objE!=null){
		var strValue=objE.value;
		blnValid=STHIsDate(strValue);
		if(blnValid&&num1!=num1&&num2!=null){
			var numYear=parseInt(strValue.substr(0,4));
			var numBaseYear=new Date().getFullYear();
			if(numYear>numBaseYear+10||numYear<numBaseYear-10)blnValid=false;
		}
		if(!blnValid)STHValidCheck(objE,strReport);
	}
	return blnValid;
}
function STHIsDate(strIn){
	if(strIn==null)strIn="";
	var regDate=/^\d{4}[\/\.-](|0|1)\d?[\/\.-](|0|1|2|3)\d?(\s\d{1,2}:\d{1,2}:\d{1,2})?$/gi;
	var blnValid=regDate.test(strIn);
	return blnValid;
}
STHValid.prototype.IsNumber=function(objE,strReport,num1,num2){
	var blnValid=false;
	if(objE!=null){
		var strValue=objE.value;
		blnValid=STHIsNumber(strValue,num1,num2);
		if(!blnValid)STHValidCheck(objE,strReport);
	}
	return blnValid;
}
function STHIsNumber(strIn,num1,num2){
	if(strIn==null||strIn=="undefined")strIn="";
	if(num1==null)num1=0;
	if(num2==null)num2=20;
	var regNumber=/^\-?\d*[\.|\d]\d*$/gi;
	var blnIsNumber=false;
	if(regNumber.test(strIn)){
		var numIn=parseFloat(strIn);
		if(numIn>=num1&&numIn<=num2)blnIsNumber=true;
	}
	return blnIsNumber;
}
STHValid.prototype.IsEmail=function(objE,strReport){
	var blnValid=false;
	if(objE!=null){
		var strValue=objE.value;
		blnValid=STHIsEmail(strValue);
		if(!blnValid)STHValidCheck(objE,strReport);
	}
	return blnValid;
}
function STHIsEmail(strIn){
	if(strIn==null||strIn=="undefined")strIn=""
	var regEmail=/^([\w-_]+\.)*[\w-_]+\@([\w-_]+\.)+[a-zA-Z]{2,3}$/g;
	var blnIsEmail=regEmail.test(strIn);
	return blnIsEmail;
}
STHValid.prototype.IsDBString=function(objE,strReport,num1,num2){
	var blnValid=false;
	if(objE!=null){
		var strValue=objE.value;
		blnValid=STHIsDBString(strValue,num1,num2);
		if(!blnValid)STHValidCheck(objE,strReport);
	}
	return blnValid;
}
function STHIsDBString(strIn,num1,num2)
{
	if(strIn==null||strIn=="undefined")strIn="";
	if(num1==null)num1=1;
	if(num2==null)num2=20;	
	var numLen=strIn.length;
	var blnValid=true;
	if(!STHIsBetween(strIn,num1,num2))blnValid=false;
	else if(strIn.indexOf("'")!=-1||strIn.indexOf('"')!=-1||strIn.indexOf("=")!=-1)blnValid=false;
	return blnValid;
}
STHValid.prototype.IsEqual=function(objS,objT,strReport){
	var blnValid=false;
	if(objS!=null&&objT!=null){
		blnValid=STHIsEqual(objS.value,objT.value);
		if(!blnValid)STHValidCheck(objS,strReport);
	}
	return blnValid;
}
function STHIsEqual(strS,strT)
{
	return (strS==strT);
}
STHValid.prototype.IsChoose=function(objE,strReport,strValue){
	var blnValid=STHIsChoose(objE,strValue);
	if(!blnValid)STHValidCheck(objE,strReport);
	return blnValid;
}
function STHIsChoose(objE,strValue){
	var blnValid=false;
	if(objE){
		var strType=objE.type;
		var numLen=objE.length;
		if(numLen!=null){
			var blnChoose=false;
			for(var numI=0;numI<numLen;numI++){
				var objOne=objE[numI];
				if(strType==null)strType=objOne.type;
				if(strValue==null){
					if(strType=="select-one"||strType=="select-multiple")blnChoose=objOne.selected;
					else blnChoose=objOne.checked;
				}else{
					if(objOne.checked&&objOne.value==strValue)blnChoose=true;
				}
				if(blnChoose){
					blnValid=true;
					break;
				}
			}
		}
	}
	return blnValid;
}
function STHAllTrim(strIn){
	if(strIn==null||strIn=="undefined")strIn="";
	else{
		strIn=strIn.replace(/^[ |　]+/g,"");
		strIn=strIn.replace(/[ |　]+$/g,"");
	}
	return strIn
}
