checkInfoTime=20000;    //信息显示时间



/*
[功能] 检验字符串长度
[参数] str 要检验字符串
[作者] molm 2003/8/6
*/
function codeLength(str){
	len2=0;
	for (var ci=0;ci<str.length;ci=ci+1){
		var code= str.charCodeAt(ci);
		if (code<128)
		        len1=1;
		else
			len1=2;
		len2=len2+len1;
    	}
	return len2;
}

/*
[功能] 检验输入是否数字
[参数] inputVal 检验内容
[作者] molm 2003/8/6
*/
function isFloat(inputVal) {
	if (inputVal=="") return false;
	if(isNaN(inputVal)) return false;
	if (inputVal.indexOf(" ")!=-1) return false;
	return true;
}

/*
[功能] 检验输入的内容是否整数
[参数] inputVal 检验内容
[作者] molm 2003/8/6
*/
function isInteger(inputVal) {
	if (inputVal.indexOf(" ")!=-1) return false;
	if((inputVal.indexOf('.') != -1) || (isNaN(inputVal))) return false;
	return true;
}

/*
[功能] 检验日期的有效性
[参数] inputVal 检验内容
[作者] molm 2003/8/6
*/
function validateDate(dateStr) {
	//检查日期有效性
	//日期格式：YYYY-MM-DD
	var monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var dateArr = dateStr.split("-");
	if(dateArr.length!=3) return false;
	var yyyy = dateArr[0];
	var mm = dateArr[1];
	var dd = dateArr[2];
	if (yyyy.length!=4) return false;
	
	if(!isInteger(yyyy) || !isInteger(mm) || !isInteger(dd)) return false;
	if(((yyyy % 4 == 0) && (yyyy % 100 != 0)) || (yyyy % 400 == 0)) monthDays[1] = 29;
	if(mm < 1 || mm > 12 || dd > monthDays[mm-1] || dd <1 ) return false;
	return true;
}


/*
[功能] 检验日期的有效性
[参数] inputVal 检验内容
[作者] molm 2003/8/6
*/
function validateMonth(dateStr) {
	//检查日期有效性
	//日期格式：YYYY-MM-DD
	var dateArr = dateStr.split(".");
	if(dateArr.length!=2) return false;
	var yyyy = dateArr[0];
	var mm = dateArr[1];
	if (yyyy.length!=4) return false;
	
	if(!isInteger(yyyy) || !isInteger(mm)) return false;
	if(mm < 1 || mm > 12) return false;
	return true;
}

function validateMonth2(dateStr) {
	//检查日期有效性
	//日期格式：YYYY-MM-DD
	var dateArr = dateStr.split(".");
	if(dateArr.length!=2 && dateArr.length!=1) return false;
	if (dateArr.length==2) {
		var yyyy = dateArr[0];
		var mm = dateArr[1];
		if (yyyy.length!=4) return false;
	
		if(!isInteger(yyyy) || !isInteger(mm)) return false;
		if(mm < 1 || mm > 12) return false;
		return true;
	}
	else {
		var yyyy = dateArr[0];
		if (yyyy.length!=4) return false;
	
		if(!isInteger(yyyy)) return false;
		return true;		
	}
}

/*
[功能] 检验输入的字符串是否合法
[参数] field obj,fieldName 中文名称,lengths 长度,flag 是否必填
[作者] molm 2003/8/6
*/
function checkString(field,fieldName,lengths,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	
	if ((flag!=0) && (field.value=="")) {
		VmlAlert (1,field,"『"+fieldName+"』内容不能为空，请重新输入。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	if ((lengths>0) && (codeLength(field.value)>lengths)) {
		VmlAlert (1,field,"『"+fieldName+"』的长度不能超过<b>"+lengths.toString(10)+"</b>字节，请重新输入。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	} 
	VmlAlertClose(field);
	return true;
}

/*
[功能] 检验输入的字符串是否合法 (不能输入汉字)
[参数] field obj,fieldName 中文名称,lengths 长度,flag 是否必填
[作者] molm 2003/8/6
*/
function checkString2(field,fieldName,lengths,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	
	if ((flag!=0) && (field.value=="")) {
		VmlAlert (1,field,"『"+fieldName+"』内容不能为空，请重新输入。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	for (i=0;i<field.value.length;i=i+1)
	{
		var code= field.value.charCodeAt(i);
		if (code>128){
			VmlAlert (1,field,"『"+fieldName+"』填写了非法字符，不允许填写汉字。",checkInfoTime);
			field.focus();
			//field.select();
			return false;
		}
	}
	if ((lengths>0) && (codeLength(field.value)>lengths)) {
		VmlAlert (1,field,"『"+fieldName+"』的长度不能超过<b>"+lengths.toString(10)+"</b>字节，请重新输入。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	} 
	VmlAlertClose(field);
	return true;
}



/*
[功能] 检验输入的字符串是否合法 (只能输入英文和数字)
[参数] field obj,fieldName 中文名称,lengths 长度,flag 是否必填
[作者] molm 2003/8/6
*/
function checkString3(field,fieldName,lengths,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	
	if ((flag!=0) && (field.value=="")) {
		VmlAlert (1,field,"『"+fieldName+"』内容不能为空，请重新输入。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	if (/[^a-z0-9A-Z]/.test(field.value)){
		VmlAlert (1,field,"『"+fieldName+"』填写了非法字符，只允许输入a-z,A-Z,0-9字符。",checkInfoTime);
		field.focus();
		//field.select();
		return false;			
	}

	if ((lengths>0) && (codeLength(field.value)>lengths)) {
		VmlAlert (1,field,"『"+fieldName+"』的长度不能超过<b>"+lengths.toString(10)+"</b>字节，请重新输入。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	} 
	VmlAlertClose(field);
	return true;
}


/*
[功能] 判断输入数字是否合法(整数)
[参数] field obj,fieldName 中文名称,flag 是否必填
[作者] molm 2003/8/7
*/
function checkInteger(field,fieldName,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	
	if (!isInteger(field.value)) {
		VmlAlert (1,field,"『"+fieldName+"』填写了非法字符，只能填写整数。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	if ((flag==1) && (field.value=='')) {
		VmlAlert (1,field,"『"+fieldName+"』的内容不能为空。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	if (field.value>100000000 || field.value<-100000000) {
		VmlAlert(1,field,"『"+fieldName+"』填写的整数值超过了可处理范围。",checkInfoTime);
		field.focus();
		return false;
	}
	VmlAlertClose(field);
	return true;
}


/*
[功能] 判断输入数字是否合法(小数)
[参数] field obj,fieldName 中文名称,flag 是否必填
[作者] molm 2003/8/7
*/
function checkFloat(field,fieldName,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	
	if (!isFloat(field.value)&& (field.value!='')) {
		VmlAlert (1,field,"『"+fieldName+"』填写了非法字符，只能填写数字。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	if ((flag==1) && (field.value=='')) {
		VmlAlert (1,field,"『"+fieldName+"』的内容不能为空。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	if (field.value>10000000000 || field.value<-10000000000) {
		VmlAlert(1,field,"『"+fieldName+"』填写的数值超过了可处理范围。",checkInfoTime);
		field.focus();
		return false;
	}
	VmlAlertClose(field);
	return true;
}


/*
[功能] 判断输入日期是否合法
[参数] field obj,fieldName 中文名称,flag 是否必填
[作者] molm 2003/8/7
*/
function checkDate(field,fieldName,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	

	if ((flag==1) && (field.value=='')) {
		VmlAlert (1,field,"『"+fieldName+"』的内容不能为空。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
		
	}
	if (field.value!=""){
		if (!validateDate(field.value)) {
			VmlAlert (1,field,"『"+fieldName+"』日期格式错误，正确格式“yyyy-mm-dd”。",checkInfoTime);
			field.focus();
			//field.select();
			return false;
		}
	}
	VmlAlertClose(field);
	return true;
}


/*
[功能] 判断输入日期是否合法
[参数] field obj,fieldName 中文名称,flag 是否必填
[作者] molm 2003/8/7
*/
function checkMonth(field,fieldName,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	

	if ((flag==1) && (field.value=='')) {
		VmlAlert (1,field,"『"+fieldName+"』的内容不能为空。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
		
	}
	if (field.value!=""){
		if (!validateMonth(field.value)) {
			VmlAlert (1,field,"『"+fieldName+"』日期格式错误，正确格式(例如）“2003.03”。",checkInfoTime);
			field.focus();
			//field.select();
			return false;
		}
	}
	VmlAlertClose(field);
	return true;
}

function checkMonth2(field,fieldName,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}	

	if ((flag==1) && (field.value=='')) {
		VmlAlert (1,field,"『"+fieldName+"』的内容不能为空。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
		
	}
	if (field.value!=""){
		if (!validateMonth2(field.value)) {
			VmlAlert (1,field,"『"+fieldName+"』日期格式错误，正确格式“yyyy.mm”或者“yyyy”。",checkInfoTime);
			field.focus();
			//field.select();
			return false;
		}
	}
	VmlAlertClose(field);
	return true;
}

/*
[功能] 判断输入日期是否合法
[参数] field obj,fieldName 中文名称,flag 是否必填
[作者] molm 2003/8/7
*/
function Em(str){return(/^([\.\w-]){3,}@([\w-]){3,}(\.([\w]){2,4}){1,2}$/.test(str))}

function checkEmail(field,fieldName,flag) {
	if (!isVarDefined(field)) {
		alert('类型未定义，可能网页没有完全载入或者程序错误。');
		return false;
	}
	if (field.value!="") {
		if (!Em(field.value)) {
			VmlAlert (1,field,"『"+fieldName+"』Email格式错误，正确格式“xxxx@yyyy.zzz”。",checkInfoTime);	
			field.focus();
		//field.select();
			return false;
		}
	}
	if ((flag==1) && (field.value=='')) {
		VmlAlert (1,field,"『"+fieldName+"』的内容不能为空。",checkInfoTime);
		field.focus();
		//field.select();
		return false;
	}
	VmlAlertClose(field);
	return true;
}

/*
[功能] 全选当前form的checkbox
[参数] fmName form名称
[作者] molm 2003/8/7
*/
function selectAll(fmName)
{
  for (var i=0;i<fmName.elements.length;i++)
  {
    if (fmName.elements[i].type=='checkbox')
    {
      fmName.elements[i].checked = true;
    }
  }
return false;
}

/*
[功能] 全选当前form的checkbox
[参数] fmName form名称
[作者] molm 2003/8/7
*/
function selectReverse(fmName)
{
  for (var i=0;i<fmName.elements.length;i++)
  {
    if (fmName.elements[i].type=='checkbox')
    {
        if (fmName.elements[i].checked == true)
        {
          fmName.elements[i].checked=false;
        }
        else
        {
          fmName.elements[i].checked=true;
        }
    }
  }
return false;
}

