﻿// JScript 文件
//表单验证公用Js文件
//2008-06-04
//usrurl:ajax调用后台页面地址
function ValidateExist(usrurl)
      {
         //定义一个bool型变量
         var chk=true;
         if (chk){
            //获取从验证页面中异步传输过来的值
            var sta=GetResponseText(usrurl);
                if(sta==1){
                   //验证通过
                    chk=true;   
                    //用于显示验证是否通过的详细信息加上刚刚所定义正确时的样式
                    
                }else if(sta==0){
                    //验证未通过
                    chk=false;
                    //用于显示验证是否通过的详细信息加上刚刚所定义错误时的样式
                }
        }else{
            return false;
        }
        return chk;
      }
      function GetResponseText(url)
      {
          //定义一个http_request变量
           var http_request;
            if (window.XMLHttpRequest) {
                    //对于Mozilla、Netscape、Safari等浏览器，创建XMLHttpRequest对象
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType) {
                            //如果服务器响应的header不是text/xml，可以调用其它方法修改该header
                            http_request.overrideMimeType('text/xml');
                    }
            } else if (window.ActiveXObject) {
                    // 对于Internet Explorer浏览器，创建XMLHttpRequest
                    try {
                            http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {
                            try {
                                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                            } catch (e) {}
                    }
            }
            //打开验证页面的地址
           http_request.open('GET', url, false);
           http_request.send(null);
            var  requestdoc="";
               if (http_request.readyState == 4)
        　　     {
            　　　    // 收到完整的服务器响应
                　　　    if (http_request.status == 200) {
                    　　        //HTTP服务器响应的值OK
                        　　　　    requestdoc = http_request.responseText;
                    }
            　　　       else {
        　　　　      requestdoc = "error";
    　　　       }
　　      }
        return requestdoc;
      }
//是否为空
function IsEmpty(txtValue)
{
	var exp = /^\s*$/;
	return (exp.test(txtValue));
}

//是否为整数

function IsInteger(txtValue){
	var exp, op;
	op = txtValue;
    exp = /^\s*[-\+]?\d+\s*$/;
    if (op.match(exp) == null){ 
        return false;
    }else{
		return true;
    }
}

//是否是中文

function IsCharacter(txtValue)
{
   var exp;
   exp=new RegExp("[\u4e00-\u9fa5]");
   if(txtValue.match(exp)==null) return false;
   else return true;
}

//Checkbox 至少一个选中--gaochao--0821--
function chkCheckBoxChs(objNam)
{ 
    var obj = document.getElementById(objNam); 
    var objYN=false;;
    var rbsl= obj.getElementsByTagName("INPUT");
    for(var i = 0;i<rbsl.length;i++)
    {
        if (rbsl[i].checked==true) 
        {   
            objYN = true;
            break;
        }
    }
    return objYN;
}

//电话号码是否为正确格式

function IsTelephone(tsTelValue)
{
	var i,j,strTemp,len;
	len=tsTelValue.length;
	if(len<8 || len>32)	return false;
	strTemp="0123456789-()# ";
	for (i=0;i<len;i++){
		j=strTemp.indexOf(tsTelValue.charAt(i));
		if (j==-1) return false;
	}
	return true;
}

//手机号是否为正确格式
function IsMobile(tsMobilValue)
{
	var MobileRe=/^(013|13|8613|015|15|8615)\d{9}$/;
	return MobileRe.test(tsMobilValue);
}

//电子邮件验证
function IsEMail(txtEMail)
{
	if (txtEMail.length > 150)
	{
		return false;
	}
	if(txtEMail == "")
	{ 
	    return true;
	}
	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|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"
	var re = new RegExp(regu);
	if (txtEMail.match(re) !=null)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//浮点型校验

function IsDouble(tsValue){
	var exp, op;
	op = tsValue;
	exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + "." + "(\\d+))?\\s*$");
    if(op.match(exp)==null) return false;
    else return true;
}

//是否为数字

function IsNumber(txtValue){
	var exp, op;
	op = txtValue;
    exp = /^((\d{1,3}(,\d{3})*?)|\d+)(\.\d{1,2})?$/;
    if (op.match(exp) == null){ 
        return false;
    }else{
		return true;
    }
}

//时间格式判断

function IsTime(str)
{
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null) { return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
return false
}
return true;
}

//字符串转化成日期
function strToDate(str)
{
  var val=Date.parse(str);
  var newDate=new Date(val);
  return newDate;
} 
//比较日期大小
function CompareDate(d1,d2)
{
   return ((new Date(d1.replace(/-/g,"\/"))) > (new Date(d2.replace(/-/g,"\/"))));
}

//检验英文名称
function CheckName(passenernames)
{
    var regnameen = /^[a-zA-Z]{1,20}[\/]{1}[a-zA-Z]{1,20}[0-9]{0,8}$/;//英文名
    if(!regnameen.exec(passenernames))
    {
        alert("英文名称格式不正确！");
        return false;
    }
    return true;
}

//验证邮政编码
 function IsPostalCode(you)
  {  
    var exp, op;
	op = you;
	exp = new RegExp("^[0-9]{6}$");
    if(op.match(exp)==null) return false;
    else return true;
  }

//验证身份证格式
function shenfen(str)
{

        var aCity={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 iSum=0 
        var info="" 
        if(!/^\d{17}(\d|x)$/i.test(str) && !/^\d{15}/i.test(str))
        {
        
            alert("身份证位数不对！");
            return false; 
        }
        str=str.replace(/x$/i,"a"); 
        if(aCity[parseInt(str.substr(0,2))]==null)
        {
            alert("Error:非法地区");
            return false; 
        }
        var sBirthday;
        if(str.length==18)
        {
            sBirthday=str.substr(6,4)+"-"+Number(str.substr(10,2))+"-"+Number(str.substr(12,2)); 
            var d=new Date(sBirthday.replace(/-/g,"/")) 
            if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
            {
                alert("Error:非法生日！"); 
                return false;
            }
        }
        else if(str.length==15)
        {
            sBirthday="19"+str.substr(6,2)+"-"+Number(str.substr(8,2))+"-"+Number(str.substr(10,2)); 
            var d=new Date(sBirthday.replace(/-/g,"/")) 
            if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
            {
                alert("Error:非法生日！"); 
                return false;
            }
        } 
         else
        {
           alert("省份证位数为15位或者18位!");
           return false;
        } 
        return true;
}


//--身份证号码验证-支持新的带x身份证
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 (checkDate(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 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("身份证日期信息有误！.");
            return false;
        }
    }
    //alert ("Correct.");
    return true;
}

function checkDate(date)
{
    return true;
}


