var yyyy;
var mm;
var dd;
var birthday;
var sex;

function getYear() {
    return yyyy;
}
function getMonth() {
    return mm;
}
function getDate() {
    return dd;
}
function getBirthday() {
    return birthday;
}
function getSex() {
    return sex;
}
function getAge() {
    var mm = getMonth();
    if (mm < 10)
        mm = mm.substring(1, 2);
    return Math.floor((parseInt(_getYear()) * 12 + parseInt(_getMonth()) - parseInt(getYear()) * 12 - parseInt(mm)) / 12);
}
//判断是否大龄,男50,女40
function isBigAge() {
    if (parseInt(getAge()) >= 40 && parseInt(getSex()) == 2)
        return "1";
    if (parseInt(getAge()) >= 50 && parseInt(getSex()) == 1)
        return "1";
    return "0";
}
//校验身份证号码
function CheckValue(idCard) {
    var id = idCard;
    var id_length = id.length;
    if (id_length == 0) {
        // alert("请输入身份证号码!");
        // return false;
        return "身份证号码";
    }

    if (id_length != 15 && id_length != 18) {
        // alert("身份证号长度应为15位或18位！");
        // return false;
        return "身份证号长度应为15位或18位";
    }

    if (id_length == 15) {
        yyyy = "19" + id.substring(6, 8);
        mm = id.substring(8, 10);
        dd = id.substring(10, 12);

        if (mm > 12 || mm <= 0) {
            //  alert("输入身份证号,月份非法！");
            // return false;
            return "输入身份证号,月份非法！";
        }

        if (dd > 31 || dd <= 0) {
            // alert("输入身份证号,日期非法！");
            //  return false;
            return "输入身份证号,日期非法！";
        }

        birthday = yyyy + "-" + mm + "-" + dd;

        if ("13579".indexOf(id.substring(14, 15)) != -1) {
            sex = "1";
        } else {
            sex = "2";
        }
    } else if (id_length == 18) {
        if (id.indexOf("X") > 0 && id.indexOf("X") != 17 || id.indexOf("x") > 0 && id.indexOf("x") != 17) {
            // alert("身份证中\"X\"输入位置不正确！");
            // return false;
            return "身份证中\"X\"输入位置不正确！";
        }

        yyyy = id.substring(6, 10);
        if (yyyy > 2200 || yyyy < 1900) {
            //alert("输入身份证号,年度非法！");
            // return false;
            return "输入身份证号,年度非法！";
        }

        mm = id.substring(10, 12);
        if (mm > 12 || mm <= 0) {
            //  alert("输入身份证号,月份非法！");
            //   return false;
            return "输入身份证号,月份非法！";
        }

        dd = id.substring(12, 14);
        if (dd > 31 || dd <= 0) {
            //alert("输入身份证号,日期非法！");
            //  return false;
            return "输入身份证号,日期非法！";
        }

        if (id.charAt(17) == "x" || id.charAt(17) == "X")
        {
            if ("x" != GetVerifyBit(id) && "X" != GetVerifyBit(id)) {
                //  alert("身份证校验错误，请检查最后一位！");
                //  return false;
                return "身份证校验错误，请检查最后一位！";
            }

        } else {
            if (id.charAt(17) != GetVerifyBit(id)) {
                // alert("身份证校验错误，请检查最后一位！");
                // return false;
                return "身份证校验错误，请检查最后一位！";
            }
        }

        birthday = id.substring(6, 10) + "-" + id.substring(10, 12) + "-" + id.substring(12, 14);
        if ("13579".indexOf(id.substring(16, 17)) > -1) {
            sex = "1";
        } else {
            sex = "2";
        }
    }

    return "";
}
//15位转18位中,计算校验位即最后一位
function GetVerifyBit(id) {
    var result;
    var nNum = eval(id.charAt(0) * 7 + id.charAt(1) * 9 + id.charAt(2) * 10 + id.charAt(3) * 5 + id.charAt(4) * 8 + id.charAt(5) * 4 + id.charAt(6) * 2 + id.charAt(7) * 1 + id.charAt(8) * 6 + id.charAt(9) * 3 + id.charAt(10) * 7 + id.charAt(11) * 9 + id.charAt(12) * 10 + id.charAt(13) * 5 + id.charAt(14) * 8 + id.charAt(15) * 4 + id.charAt(16) * 2);
    nNum = nNum % 11;
    switch (nNum) {
        case 0 :
            result = "1";
            break;
        case 1 :
            result = "0";
            break;
        case 2 :
            result = "X";
            break;
        case 3 :
            result = "9";
            break;
        case 4 :
            result = "8";
            break;
        case 5 :
            result = "7";
            break;
        case 6 :
            result = "6";
            break;
        case 7 :
            result = "5";
            break;
        case 8 :
            result = "4";
            break;
        case 9 :
            result = "3";
            break;
        case 10 :
            result = "2";
            break;
    }
    //document.write(result);
    return result;
}
//15位转18位
function Get18(idCard) {
    if (CheckValue(idCard)) {
        var id = idCard;
        var id18 = id;
        if (id.length == 0) {
            alert("请输入15位身份证号！");
            return false;
        }
        if (id.length == 15) {
            if (id.substring(6, 8) > 20) {
                id18 = id.substring(0, 6) + "19" + id.substring(6, 15);
            } else {
                id18 = id.substring(0, 6) + "20" + id.substring(6, 15);
            }

            id18 = id18 + GetVerifyBit(id18);
        }

        return id18;
    } else {
        return false;
    }
}
//校验是否全由数字组成      
function isDigit(s)
{
    var patrn = /^[0-9]{1,20}$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  //校验登录名：只能输入5-20个以字母开头、可带数字、“_”、“.”的字串      
function isRegisterUserName(s)
{
    var patrn = /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  //校验用户姓名：只能输入1-30个以字母开头的字串      
function isTrueName(s)
{
    var patrn = /^[a-zA-Z]{1,30}$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  //校验密码：只能输入6-20个字母、数字、下划线      
function isPasswd(s)
{
    var patrn = /^(\w){6,20}$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  //校验普通电话、传真号码：可以“+”开头，除数字外，可含有“-”      
function isTel(s)
{
    //var   patrn=/^[+]{0,1}(\d){1,3}[   ]?([-]?(\d){1,12})+$/;
    var patrn = /^[+]{0,1}(\d){1,3}[   ]?([-]?((\d)|[   ]){1,12})+$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  //校验手机号码：必须以数字开头，除数字外，可含有“-”      
function isMobil(s)
{
    var patrn = /^[+]{0,1}(\d){1,3}[   ]?([-]?((\d)|[   ]){1,12})+$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  //校验邮政编码      
function isPostalCode(s)
{
    //var   patrn=/^[a-zA-Z0-9]{3,12}$/;
    var patrn = /^[a-zA-Z0-9   ]{3,12}$/;
    if (!patrn.exec(s))   return   false
    return   true
}
       
  

function isIP(s)   //by   zergling
{
    var patrn = /^[0-9.]{1,20}$/;
    if (!patrn.exec(s))   return   false
    return   true
}
//alert(GetVerifyBit("111111190011111118"));
//CheckValue("111111190011111118");
//alert(isPostalCode("111111"));
