
function InputValid(d_input,d_notnull, d_type,d_limited, d_low, d_up,d_str)
{
  if ( d_input.length >1 )
  {
    var obj=d_input;
    var m;
    m=d_input.length;
	 m=m.toString();
	 for( var i=0; i<m ; i++ )
	 {
		if( !InputValid_A( obj[i],d_notnull, d_type,d_limited, d_low, d_up,d_str ) ) {
		   return (false);
		}
	 }
  }
  else
  {
      if ( !InputValid_A( d_input,d_notnull, d_type,d_limited, d_low, d_up,d_str ) )
   	   return false;
  }
  return true;
}

/**
* d_input  
* d_notnull 是否为空：0 ＝可以为空 ; 1 = 必须填写
* d_type 类型 int string float date time email fax auto zip
* d_limited  是否显示
*/
function InputValid_A( d_input,d_notnull, d_type,d_limited, d_low, d_up,d_str )
{	
//不能以空格开头
   if ( d_input.value.charAt(0) == ' ' ) 
    {
       alert(d_str+" 输入框不能以空格开头" );
       d_input.focus();
       return (false);
    }
// not null
   if ( d_notnull==1 && d_input.value.length ==0 ) 
    {
       alert(" 必须输入" + d_str );
       d_input.focus();
       return (false);
    }
//不能包含&
   if ( -1 < d_input.value.indexOf('&'))
   {
   	alert(d_str+" 输入框不能有特殊字符&!" );
   	return false ;
   }  
//
    var tmpValue = doReplace(d_input.value) ;	
	d_input.value = tmpValue ;   
// "int"
	if (d_type=="int")
	{
		if ( !isInt(d_input.value))
	    {
			alert( d_str+ " 只能是数字");
			d_input.focus();
			return (false);
	    }
		if  ( d_limited==1 && !(d_low<=d_input.value && d_input.value <= d_up))
		{
			alert(d_str+ "的值必须在"+ d_low + " 到 "+ d_up +"之间.");
         d_input.focus();
			return (false);
		}
		return true;
	} 

// "float"
	if (d_type=="float")
	{
		if ( !isFloat(d_input.value))
	    {
			alert( d_str+" 只能输入数字及小数点" );
			d_input.focus();
			return (false);
	    }
	    if  ( d_limited==1 && !( d_low <=d_input.value && d_input.value <= d_up))
		{
			alert(d_str+ "的值必须在"+ d_low + " 到 "+ d_up +"之间");
         d_input.focus();
			return (false);
		}
		return true;
	}

// "string"
	if (d_type=="string")
	{
		//alert();	
		tmpValue = d_input.value ;	
		var valueLen = strlen(tmpValue);
		if  (d_limited==1 && !( d_low <= valueLen && valueLen <= d_up))
		{
			alert(d_str+ " 的长度必须在 "+ d_low + " 和"+ d_up +" 之间。");
            d_input.focus();
			return (false);
		}		
		return (true);
	}    

// "date"
	if (d_type=="date")
	{
	    if (d_notnull==0 && d_input.value.length==0) return (true);
		if ( (!isDate(d_input.value)) || (d_input.value.length != 10) )
	    {
			alert("请在"+d_str+"处输入如下的日期形式：2000-08-08");
			d_input.focus();
			return (false);
	    }	
	    return (true);
	}
// "time"
	if (d_type=="time")
	{
	    if ( (!isTime(d_input.value)) || (d_input.value.length != 5) )
	    {
			alert("请在"+d_str+"处输入24小时制时间格式如下:  18:00");
			d_input.focus();
			return (false);
	    }	
	    return (true);
	}

// "email"
	if (d_type=="email")
	{
	   if (d_notnull==0 && d_input.value.length==0) return (true);
       if ( !isEmail(d_input.value))
	    {
			alert("请在 "+d_str+"处输入正确的Email地址。");
			d_input.focus();
			return (false);
	    }	
		return (true);
	}

// "fax"
	if (d_type=="fax")
	{
		//is int
	    if ( !isFax(d_input.value))
	    {
			alert(d_str+" 只能输入数字和'- '");
			d_input.focus();
			return (false);
	    }
		//limit
		if  ( d_limited==1 && !(d_low<=d_input.value.length && d_input.value.length <= d_up))
		{
			alert(d_str+ "的长度只能在 "+ d_low + " 和 "+ d_up +" 之间.");
         d_input.focus();
			return (false);
		}
		return true;  
	}

     // auto
	if (d_type=="auto")
	{
		//limit
		if  ( d_input.value==0 )
		{
			alert( "请输入 " + d_str );
			return (false);
		}
		return true;  
	} 
	
// "zip"
	if (d_type=="zip")
	{
	    if ( !isInt(d_input.value) )
	    {
			alert(d_str+" 只能是数字");
			d_input.focus();
			return (false);
	    }
		if  ( d_limited==1 ){
			if ( (d_low == d_up)&& (d_input.value.length != d_low) ) {
				alert( d_str+ "的长度只能是 "+ d_low +" 位." );
         	d_input.focus();
				return (false);
			}
			else {
				if ( (d_low < d_input.value.length && d_input.value.length < d_up))
				{
					alert(d_str+ "的长度只能在 "+ d_up +" 位以内.");
         		d_input.focus();
					return (false);
				}
			}
		}
		return true;  
	}

	return (true);
}
/**
* 获取指定字符串长度，汉字按双字节算（即一个汉字的长度为2）
*/
function strlen(value)
{	   
    if (value == null) return 0 ;
	
	var str = value;
	var len = 0 ;
	for (var i = 0; i < str.length ; i++)
	{
		len ++ ; 
		if ( str.charCodeAt(i) > 255 )
		{			  
		   len ++ ;
		}
	}		
	return len  ;
}
//下面定义了一些过滤规则
var filterRules = new Array();
filterRules[0] = new Array();
filterRules[0][0] = /\"/g ;  //过滤单字节的双引号,替换成汉字中双字节的双引号
filterRules[0][1] = "”" ;   
filterRules[1] = new Array();//过滤单字节的单引号,替换成汉字中的双字节的单引号
filterRules[1][0] = /\'/g ; 
filterRules[1][1] = "’" ; 
filterRules[2] = new Array();//过滤单字节的<,替换成双字节的〈
filterRules[2][0] = /</g ; 
filterRules[2][1] = "〈" ; 
filterRules[3] = new Array();////过滤单字节的>,替换成双字节的〉
filterRules[3][0] = />/g ; 
filterRules[3][1] = "〉" ; 
/**
*过滤函数，把上面定义的规则过滤字符串
*/
function doReplace(strValue)
{
	var tempValue = strValue ;
	for (var i = 0 ; i < 4 ; i ++)
	{
		tempValue = tempValue.replace(filterRules[i][0],filterRules[i][1]);
	}	
	return tempValue ;
}

function isInt( d_int)
{
		var checkOK = "0123456789";
		var checkStr = d_int;
		var allValid = true;
		var decPoints = 0;
		var allNum = "";
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
		if (ch != ",")
			allNum += ch;
		}
		return (allValid)
 }

function isFloat( d_float)
{
		var checkOK = "0123456789-,.";
		var checkStr = d_float;
		var allValid = true;
		var decPoints = 0;
		var allNum = "";
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			if ( (ch == '-') && (i!=0) )			
			{
				allValid = false;
				break;
			}			
			if (ch != ",")
				allNum += ch;				
			if (ch == ".")
				decPoints += 1;				
		}				
		if ( decPoints > 1 )
		{
			allValid = false;
		}
		return (allValid)
}

function isDate( d_date)
{		
		var checkStr = d_date;

		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			if ((i==4) || (i==7)) 
			{
				if ( ch!='-' )
				{
					return (false);
				}
			}
			else
			{
				if (ch<'0' || ch > '9')
				{
					return (false);
				}
				if ( (i==5 && ch>'1')||(i==8 && ch>'3') ) {
   				return (false);
				}
			}									
		}				
		return (true);
}
function isTime( d_time)
{		
		var checkStr = d_time;
		var hour1='0';
		var hour2='0';
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			if (i==2) 
			{
				if ( ch!=':' )
				{
					return (false);
				}
			}
			else
			{
				if (ch<'0' || ch > '9')
				{
					return (false);
				}
				if ( (i==0 && ch>'2')||(i==3 && ch>'5') ) 
				{
   					return (false);
				}
				if(i==0)
				{
					hour1=ch;
				}
				if(i==1)
				{
					hour2=ch;				
				}
				if((hour1=='2')&&(hour2>'3'))
				{
					return (false);
				}
			}		
							
		}				
		return (true);
}
function isEmail( d_email)
{		
		var checkStr = d_email;
		var emailtag = false;
		var emaildot=0
		var emailat=0
		
		if (checkStr.length<7) return (false);
		
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			
			if (ch=='@') emailat++;	
			if (ch=='.') emaildot++;	
		}				
		
		if (( emailat==1 ) && ( emaildot>=1 )) 
		{
		emailtag = true;
		}
		return (emailtag);  	
}

function isFax( d_int)
{
		var checkOK = "0123456789 -() $ ";
		var checkStr = d_int;
		var allValid = true;
		var decPoints = 0;
		var allNum = "";

		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			if (ch != ",")
			allNum += ch;
		}
		return (allValid);
}

/**
* 选中所有的checkbox框。
* @param name checkbox框对象
* @param showName checkbox框的显式值。
*/
function checkall(checkObj,showName)
{
   if(null == checkObj)
   {
      alert("没有你能选择所需要的"+showName+".");
      return false;
   }
   else if(null==checkObj[0])
   {    
       checkObj.checked=true;
   }
   else
   {
         for(var i = 0;i < checkObj.length;i++)
         {
             checkObj[i].checked=true;
         }    
   }
   return true ;
}

/**
  *页面流转。
  *@param gotoPage:控制页面流程的隐藏变量
  */
function gotoPage(formObj,toPage)
{
   formObj.command.value=toPage;
   formObj.submit();
}

/**
  *获取单选框选择的选择值。
  *@param radioOjb:单选框对象(radiobox)|多宣框对象(checkbox)
  *@param showName:单框显示值
  *@return 字符串.若没有选择，但存在复选框，则返回空字符串,并提示选择;
  *        若没有复选框则出现提示信息。
  */
function getFirstCheckedValue(radioOjb,showName)
{
   var tempValue=null;
   if(null ==radioOjb)
   {
      alert("没有"+showName+"供选择！");
   }
   else if(null==radioOjb[0])
   {
         if(radioOjb.checked)
         {
             tempValue=radioOjb.value;
         }       
  }
  else
  {
         for(var i = 0;i < radioOjb.length;i++)
         {
             if(radioOjb[i].checked)
             {
                 tempValue=radioOjb[i].value;
                 break;
             }
         }      
  }
  if(tempValue==null)
  {
	  alert("请选择所需要的"+showName+".");	 
  }
  return tempValue;
}


/**
* ????????????????????true?????false
*/
function f_isChines(value)
{	   
    if (value == null)
       return false ;
	
	var str = value;	
	for (var i = 0; i < str.length ; i++)
	{		
		if ( str.charCodeAt(i) > 255 )
		{			  
		  return true
		}
	}		
	return false  ;
}
