/*-----------------------------------------------------------------------------
// Copyright (C) 2011 才虎网络有限公司
// 版权所有。 
//
// 文件名：common.js
// 文件功能描述：共通功能的函数集合。
// 创建标识：2011/05/10
//
// 修改标识：
// 修改描述：
-----------------------------------------------------------------------------*/

//调整表格高度时的要减去的高度.
var _iHtTitle = 25;     //程序Title
var _iHtMenu = 75;      //menu菜单
var _iHtTab = 26;       //Tab标签
var _iHtFilter = 70;    //过滤条件
var _iHtTblTitle = 27;  //表格表头
var _iHtTotal = 28;     //合计行
var _iHtPager = 29 + 2; //分页
var _iHtCopyright = 29; //版权信息
var _iFrmHeight = _iHtMenu + _iHtTab + _iHtCopyright;                               //iFrame的高度
var _iTblHeight = _iHtMenu + _iHtTab + _iHtCopyright + _iHtFilter + _iHtTblTitle;   // 表格的高度，不包含 合计行，分页

//combobox的宽度，
var _iWidth65 = 65;
var _iWidth80 = 80;
var _iWidth90 = 90;
var _iWidth100 = 100;
var _iWidth120 = 120;
var _iWidth150 = 150;
var _iWidth190 = 190;

//日期控件使用
var _DateControlID = "";


//页面加载事件
$(function () {
    //窗口点击事件的添加
    $("body,*").click(function (event) {
        //隐藏浮动按钮
        if (event.target.className != "operate") {
            $(".operate").hide();
        }

        //点击其它控件时，关闭下拉框
        if (!$(event.target).is(".combo-text") && !$(event.target).is(".combo-arrow")) {
            $(".layoutpanel").each(function () {
                if ($(this).css("display") == "block") {
                    $(".layoutpanel").css("display", "none");
                }
            });
        }

        //$(window.parent.document).find('#topnav .subnav').css("display", "none");
        //$(window.parent.document).find('.menu-shadow').css("display", "none");
    }).keydown(function (event) {
        //屏蔽Backspace键，当isContentEditable的值为false时，则屏蔽此按键
        if (event.keyCode == 8 && !document.activeElement.isContentEditable) {
            return false;
        }
        //屏蔽ESC键
        if (event.keyCode == 27) {
            return false;
        }
    });


    $("ul.addnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled - Adds empty span tag after ul.subnav

    $("ul.topnav li span").click(function () { //When trigger is clicked...

        //Following events are applied to the subnav itself (moving subnav up and down)
        $(this).parent().find("ul.addnav").slideDown('fast').show(); //Drop down the subnav on click

        $(this).parent().hover(function () {
        }, function () {
            $(this).parent().find("ul.addnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
        });

        //Following events are applied to the trigger (Hover events for the trigger)
    }).hover(function () {
        $(this).addClass("subhover"); //On hover over, add class "subhover"
    }, function () {	//On Hover Out
        $(this).removeClass("subhover"); //On hover out, remove class "subhover"
    });
});


/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**验证类方法**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

//不允许输入的特殊字符//特殊字符包括：'  "
function checkValidate(e) {
    var v = "";
    if (window.event) {
        v = e.keyCode; //IE
    }
    else if (e.which) {//FirFox
        v = e.which;
    }
    /******字符码 
    * '---39
    * "---34
    */
    if (v == 39 || v == 34) {//输入无效
        return false;
    }
}

//不允许粘贴的特殊字符（'  "）
function validatePaste() {
    var text = clipboardData.getData("Text");
    for (var i = 0; i < text.length; i++) {
        var asc = text.charCodeAt(i);
        if (asc == 39 || asc == 34) {
            return false;
        }
    }
}

//验证是否数字（0-9）
function checkNum(e) {
    var v = "";
    if (window.event) {
        v = e.keyCode; //IE
    }
    else if (e.which) {//FirFox
        v = e.which;
    }
    if (v == 48 || v == 49 || v == 50 || v == 51 || v == 52 || v == 53 || v == 54 || v == 55 || v == 56 || v == 57  //数字键
        || v == 8 || v == 9 || v == 13                  //Tab键、退格键、回车键    
        || v == 37 || v == 38 || v == 39 || v == 40)    //左、上、右、下
    {
        return true;
    }
    else {
        return false;
    }
}

//只允许粘贴数字（0-9）
function numPaste() {
    var text = clipboardData.getData("Text");
    for (var i = 0; i < text.length; i++) {
        var asc = text.charCodeAt(i);
        var reg = /^[1-9][0-9]*$/;
        if (reg.test(asc)) {
            return true;
        }
        else {
            return false;
        }
    }
}

//验证邮箱
function checkEmail(email) {
    var regInvalid = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
    var regValid = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
    var strRet = (!regInvalid.test(email) && regValid.test(email));
    return strRet;
}

//数据有效性的验证 start
//function isValidNum(k) {//判断是否是数字
//    return ((k == 9) || (k == 13) || (k == 17) || (k == 67)
//    || (k == 86) || (k == 46) || (k == 8) || (k == 189)
//    || (k == 109) || (k == 190) || (k == 110) || (k >= 48 && k <= 57)
//    || (k >= 96 && k <= 105) || (k >= 37 && k <= 40));
//}

//是数字的可以键入
//function numKeyPress() {
//    var k = window.event.keyCode;
//    return isValidNum(k);
//}

//验证是否数字，包括小数（0-9.）
//function checkDecimal(e) {
//    var v = "";
//    if (window.event) {
//        v = e.keyCode; //IE
//    }
//    else if (e.which) {//FirFox
//        v = e.which;
//    }
//    /*var reg = /^[1-9][0-9]*$/;
//    if (reg.test(v)) {
//    return false;
//    }
//    else {
//    return true;
//    }//*/
//    // alert(v);
//    if (v == 48             //数字键
//     || v == 49 || v == 50
//     || v == 51 || v == 52
//     || v == 53 || v == 54
//     || v == 55 || v == 56
//     || v == 57
//     || v == 46             //小数点
//     || v == 8              //退格键
//     || v == 9              //Tab键
//     || v == 13             //回车键
//     || v == 37 || v == 38 || v == 39 || v == 40 //left,up,right,down
//     ) {
//        return true;
//    }
//    else {
//        return false;
//    } //*/
//    /*if (v != "") {
//    if (isNaN(v)) {
//    return true;
//    }
//    else {
//    return false;
//    }
//    }//*/
//}

//只允许粘贴数字，包括小数（0-9）
//function DecimalPaste() {
//    var text = clipboardData.getData("Text");
//    for (var i = 0; i < text.length; i++) {
//        var asc = text.charCodeAt(i);
//        var reg = /^[1-9].[0-9]*$/;
//        if (reg.test(asc)) {
//            return true;
//        }
//        else {
//            return false;
//        }
//    }
//}

//验证手机号码
//function checkMobliePhone(value) {
//    var reg = /^1[3,5,7,8][0-9]{9}$/;
//    if (!reg.test(value)) {
//        return false;
//    }
//    else {
//        return true;
//    }
//}

//验证固定电话
//function checkTelephone(value) {
//    var reg = /^((0[1-9]?[0-9]{2}\-[1-9])|[1-9])[0-9]{6,7}$/;
//    if (!reg.test(value)) {
//        return false;
//    }
//    else {
//        return true;
//    }
//}

//检查输入的字符串是否全部是数字
//function chkNum(str) {
//    return str.match(/\D/) == null;
//}

//检查Decimal,包括小数点
//function chckDecimal(str) {
//    if (str.match(/^-?\d+(\.\d+)?$/g) == null) {
//        return false;
//    }
//    else {
//        return true;
//    }
//}

//验证汉字
//function isChinese(elem) {
//    var pattern = /[^\x00-\xff]/g;
//    if (pattern.test(elem)) {
//        //包含汉字
//        return false;
//    } else {
//        //不包含
//        return true;
//    }
//}

//function checkChinese(str) {
//    if (escape(str).indexOf("%u") != -1) {
//        return true;
//    }
//    else {
//        return false;
//    }
//}

//check汉字输入
//function chkIme(id) {
//    $("#" + id).bind("paste dragenter", function () { return false; }).css("ime-mode", "disabled").attr("maxlength", "50");
//}

//验证日期控件中汉字的输入
//function checkDateChinese(id) {
//    $("#" + id).bind("paste dragenter", function () { return false; }).css("ime-mode", "disabled").attr("maxlength", "10");
//}

/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑**验证类方法**↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/



/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**处理类方法**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

//去掉所有空格，包括字符串内部的空格
function trimAll(s) {
    if (s != "" && s != null)
        return s.replace(/[ ]/g, "");
    else
        return s;
}

//去左空格;
function ltrim(s) {
    if (s != "" && s != null)
        return s.replace(/(^\s*)/g, "");
    else
        return s;
}

//去右空格;
function rtrim(s) {
    if (s != "" && s != null)
        return s.replace(/(\s*$)/g, "");
    else
        return s;
}

//去左右空格; 
function trim(s) {
    //s.replace(/(^\s*)|(\s*$)/g, "");
    s = rtrim(ltrim(s));
    //对html代码进行转义。
    //s = s.replace(/&/g, "&amp;");
    s = s.replace(/>/g, "&gt;");
    s = s.replace(/</g, "&lt;");
    //对' " \转义
    s = s.replace(/[\\]/g, '\\\\');
    s = s.replace(/'/g, "\\'");
    s = s.replace(/"/g, '\\"');

    return s;
}

//特殊字符的转义
function convertSpecial(s) {
    //对html代码进行转义。
    //s = s.replace(/>/g, "&gt;");
    //s = s.replace(/</g, "&lt;");
    //对' " \转义
    s = s.replace(/[\\]/g, '\\\\');
    s = s.replace(/'/g, "\\'");
    s = s.replace(/"/g, '\\"');
    return s;
}

//转换特殊字符
function escape(s) {
    s = s.replace(/&gt;/g, ">");
    s = s.replace(/&lt;/g, "<");
    return s;
}

//解析后台返回的Json格式的数据
function ParseData(json) {
    if (json == "" || json == null) {
        return null;
    }
    var obj = eval('(' + json + ')');
    if (obj.Records != undefined && obj.Records == "{}") {
        obj.Records = [];
    }
    return obj;
}

/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑**处理类方法**↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/



/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**JqGrid控件**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

/*-----------------------------------------------
///功能：创建树风格的表格
///创建人：  李乐
///创建时间：2011年05月25日
///修改人：  王思波
///修改时间：2011年05月25日
///修改原因：添加了一些注释，修改了参数的名字
///描述：本方法是创建具有树功能的列表，用户可以展开、收缩行的下级列表；此方法执行完后，需要调用loadTreeData方法来加载数据；
///     前四个参数必需设置，根据实际情况来确定是否传后两个参数
///     例如，createGrid(strTableID, objColNames, objColModel, objJsonDatas)不需要后面两个参数，调用的时候就不在写后两个参数；
///          如果需要加方法参数时，在定义方法的格式为：funcSelectRow参数格式:方法名字(rowId)
///                                                 funcGridComplete参数格式:方法名字()
///参数：
///     ①strGridID:表格ID
///     ②objColNames:表格列名
///     ③objColModel:表格列属性
///     ④objJsonDatas:表格数据源，Json格式
///     ⑤strColExpandKey:伸缩列的字段名称
///     ⑥funcGridComplete:表格的gridComplete事件方法，此参数类型是方法对象
///     ⑦funcSelectRow:表格的onSelectRow事件方法，此参数类型是方法对象
///返回值：无
-------------------------------------------------*/
function createTreeGrid(strTableID, objColNames, objColModel, objJsonDatas, strColExpandKey, funcSelectRow, funcGridComplete, funcDbClick) {
    //当数据集为空时，格式化数据集的空值
    if (!objJsonDatas || objJsonDatas == "{}") {
        objJsonDatas = [];
    }
    //设置表格属性
    $("#" + strTableID).jqGrid({
        datatype: "local",
        colNames: objColNames,
        colModel: objColModel,
        data: objJsonDatas[0],
        treeGrid: true,
        treedatatype: "local",
        treeGridModel: 'adjacency',
        ExpandColumn: strColExpandKey,
        ExpandColClick: true,
        editable: true,
        rownumbers: false,
        rowNum: 999999,
        sortname: "id",
        localReader: { id: "bh" },
        autowidth: true,
        onSelectRow: function (rowId) {
            //把参数中的方法加到当前事件中
            if (funcSelectRow) {
                funcSelectRow.call(this, rowId); //选择行事件
            }

            //点击行调整表格滚动条
            resizeGridScroll(strTableID);
        },
        ondblClickRow: function (selRowId) {
            if (funcDbClick) {
                funcDbClick.call(this, "2", selRowId); //双击行事件
            }
        },
        gridComplete: function () {
            if (funcGridComplete) {
                funcGridComplete.call(this); //表格加载事件
            }
        }
    });

    //拖动滚动条时，隐藏浮动按钮
    $("div.ui-jqgrid-bdiv", "#gbox_" + strTableID).scroll(function (e) { $("div.operate").remove(); });
}

/*-----------------------------------------------
///功能：添加TreeGrid数据
///创建人：  李乐
///创建时间：2011年05月25日
///修改人：  ------------
///修改时间：------------
///描述：执行完createTreeGrid方法后，再执行此方法；执行顺序不可更改
///参数：无
///返回值：无
-----------------------------------------------*/
function loadTreeData(strTableID, objJsonDatas) {
    if (objJsonDatas == "{}") {
        objJsonDatas = [];
    }
    $("#" + strTableID).clearGridData();
    $("#" + strTableID)[0].addJSONData({
        total: 1,
        page: 1,
        records: objJsonDatas.length,
        rows: objJsonDatas
    });
    $("#" + strTableID)[0] = null;
}

/*-----------------------------------------------
///功能：创建普通风格的表格
///创建人：  李乐
///创建时间：2011年05月25日
///修改人：  王思波
///修改时间：2011年05月25日
///修改原因：添加了一些注释
///描述：本方法是创建普通的表格；前四个参数必需设置，根据实际情况来确定是否传后两个参数
///     例如，createGrid(strTableID, objColNames, objColModel, objJsonData)不需要后面两个参数，调用的时候就不在写后两个参数；
///          如果需要加方法参数时，在定义方法的格式为：funcSelectRow参数格式:方法名字(rowId)
///                                                 funcGridComplete参数格式:方法名字()
///参数：
///     ①strGridID:表格ID
///     ②objColNames:表格列名
///     ③objColModel:表格列属性
///     ④objJsonDatas:表格数据源，Json格式
///     ⑤funcSelectRow:表格的onSelectRow事件方法，此参数类型是方法对象
///     ⑥funcGridComplete:表格的gridComplete事件方法，此参数类型是方法对象
///返回值：无
-----------------------------------------------*/
function createGrid(strTableID, objColNames, objColModel, objJsonDatas, funcSelectRow, funcGridComplete, isShowFooter, funcDbClick) {
    //当前数据源为空时，设置数据源变量为空对象
    if (!objJsonDatas || objJsonDatas == "{}") {
        objJsonDatas = [];
    }
    //是否显示合计行
    if (!isShowFooter) {
        isShowFooter = false;
    }
    //设置表格属性
    $("#" + strTableID).jqGrid({
        datatype: "local",       //数据源类型
        sortname: "bh",          //排序字段
        rowNum: 99999,           //显示行数
        gridview: true,          //页面加载速度快5-10倍
        autowidth: true,         //自动调整宽度(首次加载)
        rownumbers: true,        //序号列
        rownumWidth: 30,         //序号列宽度
        footerrow: isShowFooter, //合计行
        colNames: objColNames,   //列名称
        colModel: objColModel,   //列配置
        data: objJsonDatas,      //数据集
        onSelectRow: function (rowid) {
            if (funcSelectRow) {
                funcSelectRow.call(this, rowid); //选择行事件
            }
        },
        ondblClickRow: function (rowid) {
            if (funcDbClick) {
                funcDbClick.call(this, "2", rowid); //双击行事件
            }
        },
        gridComplete: function () {
            if (funcGridComplete) {
                funcGridComplete.call(this); //表格加载事件
            }
        }
    });

    //添加序号列的名称
    $("#" + strTableID).setLabel("rn", "序号");
    //$("table.ui-jqgrid-htable th:first", $("#gbox_" + strTableID)).text("序号");

    //拖动滚动条时，隐藏浮动按钮
    $("div.ui-jqgrid-bdiv", "#gbox_" + strTableID).scroll(function (e) { if ($("div.operate").length > 0) { $("div.operate").remove(); } });
}

/*-----------------------------------------------
///功能：创建数据行的浮动层
///创建人：  李乐
///创建时间：2011年05月25日
///修改人：  王思波
///修改时间：2011年05月26日
///修改原因：添加了一些注释
///修改人：  王思波
///修改时间：2011年09月17日
///修改原因：水平滚动条拖动最右边时，浮动层宽度问题
///描述：创建Grid行的浮动层，层中的内容有参数传入；调用此方法时在第一个参数位中加入this关键字，然后再写rowId、strFloatButtonHtml两个参数
///     例如，createFloatButton.call(this,rowId,字符串);
///参数：
///     ①rowId:当前选择行的索引号，此参数为固定格式
///     ②strFloatButtonHtml:要添加到浮动层里的内容
///返回值：无
-----------------------------------------------*/
function createFloatButton(rowid, strFloatButtonHtml, isAdminPage) {
    //浮动按钮内容的处理
    var arrButton = strFloatButtonHtml.split("-");  //按钮数组
    var strButtonHtml = "";                         //处理后按钮内容
    for (var intI = 0; intI < arrButton.length; intI++) {
        if (strButtonHtml != "") {
            strButtonHtml += "<label>-</label>" + arrButton[intI];
        }
        else {
            strButtonHtml = arrButton[intI];
        }
    }

    //移除浮动层控件
    if ($("div.operate").length > 0) {
        $("div.operate").remove();
    }
    //创建浮动层控件
    //$(this).parent().append("<div class=\"operate\">" + strButtonHtml + "</div>");
    $(".ui-jqgrid-view").append("<div class=\"operate\">" + strButtonHtml + "</div>");

    //选择行相关信息
    var objTr = $("#" + rowid);             //行对象
    var intTrWidth = objTr.outerWidth();    //行宽度
    var intTrHeight = objTr.outerHeight();  //行高度
    var intTrIndex = $(this).find("tr:visible").index(objTr); //行索引
    //Grid的带滚动条的DIV相关信息
    var objTableDiv = $("div.ui-jqgrid-bdiv");          //表格中有滚动条的DIV对象
    var intTableDivWidth = objTableDiv.outerWidth();    //表格中有滚动条的DIV宽度
    var intTableDivHeight = objTableDiv.outerHeight();  //表格中有滚动条的DIV高度
    var intTableScrollTop = objTableDiv.scrollTop();    //滚动条上下位置
    var intTableScrollLeft = objTableDiv.scrollLeft();  //滚动条左右位置
    var intTableScrollWidth = objTableDiv[0].scrollWidth;   //滚动条宽度
    var intTableScrollHeight = objTableDiv[0].scrollHeight; //滚动条高度

    //浮动层位置的计算
    var objOperater = $("div.operate");   //浮动层对象
    var intTop = objTr.offset().top - 41; //浮动层上下位置 //intTrHeight * intTrIndex + intTrHeight + 2
    var intLeft = intTableDivWidth - objOperater.outerWidth() - 25; //浮动层左右位置
    //操作员管理页面特殊的设置
    if (isAdminPage) {
        intTop -= 26;
    }
    //当选择表格底部的数据行时，浮动层显示在选择行上方
    if ((intTableDivHeight + intTableScrollTop - (intTrHeight * intTrIndex + 2)) < objOperater.outerHeight()) {
        intTop = intTop - intTrHeight - objOperater.outerHeight() - 3; //行高度-浮动层高度-浮动层与选择行的距离
    }
    //显示浮动层
    objOperater.css("top", intTop).css("left", intLeft).show();

    //释放内存
    arrButton = null;
    strButtonHtml = null;
    objTr = null;
    intTrWidth = null;
    intTrHeight = null;
    intTrIndex = null;
    objTableDiv = null;
    intTableDivWidth = null;
    intTableDivHeight = null;
    intTableScrollTop = null;
    intTableScrollLeft = null;
    objOperater = null;
    intTop = null;
    intLeft = null;
}

/*-----------------------------------------------
///功能：    调整表格的大小
///创建人：  王思波
///创建时间：2011年09月23日
///修改人：  --------------
///修改时间：--------------
///修改原因：--------------
///描述：当窗口最大化窗口、缩小窗口时，相应调整表格的高度、宽度来适应窗口大小
///      调用情况：页面加载、最大化窗口、缩小窗口
///参数：
///     ①strTableID:表格ID
///     ②isHaveFooter:是否有合计行
///     ③isHavePager:是否有分页控件
///返回值：无
-----------------------------------------------*/
function resizeGrid(strTableID, isHaveFooter, isHavePager) {
    var intWidth = window.parent.document.documentElement.clientWidth;                  //表格高度
    var intHeight = window.parent.document.documentElement.clientHeight - _iTblHeight;  //表格高度

    //去除合计行高度
    if (isHaveFooter) {
        intHeight -= _iHtTotal;
    }
    //去除分页高度
    if (isHavePager) {
        intHeight -= _iHtPager;
    }
    //合计行、分页都没有时的误差处理
    if (!isHaveFooter && !isHavePager) {
        intHeight -= 3;
    }

    //设置表格的大小
    $("#" + strTableID).jqGrid("setGridWidth", intWidth).jqGrid("setGridHeight", intHeight);

    //水平滚动条不在最左边时，调整合计单元格宽度
    $("#" + strTableID).footerData("set", { rn: "合计" });

    //调整弹出窗口遮罩层的高度
    if ($(".menu_dlg_bg").length > 0) {
        $(".menu_dlg_bg").height(intWidth - _iFrmHeight);
    }
    if ($(".menu_dlg_shield").length > 0) {
        $(".menu_dlg_shield").height(intWidth - _iFrmHeight);
    }

    //释放内存
    intWidth = null;
    intHeight = null;
}

/*-----------------------------------------------
///功能：    调整表格的垂直滚动条的位置
///创建人：  王思波
///创建时间：2011年09月23日
///修改人：  --------------
///修改时间：--------------
///修改原因：--------------
///描述：当表格中的垂直滚动条显示、隐藏时，相应调整表格的宽度；使用表格右边不出现滚动条所占用的宽度。
///      调用情况：页面加载、添加、删除、修改、查询、分页控件
///参数：
///     ①strTableID:表格ID
///返回值：无
-----------------------------------------------*/
function resizeGridScroll(strTableID) {
    var intGridWidth = $("#" + strTableID).width();     //表格宽度
    var intGridHeight = $("#" + strTableID).height();   //表格高度
    var objTableDiv = $("div.ui-jqgrid-bdiv", "#gbox_" + strTableID); //表格中有滚动条的DIV对象
    var intScrollMaxX = 0;  //水平滚动条的最大值
    var intScrollMaxY = 0;  //垂直滚动条的最大值
    var intWidth = 0;

    //出现垂直滚动条时，表格宽度应减去滚动宽度
    if (intGridHeight > objTableDiv.outerHeight()) {
        intWidth = intGridWidth - 18;
    }
    else if (intGridWidth + 18 == objTableDiv.outerWidth()) {
        intWidth = intGridWidth + 18;
    }

    //调整表格宽度
    if (intWidth > 0) {
        $("table.ui-jqgrid-htable", "#gbox_" + strTableID).width(intWidth); //表头宽度
        $("table.ui-jqgrid-btable", "#gbox_" + strTableID).width(intWidth); //行区域宽度
        $("table.ui-jqgrid-ftable", "#gbox_" + strTableID).width(intWidth); //合计行宽度
    }

    //当前使用GridUnload()的方法时，会出现控件不存在的情况
    if (objTableDiv.length > 0) {
        //滚动条最大值的取得
        intScrollMaxX = objTableDiv[0].scrollWidth - objTableDiv[0].clientWidth;
        //intScrollMaxY = objTableDiv[0].scrollHeight - objTableDiv[0].clientHeight;
        //水平滚动条在最右边时，调整表格搓行问题
        if (objTableDiv.scrollLeft() == intScrollMaxX) {
            objTableDiv.scrollLeft(objTableDiv.scrollLeft() - 1).scrollLeft(objTableDiv.scrollLeft() + 1);
        }
        //    //有垂直滚动条时，调整表格搓行问题
        //    if (objTableDiv.scrollLeft() > 0 && intScrollMaxY > 0) {
        //        objTableDiv.scrollTop(objTableDiv.scrollTop() - 1).scrollTop(objTableDiv.scrollTop() + 1);
        //    }
    }

    //释放内存
    intGridWidth = null;
    intGridHeight = null;
    objTableDiv = null;
    intScrollMaxX = null;
    intWidth = null;
}

/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑**JqGrid控件**↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/



/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**弹出窗口**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

/*-----------------------------------------------
///功能：创建弹出窗口模板
///创建人：  王思波
///创建时间：2011年05月20日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：本方法创建窗口可以设置保存按钮、窗口编辑区的Title是否显示， 并可以设置Title的具体内容；
///         Title分为左右俩部分；ID的名字分别为 窗口ID_pop_box_top_left、窗口ID_pop_box_top_right
///参数说明：①dlgId:弹出窗口ID
///         ②strButtonID:页面中隐藏按钮的ID
///         ③strTitle:窗口标题名称
///         ④isShowBoxTop:是否显示编辑区的Title
///         ⑤isShowButton:是否显示保存按钮
///           strTableName:表格ID，与类名同
///         draggable:是否能拖动
///      closeOnEscape :按esc键提出
///     bNoShieldDiv:是否创建遮罩层，默认创建
-----------------------------------------------*/
function creatDiv_ShowDialog(dlgId, strTitle, isShowBoxTop, isShowButton, strTableName, iWidth, bNoShieldDiv) {
    //隐藏浮动层
    $(".operate").hide();

    if (!iWidth) {
        iWidth = 648;
    }
    $("#" + dlgId).css("margin", "0px").css("padding", "0px");
    //父窗口创建，遮罩menu和tab的层
    if (!bNoShieldDiv) {
        window.parent.createShieldDiv(dlgId);
    }
    //创建弹出窗（添加/修改）
    //dialog(dlgId, "200", iWidth, true, "", false, false);
    dialog(dlgId);

    //追加按钮层//追加表单层	
    var strPop = "";
    var strShowBoxTop = "";
    var strShowButton = "";

    //窗口操作区的Title内容
    if (isShowBoxTop == false) {
        strShowBoxTop = " style=\"display:none;\"";
    }
    //页面下方的添加按钮
    if (isShowButton == false) {
        strShowButton = " style=\"display:none;\"";
    }

    //整个模板窗口的内容
    //strPop += "<div id='idPop' class=\"pop\" style=\"width:\"" + iWidth + "px;>";
    strPop += "<div class=\"pop\">";
    strPop += "<div class=\"pop_x\"><a href=\"#\" onclick=\"closeMyDlg('" + dlgId + "', 0, '" + strTableName + "');return false;\"></a></div>";
    strPop += "<div id=\"" + dlgId + "_pop_top\" class=\"ui-draggable pop_top\">";
    strPop += "     <h2>" + strTitle + "<font id=\"idMust\" class=\"must\"></font></h2>";
    strPop += "</div>";

    strPop += "<div class=\"pop_box\">";
    strPop += "<div id=\"" + dlgId + "_pop_box_top\" class=\"Features\" " + strShowBoxTop + ">";
    //strPop += "<a href=\"#\">登记批号</a>|<a href=\"#\">登记批号</a>";
    strPop += "</div>";

    strPop += "    <div class=\"pop_disp\">";
    strPop += "        <form id=\"" + dlgId + "_divform\"></form>";
    strPop += "    </div>";
    strPop += "    <div class=\"clr\"></div> ";

    strPop += "    <div class=\"box_btn_width\" " + strShowButton + ">";
    strPop += "        <div class=\"box_btn\">";
    strPop += "            <div class=\"btn02\"><a href=\"#\" onclick=\"saveMyData('" + dlgId + "', 2, '" + strTableName + "');return false;\">保存增加</a></div>";
    strPop += "            <div class=\"btn03\"><a href=\"#\" onclick=\"saveMyData('" + dlgId + "', 1, '" + strTableName + "');return false;\">保存退出</a></div>";
    strPop += "        </div>";
    strPop += "    </div>";
    strPop += "  </div>";
    strPop += "</div>";

    document.getElementById(dlgId + "_content").innerHTML = strPop;

    //增加窗口的拖动功能
    //$("#" + dlgId).parent().draggable({ "scroll": false });
    $("#" + dlgId + " .pop").css("width", iWidth);

    //    $("#" + dlgId).dialog("option", "width", iWidth);
    //    var iTop = 98;
    //    var iLeft = 120;
    //    $("#" + dlgId).dialog("option", "position", [iLeft, iTop]);
}

/*-----------------------------------------------
///功能：创建弹出窗口(包括表格的)模板
///创建人： weisc
///创建时间：2011年06月10日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：本方法创建窗口可以设置保存按钮、窗口编辑区的Title是否显示， 并可以设置Title的具体内容；
///         Title分为左右俩部分；ID的名字分别为 窗口ID_pop_box_top_left、窗口ID_pop_box_top_right
///参数说明：①dlgId:弹出窗口ID
///         ②strButtonID:页面中隐藏按钮的ID
///         ③strTitle:窗口标题名称
///         ④isShowBoxTop:是否显示编辑区的Title
///         ⑤isShowButton:是否显示保存按钮
///           strTableName:表格ID，与类名同
-----------------------------------------------*/
function creatDiv_ShowDlgHaveTbl(dlgId, strTitle, isShowBoxTop, isShowButton, strTableName, iWidth) {
    //隐藏浮动层
    $(".operate").hide();

    if (!iWidth) {
        iWidth = 800;
    }
    $("#" + dlgId).css("margin", "0px").css("padding", "0px");
    //父窗口创建，遮罩menu和tab的层
    window.parent.createShieldDiv(dlgId);

    //创建弹出窗（添加/修改）
    //dialog(dlgId, "200", iWidth, true, "", false, false);
    dialog(dlgId);
    $("#" + dlgId).css("margin", "0px").css("padding", "0px");

    //追加按钮层//追加表单层	
    var strPop = "";
    var strShowBoxTop = "";
    var strShowButton = "";

    //窗口操作区的Title内容
    if (isShowBoxTop == false) {
        strShowBoxTop = " style=\"display:none;\"";
    }
    //页面下方的添加按钮
    if (isShowButton == false) {
        strShowButton = " style=\"display:none;\"";
    }

    //整个模板窗口的内容
    strPop += "<div class=\"pop\">";
    strPop += "<div class=\"pop_x\"><a href=\"#\" onclick=\"closeMyDlg('" + dlgId + "', 0, '" + strTableName + "');return false;\"></a></div>";
    strPop += "<div id=\"" + dlgId + "_pop_top\" class=\"ui-draggable pop_top\">";
    strPop += "     <h2>" + strTitle + "<font id=\"idMust\" class=\"must\"></font></h2>";
    strPop += "</div>";

    strPop += "<div class=\"pop_box\">";
    strPop += "<div id=\"" + dlgId + "_pop_box_top\" class=\"Features\" " + strShowBoxTop + ">";

    //strPop += "<h3 id='idH3'>NO:gys-00001</h3>";
    //strPop += "<a href=\"#\">登记批号</a>|<a href=\"#\">登记批号</a>";

    strPop += "</div>";
    strPop += "    <div class=\"filter\">";
    strPop += "        <form id=\"" + dlgId + "_divform\"></form>";
    strPop += "    </div>";
    strPop += "    <div class=\"clr\"></div> ";

    //    strPop += "    <div class=\"pop_disp\">";
    //    strPop += "        <form id=\"" + dlgId + "_divform\"></form>";
    //    strPop += "    </div>";
    //    strPop += "    <div class=\"clr\"></div> ";

    strPop += "    <div class=\"box_btn_width\" " + strShowButton + ">";
    strPop += "        <div class=\"box_btn\">";
    strPop += "            <div class=\"btn02\"><a href=\"#\" onclick=\"saveMyData('" + dlgId + "', 2, '" + strTableName + "');return false;\">保存增加</a></div>";
    strPop += "            <div class=\"btn03\"><a href=\"#\" onclick=\"saveMyData('" + dlgId + "', 1, '" + strTableName + "');return false;\">保存退出</a></div>";
    strPop += "        </div>";
    strPop += "    </div>";
    strPop += "  </div>";
    strPop += "</div>";

    document.getElementById(dlgId + "_content").innerHTML = strPop;

    //增加窗口的拖动功能
    //$("#" + dlgId).parent().draggable({ "scroll": false });
    $("#" + dlgId + " .pop").css("width", iWidth);
    //    $("#" + dlgId).dialog("option", "width", iWidth);
    //    var iTop = 98;
    //    var iLeft = 120;
    //    $("#" + dlgId).dialog("option", "position", [iLeft, iTop]);

}

/*-----------------------------------------------
//功能介绍：创建弹出窗口层（不是用dialog）
///创建人：  魏树臣
///创建时间：2011年09月08日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：
///参数说明：①dlgId：层的ID
-----------------------------------------------*/
function dialog(dlgId) {
    //查找是否已经存在弹出窗口，存在则根据其z-index设定新窗口的z-index值
    var objShield = $(".menu_dlg_shield");
    var maxZindex = 0;
    //存在多个弹出窗口
    if (objShield.length > 1) {
        for (var i = 0; i < objShield.length; i++) {
            if (maxZindex < objShield[i].style.zIndex) {
                maxZindex = parseInt(objShield[1].style.zIndex) + 2;
            }
        }
    }
    //存在一个弹出窗口
    else if (objShield.length > 0) {
        if (maxZindex < objShield.css("z-index")) {
            maxZindex = parseInt(objShield.css("z-index")) + 2;
        }
    }

    //创建弹出窗口的遮罩层
    $("body").append("<div id='body_" + dlgId + "' class='menu_dlg_shield'></div>");
    $("#body_" + dlgId).css("display", "block");
    $("#body_" + dlgId).height(window.parent.document.documentElement.clientHeight - _iFrmHeight);

    $("#" + dlgId).addClass("menu_dlg_bg");
    $("#" + dlgId).height(window.parent.document.documentElement.clientHeight - _iFrmHeight);
    $("#" + dlgId).show()
    $('#' + dlgId).append('<div id="' + dlgId + '_content" class="menu_dlg_frm"></div>');
    //存在弹出窗口，重新设定遮罩层和弹出窗口的z-index值
    if (maxZindex > 0) {
        $("#body_" + dlgId).css("z-index", maxZindex);
        $('#' + dlgId).css("z-index", maxZindex + 1);
    }
}

/*-----------------------------------------------
///功能：关闭ciho创建的弹出窗口层
///创建人：  魏树臣
///创建时间：2011年09月08日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：
///参数说明：①dlgId：层的ID
///         ②bNoShieldDiv：没有遮罩层：默认：false（即：有遮罩层）
///                                    传参：true（即：无遮罩层）
-----------------------------------------------*/
function cihoDlgClose(dlgId, bNoShieldDiv) {
    //删除窗体的遮罩层
    $("#body_" + dlgId).remove();

    $('#' + dlgId).hide();
    var obj = $('#' + dlgId);
    for (var i = 0, l = obj.length; i < l; i++) {
        // Remove element nodes and prevent memory leaks
        if (obj[i].nodeType === 1) {
            jQuery.cleanData(obj[i].getElementsByTagName("*"));
            obj[i].innerHTML = "";
        }
    }

    obj.empty();
    obj[0].innerHTML = "";

    //没有遮罩层，不关闭遮罩层
    if (!bNoShieldDiv) {
        window.parent.closeShieldDiv(dlgId);
    }
    //释放内存
    ParseData(window.external.DoOptions("TXtsz", "DoOthers", '{"option":"14"}'));

    obj = null;
}

function emptyMem(o) {
    if (o.hasChildNodes()) {
        for (var i = o.childNodes.length - 1; i >= 0; i--) {
            if (o.childNodes.item(i).hasChildNodes()) {
                emptyMem(o.childNodes.item(i));
            }
            else {
                o.removeChild(o.childNodes.item(i));

            }
        }
    }
}

/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑**弹出窗口**↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/



/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**日期控件**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

/*-----------------------------------------------
///功能：    绑定日期控件
///创建人：  李孟昌
///创建时间：2011年06月01日
///修改人：  王思波
///修改时间：2011年06月11日
///修改原因：日历样式的优化
///详细说明：
///参数说明：①strInputID:控件ID
///          ②isEnable:是否可输入日期
///          ③objSelector:控件所在的区域范围
///          ④funSelect:选择日期事件
///返回值：无
-----------------------------------------------*/
function inputAndBindData(strInputID, isEnable, objSelector, funSelect) {
    var objDateControl = {};

    //日期控件对象的取得
    if (objSelector != undefined && objSelector != null && objSelector != "") {
        //在指定的范围内查找日期控件
        objDateControl = $("#" + strInputID, objSelector);
    }
    else {
        //直接查找日期控件
        objDateControl = $("#" + strInputID);
    }

    //设置日期控件的内容居中显示
    objDateControl.css("text-align", "center");

    //设置日期控件不可输入
    objDateControl.attr("readonly", isEnable == undefined ? false : isEnable);

    //设置最大长度
    objDateControl.attr("maxlength", 10);

    //绑定日期控件
    objDateControl.datepicker({
        clearText: '清除', clearStatus: '清除已选日期',
        closeText: '关闭', closeStatus: '不改变当前选择',
        prevText: '&lt;上月', prevStatus: '显示上月',
        nextText: '下月&gt;', nextStatus: '显示下月',
        currentText: '今天', currentStatus: '显示本月',
        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
        monthNamesShort: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
        monthStatus: '选择月份', yearStatus: '选择年份',
        weekHeader: '周', weekStatus: '年内周次',
        dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
        dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
        dayStatus: '设置 DD 为一周起始', dateStatus: '选择 m月 d日, DD',
        dateFormat: 'yy-mm-dd',
        initStatus: '请选择日期',
        firstDay: 7,
        isRTL: false,

        changeYear: false,          //修改年
        changeMonth: false,         //修改月
        constraininput: true,       //格式限制
        showOtherMonths: true,      //显示其它月的日期
        showButtonPanel: false,     //显示操作按钮
        selectOtherMonths: true,    //是否可以选择其它月的日期
        showMonthAfterYear: true,   //年、月显示的顺序设置
        showAnim: "",               //日历弹出方式
        onSelect: function () { if (funSelect) { funSelect.call(this); } }
    });

    //设置日历的背景色
    $("#ui-datepicker-div").css("background-color", "#f8f8f8").css("z-index", 15000);

    //禁止粘贴非法日期
    objDateControl.bind("paste dragenter", function (e) { if (!checkDatePattern(window.clipboardData.getData("Text"))) { return false; } }).css("ime-mode", "disabled");

    //输入事件
    objDateControl.keydown(function () {
        if ($(this).attr("readonly") == false) {
            if ((event.keyCode >= 48 && event.keyCode <= 58) || (event.keyCode >= 96 && event.keyCode <= 105) ||
                (event.keyCode >= 37 && event.keyCode <= 40) || event.keyCode == 8 || event.keyCode == 46) {
                $(this).datepicker("hide");
            }
            else if (event.keyCode == 32) {
                $(this).datepicker("show");
            }
        }
        _DateControlID = this.id;
    });

    //内容变更事件
    objDateControl.change(function () { if (funSelect) { funSelect.call(this); } });

    //得到焦点事件
    objDateControl.focus(function () { $(".layoutpanel").css("display", "none"); $(".ciho-Tree").css("display", "none"); $(".ui-datepicker").css("display", "block"); });

    //失去焦点事件
    objDateControl.blur(function () { $(document).trigger("mousedown.hasDatepicker"); });

    //鼠标按下事件
    $("#ui-datepicker-div").bind("mousedown.hasDatepicker", function () { _DateControlID = this.id; });

    //点击窗口的其它地方时，验证日期格式
    $(document).bind("mousedown.hasDatepicker", function (e) {
        if (_DateControlID != "ui-datepicker-div" && (_DateControlID == "" || e.target.id != _DateControlID)) {
            var isCheckDate = checkDatePattern(objDateControl.val());
            if (isCheckDate == false) {
                //window.parent.cihoAlert(msg.dt.dtTypeErr, msgBox.dlgBtn.Ok, function () { objDateControl.focus(); _DateControlID = objDateControl.attr("id"); });
                objDateControl.val("");
                //objDateControl.focus();
            }
            else {
                objDateControl.val(formatDate(objDateControl.val()));
                _DateControlID = "";
            }
        }
    });
}

/*-----------------------------------------------
///功能：    日期格式的验证
///创建人：  王思波
///创建时间：2011年06月14日
///修改人：  --------------
///修改时间：--------------
///修改原因：日历样式的优化
///详细说明：验证输入的日期是否合法
///参数说明：①strDateValue:日期字符串
///返回值：合法返回true、不合法返回false
-----------------------------------------------*/
function checkDatePattern(strDateValue) {
    if (strDateValue != "") {
        //设置政策表达式
        var strReg = "";
        if (strDateValue.indexOf("-") >= 0) {
            //strReg = /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]|[0-9][1-9][0-9]{2}|[1-9][0-9]{3})-(((0?[13578]|1[02])-(0?[1-9]|[12][0-9]|3[01]))|((0?[469]|11)-(0?[1-9]|[12][0-9]|30))|((2|02)-(0?[1-9]|1[0-9]|2[0-8]))))|(((([0-9]{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[3579][26])00))-02-29)$/;
            strReg = /^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]|[0-9][1-9][0-9]{2}|[1-9][0-9]{3})-(((0?[13578]|1[02])-(0?[1-9]|[12][0-9]|3[01]))|((0?[469]|11)-(0?[1-9]|[12][0-9]|30))|((0?2)-(0?[1-9]|1[0-9]|2[0-8])))$/;
            //通表达式验证日期格式
            if (strReg.test(strDateValue)) {
                return true;
            }
            strReg = /^((([0-9]{2})(0[48]|[2468][048]|[13579][26]))-(0?2)-29)|(((0[48]|[2468][048]|[3579][26])00)-(0?2)-29)$/;
        }
        else {
            strReg = /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]|[0-9][1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|1[0-9]|2[0-8]))))|(((([0-9]{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[3579][26])00))0229)$/;

        }

        //通表达式验证日期格式
        return strReg.test(strDateValue);
    }
    //输入日期是空或合法时返回true
    return true;
}

/*-----------------------------------------------
///功能：    日期字格式化
///创建人：  李孟昌
///创建时间：2011年06月01日
///修改人：  王思波
///修改时间：2011年06月11日
///修改原因：格式化成带横线的日期
///修改时间：2011年06月20日
///修改原因：格式化各种没有横线的日期类型和带横线的各种类型；例如，201211、2012111、2011-1-1
///详细说明：支持日期对象、日期字符串格式化
///参数说明：①dateValue:日期字符串
///返回值：返回带横线的日期
-----------------------------------------------*/
function formatDate(dateValue) {
    if (dateValue != null && dateValue != undefined && dateValue != "") {
        var objYear = {};
        var objMonth = {};
        var objDay = {};

        //日期对象的格式化
        if (dateValue.toString().indexOf("UTC+0800") >= 0) {
            objYear = dateValue.getFullYear();
            objMonth = dateValue.getMonth() + 1;
            objDay = dateValue.getDate();

            if (objMonth < 10) {
                objMonth = "0" + objMonth;
            }
            if (objDay < 10) {
                objDay = "0" + objDay;
            }
            return (objYear + "-" + objMonth + "-" + objDay);
        }
        //日期字符串的格式化(没有横线的类型)
        else if (dateValue.indexOf("-") < 0) {
            objYear = dateValue.substr(0, 4);
            if (dateValue.length == 8) {
                objMonth = dateValue.substr(4, 2);
                objDay = dateValue.substr(6, 2);
            }
            else if (dateValue.length == 7) {
                if (parseInt(dateValue.substr(4, 2)) <= 12) {
                    objMonth = dateValue.substr(4, 2);
                    objDay = "0" + dateValue.substr(6, 2);
                }
                else {
                    objMonth = "0" + dateValue.substr(4, 1);
                    objDay = dateValue.substr(5, 2);
                }
            }
            else if (dateValue.length == 6) {
                objMonth = "0" + dateValue.substr(4, 1);
                objDay = "0" + dateValue.substr(5, 1);
            }
            return (objYear + "-" + objMonth + "-" + objDay);
        }
        //日期字符串的格式化(有横线的类型)
        else if (dateValue.length < 10 && dateValue.indexOf("-") >= 0) {
            objYear = dateValue.split("-")[0];
            objMonth = dateValue.split("-")[1];
            objDay = dateValue.split("-")[2];
            if (objMonth.length == 1) {
                objMonth = "0" + objMonth;
            }
            if (objDay.length == 1) {
                objDay = "0" + objDay;
            }
            return (objYear + "-" + objMonth + "-" + objDay);
        }
    }
    return dateValue;
}

//得到当前时间
function getNowDate() {
    var now = new Date();             //当前时间
    return formatDate(now);
}

/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑**日期控件**↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/



/*-----------------------------------------------------------------------------
///功能：创建TreeGrid的行号
///创建人：  李乐
///创建时间：2011年05月25日
///修改人：  ------------
///修改时间：------------
///描述：如果需要自己定义行号时使用此方法；把此方法做为createTreeGrid方法中funcGridComplete参数即可
///参数：无
///返回值：无
-----------------------------------------------------------------------------*/
//function addTreeIndex() {
//    var Ids = $(this).getDataIDs();
//    for (var i = 0; i < Ids.length; i++) {
//        $(this).setRowData(Ids[i], { idx: '<font color="gray">' + (i + 1) + '</font>' });
//    }
//}

/*-----------------------------------------------------------------------------
//功能介绍：创建弹出窗口（添加，修改）
//参   数：
dlgId, 窗口所属层的ID
iHeight, 窗口高度
iWidth, 窗口宽度
bModal, 是否模态
strTitle, 窗口标题
bResizable, 是否可改变大小
bcloseOnEscape，ESE键是否退出窗口
//返回 值：NULL
-----------------------------------------------------------------------------*/
//function dialog(dlgId, iHeight, iWidth, bModal, strTitle, bResizable, bcloseOnEscape) {
//    $("#" + dlgId).dialog({
//        draggable: false,
//        autoOpen: true,
//        //height: iHeight,
//        width: iWidth,
//        modal: bModal,
//        title: strTitle,
//        zIndex: 10000,
//        dialogClass: "panel window",
//        resizable: bResizable,
//        closeOnEscape: bcloseOnEscape,
//        close: function () {
//            window.parent.closeShieldDiv(dlgId);
//        }
//    });

//    //清空层中的内容
//    $("#" + dlgId).empty();

//    //清除dialog原有的标题栏样式
//    $(".ui-dialog-titlebar").remove();
//}


/*-----------------------------------------------
///功能：    保存数据
///创建人：  王思波
///创建时间：2011年05月25日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：把数据保存到数据库中，分为添加、修改两种操作
///参数说明：①strTableID:弹出窗口ID
///         ②strJsonData:保存数据字符串(json格式)
///         ③intSaveFlag:保存标志(1添加 2修改)
///返回值： 保存结果(0保存成功 其它值为保存失败)
-----------------------------------------------*/
function saveData(strTableID, strJsonData, strSaveFlag) {
    var objResult = {};
    if (strSaveFlag == "1") {
        //添加数据
        objResult = ParseData(window.external.DoOptions(strTableID, 'Add', strJsonData));
    }
    else if (strSaveFlag == "2") {
        //修改数据
        objResult = ParseData(window.external.DoOptions(strTableID, 'Edit', strJsonData));
    }

    //当保存失败时，弹出提示信息
    if (objResult.ReturnCode != 0) {
        window.top.cihoAlert(objResult.MSG, msgBox.dlgBtn.Ok);
    }

    //返回保存结果
    return objResult;
}

/*-----------------------------------------------
///功能：    创建保存的数据字符串
///创建人：  王思波
///创建时间：2011年05月26日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：把页面中所有input标签控件的内容组织成json格式的字符串；
///参数说明：①strDialogID:弹出窗口ID
///返回值： 要保存的json数据字符串
-----------------------------------------------*/
function getSaveDataInfo(strDialogID) {
    var strJsonData = "";
    //input标签控件的查找
    $(":input", $("#" + strDialogID + "_divform")).each(function () {
        if ($(this).attr("id") != null && $(this).attr("id") != "") {
            if ($(this).attr("type") == "text") {
                strJsonData += "\"" + $(this).attr("id") + "\":\"" + trim($(this).val()) + "\",";
            }
            else if ($(this).attr("type") == "checkbox" || $(this).attr("type") == "radio") {
                strJsonData += "\"" + $(this).attr("id") + "\":\"" + $(this).attr("checked") + "\",";
            }
        }
    });
    strJsonData = "{" + strJsonData.substr(0, strJsonData.length - 1) + "}";
    return strJsonData;
}

/*-----------------------------------------------
///功能：    保存数据
///创建人：  王思波
///创建时间：2011年05月25日
///修改人：  -------------
///修改时间：-------------
///修改原因：-------------
///详细说明：把数据保存到数据库中，分为添加、修改两种操作
///参数说明：①strTableID:表格ID
///         ②strDataKey:主键名称
///         ③strDataName:删除数据的名称；例如，删除部门时，这里传部门名称
///         ④intRowID:删除行ID
///返回值： 保存结果(0删除成功 其它值为保存失败)
-----------------------------------------------*/
function deleteData(strTableID, strDataKey, strDataName, intRowID) {
    //取得要删除数据的名称
    var strRecordName = $("#" + strTableID).jqGrid("getCell", intRowID, strDataName);
    var objResult = null;

    if (confirm("确定要删除数据【" + strRecordName + "】吗？")) {
        var strJsonData = "{\"" + strDataKey + "\":\"" + $("#" + strTableID).jqGrid("getCell", intRowID, strDataKey) + "\"}";
        objResult = ParseData(window.external.DoOptions(strTableID, 'Delete', strJsonData));
        if (objResult == null || objResult.ReturnCode == undefined) {
            window.parent.cihoAlert(msg.del.delFail);
            return;
        }
        //保存失败时弹出提示信息
        if (objResult.ReturnCode != 0) {
            window.parent.cihoAlert(objResult.MSG);
        }
    }

    //返回保存结果
    return objResult;
}

/*---------------------------------------------------------------------
功能:用于删除带树的节点

---------------------------------------------------------------------*/
function deleteTreeData(strTableID, strDataKey, strDataName, intRowID) {
    //取得要删除数据的名称
    var strRecordName = $("#" + strTableID).jqGrid("getCell", intRowID, strDataName);
    var objResult = null;

    if (confirm("确定要删除数据【" + $(strRecordName).text() + "】吗？")) {
        var strJsonData = "{\"" + strDataKey + "\":\"" + $("#" + strTableID).jqGrid("getCell", intRowID, strDataKey) + "\"}";
        objResult = ParseData(window.external.DoOptions(strTableID, 'Delete', strJsonData));

        //保存失败时弹出提示信息
        if (objResult.ReturnCode != 0) {
            window.parent.cihoAlert(objResult.MSG);
        }
    }

    //返回保存结果
    return objResult;
}

/*-----------------------------------------------------------------------------
//功能介绍：改变记录的状态
//参   数：
bState：1：启用
0：停用D
strTableName：jqGrid的ID
//返回 值：
-----------------------------------------------------------------------------*/
function alterState(strTableName, rowId, colId, strKey) {
    //获得状态文字
    var strState = $("#" + strTableName).jqGrid("getCell", rowId, colId);

    if (strState == "已启用") {
        //设为停用//update DB
        var strRet = updateDBState(strTableName, rowId, false, strKey);
        if ("0" == strRet.ReturnCode) {
            //停用成功，修改jqGrid中的值
            $("#" + strTableName).jqGrid("setCell", rowId, colId, "已停用");
            $("#divState").text("启用");
            return true;
        }
    }
    else {
        //设为启用//update DB
        var strRet = updateDBState(strTableName, rowId, true, strKey);
        if ("0" == strRet.ReturnCode) {
            //启用成功，修改jqGrid中的值
            $("#" + strTableName).jqGrid("setCell", rowId, colId, "已启用");
            $("#divState").text("停用");
            return true;
        }
    }
    if ("0" != strRet.ReturnCode) {
        window.parent.cihoAlert(strRet.MSG);
        return false;
    }
    return false;
}

/*-----------------------------------------------------------------------------
//功能介绍：更新状态
//参   数：
strTableName：jqGrid的ID，同时是该页面对应的模块的类名
rowId：记录ID
strState：设定的状态值
0：停用
1：启用
//返回 值：
-----------------------------------------------------------------------------*/

function updateDBState(strTableName, rowId, strState, strKey) {
    //组织更新数据字符串
    var strStateGuid = "{\"" + strKey + "\":\"";
    strStateGuid += $("#" + strTableName).jqGrid("getCell", rowId, strKey);
    strStateGuid += "\",\"zt\":";
    strStateGuid += strState;
    strStateGuid += "}";

    //alert(strStateGuid);

    //update state to database
    var strRet = ParseData(window.external.DoOptions(strTableName, 'ChangeStat', strStateGuid));

    return strRet;
}

/*-----------------------------------------------------------------------------
//功能介绍：创建页脚
//参   数：
iTotals：记录总数
iPages：页面总数
iSelect：当前选中页
strPageName：页脚DIV名
strTableName:jqGrid的ID
strTitle：编辑窗口标题
strUrl：编辑窗口URL
//返回 值：
-----------------------------------------------------------------------------*/
/*function createPage(iTotals, iPages, iSelect, strPageName, strTableName, strTitle, strUrl){
//清空页脚
$("#" + strPageName).empty();	
	
var strApp = "<ul>";
strApp += "<li>共计" + iTotals + "条记录</li>";
strApp += "<li>共" + iPages + "页</li> ";
	
//下一页
if(iSelect >= iPages){		
strApp += "<li><b>&raquo;</b></li> ";
}
else{
strApp += "<li><a href='#' onClick=\"turnPage(";
strApp += iSelect + 1;
strApp += ",'" + strTableName + "','" +  strTitle + "','" + strUrl + "')\">&raquo;</a></li> ";
}
	
//设定页码的初始值
var i = 1;
if(iSelect > 1){
i = iSelect - 1;
}
//创建页码
for(; i <= iPages && i < iSelect + 3; i++){
strApp += "<li><a href='#' onClick=\"turnPage(";
strApp += i;
strApp += ",'" + strTableName + "','" +  strTitle + "','" + strUrl + "')\"";
if(i == iSelect){
strApp += " class='active'";
}
strApp += ">" + i + "</a></li>";		
}
	
//上一页
if(iSelect <= 1){
strApp += "<li><b>&laquo;</b></li>";
}
else{
strApp += "<li><a href='#' onClick =\"turnPage(";
strApp += iSelect - 1;
strApp += ",'" + strTableName + "','" +  strTitle + "','" + strUrl + "')\">&laquo;</a></li>";
strApp += "</ul>";
}
	
$("#" + strPageName).append(strApp);	
}//*/

/*-----------------------------------------------------------------------------
//功能介绍：翻页，设定当前选中页数
//参   数：
iNum：当前选中页码
strTableName：jqGrid的ID
strTitle：编辑窗口标题
strUrl：编辑窗口URL
//返回 值：
-----------------------------------------------------------------------------*/
/*function turnPage(iNum, strTableName, strTitle, strUrl){
//加载数据
//var strTableName = "gysjbxx";
	
//清除浮动层
$(".operate").remove();
	
//清空原有数据
$("#" + strTableName).jqGrid("clearGridData");	
strJsonData = [{id:"id1",xh:"xh-001",bh:"bh-001",gysqc:"山东省立医院",gysjc:"省立",lxr:"张三",lxdh:"0531-12345678",cz:"0531-77777777",dzyx:"slyy@163.com",sh:"sh-00001",txdz:"济南市经十路",yb:"251200",khyh:"建设银行",khzh:"jsyh-00001",bz:"无备注",zt:"已停用"}
,{id:"id2",xh:"xh-001",bh:"bh-001",gysqc:"千佛山医院",gysjc:"千佛山",lxr:"张三",lxdh:"0531-12345678",cz:"0531-77777777",dzyx:"slyy@163.com",sh:"sh-00001",txdz:"济南市经十路",yb:"251200",khyh:"建设银行",khzh:"jsyh-00001",bz:"无备注",zt:"已停用"}
];	
//加载翻页后的数据
for (var i = 0; i < strJsonData.length; i++) {
$("#" + strTableName).jqGrid("addRowData", i + 1, strJsonData[i]);
}
	
//加载浮动按钮层
createFloatDiv(strTableName, strTitle, strUrl);
	
//创建页脚
createPage(35,4,iNum,"idPage", strTableName, strTitle, strUrl)
}//*/


/*-----------------------------------------------------------------------------
*功能：check 表单中的必填项是否为空
*返回值：
*    正常：true
*    异常：false
-----------------------------------------------------------------------------*/
function dataRequired(strTableName, strDlgId) {
    var names = $('#' + strTableName).jqGrid('getGridParam', "colNames");
    var indexs = $('#' + strTableName).jqGrid('getGridParam', "colModel");

    var colInputName = "";
    var colVal = "";
    for (var i = 1; i < names.length; i++) {
        //下拉框不需要验证，直接跳过
        if (indexs[i]["edittype"] == "select") {
            continue;
        }
        //检查必填项是否为空
        if (indexs[i]["editrules"] != null && indexs[i]["editrules"].required == true) {
            colInputName = indexs[i]["name"];
            //colVal = $(window.parent.document).find("#" + colInputName, $("#divform")).val();
            colVal = trim($("#" + colInputName, $("#" + strDlgId + "_divform")).val());

            if (colVal == "" || colVal == null) {
                window.parent.cihoAlert(names[i] + "不能为空", msgBox.Ok, function () { $("#" + colInputName, $("#" + strDlgId + "_divform")).focus(); });
                //alert(names[i] + "不能为空！");
                //$(window.parent.document).find("#" + colInputName, $("#divform")).focus();

                return false;
            }
        }
    }
    return true;
}

/*-----------------------------------------------------------------------------
*功能:加载下拉列表的数据
*ctlId：控件ID；
*arrDatas：要加载的数据，数组格式；
*valueField：数组中对应的value值字段名称；
*textField：数组中对应的text值字段名称。
*editable：是否可手动输入。
-----------------------------------------------------------------------------*/
function loadSelectData(ctlId, arrDatas, valueField, textField, edit) {
    var bEditable;
    if (edit == undefined) {
        bEditable = false;
    } else {
        bEditable = edit
    }
    //设定key，value对应的值
    $("#" + ctlId).combobox({
        width: 187,
        listWidth: 187,
        valueField: valueField,
        textField: textField,
        editable: bEditable
    });
    //加载数据

    //alert(arrDatas.length);
    $("#" + ctlId).combobox("loadData", arrDatas);
}

//取消所有选中行
function cancelSelRow(strTableName) {
    //取得所有选中行的gid
    var selarrrow = jQuery('#' + strTableName).jqGrid('getGridParam', 'selarrrow');
    //取消所有的选中行
    if (selarrrow.length > 0) {
        for (var i = selarrrow.length - 1; i >= 0; i--) {
            jQuery("#" + strTableName).jqGrid('setSelection', selarrrow[i]);
        }
    }
}

//创建消息提示窗口
function creatMsgDlg(dlgId, strTitle, isShowBoxTop, isShowButton, strTableName, strMsg, strParDlgId, funCall) {
    //父窗口创建，遮罩menu和tab的层
    window.parent.createShieldDiv(dlgId);

    //创建弹出窗（添加/修改）
    dialog(dlgId, window.parent.document.documentElement.clientHeight, "100%", true, "", false, false);

    //追加按钮层//追加表单层	
    var strPop = "";
    var strShowBoxTop = "";
    var strShowButton = "";

    //窗口操作区的Title内容
    if (isShowBoxTop == false) {
        strShowBoxTop = " style=\"display:none;\"";
    }
    //页面下方的添加按钮
    if (isShowButton == false) {
        strShowButton = " style=\"display:none;\"";
    }

    //整个模板窗口的内容
    strPop += "<div class=\"pop\" style=\"width:300px;\">";
    //    strPop += "     <div class=\"pop_x\">";
    //    strPop += "         <a href=\"#\" onclick=\"closeMyDlg('" + dlgId + "', 0, '" + strTableName + "')\"></a>";
    //    strPop += "     </div>";
    strPop += "     <div id=\"" + dlgId + "_pop_top\" class=\"ui-draggable pop_top\">";
    strPop += " 	    <div class=\"pop_top_right\"></div>";
    strPop += "         <div class=\"pop_top_mar\">"
    strPop += " 	        <div class=\"pop_top_left\"><h2>" + strTitle + "</h2></div>";
    strPop += "         </div>";
    strPop += "     </div> ";
    strPop += "     <div class=\"pop_con\">";
    strPop += "         <div class=\"pop_con_right\">";
    strPop += "	 	        <div class=\"pop_box\">";
    //    strPop += "                 <div id=\"" + dlgId + "_pop_box_top\" " + strShowBoxTop + " class=\"pop_h3\">";
    //    //strPop += "                     <div id=\"" + dlgId + "_pop_box_top_left\"></div>";
    //    //strPop += "                     <div id=\"" + dlgId + "_pop_box_top_right\" style='float:left;width:50%;text-align:right;'></div>";
    //    strPop += "                 </div>";
    strPop += "                 <div class=\"clr\"></div>";
    strPop += "                 <div class=\"pop_disp\" style=\"font-size:14px; text-align:center;\">";
    strPop += "			            <form id=\"" + dlgId + "_divform\"> " + strMsg + " </form>";
    strPop += "                 </div>";
    strPop += "			        <div class=\"clr\"></div>  ";
    strPop += "                 <div class=\"box_btn\" " + strShowButton + ">";
    strPop += "                     <div class=\"btn02\"><a href=\"#\" onclick=\"closeMySelf('" + dlgId + "','');saveMyData('" + strParDlgId + "', 0, '" + strTableName + "')\">是</a></div> ";
    if (!funCall) {
        strPop += "                     <div class=\"btn03\"><a href=\"#\" onclick=\"closeMySelf('" + dlgId + "','" + strParDlgId + "' );\">否</a></div> ";
    }
    else {
        strPop += "                     <div class=\"btn03\"><a href=\"#\" onclick=\"closeMySelf('" + dlgId + "','" + strParDlgId + "' );" + funCall + "();\">否</a></div> ";
    }
    strPop += "                 </div>";
    strPop += "		        </div>";
    strPop += "	        </div> ";
    strPop += "     </div>";
    strPop += "     <div class=\"pop_bot\">";
    strPop += "		    <div class=\"pop_bot_right\"></div>";
    strPop += "         <div class=\"pop_bot_mar\">";
    strPop += "		        <div class=\"pop_bot_left\"></div>";
    strPop += "          </div>";
    strPop += "     </div>";
    strPop += "</div>";

    $("#" + dlgId).append(strPop);
    //增加窗口的拖动功能
    //$("#" + dlgId + "_pop_top").parent().parent().draggable();
    //$("#" + dlgId + "_pop_top").parent().draggable();
}

//关闭Msg窗口自己
function closeMySelf(strDlgId, strParDlgId) {
    $("#" + strDlgId).dialog("close");
    //关闭父窗口
    if (strParDlgId != "") {
        $("#" + strParDlgId).dialog("close");
    }
}

/*-----------------------------------------------------------------------------
///功能：计算日期范围
///创建人：  王思波
///创建时间：2011年06月02日
///修改人：  --------------
///修改时间：--------------
///修改原因：--------------
///描述：选择快捷日期后，计算出相应的开始日期和结束日期
///参数：
///     ①strDataExtentName:快捷日期的名字
///     ②strStartDateID:开始日期控件的ID
///     ③strEndDateID:结束日期控件的ID
///返回值：无
-----------------------------------------------------------------------------*/
function dateExtentCalculation(strDataExtentName, strStartDateID, strEndDateID) {
    //当快捷日期不为空时，才执行以下代码 
    if (strDataExtentName != undefined && strDataExtentName != null && strDataExtentName != "") {
        var objStartTime = $("#" + strStartDateID);
        var objEndTime = $("#" + strEndDateID);
        var dateNow = new Date();
        var intNowDay = dateNow.getDate();              //当前日
        var intNowMonth = dateNow.getMonth();      //当前月
        var intNowYear = dateNow.getYear();             //当前年
        var intNowDayOfWeek = 0;                             //存放本周第几天   
        if (dateNow.getDay() == 0) {                           //当周末
            intNowDayOfWeek = 6;
        }
        else {                                                                //当不是周末的时候
            intNowDayOfWeek = dateNow.getDay() - 1;
        }
        var dateStartTime = {};
        var dateEndTime = {};
        //日期范围类型
        switch (strDataExtentName) {
            case "今天":
                dateStartTime = new Date(intNowYear, intNowMonth, intNowDay);
                dateEndTime = new Date(intNowYear, intNowMonth, intNowDay);
                break;
            case "昨天":
                dateStartTime = new Date(intNowYear, intNowMonth, intNowDay - 1);
                dateEndTime = new Date(intNowYear, intNowMonth, intNowDay - 1);
                break;
            case "本周":
                dateStartTime = new Date(intNowYear, intNowMonth, intNowDay - intNowDayOfWeek);
                dateEndTime = new Date(intNowYear, intNowMonth, intNowDay + (6 - intNowDayOfWeek));
                break;
            case "本月":
                dateStartTime = new Date(intNowYear, intNowMonth, 1);               //当前月的第一天
                dateEndTime = new Date(intNowYear, intNowMonth + 1, 1);             //下个月的第一天
                dateEndTime = (dateEndTime - new Date(intNowYear, intNowMonth, 1)) / 1000 / 60 / 60 / 24;  //计算当前月的天数
                dateEndTime = new Date(intNowYear, intNowMonth, dateEndTime);       //当前月的最后一天
                break;
            case "上一月":
                dateStartTime = new Date(intNowYear, intNowMonth - 1, 1);           //上个月的第一天
                dateEndTime = new Date(intNowYear, intNowMonth, 1);                 //当前月的第一天
                dateEndTime = (dateEndTime - dateStartTime) / 1000 / 60 / 60 / 24;  //计算当前月的天数
                dateStartTime = new Date(intNowYear, intNowMonth - 1, 1);           //上个月的第一天
                dateEndTime = new Date(intNowYear, intNowMonth - 1, dateEndTime);   //上个月的最后一天
                break;
            case "过去三个月":
                dateStartTime = new Date(intNowYear, intNowMonth - 3, 1);   //前三个月的第一天
                dateEndTime = new Date(intNowYear, intNowMonth, 0);         //前三个月的最后一天
                break;
            case "本季度":
                //第一季度
                if (intNowMonth <= 2) {
                    dateStartTime = new Date(intNowYear, 0, 1);
                    dateEndTime = new Date(intNowYear, 2, 31);
                }
                //第二季度
                else if (intNowMonth >= 3 && intNowMonth <= 5) {
                    dateStartTime = new Date(intNowYear, 3, 1);
                    dateEndTime = new Date(intNowYear, 5, 30);
                }
                //第三季度
                else if (intNowMonth >= 6 && intNowMonth <= 8) {
                    dateStartTime = new Date(intNowYear, 6, 1);
                    dateEndTime = new Date(intNowYear, 8, 30);
                }
                //第四季度
                else if (intNowMonth >= 9) {
                    dateStartTime = new Date(intNowYear, 9, 1);
                    dateEndTime = new Date(intNowYear, 11, 31);
                }
                break;
            case "半年":
                dateStartTime = new Date(intNowYear, 0, 1); //当年的1月1号
                dateEndTime = new Date(intNowYear, 5, 30);  //当年的6月30号
                break;
            case "年初至今":
                dateStartTime = new Date(intNowYear, 0, 1); //当年的1月1号
                dateEndTime = new Date(intNowYear, intNowMonth, intNowDay); //当前日期
                break;
            case "本年":
                dateStartTime = new Date(intNowYear, 0, 1); //当年的1月1号
                dateEndTime = new Date(intNowYear, 11, 31);  //当年的12月31号
                break;
            case "上一年":
                dateStartTime = new Date(intNowYear - 1, 0, 1); //上一年的1月1号
                dateEndTime = new Date(intNowYear - 1, 11, 31); //上一年的12月31号
                break;
            case "前年":
                dateStartTime = new Date(intNowYear - 2, 0, 1); //前年的1月1号
                dateEndTime = new Date(intNowYear - 2, 11, 31); //前年的12月31号
                break;
            case "近两年":
                dateStartTime = new Date(intNowYear - 1, 0, 1); //上一年的1月1号
                dateEndTime = new Date(intNowYear, 11, 31);     //当年的12月31号
                break;
            case "近半年":
                dateStartTime = new Date(intNowYear, intNowMonth, 1);               //当前月的第一天
                dateEndTime = new Date(intNowYear, intNowMonth + 1, 1);             //上个月的第一天
                dateEndTime = (dateEndTime - dateStartTime) / 1000 / 60 / 60 / 24;  //计算当前月的天数
                dateStartTime = new Date(intNowYear, intNowMonth - 5, 1);           //五个月前第一天
                dateEndTime = new Date(intNowYear, intNowMonth, dateEndTime);       //当前月的最后一天
                break;
            case "历史以来":
                dateStartTime = new Date(window.parent._startDate.replace(/-/g, "/"));
                dateEndTime = new Date(intNowYear, intNowMonth, intNowDay);
                break;
        }
        objStartTime.val(formatDate(dateStartTime));
        objEndTime.val(formatDate(dateEndTime));
    }
}

//刷新相关
function changeComboZt(strModelInfo) {
    switch (strModelInfo) {
        case "Tgysxx": //供应商
            window.parent.arrJbzl[0] = true;
            break;
        case "Tspxx": //药品  
            window.parent.arrJbzl[1] = true;
            break;
        case "Tkhxx": //客户  
            window.parent.arrJbzl[2] = true;
            break;
        case "Tbmxx": //部门 
            window.parent.arrJbzl[3] = true;
            break;
        case "TZyxx": //职员
            window.parent.arrJbzl[4] = true;
            break;
        case "TKjkm": //会计科目
            window.parent.arrJbzl[5] = true;
            break;
        case "Tkpdwxx": //开票单位
            window.parent.arrJbzl[6] = true;
            break;
        case "TCkxx": //仓库
            window.parent.arrJbzl[7] = true;
            break;
    }
}

function getComboboxData(strModel) {
    var objReturnData;
    switch (strModel) {
        case "Tgysxx": //供应商
            objReturnData = window.parent._arrCmbGys.Records.concat();
            break;
        case "Tgysxx2": //供应商
            objReturnData = window.parent._arrCmbGys2.Records.concat();
            break;
        case "Tspxx": //药品  
            objReturnData = window.parent._arrCmbYp.Records.concat();
            break;
        case "Tspxx2": //药品  
            objReturnData = window.parent._arrCmbYp2.Records.concat();
            break;
        case "Tkhxx1": //客户  
            objReturnData = window.parent._arrCmbKh1.Records.concat();
            break;
        case "Tkhxx2": //客户  
            objReturnData = window.parent._arrCmbKh2.Records.concat();
            break;
        case "Tkhxx3": //客户  
            objReturnData = window.parent._arrCmbKh3.Records.concat();
            break;
        case "Tkhxx4": //客户  
            objReturnData = window.parent._arrCmbKh4.Records.concat();
            break;
        case "Tbmxx": //部门 
            objReturnData = window.parent._arrCmbBm.Records.concat();
            break;
        case "Tbmxx2": //部门 
            objReturnData = window.parent._arrCmbBm2.Records.concat();
            break;
        case "TZyxx": //职员
            objReturnData = window.parent._arrCmbZy.Records.concat();
            break;
        case "TZyxx2": //职员
            objReturnData = window.parent._arrCmbZy2.Records.concat();
            break;
        case "TKjkm": //会计科目
            objReturnData = window.parent._arrCmbKjkm.Records.concat();
            break;
        case "TKjkm2": //会计科目
            objReturnData = window.parent._arrCmbKjkm2.Records.concat();
            break;
        case "Tkpdwxx": //开票单位
            objReturnData = window.parent._arrCmbKpdw.Records.concat();
            break;
        case "Tkpdwxx2": //开票单位
            objReturnData = window.parent._arrCmbKpdw2.Records.concat();
            break;
        case "TCkxx": //仓库
            objReturnData = window.parent._arrCmbCk.Records.concat();
            break;
        case "TCkxx2": //仓库
            objReturnData = window.parent._arrCmbCk2.Records.concat();
            break;
    }
    return objReturnData;
}

function changePageZt(strPage, strFlag) {
    window.parent.arrRefresh.push({ page: strPage, flag: strFlag });
}

/// <summary>重新加载combobox</summary>
function reLoadCombobox(Id, data) {

    var strSelValue = $("#" + Id).combobox('getValue');
    var strSelText = $("#" + Id).combobox('getText');

    $("#" + Id).combobox("loadData", data);
    $("#" + Id).combobox('setValue', strSelValue);
    if ($("#" + Id).combobox('getText') == strSelValue) {
        $("#" + Id).combobox('setText', strSelText);
        return;
    }
    strSelText = $("#" + Id).combobox('getText');
    $("#" + Id).combobox('setText', strSelText);
}

//动态改变grid的宽度，适应滚动条
//1：tbId，表格的id
//function resizeGrid(tbId) {
//    var gridHeight = $("#" + tbId).height();
//    var gridWidth = $("#" + tbId).width();
//    var bdivHeight = $("#" + tbId).parent().parent().height();  //$(".ui-jqgrid-bdiv").height();
//    var bdivWidth = $("#" + tbId).parent().parent().width(); // $(".ui-jqgrid-bdiv").width();
//    var colWidth = $("table tr th:visible:last", "#gbox_" + tbId).width();
//    if (gridHeight > bdivHeight && gridWidth > (bdivWidth - 19)) {//需要减少grid的宽度
//        $("table", "#gbox_" + tbId).width(gridWidth - 19).parent().width(gridWidth - 19);
//        $("table tr", "#gbox_" + tbId).each(function () {
//            $(this).find("td:visible:last,th:visible:last").width(colWidth - 19);
//        });
//    } else if (gridHeight <= bdivHeight && gridWidth <= (bdivWidth - 19)) {//需要重新设置grid的宽度
//        $("table", "#gbox_" + tbId).width(gridWidth + 19).parent().width(gridWidth + 19);
//        $("table tr", "#gbox_" + tbId).each(function () {
//            $(this).find("td:visible:last,th:visible:last").width(colWidth + 19);
//        });
//    } else {
//        $("#" + tbId).parent().width(gridWidth);
//    }
//}


//导出数据
//function exportData(strDlg, strTableId) {
//    //父窗口创建，遮罩menu和tab的层
//    window.parent.createShieldDiv(strDlg);

//    $("#" + strDlg).css("margin", "0px").css("padding", "0px");
//    var strExport = "";

//    strExport += "<div class=\"pop\">";
//    strExport += "    <div class=\"pop_x\">";
//    strExport += "        <a href=\"#\" onclick=\"closeExportDlg('" + strDlg + "')\"></a>";
//    strExport += "    </div>";
//    strExport += "    <div class=\"pop_top\">";
//    strExport += "        <h2>";
//    strExport += "            数据备份</h2>";
//    strExport += "    </div>";
//    strExport += "    <div class=\"pop_box\">";
//    strExport += "        <div class=\"shuju\">";
//    strExport += "            <form>";
//    strExport += "            <ul>";
//    strExport += "                <li>文件名：";
//    strExport += "                    <input type=\"text\" name=\"fileName\" id=\"fileName\"/>";
//    strExport += "                </li>";
//    strExport += "                <li>&nbsp;&nbsp;路&nbsp;&nbsp;径：";
//    strExport += "                    <input type=\"file\" id=\"exportPath\" name=\"exportPath\" /></li>";
//    strExport += "            </ul>";
//    strExport += "            </form>";
//    strExport += "        </div>";
//    strExport += "        <div class=\"pop_disp\">";
//    strExport += "        </div>";
//    strExport += "        <div class=\"filter\">";
//    strExport += "        </div>";
//    strExport += "        <div class=\"box_btn_width\">";
//    strExport += "            <div class=\"box_btn\">";
//    strExport += "                <div class=\"btn01\">";
//    strExport += "                    <a href=\"#\" onclick=\"saveExportData('" + strDlg + "','" + strTableId +"')\">确定</a></div>";
////    strExport += "                <div class=\"btn03\">";<a href=\"#\">浏览</a>
////    strExport += "                    <a href=\"#\" onclick=\"closeExportDlg('" + strDlg + "')\">取消</a></div>";
//    strExport += "            </div>";
//    strExport += "        </div>";
//    strExport += "    </div>";
//    strExport += "</div>";

//    dialog(strDlg, "200", "400", true, "", false, false);
//    $("#" + strDlg).append(strExport);
//    $(".pop").css("width", "400");

//    $("#" + strDlg).parent().draggable({ "scroll": false });
//}
////关闭导出数据窗口
//function closeExportDlg(strDlg) {
//    $("#" + strDlg).dialog("close");
//}
////保存导出数据
//function saveExportData(strDlg, strTableId) {
////    var strFileName = $("#fileName").val();
////    strFileName = $("#exportPath").val();

//    makeExportData(strTableId, "");
//    $("#" + strDlg).dialog("close");
//}

/*
*调整表格大小
*bJustHeight：是否只调整表格高度
*strTableId ：表格ID 
*bHavTotal  ：是否有合计行
*bHavPager  ：是否有分页
*/
//function resizeTbl(bJustHeight, strTableId, bHavTotal, bHavPager) {
//    //表格高度
//    var iHeight = window.parent.document.documentElement.clientHeight - _iTblHeight;
//    //有合计行，去掉合计行的高度
//    if (bHavTotal) {
//        iHeight -= _iHtTotal;
//    }
//    //有分页，去掉分页的高度
//    if (bHavPager) {
//        iHeight -= _iHtPager;
//    }
//    //没有合计行、分页时的误差调整
//    if (!bHavTotal && !bHavPager) {
//        iHeight -= 3;
//    }
//    $(".ui-jqgrid-bdiv", "#gbox_" + strTableId).css("height", iHeight);
//    if (bJustHeight) {
//        return;
//    }
//    //表格宽度
//    $("#" + strTableId).jqGrid("setGridWidth", window.parent.document.documentElement.clientWidth);
//    //调整无法调整的div的宽度
//    $("#gbox_" + strTableId).find("div").each(function () {
//        if ($(this).width() > window.parent.document.documentElement.clientWidth) {
//            $(this).width(window.parent.document.documentElement.clientWidth);
//        }
//    });
//    //重设合计单元格的文本，使单元格大小不会变
//    $("#" + strTableId).footerData("set", { rn: "" });
//    $("#" + strTableId).footerData("set", { rn: "合计" });
//    //调整弹出窗口遮罩层的高度
//    $('.menu_dlg_bg').css("height", window.parent.document.documentElement.clientHeight - _iFrmHeight);
//    $('.menu_dlg_shield').css("height", window.parent.document.documentElement.clientHeight - _iFrmHeight);
//}

/*-----------------------------------------------------------------------------
item:ComboTree对象
iWidth:宽度
strRangle:范围
IsShowFrist:是否显示最顶级 true能显示，false不能显示
IsSelParent:是否能够选择父节点 true能选择，false不能选择
-----------------------------------------------------------------------------*/
//function setComboTree(item, iWidth, strRangle, IsShowFrist, IsSelParent) {

//    var strShowVal = "";
//    $(".tree-node-selected").removeClass("tree-node-selected");
//    if (IsSelParent) {
//        //能够选择父节点（用于管理画面中）
//        item.combotree({
//            onChange: function (newRecord, oldRecord) {
//                strShowVal = $(".tree-node-selected").text();
//                var objCrrNode = $(".tree-node-selected");
//                var iNodeCnt = objCrrNode.find(".tree-indent").length;
//                if (IsShowFrist == false) {
//                    iNodeCnt--;
//                }
//                for (var i = 1; i < iNodeCnt; i++) {
//                    var strParentVal;
//                    if (objCrrNode.parent().parent().parent().find(".tree-title:eq(0)").parent().attr("node-id") == undefined) {
//                        strParentVal = objCrrNode.parent().parent().parent().find(".tree-title:eq(1)").text();
//                    }
//                    else {
//                        strParentVal = objCrrNode.parent().parent().parent().find(".tree-title:eq(0)").text();
//                    }
//                    if (strParentVal) {
//                        strShowVal = strParentVal + "-" + strShowVal;
//                        objCrrNode = objCrrNode.parent().parent().parent();
//                    }
//                    else {
//                        break;
//                    }
//                }
//            },
//            onHidePanel: function () {
//                $(this).combotree('setText', strShowVal);
//                $(".tree-node-selected").removeClass("tree-node-selected");
//            }
//        });
//    }
//    else {
//        //不能选择父节点（用于弹出页面）
//        item.combotree({
//            onBeforeSelect: function (node) {
//                var nodeLeaf = $(this).tree('isLeaf', node.target);
//                Fchanged = nodeLeaf;
//                return nodeLeaf;
//            },
//            onChange: function (newRecord, oldRecord) {
//                strShowVal = $(".tree-node-selected").text();
//                var objCrrNode = $(".tree-node-selected");
//                var iNodeCnt = objCrrNode.find(".tree-indent").length;
//                if (IsShowFrist == false) {
//                    iNodeCnt--;
//                }
//                for (var i = 1; i < iNodeCnt; i++) {
//                    var strParentVal = objCrrNode.parent().parent().parent().find(".tree-title:first").eq(0).text();
//                    if (strParentVal) {
//                        strShowVal = strParentVal + "-" + strShowVal;
//                        objCrrNode = objCrrNode.parent().parent().parent();
//                    }
//                    else {
//                        break;
//                    }
//                }
//            },
//            onHidePanel: function () {
//                if (Fchanged) {
//                    Fchanged = false;
//                    item.combotree('setText', strShowVal);
//                }
//                else {
//                    item.combo('showPanel');
//                }
//                $(".tree-node-selected").removeClass("tree-node-selected");
//            }

//        });
//    }

//    if (strRangle != null) {
//        $(".combo-arrow", "#" + strRangle).css("width", "24px").css("height", "24px");
//    }
//    item.combotree({
//        width: iWidth
//    });
//    $(".tree").parent().parent().css("z-index", "50000009");
//    $(".combo-panel").css("z-index", "50000009");
//}
//改变combotree的样式：有子节点的节点，鼠标置成默认样式；字体加粗。

//function setComboTreeStyle() {
//    $(".combo-panel").find("span").each(function () {
//        if ($(this).attr("class") == "tree-hit tree-expanded" || $(this).attr("class") == "tree-hit tree-collapsed") {
//            var objAngle = $(this);
//            //有子节点的节点，鼠标置成默认样式
//            $(this).parent().css("cursor", "default");
//            //有子节点的节点，字体加粗
//            $(".tree-title", $(this).parent()).css("font-weight", "bold");
//            //有子节点的节点，点击时，树可以伸缩
//            $(".tree-title", $(this).parent()).bind("click", function () {
//                objAngle.click();
//            })
//        }
//    });
//}

/*-----------------------------------------------
///功能：    导出数据
///创建人：  --------------
///创建时间：--------------
///修改人：  王思波
///修改时间：2011年10月10日
///修改原因：修改了设置序号列名称的方式，导出数据中出现了“序号”列
///详细说明：把表格中的数据信息，导出到excel文件中
///参数说明：①strTableId:导出模块的表明，与后台对应的model名称相同
///          ②strFileName:当前要导出数据的画面的名字，作为导出excel的文件名
///返回值：无
-----------------------------------------------*/
function makeExportData(strTableId, strFileName) {
    var names = $('#' + strTableId).jqGrid('getGridParam', "colNames");
    var indexs = $('#' + strTableId).jqGrid('getGridParam', "colModel");
    var jsonNames = [];
    var jsonFields = [];
    //导出的列信息
    for (var i = 0; i < names.length; i++) {
        //导出信息中不包含隐藏列、“序号”列
        if (names[i] && names[i] != "序号" && indexs[i]["hidden"] == false) {
            jsonNames.push(names[i]);
            jsonFields.push(indexs[i]['index']);
        }
    }
    var iRecords = $('#' + strTableId).jqGrid("getDataIDs");
    var json = {
        "option": 0,                        //option设置为0表示导出，1表示导入
        "filename": strFileName + ".xls",   //filename用于传递导出文件存放位置
        "Names": jsonNames,               //Names以Json数组的形式传递表头信息，顺序需要注意，这里的顺序就是导出后Excel文件列顺序
        "Records": $("#" + strTableId).jqGrid("getRowData", iRecords[iRecords.length]),             //要导出的数据
        "Fields": jsonFields              //导出数据的字段（排序用）
    }

    window.external.DoOptions('Tzyxx', 'ExportData', JSON.stringify(json));
}

//数据是否有修改，关联预提单
//strTablId: 模块ID
//arrData: 要验证的字段
function getCompareData(strTablId, arrData) {
    var objTable = $("#" + strTablId);
    var arrIDs = objTable.getDataIDs();
    var strData = "";
    var strCell = "";
    for (var i = 0; i < arrIDs.length; i++) {
        for (var j = 0; j < arrData.length; j++) {
            strCell = objTable.jqGrid("getCell", arrIDs[i], arrData[j]);
            if (strCell) {
                strData += strCell;
            }
        }
    }
    return strData;
}

//增加combobox箭头的样式
function addArrowClass() {
    $(".combo-arrow").css("width", "26px").css("height", "26px");
    $(".layoutpanel").css("z-index", "50000009");
    if (window.parent.ieVersion == '8.0') {
        $(".combo-arrow").css("margin-top", "0px");
    }
}

//增加comboTree箭头的样式
function addTreeArrowClass() {
    if (window.parent.ieVersion == '7.0') {
        $(".ciho-combo-arrow").css("margin-top", "1px");
    }
}

/// <summary>判断对象是否是空数据</summary>
/// <param name="objData" type="obj">要判断的对象</param>
/// <param name="flags" type="string">不判断的字段</param>
/// <returns type="Bool" />是空对象返回true,不是返回false</returns>
function checkEmptyRow(objData, flags) {
    for (var i in objData) {
        if (objData[i] != undefined && objData[i] != "" && flags.indexOf(i.toString()) == "-1") {
            return false;
        }
    }
    return true;
}

//设置收款账户combobox的长度
function getComHeight(arrDatas) {
    if (arrDatas) {
        if (arrDatas.length == 0) {
            return 22;
        }

        var iHeight = arrDatas.length * 20 + 2;
        if (iHeight < 200) {
            return iHeight;
        }
        else {
            return 200;
        }
    }
    else {
        return 200;
    }
}

/*-----------------------------------------------------------------------------
*功能:页面出错的处理
*strPage：页面ID；
*strError：错误信息；
-----------------------------------------------------------------------------*/
function proceError(strPage, strError) {
}


/*-----------------------------------------------------------------------
*功能：页面查询，当开始时间大于结束时间时，清空表格中的数据
*strTablID:页面ID;
*clearfooter:true;
------------------------------------------------------------------------*/
//function clearTableData(strTablID) {
//    if (strTablID) {
//        $("#" + strTablID).jqGrid("clearGridData", true);
//        $("#" + strTablID).footerData("set", { rn: "合计" });
//    }
//}
