

function procArgs(funcParm){
	var argVal=new Array('','',true,0,'');
	var argLen=funcParm.length;
	if(argLen<1){
		alert(isNoObjName);
		return false;
	}
	if(!document.all[funcParm[0]]){
		alert(funcParm[0]+objNoFound);
		return false;
	}
	for(i=argLen; i<argVal.length; i++){
		funcParm[i]=argVal[i];
	}
	return true;
}
function failSetObject(objName){
	document.all[objName].focus();
	document.all[objName].select();
}
function checkNull(funcParam,obj){
	if (!funcParam[2] && ''===obj.value){
		alert (funcParam[1]+isNotNullStr);
		failSetObject(obj.name);
		return false;
	}
	return true;
}
function checkLength(funcParam,obj){
	if (obj.value!='' && obj.value.length<funcParam[3]){
		alert(funcParam[1]+isShortStr);
		failSetObject(obj.name);
		return false;
	}
	return true;
}
function checkInt(){
	var obj;
	var regPat=/^(\d)+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function checkString(){
	var obj;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	return true;
}
function checkEMail(){
	var obj;
	var regPat=/^[.+_/?a-z0-9\-]+(\.[.+_/?a-z0-9\-]+)*@[a-z0-9\-]+(\.[a-z0-9\-]+)+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function proceDateFormat(argFormatStr){
        var regPad=/^(Y{4})(.?)(M{2})(.?)(D{2})(.?)$/g;
	var temArr=regPad.exec(argFormatStr);
	var Y=temArr[1];
	var M=temArr[3];
	var D=temArr[5];
	var dateStr="(\\d{"+Y.length+"})("+temArr[2]+")(\\d{"+M.length+"})("+temArr[4]+")(\\d{"+D.length+"})("+temArr[6]+')';
        return dateStr;
}
function checkDate(){
	var obj;
	var regPat=/^(\d{4})(\d{2})(\d{2})+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(arguments[4]){
		//alert(proceDateFormat(arguments[4]));
		regPat=new RegExp(proceDateFormat(arguments[4]));
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	var tempArr=regPat.exec(obj.value);
	if(!isDate(tempArr[1],tempArr[3],tempArr[5])){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function isDate(year,month,day){
	var iYear=parseInt(year,10);
	var iMonth=parseInt(month,10);
	var iDay=parseInt(day==""?1:day,10);
	var varDate=new Date();
	varDate.setYear(iYear);
	varDate.setMonth(iMonth-1);
	varDate.setDate(iDay);
	if(iYear===varDate.getFullYear() && (iMonth-1)===varDate.getMonth() && iDay===varDate.getDate()){
		return true;
	}
	return false;
}
function proceMonthFormat(argFormatStr){
	var regPad=/^(Y{4})(.?)(M{2})(.?)$/g;
	var temArr=regPad.exec(argFormatStr);
	var Y=temArr[1];
	var M=temArr[3];
	var D=temArr[5];
	var dateStr="(\\d{"+Y.length+"})("+temArr[2]+")(\\d{"+M.length+"})("+temArr[4]+")";
	return dateStr;
}
function checkMonth(){
	var obj;
	var regPat=/^(\d{4})(\d{2})+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(arguments[4]){
		//alert(proceDateFormat(arguments[4]));
		regPat=new RegExp(proceMonthFormat(arguments[4]));
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	var tempArr=regPat.exec(obj.value);
	if(!isMonth(tempArr[1],tempArr[3],tempArr[5])){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function isMonth(year,month){
	var iYear=parseInt(year,10);
	var iMonth=parseInt(month,10);
	var varDate=new Date();
	varDate.setYear(iYear);
	varDate.setMonth(iMonth-1);
	if(iYear===varDate.getFullYear() && (iMonth-1)===varDate.getMonth()){
		return true;
	}
	return false;
}
function proceTimeFormat(argFormatStr){
	var regPad=/^(HH)(.?)(MI)(.?)?(SS)?(.?)?$/g;
        //alert(argFormatStr);
	var temArr=regPad.exec(argFormatStr);
	var H=temArr[1];
	var M=temArr[3];
	var S=temArr[5];
	var dateStr="(\\d{"+H.length+"})("+temArr[2]+")(\\d{"+M.length+"})("+temArr[4]+")(\\d{"+S.length+"})("+temArr[6]+')';
	return dateStr;
}
function checkTime(){
	var obj;
	var regPat=/^(\d{2})()(\d{2})()(\d{2})()+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(arguments[4]){
		//alert(proceTimeFormat(arguments[4]));
		regPat=new RegExp(proceTimeFormat(arguments[4]));
	}
	if(!regPat.test(obj.value)){
		//alert("falisdfk");
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	var tempArr=regPat.exec(obj.value);
	//str='';
	//for (i=0; i<tempArr.length; i++){
	//	str=str+'  ' +i + ' '+tempArr[i];
	//}
	//alert(str);
	if(!isTime(tempArr[1],tempArr[3],tempArr[5])){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function isTime(hour,minuts,second){
	var iHour=parseInt(((hour=='')?0:hour));
	var iMinuts=parseInt(((minuts=='')?0:minuts));
	var iSecond=parseInt(((second=='')?0:second));
	if(0<=iHour && iHour<24 && 0<=iMinuts && iMinuts < 60 && 0<=iSecond && iSecond < 60){
		return true;
	}
	return false;
}
function proceDateTimeFormat(argFormatStr){
	var regPad=/(Y{4})(.?)(M{2})(.?)(D{2})(.?)(HH)(.?)(MI)(.?)(SS)?(.?)/g;
	var temArr=regPad.exec(argFormatStr);
	var Y=temArr[1];
	var M=temArr[3];
	var D=temArr[5];
	var H=temArr[7];
	var MI=temArr[9];
	var S=temArr[11];
	var dateTimeStr="(\\d{"+Y.length+"})("+temArr[2]+")(\\d{"+M.length+"})("+temArr[4]+")(\\d{"+D.length+"})("+temArr[6]+")"+"(\\d{"+H.length+"})("+temArr[8]+")(\\d{"+MI.length+"})("+temArr[10]+")(\\d{"+S.length+"})("+temArr[12]+")";
	return dateTimeStr;
}
function checkDateTime(){
	var obj;
	var regPat=/^(\d{4})()(\d{2})()(\d{2})()(\d{2})()(\d{2})()(\d{2})()+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(arguments[4]){
		//alert(proceDateTimeFormat(arguments[4]));
		regPat=new RegExp(proceDateTimeFormat(arguments[4]));
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	var tempArr=regPat.exec(obj.value);
	if(!isDate(tempArr[1],tempArr[3],tempArr[5]) || !isTime(tempArr[7],tempArr[9],tempArr[11])){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function checkFloat(){
	var obj;
	var regPat=/^(\d)+(\.(\d)+)?$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(arguments[4]){
		//alert(proceFloatFormat(arguments[4]));
		regPat=new RegExp(proceFloatFormat(arguments[4]));
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function proceFloatFormat(argFormatStr){
	var regPad=/^(0*)(9+)((\.9?)(0*))?/g;
	var tempArr=regPad.exec(argFormatStr);
        //alert(tempArr[0]+"|"+tempArr[1]+"| "+tempArr[2]+"| "+tempArr[3]+"| "+tempArr[4]+"| "+tempArr[5]+"| "+tempArr[6]+"| "+tempArr[7]+" ")
	var minLeftLen=tempArr[2].length;
	var maxLeftLen=tempArr[1].length+tempArr[2].length;
	var minRightLen=tempArr[4].length;
	var maxRightLen=tempArr[5].length+tempArr[4].length;
	var floatStr="^\\d{"+minLeftLen+","+maxLeftLen+"}(\\.\\d{"+minRightLen+","+maxRightLen+"})?$";
	return floatStr;
}
function checkAlpNum(){
	var obj;
	var regPat=/^([\w\d\-\_])+$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}
function checkPhoneNum(){
	var obj;
	var regPat=/^\d([\d\-])+\d$/;
	if(!procArgs(arguments)){
		return false;
	}
	obj=document.all[arguments[0]];
	if(!checkNull(arguments,obj)){
		return false;
	}
	if(obj.value==''){
		return true;
	}
	if(!checkLength(arguments,obj)){
		return false;
	}
	if(!regPat.test(obj.value)){
		alert(arguments[1]+isFormatStr);
		failSetObject(arguments[0])
		return false;
	}
	return true;
}

