String.prototype.trim = function() {
    var t = this + '';
    t = t.replace(/(^\s*)|(\s*$)/g, "");
    return t.replace(/(^　*)|(　*$)/g, "");
}
String.prototype.len = function() {
    return (this + '').replace(/[^\x00-\xff]/g, "aa").length;
}
function Trim(str) {
    var t = (str + '').replace(/(^\s*)|(\s*$)/g, "");
    return t.replace(/(^　*)|(　*$)/g, "");
}
var selectedObj = null;
function selectRecord(obj) {
  if (selectedObj != null) {
    if (IsStrEqual(selectedObj, obj)) {
      selectedObj = null;
      return;
    }
    document.getElementById(selectedObj).checked = false;
  }
  selectedObj = obj;
}
function IsEmpty(objstr)
{
    if (Trim(objstr) == "")
        return true;
    return false;
}
function IsStrEqual(str1, str2) {
    return (str1.match(str2) && str1.length == str2.length);
}
function IsInt(objStr, sign, zero)
{
    var reg;
    var bolzero;
    if(Trim(objStr)=="")
        return false;
    else
        objStr=objStr.toString();
    if((sign==null)||(Trim(sign)==""))
        sign="+-";
    if((zero==null)||(Trim(zero)==""))
        bolzero=false;
    else
    {
        zero=zero.toString();
        if(zero=="0")
            bolzero=true;
        else
            alert("检查是否包含0参数，只可为(空、0)");
    }
    switch(sign)
    {
        case "+-":
            reg=/(^-?|^\+?)\d+$/;
            break;
        case "+":
            if(!bolzero)
            {
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                reg=/^-[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                reg=/^-[0-9]*[0-9][0-9]*$/;
            }
            break;
        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }
    var r=objStr.match(reg);
    if(r==null)
        return false;
    else
        return true;
}
function IsFloat(objStr,sign,zero)
{
    var reg;
    var bolzero;
    if(Trim(objStr)=="")
        return false;
    else
        objStr=objStr.toString();
    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }
    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
            bolzero=true;
        else
            alert("检查是否包含0参数，只可为(空、0)");
    }
    switch(sign)
    {
        case "+-":
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            break;
        case "+":
            if(!bolzero)
            {
                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                reg=/^\+?\d+(\.\d+)?$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
            }
           break;
       default:
           alert("检查符号参数，只可为(空、+、-)");
           return false;
           break;
   }
   var r=objStr.match(reg);
   if(r==null)
       return false;
   else
       return true;
}

//小数格式化函数srcStr为入参，nAfterDot为保留小数点的位数
function FormatNumber(srcStr, nAfterDot) {
　　var resultStr;
　　srcStr = "" + srcStr + "";
　　var strLen = srcStr.length;
　　var dotPos = srcStr.indexOf(".", 0);
　　if (dotPos == -1) {
      if (nAfterDot <= 0) {
 	return srcStr;
      }
   　　resultStr = srcStr+".";
　　   for (var i=0; i < nAfterDot; i ++) {
　　　　　　resultStr = resultStr + "0";
　　　　}
　　　　return resultStr;
　　} else {
　　　　if ((strLen - dotPos - 1) >= nAfterDot) {
　　　　　　var nTen = 1;
　　　　　　for(var j = 0; j < nAfterDot; j ++) {
　　　　　　　　nTen = nTen * 10;
　　　　　　}
          var fSrc = (srcStr  * nTen).toFixed(2);
　　　　　　resultStr = Math.round(fSrc) / nTen;
　　　　　　return resultStr;
　　　　} else {
　　　　　　resultStr = srcStr;
　　　　　　for (var i = 0; i < (nAfterDot - strLen + dotPos + 1); i ++) {
　　　　　　　　resultStr = resultStr + "0";
　　　　　　}
　　　　　　return resultStr;
　　　　}
　　}
}

//格式化小数，去掉最右边的“0”
function FormatDouble(str)
{
　　 var dotPos = str.indexOf(".", 0);
　　 if (dotPos == -1) {
　　　　return str;
　　}
    var dot = new String(".");
    var whitespace = new String("0");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        if (i >= 0 && dot.indexOf(s.charAt(i)) != -1)
          i --;
        s = s.substring(0, i+1);
    }
    return s;
}

var SYS_ErrMsg = '';
function DateStringToInt(strDate) {
  if (strDate.length != 8) {
    SYS_ErrMsg = "日期数据不正确，正确格式[YYYYMMDD]";
    return (-1);
  }

  var strYear = strDate.substring(0, 4);
  var strMonth = strDate.substring(4, 6);
  var strDay = strDate.substring(6);

  var iYear = parseInt(strYear, 10);
  var iMonth = parseInt(strMonth, 10);
  var iDay = parseInt(strDay, 10);

  if (iYear < 1900 || iYear > 2099) {
    SYS_ErrMsg = '日期串的年份不能小于1900年，且不能大于2099年';
    return (-1);
  }
  if (iDay < 1) {
    SYS_ErrMsg = '日期串的日数不能小于1';
    return (-1);
  }
  if (iMonth == 1 || iMonth == 3 || iMonth == 5 || iMonth == 7 || iMonth == 8 || iMonth == 10 || iMonth == 12) {
    if (iDay > 31) {
      SYS_ErrMsg = '日期串的日数不能大于31';
      return (-1);
    }
  } else if (iMonth == 4 || iMonth == 6 || iMonth == 9 || iMonth == 11) {
    if (iDay > 30) {
      SYS_ErrMsg = '日期串的日数不能大于30';
      return (-1);
    }
  } else if (iMonth == 2) {
    if (iYear % 400 == 0 || (iYear % 4 == 0 && iYear % 100 != 0)) {
    //闰年
      if (iDay > 29) {
        SYS_ErrMsg = '日期串的日数不能大于29';
        return (-1);
      }
    } else {
      if (iDay > 28) {
        SYS_ErrMsg = '日期串的日数不能大于28';
        return (-1);
      }
    }
  } else {
    SYS_ErrMsg = '日期串的月份应在1-12之间';
    return (-1);
  }

  var cmptDate = new Date(strYear, strMonth - 1, strDay);   //月份：0-11
  var staDate = new Date(1899, 11, 31);
  var days = parseInt((cmptDate - staDate) / 1000 / 60 / 60 / 24);
  return days;
}

function DateIntToString(iDate) {
  if (isNaN(iDate)) {
    SYS_ErrMsg = "非整型数据日期不能转换";
    return '';
  }
  iDate -= 25568;//0->1899-12-31
  var secs = iDate * 24 * 60 * 60 * 1000;
  var rstDate = new Date();
  rstDate.setTime(secs);
  var iMonth = rstDate.getMonth() + 1;
  var iDay = rstDate.getDate();
  var strMonth = iMonth;
  var strDay = iDay;
  if (iMonth < 10) {
    strMonth = "0" + strMonth;
  }
  if (iDay < 10) {
    strDay = "0" + strDay;
  }

  return rstDate.getFullYear() + "" + strMonth + "" + strDay;
}

function IsDate(objstr)
{
  if (DateStringToInt(objstr) > 0)
    return true;
  return false;
}

function parseDate(str){
  if (typeof str == 'string') {
    var results = str.match(/^ *(\d{4})(\d{1,2})(\d{1,2}) *$/);
    if (results && results.length>3) {
      return new Date(parseInt(results[1],10), parseInt(results[2],10)-1, parseInt(results[3],10));
    }
    results = str.match(/^ *(\d{4})(\d{1,2})(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
    if (results && results.length>6 && results.length<=7) {
      if (parseInt(results[4])>23 || parseInt(results[4]) < 0 ||
          parseInt(results[5])>59 || parseInt(results[5]) < 0 ||
          parseInt(results[6])>59 || parseInt(results[6]) < 0) {
        return null;
      }
      return new Date(parseInt(results[1],10), parseInt(results[2],10)-1, parseInt(results[3],10),
      parseInt(results[4],10), parseInt(results[5],10), parseInt(results[6],10));
    }
    results = str.match(/^ *(\d{4})(\d{1,2})(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
    if (results && results.length>7) {
      return new Date(parseInt(results[1],10), parseInt(results[2],10)-1, parseInt(results[3],10),
      parseInt(results[4],10),parseInt(results[5],10),parseInt(results[6],10),parseInt(results[7],10));
    }
  }
  return null;
}
function calDateTimeSpace(startDateTime, endDateTime, dGetType, bFlag) {
//计算两个精确时间的间隔数  bFlag:不满一天算一天  !bFlag:满一天了才算一天 同理：年、月、周也如此
//dGetType:1-年 2-月 3-周 4-天
    bFlag = Boolean.parse(bFlag);
    var start = parseDate(startDateTime);
    if (start == null) {
        alert('起始日期串输入有误，请检查并输入正确的日期时间');
        return -1;
    }
    var end = parseDate(endDateTime);
    if (end == null) {
        alert('终止日期串输入有误，请检查并输入正确的日期时间');
        return -1;
    }
    if (dGetType == 1) {
    //年
        var iMonth = calDateTimeSpace(startDateTime, endDateTime, 2, bFlag);
        if (bFlag) {
            return Math.floor((iMonth + 11) / 12);
        } else {
            return Math.floor(iMonth / 12);
        }
    } else if (dGetType == 2) {
    //月
        var iNum = 0;
        if (bFlag) {
            while (true) {
                var tmpDate = dateTimeMonthAdded(startDateTime, iNum, true);
                if (tmpDate >= endDateTime)
                    break;
                iNum++;
            }
            return iNum;
        } else {
            while (true) {
                var tmpDate = dateTimeMonthAdded(startDateTime, iNum+1, true);
                if (tmpDate > endDateTime)
                    break;
                iNum++;
            }
            return iNum;
        }
    } else if (dGetType == 3) {
        //周
        var days = calDateTimeSpace(startDateTime, endDateTime, 4, bFlag);
        if (bFlag) {
            return Math.floor((days+6)/7);
        } else {
            return Math.floor(days/7);
        }
    } else if (dGetType == 4) {
        var days = (end.getTime()-start.getTime()+1000)/(24*3600*1000);
        if (bFlag) {
            return Math.ceil(days);
        } else {
            return Math.floor(days);
        }
    } else {
        alert('client日期时间计算类型参数不匹配');
        return -1;
    }
}
//加减秒数得到对应的日期时间串
function dateTimeAdded(strDateTime, iSecs) {
  var date = parseDate(strDateTime);
  if (date == null) {
    alert('日期串输入有误，请检查并输入正确的日期时间');
    return null;
  }

  var rstDate = new Date();
  rstDate.setTime(date.getTime() + iSecs*1000);
  var iMonth = rstDate.getMonth() + 1;
  var iDay = rstDate.getDate();
  var strMonth = iMonth;
  var strDay = iDay;
  var strHour = rstDate.getHours();
  var strMinutes = rstDate.getMinutes();
  var strSecond = rstDate.getSeconds();

  strMonth = iMonth<10 ? "0" + strMonth:strMonth;
  strDay = iDay<10 ? "0" + strDay:strDay;
  strHour = strHour<10 ? "0" + strHour:strHour;
  strMinutes = strMinutes<10 ? "0" + strMinutes:strMinutes;
  strSecond = strSecond<10 ? "0" + strSecond:strSecond;

  return rstDate.getFullYear() + "" + strMonth + "" + strDay +
  " " + strHour + ":" + strMinutes + ":" + strSecond;
}
//加减月数得到对应的日期时间串
function dateTimeMonthAdded(strDateTime, iMonthNum, bFlag) {
//日期时间型加月数得到对应的日期时间串，bFlag:return结果为对应秒的前1秒 !bFlag or null:return结果为对应秒
  bFlag = Boolean.parse(bFlag);
  var date = parseDate(strDateTime);
  if (date == null) {
    alert('计算日期加月数的日期串输入有误，请检查并输入正确的日期时间');
    return null;
  }
  var dateStr = strDateTime.substring(0, 8);
  var timeStr = strDateTime.substring(9);
  var iNewDate = IncMonth(DateStringToInt(dateStr), iMonthNum);
  var newDateTime = DateIntToString(iNewDate) + " " + timeStr;
  if (bFlag) {
    return dateTimeAdded(newDateTime, -1);
  } else {
    return newDateTime;
  }
}
//加减天、月数得到对应的日期时间串
//dType:1天 2月  bFlag:return结果为对应秒的前1秒  !bFlag or null:return结果为对应秒
function dateTimeAddedByType(strDateTime, iNum, dType, bFlag) {
  bFlag = Boolean.parse(bFlag);
  if (dType == 1) {
  //加天数
    var secs = iNum * 24 * 3600;
    if (bFlag) {
      secs -= 1;
    }
    return dateTimeAdded(strDateTime, secs);
  } else if (dType == 2) {
  //加月数
    return dateTimeMonthAdded(strDateTime, iNum, bFlag);
  } else {
    alert('加减日期计算方法调用有误');
    return null;
  }
}
function getInt(objstr) {
  if (IsInt(objstr)) {
    return parseInt(objstr, 10);
  } else {
    return 0;
  }
}
function getFloat(objstr) {
  if (IsFloat(objstr)) {
    return parseFloat(objstr);
  } else {
    return 0;
  }
}
function limitLength(id, byteLength, title)
{
    var value = document.getElementById(id).value;
    var newvalue = value.replace(/[^\x00-\xff]/g, "**");
    var length = newvalue.length;

    //当填写的字节数小于设置的字节数
    if (length + 0 <= byteLength + 0){
        return;
    }
    var limitData = newvalue.substr(0, byteLength);
    var count = 0;
    var limitValue = "";
    for (var i = 0; i < limitData.length; i++) {
        var flat = limitData.substr(i, 1);
        if (flat == "*") {
        count ++;
        }
    }
    var size = 0;
    var istar = newvalue.substr(byteLength - 1, 1);//校验点是否为“×”
    //if 基点是×; 判断在基点内有×为偶数还是奇数
     if (count % 2 == 0) {
      //当为偶数时
      size = count / 2 + (byteLength - count);
      limitValue = value.substr(0, size);
    } else {
      //当为奇数时
      size = (count - 1) / 2 + (byteLength - count);
      limitValue = value.substr(0, size);
    }
    alert(title + "最大输入" + byteLength + "个字节（相当于" + byteLength/2 + "个汉字）！");
    document.getElementById(id).value = limitValue;
    return;
}

function IncMonth(iStartDate, iNum) {
        iNum = parseInt(iNum, 10);
	var strDate = DateIntToString(iStartDate);
	if (strDate == '')
		return (-1);
	var strYear = strDate.substring(0, 4);
	var strMonth = strDate.substring(4, 6);
	var strDay = strDate.substring(6);

	var iYear = new Number(strYear);
	var iMonth = new Number(strMonth);
	var iDay = new Number(strDay);
	iMonth += iNum;
	while (iMonth > 12)
	{
		iMonth -= 12;
		iYear += 1;
	}
	var strTmp = new String('YYYYMMDD');
	var iDate = 0;
	var iCnt = 0;
	while (true)
	{
		strMonth = new String(iMonth);
		if (strMonth.length < 2)
		  strMonth = '0' + strMonth;
		strDay = new String(iDay);
		if (strDay.length < 2)
			strDay = '0' + strDay;
		strTmp = iYear.toString() + strMonth.toString() + strDay.toString();
		iDate = DateStringToInt(strTmp);
		if (iDate >= 0)
			break;
		iDay -= 1;
		if (iCnt > 3)
		{
			SYS_ErrMsg = "日期加月数计算对应的日期出错";
			return (-1);
		}
		iCnt ++;
	}
	return (iDate);
}

function IncDay(strStartDate, iNum){
	var iDate = DateStringToInt(strStartDate);
	if (iDate < 0){
  	SYS_ErrMsg = "日期数据不正确，正确格式[YYYYMMDD]";
		return (-1);
	}
	iDate = iDate + iNum;
	var strDate = DateIntToString(iDate);
	if (strDate == '')
		return (-1);
  return (strDate);
}

//根据起保时间和终保时间计算按日的短期比例
function CmptShortRateByDay(iStartDate, iEndDate) {
  var intMonth = 0;
  var dlCurrdate = 0;
  var intday = 0.0;
  var tmpdate;

  if (iEndDate < iStartDate)
    return 0;
  while (true) {
  	tmpdate = IncMonth(iStartDate, intMonth) - 1;
  	if (tmpdate == -2)
  	{
  		alert(SYS_ErrMsg);
  		return -1;
  	}
  	if (iEndDate < tmpdate)
  	  break;
    intMonth ++;
  }
  dlCurrdate = IncMonth(iStartDate, parseInt(intMonth/12, 10) * 12) - 1;
  intday = (iEndDate - dlCurrdate) / 365;
  return (parseInt(intMonth/12, 10) + intday) * 100;
}

//计算日期之间的间隔数
function GetDateSpace(iStartDate, iEndDate, dGetType, aFlag) {
  var  intMonth = 0;

  if (iStartDate == 0)
    return 0;

  if (aFlag != 0) { //不满一年算一年
    if (dGetType == 1) { //取年数
      //不足一个月算一个月;
      while (true) {
        tmpdate = IncMonth(iStartDate, intMonth) - 1;
        if (tmpdate == -2) {
          alert(SYS_ErrMsg);
  	  return -1;
        }
        if (iEndDate <= tmpdate)
          break;
        intMonth ++;
      }
      //不足一个年算一年;
      if ((intMonth % 12) == 0)
        return (intMonth / 12); //整年
      else
        return (parseInt(intMonth/12, 10) + 1); //整年;
    } else if (dGetType == 2) { //取月数
      //不足一个月算一个月;
      while (true) {
        tmpdate = IncMonth(iStartDate, intMonth) - 1;
        if (tmpdate == -2) {
          alert(SYS_ErrMsg);
  	  return -1;
        }
        if (iEndDate <= tmpdate)
          break;
        intMonth ++;
      }
      return intMonth;
    } else if (dGetType == 3) { //取星期数
    	var iDays = iEndDate - iStartDate + 1;
    	var iWeeks = iDays/7;
    	var strWeek = new String(iWeeks);
    	var iPos = strWeek.indexOf(".", 0);
    	if (iPos == -1) {
    		return (iWeeks);
    	} else {
    		return (parseInt(strWeek.substring(0, iPos), 10) + parseInt(1, 10));
    	}
    }
  }  else {
    if (dGetType == 1) {
      //满一个月才算一个月;
      while (true) {
        tmpdate = IncMonth(iStartDate, intMonth + 1) - 1;
        if (tmpdate == -2) {
          alert(SYS_ErrMsg);
  	  return -1;
        }
        if (iEndDate < tmpdate)
          break;
        intMonth ++;
      }
      //满一个年才算一年;
      if ((intMonth % 12) == 0)
        return (intMonth / 12); //整年
      else
        return (parseInt(intMonth/12, 10)); //整年
    } else if (dGetType == 2) {
      //满一个月才算一个月;
      while (true) {
        tmpdate = IncMonth(iStartDate, intMonth + 1) - 1;
        if (tmpdate == -2) {
          alert(SYS_ErrMsg);
  	  return -1;
        }
        if (iEndDate < tmpdate)
          break;
        intMonth ++;
      }
      return intMonth;
    } else if (dGetType == 3) { //取星期数，满一个星期才算一个星期
    	var iDays = iEndDate - iStartDate + 1;
    	var iWeeks = iDays/7;
    	var strWeek = new String(iWeeks);
    	var iPos = strWeek.indexOf(".", 0);
    	if (iPos == -1) {
    		return (iWeeks);
    	} else {
    		return (parseInt(strWeek.substring(0, iPos), 10));
    	}
    }
  }
}

function getAge(num, sysDate, aFlag){
    var birthday;
    var intStrLen = num.length;
    if (intStrLen == 18) {
        //check date
        birthday = num.substring(6,14);
    }else{
        birthday = "19"+num.substring(6,12);
    }
    var iStartDate = DateStringToInt(birthday);
    var iEndDate = DateStringToInt(sysDate)-1;
    return GetDateSpace(iStartDate, iEndDate, 1, aFlag);
}

function getAgeDay(num, sysDate){
    var birthday;
    var intStrLen = num.length;
    if (intStrLen == 18) {
        //check date
        birthday = num.substring(6,14);
    }else{
        birthday = "19"+num.substring(6,12);
    }
    var iStartDate = DateStringToInt(birthday);
    var iEndDate = DateStringToInt(sysDate)-1;
    return iEndDate - iStartDate;
}

function checkDate(obj) {
  if (obj.value != '' && !IsDate(obj.value)) {
    obj.value = '';
    obj.focus();
    alert('请输入正确的日期型数据，格式：YYYYMMDD');
    return false;
  }
  return true;
}

/*
*判断日期型是否满足格式yyyy-mm-dd hh:mm(16位)
*/
function IsDateTime(sdate,desc){
    if  (sdate == ""){
        alert(desc + "错误:请输入格式正确的日期\n\r日期格式：'yyyy-mm-dd hh:mm'");
        return false;
    } else{
        //判断长度是否10位
        if  (sdate.length!=16){
            alert(desc + "错误:日期型时间长度必须是16位!");
            return false;
        }
        var r=sdate.match(/^(\d{1,4})\-(\d{1,2})\-(\d{1,2}) (\d{1,2}):(\d{1,2})$/);
        if(r==null){
            alert(desc + "错误:请输入格式正确的日期\n\r日期格式：'yyyy-mm-dd hh:mm'");
            return false;
        }

        if  (r[1] <1900||r[1]>2130){
            alert(desc+"错误: 年份不正确!\n请重新输入!");
            return(false);
        }
        else if(r[2] <0||r[2]>12){
            alert(desc+"错误: 月份不正确!\n请重新输入!");
            return(false);
        }
        else if(r[3] <0||r[3]>31){
            alert(desc+"错误: 日期不正确!\n请重新输入!");
            return(false);
        }
        else if(r[4] <0||r[4]>23){
            alert(desc+"错误: 小时不正确!\n请重新输入!");
            return(false);
        }
        else if(r[5] <0||r[5]>59){
            alert(desc+"错误: 分钟不正确!\n请重新输入!");
            return(false);
        }
        else return(true);
    }
}

function getObj(objid) {
  return document.getElementById(objid);
}

var F_GeneString = '';
var F_GeneFlag = false;

function TrimGene(strValue, iLen) {
  if (F_GeneFlag) {
    F_GeneString = '';
  }
  F_GeneFlag = false;
  strValue = '' + strValue;
  var tmp;
  tmp = strValue.substring(strValue.length-iLen);
  F_GeneString = F_GeneString + tmp;
}

function ReformGene() {
  F_GeneFlag = true;
}

function enabledComp(comp, isEnabled){
  var compId = document.getElementById(comp);
  var compIdList = compId.getElementsByTagName("input");
  for(i=0; i<compIdList.length; i++){
    if(compIdList[i].type == "button" || compIdList[i].type == "checkbox"){
      compIdList[i].disabled = !isEnabled;
    }else{
      compIdList[i].readOnly = !isEnabled;
    }
  }
  compIdList = compId.getElementsByTagName("select");
  for(i=0; i<compIdList.length; i++){
    compIdList[i].disabled = !isEnabled;
  }
  compIdList = compId.getElementsByTagName("textarea");
  for(i=0; i<compIdList.length; i++){
    compIdList[i].disabled = !isEnabled;
  }
}
function compareDouble(f1, f2) {
  var sub = parseFloat(f1) - parseFloat(f2);
  var precision = 0.001;
  if (Math.abs(sub - precision) <= precision ||
      Math.abs(sub + precision) <= precision ) {
    return 0;
  } else if (sub > precision) {
    return 1;
  } else if (sub < precision) {
    return -1;
  }
}

function isIdCardNo(num)
{
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        //error = "输入身份证号码长度不对！";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "错误的身份证号码！.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (IsDate(date8) == false) {
            //error = "身份证中日期信息不正确！.";
            //alert(error);
            return false;
        }
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }
        // check last digit
        //if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "身份证效验位错误!正确为： " + intCheckDigit + ".";
            //alert(error);
        //    return false;
        //}
    }
    else{        //length is 15
        //check date
        var date6 = "19"+idNumber.substring(6,12);
        if (IsDate(date6) == false) {
            //alert("身份证日期信息有误！.");
            return false;
        }
    }
    //alert ("Correct.");
    return true;
}

//校验是否为Array()对象
function checkIsArray(objArray) {
  if (typeof(objArray) != 'object') {
    alert('不适用的数组方法');
    return false;
  }
  var tmpObjFunction = objArray.constructor + '';
  if (tmpObjFunction.match(/function Array\(\)/) == null) {
    alert('不适用的数组方法');
    return false;
  }
  return true;
}
//数组赋值clone方法，普通的clone对dialogArguments的参数不适用
function jsCopyArray(objArray, bCheck) {
  if (bCheck) {
    if (!checkIsArray(objArray)) {
      return objArray;
    }
  }
  var newObjArray = new Array();
  for (var i = 0; i < objArray.length; i ++) {
    newObjArray[i] = objArray[i];
  }
  return newObjArray;
}
//删除对象数组中的id元素对应的某个值，返回新的对象数组
function jsDelArrayEle(objArray, id, idValue) {
  if (!checkIsArray(objArray)) {
    return objArray;
  }
  var jsObjLen = objArray.length;
  var exp = "tmpIdValue=objArray[i]." + id + ";"
  var newObjArray = new Array();
  var newObjLen = 0;
  for (var i = 0; i < jsObjLen; i ++) {
    var tmpIdValue;
    eval(exp);
    if (tmpIdValue != idValue) {
      newObjArray[newObjLen++] = objArray[i];
    }
  }
  return newObjArray;
}

String.prototype.gblen = function() {
    var len = 0;
    for (var i=0; i<this.length; i++) {
        if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
            len += 2;
        } else {
            len ++;
        }
    }
    return len;
}
//全角转换成半角
function QJtoBJ(str)
{
    var result="";
    for (var i = 0; i < str.length; i++)
    {
	if (str.charCodeAt(i)==12288)
        {
            result+= String.fromCharCode(str.charCodeAt(i)-12256);
            continue;
        }
        if (str.charCodeAt(i)>65280 && str.charCodeAt(i)<65375)
            result+= String.fromCharCode(str.charCodeAt(i)-65248);
        else result+= String.fromCharCode(str.charCodeAt(i));
    }
    return result;
}
function isMobile(str) {
  if (str == null || str == '') {
    return false;
  }
  var patrn = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))[0-9]{8})$/;
  var retBool = patrn.test(str);
  if (!retBool) {
    return false;
  }
  return true;
}
Boolean.parse = function (str) {
  if (str != null) {
    var strttt = new String(str).toLowerCase();
    return strttt == "true";
  } else {
    return false;
  }
}

