﻿function $F(element) {
    return document.getElementById(element).value;
}


function CheckkFrom(objElement, msg, acType) {
    switch (acType) {
        case 1: // Validate is not null
            if ($F(objElement).length <= 0) {
                alert(msg);
                return false;
            }
            break;
        case 2: // Validate is Email
            if (!ValidateEmail($F(objElement))) {
                alert(msg);
                return false;
            }
            break;
        case 3: // Validate is number
            if (!ValidateNum($F(objElement))) {
                alert(msg);
                return false;
            }
            break;
        case 4: // Validate checkbox or radio
            var eles = document.getElementsByName(objElement);

            if (eles.length <= 0) return false;
            var isSel = false;
            for (var i = 0; i < eles.length; i++) {
                if (eles[i].checked) {
                    isSel = true;
                    return true;
                }
            }
            if (!isSel) {
                alert(msg);
                return false;
            }
        case 5: // Validate is time format
            if (!ValidateShortDate($F(objElement))) {
                alert(msg);
                return false;
            }
            break;
    }
    return true;
}

/***************************通用检测函数********************************/

//验证Email格式
function ValidateEmail(source) {
    var patrn = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    return patrn.exec(source);
}

//检测电话
function ValidateTel(source) {
    var patrn = /^((\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
    return patrn.exec(source);
}

function ValidateTels(source) {
    var telformat = source.split(',');
    for (var i = 0; i < telformat.length; i++) {
        if (!ValidateTel(telformat[i])) {
            return false;
        }
    }
    return true;
}

//检测手机
function ValidateMobileTel(source) {
    var patrn = /^1[3,5,8]\d{9}$/;
    return patrn.exec(source);
}
//验证为数字
function ValidateNum(source) {
    var patrn = /^\d+$/;
    return patrn.exec(source);
}
//验证只能有a-z,A-Z，0-9组成的字符串
function ValidateS(source) {
    var patrn = /^[a-zA-Z0-9]+$/
    return patrn.exec(source);
}
//验证只能有a-z,A-Z组成的字符串
function ValidateLetter(source) {
    var patrn = /^[a-zA-Z]+$/
    return patrn.exec(source);
}
//验证是否含有空格、\/、\\、\'、\"、\<、\>等特殊字符,请重新输入!
function ValidateInput(source) {
    len = source.length;
    for (i = 0; i < len; i++) {
        while (source.charAt(i) == " " || source.charAt(i) == "\\" || source.charAt(i) == "/" || source.charAt(i) == "'" || source.charAt(i) == "\"" || source.charAt(i) == "*" || source.charAt(i) == "<" || source.charAt(i) == ">") {
            return true;
        }
    }
}

//验证字符串是否全是中文
function ValidateCNAll(source) {
    var patrn = /^[\u0391-\uFFE5]+$/
    return patrn.exec(source);
}
//验证字符串中是否包含中文
function ValidateCN(source) {
    var patrn = /^(\w*)([\u0391-\uFFE5]+)(\w*)+$/
    return patrn.exec(source);
}

function IsIncludeChinese(source) {
    var patrn = /^(\w*)([\u0391-\uFFE5]+)(\w*)+$/
    return patrn.test(source);
}
//验证URL地址格式
function ValidateUrl(source) {
    var regExp = new RegExp("((^http)|(^https)|(^ftp)):\/\/(\\w)+\.(\\w)+");
    var rtn = source.match(regExp);
    if (rtn == null) {
        return false;
    }
    else {
        return true;
    }

    //http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
    //var patrn = /^http(s)?:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$/
    //return patrn.exec(source);
}
//验证长日期格式
function ValidateLongDate(source) {
    var patrn = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/
    return patrn.exec(source);
}
//验证短日期格式
function ValidateShortDate(source) {
    var patrn = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/
    return patrn.exec(source);
}

//验证身份证号码
function ValidateIdCode(source) {
    var patrn = /^([0-9]{15}|[0-9]{18})$/
    return patrn.test(source);
}

//验证身份证号码
function ValidateZipCode(source) {
    var patrn = /^\d{6}$/
    return patrn.test(source);
}


/***************************end 通用验证函数********************************/

/*************************  其他通用函数开始 ************************************/

String.prototype.trim = function() {
    return this.replace(/^\s*/g, "").replace(/\s*$/g, "");
}

//替换所有自定的字符为新字符
//str:目标字符串
//oChr:原字符
//dChr:新字符
function ReplaceAll(str, oChr, dChr) {
    str = str.trim();
    var len = str.length;

    if (len <= 0) return "";

    for (var i = 0; i < len; i++) {
        str = str.replace(oChr, dChr);
    }
    return str;
}


//生成任意长度的随机数字
function GetRandom(numLength) {
    var rnd = "";
    for (i = 0; i < numLength; i++) {
        rnd = rnd + Math.floor(Math.random() * 10)
    }
    return rnd;
}

//字符串进行前空格截除
function TrimLeft(source) {
    while (source.charAt(0) == " ") {
        source = source.substr(1);
    }
    return source;
}
//字符串进行后空格截除
function TrimRight(source) {
    while (source.charAt(source.length - 1) == " ") {
        source = source.substr(0, source.length - 1);
    }
    return source;
}
//字符串进行首末位空格截除
function Trim(source) {
    return TrimRight(TrimLeft(source));
}
//得到字符串的真实长度（双字节换算为两个单字节） 
function GetLength(source) {
    return source.replace(/[^\x00-\xff]/g, "xx").length;
}

/*************************  其他通用函数结束 ************************************/

