/* CharType,表单数据类型 "C" 为字符串，"N" 为数字,"D"为日期类型。
 * MaxLength(最大长度) 整型数字 0表示不限制最大长度
 * Precision(精度) 整型数字 表示保留小数位的长度,0表示是整数
 * DefiniteLengthMark(定长标志) 整型数字   0（定长不允许空）/1（不定长不可空）/2（不定长允许空）/3（定长允许空）
 * Describe(表单描述) 比如：电话号码，用户姓名等等,必须写
 */
function checkFormItem(FormItemName,CharType,MaxLength,Precision,DefiniteLengthMark,Describe)
{
	var TValue;
	TValue=FormItemName.value;
	//得到文本框去掉头尾空格的值
	TValue=TValue.replace(/(^\s*)|(\s*$)/g, "");
	//去掉文本框头尾空格
	FormItemName.value=TValue;
	//允许空，只要文本框为空返回true
	if((DefiniteLengthMark==2||DefiniteLengthMark==3)&&(TValue.length==0))
	{
		return(true);
	}
	//不允许空，只要文本框为空返回false
	if((DefiniteLengthMark==0||DefiniteLengthMark==1)&&(TValue.length==0))
	{
		alert(Describe+"不允许为空！");
		return(false);
	}
	//判断字符串，长度和定长。

	if(CharType=="C")
	{
		if((DefiniteLengthMark==0||DefiniteLengthMark==3) && getStrLength(TValue)!=MaxLength)
		{
			alert(Describe+"规定长度是"+MaxLength+"，请检查！");
			return(false);
		}
		if(MaxLength!=0&&getStrLength(TValue)>MaxLength && (DefiniteLengthMark==1||DefiniteLengthMark==2))
		{
			alert(Describe+"超过最大长度，允许的最大长度是"+MaxLength+"！");
			return(false);
		}

	}
	//判断数字类型，长度，精度，定长
	if(CharType=="N")
	{
		//检查整型数字
		if(Precision==0&&!isInteger(TValue))
		{
			alert(Describe+"项填写必须输入数字，请检查！");
			return(false);
		}
		if(Precision==0&&isInteger(TValue)&&MaxLength!=0&&(DefiniteLengthMark==0||DefiniteLengthMark==3)&&getStrLength(TValue)!=MaxLength)
		{
			alert(Describe+"项长度必须是"+MaxLength+"，请检查！");
			return(false);
		}
		if(Precision==0&&isInteger(TValue)&&MaxLength!=0&&(DefiniteLengthMark==1||DefiniteLengthMark==2)&&getStrLength(TValue)>MaxLength)
		{

			alert(Describe+"项输入数字长度不能超过"+MaxLength+"，请检查！");
			return(false);
		}
        if (TValue<1){
            alert(Describe+"项输入数字应大于0，请检查！");
            return(false);
        }
        //检查整型数字结束


		//检查实数
		if(Precision!=0&&!isFloat(TValue))
		{
			alert(Describe+"项必须输入数字，请检查！");
			return(false);
		}
		if(Precision!=0&&isFloat(TValue)&&MaxLength!=0&&(DefiniteLengthMark==0||DefiniteLengthMark==3)&&getStrLength(TValue)!=MaxLength)
		{

			alert(Describe+"项输入数字长度必须是"+MaxLength+"，请检查！");
			return(false);
		}
		if(Precision!=0&&isFloat(TValue)&&MaxLength!=0&&(DefiniteLengthMark==1||DefiniteLengthMark==2)&&getStrLength(TValue)>MaxLength)
		{

			alert(Describe+"项输入数字长度不能超过"+MaxLength+"，请检查！");
			return(false);
		}
		if(Precision!=0&&isFloat(TValue)&&!checkPrecision(TValue,Precision))
		{

			alert(Describe+"项输入数字应该保留"+Precision+"位小数，请检查！");
			return(false);
		}

	}
	/*验证日期类型具体代码还没有写*/
	if(CharType=="D")
	{
		return(true);
	}

	return(true);
}


/* 得到字符串的长度  */
/*
function getStrLength(str)
{
	var sLength,i;
	sLength=0;
	for(i=0;i<str.length;i++)
	{
		if(Math.abs(str.charCodeAt(i))<=255)
			sLength=sLength+1;
		else
			sLength=sLength+2;
	}
	return(sLength);

}*/

function getStrLength(str)
{
	var winnt_chinese,sLength,i;
	var TestString="同方";
	if  (TestString.length==2){
		winnt_chinese =true;
	}else{
		winnt_chinese =false;
	}
	if (winnt_chinese){
	    var l, t, c,kk;
            l = str.length;
            t = l;
            for (kk=0;kk<l;kk++)
            {
                c = str.charCodeAt(kk);
                if (c < 0){
                    c = c + 65536;
                }
                if (c > 255){
                    t = t + 1;
                }
            }
            sLength = t;
	}else{
	    sLength = str.length;
	}
	return(sLength);
}


/* 验证整数  */
function isInteger(str)
{
	if(isNaN(str))
	{
		return(false);
	}
	else
	{
		if(str.search("[.*]")!=-1)
		{
			return(false);
		}
	}
	return(true);
}
/* 验证实型数字  */
function isFloat(str)
{
	//alert(isNaN(parseFloat(str)));
//	return(!isNaN(parseFloat(str)));
	return(!isNaN(str));
}
/* 验证精度  */
function checkPrecision(str,n)
{

	var tureorfalse,i,PrecisionLength;
	PrecisionLength=0;
	if(!isNaN(parseFloat(str)))
	{
		for(i=0;i<str.length;i++)
		{
			if(str.charAt(i)==".")
			{
				PrecisionLength=str.length-i-1;
				break;
			}
		}

	}
	else
	{
		return(false);
	}
	if(PrecisionLength<=n)
		return(true);
	else
		return(false);

}
//跳转页面
function Gotopage(formname) {
   //alert(<%=intPageCount%>);
   //alert(window.dataform.page.value);
   if(checkFormItem(dataform.page,"C",4,0,1,"转到页数")){
  	  window.dataform.target="_self";
  	  window.dataform.action=formname;
  	  window.dataform.submit();
   }
}



