//通用前端校验函数（请不断扩充）
//使用方法：需要校验的页面通过"<script src=>"包含此文件
//在使用的form中 onsubmit="return checkSubmit(this)"
//author Tony tony2002@btamail.net.cn
//date   2002-12-05
function checkSubmit(form){
for(i=0;i<form.length;i++)
{
  var str_warn;
  str_warn="";
  //检测判断条件，根据类型不同可以修改---如果是input类型,textArea类型
  //使用方法：
  //在需要校验的form中对象名，采用规范的对象命名
  //例如：*_int_mustint   ---->   代表 此处校验：*代表不能为空，int 代表必须是int类型
  //     N_fla_mustfla   ---->   代表 此处校验：N代表可以为空，fla 如果不为空必须是 float类型
  //     N_dat_mustdate  ---->   代表 此处校验：N代表可以为空，dat 如果不为空必须是 日期类型（格式采用统一格式：YYYY-MM-DD）
  //     *_mal_sdfsdfsd  ---->   代表 此处校验：*代表不能为空，mal 代表必须是email类型
  //     *_str_xxxxxxx   ---->   代表 此处校验：*代表不能为空，str 代表必须是String类型
  if((((form[i].tagName.toUpperCase()=="INPUT") && (form[i].type.toUpperCase()=="TEXT" || form[i].type.toUpperCase()=="PASSWORD" )) || (form[i].tagName.toUpperCase()=="TEXTAREA")) && (form[i].title!="") && (form[i].name.length>=5))
  {
    //alert(form[i].title+form[i].value.length+form[i].value.indexOf("*"));
    //首先判断所有元素有*的不能为空
    if(form[i].name.indexOf("*")>-1)
    {

    if(form[i].value.length<1)
    {
      str_warn=form[i].title+"不能为空!";
      alert(str_warn);
      form[i].focus();
      return false;
    }
    }
    //然后填写数据的判断类型匹配
    if(form[i].value.length>0)
    {
      //判断3－5位的格式
      if(form[i].name.substring(2,5).toUpperCase()=="INT")//int数字校验
      {
        if(!isInt(form[i].value))
        {
          str_warn=form[i].title+"格式不对,必须是整形数值！";
          alert(str_warn);
          form[i].focus();
          return false;
        }
      }
      if(form[i].name.substring(2,5).toUpperCase()=="FLA")//float数字校验
      {
        if(!isFloat(form[i].value))
        {
          str_warn=form[i].title+"格式不对,必须是浮点数！";
          alert(str_warn);
          form[i].focus();
          return false;
        }
      }
      if(form[i].name.substring(2,5).toUpperCase()=="DAT")//date校验
      {
        if(!isDate(form[i].value))
        {
          str_warn=form[i].title+"格式不对,必须是日期型数据！\n格式为：YYYY-MM-DD";
          alert(str_warn);
          form[i].focus();
          return false;
        }
      }
      if(form[i].name.substring(2,5).toUpperCase()=="MAL")//mail校验
      {
        if(!isMailAddress(form[i].value))
        {
          str_warn=form[i].title+"格式不对,必须是正确的邮件地址！\n格式为：sina@sina.com";
          alert(str_warn);
          form[i].focus();
          return false;
        }
      }
    }
    //把*_str_sdfsdf 转换成 sdfsdf
    form[i].name=form[i].name.substring(6,form[i].name.length);
  }

}
return true;
}
//检查整形数值的函数
function isInt(inputVal) {
  inputStr = inputVal.toString()
    for (var i = 0; i < inputStr.length; i++) {
      var oneChar = inputStr.charAt(i)
      if (oneChar < "0" || oneChar > "9") {
        return false;
      }
    }
  return true;
}
//检查浮点型数值的函数
function isFloat(inputVal) {
  inputStr = inputVal.toString()
  for (var i = 0; i < inputStr.length; i++) {
    var oneChar = inputStr.charAt(i)
    if ((oneChar < "0" || oneChar > "9") && oneChar!=".") {
      return false;
    }
  }
return true;
}

//检查日期型数据
function isDate(sDate)
{
  var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
                    var iaDate = new Array(3)
                    var year, month, day
  if (arguments.length != 1)
    return false
  iaDate = sDate.toString().split("-")
  if (iaDate.length != 3) return false
  if (iaDate[1].length > 2 || iaDate[2].length > 2)
    return false
  year = parseFloat(iaDate[0])
  month = parseFloat(iaDate[1])
  day=parseFloat(iaDate[2])
  //alert(year+month+day)
  if (year < 1900 || year > 2100)
    return false
  if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
    iaMonthDays[1]=29;
  if (month < 1 || month > 12)
    return false
  if (day < 1 || day > iaMonthDays[month - 1])
    return false
  return true
}

//校验邮件
function isMailAddress(strMail){
  if(strMail.indexOf('@')<1){
    return false;
  }
  if(strMail.indexOf('.')<1){
    return false;
  }
  return true;
}

function search_onclick(obj){
  var value = obj.search.value;
  if(value == ""){
    alert("请输入搜索条件");
    obj.search.focus();
    return false;
  }
  return true;
}

//除去传入参数的前后空格
function Trim(parameter)
{
  var ParameterValue;
  var Length;
  var Svalue;
  ParameterValue = parameter;
  Length = ParameterValue.length;
  for(var i=0;i<Length;i++)
  {
    Svalue = ParameterValue.substring(i,i+1);
    if(Svalue != " "&&Svalue != "  ")
    {
      ParameterValue = ParameterValue.substring(i,Length);
      break;
    }
  }
  Length = ParameterValue.length;
  for(var i=0;i<Length;i++)
  {
    Svalue = ParameterValue.substring(Length-i-1,Length-i);
    if(Svalue != " "&&Svalue != "  ")
    {
      ParameterValue = ParameterValue.substring(0,Length-i);
      break;
    }
  }
  return ParameterValue;
}

//检查传入的值是否为空
function CheckEmpty(parameter)
{
  var ParameterValue;
  var Length;
  var Svalue;
  ParameterValue = parameter;
  Length = ParameterValue.length;
  for(var i=0;i<Length;i++)
  {
    Svalue = ParameterValue.substring(i,i+1);
    if(Svalue != " "&&Svalue != "  ")
    {
      return false;
    }
  }
  return true;
}


function StrLen(sString)
{
  var sStr,iCount,i,strTemp ;

  iCount = 0 ;
  sStr = sString.split("");
  for (i = 0 ; i < sStr.length ; i ++)
  {
    strTemp = escape(sStr[i]);
    if (strTemp.indexOf("%u",0) == -1) // 表示是汉字
    {
      iCount = iCount + 1 ;
    }
    else
    {
      iCount = iCount + 2 ;
    }
  }
  return iCount ;
}