var reInteger = /^(\-)?\d+$/;
var defaultEmptyOK = false;

function WcheckIPaddress(thisfield) {
    var s = thisfield.value;
    var N = s.length;
    var x0 = "";
    var x1 = "";
    var x2 = "";
    var x3 = "";
    if (s.indexOf(".") == -1)
        return WwarnInvalid(thisfield, iIPadress);
    for (var i = 0; i < N; i++) {
        if (s.charAt(i) == ".") {
            x0 = s.substring(0, i);
            x1s = s.substring(i + 1);
            break;
        }
    }
    if (x1s.indexOf(".") == -1)
        return WwarnInvalid(thisfield, iIPadress);
    for (var i = 0; i < x1s.length; i++) {
        if (x1s.charAt(i) == ".") {
            x1 = x1s.substring(0, i);
            x2s = x1s.substring(i + 1);
            break;
        }
    }
    if (x2s.indexOf(".") == -1)
        return WwarnInvalid(thisfield, iIPadress);
    for (var i = 0; i < x2s.length; i++) {
        if (x2s.charAt(i) == ".") {
            x2 = x2s.substring(0, i);
            x3 = x2s.substring(i + 1);
            break;
        }
    }
    if ((WisIntegerInRange(x0, 0, 255) == false) || (WisIntegerInRange(x1, 0, 255) == false) || (WisIntegerInRange(x2, 0, 255) == false) || (WisIntegerInRange(x3, 0, 255) == false))
        return WwarnInvalid(thisfield, iIPadress);

    if ((x0.length > 3) || (x0.length > 3) || (x0.length > 3) || (x0.length > 3))
        return WwarnInvalid(thisfield, iIPadress);

    return true;
}


function WwarnInvalid(thisfield, s)
{
    thisfield.focus();
    //thisfield.select();
    alert(s);
    return false;
}

function WisIntegerInRange(s, a, b)
{
    if (WisEmpty(s)) return false;

    if (!WisInteger(s, false)) return false;

    var num = parseInt(s, 10);
    return ((num >= a) && (num <= b));
}

function WisEmpty(s) {
    return ((s == null) || (s.Trim().length == 0) || (s == ""))
}

function WisInteger(s) {
    var i;
    if (WisEmpty(s))
        if (WisInteger.arguments.length == 1) return defaultEmptyOK;
        else return (WisInteger.arguments[1] == true);
    return reInteger.test(s)
}

//check phonenum
function WisTel(s)
{
    var patrn = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
    if (!patrn.exec(s)) return true;
    return false;
}

//验证电话号码（025-88888888或者88888888或者(0)13667896789）
function PhoneCheck(s) {
    var str = s;
    if (str.startsWith("013") && str.length == 12)
        return false;
    if (str.startsWith("015") && str.length == 12)
        return false;
    if (str.startsWith("018") && str.length == 12)
        return false;
    var reg = /(^0[0-9]{2,3}[0-9]{7,9}$)|(^\([0-9]{3,4}\)[0-9]{7,9}$)|(^[0-9]{7,9}$)|(^13[0-9]{9}$)|(^15[0-9]{9}$)|(^18[0-9]{9}$)/;
    if (!reg.test(str))  return true;
    return false;
}

//验证电话号码（025-88888888或者88888888）
function PhoneCheck2(s) {
    var str = s;
    var n = Number(str);
    if (!isNaN(n))
    {
        alert("是数字");
    }
}

function PhoneCheck1(s) {
    var str = s;
    var reg = /(^0[0-9]{2,3}[0-9]{7,9}$)|(^\([0-9]{7,9}$)|(^[0-9]{7,9}$)/;
    if (!reg.test(str)) return true;
    return false;
}

String.prototype.endWith = function(oString) {
    var reg = new   RegExp(oString + "$");
    return reg.test(this);
}

String.prototype.startsWith = function(startWith)
{
    var len = startWith.length;
    return  (this.substring(0, len) == startWith);
}

function PhoneCheckWithOutPrefix(s) {
    var str = s;
    var reg = /(^[0-9]{7,9}$)|(^0{0,1}13[0-9]{9}$)/
    return reg.test(str);
}

//check ips with ";"
function Wisips(s)
{
    var patrn1 = /^(((\d){1,3}[.](\d){1,3}[.](\d){1,3}[.](\d){1,3})|([;]))+$/;
    if (!patrn1.exec(s)) return true;
    return false;
}

function WisLegalTime(s)
{
    if (WisEmpty(s))
        return true;
    if (!WisInteger(s))
        return false;
    var N = s.length;
    if (N != 6)
    {
        return false;
    }
    var hour = parseInt(s.substring(0, 2), 10) ;
    var minute = parseInt(s.substring(2, 4), 10) ;
    var second = parseInt(s.substring(4, 6), 10) ;
    if (hour >= 24 || hour < 0) {
        return false;
    }
    if (minute >= 60 || minute < 0) {
        return false;
    }
    if (second >= 60 || second < 0) {
        return false;
    }
    return true;
}

function WisLegalTimeInRange(s, a, b)
{
    var num = parseInt(s, 10);
    var _a = parseInt(a, 10);
    var _b = parseInt(b, 10);
    return ((num >= _a) && (num <= _b));
}

function Wisipwrongs(s)
{
    var patrn1 = /^([;])+$/;
    if (!patrn1.exec(s)) return false;
    return true;
}

String.prototype.Trim = function() {
    return this.LTrim().RTrim();
}

String.prototype.LTrim = function() {
    return this.replace(/^\s+/g, "");
}

String.prototype.RTrim = function() {
    return this.replace(/\s+$/g, "");
}

String.prototype.Len = function()
{
    var j = 0;
    for (var i = 0; i < this.length; i++)
    {
        if (this.charCodeAt(i) > 255)   j = j + 2;
        else   j++;
    }
    return   j;
}

function getcookie(name)
{
    var mycookie = document.cookie;
    var start1 = mycookie.indexOf(name + "=");
    if (start1 == -1)
        return "";
    else
    {
        start = mycookie.indexOf("=", start1) + 1;
        var end = mycookie.indexOf(";", start);
        if (end == -1)
        {
            end = mycookie.length;
        }
        var value = unescape(mycookie.substring(start, end));
        return value;
    }
}

function selectAll(selectObj)
{
    for (i = 0,j = selectObj.length; i < j; i++)
    {
        selectObj.options[i].selected = true;
    }
}

function addOption(obj1, obj2)
{
    var item = null;
    var obj1Len = obj1.options.length;
    for (i = 0; i < obj1Len; i++)
    {
        if (obj1.options[i].selected)
        {
            var j = 0;
            var hasSuch = false;
            while (j < obj2.options.length)
            {
                if (obj1.options[i].value == obj2.options[j].value)
                {
                    hasSuch = true;
                    break;
                }
                j++;
            }
            if (!hasSuch)
            {
                item = new Option(obj1.options[i].text, obj1.options[i].value);
                obj2.options.add(item);
            }
            obj1.options[i] = null;
            i--;
            obj1Len--;
        }
    }
}

function addAllOption(obj1, obj2) {
    var obj1Len = obj1.options.length;
    var obj2Len = obj2.options.length;
    for (i = 0; i < obj1Len; i++) {
        var j = 0;
        var hasSuch = false;
        while (j < obj2.options.length)
        {
            if (obj1.options[i].value == obj2.options[j].value)
            {
                hasSuch = true;
            }
            j++;
        }
        if (!hasSuch)
        {
            obj2.options[obj2Len] = new Option(obj1.options[i].text, obj1.options[i].value);
            obj2Len++;
        }
    }
    for (k = obj1Len - 1; k >= 0; k--) {
        obj1.options[k] = null;
    }
}

function deleteOption(obj1, obj2)
{
    var obj1Len = obj1.options.length;
    var obj2Len = obj2.options.length;
    for (var i = obj1Len - 1; i >= 0; i--)
    {
        if (obj1.options[i].selected)
        {
            var j = 0;
            var hasSuch = false;
            while (j < obj2Len)
            {
                if (obj1.options[i].value == obj2.options[j].value)
                {
                    hasSuch = true;
                }
                j++;
            }
            if (!hasSuch)
            {
                obj2.options[obj2Len] = new Option(obj1.options[i].text, obj1.options[i].value);
                obj2Len++;
            }
            obj1.options[i] = null;
            obj1Len--;
        }
    }

}

function deleteAllOption(obj1, obj2) {
    var obj1Len = obj1.options.length;
    var obj2Len = obj2.options.length;
    for (var i = 0; i < obj1Len; i++) {
        var j = 0;
        var hasSuch = false;
        while (j < obj2Len)
        {
            if (obj1.options[i].value == obj2.options[j].value)
            {
                hasSuch = true;
                break;
            }
            j++;
        }
        if (!hasSuch)
        {
            obj2.options[obj2Len] = new Option(obj1.options[i].text, obj1.options[i].value);
            obj2Len++;
        }
    }

    for (k = obj1Len - 1; k >= 0; k--) {
        obj1.options[k] = null;
    }
}

function selectAllCheckBox(name) {
    var i
    var obj = document.getElementsByName(name);
    var len = obj.length;
    for (i = 0; i < len; i++) {
        obj[i].checked = true;
    }
}

function selectNoneCheckBox(name) {
    var i
    var obj = document.getElementsByName(name);
    var len = obj.length;
    for (i = 0; i < len; i++) {
        obj[i].checked = false;
    }
}

function disSelectCheckBox(name) {
    var i
    var obj = document.getElementsByName(name);
    var len = obj.length;
    for (i = 0; i < len; i++) {
        if (obj[i].checked == true) {
            obj[i].checked = false;
        } else {
            obj[i].checked = true;
        }
    }
}

function getNameOnly(s) {
    var i;
    var a = "";
    var b;
    b = s.split(';');
    for (j = 0; j < b.length; j++) {
        if (a != "" && !a.endWith(";")) {
            a += ";";
        }
        a = a + b[j].substring(b[j].indexOf('>') + 1);

    }
    return a;
}

function turnTime1(s) {
    var a;
    if (s != null && s != "") {
        a = s.substring(0, 2) + ":" + s.substring(2, 4) + ":" + s.substring(4);
    } else {
        a = "";
    }
    return a;
}

function turnTime2(s) {
    var a;
    if (s != null && s != "") {
        a = s.replace(/\:/g, "");
    } else {
        a = "";
    }
    return a;
}

<!--必须输入数字-->
function CheckNum()
{
    var objRegex = /[\d\.]/ig;

    if (String.fromCharCode(event.keyCode).match(objRegex) == null)
    {
        event.returnValue = 0;
    }
}

function ChangeNum(obj)
{
    if (obj.value.indexOf(".") < 0)
    {
        obj.value = obj.value + ".00";
    }
}

function checkAndFormtData(obj) {
    if (typeof obj == 'string') {
        if (obj == null)
            obj = "";
    }
    if (typeof obj == 'int') {
        if (obj == null)
            obj = "";
    }
    if (obj instanceof  Date) {
        if (obj == null) {
            obj = "";
        } else {
            var y = obj.getFullYear();
            var m = obj.getMonth() + 1;
            var d = obj.getDate();
            var h = obj.getHours();
            var i = obj.getMinutes();
            var s = obj.getSeconds();
            var ms = obj.getMilliseconds();
            if (ms > 0) obj = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
            if (h > 0 || i > 0 || s > 0)  obj + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
            obj = y + '-' + m + '-' + d;
        }

    }
    return obj.toString();
}

function WisEmptySelect(objselect)
{
    return (objselect.options.length == 0);
}

function signContent(ctrl, textbox, name) {
    var text = '-' + name;
    if (ctrl.checked) {
        if (!textbox.value.endWith(name)) {
            textbox.maxlength += name.Len() + 1;
            appendText(textbox, text);
        }
    } else {
        removeText(textbox, text);
    }
}

function addContentSuffix(textbox, suffix) {
    if (suffix.Len() > 0 && !textbox.value.endWith(suffix)) {
        appendText(textbox, suffix);
    }
}

function appendText(textbox, text) {
    textbox.value = textbox.value + text;
}

function removeText(textbox, text) {
    textbox.value = textbox.value.replace(text, '');
}

/*
限制textarea输入框最大长度
*/
function checkTextAreaLen(obj) {
    var maxLen = obj.maxlength;
    var lenE = obj.value.length;
    var lenC = 0;
    var CJK = obj.value.match(/[\u4E00-\u9FA5\uF900-\uFA2D-\p]/g);
    if (CJK != null) lenC += CJK.length;
    document.all.tno.innerText = maxLen - lenC - lenE;
    if (tno.innerText < 0) {
        var tmp = 0
        var cut = obj.value.substring(0, obj.maxlength);
        for (var i = 0; i < cut.length; i++) {
            tmp += /[\u4E00-\u9FA5\uF900-\uFA2D-\p]/.test(cut.charAt(i)) ? 2 : 1;
            if (tmp > obj.maxlength) break;
        }
        obj.value = cut.substring(0, i);
    }
}

/*
对Date的扩展，将 Date 转化为指定格式的String
月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
例子：
(new Date()).dateFormat("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
(new Date()).dateFormat("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
*/
/*
function dateFormat(date, fmt) {
    //author: meizz
    var o = {
        "M+" : date.getMonth() + 1,                 //月份
        "d+" : date.getDate(),                    //日
        "h+" : date.getHours(),                   //小时
        "m+" : date.getMinutes(),                 //分
        "s+" : date.getSeconds(),                 //秒
        "q+" : Math.floor((date.getMonth() + 3) / 3), //季度
        "S"  : date.getMilliseconds()             //毫秒
    };
    if (/(y+)/.test(fmt))
    {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt))
        {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}*/
