﻿var Chesudi = {};
Chesudi.register = function (path) {
    var arr = path.split(".");
    var ns = "";
    for (var i = 0; i < arr.length; i++) {
        if (i > 0) ns += ".";
        ns += arr[i];
        eval("if(typeof(" + ns + ") == 'undefined') " + ns + " = new Object();");
    }
}
/*注册一个Common的操作类*/
Chesudi.register("Chesudi.Common");
/*页面遮盖提示信息 add by xwy*/
Chesudi.Common.Lock = function () {
    return {
        show: function (obj) {
            var contol = $(document.body);
            var browserObj = $(window);
            var windowWidth = browserObj.width();
            var windowHeight = browserObj.height();
            var scrollTop = browserObj.scrollTop();
            var scrollLeft = browserObj.scrollLeft();
            var leftVal = "33%";
            var topVal = "25%";
            if (!obj.NotContainHeader) {
                scrollLeft = scrollLeft - 160;
                scrollTop = scrollTop - 50;
            }
            var leftValnum = 100 * (windowWidth / 2 + scrollLeft) / contol.width();
            var topValnum = 100 * (windowHeight / 2 + scrollTop / 2) / contol.height();
            if (leftValnum < 30 || browserObj.scrollLeft() > 0) { leftVal = leftValnum + "%"; }
            if (topValnum < 25 || browserObj.scrollTop() > 0) { topVal = topValnum + "%"; }
            if (obj.left) { leftVal = obj.left; }
            if (obj.top) { topVal = obj.top; }
            $("html").addClass("hb");
            
            var MaskControl = '<div id ="' + obj.id + '_mask" class="datagrid-mask2" style=" z-index :10;width:100%; display: block; top : ' + contol.position().top + 'px;  left:' + contol.position().left + 'px; height:996px" ></div><div  id ="' + obj.id
                + '_maskInfo" class="datagrid-mask-msg2" style="z-index :1231;display: none; top: ' +
                topVal + '; left: ' + leftVal + '"><img src="images/pagination_loading.gif" />dsdsd</div>';
            $(MaskControl).appendTo(contol);

        },
        close: function (obj) {
            var controlList = [obj.id + "_mask", obj.id + "_maskInfo"];
            for (var i = 0; i < controlList.length; i++) {
                var maskDiv = $('#' + controlList[i]);
                if (maskDiv != null && maskDiv.length > 0) {
                    maskDiv.remove();
                }
                else {
                    maskDiv = $('#' + controlList[i], window.parent.document);
                    if (maskDiv != null && maskDiv.length > 0) {
                        maskDiv.remove();
                    }
                }
            }
            //            var contol = $('#' + obj.id);
            //            contol.css('z-index', '');
        }
    }
} ();


/*页面等待加载提示信息 add by xwy*/
Chesudi.Common.loadMsg = function () {
    return {
        show: function (obj) {
            var info = "";
            if (obj.msg) { info = obj.msg; }
            var contol = $(document.body);
            var browserObj = $(window);
            var windowWidth = contol.width();
            var windowHeight = contol.height();
            var scrollTop = contol.scrollTop();
            var scrollLeft = contol.scrollLeft();
            var leftVal = "40%";
            var topVal = "45%";
            if (!obj.NotContainHeader) {
                scrollLeft = scrollLeft - 160;
                scrollTop = scrollTop - 50;
            }
            $("#" + obj.id).css('z-index', '1220');
            var leftValnum = 100 * (windowWidth / 2 + scrollLeft) / contol.width();
            var topValnum = 100 * (windowHeight / 2 + scrollTop / 2) / contol.height();
            if (leftValnum < 35 || contol.scrollLeft() > 0) { leftVal = leftValnum + "%"; }
            if (topValnum < 25 || contol.scrollTop() > 0) { topVal = topValnum + "%"; }
            if (obj.left) { leftVal = obj.left; }
            if (obj.top) { topVal = obj.top; }
            var MaskControl = '<div id ="' + obj.id + '_mask" class="datagrid-mask2" style=" z-index :1230;width:100%;display: block; top : 0px;  left:0px; height: 996px;" ></div><div  id ="' + obj.id + '_maskInfo" class="datagrid-mask-msg2"' +
                 ' style="z-index :1231;display: block; top: ' +
                topVal + '; left: ' + leftVal + '"><img src="images/pagination_loading.gif" />' + info + '</div>';
            $(MaskControl).appendTo(contol);

        },
        close: function (obj) {
            var controlList = [obj.id + "_mask", obj.id + "_maskInfo"];
            for (var i = 0; i < controlList.length; i++) {
                var maskDiv = $('#' + controlList[i]);
                if (maskDiv != null && maskDiv.length > 0) {
                    maskDiv.remove();
                }
                else {
                    maskDiv = $('#' + controlList[i], window.parent.document);
                    if (maskDiv != null && maskDiv.length > 0) {
                        maskDiv.remove();
                    }
                }
            }

        }
    }
} ();





/*获取站点根目录 add by xwy*/
Chesudi.Common.getRootPath = function () {
    var strFullPath = window.document.location.href;
    var strPath = window.document.location.pathname;
    var pos = strFullPath.indexOf(strPath);
    var prePath = strFullPath.substring(0, pos);
    var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
    if (strFullPath.indexOf("ChesudiWeb") >= 0)
        return (prePath + postPath);
    return prePath;
}


Chesudi.Common.Message = function () {
    return {
        show: function (obj) {
            $.ajax({
                type: "Get",
                url: Chesudi.Common.getRootPath() + '/AjaxServices/CommMsg.ashx?MSGID=' + obj.id,
                cache: false,
                dataType: 'txt',
                success: function (msg) {
                    if (obj.msgs) {
                        msg = obj.msgs + msg;
                    }
                    if (obj.msge) {
                        msg = msg + obj.msge;
                    }
                    var leftVal = "33%";
                    var topVal = "35%";
                    if (obj.left) { leftVal = obj.left; }
                    if (obj.top) { topVal = obj.top; }
                    //                    alert(msg);
                    Chesudi.Common.tip.info({ title: '', left: leftVal, top: topVal, msg: msg });
                    return false;
                },
                error: function (XmlHttpRequest, textStatus, errorThrown) {
                    return false;
                }
            });
        }
    }
} ();


/*页面操作提示信息*/
Chesudi.Common.tip = function () {
    var imgUrl = Chesudi.Common.getRootPath() + "/images/TipMsg";
    function tipMsg(obj, title, image) {
        var info = "确定";
        if (obj.msg) { info = obj.msg; }
        var contol = $(document.body);
        var leftVal = "33%";
        var topVal = "25%";
        var browserObj = $(window);
        var windowWidth = browserObj.width();
        var windowHeight = browserObj.height();
        var scrollTop = browserObj.scrollTop();
        var scrollLeft = browserObj.scrollLeft();
        if (obj.left) { leftVal = obj.left; }
        if (obj.top) { topVal = obj.top; }
        var MaskControl = '<div id ="' + obj.id + '_mask" class="datagrid-maskshow" style="z-index :1230;width:100%; display: block; top : ' + contol.position().top + 'px;  left:' + contol.position().left + 'px; height: ' + $(document).height() + 'px" ></div>' +
                                '<div id ="' + obj.id + '_maskInfo" style="z-index :1231;display: block; top:' + topVal + '; left:' + leftVal + '" class="datagrid-mask-msgshow">' +
                                       '<div class="admonitorily">' +
                                         '<div class="top">' +
	                                          '<span class="title">' + title + '</span>' +
		                                      '<span class="close" onclick="Chesudi.Common.tip.close(\'' + obj.id + '\');Chesudi.Common.tip.UserDefinedFunc();"><img src="' + imgUrl + '/close.png" onmouseover="this.src=\'' + imgUrl + '/close_hover.png\'" onmouseout="this.src=\'' + imgUrl + '/close.png\'"/></span>' +
	                                     '</div>' +
	                                     '<div class="bottom">' +
	                                        '<div class="bt">' +
	                                          '<div class="pic"><img src="' + imgUrl + '/' + image + '" /></div>' +
		                                      '<div class="tip-word">' + info + '</div>' +
		                                      '<div style="clear:both;"></div>' +
		                                    '</div>' +
		                                    '<div class="tip-btn"><input type="button" id="btnOk" class="button" value="确定" onclick="Chesudi.Common.tip.close(\'' + obj.id + '\');Chesudi.Common.tip.UserDefinedFunc();Chesudi.Common.tip.GoURL();"/></div>' +
	                                     '</div>' +
                                       '</div>' +
                                  '</div>';
        $(MaskControl).appendTo(contol);
        Chesudi.Common.tip.focus("btnOk");
    }

    function closeHB() {
        $("html").removeClass();
    }

    function confirmMsg(obj, title, image) {
        var info = "确定";
        if (obj.msg) { info = obj.msg; }
        var contol = $(document.body);
        var leftVal = "33%";
        var topVal = "25%";
        var browserObj = $(window);
        var windowWidth = browserObj.width();
        var windowHeight = browserObj.height();
        var scrollTop = browserObj.scrollTop();
        var scrollLeft = browserObj.scrollLeft();
        if (obj.left) { leftVal = obj.left; }
        if (obj.top) { topVal = obj.top; }
        contol.css({ position: "relative" });
        var MaskControl = '<div id ="' + obj.id + '_mask" class="datagrid-maskshow" style="z-index :1230;width: ' + contol.width()
                    + 'px; display: block; height: ' + $(document).height() + 'px" ></div>' +
                                '<div id ="' + obj.id + '_maskInfo" style="z-index :1231;display: block; top:' + topVal + '; left:' + leftVal + '" class="datagrid-mask-msgshow">' +
                                       '<div class="admonitorily">' +
                                         '<div class="top">' +
	                                          '<span class="title">' + title + '</span>' +
		                                      '<span class="close" onclick="Chesudi.Common.tip.closeuri(\'' + obj.id + '\')"><img src="' + imgUrl + '/close.png" onmouseover="this.src=\'' + imgUrl + '/close_hover.png\'" onmouseout="this.src=\'' + imgUrl + '/close.png\'"/></span>' +
	                                     '</div>' +
	                                     '<div class="bottom">' +
	                                        '<div class="bt">' +
	                                          '<div class="pic"><img src="' + imgUrl + '/' + image + '" /></div>' +
		                                      '<div class="tip-word">' + info + '</div>' +
		                                      '<div style="clear:both;"></div>' +
		                                    '</div>' +
		                                    '<div class="tip-btn">' +
		                                        '<input type="button" id="btnOk" class="button" value="确定" onclick="Chesudi.Common.tip.close(\'' + obj.id + '\');Chesudi.Common.tip.setConfirmValue();"/>&nbsp;&nbsp;&nbsp;&nbsp;' +
		                                        '<input type="button" id="btnCancel" class="button" value="取消" onclick="Chesudi.Common.tip.closeuri(\'' + obj.id + '\');"/>' +
		                                    '</div>' +
	                                     '</div>' +
                                       '</div>' +
                                  '</div>';
        $(MaskControl).appendTo(contol);
        Chesudi.Common.tip.focus(obj.id + "_mask");
    }
    var strTitle = "系统提示";
    var currObj = null;
    var flag = false;
    function setTitle(obj) {
        if (obj.title && obj.title != "") {
            strTitle = obj.title;
        }
    }
    return {
        success: function (obj) {
            currObj = obj;
            setTitle(obj);
            tipMsg(obj, strTitle, "success.png");
        },
        error: function (obj) {
            currObj = obj;
            setTitle(obj);
            tipMsg(obj, strTitle, "error.png");
        },
        warn: function (obj) {
            currObj = obj;
            setTitle(obj);
            tipMsg(obj, strTitle, "warn.png");
        },
        info: function (obj) {
            currObj = obj;
            setTitle(obj);
            tipMsg(obj, strTitle, "info.gif");
            //            if (currObj.url) document.location = currObj.url;
        },
        showConfirm: function (obj) {
            setTitle(obj);
            confirmMsg(obj, strTitle, "confirm.png");
        },
        confirm: function (obj) {
            if (flag) {
                flag = false;
                return !flag;
            }
            currObj = obj;
            Chesudi.Common.tip.showConfirm(obj);
            return flag;
        },
        setConfirmValue: function () {
            $("html").addClass("hb");
            if (currObj.func) {
                if (currObj.param)
                    currObj.func(currObj.param);
                else
                    currObj.func();
                return;
            }
            if (currObj.ctl) {
                flag = true;
                $(currObj.ctl).click();
            }
            if (currObj.url) document.location = currObj.url;
        },
        GoURL: function () {
            if (currObj.url) document.location = currObj.url;
        },
        UserDefinedFunc: function () {
            if (currObj.func) currObj.func();
        },
        focus: function (id) {
            $("#" + id).focus();
        },
        close: function (id) {
            var controlList = [id + "_mask", id + "_maskInfo"];
            for (var i = 0; i < controlList.length; i++) {
                var maskDiv = $('#' + controlList[i]);
                if (maskDiv != null) {
                    maskDiv.remove();
                }
            }
            if (currObj.url) document.location = currObj.url;
            closeHB();
        },
        closeuri: function (id) {
            var controlList = [id + "_mask", id + "_maskInfo"];
            for (var i = 0; i < controlList.length; i++) {
                var maskDiv = $('#' + controlList[i]);
                if (maskDiv != null) {
                    maskDiv.remove();
                }
            }
            if (currObj.funclose) {
                if (currObj.urli)
                    currObj.funclose(currObj.urli);
                else
                    currObj.funclose();
                return;
            }
            if (currObj.url) document.location = currObj.url;
            if (currObj.urli) document.location = currObj.urli;
            closeHB();
        }
    }
} ();



function isIdCardNo2(num) {

    num = num.toUpperCase();

    //身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。   

    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
        $("#chktakeadd").html("输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X!");
        $("#chekmsg1").css("display", "block");
        $("#chekmsg1").show();
        return false;

    }

    //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
    //下面分别分析出生日期和校验位 
    var len, re;
    len = num.length;
    if (len == 15) {
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);
        //检查生日日期是否正确 
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));

        if (!bGoodDay) {
            $("#chktakeadd").html("输入的身份证号里出生日期不对！");
            $("#chekmsg1").css("display", "block");
            $("#chekmsg1").show();
            return false;

        }
        else {
            //将15位身份证转成18位 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
            for (i = 0; i < 17; i++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            num += arrCh[nTemp % 11];
            return true;
        }
    }

    if (len == 18) {
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
        var arrSplit = num.match(re);
        //检查生日日期是否正确 
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
            $("#chktakeadd").html("输入的身份证号里出生日期不对！");
            $("#chekmsg1").css("display", "block");
            $("#chekmsg1").show();
            return false;
        }
        else {
            //检验18位身份证的校验码是否正确。 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            var valnum;
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
            var nTemp = 0, i;
            for (i = 0; i < 17; i++) {
                nTemp += num.substr(i, 1) * arrInt[i];
            }
            valnum = arrCh[nTemp % 11];
            if (valnum != num.substr(17, 1)) {
                $("#chktakeadd").html('18位身份证的校验码不正确！');
                $("#chekmsg1").css("display", "block");
                $("#chekmsg1").show();
                return false;
            }
            return true;
        }
    }
    return false;

}




function isIdCardNo(id) {
    var idNum = id;
    /*身份号码位数及格式检验 */
    var re;
    var len = idNum.length;
    /*身份证位数检验*/

    if (len != 18) {
        $("#chktakeadd").html('输入的身份证号不正确！');
        $("#chekmsg1").css("display", "block");
        $("#chekmsg1").show();
        return false;
    } else {
        re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})([0-9xX])$/);
    }
    var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西",
        15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海",
        32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西",
        37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东",
        45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州",
        53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海",
        64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门",
        91: "国外"
    };

    var idcard_array = new Array();
    idcard_array = idNum.split("");

    /*地区检验*/
    if (area[parseInt(idNum.substr(0, 2))] == null) {
        $("#chktakeadd").html('输入的身份证号不正确！');
        $("#chekmsg1").css("display", "block");
        $("#chekmsg1").show();
        return false;
    }

    /*出生日期正确性检验*/
    var a = idNum.match(re);
    if (a != null) {
        if (len == 18) {
            var DD = new Date(a[3] + "/" + a[4] + "/" + a[5]);
            var flag = DD.getFullYear() == a[3] && (DD.getMonth() + 1) == a[4] && DD.getDate() == a[5];
        }

        if (!flag) {
            $("#chktakeadd").html('输入的身份证号不正确！');
            $("#chekmsg1").css("display", "block");
            $("#chekmsg1").show();
            return false;
        }

        /*检验校验位*/
        if (len == 18) {
            S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
              + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
              + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
              + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
              + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
              + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
              + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
              + parseInt(idcard_array[7]) * 1
              + parseInt(idcard_array[8]) * 6
              + parseInt(idcard_array[9]) * 3;

            Y = S % 11;
            M = "F";
            JYM = "10X98765432";
            M = JYM.substr(Y, 1); /*判断校验位*/

            /*检测ID的校验位*/
            if (M == idcard_array[17]) {
                return true;
            }
            else {
                $("#chktakeadd").html('输入的身份证号不正确！');
                $("#chekmsg1").css("display", "block");
                $("#chekmsg1").show();
                return false;
            }
        }
    } else {
        $("#chktakeadd").html('输入的身份证号不正确！');
        $("#chekmsg1").css("display", "block");
        $("#chekmsg1").show();
        return false;
    }
    return true;
}

