var jscomIsDebug = true;
function jscomDebugAlert(message) {
    if (jscomIsDebug) {
        alert(message);
    }
}
function jscomNewOpenBySize(url, target, width, height) {
    var tt, w, left, top;
    left = (screen.width - width) / 2;
    if (left < 0) { left = 0; }

    top = (screen.height - height) / 2;
    if (top < 0) { top = 0; }

    tt = "toolbar=no, menubar=no, scrollbars=yes,resizable=yes,location=no, status=no,";
    tt = tt + "width=" + width + ",height=" + height + ",left=" + left + ",top=" + top;
    w = window.open(url, target, tt);
    if (w != null) {
        w.focus();
    }
}

function jscomNewOpenBySizePos(url, target, width, height, left, top) {
    var tt;
    tt = "toolbar=no, menubar=no, scrollbars=no,resizable=yes,location=no, status=no,";
    tt = tt + ",width=" + width + ",height=" + height;
    tt = tt + ",left=" + left + ",top=" + top;
    w = window.open(url, target, tt);
    if (w != null) {
        w.focus();
    }
}
function jscomGetParentFromSrc(src, parTag) {
    if (src && src.tagName != parTag) {
        src = jscomGetParentFromSrc(src.parentElement, parTag);
    }
    return src;
}

function jscomSubString(str, begin_pos, num) {
    return str.toString().substring(begin_pos, begin_pos + num);
}


//过滤特殊符号（如' "） 
function jscomFiltrateSomeKeyForKeyPress() {
    if (event.keyCode == 39 || event.keyCode == 34) {
        event.keyCode = 0;
    }
}

//判断是否有检查框被选中
//返回 true有  false 无
function jscomIsCheckBoxSelect(frm) {
    var src;

    flag = false;
    for (var i = 0; i < frm.elements.length; i++) {
        src = frm.elements[i];
        if (src.type == "checkbox" && src.checked) {
            flag = true;
            break;
        }
    }
    return flag;
}

//全选框事件
function jscomToggleAllCheckBox() {
    var e = event.srcElement;
    if (e == null || e.type != "checkbox") {
        return;
    }
    var flag = e.checked;

    var inputs = document.forms[0].elements;
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type == "checkbox" && inputs[i].name.indexOf("chkSelect") >= 0) {
            inputs[i].checked = flag;
        }
    }
}

function jscomIsEmptyString(str) {
    return ((str == null) || (str.length == 0));
}

/*
格式化数字
num  要格式化的数值
decimal_num	小数位数 
has_split 是否要千分为分割符 true or false
	
返回 格式化的字符串
*/
function jscomFormatNumber(num, decimal_num, has_split) {
    //非数值，直接返回
    if (isNaN(num)) {
        return num;
    }

    var tmp_num, tmp_decimal_num;

    tmp_decimal_num = decimal_num;
    if (isNaN(decimal_num)) {
        tmp_decimal_num = 0;
    }

    tmp_num = num * Math.pow(10, tmp_decimal_num);
    tmp_num = Math.round(tmp_num);
    tmp_num = tmp_num / Math.pow(10, tmp_decimal_num);
    if (!has_split) {
        return tmp_num;
    }
    //千分为分割符 以后处理
    return tmp_num;
}

function jscomTrimString(str) {
    var ts = "";

    if (str.length < 1) return "";

    for (var i = (str.length - 1); i != -1; i--) {
        if (str.charAt(i) != ' ') { break; }
    }
    ts = str.substring(0, i + 1);

    for (var i = 0; i < ts.length; i++) {
        if (str.charAt(i) != ' ') { break; }
    }
    return ts.substring(i, ts.length);
}

BakupBodyFocus = null;
BackupWaitBodyContext = null;
CanCancelWait = true;

function jscomLockScreenToWait(msg) {
    if (BakupBodyFocus == null && BackupWaitBodyContext == null) {
        BakupBodyFocus = document.body.onfocus + "";
        BackupWaitBodyContext = document.body.oncontextmenu + '';
        document.body.onfocus = jscomLockScreenToWait;
        document.body.oncontextmenu = jscomCancelClick;
    }
    var div = document.getElementById("divLockWaiting");
    if (div + '' == "undefined") {
        div = document.createElement("DIV");
        div.setAttribute("id", "divLockWaiting");
        div.className = "WaitBox";
        div.title = "点击可以取消";
        div.style.padding = 10;
        div.style.paddingLeft = 30;
        div.style.paddingRight = 30;
        div.innerHTML = msg;
        document.body.appendChild(div);
    }
    var x = (document.body.clientWidth - div.offsetWidth) / 2;
    var y = (document.body.clientHeight - div.offsetHeight) / 2;
    div.style.pixelLeft = x;
    div.style.pixelTop = y;
    div.style.visibility = "visible";
    div.onclick = jscomCancelClick;
    div.setCapture();
}

function jscomUnlockScreenWait() {
    var div = document.getElementById("divLockWaiting");
    if (div + '' == "undefined") {
        return;
    }
    div.style.visibility = "hidden";
    document.body.onfocus = BakupBodyFocus;
    document.body.oncontextmenu = BackupWaitBodyContext;
    BakupBodyFocus = null;
    BackupWaitBodyContext = null;
    document.releaseCapture();
}

function jscomCancelClick() {
    var elem = event.srcElement;
    if (CanCancelWait == true && elem.className == 'WaitBox') {
        jscomUnlockScreenWait();
        event.cancelBubble = false;
        return false;
    }
    return false;
}

function jscomShowScreenWait(msg) {
    var div = document.getElementById("divWaiting");
    if (div + '' == "undefined") {
        div = document.createElement("DIV");
        div.setAttribute("id", "divWaiting");
        div.className = "WaitBox";
        div.style.padding = 10;
        div.style.paddingLeft = 30;
        div.style.paddingRight = 30;
        div.innerHTML = msg;
        document.body.appendChild(div);
    }
    var x = (document.body.clientWidth - div.offsetWidth) / 2;
    var y = (document.body.clientHeight - div.offsetHeight) / 2;
    div.style.pixelLeft = x;
    div.style.pixelTop = y;
    div.style.visibility = "visible";
}

function jscomHiddlenScreenWait() {
    var div = document.getElementById("divWaiting");
    if (div + '' == "undefined") {
        return;
    }
    div.style.visibility = "hidden";
}
//加载一个或多个函数到window.onload方法
function jscomAddLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

/**
* 打开通用查询列表的模式窗口
* dialogId 在Config/Common/DialogConfig.xml 中定义的dialog id
* width 默认650 可选
* height 默认480 可选
* isMulti 是否为多选 true / false 默认false
* ids 已经选中的内码 ,分开 可选
* names 已经选中的名称 ,分开 可选
* searchWord 查询的默认值
* appendTitle 其他传入的查询条件 标题
* appendType 其他传入的查询条件 类型
* appendText 其他传入的查询条件 名称
* appendValue 其他传入的查询条件 值
* rightCode 权限编码
* 返回的是Object obj对象 有obj.Value,obj.Name,obj.Desc  如果obj为空(null) 表示没有选择 清除的时候是obj.Key obj.Name obj.Desc都为""
* 用法例子：
*
*    //默认查出通用代码
*   var v = jscomShowQueryDialog("ComCode",650,480,"false","","","","","代码类型","1");
*   if(v!=null){
*		document.forms[0].codeID.value = v.Value;
*		document.forms[0].codeName.value = v.Name;
*		document.forms[0].codeDesc.value = v.Desc;
*   }
*/
//jscomShowQueryDialog(dialogID,width,height,isMulti,ids,names,searchWord,appendTitle,appendType,appendText,appendValue,rightCode) 
function jscomShowQueryDialog(dialogID, width, height, isMulti, ids, names, searchWord,
    appendTitle, appendType, appendText, appendValue, rightCode) {
    if (width == null || typeof (width) == "undefined" || width == "") {
        width = "650";
    }
    if (height == null || typeof (height) == "undefined" || height == "") {
        height = "480";
    }
    if (isMulti == null || typeof (isMulti) == "undefined" || (isMulti != "true" && isMulti != "True" && isMulti != "false" && isMulti != "False")) {
        isMulti = "false";
    }
    if (ids == null || typeof (ids) == "undefined") {
        ids = "";
    }
    if (names == null || typeof (names) == "undefined") {
        names = "";
    }
    if (searchWord == null || typeof (searchWord) == "undefined") {
        searchWord = "";
    }
    if (appendTitle == null || typeof (appendTitle) == "undefined") {
        appendTitle = "";
    }
    if (appendType == null || typeof (appendType) == "undefined") {
        appendType = "";
    }
    if (appendText == null || typeof (appendText) == "undefined") {
        appendText = "";
    }
    if (appendValue == null || typeof (appendValue) == "undefined") {
        appendValue = "";
    }
    if (rightCode == null || typeof (rightCode) == "undefined") {
        rightCode = "";
    }
    var url = "../Common/DialogFrame.aspx?DialogID=" + dialogID + "&Multi=" + isMulti + "&SearchWord=" + searchWord;
    url = url + "&AppendTitle=" + appendTitle + "&AppendType=" + appendType + "&AppendText=" + appendText + "&AppendValue=" + appendValue;
    url = url + "&IDs=" + ids + "&Names=" + names + "&RightCode=" + rightCode; ;
    //alert(url);
    //jscomNewOpenBySize(url,"aaa",680,450);
    return window.showModalDialog(url, "", "help: No; scroll:No;resizable: No; status: No;dialogWidth:" + width + "px;dialogHeight:" + height + "px");
}

//显示键盘输入密码
function jscomShowKeyBoard(objInputID) {
    var objInput = document.getElementById(objInputID);
    if (objInput) {
        var intLeft = 100 + Math.random() * 400;
        while (intLeft > (screen.width - 282)) { intLeft = 100 + Math.random() * 400; }
        var intTop = 100 + Math.random() * 300;
        while (intLeft > (screen.width - 95)) { intTop = 100 + Math.random() * 300; }
        //var intLeft=document.body.scrollLeft+event.clientX; //获取当前鼠标位置的X坐标
        //var intTop=document.body.scrollTop+event.clientY; //获取当前鼠标位置的Y坐标
        var strUrl = "Modules/KeyBorad.htm";
        var strStyle = "dialogLeft=" + intLeft + "pt;dialogTop=" + intTop + "pt;dialogWidth=282pt;dialogHeight=95pt;center=no;resizable=no;status=NO;help=off;"
        var strDate = objInput.value;
        var strData = window.showModalDialog(strUrl, objInput, strStyle);
    }
}

var jscomHexCase = 0; var jscomB64Pad = ""; var jscomChrSZ = 8;
function jscomMD5(s) { return binl2hex(core_md5(str2binl(s), s.length * jscomChrSZ)); }; function b64_md5(s) { return binl2b64(core_md5(str2binl(s), s.length * jscomChrSZ)); }; function str_md5(s) { return binl2str(core_md5(str2binl(s), s.length * jscomChrSZ)); }; function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }; function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }; function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }; function md5_vm_test() { return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; }; function core_md5(x, len) { x[len >> 5] |= 0x80 << ((len) % 32); x[(((len + 64) >>> 9) << 4) + 14] = len; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (var i = 0; i < x.length; i += 16) { var olda = a; var oldb = b; var oldc = c; var oldd = d; a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936); d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302); a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222); c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844); d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); a = safe_add(a, olda); b = safe_add(b, oldb); c = safe_add(c, oldc); d = safe_add(d, oldd); }; return Array(a, b, c, d); }; function md5_cmn(q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); }; function md5_ff(a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); }; function md5_gg(a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); }; function md5_hh(a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t); }; function md5_ii(a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); }; function core_hmac_md5(key, data) { var bkey = str2binl(key); if (bkey.length > 16) bkey = core_md5(bkey, key.length * jscomChrSZ); var ipad = Array(16), opad = Array(16); for (var i = 0; i < 16; i++) { ipad[i] = bkey[i] ^ 0x36363636; opad[i] = bkey[i] ^ 0x5C5C5C5C; }; var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * jscomChrSZ); return core_md5(opad.concat(hash), 512 + 128); }; function safe_add(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF); }; function bit_rol(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); }; function str2binl(str) { var bin = Array(); var mask = (1 << jscomChrSZ) - 1; for (var i = 0; i < str.length * jscomChrSZ; i += jscomChrSZ) bin[i >> 5] |= (str.charCodeAt(i / jscomChrSZ) & mask) << (i % 32); return bin; }; function binl2str(bin) { var str = ""; var mask = (1 << jscomChrSZ) - 1; for (var i = 0; i < bin.length * 32; i += jscomChrSZ) str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask); return str; }; function binl2hex(binarray) { var hex_tab = jscomHexCase ? "0123456789ABCDEF" : "0123456789abcdef"; var str = ""; for (var i = 0; i < binarray.length * 4; i++) { str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF); }; return str; }; function binl2b64(binarray) { var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var str = ""; for (var i = 0; i < binarray.length * 4; i += 3) { var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF); for (var j = 0; j < 4; j++) { if (i * 8 + j * 6 > binarray.length * 32) str += jscomB64Pad; else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F); }; }; return str; }
function OpDvc(objDvc) {
    try {
        objDvc.OpenDevice(1, "");
        return true;
    }
    catch (e) {
        return false;
    }
}

function ClsDvc(objDvc) {
    try {
        objDvc.CloseDevice();
        return true;
    }
    catch (e) {
        return false;
    }
}

function ChgDir(objDvc) {
    try {
        objDvc.ChangeDir(0x00000100, 0x01, "");
        return true;
    }
    catch (e) {
        return false;
    }
}

function GetSerial(objDvc) {
    var serial = "";
    try {
        serial = objDvc.GetStrProperty(0x07, 0, "");
        //alert(serial);
        return serial;
    }
    catch (e) {
        alert("没有密虎设备!或者您IE禁用了设备!");
        return "";
    }
}

function GetDgst(objDvc, rdm) {
    var dgst = "";
    try {
        ChgDir(objDvc);
        objDvc.OpenFile(0x40, 1);
        dgst = objDvc.HashToken(1, 65281, rdm);
        objDvc.CloseFile();
        return dgst;
    }
    catch (e) {
        alert("没有密虎设备!或者您IE禁用了设备!");
        return "";
    }
}
// JavaScript Document
//图片经淡化button1
function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; }
    }
}

//图片淡化button2

nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta) {
    if (!document.all)
        return
    if (object != "[object]") {
        setTimeout("nereidFade(" + object + "," + destOp + "," + rate + "," + delta + ")", 0);
        return;
    }

    clearTimeout(nereidFadeTimers[object.sourceIndex]);

    diff = destOp - object.filters.alpha.opacity;
    direction = 1;
    if (object.filters.alpha.opacity > destOp) {
        direction = -1;
    }
    delta = Math.min(direction * diff, delta);
    object.filters.alpha.opacity += direction * delta;

    if (object.filters.alpha.opacity != destOp) {
        nereidFadeObjects[object.sourceIndex] = object;
        nereidFadeTimers[object.sourceIndex] = setTimeout("nereidFade(nereidFadeObjects[" + object.sourceIndex + "]," + destOp + "," + rate + "," + delta + ")", rate);
    }
}

function MM_displayStatusMsg(msgStr) { //v1.0
    status = msgStr;
    document.MM_returnValue = true;
}

function ProtocolCheck() {
    
    var cbCallanProtocol = document.getElementById("cbCallanProtocol");
    var objPro = document.getElementById("cbProtocol");
    var objBtnArea = document.getElementById("btnArea");

    if (!cbCallanProtocol) return false;
    if (!objPro) return false;
    if (!objBtnArea) return false;

    cbCallanProtocol.onclick = function() {
        if (this.checked && objPro.checked) {
            objBtnArea.style.visibility = "visible";
        }
        else {
            objBtnArea.style.visibility = "hidden";
        }
    }

    objPro.onclick = function() {
        if (this.checked && cbCallanProtocol.checked) {
            objBtnArea.style.visibility = "visible";
        }
        else {
            objBtnArea.style.visibility = "hidden";
        }
    }
}
jscomAddLoadEvent(ProtocolCheck);
