﻿function Xvali(id, eid, type, msg, required, requiredmsg, dvalue) {
    var err = false;

    switch (type) {
        case "uname":
            if (!isUName($(id).val())) { err = true; }
            break;
        case "pwd":
            if (!isPwd($(id).val())) { err = true; }
            break;
        case "name":
            if (!isName($(id).val())) { err = true; }
            break;
        case "vcode":
            if (!isVcode($(id).val())) { err = true; }
            break;
        case "email":
            if (!isEmail($(id).val())) { err = true; }
            break;
        case "qq":
            if (!isQQ($(id).val())) { err = true; }
            break;
        case "tel":
            if (!isTel($(id).val())) { err = true; }
            break;
        case "mobi":
            if (!isMobil($(id).val())) { err = true; }
            break;
        case "zip":
            if (!isZip($(id).val())) { err = true; }
            break;
        case "chinese":
            if (!isChinese($(id).val())) { err = true; }
            break;
        case "tel&mobi":
            if (!isTel($(id).val()) && !isMobil($(id).val())) { err = true; }
            break;
        case "chineseidcard":
            if (!isChineseIDCard($(id).val())) { err = true; }
            break;
        case "shortdate":
            if (!isShortDate($(id).val())) { err = true; }
            break;
        case "num":
            if (!isNum($(id).val())) { err = true; }
            break;
        case "price":
            if (!isPrice($(id).val())) { err = true; }
            break;
        case "url":
            if (!isUrl($(id).val())) { err = true; }
            break;
    }

    if ($(id).length > 0) {
        if ($(id).val() != "") {
            if (err) {
                $(eid).html(msg).show();
                return false;
            }
            else {
                $(eid).html("").hide();
                if (dvalue) {
                    return true;
                }
                else if (!dvalue) {
                    return false;
                }
                else {
                    return true;
                }
            }
        }
        else {
            if (required) {
                $(eid).html(requiredmsg).show();
                return false;
            }
            else {
                $(eid).html("").hide();
                if (dvalue) {
                    return true;
                }
                else if (!dvalue) {
                    return false;
                }
                else {
                    return true;
                }
            }
        }
    }
    else {
        return true;
    }
}

function isUName(s) {
    var patrn = /[0-9a-zA-Z_]{4,12}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isPwd(s) {
    var patrn = /[0-9a-zA-Z_]{6,12}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isName(s) {
    var patrn = /^.{1,20}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isVcode(s) {
    var patrn = /^[0-9a-zA-Z]{4}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isDigit(s) {
    var patrn = /^[0-9]{1,20}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isZip(s) {
    var patrn = /^[0-9]{3,6}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isChinese(s) {
    var patrn = /^[\u4e00-\u9fa5]{1,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})+$/;
    //var reg = /(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
    var patrn = /(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/;
    if (!patrn.exec(s)) return false
    return true
}

function isMobil(s) {
    //var patrn = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
    var patrn = /^[1][3,5][0-9]{9}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isQQ(s) {
    var patrn = /^[1-9][0-9]{4,}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isIP(s) {
    var patrn = /^[0-9.]{1,20}$/;
    if (!patrn.exec(s)) return false
    return true
}

function isEmail(s) {
    var patrn = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    if (!patrn.exec(s)) return false
    return true
}

function isChineseIDCard(s) {
    var patrn1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
    var patrn2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
    if (!patrn1.exec(s) && !patrn2.exec(s)) return false
    return true
}

function isShortDate(s) {
    var patrn = /^(\d{4})[-](\d{2})[-](\d{2})$/;
    if (!patrn.exec(s)) return false
    return true
}

function isNum(s) {
    var patrn = /[0-9]+$/;
    if (!patrn.exec(s)) return false
    return true
}

function isPrice(s) {
    if (isNaN(s)) return false
    return true
}

function isUrl(s) {
    var patrn = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)((\w+)\.)+(\S)+$/;
    if (!patrn.exec(s)) return false
    return true
}
