/* 
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
var xmlHttpRequest;
var ajaxUrl;
function crateXmlHttpRequest() {
    if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if
    (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
}

function setUrl(ajaxPath) {
    ajaxUrl = ajaxPath
    if (arguments.length > setUrl.length) {
        ajaxUrl = ajaxUrl + "?";
        for (var index = setUrl.length; index < arguments.length; index = index + 2) {
            if (index == setUrl.length) {
                ajaxUrl = ajaxUrl + arguments[index] + "=" + encodeURIComponent(arguments[index + 1]);
            }
            else {
                ajaxUrl = ajaxUrl + "&" + arguments[index] + "=" + encodeURIComponent(arguments[index + 1]);
            }
        }
    }
}

function doAjax(funName) {
    xmlHttpRequest = crateXmlHttpRequest();
    xmlHttpRequest.onreadystatechange = window[funName];
    xmlHttpRequest.open("POST", ajaxUrl, true);
    xmlHttpRequest.send(null);
}

function doAjaxQuick(funName, ajaxPath) {
    ajaxUrl = ajaxPath;
    if (arguments.length > doAjaxQuick.length) {
        ajaxUrl = ajaxUrl + "?";
        for (var index = doAjaxQuick.length; index < arguments.length; index = index + 2) {
            if (index == doAjaxQuick.length) {
                ajaxUrl = ajaxUrl + arguments[index] + "=" + encodeURIComponent(arguments[index + 1]);
            }
            else {
                ajaxUrl = ajaxUrl + "&" + arguments[index] + "=" + encodeURIComponent(arguments[index + 1]);
            }
        }
    }
    doAjax(funName);
}
function getAjaxText() {
    return xmlHttpRequest.responseText;
}

function isSussecc() {
    if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
        return true;
    }
    else {
        return false;
    }
}

function getElementById(elementId) {
    var element = document.getElementById(elementId);
    return element;
}

function EncodeUtf8(str) {
    var utfStr = encodeURIComponent(str);
    return utfStr;
}
function DecodeUtf8(str) {
    var utfStr = decodeURIComponent(str);
    return utfStr;
}
function Request(strName) {
    var strHref = window.location.href;
    var intPos = strHref.indexOf("?");
    var strRight = strHref.substr(intPos + 1);

    var arrTmp = strRight.split("&");
    for (var i = 0; i < arrTmp.length; i++) {
        var arrTemp = arrTmp[i].split("=");

        if (arrTemp[0].toUpperCase() == strName.toUpperCase())
            return decodeURIComponent(arrTemp[1]);
    }
    return "";
}
function isIdCardNo(num) {
    num = num.toUpperCase();

    //身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。   

    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
        //alert('输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X。');
        return false;
    }

    //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
    //下面分别分析出生日期和校验位 
    var len, re;
    len = num.length;

    if (len == 15) {
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);

        //检查生日日期是否正确 

        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);

        var bGoodDay;

        bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));

        if (!bGoodDay) {
            //alert('输入的身份证号里出生日期不对！');
            return false;
        } else {
            //将15位身份证转成18位 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 

            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);

            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');

            var nTemp = 0, i;

            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);

            for (i = 0; i < 17; i++) {

                nTemp += num.substr(i, 1) * arrInt[i];

            }

            num += arrCh[nTemp % 11];

            return num;

        }

    }

    if (len == 18) {

        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);

        var arrSplit = num.match(re);



        //检查生日日期是否正确 

        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);

        var bGoodDay;

        bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));

        if (!bGoodDay) {

            //alert(dtmBirth.getYear());

            //alert(arrSplit[2]);

            //alert('输入的身份证号里出生日期不对！');
            return false;
        }
        else {
            //检验18位身份证的校验码是否正确。 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            var valnum;
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            for (i = 0; i < 17; i++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            valnum = arrCh[nTemp % 11];
            if (valnum != num.substr(17, 1)) {
                //alert('18位身份证的校验码不正确！应该为：' + valnum);
                return false;
            }
            return num;
        }
    }
    return false;
}
/*
function birthdate(value) {
    var v;
    if (value !== "" && value.length == 18) {
        v = value.substr(6, 4) + "-" + value.substr(10, 2) + "-" + value.substr(12, 2);
    }
    else if (value !== "" && value.length == 15) {
        v = "19" + value.substr(6, 2) + "-" + value.substr(8, 2) + "-" + value.substr(10, 2);
        form.bir.readOnly = true;
    }
    return v;
}

function checkId(pId) {
    //检查身份证号码 Go_Rush(阿舜) from http://ashun.cnblogs.com

    var arrVerifyCode = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2];
    var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    var Checker = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1];

    if (pId.length != 15 && pId.length != 18) return "身份证号共有 15 码或18位";

    var Ai = pId.length == 18 ? pId.substring(0, 17) : pId.slice(0, 6) + "19" + pId.slice(6, 16);

    if (!/^\d+$/.test(Ai)) return "身份证除最后一位外，必须为数字！";

    var yyyy = Ai.slice(6, 10), mm = Ai.slice(10, 12) - 1, dd = Ai.slice(12, 14);

    var d = new Date(yyyy, mm, dd), now = new Date();
    var year = d.getFullYear(), mon = d.getMonth(), day = d.getDate();

    if (year != yyyy || mon != mm || day != dd || d > now || year < 1940) return "身份证输入错误！";

    for (var i = 0, ret = 0; i < 17; i++) ret += Ai.charAt(i) * Wi[i];
    Ai += arrVerifyCode[ret %= 11];

    return pId.length == 18 && pId != Ai ? "身份证输入错误！" : Ai;
}
function getInfo(id) {
    var arr = [null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "***", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外"];
    id = checkId(id);
    if (isNaN(id)) return "错误的身份证号码";
    var id = String(id), prov = arr[id.slice(0, 2)], sex = id.slice(14, 17) % 2 ? "男" : "女";
    var birthday = (new Date(id.slice(6, 10), id.slice(10, 12) - 1, id.slice(12, 14))).toLocaleDateString();
    return [prov, birthday, sex];
}
*/