﻿/*************************************************************************************
autoCheck()                      //检查表单中数据是否合法
validateAssociate()              //检查相关连的两日期型文本框的日期关系
isPhone()                        //验证一字符串是否是合法的电话、传真数据
isInteger()                      //验证一字符串是否是合法的整形数据
isPstInteger()                   //验证一字符串是否是合法的正整数数据（不包括0）
checkLen()                       //检查一的text或textArea中字符长度
isEmail                          //验证一字符串是否是合法的Email数据
checkEmail                       //检查email
isYearMonth                      //检查一字符串是否是合法的年月数据
isEmpty                          //判断一字符串是否为空,deprecated
checkInteger                     //检查整形变量
lTrim                            //删除一字符串左面的空格
rTrim                            //删除一字符串右面的空格
hasQutMark                       //检查一字符串中是否包含'和"
trim                             //删除一字符串两端的空格
isZipCode                        //检查一字符串是否是合法的邮政编码
isRYear                          //检查一字符串是否代表闰年
isDate                           //检查一字符串是否是合法的日期型数据。格式：YYYYMMDD
checkDate                        //检查日期
cLength                          //获取字符串的长度。（1个汉字＝2字符）
dateDiff                         //获取两个日期相差的天数
isStandard                       //判断输入字符串中，是否所有字符为0-9，A-Z,a-z
CompareDate1                     //发生日期不能大于终结日期
CompareDate2                     //终结日期必须大于发生日期
yearPlus                         //返回明年的今天
monthPlus                        //返回下个月的今天
isOverStepToday                  //检查当前字段日期是否大于当前日期
isLessThanToday					 //检查当前字段日期是否小于当前日期
getToday                         //取出系统当前日期
getMonthDays                     //计算每月有多少天
getYear                          //返回年
getMonth                         //返回月
getDay                           //返回日
isDouble                         //判断字符串是否为doube型数据
isMaxer                          //判断后一数据是否大于前一数据
isMoney				             //判断输入的数值是否是合法的金额(只能有两位小数)
isDig                            //判断输入的字符串是数字
isIdCardNo                       //判断是否是身份证  
isPercent						 //判断是否为百分数
checkFileUpload					 //验证上传文件类型
isChsPassport					 //验证中国护照
isEnLetterOrDig					 //验证是否只是英文数字
trimAll						 	//去除左右空格并将去除空格的值赋回表单
formatDateTime                   //把时间字符串转换成Date类型格式
*************************************************************************************/

/***********************************************************************************
**                  把时间字符串转换成Date类型格式 formatDateTime()
**
**
***********************************************************************************/
function formatDateTime(dateTime){
		var now = dateTime;
		var nowYear = now.substring(0,4);
		var nowMonth = parseInt(now.substring(5,7),10);
		var nowDay = now.substring(8,10);
		var nowHour = now.substring(11,13);
		var nowMinute = now.substring(14,16);
		var date = new Date(nowYear,nowMonth-1,nowDay,nowHour,nowMinute,0);
		return date;
}
/***********************************************************************************
**                  前端数据类型合法性的自动检查函数 autoCheck()
**
**
***********************************************************************************/
function isNumber(pObj,errMsg){
 var obj = eval(pObj);
 strRef = "1234567890";
 if(!isEmpty(pObj,errMsg))return false;
 for (i=0;i<obj.value.length;i++) {
  tempChar= obj.value.substring(i,i+1);
  if (strRef.indexOf(tempChar,0)==-1) {
   if (errMsg == null || errMsg =="")
    alert("数据不符合要求,请检查");
   else
    alert(errMsg);
   if(obj.type=="text") 
    obj.focus(); 
   return false; 
  }
 }
 return true;
}


function autoCheck()
{
  var ObjectSum = mainForm.elements.length;
  for (var i = 0 ; i <= ObjectSum; i++)
    {
    // 对象有效性检查的代码.
    if ((typeof mainForm[i]) != "object")
    {
          continue;
    }
    //下面代码检查控件的autocheck 属性
    var autocheck = mainForm[i].autocheck;
     //如果用户设置了autocheck属性，且为false
    if(((typeof autocheck) != "undefined" && autocheck == "false") )
    {
       continue;
    }
    //检查用户是否设置readonly
    var readonly = mainForm[i].readOnly;
    if( readonly == true)
    {
    	continue;
    }
    //检查用户是否设置disabled
    var disabled = mainForm[i].disabled;
    if(disabled== true)
    {
    	continue;
    }
    //取得对象类型，转成小写
    var objectType = mainForm[i].type.toLowerCase();
    //如果不是text控件则跳过
    if (objectType != "text")
    {
      continue;
    }
    //下面代码检查控件的 title 属性
    var title = mainForm[i].title;
    if((typeof title) == "undefined" || title == "")
    {
      alert("系统错误！当前行没有定义title 属性！");
      return false;
    }
    //下面代码检查控件的minLength属性
    var minLength = mainForm[i].minLength;
    //如果用户没设置此属性
    if( (typeof minLength) == "undefined" || minLength == "" )
    {
      alert("系统错误！"+title+"没有定义minLength属性！");
      mainForm[i].focus();
      return false;
    }
    //下面代码检查控件的maxLength属性，系统指定必须设定maxLength属性
    var maxLength = mainForm[i].maxLength;
    if( (typeof maxLength) == "undefined" || maxLength == "" ) //如果用户没设置此属性
    {
      alert("系统错误！"+title+"没有定义maxLength属性！");
      mainForm[i].focus();
      return false;
    }
    //取得控件的class属性
    var classStr = (mainForm[i].className).toLowerCase();
    //如果用户没设置此属性
    if( (typeof classStr) == "undefined" || classStr == "" )
    {
      alert("系统错误！"+title+"没有定义class属性！");
      mainForm[i].focus();
      return false;
    }
    //按控件的class属性组装检查字符串
     //是浮点型
    if(classStr == "decimal")
    {
    	if(!checkDecimal(i,title)) return false;
    }
    //如果非负浮点型
    else if(classStr == "notnegdecimal")
    {
      if(!checkNotNegDecimal(i,title)) return false;
    }
    //如果是非负整数    
    else if(classStr == "notneginteger")
    {
      if(!checkNotNegInteger(i,title)) return false;
    }
    //是整数型
    else if (classStr == "integer")
    {
      if (!checkInteger(i,title)) return false;
    }
    //是日期型
    else if (classStr == "date")
    {
      if (!checkDate(i,title)) return false;
    }
    //是电子邮件型
    else if (classStr == "email" )
    {
      if (!checkEmail(i,title)) return false;
    }
    //是电话&传真型
    else if (classStr == "phone")
    {
      if (!checkPhone(i,title)) return false;
    }
    //邮政编码
    else if(classStr == "zipcode")
    {
    	if(!checkZipcode(i,title)) return false;
    	/*
      if(!isZipCode(mainForm[i].value))
      {
        alert(title+"为非法的邮政编码!");
        mainForm[i].focus();
        return false;
      }
      */
    }
    //是textbd?
    else if(classStr == "textbd")
    {
      mainForm[i].value = trim(mainForm[i].value)
    }
    //是年月型?
    else if(classStr == "yearmonth")
    {
      if(!isYearMonth(mainForm[i].value))
      {
        alert(title+"非法，请按yyyymm形式输入!");
        mainForm[i].focus();
        return false;
      }
    }
	//金额类型
	else if(classStr == "moneyvalue")
    {	 
      if(!isMoney(mainForm[i].value))
      {
        alert("请输入正确的金额数值") 
        mainForm[i].focus()
        return false
      } 
    }
	//百分数
	else if(classStr == "persent")
    {	 
      if(!isPersent(mainForm[i].value,title))
      {
        //alert("请输入正确的"+title+"：0至100之间的") 
        mainForm[i].focus()
        return false
      } 
    }
    //身份证号
    else if(classStr == "idno")
    {
      if(!isIdCardNo(mainForm[i].value))
      {
        alert("请输入正确的身份证号码")
        mainForm[i].focus()
        return false
      }
    }
    //中文字符
    else if(classStr == "cnchars")
    {
      if(!isCnchars(mainForm[i].value))
      {
        alert("请输入汉字字符") 
        mainForm[i].focus()
        return false;
      }
    }
    //英文字符
    else if(classStr == "enchars")
    {
      if(!isEnchars(mainForm[i].value))
      {
        alert("请输入英字字符") 
        mainForm[i].focus()
        return false;
      }
    }
    //是TextArea?
    else if(classStr == "textarea")
    {
      //剪切掉后面的空格
      mainForm[i].value = rTrim(mainForm[i].value)
    }
    
    else
    {
      alert(classStr);
      alert("请确定class的赋值正确!");
      mainForm[i].focus();
      return;
    }
     //取得与本控件相关的控件名称
    var associate = mainForm[i].associate;
    if(! ((typeof associate) == "undefined" || associate == "") )
    {
      //检查关连是否合法
      if (!validateAssociate(i, associate,title) )
      {
        return false;
      }
    }
    //检查是否存在'或"
    if(hasQutMark(mainForm[i].value))
    {
      alert(title+"中不可含有引号");
      return false;
    }
    //检查字符的长度是否合法
    if(!checkLen(i,title,minLength,maxLength)) return false;
  } //end of if(classString.....)
    return true;
}//end of function()

/****************************************张洪刚增加2002年10月16日*****************
    检查两个日期类型的日期文本框的日期关系。使用时，在
    中止日期中，加上associate="被关连的组件名称"，提交时，
    程序会自动检查相关连的两个输入框的日期关系。如果后
    面的输入框日期早于前面的输入框    的日期，返回false，否
    则返回true。
    举例:
    <input type="text" class="date" name="start"  minLength="8" maxLength="8" title="开始日期">(被关连者)
    <input type="text' class="date" name="end" minLength="8" maxLength="8" title="结束日期" associate="start">(关连者)
    则，当end文本框表示的日期早于start文本框表示的日期时，
    返回false，否则，返回true
    注意:
    1、只有class为date型的文本域才可互相关连。
    2、必须指定文本域的minLength,maxLength,title,和class属性，如例所示
    3、当关连者小于关连者时，返回false，否则，返回true
*******************************************************************************************/
function validateAssociate(idx, associate,title)
{
  if(mainForm[idx].className.toLowerCase()!="date")
  {
    alert(title+"当前数据不是date型,不可设置关连");
    mainForm[idx].focus();
    return false;
  }
  //被关连项的序号
  var j= -1;
  for(i=0;i<mainForm.elements.length;i++)
  {
    if(mainForm[i].name==associate)
    {
      j=i;
      break;
    }
  }
  if(j==-1)
  {
    alert(title+"设置的关连项不存在");
    mainForm[idx].focus();
    return false;
  }
  if(mainForm[j].className.toLowerCase()!="date")
  {
    alert(title+"关连项不是date型,不可设置关连");
    mainForm[idx].focus();
    return false;
  }
  var fromYear = parseFloat(mainForm[j].value);
  var toYear = parseFloat(mainForm[idx].value);
  if(toYear<fromYear)
  {
    alert(title+"不可小于"+mainForm[j].title);
    mainForm[idx].focus();
    return false;
  }
  return true;
}

/******************************************************************************************
  检查参数ph是不是有效的电话&传真类型

应用举例： isPhone("021-58886936") // return true
    isPhone("(021)-58886936") // return true
    isPhone("(ss3)-38823") // return false
*******************************************************************************************/
function isPhone(ph)
{

  var flag = ph.search(/[^0-9,\(,\),-]/);

  if (flag < 0) //格式正确
  {
      return true;
  }
  return false;
}

function isInteger(inputVal)
{
  inputStr = inputVal;
  //如果为空串，认为是合法的整数
  if(inputVal.length ==0)
  {
    return true;
  }
  for (var i = 0;i < inputStr.length;i++)
  {
    var oneChar = inputStr.charAt(i)
    //检查是否有除数字及“-”以外的字符
    if ((oneChar < "0" && oneChar != "-")|| (oneChar > "9" && oneChar != "-"))
    {
        return false
    }
   }
   //防止用户输入以下形式数据: -
   if(inputVal.length == 1 && inputVal.charAt(0) == "-")
   {
     return false;
   }
   //防止用户输入以下形式数据：-***-
   for(var i = 1;i < inputVal.length;i++)
   {
     if(inputVal.charAt(i) == "-")
     {
       return false;
     }
   }
   return true
}



function isPstInteger(inputVal)
{
  if(!isInteger(inputVal))
  {
    return false;
  }
  if(inputVal <= 0)
  {
    return false
  }
  return true;
}

/******************************************************************************************
  检查参数field是不是有效的电话&传真域

应用举例： checkPhone(mainForm.phone.value , "联系电话") // 成功返回true ,失败返回false
*******************************************************************************************/
function checkPhone(field,name)
{
alert("dd");
var inputForm = document.getElementById(field);

  
	if(inputForm == ""||inputForm.length<0)
	{
		alert(name+"不能为空.");
		document.getElementById(field).focus();
		
	}
  var ph = trim(inputForm);

  if (! isPhone(ph))
  {

    alert(name+"非法格式! 请按正确的格式输入.");
    inputForm.focus();
    return false;   // 为非法格式
  }
  return false;
}
/****************************************张洪刚增加2002年10月16日*****************
    检查text和textArea中的数据长度是否满足要求。
    注:一个汉字＝2个字符
*******************************************************************************************/

function checkLen(index,title,minlen,maxlen)
{
  var sValue = mainForm[index].value;
  //检查当前值是否比minlen还要小
  if(cLength(sValue) < minlen-0)
  {
    alert(title+"不能少于"+minlen+"个字符!")
        mainForm[index].focus()
    return false;
  }
  //检查当前长度是否大于maxlen
  if(cLength(sValue)>maxlen)
  {
    alert(title+"不能多于"+maxlen+"个字符");
    mainForm[index].focus();
    return false;
  }
  return true;
}
/***************************************张洪刚增加2002年10年24日*************************
检查一class为decimal类型的输入域，其值是否合法
*******************************************************************************/
function checkDecimal(index,title)
{
	var val = mainForm[index].value;
	if(mainForm[index].minLength==0&&mainForm[index].value.length==0)
	{
		return true;
	}
	for(i=0;i<val.length;i++)
	{
		var tmpChar = val.charAt(i);
		if((tmpChar != ".") && (tmpChar != "-") && (tmpChar>'9'||tmpChar<'0'))
		{
			alert(title+"中含有非法字符'"+tmpChar+"'");
			mainForm[index].focus()
			return false;
		}
	}
	if(isNaN(val))
	{
		//alert("ok");
		alert(title+"为非法浮点数!\n请按#.#格式输入!");
		mainForm[index].focus();
		return false;
	}
	//防止用户输入以下格式：.**
	if(val.charAt(0)==".")
	{
		alert(title+":  请输入整数位!")
		mainForm[index].focus();
		return false;
	}
	//防止用户输入以下格式：-.**
	if(val.length > 2 && val.charAt(0) == "-" && val.charAt(1) == ".")
	{
	  alert(title+":  请输入整数位!")
		mainForm[index].focus();
		return false;
	}
	//防止用户输入如下格式：**.
	if(val.charAt(val.length-1)=='.')
	{
		alert(title+": 请输入小数位!");
		mainForm[index].focus();
		return false;
	}
	return true;

}


/** alter 张洪刚  2002/12/1  →*/
/** 增加对正浮点数的检查　*/
function checkNotNegDecimal(index,title)
{
  if(!checkDecimal(index,title))
  {
    return false;
  }
  var val = mainForm[index].value;
  if(val < 0)
  {
    alert(title+": 请输入非负浮点数!");
    mainForm[index].focus();
    return false;
  }
  return true;
}
/** ←alter 张洪刚      2002/12/1 */



/******************************************************************************************
        检查参数em是不是有效的email地址

应用举例:  isEmail("feng_yue@163.com")   // return true
       isEmail("@2342.com"); isEmail("feng@@.com"); isEmail("feng@ss@") // return false

*******************************************************************************************/
function isEmail(theStr)
{
  var atIndex = theStr.indexOf('@');
  var dotIndex = theStr.indexOf('.',atIndex);
  var flag = true;
  theSub = theStr.substring(0,dotIndex+1);
  if ((atIndex<1) || (atIndex != theStr.lastIndexOf('@')) || (dotIndex < atIndex + 2) || (theStr.length <= theSub.length))
  {
    flag = false;
  }
  else
  {
    flag = true ;
  }
  return(flag);
}

/******************************************************************************
        检查field是不是有效的email地址

应用举例: checkEmail(mainForm.txtEmail.name,"电子邮箱地址")

          //如果txtEmail中输入的是合法的email地址则返回 true;
          //否则提示"电子邮箱地址非法! 请输入正确的Email地址. 返回 false.

********************************************************************************/
function checkEmail(field,name)
{
  	if(mainForm[field].minLength==0&&cLength(mainForm[field].value)==0)
  	{
    	return true;
  	}
    var inputForm  = mainForm[field];
    var em = trim(mainForm[field].value);
    if (! isEmail(em))
    {
      alert(name+"非法! 请输入正确的Email地址.");
      inputForm.focus();
      return false;   // 为非法email.
    }
    else
    {
       return true;
    }
}

function isYearMonth(srcstr)
{
  if(srcstr.length!=6)
    return false;
  if(!isPstInteger(srcstr))
    return false;
  var year = parseFloat(inputStr.substring(0,4));
  var month = parseFloat(inputStr.substring(4,6));
  if (month < 1 || month > 12 ||year < 1990 || year > 2050)
  {
    return false
  }
  return true;
}
//**********************************判断数据项非空**************************************//
function isEmpty(inputStr)
{
//   inputStr=trim(inputStr)
  inputStr=inputStr.Trim().toString();
  if (inputStr.length == 0)
  {
    return true
  }
  return false
}



//网上资料开始
String.prototype.Trim = function()
{
  return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
  return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function()
{
  return this.replace(/(\s*$)/g, "");
}
//网上资料结束

//************直接调用函数判断数据项为空


//***********************************验证数据类型***************************************//


//************直接调用函数判断数据项是integer型
function checkInteger(inputStr, name)
{
  	var inputValue = mainForm[inputStr].value;
  	var inputForm  = mainForm[inputStr]
  	if(inputForm.minLength==0&&inputValue.length==0)
  	{
  		return true
  	}
  	if (inputValue.length == 0)
  	{
    	alert(name + "不能为空！")
    	inputForm.focus()
    	return false
  	}
  	else if (!isInteger(inputValue))
  	{
    	alert(name + "应为整数！")
    	inputForm.focus()
    	return false
  	}
  	return true
}

/** alter 张洪刚  2002/12/1  →*/
/** 张洪张增加对负整数的检查　*/
function checkNotNegInteger(inputStr,name)
{
  var inputValue = mainForm[inputStr].value;
  var inputForm  = mainForm[inputStr]
  if(inputForm.minLength == 0 && inputValue.length == 0)
  {
  	return true;
  }
  if(!isInteger(inputValue))
  {
    	alert(name + "应为非负整数！")
    	inputForm.focus()
    	return false
  }
  if(inputValue < 0)
  {
    alert(name + "应为非负整数！")
    inputForm.focus()
    return false
  }
  return true;
}
/** ←alter 张洪刚      2002/12/1 */



function lTrim(srcstr)
{
  var ltnStr;
  ltnStr="";
  for (var i=0;i<srcstr.length;i++)
  {
    if (srcstr.charAt(i)!=" " && srcstr.charAt(i)!="　")
    {
      ltnStr=srcstr.substr(i);
      break;
    }
  }
  return ltnStr;
}

//删除右面空格
function rTrim(srcstr)
{
  var rtnStr;
  rtnStr="";
  for (var i=srcstr.length-1;i>=0;i--)
  {
    if (srcstr.charAt(i)!=" " && srcstr.charAt(i)!="　")
    {
      rtnStr=srcstr.substring(0,i+1);
      break;
    }
  }
  return rtnStr;
}

/****************************************张洪刚增加2002年10月16日*****************
    检查text或textArea中是否包含引号(包括'和'')。如果包含，返回
    true，否则，返回false
*******************************************************************************************/
function hasQutMark(srcstr)
{
  if(srcstr.length==0) return false;
  for(i=0;i<srcstr.length;i++)
  {
    var charI = srcstr.charAt(i);
    if(charI=="'"||charI=="\"")
    {
      return true;
    }
  }
  return false;
}
function trim(srcstr)
{
  return lTrim(rTrim(srcstr))
}

//判断是否为邮政编码
function isZipCode(srcstr,name)
{
  if(srcstr==""&&srcstr.length<0)
  {
  	alert(name+"不能为空.");
  	return false;
  }
  if(srcstr.length!=6)
  {
  	alert(name+"长度不正确，请重新输入.");
    return false;
  }
  for(var i=0;i<srcstr.length;i++)
  {
    var charI=srcstr.charAt(i);
    if(charI<"0"||charI>"9")
    {
      alert(name+"格式不正确，请重新输入.");
      return false;
    }
  }
  return true;

}
//*********判断是否闰年

function isRYear(inputInt)
{
  if (inputInt % 100 == 0 && inputInt % 400 == 0 || inputInt % 100 != 0 && inputInt % 4 == 0)
  {
      return true
  }
  else
  {
      return false
  }
}
//zhanghg******* 判断是否全是汉字
function isCnchars(inputStr)
{
   for(i =0;i<inputStr.length;i++)
   {
        if(inputStr.charAt(i)<"~")
        {
          return false;
        }
   }
   return true;
}

//zhanghg******* 判断是否全是英文字符
function isEnchars(inputStr)
{
  for(i =0;i<inputStr.length;i++)
   {
        if(inputStr.charAt(i)<"A")
        {
          return false;
        }
        if(inputStr.charAt(i) >"z")
        {
          return false; 
        }
        if(inputStr.charAt(i) >"Z" && inputStr.charAt(i) <"a")
        {
          return false; 
        }
   }
   return true;
}
//zhanghg******* 判断是否是身份证
//function isIdno(inputStr)
//{
//  if(inputStr.length != 15 && inputStr.length != 18)
//  {
//    return false;    
//  }
//  if(inputStr.length == 15)
//  {
//     if(!isInteger(inputStr))
//     {
//      alert("输入的不是数字！");
//      return false  
//     }
//     if(!isDate("19"+inputStr.substring(6,12)))
//     {
//     	alert("输入的身份证号中出生日期不对！");
//        return false;
//     }
//  }
//  if(inputStr.length == 18)
//  {
//    if(!isInteger(inputStr.substring(0,17)))
//    {
//      alert("输入的不是数字！");	
//      return false; 
//    } 
//    if(!isDate(inputStr.substring(6,14)))
//    {
//      alert("输入的身份证号中出生日期不对！");
//      return false;
//    }  
//    var str1 = "xX0123456789";
//    var str2 = inputStr.substring(17,18);
//    if(str2.indexOf(str1)==-1))
//    {
//      alert("输入的身份证号中末位校验码不对！");
//      return false;
//    }    
//  }
//  return true
//}


//*********判断日期是否合法


function isDate(inputStr)
{
  if(inputStr.length!=8)
  {
    return false;
  }
  for(i=0;i<inputStr.length;i++)
  {
    charI = inputStr.charAt(i);
    if(charI<"0"||charI>"9")
    {
      return false;
    }
  }
  var year = parseFloat(inputStr.substring(0,4))
  var month = parseFloat(inputStr.substring(4,6))
  var day = parseFloat(inputStr.substring(6,8))
  if (month < 1 || month > 12 || day < 1 || day > 31)
  {
    return false
  }
  else if ((month == 4 || month == 6 || month == 9 || month ==11) && (day > 30))
  {
    return false
  }
  else if (isRYear(year) && month == 2 && day > 29 || !isRYear(year) && month == 2 && day > 28)
  {
    return false
  }
  else
  {
    return true
  }
}

//*********直接调用函数验证日期所有合法性

function checkDate(inputStr,name)
{
  var inputValue = mainForm[inputStr].value;
  var inputForm  = mainForm[inputStr]
  if(inputForm.minLength==0&&inputForm.value.length==0)
  {
  		return true;
  }
  if (inputValue.length == 0)
  {
    alert(name + "不能为空！")
    inputForm.focus()
    return false
  }
  else if (!isPstInteger(inputValue))
  {
    alert(name + "中包含非法字符！")
    inputForm.focus()
    return false
  }
  else if (!isDate(inputValue))
  {
    alert(name + "输入格式不合法！\n正确输入应为YYYYMMDD格式！")
    inputForm.focus()
    return false
  }
  else
  {
    var year = parseFloat(inputValue.substring(0,4))
    if(year < 1980 || year > 2020)
    {
      alert(name + "必须介于1980年与2020年之间！")
      inputForm.focus()
      return false
    }
    return true
  }
}




//判断字符的长度,考虑中文
function cLength(inputValue)
{
  var j = 0;
  for (var i = 0;i< inputValue.length;i++)
  {
    if (inputValue.charAt(i) >"~")
      j = j + 2
    else
      j = j + 1
  }
  return j;
}
//**********获得两个日期相差的天数******************* added by ZhuoBin
function dateDiff(sDateBegin,sDateEnd)
{
    //获得起始日期的年、月、日
  var sYearBegin = getYear(sDateBegin);
  var sMonthBegin = getMonth(sDateBegin);
  var sDateBegin = getDay(sDateBegin);
  //获得终止日期的年、月、日
  var sYearEnd = getYear(sDateEnd);
  var sMonthEnd = getMonth(sDateEnd);
  var sDateEnd = getDay(sDateEnd);

  var mSecondBegin = new Date(sYearBegin,sMonthBegin,sDateBegin);
  var mSecondEnd = new Date(sYearEnd,sMonthEnd,sDateEnd);

  //获取两个日期相差的天数
  var diffDates = (mSecondEnd - mSecondBegin)/1000/60/60/24;
  return diffDates;
}
//************判断输入项是否合乎标准0-9，A-Z,a-z
function isStandard(inputStr)
{
  //inputStr = inputVal.toString()
  for (var i = 0;i < inputStr.length;i++)
  {
    var oneChar = inputStr.charAt(i)
    if ((oneChar >= "0" && oneChar <= "9")||(oneChar >= "A" && oneChar <= "Z")||(oneChar >= "a" && oneChar <= "z"))
    {
      continue
    }
    else
    {
      return false
        //break
    }
  }
    return true
}



//未用到的程序



//************发生日期不能大于终结日期,State请传入1；终结日期必须大于发生日期State请传入2

function CompareDate(beginDate,bdName,endDate,edName,State)
{
//alert("传入参数为" + State)
  if (State != "1" && State != "2")
  {
    alert("最后一个参数请输入1或者2")
    return false
  }
  if (State == "1" && !CompareDate1(beginDate,bdName,endDate,edName))
  {
    return false
  }
  else if (State == "2" && !CompareDate2(beginDate,bdName,endDate,edName))
  {
    return false
  }
  else
  {
    return true
  }
}

//*************************************验证时间的合法性****************************************//

//************判断输入项类型是否合法时间

function isCorrectTime(inputStr)
{
  if (inputStr.length != 4)
  {
    return false
  }
  for (var i = 0;i < inputStr.length;i++)
  {
    var oneChar = inputStr.charAt(i)
    if (oneChar < "0" || oneChar > "9")
    {
      return false
    }
  }
  if (!isTime(inputStr))
  {
    return false
  }
  else
  {
    return true
  }
}

//************判断时间是否合法

function isTime(inputStr)
{
  var hour = parseFloat(inputStr.substring(0,2))
  var minute = parseFloat(inputStr.substring(2,4))
//var second = parseFloat(inputStr.substring(4,6))
//if (hour < 0 || hour > 24 || minute < 0 || minute > 59 || second < 0 || second > 59){
  if (hour < 0 || hour > 24 || minute < 0 || minute > 59)
  {
    return false
  }
  else if (hour == 24 && minute > 0)
  {
    return false
  }
  else
  {
    return true
  }
}

//*********直接调用函数验证时间所有合法性

function CheckTime(inputStr,name)
{
  var inputValue = mainForm[inputStr].value
  var inputForm  = mainForm[inputStr]
  if (inputValue == 0)
  {
    alert(name + "不能为空！")
    inputForm.focus()
    return false
  }
  else if (!isPstInteger(inputValue))
  {
    alert(name + "输入项应为整数！")
    inputForm.focus()
    return false
  }
  else if (!isCorrectTime(inputValue))
  {
    alert(name + "输入类型不合法！\n正确输入应为HHMM格式！")
    inputForm.focus()
    return false
  }
  else
  {
    return true
  }
}

//************起始时间不能大于截止时间,State请传入1；截止时间必须大于起始时间，State请传入2

function CompareTime(beginTime,bdName,endTime,edName,State)
{
//alert("传入参数为" + State)
  var bdValue = mainForm[beginTime].value
  var edValue = mainForm[endTime].value
  if (State != "1" && State != "2")
  {
    alert("最后一个参数请输入1或者2")
    return false
  }
  else if (!CheckTime(beginTime,bdName))
  {
    return false
  }
  else if (!CheckTime(endTime,edName))
  {
    return false
  }
  else if (State == "1" && bdValue > edValue)
  {
    alert(bdName + "不能大于" + edName)
    mainForm[beginTime].focus()
    return false
  }
  else if (State == "2" && bdValue >= edValue)
  {
    alert(edName + "必须大于" + bdName)
    mainForm[beginTime].focus()
    return false
  }
  else
  {
    return true
  }
}

//************打开一个新窗口

function openNewWindow(URL)
{
  var page = URL;
  windowprops = "height=350,width=500,location=no,scrollbars=yes,status=no,menubars=no,toolbars=no,resizable=yes";
  window.open(page, "Popup", windowprops);
//self.moveTo(0,0);
}

//*********发生日期不能大于终结日期*****(直接调用函数验证两个日期所有合法性)

function CompareDate1(beginDate,bdName,endDate,edName)
{
  var bdValue = mainForm[beginDate].value
  var edValue = mainForm[endDate].value
  if (!checkDate(beginDate,bdName))
  {
    return false
  }
  else if (!checkDate(endDate,edName))
  {
    return false
  }
  else if (bdValue > edValue)
  {
    alert(bdName + "不能大于" + edName)
    mainForm[beginDate].focus()
    return false
  }
  else
  {
    return true
  }
}

//*********终结日期必须大于发生日期*****(直接调用函数验证两个日期所有合法性)

function CompareDate2(beginDate,bdName,endDate,edName)
{
  var bdValue = mainForm[beginDate].value
  var edValue = mainForm[endDate].value
  if (!checkDate(beginDate,bdName))
  {
    return false
  }
  else if (!checkDate(endDate,edName))
  {
    return false
  }
  else if (bdValue >= edValue)
  {
    alert(edName + "必须大于" + bdName)
    mainForm[beginDate].focus()
    return false
  }
  else
  {
    return true
  }
}

/******************************************************************************************
    检查当前字段日期是否大于当前日期

应用举例:   isOverStepToday("DateField","提交日期") // 大于当前日期返回false

*******************************************************************************************/

function yearPlus(adDate)
{
  var y = getYear(adDate);
  var m = getMonth(adDate);
  var d = getDay(adDate);
  return(y*1+1)+m+d;
}

function monthPlus(adDate)
{
  var y = getYear(adDate);
  var m = getMonth(adDate);
  var d = getDay(adDate);

  if (m == "12")
  {
      m = 0;
      y = (parseInt(y)+1);
  }
  if (m<9) return y+"0"+(m*1+1)+d;
  else return y+(m*1+1)+d;
}

function dayToDate(aiDay,aiYear)
{
  var iYear = aiYear;
  var dDate = iYear + "0101";
  var monthCount = 1;

  while (aiDay > getMonthDays(dDate))
  {
    if ((aiDay - getMonthDays( dDate ))>0)  //判断剩余天数是否大于当前月的天数
    {
      aiDay -= getMonthDays( dDate );
      dDate = monthPlus(dDate);
      if(monthCount++>11) //aiDay 超过365天则转入下一年
        dDate = yearPlus(dDate);
    }
    else break;
  }

  if (aiDay < 10) //格式化输出天数
    return iYear+getMonth(dDate)+"0"+aiDay;
  else
    return iYear+getMonth(dDate)+aiDay;
}

function dateToDay(adDate)
{
  var iDays = 0;
  var dTmpDate = getYear(adDate) + "01" + getDay(adDate);

  while (dTmpDate != adDate)
  {
      iDays += getMonthDays(dTmpDate);
      //alert(dTmpDate);
      dTmpDate = monthPlus(dTmpDate);
      //alert(dTmpDate);
  }

  iDays += getDay(adDate)*1;

  return iDays;
}


/******************************************************************************************
    检查当前字段日期是否大于当前日期

应用举例:   isOverStepToday("DateField","提交日期") // 大于当前日期返回false

*******************************************************************************************/
function isOverStepToday(beginDate,bdName)
{
  var bdValue = mainForm[beginDate].value.Trim();
  var edValue = getToday();

  if (!checkDate(beginDate,bdName))
  {
    return false
  }
  else if (bdValue > edValue)
  {
    alert(bdName + "字段不能大于" + edValue)
    mainForm[beginDate].focus()
    return false
  }

  return true;
}
/******************************************************************************************
    检查当前字段日期是否小于当前日期

应用举例:   isLessThanToday("DateField","提交日期") // 小于当前日期返回false

*******************************************************************************************/
function isLessThanToday(beginDate,bdName)
{
  var bdValue = mainForm[beginDate].value.Trim();
  var edValue = getToday();

  if (!checkDate(beginDate,bdName))
  {
    return false
  }
  else if (bdValue < edValue)
  {
    alert(bdName + "字段不能小于" + edValue)
    mainForm[beginDate].focus()
    return false
  }

  return true;
}



/******************************************************************************************
    取出系统当前日期

应用举例:   getToday() // return "20020513"

*******************************************************************************************/
function getToday()
{
  var d = new Date();
  var sDate = d.getYear()*10000+(d.getMonth()+1)*100+d.getDate();

  return sDate.toString();
}

/******************************************************************************************
    计算每月有多少天

应用举例:   getMonthDays("20020201") // return 28
            getMonthDays("sdfsfd"); // error! return  false;
*******************************************************************************************/
function getMonthDays(sDate)
{

  // 分别取出年/月/日
  var year = getYear(sDate);
  var month = getMonth(sDate);
  var day = 1;

  if (year == 0 || month == 0) return false; //出错返回 false

  //设置两个用于日期计算的临时日期实例
  var t = new Date(year, month*1-1, day);
  var tt = new Date(year,month,day);

  return((tt - t)/1000/60/60/24); //返回天数 ,出错返回 false
}

/******************************************************************************************
  一套取年/月/日的函数

  返回值:  在实际应用过程中发现,在下列函数中进行日期有效性检查是不明智的,所以删除了.

  注:函数比较简单,推荐使用.
******************************************************************************************/

function getYear(sDate)
{
  // 取出年
  return sDate.substring(0,4);
}

function getMonth(sDate)
{
  // 取出月
  return sDate.substring(4,6);
}

function getDay(sDate)
{
  // 取出日
  return sDate.substring(6,8);
}
//************判断数据项是double型

function isDouble(inputVal)
{
  inputStr = inputVal.toString()
  oneDecimal = false
  for (var i = 0;i < inputStr.length;i++)
  {
    var oneChar = inputStr.charAt(i)
    if (oneChar == "." && !oneDecimal)
    {
        oneDecimal = true
        continue
    }
    if (oneChar < "0" || oneChar > "9")
    {
        return false
    }
  }
  return true
}

//************Zhangchi Add 2003-9-26判断输入的金额，小数点后是否只有两位数字
//正确的格式:120 , 123.23; 错误的格式:12.2345, 12. ,-12 , ww等
function isMoneyy(pObj,errMsg){
 
 var obj = eval(pObj);
 strRef = "1234567890.";
 
 for (i=0;i<obj.value.length;i++) {
  tempChar= obj.value.substring(i,i+1);
  if (strRef.indexOf(tempChar,0)==-1) {
   if (errMsg == null || errMsg =="")
    alert("数据不符合要求,请检查");
   else
    alert(errMsg);   
   if(obj.type=="text") 
    obj.focus(); 
   return false; 
  }else{
   tempLen=obj.value.indexOf(".");
   if(tempLen!=-1){
    strLen=obj.value.substring(tempLen+1,obj.value.length);
    if(strLen.length>2){
     if (errMsg == null || errMsg =="")
      alert("数据不符合要求,请检查");
     else
      alert(errMsg);   
     if(obj.type=="text") 
     obj.focus(); 
     return false; 
    }
   }
  }
 }
 return true;
}
function isMoney(theStr)
{

  for (var i = 0;i < theStr.length;i++)
  {
    var oneChar = theStr.charAt(i)
    //检查是否有除数字及“-”以外的字符
    if ((oneChar < "0" && oneChar != ".")|| (oneChar > "9" && oneChar != "."))
    {
        return false
    }
  }
  var atIndex = theStr.indexOf('.');
  if(atIndex != -1)
  {
	if(atIndex == 0)
	{
		return false
	}
	if(atIndex != 1)
	{
		if(theStr.charAt(0)==0)
			return false
	}
	if(((theStr.length - atIndex) > 3) || ((theStr.length - atIndex) <= 1))
	{
		return false
	}
  }
  return true
}

//************判断两个double型数据项大小，后一数据项比前一数据项大

function isMaxer(inputVal1,inputVal2)
{
  input1 = parseFloat(inputVal1)
  input2 = parseFloat(inputVal2)
  if (input1 >= input2)
  {
      return false
  }
  else
  {
      return true
  }
}

/**
  **********************蔡昆　add 2002-10-22 13:51----->*****************
 */

/**
  isZero(inputStr)                  //判断数据项为0
  isBetween (val, low ,high)        //判断是否在两个数之间

  checkOneObject(obj)               //判断控件的域合法性

  back()                            //返回上一页
  reset()                           //返回上一页
  submit()                          //提交表单
  checkSubmit()                     //检查并提交表单

  getToday()                        //取出系统当前日期
  getAfterDay(sBeginDay,inDay)      //取出给定日期后的第几日
  getYear(sDate)                    //取出年
  getMonth(sDate)                   //取出月
  getDay(sDate)                     //取出日
 */

/**
	检查只能输入数字
*/
function checkNumber()
{
	var k;
	var kdot1=0;
	var kdot2=0;
	var kdot3=0;
	var kdot4=0;

  kdot1=190;  //.
  kdot2=110;  //(del).
	kdot3=189;  //-
	kdot4=109;  //(del)-

	k = event.keyCode;
	if(event.altKey || event.ctrlKey || event.shiftKey)
	{
	  event.returnValue=false;
	  return false ;
	}

	if( !(
    	   (k>=48 && k<=57) ||     //上排数字键
    	   (k>=96 && k<=105)||     //小键盘数字键
    	   k==9 ||                 //TAB
    	   k==8 ||                 //退格键
    	   k==46 ||                //Delete
    	   k==kdot1 ||             // .
    	   k==kdot2 ||             //(del).
    	   k==kdot3 ||             // -
    	   k==kdot4 ||             //(del)-
    	   k==35 ||                //Home
    	   k==36 ||                //End
    	   (k>=37 && k<=40)        //位置移动键(箭头)
  	   )
    )
	{
		event.returnValue=false;
		return false ;
	}

	return true ;
}

/**
  判断控件的域合法性
*/
function checkOneObject(obj)
{
    //下面代码检查控件的 title 属性
    var title = obj.title;
    if((typeof title) == "undefined" || title == "")
    {
      alert("系统错误！当前行没有定义title 属性！");
      return false;
    }
    //下面代码检查控件的minLength属性
    var minLength = obj.minLength;
    //如果用户没设置此属性
    if( (typeof minLength) == "undefined" || minLength == "" )
    {
      alert("系统错误！"+title+"没有定义MinLength属性！");
      obj.focus();
      return false;
    }
    //下面代码检查控件的maxLength属性，系统指定必须设定maxLength属性
    var maxLength = obj.maxLength;
    if( (typeof maxLength) == "undefined" || maxLength == "" ) //如果用户没设置此属性
    {
      alert("系统错误！"+title+"没有定义maxLength属性！");
      obj.focus();
      return false;
    }
    //检查字符的长度是否合法
    if(!checkLen(i,title,minLength,maxLength)) return false;
    //取得控件的class属性
    var classStr = (obj.className).toLowerCase();
    //如果用户没设置此属性
    if( (typeof classStr) == "undefined" || classStr == "" )
    {
      alert("系统错误！"+title+"没有定义class属性！");
      obj.focus();
      return false;
    }
    //按控件的class属性组装检查字符串
     //是浮点型
    if (classStr=="decimal")
    {
    	checkDecimal(i,title);
    }
    //是整数型
    else if (classStr=="integer")
    {
      if (!checkInteger(i,title)) return false;
    }
    //是正整数
    else if (classStr == "positiveInteger")
    {
      if(!checkNotNegInteger(i,title)) return false;
    }
    //是日期型
    else if (classStr=="date")
    {
      if (!checkDate(i,title)) return false;
    }
    //是电子邮件型
    else if (classStr=="email" )
    {
      if (!checkEmail(i,title)) return false;
    }
    //是电话&传真型
    else if (classStr=="phone")
    {
      if (!checkPhone(i,title)) return false;
    }
    //邮政编码
    else if(classStr=="zipcode")
    {

    	checkZipcode(i,title);
    }
    //是textbd?
    else if(classStr=="textbd")
    {
      //不需 特殊处理
    }
    //是年月型?
    else if(classStr=="yearmonth")
    {
      if(!isYearMonth(obj.value))
      {
        alert(title+"非法，请按yyyymm形式输入!");
        obj.focus();
        return false;
      }
    }
    //是TextArea?
    else if(classStr=="textarea")
    {
      //不需特殊处理
    }
    else
    {
      alert("请确定class的赋值正确!!");
      obj.focus();
      return false;
    }
    //检查是否存在'或"
    if(hasQutMark(obj.value))
    {
      alert(title+"中不可含有引号");
      return false;
    }

}

/**
  判断是否在两个数之间
*/
function isBetween (val, low ,high)
{
  if ((val < low) || (val > high))
  {
    return false;
  }
  else
  {
    return true;
  }
}

/**
  判断数据项为0
*/
function isZero(inputStr){
  var inputVal = parseFloat(inputStr)
  if (inputVal == 0){
      return true
  }else{
      return false
  }
}

/**
  返回上一页
*/
function back()
{
  history.back();
}

/**
  返回上一页
*/
function reset()
{
  mainForm.reset();
}

/**
  提交表单
*/
function submit()
{
  mainForm.submit();
}

/**
  检查并提交表单
*/
function checkSubmit()
{
   if(autoCheck() && check())
   {
      mainForm.submit();
   }
}
/**
检查邮编
*/
function checkZipcode(index,title)
{
	var inputForm = mainForm[index];
	if(inputForm.minLength==0&&inputForm.value.length==0)
	{
		return true;
	}
	if(!isPstInteger(mainForm[index].value))
	{
		alert(title+"中包含非法字符!");
		mainForm[index].focus();
		return false;
	}
	if(cLength(mainForm[index].value)!=6)
	{
		alert(title+"长度应为6个字符!");
		mainForm[index].focus();
		return false;
	}
	return true;
}

/************************日期函数********************************/

/**
  取出系统当前日期
*/
function getToday()
{
  var d = new Date();
  var sDate = d.getYear()*10000+(d.getMonth()+1)*100+d.getDate();

  return sDate.toString();
}

/**
  取出给定日期后的第几日
*/
function getAfterDay(sBeginDay,inDay)
{
  var sReturn = "" ;
  var d = new Date(getYear(sBeginDay),getMonth(sBeginDay),getDay(sBeginDay));
  sReturn = (d.getYear()*10000+d.getMonth()*100+d.getDate()+parseFloat(inDay)).toString();

  return sReturn ;
}

/**
  取出年
*/
function getYear(sDate)
{
  return sDate.substring(0,4);
}

/**
   取出月
*/
function getMonth(sDate)
{
  return sDate.substring(4,6);
}

/**
  取出日
*/
function getDay(sDate)
{
  return sDate.substring(6,8);
}

/************************日期函数结束*****************************/

//**************add by ck 2003-1-17 15:53 ***********
//始终居中显示，如当页面很宽时，相关的按钮由于静态居中而找起来麻烦，可用此方法
//如：toCenter("<A HREF='XXX'>XXX</A>") ; 

function moveCenter()
{
  try{
    needToCenter.style.left= document.body.scrollLeft + (document.body.clientWidth - needToCenter.clientWidth) / 2  ;
  } catch(e) {}
 setTimeout("moveCenter();",200)
}

function toCenter(elementCode)
{
  document.write( '&nbsp;' );
  document.write( ' <div id=needToCenter style="position:absolute;" > ') ;
  document.write( elementCode ) ;
  document.write( ' </div> ') ;

  moveCenter();
  
}

//**************end 2003-1-17 15:53 *****************

/**
  **********************<-----蔡昆　add 2002-10-22 13:51*****************
 **/

//add by lgb
//处理double型字符，将其改为点分形式(123,456.88)
function addDot(sSrc,bit)
{
  sSrc=sSrc+'';
  var sHead = sSrc.charAt(0); //头(可能是负号)
  if(sHead=="-")
    sSrc=sSrc.substring(1);
  else
    sHead='';

  if(sSrc.indexOf(".")==-1) sSrc = sSrc+".00";
  var n=0,j=1;sTmp="";
  var m=sSrc.indexOf(".");

  var sLast = sSrc.charAt(m+bit+1);
  sSrc = sSrc.substring(0,m+bit+1);

  if(sLast>=5) sSrc=(sSrc-0)+Math.pow(0.1,bit);
  sSrc=sSrc+'';

  if(sSrc.indexOf(".")==-1) sSrc = sSrc+".00";

  for(var i=m+bit;i>m-1;i--) //处理小数部分
  {
	  var c = sSrc.charAt(i);
  	if(c=='') c=0;
  	sTmp = c + sTmp;
  }
  for(var i=m-1;i>=n;i--) //整数部分
  {
    var c = sSrc.charAt(i);
    sTmp = c + sTmp;
    if(j%3==0) sTmp=','+sTmp;
    j++;
  }
  if(sTmp.charAt(0)==',') sTmp=sTmp.substring(1);

  return sHead+sTmp;
}


/**
 *2003-9-27 guoyj ADD
 * 检查百分数的数据正确性
 * 在0--100之间,只能有一位小数
 */
//function isPersent(theStr)
//{
//
//  for (var i = 0;i < theStr.length;i++)
//  {
//    var oneChar = theStr.charAt(i)
//    //检查是否有除数字及“-”以外的字符
//    if ((oneChar < "0" && oneChar != ".")|| (oneChar > "9" && oneChar != "."))
//    {
//        return false
//    }
//  }
//  var atIndex = theStr.indexOf('-');
//  if (atIndex >= 0)
//  {
//	  return false
//  }
//  atIndex = -1
//  atIndex = theStr.indexOf('.');
//  if(atIndex != -1)
//  {
//    if(atIndex == 0)
//    {
//      return false
//    }
//    if(((theStr.length - atIndex) > 2) || ((theStr.length - atIndex) <= 1))
//    {
//      return false
//    }
//  }
//  if(theStr>=100||theStr<0)
//    return false
//  return true
//}

/**
 *2003-9-27 guoyj ADD
 * 检查百分数的数据正确性
 * 在0--100之间的整数
 */

function isPersent(theStr,title)
{
	if(!isInteger(theStr))
	{
		alert(title+"必须为整数");
		return false;
	}
	if(theStr>=100)
	{
		alert(title+"不能大于等于100");
		return false;
	}
	if(theStr<=0)
	{
		alert(title+"不能小于等于0");
		return false;
	}
	return true;
}
//返回金额大写
function DX(n) {
	var strOutput = "";
	var strUnit = '千百拾亿千百拾万千百拾元角分';
	n += "00";
	var intPos = n.indexOf('.');
	if (intPos >= 0)
	n = n.substring(0, intPos) + n.substr(intPos + 1, 2);
	strUnit = strUnit.substr(strUnit.length - n.length);
	for (var i=0; i < n.length; i++)
	strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(n.substr(i,1),1) + strUnit.substr(i,1);
	return strOutput;
}
//数字格式
function isDig(str)
{
	var bool = true;
	for(var i=0;i<str.length;i++)
	{
		if(!(str.charAt(i)>=0&&str.charAt(i)<=9))
		{
			bool = false;
			break;
		}
	}
	return bool;
}

//验证身份证 
function isIdCardNo(num){
	num = num.toLowerCase();
	var len = num.length; 
	if (len == 15){
	  if (!isDig(num)) {alert("输入的身份证号码不是数字！"); return false;}
	  re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
	}else if (len == 18){
	  var numNum=num.substring(0,17);
	  if (!isDig(numNum)) {alert("输入的身份证号码不是数字！"); return false;}
	  var bitVerify=num.substring(17,18);
	  var valueVerify=("x0123456789");
	  if (valueVerify.indexOf(bitVerify)==-1) {alert("输入的身份证末位校验码错误！"); return false;}
	  re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d{1}|x)$/);
	}else {alert("输入的身份证号码位数不对！"); return false;}
	var a = num.match(re);
	if (a != null)
	{
	  if (len==15)
	  {
	    var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
	    var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
	  }
	  else
	  {
	    var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
	    var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
	  }
	  if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对！"); return false;}
	}
	return true;
}

//验证百分数(0-100,小数点后面限制为2位）
function isPercent(theStr){
	for (var i = 0;i < theStr.length;i++){
	    var oneChar = theStr.charAt(i)
	    //检查是否有除数字及“.”以外的字符
	    if ((oneChar < "0" && oneChar != ".")|| (oneChar > "9" && oneChar != "."))
	    {
	        return false
	    }
	}
	var atIndex = theStr.indexOf('.');
	if(atIndex != -1){
		if(atIndex == 0){
			return false
		}
		if(atIndex != 1){
			if(theStr.charAt(0)==0)
				return false
		}
		if(((theStr.length - atIndex) > 3) || ((theStr.length - atIndex) <= 1)){
			return false
		}
		if(atIndex > 2){
			return false
		}
	}else if(theStr!="100"&&theStr.length>2){
		return false
	}
	return true
}

// 验证上传文件类型，field:file控件，extensions:允许的扩展名
function checkFileUpload(field,extensions) {
  	var bool = true;
  	if (extensions != '') var re = new RegExp("\.(" + extensions.replace(/,/gi,"|") + ")$","i");
	if (field.type.toUpperCase() != 'FILE') {alert("未知错误，请联系管理员");bool=false;return;}
	if (field.value == '') {
  		alert('请选取上传的文件！');bool = false;field.focus();return;
	} else {
  		if(extensions != '' && !re.test(field.value)) {
    		alert('这个文件不符合上传的类型！\n只有以下的类型才允许上传： ' + extensions + '。\n请依规定选取新的上传文件。');
    		bool = false;field.select();return;
  		}
	}
	return bool;
}

// 验证中国护照
function isChsPassport(str) {
	if (str.length!=9)
		return false;
	var numPassport = str.substring(1,9);
	var re = new RegExp(/[a-zA-Z]/);
	// 第一位为字母
	if(str.substring(0,1).search(re)==-1)
		return false;
	// 后8位为数字
	if (!isDig(numPassport))
		return false;
	return true;
}

// 验证是否只是英文数字
function isEnLetterOrDig(str) {
	var re = new RegExp(/[^a-zA-Z0-9 ()]/);
	return (!re.test(str));
}
//-->

// 去除左右空格并将去除空格的值赋回表单
function trimAll(formIndex){
	if(formIndex==undefined)
		formIndex=0;
	var fields = document.forms[formIndex].getElementsByTagName("input");
	for(i=0;i<fields.length;i++){
		var field = fields[i];
		if(field.type=="text")
			field.value=field.value.Trim();
	}
}
function checkIdcard(idcard){


  var Errors=new Array("验证通过!","身份证号码位数不对!","身份证号码出生日期超出范围或含有非法字符!","身份证号码校验错误!","身份证地区非法!","身分证地区和选择的地区不符！");
  var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
  var idcard,Y,JYM;
  var S,M;
  var idcard_array = new Array();
  idcard_array = idcard.split("");
     //var areaCheck = document.getElementById("area").value;
     var areaCheck = "山西";
  if(area[parseInt(idcard.substr(0,2))]==null) 
  {
  	alert(Errors[4]);

  }else 
   //判断身份证所在区堿和用户所选区堿是否符合。
  if(areaCheck != -1 && area[parseInt(idcard.substr(0,2))] != areaCheck) 
  {
  
 	 alert(Errors[5]);

  
  }else{


  switch(idcard.length){
  
    case 15:
      if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
        ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
      }
      else{
        ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
      }
	  
      if(ereg.test(idcard))
       return true;
      else
        alert(Errors[2]);
    break;
  case 18:
    if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
      ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
    }
    else{
    ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
    }
    if(ereg.test(idcard)){
      S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3 ;
      Y = S % 11;
      M = "F";
      JYM = "10X98765432";
      M = JYM.substr(Y,1);
      if(M == idcard_array[17])
        return true;
      else
        alert(Errors[3]);
    }
    else
      alert(Errors[2]);
    break;
	
  default:
    alert(Errors[1]);
    break;
  }}
  
}