//各种数据类型的检验
//Panda 2003-5-25 panda5288@hotmail.com


//检验字符串长度，返回true,false
var web_language="cn";
function StrLenBetween(TheStr,Low,High)
{ 
	if(isSpace(TheStr))
		return flase;
	if(isSpace(Low))
	   Low=-1;
	if(isSpace(High))
		High=99999;
	alert(TheStr.length + "--" + Low + "--" + High);
	if((TheStr.length>Low) && (TheStr.length<High))
   	return true;
   else
   	return false;
  
}

//检验数值大小，返回true,false

function DataBetween(TheData,Low,High)
{ 
	if(isSpace(TheData))
		return flase;
	if(isSpace(Low))
	   Low=-9999999;
	if(isSpace(High))
		High=9999999;
	
	if((TheData>Low) && (TheData<High))
   	return true;
   else
   	return false;
  
}

//检验日期：返回true,flase
function IsDate(TheDate)
{ if((GetDate(TheDate,"year")==0) || (GetDate(TheDate,"month")==0) || (GetDate(TheDate,"day")==0))
    {	
    	return false;
	}
   else
   {    
   	var TheDateObj=new Date(GetDate(TheDate,"year"),GetDate(TheDate,"month")-1,GetDate(TheDate,"day"))
   	if((GetDate(TheDate,"year")==TheDateObj.getFullYear()) && (GetDate(TheDate,"month")==TheDateObj.getMonth()+1) && (GetDate(TheDate,"day")==TheDateObj.getDate()))
      		return true;
      	else
	{
      	return false;
	}
   }
}

//检验是否为电话号码：返回true,false,
function IsTEL(TEL)
{
	var i,j,strTemp;
	strTemp="0123456789-()# ";
	for (i=0;i<TEL.length;i++)
	{	
		
		j=strTemp.indexOf(TEL.charAt(i));
		if (j==-1)
		{
			return false;
		}
	}
	return true;
}

//检验是否为整数：返回true,false
function IsInt(NUM)
{
	var i,j,strTemp;
	strTemp="0123456789";
	if ( NUM.length== 0)
		return false;
	var temp=NUM.indexOf("-")
	if((temp!=-1) && (temp!=0))
		return false;
	for (i=0;i<NUM.length;i++)
	{
		j=strTemp.indexOf(NUM.charAt(i));	
		if (j==-1)
		{
			return false;
		}
	}
	return true;
}

//检验是否为浮点数：返回true,false
function IsFloat(NUM)
{
	var i,j,strTemp,dotcount=1,dotpos=0;
	strTemp="0123456789.";
	if ( NUM.length== 0)
		return false;
	var temp=NUM.indexOf("-")
	if((temp!=-1) && (temp!=0))
		return false;
	temp=NUM.index
	for (i=0;i<NUM.length;i++)
	{
		j=strTemp.indexOf(NUM.charAt(i));
		if(NUM.charAt(i)==".")
		{
		   dotcount=dotcount+1;
		   dotpos=i;
		}
		if (j==-1)
		{
			return false;
		}
	}
	if((dotcount>1)&&(dotpos==NUM.length-1))
		return false;
		
	return true;
}

//检验是否为Email地址：返回true,false
function IsEmail(a)
{
	if(isSpace(a))
		return true;
	var i=a.length;
	var temp = a.indexOf('@');
	var tempd = a.indexOf('.');
	if (temp > 1) {
		if ((i-temp) > 3){
			if ((i-tempd)>0){
					if(tempd>temp)
					return true;
				}			
		}
	}
	return false;
}

//移动焦点到TheItemObj
function FocusTheItem(TheItemObj)
{
	
	if((TheItemObj.style.display!='none') &&(TheItemObj.type!='hidden'))
		TheItemObj.focus();
}
//判断是否是中文字符
function IsChineseChar(TheChar)
{
var badChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
if (badChar.indexOf(TheChar) > -1) 
	return false;
else
	return true;
	
}
//判断字符是否包含中文字符
function IsChinese(TheString)
{
var i,c;
for (i = 0; i < TheString.length; i++)
{ 
c = TheString.charAt(i);//字符串s中的字符
if (IsChineseChar(c)) 
	return true;
}
return false;
}

//取得字符串的实际字节长度(中文按两字节算)
function GetByteLen(TheString)
{
var i,c,l;
l=0;
for (i = 0; i < TheString.length; i++)
{ 
c = TheString.charAt(i);//字符串s中的字符
if (IsChineseChar(c)) 
	l=l+2;
else
	l=l+1;

}
return l;
}

function CheckTheItem(TheItemObj)
{ 
	//必填项
	if(TheItemObj.IsValid=="1" && isSpace(TheItemObj.value))
		{
			if(web_language=="cn")
				alert(TheItemObj.ItemName + "不能为空!")
			else
				alert(TheItemObj.ItemName + " Can't be Null!")
			
			FocusTheItem(TheItemObj)
			return false;
		}
	//非必填项，为空返回
	if(TheItemObj.IsValid=="0" && isSpace(TheItemObj.value))
		{
			
			return true;
		}
				
	//check the string type
	if(TheItemObj.ItemType=="String")
		{
			
			if(!isSpace(TheItemObj.ContentType))
				{ 
					switch(TheItemObj.ContentType.toUpperCase())
					{
						case "EMAIL":
							if(!IsEmail(TheItemObj.value))
								{
									if(web_language=="cn")
										alert(TheItemObj.ItemName + "格式错误,请输入正确的邮件地址!")
									else
										alert(TheItemObj.ItemName + " is wrong,please input the correct email!")
									FocusTheItem(TheItemObj);
									return false;
								}
								break;
						case "TEL":
							if(!IsTEL(TheItemObj.value))
								{
									if(web_language=="cn")
										alert(TheItemObj.ItemName + "格式错误，请输入正确的电话号码格式!")
									else
										alert(TheItemObj.ItemName + " is wrong,please input the correct tel!")
									FocusTheItem(TheItemObj);
									return false;
								}
								break;
						
						case "ENGLISH":
							if(IsChinese(TheItemObj.value))
								{
									if(web_language=="cn")
										alert(TheItemObj.ItemName + "格式错误，请输入英文或者数字!")
									else
										alert(TheItemObj.ItemName + " is wrong,please input char or number!")
									FocusTheItem(TheItemObj);
									return false;
								}
								break;
						default:
							return true ;
					}
				}
				
			if(!isSpace(TheItemObj.MaxLen))
				{  
					
					if(GetByteLen(TheItemObj.value)>parseInt(TheItemObj.MaxLen))
					{
						if(web_language=="cn")
							alert(TheItemObj.ItemName + "长度不能超过" + TheItemObj.MaxLen + "位字节(一个汉字为两个字节)!")
						else
							alert(TheItemObj.ItemName + "'s length must less than" + TheItemObj.MaxLen + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
			if(!isSpace(TheItemObj.MinLen))
				{	
					if(TheItemObj.value.length<parseInt(TheItemObj.MinLen))
					{
						if(web_language=="cn")
							alert(TheItemObj.ItemName + "长度不能少于" +TheItemObj.MinLen + "位!")
						else
							alert(TheItemObj.ItemName + "'s length must more than" +TheItemObj.MinLen + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
		}
		
		//check the int type
		if(TheItemObj.ItemType=="Int")
		{
			if((!IsInt(TheItemObj.value))&&(!isSpace(TheItemObj.value)))
				{
					if(web_language=="cn")
						alert(TheItemObj.ItemName + "格式错误，请输入整数!")
					else
						alert(TheItemObj.ItemName + " is wrong,please input int!")
					FocusTheItem(TheItemObj);
					return false;
				}
				
			if(!isSpace(TheItemObj.MaxValue))
				{  
					
					if(parseInt(TheItemObj.value)>parseInt(TheItemObj.MaxValue))
					{
						if(web_language=="cn")
							alert(TheItemObj.ItemName + "不能大于" + TheItemObj.MaxValue + "!")
						else
							alert(TheItemObj.ItemName + " must less than" + TheItemObj.MaxValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
			if(!isSpace(TheItemObj.MinValue))
				{	
					if(parseInt(TheItemObj.value)<parseInt(TheItemObj.MinValue))
					{
						if(web_language=="cn")
							alert(TheItemObj.ItemName + "不能小于" +TheItemObj.MinValue + "!")
						else
							alert(TheItemObj.ItemName + " must more than" +TheItemObj.MinValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
		}
		//check the float type
		if(TheItemObj.ItemType=="Float")
		{
			if((!IsFloat(TheItemObj.value))&&(!isSpace(TheItemObj.value)))
				{
					if(web_language=="cn")
						alert(TheItemObj.ItemName + "格式错误，请输入数值!")
					else
						alert(TheItemObj.ItemName + " is wrong,please input float!")
					FocusTheItem(TheItemObj);
					return false;
				}
				
			if(!isSpace(TheItemObj.MaxValue))
				{  
					if(parseFloat(TheItemObj.value)>parseFloat(TheItemObj.MaxValue))
					{
						if(web_language=="cn")
							alert(TheItemObj.ItemName + "不能大于" + TheItemObj.MaxValue + "!")
						else
							alert(TheItemObj.ItemName + " must less than" + TheItemObj.MaxValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
			if(!isSpace(TheItemObj.MinValue))
				{	
					if(parseFloat(TheItemObj.value)<parseFloat(TheItemObj.MinValue))
					{
						if(web_language=="cn")
							alert(TheItemObj.ItemName + "不能小于" +TheItemObj.MinValue + "!")
						else
							alert(TheItemObj.ItemName + " must more than" +TheItemObj.MinValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
		}
		
		//check the date type
		if(TheItemObj.ItemType=="DateTime")
		{
			if((!IsDate(TheItemObj.value)&&(!isSpace(TheItemObj.value))))
				{
					if(web_language=="cn")
						alert(TheItemObj.ItemName + "格式错误，请输入正确日期!")
					else
						alert(TheItemObj.ItemName + " is wrong,please input date!")
					FocusTheItem(TheItemObj);
					return false;
				}
		}
		
	return true;
}

function CheckTheItemGrid(TheItemObj,TheItemValue)
{ 
	//必填项
	if(TheItemObj.IsValid=="1" && isSpace(TheItemValue))
		{
			alert(TheItemObj.ItemName + "不能为空!")
			return false;
		}
				
	//check the string type
	if(TheItemObj.ItemType=="String")
		{
			
			if(!isSpace(TheItemObj.ContentType))
				{ 
					switch(TheItemObj.ContentType.toUpperCase())
					{
						case "EMAIL":
							if(!IsEmail(TheItemValue))
								{
									alert(TheItemObj.ItemName + "格式错误,请输入正确的邮件地址!")
									FocusTheItem(TheItemObj);
									return false;
								}
								break;
						case "TEL":
							if(!IsTEL(TheItemValue))
								{
									alert(TheItemObj.ItemName + "格式错误，请输入正确的电话号码格式!")
									FocusTheItem(TheItemObj);
									return false;
								}
								break;
						default:
							return true ;
					}
				}
				
			if(!isSpace(TheItemObj.MaxLen))
				{  
					
					if(TheItemValue.length>parseInt(TheItemObj.MaxLen))
					{
						alert(TheItemObj.ItemName + "长度不能超过" + TheItemObj.MaxLen + "位!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
			if(!isSpace(TheItemObj.MinLen))
				{	
					if(TheItemValue.length<parseInt(TheItemObj.MinLen))
					{
						alert(TheItemObj.ItemName + "长度不能少于" +TheItemObj.MinLen + "位!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
		}
		
		//check the int type
		if(TheItemObj.ItemType=="Int")
		{
			if((!IsInt(TheItemValue))&&(!isSpace(TheItemValue)))
				{
					alert(TheItemObj.ItemName + "格式错误，请输入整数!")
					FocusTheItem(TheItemObj);
					return false;
				}
				
			if(!isSpace(TheItemObj.MaxValue))
				{  
					
					if(parseInt(TheItemValue)>parseInt(TheItemObj.MaxValue))
					{
						alert(TheItemObj.ItemName + "不能大于" + TheItemObj.MaxValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
			if(!isSpace(TheItemObj.MinValue))
				{	
					if(parseInt(TheItemValue)<parseInt(TheItemObj.MinValue))
					{
						alert(TheItemObj.ItemName + "不能小于" +TheItemObj.MinValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
		}
		//check the float type
		if(TheItemObj.ItemType=="Float")
		{
			if((!IsFloat(TheItemValue))&&(!isSpace(TheItemValue)))
				{
					alert(TheItemObj.ItemName + "格式错误，请输入正确数值!")
					FocusTheItem(TheItemObj);
					return false;
				}
				
			if(!isSpace(TheItemObj.MaxValue))
				{  
					if(parseFloat(TheItemValue)>parseFloat(TheItemObj.MaxValue))
					{
						alert(TheItemObj.ItemName + "不能大于" + TheItemObj.MaxValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
			if(!isSpace(TheItemObj.MinValue))
				{	
					if(parseFloat(TheItemValue)<parseFloat(TheItemObj.MinValue))
					{
						alert(TheItemObj.ItemName + "不能小于" +TheItemObj.MinValue + "!")
						FocusTheItem(TheItemObj);
						return false;
					}
				}
		}
		
		//check the date type
		if(TheItemObj.ItemType=="DateTime")
		{
			if((!IsDate(TheItemValue))&&(!isSpace(TheItemValue)))
				{
					alert(TheItemObj.ItemName + "格式错误，请输入正确日期!")
					FocusTheItem(TheItemObj);
					return false;
				}
		}
		
	return true;
}