﻿//公共JS

var common = {
    g: function (nodeId) {
        return document.getElementById(nodeId);
    },
    setInnerHtml: function (objName, dcontent) {
        if (common.g(objName) != null)
        { common.g(objName).innerHTML = dcontent; }
    },
    //页面定位
    setScroll: function (objId) {
        if (common.g(objId)) {

            var objPos = new getPos(common.g(objId));
            scroll(0, objPos.Top);
        }
    },
    //非法字符过滤
    strformat: function (temp_str) {
        temp_str = this.trimTxt(temp_str)

        temp_str = temp_str.replace(new RegExp('"', "gm"), "”");
        temp_str = temp_str.replace(new RegExp("'", "gm"), "‘");
        return temp_str;
    }, //删除HTML字串
    killHtml: function (str) { var re = new RegExp('\<scr' + 'ipt([^\<\>]+)\>', 'ig'); str = str.replace(re, '&lt;script$1&gt;'); re = new RegExp('\<\/scr' + 'ipt\>', 'ig'); str = str.replace(re, '&lt;/script&gt;'); delete re; str = str.replace(/\<iframe(\/| \/|)\>/ig, '&lt;iframe$1&gt;'); str = str.replace(/\<\/iframe\>/ig, '&lt;/iframe&gt;'); str = str.replace(/\<br(\/| \/|)\>/ig, '<br/>'); return str; },
    //验证是否是数字
    checknumber: function (str) {
        if (this.trimTxt(str) == "") {
            return false;
        }
        var Letters = "1234567890";
        var i;
        var c;
        for (i = 0; i < str.length; i++) {
            c = str.charAt(i);
            if (Letters.indexOf(c) == -1) {
                return false;
            }
        }
        return true;
    },
    //清除空格
    trimTxt: function (txt) {
        return txt.replace(/(^\s*)|(\s*$)/g, "");
    },
    //检查是否为空
    isEmptyid: function (inputId) {
        if (this.trimTxt(common.g(inputId).value) == '') { return true }
        return false;
    },
    //检查是否为空
    isEmpty: function (val) {
        if (this.trimTxt(val) == '') { return true }
        return false;
    },
    //设置是否可显示
    setDisplay: function (nodeId, state) {
        if (common.g(nodeId) != null) { common.g(nodeId).style.display = state; }
    },
    //删除元素
    removeNode: function (nodeId) {
        if (common.g(nodeId) != null) { common.g(nodeId).parentNode.removeChild(common.g(nodeId)); }
    },
    //显示提示信息
    showAlert: function (info, obj, infoSign) {

        if (common.g(infoSign) != null) { return; }
        var newd = document.createElement("span");

        newd.id = infoSign;
        newd.className = 'alertInfo';
        newd.innerHTML = info;
        obj.parentNode.appendChild(newd);

    },
    //显示提示信息自定义CSS
    showAlert: function (info, obj, infoSign, cssname) {

        if (common.g(infoSign) != null) { return; }
        var newd = document.createElement("span");

        newd.id = infoSign;
        newd.className = cssname;
        newd.innerHTML = info;
        obj.parentNode.appendChild(newd);

    },
    //删除提示信息
    removeAlert: function (infoSign) {
        if (common.g(infoSign) == null) { return; }
        common.g(infoSign).parentNode.removeChild(common.g(infoSign));
    },
    //显示等待信息
    showWaitInfo: function (info, obj) {
        try {
            if (obj == null) return;
            this.clearWaitInfo();
            var newd = document.createElement("span");
            newd.className = 'waitInfo';
            newd.id = 'waitInfo';
            newd.innerHTML = info;
            obj.parentNode.appendChild(newd);
        } catch (e) { }
    },
    showWaitInfoOnInner: function (info, obj) {
        try {
            if (obj == null) return;
            this.clearWaitInfo();
            var newd = document.createElement("span");
            newd.className = 'waitInfo';
            newd.id = 'waitInfo';
            newd.innerHTML = info;
            obj.innerHTML = '';
            obj.appendChild(newd);
        } catch (e) { }
    },
    clearWaitInfo: function () {
        try {
            if (common.g('waitInfo') != null) { common.g('waitInfo').parentNode.removeChild(common.g('waitInfo')); }
        } catch (e) { }
    },
    //全部选中checkbox
    CheckAll: function (form) {
        for (var i = 0; i < form.elements.length; i++) {
            var e = form.elements[i];
            if (e.Name != "chkAll" && e.disabled == false)
                e.checked = form.chkAll.checked;
        }
    },
    //RepeaterJavascript实现全选效果：ruant!=server
    BodyCheckAll: function (e, itemname) {
        var obj = document.getElementsByName(itemname);
        if (obj == undefined) return;
        for (var i = 0; i < obj.length; i++) obj[i].checked = e.checked;
    },
    //Repeater Javascript实现全选效果：ruant=server
    FormSelectAll: function (formID, EleName, e)  //formID：目标复选框组所在的form表单的ID属性；Elename：目标复选框组共同的Name属性；e：用于标识是否全选的复选框自身,用户判断是“全选”还是“全不选”
    {

        var Elements = document.getElementById(formID).elements;  //获取目标复选框组所在的Form表单
        for (var i = 0; i < Elements.length; i++) {
            if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0)   //根据对象类型和对象的name属性判断是否为目标复选框
            {
                Elements[i].checked = e.checked;   //根据用于控制的复选框的选中情况判断是否选中目标复选框
            }
        }
    },
    //换回选择的Chcckbox的value值
    ReturnFormCheckboxIds: function (formID, EleName) {
        var ids = "";
        var Elements = document.getElementById(formID).elements;  //获取目标复选框组所在的Form表单
        for (var i = 0; i < Elements.length; i++) {
            if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0)   //根据对象类型和对象的name属性判断是否为目标复选框
            {
                if (Elements[i].checked == true)   //根据用于控制的复选框的选中情况判断是否选中目标复选框
                {
                    if (ids == "") {
                        ids = Elements[i].value;
                    } else {
                        ids += "," + Elements[i].value;
                    }
                }
            }
        }
        return ids;
    },
    getParas: function (paras) {
        var url = location.href;
        var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
        var paraObj = {}
        for (i = 0; j = paraString[i]; i++) {
            paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
        }
        var returnValue = paraObj[paras.toLowerCase()];
        if (typeof (returnValue) == "undefined") {
            return "";
        } else {
            return returnValue;
        }
    },
    toPage: function (obj) {

    },
    UpdateParas: function (obj) {
        var url = window.location.protocol + '//' + window.location.host + window.location.pathname;
        var args = window.location.search;
        var postParams = obj;
        if (typeof (postParams) === "object") {
            for (var name in postParams) {
                if (postParams.hasOwnProperty(name)) {
                    var reg = new RegExp('([\?&]?)' + name + '=[^&]*[&$]?', 'gi');
                    args = args.replace(reg, '$1');
                    if (args == '' || args == null) {
                        args += '?' + name + '=' + postParams[name].toString();
                    } else if (args.substr(args.length - 1, 1) == '?' || args.substr(args.length - 1, 1) == '&') {
                        if (postParams[name].toString() != "") {
                            args += name + '=' + postParams[name].toString();
                        }
                    } else {
                        if (postParams[name].toString() != "") {

                            args += '&' + name + '=' + postParams[name].toString();
                        }
                    }
                }
            }
        }
        if (args == "?") args = "";
        if (args.substr(args.length - 1, 1) == '&') { args = args.substr(0, args.length - 1); }
        return args;
    },
    UpdateParasReturnUrl: function (obj) {
        var url = window.location.protocol + '//' + window.location.host + window.location.pathname;
        var args = window.location.search;
        var postParams = obj;
        if (typeof (postParams) === "object") {
            for (var name in postParams) {
                if (postParams.hasOwnProperty(name)) {
                    var reg = new RegExp('([\?&]?)' + name + '=[^&]*[&$]?', 'gi');
                    args = args.replace(reg, '$1');
                    if (args == '' || args == null) {
                        args += '?' + name + '=' + postParams[name].toString();
                    } else if (args.substr(args.length - 1, 1) == '?' || args.substr(args.length - 1, 1) == '&') {
                        if (postParams[name].toString() != "") {
                            args += name + '=' + postParams[name].toString();
                        }
                    } else {
                        if (postParams[name].toString() != "") {

                            args += '&' + name + '=' + postParams[name].toString();
                        }
                    }
                }
            }
        }
        if (args == "?") args = "";
        if (args.substr(args.length - 1, 1) == '&') { args = args.substr(0, args.length - 1); }
        return url + args;
    },
    isRegisterUserName: function (str) {
        var patrn = /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){3,19}$/;
        if (!patrn.exec(str)) return false
        return true;
    },
    //+---------------------------------------------------   
    //| 日期时间检查   
    //| 格式为：YYYY-MM-DD
    //+---------------------------------------------------     
    IsDateTime: function (str) {
        if (str.length != 0) {
            var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
            var r = str.match(reg);
            if (r == null)
                return false; //请将“日期”改成你需要验证的属性名称!
            else
                var d = new Date(r[1], r[3] - 1, r[4]);
            if (d.getFullYear() != r[1]) return false;
            if (d.getMonth() != r[3] - 1) return false;
            if (d.getDate() != r[4]) return false;

            return true;
        }
    },
    isValidMail: function (str) {
        var reMail = /^(?:[a-z\d]+[_\-\+\.]?)*[a-z\d]+@(?:([a-z\d]+\-?)*[a-z\d]+\.)+([a-z]{2,})+$/i;
        if (!reMail.test(str)) return false;
        return true;
    },

    //手机号验证
    checkPhone: function (str) {

        var check = /^1[3-9]\d{9}$/;
        if (!check.test(str)) return false;
        return true;

    },
    isFloat: function (str) {
        var reg = /^([0-9]+(.\d+)?|1(\.0+)?)$/;
        return reg.test(str);
    },
    isInt: function (str) { var reg = /^([0-9]|(\d+))$/; return reg.test(str); },
    /*
    byteLength：数据库字节长度
    title：字段中文名称
    attribute：属性名称（固定为：this）
    onkeyup="limitLength(this,'名称',100)"
    */
    limitLength: function (attribute, reg, byteLength, msgobj) {
        var count = 0;
        var value = attribute.value;
        var newvalue = value.replace(/[^\x00-\xff]/g, "**");
        var length = newvalue.length;
        var format = reg;
        //alert(newvalue);
        // 当填写的字节数小于设置的字节数
        if (length * 1 <= byteLength * 1) {
            format = format.replace(new RegExp("{#num#}", "gm"), (byteLength * 1) - (length * 1));
            this.g(msgobj).innerHTML = format;
            return;
        }
        var limitData = newvalue.substr(0, byteLength);
        //alert(limitData);
        var count = 0;
        var limitvalue = "";
        for (var i = 0; i < limitData.length; i++) {
            var flat = limitData.substr(i, 1);
            if (flat == "*") {
                count++;
            }
        }
        //alert(count);
        var size = 0;
        var istar = newvalue.substr(byteLength * 1 - 1, 1); //校验点是否为“×”
        //if 基点是×; 判断在基点内有×为偶数还是奇数
        if (count % 2 == 0) {
            //当为偶数时
            size = count / 2 + (byteLength * 1 - count);
            limitvalue = value.substr(0, size);
        } else {
            //当为奇数时
            size = (count - 1) / 2 + (byteLength * 1 - count);
            limitvalue = value.substr(0, size);
        }
        attribute.value = limitvalue;
        attribute.focus();
        return;
    }
}
