//文本检测(单控件版)
function checkS(objTemp,strTemp,strText,action)
{
  var bool = true;
  var actions = action.split('|');
  for(var i = 0;i < actions.length;i++)
  {
    if(actions[i] == "checknull")
    {
      bool = checkNull(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checkpintnumber")
    {
      bool = checkPositiveIntNumber(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checkintnumber")
    {
      bool = checkIntNumber(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checknumber")
    {
      bool = checkNumber(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checkpnumber")
    {
      bool = checkPositiveNumber(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checkltzpnumber")
    {
      bool = checkPositiveNumberV1(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checkdate")
    {
      bool = checkDate(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    if(actions[i] == "checkemail")
    {
      bool = checkEmail(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
    //证件类型(特殊处理)
    if(actions[i] == "checkidentity")
    {
      bool = checkIdCard(objTemp,strTemp,strText);//checkIdentity(objTemp,strTemp,strText);
      if(bool == false)
        return bool;
    }
  }
  return bool;
}

//检测是否为空值
function checkNull(objTemp,strTemp,strText)
{
  var temp = strTemp;
  temp = temp.trim();
  if(temp == "")
  {
    alert(strText + "不能为空");
    objTemp.focus();
    return false;
  }
  return true;
}

//检测是否为整数
function checkIntNumber(objTemp,strTemp,strText)
{

  if(strTemp == "") return true;//不检查为空的情况
  var result=strTemp.match(/^(-|\+)?\d+$/);
  if(result == null)
  {
    alert(strText + "必须是整数");
    objTemp.focus();
    return false;
  }
  return true;
}

//检测是否为正整数
function checkPositiveIntNumber(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  var result=strTemp.match(/^\d+$/);
  if(result == null)
  {
    alert(strText + "必须是正整数");
    objTemp.focus();
    return false;
  }
  return true;
}

//检测是否为数字
function checkNumber(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  if(isNaN(strTemp))
  {
    alert(strText + "必须是数字");
    objTemp.focus();
    return false;
  }
  return true;
}

//检测是否为正数(大于等于0的数字)
function checkPositiveNumber(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  if(isNaN(strTemp) || parseFloat(strTemp) < 0)
  {
    alert(strText + "必须是正数");
    objTemp.focus();
    return false;
  }
  return true;
}

//检测是否为正数(大于0的数字)
function checkPositiveNumberV1(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  if(isNaN(strTemp) || parseFloat(strTemp) <= 0)
  {
    alert(strText + "必须是大于0的正数");
    objTemp.focus();
    return false;
  }
  return true;
}

//检测是否为日期
function checkDate(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  if(isDateString(strTemp) == false)
  {
    alert(strText + "的日期格式错误或不是一个合法的日期")
    objTemp.focus();
    return false;
  }
  return true;
}

//检测邮箱格式
function checkEmail(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  if(!isEmail(strTemp,strText))
  {
    objTemp.focus();
    return false;
  }
  return true;
}

//检测身份证
function checkIdCard(objTemp,strTemp,strText)
{
	var result = isIdCard(strTemp)
	if(result != "yes")
	{
	  objTemp.focus();
	  alert(strText + "不正确！" + result);
	  return false;
	}
	return true;
}

//检测证件类型(特殊处理)//to do:处理未验证的部分
function checkIdentity(objTemp,strTemp,strText)
{
  if(strTemp == "") return true;//不检查为空的情况
  var lstObj = document.getElementsByName(objTemp.name.replace("txt","lst"));
  switch(lstObj[0].value)
  {
    case "ZJD":
      alert("未能验正港澳台身份证！");
      return false;
      break;
    case "ZJE":
      alert("未能验正学生证！");
      return false;
      break;
    case "ZJA":
      var result = isIdCard(strTemp)
      if(result != "yes")
      {
        objTemp.focus();
        alert(strText + "不正确！" + result);
        return false;
      }
      break;
    case "ZJB":
      alert("未能验正军官证！");
      return false;
      break;
    case "ZJC":
      alert("未能验正港澳台护照！");
      return false;
      break;
    case "ZJO":
      return true;
      break;
  }
  return true;
}
/******************************以下为加强功能函数******************************/
//去除字符串的首尾的空格
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, "");
}

//取数字的小数位数
Number.prototype.toRound = function(digits){
if (arguments.length == 0)
digits = 0;
if (isNaN(digits = parseInt(digits)))
digits = 0;
var factor = Math.pow(10, digits);
var res = Math.round(factor * this).toString();
return res.substr(0, res.length - digits) + '.' + res.substr(res.length - digits);
}

/******************************以下为适配函数******************************/

//判断日期函数
function isDateString(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]);
  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 checkTextLength(strTemp,textName,textLength)
{
  var str = strTemp;
  num=str.length;
  var arr=str.match(/[^\\\\\\\\\\\\\\\\x00-\\\\\\\\\\\\\\\\x80]/ig);
  if(arr!=null)num+=arr.length;
  if(parseInt(num) > parseInt(textLength))
  {
    alert(textName + "的长度不能大于" + textLength);
    return false;
  }
  else
    return true;
}

/**
 * email正确性检测。
 * @param s var:地址。
 * @param strText var:显示文本。
 * @return var:布尔值。
 */
function isEmail(s,strText)
{
  // Writen by david, we can delete the before code
  if (s.length > 45)
  {
    window.alert(strText + "地址长度不能超过45位!");
    return false;
  }
  var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int)$"
  var re = new RegExp(regu);
  if (s.search(re) != -1)
    return true;
  else {window.alert("请输入有效合法的" + strText + "地址 ！");return false;}
}

//身份证验证
function isIdCard(idcard)
{
  var Errors=new Array(
  "yes",
  "身份证号码位数不对!",
  "身份证号码出生日期超出范围或含有非法字符!",
  "身份证号码校验错误!",
  "身份证地区非法!");
  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("");
  //地区检验
  if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
  //身份号码位数及格式检验
  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 Errors[0];
    else return Errors[2];
    break;
    case 18:
    //18位身份号码检测
    //出生日期的合法性检查
    //闰年月日:((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]))
    //平年月日:((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]))
    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 Errors[0]; //检测ID的校验位
      else return Errors[3];
    }
    else return Errors[2];
    break;
    default:
    return Errors[1];
    break;
  }
}

//检查两个字段内容是否相同
function checkEqual(strFirst,strSecond,strMsg)
{
   if (strFirst==strSecond){
      return true;
   }
   else{
      alert(strMsg);
      return false;
   }
}

// 验证电话号码
function isTel(str){
	var reg=/^([0-9]|[\-])+$/g;
	if(str.length<7 || str.length>18) {
		return false;
	}
	else{
	 return reg.exec(str);
	}
}


// 只能输入英文和数字
function onlyEngAndNum() {
	if(!((event.keyCode>=65&&event.keyCode<=90)
	||(event.keyCode>=48&&event.keyCode<=57)
	||(event.keyCode>=96&&event.keyCode<=105))) {
		event.returnValue = false;
	}
}

// 只能是数字
function isDigit(cCheck) { return (('0'<=cCheck) && (cCheck<='9')); }

// 只能是字母
function isAlpha(cCheck) { return ((('a'<=cCheck) && (cCheck<='z')) || (('A'<=cCheck) && (cCheck<='Z'))) } 
