function checkCard(controlName){
  var value = trim(controlName.value);
  if (value == ""){
    alert("请输入身份证号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  if ( value.length != 18 ){
    alert("请输入18位身份证号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  var str=/^(\d{8}(01|02|03|04|05|06|07|08|09|10|11|12)(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)\d{3}|\d{6}(19|20)\d{2}(01|02|03|04|05|06|07|08|09|10|11|12)(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)\d{3}(\d|X|x))$/
  if((value.search(str))==-1){
    window.alert("请输入正确的身份证号码!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  var wh = value.substr(17,1);
  if (wh.toUpperCase() != sfzwh(value)){
    alert("请输入正确身份证号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  return true;
}


function isOver16(controlName){
  var isOver = false;
  var num = controlName.value;
  var birthYear = num.substr(6,4);
  var currentYear = new Date();
  if ((currentYear.getFullYear() - birthYear) <=16){
        isOver =  true;
  }
  return isOver;
}
function validateEmail(controlName){
  var value = trim(controlName.value);
  if (value == "") return true;
  var thePat = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
  var boolflag;
  if(thePat.test(value)){
    boolflag= true;
  }else{
    alert("电子邮箱填写有误!");
    controlName.focus();
    boolflag= false;
  }
  return boolflag;
}

//校验验证码
function validateRandom(controlName){
  var value = controlName.value;
  if (trim(value) == ""){
    alert("请输入验证码!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  if (trim(value).length != 4){
    alert("输入的验证码位数不够!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  var thePat = /^[0-9]{4}$/;
  if (!thePat.test(value)){
    alert("请输入数字!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  return true;
}

//校验互联网申请号 16
function validateSqh(controlName){
  var value = controlName.value;
  if (trim(value) == ""){
    alert("请输入申请号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  if (!(trim(value).length == 16)){
    alert("输入的申请号位数不够!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  var thePat = /^[0-9]{16}$/;
  if (!thePat.test(value)){
    alert("请输入数字!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  return true;
}
//校验受理号 22
function validateSlh(controlName){
  var value = controlName.value;
  if (trim(value) == ""){
    alert("请输入受理号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  if (!(trim(value).length == 22 )){
    alert("输入的受理号位数不够!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  var thePat = /^[0-9]{22}$/;
  if (!thePat.test(value)){
    alert("请输入数字!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  return true;
}

//校验户政业务受理号
function validateHzSlh(controlName){
  var value = controlName.value;
  if (trim(value) == ""){
    alert("请输入申请号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }

  var thePat = /^[a-z,A-Z,0-9]+$/;
  if (!thePat.test(value)){
    alert("请输入正确的受理号!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  return true;
}
//判断是否为数字
 function isNumber(s)
        {
            var tempChar;
            strRef = "1234567890";
            for (i = 0; i < s.length; i++)
            {
                tempChar = s.substring(i, i + 1);
                if (strRef.indexOf(tempChar, 0) == -1)
                {
                    return false;
                }
            }
            return true;
        }
//根据行政区划获得图像号的第一个字母
function getFirstTxh(xzqh)
{
var firsttxh="";
switch(xzqh)
{
case "440100":firsttxh="A";break;
case "440200":firsttxh="F";break;
case "440300":firsttxh="B";break;
case "440400":firsttxh="C";break;
case "440500":firsttxh="D";break;
case "440600":firsttxh="E";break;
case "440700":firsttxh="J";break;
case "440800":firsttxh="G";break;
case "440900":firsttxh="K";break;
case "445100":firsttxh="U";break;
case "445200":firsttxh="V";break;
case "441200":firsttxh="H";break;
case "441300":firsttxh="L";break;
case "441400":firsttxh="M";break;
case "441500":firsttxh="N";break;
case "441600":firsttxh="P";break;
case "441700":firsttxh="Q";break;
case "441800":firsttxh="R";break;
case "441900":firsttxh="S";break;
case "442000":firsttxh="T";break;
case "445300":firsttxh="W";break;
}
return firsttxh;
}
//校验日期合法性
function isDate(v)
{
v='20'+v;

var r = v.match(/^(\d{1,4})(|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
return false;
var d = new Date(r[1], r[3]-1,r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
//验证图像号
function validateTxh(controlName,dqm){
    // 缺少广州、深圳的图像验证规则，等待
    var value =trim(controlName.value);
    var xzqh=trim(dqm.value);
    //alert(xzqh);

    if(value.length < 1) {
       alert("请输入相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
    }


     var firstTxh=getFirstTxh(xzqh);

    // alert(firstTxh);


     if(xzqh=="440100")
     {
       if(value.length!=15){

       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
       if(value.substr(0,1)!=firstTxh && !isNumber(value)){

       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
       	}
        if(isNumber(value) && !isDate(value.substr(5,6)))
        {
         alert("请输入正确的相片回执图像号!");
         controlName.focus();
         setbordercolor(controlName);
         return false;
        }
        if(!isNumber(value) && !isDate(value.substr(3,6))&&!isDate(value.substr(6,6)))
        {
         alert("请输入正确的相片回执图像号!");
         controlName.focus();
         setbordercolor(controlName);
         return false;
        }
     }
     else if(xzqh=="440300"||xzqh=="440400")
     {
       if(value.length!=15 && value.length!=11){

       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
      if(value.length==15)
      {
      if(value.substr(0,1)!=firstTxh)
      {
       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
      if(!isNumber(value.substr(3)))
      {
       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
       if(!isDate(value.substr(3,6))&&!isDate(value.substr(6,6)))
        {
         alert("请输入正确的相片回执图像号!");
         controlName.focus();
         setbordercolor(controlName);
         return false;
        }
      }

      if(value.length==11)
      {
      var regu = /^([A-Z]{1})([0-9A-Z]{1})([0-9]{9})+$/;
      var re = new RegExp(regu);
      if (!re.test(value))
      {
       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
      }
     }
     else
     {//&&value.substr(0,1)=firstTxh&&isNumber(value.substr(3))
      if(value.length!=15){

       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
       if(value.substr(0,1)!=firstTxh){

       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
      }
       	if(!isNumber(value.substr(3)))
       	{
         alert("请输入正确的相片回执图像号!");
         controlName.focus();
         setbordercolor(controlName);
         return false;
       	}
        if(!isDate(value.substr(3,6))&&!isDate(value.substr(6,6)))
        {
         alert("请输入正确的相片回执图像号!");
         controlName.focus();
         setbordercolor(controlName);
         return false;
        }
     }
return true;

}
    /*
    var regu = /^([A-Z]{1})([0-9]{12})+$/;
    var re = new RegExp(regu);
    if (!re.test(value)) {
       alert("请输入正确的相片回执图像号!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
    }
    var txhFirst = value.substr(0,1);
    txhFirst = txhFirst.toUpperCase();
    if (txhArray != null){
      if (txhArray[frm.dqm.selectedIndex] == ""){
        return true;
      }
      if (txhArray[frm.dqm.selectedIndex] != txhFirst){
        alert("相片回执图像号与所属地市不符!");
        controlName.focus();
        setbordercolor(controlName);
        return false;
      }

    }
    */


//验证电话号码

function validateLxdh(controlName){
    var value = trim(controlName.value);
    if(value.length < 1) {
       alert("请输入联系电话!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
    }
    var regu = "^[0-9-]+$";
    var re = new RegExp(regu);
    if (!re.test(value)) {
       alert("联系电话只能由“0～9”的数字和“-”组成!");
       controlName.focus();
       setbordercolor(controlName);
       return false;
    }
    return true;
}
//验证姓名
function validateXm(controlName){
  var value = trim(controlName.value);
  if(value == ""){
    alert("请输入姓名!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  var regu = /^[\u4e00-\u9fa5]+[\u00b7]?[\u4e00-\u9fa5]+$/;
  if(!regu.test(value)){
    alert("请正确输入姓名!");
    controlName.focus();
    setbordercolor(controlName);
    return false;
  }
  return true;
}
function trim(s){
 	return rtrim(ltrim(s));
}
function ltrim(s){
 	return s.replace( /^\s*/, "");
}
function rtrim(s){
 	return s.replace( /\s*$/, "");
}
function getHttpRequest(){
  if (window.ActiveXObject) { // IE浏览器
     try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
   }else if(window.XMLHttpRequest) { //Mozilla 浏览器
       http_request = new XMLHttpRequest();
       if (http_request.overrideMimeType) {//设置MiME类别
           http_request.overrideMimeType('text/xml');
       }
   }else if (!http_request) { // 异常，创建对象实例失败
       window.alert("不能创建XMLHttpRequest对象实例.");
   }
   return http_request;
}


//回调函数
var REMOTE_CALLBACK = null ;
var http_request = false;

//插入数据 向服务器发起XMLHTTP请求。

 function sendRequest(url,callBack) {//初始化、指定处理函数、发送请求的函数
     REMOTE_CALLBACK = callBack;
     http_request = getHttpRequest();
     http_request.onreadystatechange = remoteCallStateChanged;
     // 确定发送请求的方式和URL以及是否同步执行下段代码
     http_request.open("GET", url, true);
     http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     http_request.send(null);
 }
function remoteCallStateChanged(){
   if (http_request.readyState == 4){
      if (http_request.status ==200){
        var outMessage = http_request.responseText;
        if(outMessage == "access"){
          if (REMOTE_CALLBACK != null){
            REMOTE_CALLBACK();
          }
        }else{
          alert(outMessage);
          document.getElementById("rand").focus();
          changeRand();
        }
      }
   }
}



//查询验证 向服务器发起XMLHTTP请求。
var http_url = "";
var search_remote_param = ""
function sendSearch(url,queryURL,param) {//初始化、指定处理函数、发送请求的函数
     http_request = getHttpRequest();
     http_url = queryURL;
     search_remote_param = param;
     http_request.onreadystatechange = remoteCallStateChangedForSearch;
     // 确定发送请求的方式和URL以及是否同步执行下段代码
     http_request.open("GET", url, true);
     http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     http_request.send(null);
 }

function remoteCallStateChangedForSearch(){
  if (http_request.readyState == 4){
    if (http_request.status ==200){
      changeRand();
      var outMessage = http_request.responseText;
      if(outMessage == "access"){
        searchInfoBySlbhOrSfz();
      }else{
        alert(outMessage);
        document.getElementById("rand").focus();
      }
    }
   }
}

// 查询数据
function searchInfoBySlbhOrSfz(){
     http_request = getHttpRequest();
     http_request.onreadystatechange = callStateChanged;
     // 确定发送请求的方式和URL以及是否同步执行下段代码
     http_request.open("POST", encodeURI(http_url), true);
     http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     http_request.send(encodeURI(search_remote_param));
}
function callStateChanged(){
  if (http_request.readyState == 4){
    if (http_request.status ==200){
      var xml = http_request.responseText;
      updateTableData(xml);
    }
  }
}


function callStateChangedForXzqh(){
  if (http_request.readyState == 4){
      if (http_request.status ==200){
        var xml = http_request.responseText;
        var doc = new ActiveXObject("Msxml2.DOMDocument.3.0");
        doc.loadXML(xml);
        var nodes = doc.getElementsByTagName("Data");
        document.getElementById("xzqh").length = 1;
        for(i = 0;i < nodes.length;i++){
          var value = nodes[i].selectSingleNode("dictvalue").text;
          var code = nodes[i].selectSingleNode("dictcode").text;
          var opt = new Option(value,code);
          document.getElementById("xzqh").add(opt);
        }
      }
   }
}


function changeRand(){
  var context = document.getElementById("path").value;
  document.getElementById("randPic").setAttribute("src",null);
  document.getElementById("randPic").setAttribute("src",context+"/generateRandom.do");
  document.getElementById("rand").value = "";
}

function getQueryModule(){
  var elts = document.getElementsByName("queryModel");
  for (i=0;i < elts.length ;i++ ) {
    if (elts[i].checked){
      return elts[i].value;
    }
  }
}

function setbordercolor(inputname){
  inputname.style.borderColor =  'red';
}


function directToHzyw(){
  window.open("queryHzyw.do","_self");
}
function openDetail(slh){
  var context = document.getElementById("path").value;
  window.showModalDialog(context+"/queryDetail.do?slh="+slh+"&sj="+new Date(),
     window, "dialogHeight: 470px; dialogWidth: 710px; edge: Sunken; center: Yes; help: No; resizable: No; status: No;");
}
function openHzywDetail(slh){
  var context = document.getElementById("path").value;
  window.showModalDialog(context+"/queryHzywDetail.do?slh="+slh+"&sj="+new Date(),
   window, "dialogHeight: 430px; dialogWidth: 700px; edge: Sunken; center: Yes; help: No; resizable: No; status: No;");
}

function clearHzSearchCon(model){
  if (model == "slbh"){
    frm.sfzxm.value = "";
    frm.gmsfhm.value = "";
    frm.sqhxm.focus();
  }
  if (model == "gmsfhm"){
    frm.hlwslh.value = "";
    frm.sqhxm.value = "";
    frm.sfzxm.focus();
  }
}
function clearSfzSearchCon(searchModel){
  if (searchModel == "hlwsqh"){
    document.getElementById("slh").value = "";
    document.getElementById("slhxm").value = "";
    document.getElementById("gmsfhm").value = "";
    document.getElementById("sfzxm").value = "";
    document.getElementById("sqhxm").focus();
  }
  if (searchModel == "slh"){
    document.getElementById("hlwslh").value = "";
    document.getElementById("sqhxm").value = "";
    document.getElementById("gmsfhm").value = "";
    document.getElementById("sfzxm").value = "";
    document.getElementById("slhxm").focus();
  }
  if (searchModel == "gmsfhm"){
    document.getElementById("hlwslh").value = "";
    document.getElementById("sqhxm").value = "";
    document.getElementById("slh").value = "";
    document.getElementById("slhxm").value = "";
    document.getElementById("sfzxm").focus();
  }
}

function updateTableData(xmlText){

  var xmlDoc = getXmldoc(xmlText);
  if (!xmlDoc) return;
  var datas=xmlDoc.getElementsByTagName("Data");
  var len = datas.length;
  var tab = document.getElementById("searchResult");
  setTableTitle(datas);
  while(tab.childNodes.length > 0) {
    tab.removeChild(tab.childNodes[0]);
  }
  for (var i = 0; i < len; i++) {
    row = document.createElement("tr");
    row.setAttribute("height","22");
    for (var j=0 ;j<datas[i].childNodes.length;j++ ){
      if (datas[i].childNodes[j].nodeName == "slbz") continue;
      if (datas[i].childNodes[j].firstChild){
        row.appendChild(createCellWithText(datas[i].childNodes[j].nodeName,datas[i].childNodes[j].firstChild.nodeValue));
      }else{
        row.appendChild(createCellWithText("",""));
      }
    }
    tab.appendChild(row);
    row.setAttribute("class","tableFont");
    row.setAttribute("bgColor","#f9fcfe");
  }
  var nodata = xmlDoc.getElementsByTagName("noData");
  if (nodata.length > 0){
    alert("按此条件没有查询出结果!");
  }
}
function createCellWithText(key,text){
    var cell= document.createElement("td");

    if (text == ""){
      text = " ";
    }
    cell.appendChild(document.createTextNode(text));
    return cell;
}


function getXmldoc(xmlText){
  var doc ;
  if(typeof(window.ActiveXObject) != 'undefined'){
      try{
         doc =new ActiveXObject("Msxml2.DOMDocument.3.0");
         doc.async=false;
         doc.loadXML(xmlText);
      }catch(e){
      }
   }else if(document.implementation && document.implementation.createDocument){
      try {
        var oParser = new DOMParser();
        doc = oParser.parseFromString(xmlText,"text/xml");
      }catch(e)  {
      }
   } else{
     doc = null;
   }
  return doc;
}

function setTableTitle(datas){
  if (!isSetDisply()) return;
  var searchModel = getQueryModule();
  if (searchModel == "hlwsqh"){
    setSqhOrSlhDisplay("sqh");
    return;
  }else if (searchModel == "slh"){
    setSqhOrSlhDisplay("slh");
    return;
  }else if (searchModel == "gmsfhm"){
    var slbz = datas[0].selectSingleNode("slbz").text;
    if (slbz == "0"){
      setSqhOrSlhDisplay("sqh");
      return;
    }else if(slbz == "1"){
      setSqhOrSlhDisplay("slh");
      return;
    }
  }
}

function setSqhOrSlhDisplay(code){
  if (code == "sqh"){
    document.getElementById("displaySqh").style.display = "block";
    document.getElementById("displaySlh").style.display = "none";
  }
  if(code == "slh"){
    document.getElementById("displaySqh").style.display = "none";
    document.getElementById("displaySlh").style.display = "block";
  }
}
function isSetDisply(){
  if (document.getElementById("displaySqh") && document.getElementById("displaySlh")){
    return true;
  }
  return false;
}

function sfzwh(code){
 var retStr = '0';
 var bodycode = new Array(19);
 var codeev = new Array(19);
 var i, sum=0;
 var keycode, keycode1;
 var codevalue = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
 var  weight = [0, 1, 2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7];

 try
 {
    for (var i = 0; i < 19; i++){
       bodycode[i] = 0;
       codeev[i] = 0;
    }
    for (var i = 2; i <= 18; i++){
       codeev[i] = code.charCodeAt(18 - i);
       bodycode[i] = (codeev[i] - 0x30);
    }
    for (sum = 0, i = 2; i <= 18; i++){
       sum += bodycode[i] * weight[i];
    }
    keycode = (sum % 11);
    if (keycode < 0 || keycode > 11) return  - 1;
    keycode1 = codevalue[keycode];
    return keycode1;

 }catch (e)
 {
    alert("error"+e);
 }
 }

