
function CheckNum(NUM)
{
	var i,j,strTemp;
	strTemp="0123456789";
	if ( NUM.length==0)
		return false;
	for (i=0;i<NUM.length;i++)
	{
		j=strTemp.indexOf(NUM.charAt(i));	
		if (j==-1)
		{
		//说明有字符不是数字
			return false;
		}
	}
	//说明是数字
	return true;
}

function CheckSNum(NUM)
{
	var i,j,strTemp;
	strTemp="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz-";
	if ( NUM.length==0)
		return false;
	for (i=0;i<NUM.length;i++)
	{
		j=strTemp.indexOf(NUM.charAt(i));	
		if (j==-1)
		{
		//说明有字符不是数字
			return false;
		}
	}
	//说明是数字
	return true;
}

//检查字符串中是否包含中文
function ChkCNStr(str)
{
	for(i=0;i<str.length;i++)
	{
		if(str.charCodeAt(i)>=0xA0)
			return true;	//包含中文
		else
			return false;	//不包含中文
	}
}
  //----------------------------
  //功能：金额输入
  //参数：str：输入值
  //返回值：true:正确 false:错误
  //作者：刘笃师
  //-----------------------------
function checkMoney(str)
{
	if(str=="") return true ;
	var re	= new RegExp("^(-?[0-9]{1,})(.[0-9]{1,2})?$") ;
	var r	= str.match(re) ;
	return r ;
}	

  //----------------------------
  //功能：浮点数输入
  //参数：str：输入值
  //返回值：true:正确 false:错误
  //作者：刘笃师
  //-----------------------------
function checkFloat(str)
{
	if(str=="") return false;
	var Reg=new RegExp("^(-?[0-9]{1,}).?[0-9]{0,}$", "g");
	return str.match(Reg);
}

  //----------------------------
  //功能：日期数输入　格式yyyy-mm-dd
  //参数：str：输入值
  //返回值：true:正确 false:错误
  //作者：刘笃师
  //-----------------------------
function checkDate(str)
{
	if(str=="") return false;
	var Reg=new RegExp("^([0-9]{4,4})\x2d([0-1]{1,1})([0-9]{1,1})\x2d([0-3]{1,1})([0-9]{1,1})$", "g");
	return str.match(Reg);
}

  //----------------------------
  //功能：邮件输入
  //参数：str：输入值
  //返回值：true:正确 false:错误
  //作者：刘笃师
  //-----------------------------
function checkEmail(str)
{
	if(str=="") return false;
	var Reg=new RegExp("^([a-z][a-z0-9\_\.]*[a-z0-9])(@)(([a-z0-9][a-z0-9\-]*[a-z0-9][\.])+(com|cn|net|hk|tw|au|uk|de|tv|info|biz))$", "g");
	return str.match(Reg);
}

//函数名：CheckTEL
//功能介绍：检查是否为电话号码
//参数说明：要检查的字符串
//返回值：1为是合法，0为不合法
function CheckTEL(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;
}

function CheckDate(Text)
            {
                var i,j,s,m,d,y;
                
                if (Text.indexOf(".")>0)//取分隔符
					s="."
				else if (Text.indexOf("/")>0)
					s="/"
				else if (Text.indexOf("-")>0)
					s="-";
				i=Text.indexOf(s);//第一分隔符位置
				j=Text.indexOf(s,i+1);//第二分隔符位置
				if (i+1>=j||i>4||j>i+3)
				{
					//window.alert(Chiname+"为非法日期!请修改.");
					return false;
				}					
					
				y=Text.substring(0,i);//年
				m=Text.substring(i+1,j);//月份
				d=Text.substring(j+1,Text.length);//日
				//alert(y+"-"+m+"-"+d);
				if (m=="08") m="8";
				if (m=="09") m="9";
				if (d=="08") d="8";
				if (d=="09") d="9";
				if (y.length!=4) 
				{
				   //alert("日期年度必须是四位，输入格式为yyyy-mm-dd");
				   return false;
				}
				if (isNaN(m)||isNaN(d)||isNaN(y)||y==""||m==""||d=="")
				{//alert(Chiname+y+"/"+m+"/"+d+"为非法日期!请修改.");
					return false;
				}
				y=parseInt(y);
				m=parseInt(m);
				d=parseInt(d);
				if (m<1||m>12||d<1||d>31||y<1000)					
					{//alert(Chiname+y+"/"+m+"/"+d+"为非法日期!请修改.");
					return false;
					}
				if ((m==2||m==4||m==6||m==9||m==11)&&d>30)					
					{//alert(Chiname+y+"/"+m+"/"+d+"为非法日期!请修改.");
					return false;
					}
				if ((m==2&&(d>29))||((m==2)&&(d==29)&&!((y==(parseInt(y/4)*4)&&y!=parseInt(y/100)*100)||y==parseInt(y/400)*400)))					
					{
					//alert(Chiname+y+"/"+m+"/"+d+"为非法日期!请修改.");
					return false;
					}
				return true;
				
             }
             
    function CheckTime(Text)
             {
                var i,s,m,d,y;
                
                if (Text.indexOf(":")>0)//取分隔符
					s=":";
				else
					return false;
					
				i=Text.indexOf(s);//第一分隔符位置
					
				h=Text.substring(0,i);//时
				m=Text.substring(i+1,Text.length);//分
				
				if (isNaN(h)||isNaN(m))	
					return false;
		
				h=parseInt(h);
				m=parseInt(m);

				if (h<0||h>23||m<0||m>59)
					return false;

				return true;
				
             }

             
 //判断Num为在MixNum和MaxNum之间的整数值
 function ChkDateLen(Num,Text,MixNum,MaxNum)
 {
 	if(Num == "")
 	{
		alert(Text + "不能为空！");
		return false;
	}
	else
	{
		if(isNaN(Num))
		{
			alert(Text + "应填数字！");
			return false;
		}
		if(Num < MixNum || Num > MaxNum)
		{
			alert(Text + "应该在" + MixNum.toString() + "到" + MaxNum.toString() +"之间！");
			return false;
		}
		if(Num.indexOf(".") > 0)
		{
			alert(Text + "应该为整数！");
			return false;
		}
	}
	return true;
}

 //判断Num为非空数字
 function ChkisNum(Num,Text)
 {
 	if(Num == "")
 	{
		alert(Text + "不能为空！");
		return false;
	}
	else
	{
		if(isNaN(Num))
		{
			alert(Text + "应填数字！");
			return false;
		}
	}
	return true;
}



/**
LogicalValue:用于判断对象的值是否符合条件，现已提供的选择有：
             integer：整型，还可判断正整型和负整型
             number ：数值型，同样可判断正负
             date   ：日期型，可支持以自定义分隔符的日期格式，缺省是以'-'为分隔符
             string ：判断一个字符串包括或不包括某些字符
返回值：
    true或false

参数：
ObjStr ：对象标识符——对象名；
ObjType：对象类型('integer','number','date','string'之一)

其他说明：
    当对象值为空时，则返回错误。

Author:PPDJ    

例子：
    example 1:要求检验输入框text1的输入数据是否是“整型”数据，若不是，则提示
        if (!LogicalValue('text1','integer')) alert('Error: Your must input a integer number');
    example 2:要求检验输入框text1的输入数据是否是“正整型”数据，若不是，则提示    
        if (!LogicalValue('text1','integer','+')) alert('Error: Your must input a positive integer number');
    example 3:要求检验输入框text1的输入数据是否是“负整型”数据，若不是，则提示    
        if (!LogicalValue('text1','integer','-')) alert('Error: Your must input a negative integer number');
    exmaple 4:要求检验输入框text1的输入数据是否是数值，若不是，则提示    
        if (!LogicalValue('text1','number')) alert('Error: Your must input a number');
    exmaple 5:要求检验输入框text1的输入数据是否是“正”数值，若不是，则提示    
        if (!LogicalValue('text1','number','+')) alert('Error: Your must input a number');
    exmaple 6:要求检验输入框text1的输入数据是否是“负”数值，若不是，则提示    
        if (!LogicalValue('text1','number','-')) alert('Error: Your must input a number');
    example 7:要求检验输入框text1的输入数据是否是日期型，若不是，则提示
        if (!LogicalValue('text1','date')) alert('Error: Your must input a logical date value');
        若它的分隔符为A，“A”是一个变量，如常用的'-'和'/'，则用如下语法
        if (!LogicalValue('text1','date',A)) alert('Error: Your must input a logical date value');
        或当分隔符为'/'时
        if (!LogicalValue('text1','date','/')) alert('Error: Your must input a logical date value');
        当分隔符为'-'时，可不要参数'-'，可带上
    example 8:要求检验输入框text1的输入表示颜色的字符串是否合理，若不合理，则提示
        if (!LogicalValue('text1','string','0123456789ABCDEFabcdef')) alert('Error: Your must input a logical color value');
    example 9:要求检验输入框text1的输入表示密码的字符串是否不含“'"@#$%&^*”这些字符，若含有，则提示
        if (!LogicalValue('text1','string','\'"@#$%&^*',false)) alert('Error: Your password can not contain \'"@#$%&^*');
        其中false表示不包含有某些字符，true表示必须是哪些字符，缺省值为true
*/
function LogicalValue(ObjStr,ObjType)
{
   var str='';
   if ((ObjStr==null) || (ObjStr=='') || ObjType==null)
   {
      alert('函数LogicalValue缺少参数');
      return false;
   }
   var obj = document.all(ObjStr);
   if (obj.value=='') return false;
   for (var i=2;i<arguments.length;i++)
   {  
      if (str!='')
         str += ',';
      str += 'arguments['+i+']';
   }
   str=(str==''?'obj.value':'obj.value,'+str);
   var temp=ObjType.toLowerCase();
   if (temp=='integer')
   {
       return eval('IsInteger('+str+')');
   }
   else if (temp=='number')
   {
      return eval('IsNumber('+str+')');
   }
   else if (temp=='string')
   {
      return eval('SpecialString('+str+')');
   }
   else if (temp=='date')
   {
      return eval('IsDate('+str+')');
   }
   else
   {
      alert('"'+temp+'"类型在现在版本中未提供');
      return false;
   }
}

/**
IsInteger: 用于判断一个数字型字符串是否为整形，
   还可判断是否是正整数或负整数，返回值为true或false
string: 需要判断的字符串
sign: 若要判断是正负数是使用，是正用'+'，负'-'，不用则表示不作判断
Author: PPDJ
sample:
   var a = '123';
   if (IsInteger(a))
   {
      alert('a is a integer');
   }
   if (IsInteger(a,'+'))
   {
      alert(a is a positive integer);
   }
   if (IsInteger(a,'-'))
   {
      alert('a is a negative integer');
   }
*/

function IsInteger(string ,sign)
{  
   var integer;
   if ((sign!=null) && (sign!='-') && (sign!='+'))
   {
      alert('IsInter(string,sign)的参数出错：\nsign为null或"-"或"+"');
      return false;
   }
   integer = parseInt(string);
   if (isNaN(integer))
   {
      return false;
   }
   else if (integer.toString().length==string.length)
   {  
      if ((sign==null) || (sign=='-' && integer<0) || (sign=='+' && integer>0))
      {
         return true;
      }
      else
         return false;  
   }
   else
      return false;
}

/**
IsDate: 用于判断一个字符串是否是日期格式的字符串

返回值：
    true或false
    
参数：
DateString： 需要判断的字符串
Dilimeter ： 日期的分隔符，缺省值为'-'

Author: PPDJ
sample:
   var date = '1999-1-2';
   if (IsDate(date))
   {
      alert('You see, the default separator is "-");
   }
   date = '1999/1/2";
   if (IsDate(date,'/'))
   {
      alert('The date\'s separator is "/");
   }
*/

function IsDate(DateString , Dilimeter)
{
   if (DateString==null) return false;
   if (Dilimeter=='' || Dilimeter==null)
      Dilimeter = '-';
   var tempy='';
   var tempm='';
   var tempd='';
   var tempArray;
   if (DateString.length<8 && DateString.length>10)
       return false;       
   tempArray = DateString.split(Dilimeter);
   if (tempArray.length!=3)
      return false;
   if (tempArray[0].length==4)
   {
      tempy = tempArray[0];
      tempd = tempArray[2];
   }
   else
   {
      tempy = tempArray[2];
      tempd = tempArray[1];
   }
   tempm = tempArray[1];
   var tDateString = tempy + '/'+tempm + '/'+tempd+' 8:0:0';//加八小时是因为我们处于东八区
   var tempDate = new Date(tDateString);
   if (isNaN(tempDate))
      return false;
  if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm)-1) && (tempDate.getDate()==parseInt(tempd)))
   {
      return true;
   }
   else
   {
      return false;
   }
}

/**
IsNumber: 用于判断一个数字型字符串是否为数值型，
   还可判断是否是正数或负数，返回值为true或false
string: 需要判断的字符串
sign: 若要判断是正负数是使用，是正用'+'，负'-'，不用则表示不作判断
Author: PPDJ
sample:
   var a = '123';
   if (IsNumber(a))
   {
      alert('a is a number');
   }
   if (IsNumber(a,'+'))
   {
      alert(a is a positive number);
   }
   if (IsNumber(a,'-'))
   {
      alert('a is a negative number');
   }
*/

function IsNumber(string,sign)
{
   var number;
   if (string==null) return false;
   if ((sign!=null) && (sign!='-') && (sign!='+'))
   {
      alert('IsNumber(string,sign)的参数出错：\nsign为null或"-"或"+"');
      return false;
   }
   number = new Number(string);
   if (isNaN(number))
   {
      return false;
   }
   else if ((sign==null) || (sign=='-' && number<0) || (sign=='+' && number>0))
   {
      return true;
   }
   else
      return false;
}



/**
SpecialString: 用于判断一个字符串是否含有或不含有某些字符

返回值：
    true或false
    
参数：
string     ： 需要判断的字符串
compare    ： 比较的字符串(基准字符串)
BelongOrNot： true或false，“true”表示string的每一个字符都包含在compare中，
             “false”表示string的每一个字符都不包含在compare中

Author: PPDJ
sample1:
   var str = '123G';
   if (SpecialString(str,'1234567890'))
   {
      alert('Yes, All the letter of the string in \'1234567890\'');
   }
   else
   {
      alert('No, one or more letters of the string not in \'1234567890\'');
   }
   结果执行的是else部分
sample2:
   var password = '1234';
   if (!SpecialString(password,'\'"@#$%',false)) 
   {
      alert('Yes, The password is correct.');
   }
   else
   {
      alert('No, The password is contain one or more letters of \'"@#$%\'');
   }  
   结果执行的是else部分
*/
function SpecialString(string,compare,BelongOrNot)
{
   if ((string==null) || (compare==null) || ((BelongOrNot!=null) && (BelongOrNot!=true) && (BelongOrNot!=false)))
   {
      alert('function SpecialString(string,compare,BelongOrNot)参数错误');
      return false;
   }
   if (BelongOrNot==null || BelongOrNot==true)
   {
      for (var i=0;i<string.length;i++)
      {
         if (compare.indexOf(string.charAt(i))==-1)
            return false
      }
      return true;
   }
   else
   {
      for (var i=0;i<string.length;i++)
      {
         if (compare.indexOf(string.charAt(i))!=-1)
            return false
      }
      return true;
   }
}


///////////////////////////////////////////////////////////////////
//2001.10.29
//winter
//去出字符串中空格
function StrTrim(x)
{
	while((x.length>0) && (x.charAt(0)==' '))
		x = x.substring(1 , x.length);
	while((x.length>0) && (x.charAt(x.length-1)==' '))
		x = x.substring(0, x.length-1);
	return x;
} 

function Trim(x)
{
	x = x.replace (/\s/ig,'');
	return x;
}
