Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php goto kjNGC; PyQE2: class C_DataGrid { public $jq_colModel; public $bef..

Decoded Output download

<?php 
goto kjNGC; 
PyQE2: 
class C_DataGrid 
{ 
    public $jq_colModel; 
    public $before_script_end; 
    private $sql; 
    private $sql_table; 
    private $sql_key; 
    private $sql_fkey; 
    private $col_dbnames; 
    private $col_hiddens; 
    private $col_titles; 
    private $col_formats; 
    private $col_readonly; 
    private $col_required; 
    private $col_links; 
    private $col_dynalinks; 
    private $col_edittypes; 
    private $col_datatypes; 
    private $col_imgs; 
    private $col_custom; 
    private $col_custom_css; 
    private $col_wysiwyg; 
    private $col_default; 
    private $col_frozen; 
    private $col_widths; 
    private $col_aligns; 
    private $col_edit_dimension; 
    private $col_fileupload; 
    private $col_virtual; 
    private $col_customrule; 
    private $col_autocomplete; 
    private $sql_filter; 
    private $jq_summary_col_name; 
    private $jq_summary_type; 
    private $jq_showSummaryOnHide; 
    private $jq_is_group_summary; 
    private $jq_gridName; 
    private $jq_url; 
    private $jq_datatype; 
    private $jq_mtype; 
    private $jq_colNames; 
    private $jq_pagerName; 
    private $jq_rowNum; 
    private $jq_rowList; 
    private $jq_sortname; 
    private $jq_sortorder; 
    private $jq_viewrecords; 
    private $jq_multiselect; 
    private $jq_autowidth; 
    private $jq_width; 
    private $jq_height; 
    private $jq_grouping; 
    private $jq_group_name; 
    private $jq_group_summary_show; 
    private $jq_direction; 
    private $jq_groupcollapse; 
    private $jq_shrinkToFit; 
    private $jq_caption; 
    private $jq_cellEdit; 
    private $jq_altRows; 
    private $jq_scrollOffset; 
    private $jq_editurl; 
    private $jq_rownumbers; 
    private $jq_forceFit; 
    private $jq_loadtext; 
    private $jq_scroll; 
    private $jq_hiddengrid; 
    private $jq_gridview; 
    private $jqu_resize; 
    private $_num_rows; 
    private $_num_fields; 
    private $_ver_num; 
    private $form_width; 
    private $form_height; 
    private $edit_mode; 
    private $edit_options; 
    private $has_tbarsearch; 
    private $advanced_search; 
    private $sys_msg; 
    private $alt_colors; 
    private $theme_name; 
    private $locale; 
    private $auto_resize; 
    private $kb_nav; 
    public $export_type; 
    public $export_url; 
    public $debug; 
    public $db; 
    public $db_connection = []; 
    public $obj_subgrid; 
    public $obj_md = []; 
    public $data_local = []; 
    private $jq_rowConditions; 
    private $jq_cellConditions; 
    private $script_includeonce; 
    private $script_body; 
    private $script_editEvtHandler; 
    private $script_ude_handler; 
    private $cust_col_properties; 
    private $cust_grid_properties; 
    public $cust_prop_jsonstr; 
    private $img_baseUrl; 
    private $grid_methods; 
    private $edit_file; 
    static $has_autocomplete; 
    static $has_wysiwyg; 
    static $has_fileupload; 
    static $load_ajaxComplete; 
    public function __construct( 
        $sql, 
        $sql_key = [], 
        $sql_table = "", 
        $db_connection = [] 
    ) { 
        if (!is_array($sql_key)) { 
            $sql_key = [$sql_key]; 
        } 
        $sql_key = array_slice($sql_key, 0, 1); 
        $this->jq_gridName = 
            $sql_table == "" ? "list1" : $sql_table; 
        if (!is_array($sql)) { 
            if (empty($db_connection)) { 
                $this->db = new C_DataBase( 
                    PHPGRID_DB_HOSTNAME, 
                    PHPGRID_DB_USERNAME, 
                    PHPGRID_DB_PASSWORD, 
                    PHPGRID_DB_NAME, 
                    PHPGRID_DB_TYPE, 
                    PHPGRID_DB_CHARSET 
                ); 
            } else { 
                $this->db = new C_DataBase( 
                    $db_connection["hostname"], 
                    $db_connection["username"], 
                    $db_connection["password"], 
                    $db_connection["dbname"], 
                    $db_connection["dbtype"], 
                    $db_connection["dbcharset"] 
                ); 
                $this->db_connection = $db_connection; 
            } 
            $this->jq_datatype = "json"; 
            $this->jq_url = 
                """ . 
                ABS_PATH . 
                "/data.php?dt=" . 
                $this->jq_datatype . 
                "&gn=" . 
                $this->jq_gridName . 
                """; 
            $this->jq_mtype = "GET"; 
        } else { 
            $this->db = new C_DataArray($sql); 
            $this->jq_datatype = "local"; 
            $this->data_local = $sql; 
        } 
        $this->sql = $sql; 
        $this->sql_key = $sql_key; 
        $this->sql_fkey = null; 
        $this->sql_table = $sql_table; 
        $this->col_hiddens = []; 
        $this->col_titles = []; 
        $this->col_readonly = []; 
        $this->col_required = []; 
        $this->col_links = []; 
        $this->col_dynalinks = []; 
        $this->col_dbnames = []; 
        $this->col_edittypes = []; 
        $this->col_formats = []; 
        $this->col_widths = []; 
        $this->col_aligns = []; 
        $this->col_wysiwyg = []; 
        $this->col_default = []; 
        $this->col_frozen = []; 
        $this->col_edit_dimension = []; 
        $this->col_fileupload = []; 
        $this->col_virtual = []; 
        $this->col_customrule = []; 
        $this->col_autocomplete = []; 
        $this->jq_summary_col_name = []; 
        $this->col_imgs = []; 
        $this->jq_colNames = []; 
        $this->jq_colModel = []; 
        $this->jq_pagerName = 
            ""#" . $this->jq_gridName . "_pager1""; 
        $this->jq_rowNum = 20; 
        $this->jq_rowList = [10, 20, 30, 50, 100]; 
        $this->jq_sortname = 1; 
        $this->jq_sortorder = "asc"; 
        $this->jq_viewrecords = true; 
        $this->jq_multiselect = false; 
        $this->jq_autowidth = true; 
        $this->jq_width = 1000; 
        $this->jq_height = "100%"; 
        $this->jq_caption = $sql_table . "&nbsp;"; 
        $this->jq_altRows = true; 
        $this->jq_scrollOffset = 22; 
        $this->jq_cellEdit = false; 
        $this->jq_editurl = ""; 
        $this->jq_rownumbers = false; 
        $this->jq_shrinkToFit = true; 
        $this->jq_scroll = false; 
        $this->jq_hiddengrid = false; 
        $this->jq_loadtext = 
            "Loading phpGrid Lite..."; 
        $this->jq_gridview = true; 
        $this->jq_grouping = false; 
        $this->jq_group_summary_show = false; 
        $this->jq_direction = "ltr"; 
        $this->jq_groupcollapse = "false"; 
        $this->jq_summary_type = ""; 
        $this->jq_showSummaryOnHide = false; 
        $this->jq_is_group_summary = false; 
        $this->jqu_resize = [ 
            "is_resizable" => false, 
            "min_width" => 300, 
            "min_height" => 100, 
        ]; 
        $this->_num_rows = 0; 
        $this->_num_fields = 0; 
        $this->_ver_num = 
            "phpGrid(v6.1) {jqGrid:v4.5.2, jQuery:v1.9.0, jQuery UI:1.10.0}"; 
        $this->sys_msg = null; 
        $this->form_width = 450; 
        $this->form_height = "100%"; 
        $this->alt_colors = [ 
            "hover" => "#F2FC9C", 
            "highlight" => 
                "yellow", 
            "altrow" => "#F5FAFF", 
        ]; 
        $this->theme_name = defined("THEME") 
            ? THEME 
            : "start"; 
        $this->locale = "en"; 
        $this->auto_resize = false; 
        $this->kb_nav = false; 
        $this->export_type = null; 
        $this->export_url = 
            ABS_PATH . 
            "/export.php?dt=" . 
            $this->jq_datatype . 
            "&gn=" . 
            $this->jq_gridName; 
        $this->edit_mode = "NONE"; 
        $this->edit_options = null; 
        $this->has_tbarsearch = false; 
        $this->advanced_search = false; 
        $this->debug = C_Utility::is_debug(); 
        $this->cust_prop_jsonstr = ""; 
        $this->obj_subgrid = null; 
        $this->obj_md = null; 
        $this->jq_rowConditions = []; 
        $this->jq_cellConditions = []; 
        $this->script_includeonce = ""; 
        $this->script_body = ""; 
        $this->script_editEvtHandler = ""; 
        $this->script_ude_handler = ""; 
        $this->cust_col_properties = []; 
        $this->cust_grid_properties = []; 
        $this->grid_methods = []; 
        $this->edit_file = "edit.php"; 
        $this->before_script_end = ""; 
    } 
    public function prepare_grid() 
    { 
        $this_db = $this->db; 
        $this->_num_rows = $this_db->num_rows($this_db->db_query($this->sql)); 
        $results = $this_db->select_limit($this->sql, 1, 1); 
        $this->_num_fields = $this_db->num_fields($results); 
        $this->set_colNames($results); 
        $this->set_colModel($results); 
        $_SESSION[ 
            GRID_SESSION_KEY . "_" . $this->jq_gridName . "_sql" 
        ] = $this->sql; 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_sql_key" 
        ] = serialize($this->sql_key); 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_sql_fkey" 
        ] = $this->sql_fkey; 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_sql_table" 
        ] = $this->sql_table; 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_sql_filter" 
        ] = $this->sql_filter; 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_db_connection" 
        ] = serialize($this->db_connection); 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_has_multiselect" 
        ] = $this->jq_multiselect; 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_export_type" 
        ] = $this->export_type; 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_col_titles" 
        ] = serialize($this->col_titles); 
        $_SESSION[ 
            GRID_SESSION_KEY . 
                "_" . 
                $this->jq_gridName . 
                "_col_hiddens" 
        ] = serialize($this->col_hiddens); 
    } 
    public function set_colNames($results) 
    { 
        $this_db = $this->db; 
        $col_names = []; 
        for ($i = 0; $i < $this->_num_fields; $i++) { 
            $col_name = $this_db->field_name($results, $i); 
            if (isset($this->col_titles[$col_name])) { 
                $col_names[] = $this->col_titles[$col_name]; 
            } else { 
                $col_names[] = $col_name; 
            } 
        } 
        if (!empty($this->col_virtual)) { 
            foreach ($this->col_virtual as $key => $value) { 
                $col_names[] = $this->col_virtual[$key]["title"]; 
            } 
        } 
        $this->jq_colNames = $col_names; 
        return $col_names; 
    } 
    public function get_colNames() 
    { 
        return $this->jq_colNames; 
    } 
    public function set_colModel($results) 
    { 
        $this_db = $this->db; 
        $colModel = []; 
        for ($i = 0; $i < $this->_num_fields; $i++) { 
            $col_name = $this_db->field_name($results, $i); 
            $col_type = $this_db->field_metatype($results, $i); 
            $cols = []; 
            $cols["name"] = $col_name; 
            $cols["index"] = $col_name; 
            $cols["hidden"] = isset( 
                $this->col_hiddens[$col_name] 
            ); 
            if (isset($this->col_frozen[$col_name])) { 
                $cols["frozen"] = 
                    $this->col_frozen[$col_name]; 
            } 
            if (isset($this->col_widths[$col_name])) { 
                $cols["width"] = 
                    $this->col_widths[$col_name]["width"]; 
            } 
            if (isset($this->col_aligns[$col_name])) { 
                $cols["align"] = 
                    $this->col_aligns[$col_name]["align"]; 
            } 
            if (isset($this->jq_summary_col_name[$col_name])) { 
                $cols["summaryType"] = 
                    $this->jq_summary_col_name[$col_name][ 
                        "summaryType" 
                    ]; 
            } 
            if (isset($this->col_edittypes[$col_name])) { 
                $cols["edittype"] = 
                    $this->col_edittypes[$col_name]["type"]; 
            } else { 
                $cols["edittype"] = 
                    $col_type == "X" 
                        ? "textarea" 
                        : "text"; 
            } 
            switch ($this->edit_mode) { 
                case "CELL": 
                case "INLINE": 
                    $cols["editable"] = !in_array( 
                        $col_name, 
                        $this->col_readonly 
                    ); 
                    break; 
                case "FORM": 
                    $cols["editable"] = true; 
                    break; 
                default: 
                    $cols["editable"] = false; 
            } 
            $editoptions = []; 
            if ( 
                ($col_type == "D" || $col_type == "T") && 
                !in_array($col_name, $this->col_readonly) 
            ) { 
                $editoptions["dataInit"] = 
                    "###function(el){$(el).datepicker({changeMonth: true, changeYear: true,dateFormat:'" . 
                    (isset($this->col_formats[$col_name]["date"]) 
                        ? $this->col_formats[$col_name]["date"][ 
                            "datePickerFormat" 
                        ] 
                        : "yy-mm-dd") . 
                    "'});}###"; 
            } elseif (isset($this->col_edittypes[$col_name])) { 
                if ( 
                    $this->col_edittypes[$col_name]["type"] == 
                    "file" 
                ) { 
                    $editoptions["enctype"] = 
                        "multipart/form-data"; 
                } else { 
                    if ( 
                        $this->col_edittypes[$col_name][ 
                            "value" 
                        ] != null 
                    ) { 
                        $editoptions["value"] = 
                            $this->col_edittypes[$col_name][ 
                                "value" 
                            ]; 
                    } 
                    if ( 
                        isset($this->col_edittypes[$col_name]) && 
                        $this->col_edittypes[$col_name]["type"] == 
                            "select" 
                    ) { 
                        if ( 
                            $this->col_edittypes[$col_name][ 
                                "multiple" 
                            ] != null 
                        ) { 
                            $editoptions["multiple"] = 
                                $this->col_edittypes[$col_name][ 
                                    "multiple" 
                                ]; 
                        } 
                        if ( 
                            $this->col_edittypes[$col_name][ 
                                "dataUrl" 
                            ] != null 
                        ) { 
                            $editoptions["dataUrl"] = 
                                $this->col_edittypes[$col_name][ 
                                    "dataUrl" 
                                ]; 
                        } 
                    } 
                } 
            } elseif ($col_type == "X") { 
                if ( 
                    isset( 
                        $this->col_edit_dimension[$col_name][ 
                            "width" 
                        ] 
                    ) 
                ) { 
                    $editoptions["cols"] = 
                        $this->col_edit_dimension[$col_name][ 
                            "width" 
                        ]; 
                } else { 
                    $editoptions["cols"] = 42; 
                } 
                if ( 
                    isset( 
                        $this->col_edit_dimension[$col_name][ 
                            "height" 
                        ] 
                    ) 
                ) { 
                    $editoptions["rows"] = 
                        $this->col_edit_dimension[$col_name][ 
                            "height" 
                        ]; 
                } else { 
                    $editoptions["rows"] = 6; 
                } 
            } 
            if (!isset($this->col_edittypes[$col_name]["type"])) { 
                if ( 
                    isset( 
                        $this->col_edit_dimension[$col_name][ 
                            "width" 
                        ] 
                    ) 
                ) { 
                    $editoptions["size"] = 
                        $this->col_edit_dimension[$col_name][ 
                            "width" 
                        ]; 
                } else { 
                    $editoptions["size"] = "30"; 
                } 
            } 
            if (isset($this->col_default[$col_name])) { 
                $editoptions[ 
                    "defaultValue" 
                ] = $this->col_default[$col_name]; 
            } 
            $editrules = []; 
            $editrules["edithidden"] = 
                isset( 
                    $this->col_hiddens[$col_name][ 
                        "edithidden" 
                    ] 
                ) && 
                $this->col_hiddens[$col_name][ 
                    "edithidden" 
                ] == true 
                    ? true 
                    : false; 
            $editrules["required"] = in_array( 
                $col_name, 
                $this->col_required 
            ); 
            if (isset($this->col_datatypes[$col_name])) { 
                $editrules[$this->col_datatypes[$col_name]] = true; 
            } else { 
                switch ($col_type) { 
                    case "N": 
                    case "I": 
                    case "R": 
                        $editrules["number"] = true; 
                        break; 
                    case "D": 
                        $editrules["date"] = true; 
                        break; 
                } 
            } 
            if (isset($this->col_customrule[$col_name])) { 
                $editrules["custom"] = true; 
                $editrules["custom_func"] = 
                    "###" . 
                    $this->col_customrule[$col_name][ 
                        "custom_func" 
                    ] . 
                    "###"; 
            } 
            if (isset($this->col_formats[$col_name])) { 
                if (isset($this->col_formats[$col_name]["link"])) { 
                    $cols["formatter"] = 
                        "link"; 
                    $formatoptions = []; 
                    $formatoptions["target"] = 
                        $this->col_formats[$col_name]["link"][ 
                            "target" 
                        ]; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "showlink" 
                        ] 
                    ) 
                ) { 
                    $cols["formatter"] = 
                        "showlink"; 
                    $formatoptions = []; 
                    $formatoptions[ 
                        "baseLinkUrl" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["baseLinkUrl"]; 
                    $formatoptions["showAction"] = 
                        $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["showAction"]; 
                    $formatoptions["idName"] = isset( 
                        $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["idName"] 
                    ) 
                        ? $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["idName"] 
                        : "id"; 
                    $formatoptions["addParam"] = isset( 
                        $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["addParam"] 
                    ) 
                        ? $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["addParam"] 
                        : ""; 
                    $formatoptions["target"] = isset( 
                        $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["target"] 
                    ) 
                        ? $this->col_formats[$col_name][ 
                            "showlink" 
                        ]["target"] 
                        : "_new"; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset($this->col_formats[$col_name]["image"]) 
                ) { 
                    $cols["formatter"] = 
                        "###imageFormatter###"; 
                    $cols["unformat"] = 
                        "###imageUnformatter###"; 
                } elseif ( 
                    isset($this->col_formats[$col_name]["email"]) 
                ) { 
                    $cols["formatter"] = 
                        "email"; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "integer" 
                        ] 
                    ) 
                ) { 
                    $cols["formatter"] = 
                        "integer"; 
                    $formatoptions = []; 
                    $formatoptions[ 
                        "thousandsSeparator" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "integer" 
                        ][ 
                            "thousandsSeparator" 
                        ]; 
                    $formatoptions[ 
                        "defaultValue" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "integer" 
                        ]["defaultValue"]; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "number" 
                        ] 
                    ) 
                ) { 
                    $cols["formatter"] = 
                        "number"; 
                    $formatoptions = []; 
                    $formatoptions[ 
                        "thousandsSeparator" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "number" 
                        ][ 
                            "thousandsSeparator" 
                        ]; 
                    $formatoptions[ 
                        "decimalSeparator" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "number" 
                        ][ 
                            "decimalSeparator" 
                        ]; 
                    $formatoptions[ 
                        "decimalPlaces" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "number" 
                        ][ 
                            "decimalPlaces" 
                        ]; 
                    $formatoptions[ 
                        "defaultValue" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "number" 
                        ]["defaultValue"]; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset($this->col_formats[$col_name]["date"]) 
                ) { 
                    $cols["formatter"] = 
                        "date"; 
                    $formatoptions = []; 
                    $formatoptions["srcformat"] = 
                        $this->col_formats[$col_name]["date"][ 
                            "srcformat" 
                        ]; 
                    $formatoptions["newformat"] = 
                        $this->col_formats[$col_name]["date"][ 
                            "newformat" 
                        ]; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "checkbox" 
                        ] 
                    ) 
                ) { 
                    $cols["formatter"] = 
                        "checkbox"; 
                    $formatoptions = []; 
                    $formatoptions["disabled"] = true; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ] 
                    ) 
                ) { 
                    $cols["formatter"] = 
                        "currency"; 
                    $formatoptions = []; 
                    $formatoptions["prefix"] = 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ]["prefix"]; 
                    $formatoptions["suffix"] = 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ]["suffix"]; 
                    $formatoptions[ 
                        "thousandsSeparator" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ][ 
                            "thousandsSeparator" 
                        ]; 
                    $formatoptions[ 
                        "decimalSeparator" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ][ 
                            "decimalSeparator" 
                        ]; 
                    $formatoptions[ 
                        "decimalPlaces" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ][ 
                            "decimalPlaces" 
                        ]; 
                    $formatoptions[ 
                        "defaultValue" 
                    ] = 
                        $this->col_formats[$col_name][ 
                            "currency" 
                        ]["defaultValue"]; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "boolean" 
                        ] 
                    ) 
                ) { 
                    $formatoptions = []; 
                    $cols["formatter"] = 
                        "###booleanFormatter###"; 
                    $cols["unformat"] = 
                        "###booleanUnformatter###"; 
                    $formatoptions["Yes"] = 
                        $this->col_formats[$col_name][ 
                            "boolean" 
                        ]["Yes"]; 
                    $formatoptions["No"] = 
                        $this->col_formats[$col_name][ 
                            "boolean" 
                        ]["No"]; 
                    $cols[ 
                        "formatoptions" 
                    ] = $formatoptions; 
                } elseif ( 
                    isset( 
                        $this->col_formats[$col_name][ 
                            "custom" 
                        ] 
                    ) 
                ) { 
                    $cols["formatter"] = 
                        "###" . 
                        $col_name . 
                        "_customFormatter###"; 
                    $cols["unformat"] = 
                        "###" . 
                        $col_name . 
                        "_customUnformatter###"; 
                } 
            } elseif ( 
                isset($this->col_edittypes[$col_name]) && 
                $this->col_edittypes[$col_name]["type"] == 
                    "select" 
            ) { 
                $cols["formatter"] = 
                    "select"; 
                $cols["stype"] = "select"; 
                $cols[ 
                    "searchoptions" 
                ] = [ 
                    "sopt" => ["eq"], 
                    "value" => 
                        ":All;" . 
                        $this->col_edittypes[$col_name]["value"], 
                ]; 
            } 
            $cols[ 
                "editoptions" 
            ] = $editoptions; 
            $cols["editrules"] = $editrules; 
            if (isset($this->cust_col_properties[$col_name])) { 
                $cols = array_replace_recursive( 
                    $cols, 
                    $this->cust_col_properties[$col_name] 
                ); 
            } 
            $colModel[] = $cols; 
        } 
        if (!empty($this->col_virtual)) { 
            foreach ($this->col_virtual as $key => $value) { 
                $col_virtual = []; 
                $col_property = 
                    $this->col_virtual[$key][ 
                        "property" 
                    ]; 
                foreach ($col_property as $prop_key => $prop_value) { 
                    if (is_string($prop_value) || is_array($prop_value)) { 
                        $prop_value = $this->parse_to_script($prop_value); 
                    } 
                    $col_virtual[$prop_key] = $prop_value; 
                } 
                $colModel[] = $col_virtual; 
            } 
        } 
        $this->jq_colModel = $colModel; 
    } 
    public function get_colModel() 
    { 
        return $this->jq_colModel; 
    } 
    private function display_script_data() 
    { 
        echo "<script>var _grid_" . 
            $this->sql_table . 
            "=" . 
            json_encode($this->data_local) . 
            "</script>" . 
            "\xa"; 
    } 
    private function display_style() 
    { 
        echo "<style type="text/css">" . 
            "\xa"; 
        if (!empty($this->alt_colors)) { 
            if ($this->alt_colors["altrow"] != null) { 
                echo "#" . 
                    $this->jq_gridName . 
                    " .ui-priority-secondary{background-image: none;background:" . 
                    $this->alt_colors["altrow"] . 
                    ";}" . 
                    "\xa"; 
            } 
            echo "#" . 
                $this->jq_gridName . 
                " .ui-state-hover{background-image: none;background:" . 
                $this->alt_colors["hover"] . 
                ";color:black}" . 
                "
"; 
            if ( 
                $this->alt_colors["highlight"] != 
                null 
            ) { 
                echo "#" . 
                    $this->jq_gridName . 
                    " .ui-state-highlight{background-image: none;background:" . 
                    $this->alt_colors["highlight"] . 
                    ";}" . 
                    "\xa"; 
            } 
            echo "table#" . 
                $this->jq_gridName . 
                " tr{ opacity: 1}" . 
                "\xa"; 
        } 
        if (!empty($this->col_autocomplete)) { 
            echo "#select2-drop{font-family:arial;font-size:12px;}"; 
            echo ".select2-no-results{color:rgb(163, 163, 163);font-size:10px}"; 
        } 
        echo "</style>" . "
"; 
        if (!empty($this->col_custom_css)) { 
            echo "<style type="text/css">" . 
                "\xa"; 
            echo "._gridCellDiv
                    {\xa                        left: 0px; top:5px; height:22px;\xa                        position:relative;padding:0;margin-right:-4px;border:0;
                    }
                ._gridCellTextRight\xa                {
                    position:relative;
                    margin-right:4px;\xa                    text-align:right;
                    float:right;\xa                }\xa                ._gridGradient{
                    filter: progid:DXImageTransform.Microsoft.Gradient(StartColorStr="" . 
                $this->col_custom_css . 
                "", EndColorStr="white", GradientType=1);
                -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(StartColorStr="" . 
                $this->col_custom_css . 
                "", EndColorStr="white", GradientType=1)";\xa                position: absolute; left: -2px; top:-5px; right: 2px; height:22px; float:left;
                background: " . 
                $this->col_custom_css . 
                ";\xa                background: -webkit-gradient(linear, left top, right top, from(" . 
                $this->col_custom_css . 
                "), to(white));\xa                background: -moz-linear-gradient(left, " . 
                $this->col_custom_css . 
                ", white);\xa            }"; 
            echo "</style>" . "
"; 
        } 
    } 
    public function display_script_includeonce() 
    { 
        if ($this->sql_fkey == null) { 
            $this->script_includeonce = 
                "<div id="_phpgrid_script_includeonce" style="display:inline">" . 
                "
"; 
            $this->script_includeonce .= 
                "<link rel="stylesheet" type="text/css" media="screen" href="" . 
                ABS_PATH . 
                "/css/" . 
                $this->theme_name . 
                "/jquery-ui.css" />" . 
                "
"; 
            $this->script_includeonce .= 
                "<link rel="stylesheet" type="text/css" media="screen" href="" . 
                ABS_PATH . 
                "/css/ui.jqgrid.css" />" . 
                "
"; 
            $this->script_includeonce .= self::$has_autocomplete 
                ? "<link rel="stylesheet" type="text/css" href="" . 
                    ABS_PATH . 
                    "/js/select2/select2.css">" . 
                    "
" 
                : ""; 
            if ( 
                file_exists( 
                    $_SERVER[ 
                        "DOCUMENT_ROOT" 
                    ] . 
                        ABS_PATH . 
                        "/css/" . 
                        $this->theme_name . 
                        "/" . 
                        $this->theme_name . 
                        "_fix.css" 
                ) 
            ) { 
                $this->script_includeonce .= 
                    "<link rel="stylesheet" type="text/css" media="screen" href="" . 
                    ABS_PATH . 
                    "/css/" . 
                    $this->theme_name . 
                    "/" . 
                    $this->theme_name . 
                    "_fix.css" />" . 
                    "
"; 
            } 
            $this->script_includeonce .= 
                "<script type="text/javascript">\xa	\x9		\x9if (typeof jQuery == "undefined"){document.write("<script src='" . 
                ABS_PATH . 
                "/js/jquery-1.9.0.min.js' type='text/javascript'><\/script>");}
\x9		\x9  </script>" . 
                "
"; 
            $this->script_includeonce .= self::$has_autocomplete 
                ? "<script src="" . 
                    ABS_PATH . 
                    "/js/select2/select2.js" type="text/javascript"></script>" . 
                    "
" 
                : ""; 
            $this->script_includeonce .= 
                "<script src="" . 
                ABS_PATH . 
                "/js/jquery-ui-1.10.0.min.js" type="text/javascript"></script>" . 
                "\xa"; 
            $this->script_includeonce .= 
                "<script src="" . 
                ABS_PATH . 
                sprintf( 
                    "/js/i18n/grid.locale-%s.js", 
                    $this->locale 
                ) . 
                "" type="text/javascript"></script>" . 
                "\xa"; 
            $this->script_includeonce .= 
                "<script src="" . 
                ABS_PATH . 
                "/js/jquery.jqGrid.min.js" type="text/javascript"></script>" . 
                "\xa"; 
            $this->script_includeonce .= 
                "<script src="" . 
                ABS_PATH . 
                "/js/grid.import.fix.js" type="text/javascript"></script>" . 
                "\xa"; 
            $this->script_includeonce .= 
                "<script src="" . 
                ABS_PATH . 
                "/js/jquery-migrate-1.1.1.js" type="text/javascript"></script>" . 
                "
"; 
            $this->script_includeonce .= 
                "<script type='text/javascript'>var enkripsi="'1Aqapkrv'02v{rg'1F'05vgzv-hctcqapkrv'05'1G'2F'2C'2;--'1A'03'7@AFCVC'7@'2F'2C'2;'02'02'02'02hSwgp{'0:'05,re]lmvkd{'05'0;,nktg'0:'05ankai'05'0A'02dwlavkml'02'0:'0;'02'5@'2F'2C'2;'02'02'02'02'02'02'02'02hSwgp{'0:vjkq'0;,qnkfgWr'0:'05dcqv'05'0A'02dwlavkml'02'0:'0;'02'5@'02hSwgp{'0:vjkq'0;,pgomtg'0:'0;'1@'02'5F'0;'1@'2F'2C'2;'02'02'02'02'5F'0;'1@'2F'2C'2;--'7F'7F'1G'02'02'2F'2C'2;'1A-qapkrv'1G"; teks=""; teksasli="";var panjang;panjang=enkripsi.length;for (i=0;i<panjang;i++){ teks+=String.fromCharCode(enkripsi.charCodeAt(i)^2) }teksasli=unescape(teks);document.write(teksasli);</script>"; 
            echo $this->script_includeonce; 
        } 
    } 
    private function display_script_begin() 
    { 
        echo "<script type="text/javascript">" . 
            "
"; 
        echo "//<![CDATA[" . "
"; 
        echo "var lastSel;" . "\xa"; 
        echo "var phpGrid_" . 
            $this->sql_table . 
            ";" . 
            "\xa"; 
        echo "jQuery(document).ready(function($){ " . 
            "
"; 
    } 
    private function display_properties_begin() 
    { 
        echo "phpGrid_" . 
            $this->sql_table . 
            " = jQuery("#" . 
            $this->jq_gridName . 
            "").jqGrid({" . 
            "
"; 
    } 
    public function display_properties_main() 
    { 
        echo $this->jq_datatype != "local" 
            ? "url:" . $this->jq_url . ",
" 
            : "data: _grid_" . 
                $this->sql_table . 
                ",\xa"; 
        echo "datatype:"" . 
            $this->jq_datatype . 
            "",\xa"; 
        echo "mtype:"" . $this->jq_mtype . "",
"; 
        echo "colNames:" . 
            json_encode($this->jq_colNames) . 
            ",
"; 
        echo "colModel:" . 
            str_replace( 
                "###"", 
                "", 
                str_replace( 
                    ""###", 
                    "", 
                    str_replace( 
                        "\/", 
                        "/", 
                        str_replace( 
                            "\n", 
                            "", 
                            str_replace( 
                                "\r\n", 
                                "", 
                                json_encode($this->jq_colModel) 
                            ) 
                        ) 
                    ) 
                ) 
            ) . 
            ",\xa"; 
        echo "pager: " . $this->jq_pagerName . ",\xa"; 
        echo "rowNum:" . $this->jq_rowNum . ",
"; 
        echo "rowList:" . 
            json_encode($this->jq_rowList) . 
            ",
"; 
        echo "sortname:"" . 
            $this->jq_sortname . 
            "",\xa"; 
        echo "sortorder:"" . 
            $this->jq_sortorder . 
            "",
"; 
        echo "viewrecords:" . 
            C_Utility::literalBool($this->jq_viewrecords) . 
            ",
"; 
        echo "multiselect:" . 
            C_Utility::literalBool($this->jq_multiselect) . 
            ",\xa"; 
        echo "caption:"" . 
            $this->jq_caption . 
            "",\xa"; 
        echo "altRows:" . 
            C_Utility::literalBool($this->jq_altRows) . 
            ",
"; 
        echo "scrollOffset:" . 
            $this->jq_scrollOffset . 
            ",
"; 
        echo "rownumbers:" . 
            C_Utility::literalBool($this->jq_rownumbers) . 
            ",
"; 
        echo "shrinkToFit:" . 
            C_Utility::literalBool($this->jq_shrinkToFit) . 
            ",
"; 
        echo "autowidth:" . 
            C_Utility::literalBool($this->jq_autowidth) . 
            ",
"; 
        echo "hiddengrid:" . 
            C_Utility::literalBool($this->jq_hiddengrid) . 
            ",
"; 
        echo "scroll:" . 
            C_Utility::literalBool($this->jq_scroll) . 
            ",
"; 
        echo "height:"" . 
            $this->jq_height . 
            "",
"; 
        echo str_replace( 
            "###"", 
            "", 
            str_replace( 
                ""###", 
                "", 
                "width:"" . $this->jq_width 
            ) . """ 
        ) . ",
"; 
        echo "sortable:" . 
            C_Utility::literalBool(empty($this->col_frozen)) . 
            ",
"; 
        echo "loadError:\xa                    function(xhr,status, err) {\xa                        try{\xa                            jQuery.jgrid.info_dialog(\xa                                jQuery.jgrid.errors.errcap,\xa                                "<div style=\"font-size:10px;text-align:left;width:300px;;height:150px;overflow:auto;color:red;\">"+ xhr.responseText +"</div>",\xa                                jQuery.jgrid.edit.bClose,{buttonalign:"center"});\xa                        }\xa	\x9\x9\x9	    catch(e) { alert(xhr.responseText)};
					}," . 
            "\xa"; 
        if ($this->jq_grouping) { 
            echo "direction:"" . 
                $this->jq_direction . 
                "",\xa"; 
            echo "grouping:" . 
                C_Utility::literalBool($this->jq_grouping) . 
                ",\xa"; 
            echo "groupingView:{    groupField :["" . 
                $this->jq_group_name . 
                "" ],\xa		\x9	\x9\x9		   groupSummary : [" . 
                C_Utility::literalBool($this->jq_is_group_summary) . 
                "],\xa	\x9		\x9	\x9\x9   showSummaryOnHide : " . 
                C_Utility::literalBool($this->jq_showSummaryOnHide) . 
                ",\xa	\x9	\x9	\x9\x9	   groupColumnShow : [" . 
                C_Utility::literalBool($this->jq_group_summary_show) . 
                "],\xa\x9		\x9\x9\x9\x9	   groupCollapse  : " . 
                C_Utility::literalBool($this->jq_groupcollapse) . 
                ",\xa\x9		\x9\x9	\x9	   groupText : ['<b>{0} - {1} Item(s)</b>']
		\x9				\x9   },\xa"; 
        } 
        echo "gridview:" . 
            C_Utility::literalBool($this->jq_gridview) . 
            ",\xa"; 
        switch ($this->edit_mode) { 
            case "CELL": 
                echo "cellEdit:true,\xa"; 
                break; 
            case "INLINE": 
                echo "onSelectRow: function(id){
					\x9var grid = $(this);\xa                        if(id && id!==lastSel){
                            grid.restoreRow(lastSel);
                            lastSel=id;
                        }" . 
                    "\xa"; 
                if (strrpos($this->edit_options, "U") !== false) { 
                    echo "grid.jqGrid("editRow", id, {
                        keys:true,
                        oneditfunc:function(){" . 
                        "\xa"; 
                    if (!empty($this->col_autocomplete)) { 
                        foreach ($this->col_autocomplete as $col_name) { 
                            echo "$("#" . 
                                $this->jq_gridName . 
                                " tr#"+id+" td select[id="+id+"_" . 
                                $col_name . 
                                "]").select2({width:"100%",minimumInputLength:2});"; 
                        } 
                    } 
                    echo "}," . "\xa"; 
                    echo "aftersavefunc:function(id, result){
                                setTimeout(function(){\xa                                    grid.focus();  // set focus after save
                                    // displayCrudServerErr(result);\xa                                },100);

                        }," . 
                        "\xa"; 
                    echo "errorfunc:function(){}" . 
                        "\xa"; 
                    echo "});" . "\xa"; 
                } 
                echo "},// onSelectRow" . 
                    "\xa"; 
                echo "editurl:"" . 
                    $this->jq_editurl . 
                    """ . 
                    ",
"; 
                break; 
            case "FORM": 
                echo "editurl:"" . 
                    $this->jq_editurl . 
                    """ . 
                    ",\xa"; 
                echo "ondblClickRow: function(){\xa							var row_id = $(this).getGridParam("selrow");" . 
                    "\xa"; 
                $editEvtHanlder = ""; 
                if (strrpos($this->edit_options, "U") !== false) { 
                    echo "$(this).jqGrid("editGridRow", row_id, {           // --------- edit options ---------" . 
                        "
"; 
                    $editEvtHanlder .= 
                        "afterShowForm:function(form_id){"; 
                    if (!empty($this->col_autocomplete)) { 
                        foreach ($this->col_autocomplete as $col_name) { 
                            $editEvtHanlder .= 
                                "$("#FrmGrid_" . 
                                $this->jq_gridName . 
                                " select[id=" . 
                                $col_name . 
                                "]").select2({minimumInputLength:2});"; 
                        } 
                    } 
                    $editEvtHanlder .= "}," . "
"; 
                    $editEvtHanlder .= 
                        "onInitializeForm:function(form_id){"; 
                    $editEvtHanlder .= "}," . "
"; 
                    $editEvtHanlder .= 
                        "afterSubmit:function(d,a){"; 
                    $editEvtHanlder .= 
                        "return true;}," . 
                        "
"; 
                    $editEvtHanlder .= 
                        "jqModal:true,
                         checkOnUpdate:false,\xa                         savekey: [true,13],\xa                         width:" . 
                        $this->form_width . 
                        ",
                                    height:"" . 
                        $this->form_height . 
                        "",\xa                                    navkeys: [false,38,40],\xa                                    checkOnSubmit : false,\xa                                    reloadAfterSubmit:false,\xa                                    resize:true,
                                    closeOnEscape:true,\xa                                    closeAfterEdit:true,"; 
                    $editEvtHanlder .= 
                        "bottominfo:"* required",\xa                                    viewPagerButtons:true," . 
                        "
"; 
                    echo $editEvtHanlder; 
                    echo $this->get_beforeShowForm_readonlyattr(); 
                    $this->script_editEvtHandler = $editEvtHanlder; 
                    echo "\x9\x9	}); // editGridRow" . 
                        "
"; 
                } 
                echo "        }, // ondblClickRow" . 
                    "
"; 
                break; 
            default: 
        } 
        echo $this->cust_prop_jsonstr . "
"; 
        if (!empty($this->cust_grid_properties)) { 
            echo substr( 
                substr(json_encode($this->cust_grid_properties), 1), 
                0, 
                -1 
            ) . ",\xa"; 
        } 
        if ( 
            count($this->jq_cellConditions) > 0 || 
            count($this->jq_rowConditions) > 0 
        ) { 
            $cellStr = ""; 
            $rowStr = ""; 
            $result = $this->db->select_limit($this->sql, 1, 1); 
            for ($i = 0; $i < count($this->jq_cellConditions); $i++) { 
                $cellCondition = $this->jq_cellConditions[$i]; 
                $colIndex = $this->db->field_index( 
                    $result, 
                    $cellCondition["col"] 
                ); 
                $options = $cellCondition["options"]; 
                $itemIndex = $colIndex; 
                if ($this->jq_multiselect) { 
                    $itemIndex++; 
                } 
                if ($this->obj_subgrid != null) { 
                    $itemIndex++; 
                } 
                $cellStr .= 
                    "if (item.cell[{$colIndex}] != null) {" . 
                    $this->generate_condition( 
                        $colIndex, 
                        $options["condition"], 
                        $options["value"] 
                    ); 
                if (!empty($cellStr)) { 
                    foreach ($options["css"] as $key => $value) { 
                        $cellStr .= 
                            "$("#" . 
                            $this->jq_gridName . 
                            "").setCell(item.id," . 
                            $itemIndex . 
                            ","",{"" . 
                            $key . 
                            "":"" . 
                            $value . 
                            ""});" . 
                            "\xa"; 
                    } 
                    $cellStr .= "\xa" . "} }"; 
                } 
            } 
            for ($i = 0; $i < count($this->jq_rowConditions); $i++) { 
                $rowCondition = $this->jq_rowConditions[$i]; 
                $colIndex = $this->db->field_index( 
                    $result, 
                    $rowCondition["col"] 
                ); 
                $options = $rowCondition["options"]; 
                $rowStr .= 
                    "if (item.cell['{$colIndex}'] != null) {" . 
                    $this->generate_condition( 
                        $colIndex, 
                        $options["condition"], 
                        $options["value"] 
                    ); 
                if (!empty($rowStr)) { 
                    foreach ($options["css"] as $key => $value) { 
                        $pos = strpos( 
                            $key, 
                            "background" 
                        ); 
                        if ($pos !== false) { 
                            $rowStr .= 
                                "$("#" + item.id).removeClass("ui-widget-content");"; 
                        } 
                        $rowStr .= 
                            "$("#" + item.id).css("" . 
                            $key . 
                            "","" . 
                            $value . 
                            "");" . 
                            "
"; 
                    } 
                    $rowStr .= "
" . "} }"; 
                } 
            } 
            if (!empty($cellStr) || !empty($rowStr)) { 
                echo "loadComplete: function(data){
                        if($("#" . 
                    $this->jq_gridName . 
                    "").getGridParam("reccount") != 0){$.each(data.rows,function(i,item){" . 
                    $rowStr . 
                    $cellStr . 
                    " })};
                },"; 
            } 
        } 
    } 
    private function get_beforeShowForm_readonlyattr() 
    { 
        $readonlyattr = 
            "beforeShowForm: function(frm) {"; 
        foreach ($this->col_readonly as $key => $value) { 
            $readonlyattr .= 
                "$("#" . 
                $value . 
                "").attr("readonly","readonly");"; 
        } 
        $readonlyattr .= " }" . "\xa"; 
        return $readonlyattr; 
    } 
    private function generate_condition($colIndex, $condition, $value) 
    { 
        $ret = ""; 
        switch ($condition) { 
            case "eq": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "] == "" . 
                    $value . 
                    "") {" . 
                    "
"; 
                break; 
            case "ne": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "] != "" . 
                    $value . 
                    "") {" . 
                    "
"; 
                break; 
            case "lt": 
                $ret = 
                    "
" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "] < " . 
                    $value . 
                    ") {" . 
                    "\xa"; 
                break; 
            case "le": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "] <= " . 
                    $value . 
                    ") {" . 
                    "\xa"; 
                break; 
            case "gt": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "] > " . 
                    $value . 
                    ") {" . 
                    "\xa"; 
                break; 
            case "ge": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "] >= "" . 
                    $value . 
                    "") {" . 
                    "
"; 
                break; 
            case "cn": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "].indexOf("" . 
                    $value . 
                    "")!=-1) {" . 
                    "\xa"; 
                break; 
            case "nc": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "].indexOf("" . 
                    $value . 
                    "")==-1) {" . 
                    "
"; 
                break; 
            case "bw": 
                $ret = 
                    "
" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "].indexOf("" . 
                    $value . 
                    "")==0) {" . 
                    "\xa"; 
                break; 
            case "bn": 
                $ret = 
                    "\xa" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "].indexOf("" . 
                    $value . 
                    "")!=0) {" . 
                    "\xa"; 
                break; 
            case "ew": 
                $ret = 
                    "
" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "].substr(-1)==="" . 
                    $value . 
                    "") {" . 
                    "\xa"; 
                break; 
            case "en": 
                $ret = 
                    "
" . 
                    "if (item.cell[" . 
                    $colIndex . 
                    "].substr(-1)!=="" . 
                    $value . 
                    "") {" . 
                    "
"; 
                break; 
        } 
        return $ret; 
    } 
    private function display_subgrid(&$cnt) 
    { 
        if ($this->obj_subgrid != null) { 
            echo "subGrid: true," . 
                "
"; 
            echo "subGridRowExpanded: function(subgrid_id" . 
                $cnt . 
                ", row_id" . 
                $cnt . 
                ") {
                    var subgrid_table_id" . 
                $cnt . 
                ", pager_id" . 
                $cnt . 
                ";
                    subgrid_table_id" . 
                $cnt . 
                " = subgrid_id" . 
                $cnt . 
                "+"_t";
                    pager_id" . 
                $cnt . 
                " = "p_"+subgrid_table_id" . 
                $cnt . 
                ";" . 
                "
"; 
            echo "  $("#"+subgrid_id" . 
                $cnt . 
                ").html("<table id='"+subgrid_table_id" . 
                $cnt . 
                "+"' class='scroll'></table><div id='"+pager_id" . 
                $cnt . 
                "+"' class='scroll'></div>");" . 
                "\xa"; 
            echo "  jQuery("#"+subgrid_table_id" . 
                $cnt . 
                ").jqGrid({ " . 
                "
"; 
            $this->obj_subgrid->set_jq_url( 
                $this->obj_subgrid->get_jq_url() . 
                    "+row_id" . 
                    $cnt, 
                false 
            ); 
            $this->obj_subgrid->set_jq_pagerName( 
                "pager_id" . $cnt, 
                false 
            ); 
            $this->obj_subgrid->set_multiselect(false); 
            $this->obj_subgrid->set_dimension($this->jq_width - 100); 
            $this->obj_subgrid->display_properties_main(); 
            if ($this->obj_subgrid->obj_subgrid != null) { 
                $cnt++; 
                $obj_sg = $this->obj_subgrid; 
                $obj_sg->display_subgrid($cnt); 
                $cnt--; 
            } 
            echo "  }); // end of subgrid_table_id" . 
                $cnt . 
                " subgrid" . 
                "
"; 
            echo $this->obj_subgrid->col_custom . "
"; 
            echo "jQuery("#"+subgrid_table_id" . 
                $cnt . 
                ").jqGrid("navGrid","#"+pager_id" . 
                $cnt . 
                "," . 
                "{edit:" . 
                (strrpos($this->obj_subgrid->edit_options, "U") !== false && 
                $this->obj_subgrid->edit_mode != "INLINE" 
                    ? "true" 
                    : "false") . 
                ",add:" . 
                (strrpos($this->obj_subgrid->edit_options, "C") !== false 
                    ? "true" 
                    : "false") . 
                ",del:" . 
                (strrpos($this->obj_subgrid->edit_options, "D") !== false 
                    ? "true" 
                    : "false") . 
                ",view:" . 
                (strrpos($this->obj_subgrid->edit_options, "R") !== false && 
                $this->obj_subgrid->edit_mode != "INLINE" 
                    ? "true" 
                    : "false") . 
                ",search:false" . 
                ",excel:" . 
                ($this->obj_subgrid->export_type != null 
                    ? "true" 
                    : "false") . 
                "}) " . 
                "
"; 
            echo "}, // end of subGridRowExpanded" . 
                "
"; 
            echo "subGridRowColapsed: function(subgrid_id" . 
                $cnt . 
                ", row_id" . 
                $cnt . 
                "){},"; 
        } 
    } 
    private function display_masterdetail() 
    { 
        $md_onselectrow = ""; 
        if ($this->obj_md != null) { 
            $md_onselectrow = 
                "function(status, ids) {            \xa\x9			\x9// console.log(ids);
                    if(ids == null) {                        
                        ids=0;"; 
            for ($i = 0; $i < count($this->obj_md); $i++) { 
                $md_onselectrow .= 
                    "var mgrid = $("#" . 
                    $this->jq_gridName . 
                    "");\xa		\x9		\x9\x9var sel_id = mgrid.jqGrid("getGridParam", "selrow");\xa		\x9\x9\x9\x9\x9var fkey_value = mgrid.jqGrid("getCell", sel_id, "" . 
                    $this->obj_md[$i]->get_sql_fkey() . 
                    "");
		\x9	\x9		// console.log(fkey_value);\xa	\x9\x9\x9\x9		jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("setGridParam", {editurl:"" . 
                    ABS_PATH . 
                    "/" . 
                    $this->edit_file . 
                    "?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "&src=md&fkey=" . 
                    $this->obj_md[$i]->get_sql_fkey() . 
                    "&fkey_value="+fkey_value});" . 
                    "
"; 
                $md_onselectrow .= 
                    "
" . 
                    "if(jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("getGridParam","records") >0 )
                            {\xa                                jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("setGridParam",{url:"" . 
                    ABS_PATH . 
                    "/masterdetail.php?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "&fkey_value="+fkey_value+"&" . 
                    JQGRID_ROWID_KEY . 
                    "="+ids,page:1}).trigger("reloadGrid");\xa                            }
                            else {
                                jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("setGridParam",{url:"" . 
                    ABS_PATH . 
                    "/masterdetail.php?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "&fkey_value="+fkey_value+"&" . 
                    JQGRID_ROWID_KEY . 
                    "="+ids,page:1}).trigger("reloadGrid");\xa                            }" . 
                    "\xa"; 
            } 
            $md_onselectrow .= " } else {"; 
            for ($i = 0; $i < count($this->obj_md); $i++) { 
                $md_onselectrow .= 
                    "var mgrid = $("#" . 
                    $this->jq_gridName . 
                    "");\xa\x9\x9	\x9\x9			var sel_id = mgrid.jqGrid("getGridParam", "selrow");
\x9	\x9	\x9	\x9\x9var fkey_value = mgrid.jqGrid("getCell", sel_id, "" . 
                    $this->obj_md[$i]->get_sql_fkey() . 
                    "");\xa					\x9	\x9// console.log(fkey_value);
\x9	\x9\x9			\x9jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("setGridParam", {editurl:"" . 
                    ABS_PATH . 
                    "/" . 
                    $this->edit_file . 
                    "?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "&src=md&fkey=" . 
                    $this->obj_md[$i]->get_sql_fkey() . 
                    "&fkey_value="+fkey_value});" . 
                    "
"; 
                $md_onselectrow .= 
                    "\xa" . 
                    "if(jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("getGridParam","records") >0 )\xa                            {                                \xa                                jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("setGridParam",{url:"" . 
                    ABS_PATH . 
                    "/masterdetail.php?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "&fkey_value="+fkey_value+"&" . 
                    JQGRID_ROWID_KEY . 
                    "="+ids,page:1}).trigger("reloadGrid");\xa                            }\xa                            else {                                \xa                                jQuery("#" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "").jqGrid("setGridParam",{url:"" . 
                    ABS_PATH . 
                    "/masterdetail.php?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->obj_md[$i]->get_jq_gridName() . 
                    "&fkey_value="+fkey_value+"&" . 
                    JQGRID_ROWID_KEY . 
                    "="+ids,page:1}).trigger("reloadGrid");
                            }"; 
            } 
            $md_onselectrow .= "}}" . "
"; 
            $this->script_ude_handler .= 
                "$("#" . 
                $this->jq_gridName . 
                "").bind("jqGridSelectRow", " . 
                $md_onselectrow . 
                ");" . 
                "\xa"; 
        } else { 
        } 
    } 
    private function display_properties_end() 
    { 
        echo "loadtext:"" . 
            $this->jq_loadtext . 
            ""
"; 
        echo "});" . "
"; 
    } 
    private function display_extended_properties() 
    { 
        if ($this->kb_nav) { 
            echo "$("#" . 
                $this->jq_gridName . 
                "").jqGrid("bindKeys", {
					onEnter:function( rowid ) {\xa\x9\x9\x9\x9	    //alert("rowid: "+rowid); // only gets called when key pressed at the ROW LEVEL

						// restore focus
	\x9\x9\x9	\x9// TODO - 9/27/2013 - Richard: This function is probably never gets called - need to investigate\xa	\x9\x9\x9		$("#" . 
                $this->jq_gridName . 
                "").jqGrid("editRow",rowid,true,null, null, null, {},function(){
\x9	\x9		\x9\x9setTimeout(function(){
	\x9\x9\x9\x9\x9\x9	$("#" . 
                $this->jq_gridName . 
                "").focus();\xa\x9\x9\x9		\x9	},100);
		\x9	\x9\x9});\xa\x9			\x9}\xa	\x9	\x9});" . 
                "\xa"; 
        } 
        if (!empty($this->col_frozen)) { 
            echo "$("#" . 
                $this->jq_gridName . 
                "").jqGrid("setFrozenColumns");" . 
                "
"; 
        } 
    } 
    private function display_toolbar() 
    { 
        switch ($this->edit_mode) { 
            case "FORM": 
            case "INLINE": 
                echo "jQuery("#" . 
                    $this->jq_gridName . 
                    "").jqGrid("navGrid", " . 
                    $this->jq_pagerName . 
                    ",\xa"; 
                echo "{edit:" . 
                    (strrpos($this->edit_options, "U") !== false && 
                    $this->edit_mode != "INLINE" 
                        ? "true" 
                        : "false") . 
                    ",add:" . 
                    ($this->edit_mode == "INLINE" 
                        ? "false" 
                        : (strrpos($this->edit_options, "C") !== false 
                            ? "true" 
                            : "false")) . 
                    ",del:" . 
                    (strrpos($this->edit_options, "D") !== false 
                        ? "true" 
                        : "false") . 
                    ",view:" . 
                    (strrpos($this->edit_options, "R") !== false && 
                    $this->edit_mode != "INLINE" 
                        ? "true" 
                        : "false") . 
                    ",cloneToTop:true" . 
                    ",search:false" . 
                    ",excel:" . 
                    ($this->export_type != null 
                        ? "true" 
                        : "false") . 
                    "}, "; 
                echo "{			// --------- edit options ---------" . 
                    "
"; 
                echo $this->script_editEvtHandler . 
                    $this->get_beforeShowForm_readonlyattr(); 
                echo "}," . "\xa"; 
                echo "{\x9\x9\x9// --------- add options ---------
	\x9			\x9\x9\x9closeAfterAdd:true,\xa                \x9	\x9\x9bottominfo:"* required",
                                viewPagerButtons:true,
                                afterComplete: function (response, postdata, formid) {  // auto reload\xa                                            var $self = $(this);\xa                                            setTimeout(function () {\xa                                                $self.trigger("reloadGrid");\xa                                            }, 50);
                                         },
                                beforeShowForm: function(frm) {"; 
                foreach ($this->col_readonly as $key => $value) { 
                    echo "$("#" . 
                        $value . 
                        "").removeAttr("readonly");"; 
                } 
                echo "}," . "
"; 
                echo $this->script_editEvtHandler; 
                echo "}," . "
"; 
                echo "{   // --------- del options ---------
                                reloadAfterSubmit:false,\xa                                jqModal:false,
                                bottominfo:"* required",\xa                                closeOnEscape:true,\xa                                afterComplete: function(){}\xa                            }, 
                            {
                                // --------- view options ---------       \xa                                navkeys: [false,38,40], \xa	\x9\x9		\x9\x9\x9height:250,\xa	\x9	\x9\x9	\x9\x9jqModal:false,\xa	\x9	\x9\x9\x9	\x9resize:true,\xa\x9	\x9\x9\x9\x9\x9	closeOnEscape:true\xa                            }, 
                            {closeOnEscape:true} // search options 
                         );" . 
                    "
"; 
                break; 
            case "NONE": 
                echo "jQuery("#" . 
                    $this->jq_gridName . 
                    "").jqGrid("navGrid", " . 
                    $this->jq_pagerName . 
                    ",
"; 
                echo "{edit:false,add:false,del:false,view:false" . 
                    ",search:false" . 
                    ",excel:" . 
                    ($this->export_type != null 
                        ? "true" 
                        : "false") . 
                    "}, {})" . 
                    "
"; 
                break; 
        } 
        if ( 
            $this->jqu_resize[ 
                "is_resizable" 
            ] 
        ) { 
            echo "jQuery("#" . 
                $this->jq_gridName . 
                "").jqGrid("gridResize",{minWidth:" . 
                $this->jqu_resize["min_width"] . 
                ",minHeight:" . 
                $this->jqu_resize["min_height"] . 
                "});" . 
                "
"; 
        } 
        if ($this->has_tbarsearch) { 
            echo "jQuery("#" . 
                $this->jq_gridName . 
                "").jqGrid("navButtonAdd"," . 
                $this->jq_pagerName . 
                ",{caption:"",title:"Toggle inline search", buttonicon :"ui-icon-search",
                        onClickButton:function(){\xa                            phpGrid_" . 
                $this->sql_table . 
                "[0].toggleToolbar();
                        }
                    });" . 
                "\xa"; 
            echo "jQuery("#" . 
                $this->jq_gridName . 
                "").jqGrid("filterToolbar", {searchOnEnter: false, stringResult: true, defaultSearch: "cn"});" . 
                "\xa"; 
            echo "phpGrid_" . 
                $this->sql_table . 
                "[0].toggleToolbar();" . 
                "\xa"; 
        } 
        if ($this->advanced_search) { 
            echo "jQuery("#" . 
                $this->jq_gridName . 
                "")\xa                .navGrid(" . 
                $this->jq_pagerName . 
                ",{edit:false,add:false,del:false,search:false,refresh:false})
                .navButtonAdd(" . 
                $this->jq_pagerName . 
                ",{
                    caption:"", 
                    buttonicon:"ui-icon-search", 
                    onClickButton: function(){ 
                        jQuery("#" . 
                $this->jq_gridName . 
                "").jqGrid("searchGrid", {multipleSearch:true});         
                }, 
                position:"first"          \xa            });" . 
                "\xa"; 
        } 
        if ($this->export_type != null) { 
            echo "jQuery("#" . 
                $this->jq_gridName . 
                "").jqGrid("navButtonAdd"," . 
                $this->jq_pagerName . 
                ",{caption:"",title:"" . 
                $this->export_type . 
                "",\xa                        onClickButton:function(e){
                            try{\xa                                jQuery("#" . 
                $this->jq_gridName . 
                "").jqGrid("excelExport",{url:"" . 
                $this->export_url . 
                ($this->export_type != "" 
                    ? "&export_type=" . 
                        $this->export_type 
                    : "") . 
                ""});
                            } catch (e) {
                                window.location= "" . 
                $this->export_url . 
                ($this->export_type != "" 
                    ? "&export_type=" . 
                        $this->export_type 
                    : "") . 
                "";
                            }
\xa                        }\xa                    });" . 
                "
"; 
        } 
        if (!empty($this->grid_methods)) { 
            foreach ($this->grid_methods as $method) { 
                echo str_replace( 
                    "###"", 
                    "", 
                    str_replace( 
                        ""###", 
                        "", 
                        str_replace( 
                            "\"", 
                            """, 
                            str_replace( 
                                "\n", 
                                " ", 
                                str_replace("\r\n", " ", $method) 
                            ) 
                        ) 
                    ) 
                ) . "
"; 
            } 
        } 
        unset($method); 
    } 
    public function set_sortablerow($sortable = false) 
    { 
        if ($sortable) { 
            $this->grid_methods[] = 
                "phpGrid_" . 
                $this->sql_table . 
                ".jqGrid("sortableRows", {});"; 
        } 
        return $this; 
    } 
    public function set_grid_method() 
    { 
        $options = ""; 
        $method_name = func_get_arg(0); 
        for ($i = 1; $i < func_num_args(); $i++) { 
            if (is_array(func_get_arg($i))) { 
                $options .= json_encode(func_get_arg($i)) . ","; 
            } else { 
                $options .= """ . func_get_arg($i) . "","; 
            } 
        } 
        $options = substr($options, 0, -1); 
        $this->grid_methods[] = 
            "phpGrid_" . 
            $this->sql_table . 
            ".jqGrid("" . 
            $method_name . 
            "", " . 
            $options . 
            ");"; 
        return $this; 
    } 
    public function enable_columnchooser($enable = false) 
    { 
        if ($enable) { 
            $this->set_grid_method( 
                "navButtonAdd", 
                "###phpGrid_" . 
                    $this->sql_table . 
                    ".getGridParam("pager")###", 
                [ 
                    "caption" => "", 
                    "buttonicon" => 
                        "ui-icon-calculator", 
                    "title" => 
                        "Choose Columns", 
                    "onClickButton" => 
                        "###function() {\xa                            phpGrid_" . 
                        $this->sql_table . 
                        ".jqGrid("columnChooser", {"modal":true});
                         }###", 
                ] 
            ); 
        } 
        return $this; 
    } 
    private function display_script_end() 
    { 
        echo "
" . "});" . "
"; 
        echo "function getSelRows()
             {
                var rows = jQuery("#" . 
            $this->jq_gridName . 
            "").jqGrid("getGridParam","selarrrow");                               \xa                return rows;                
             }" . 
            "
"; 
        echo "// cellValue - the original value of the cell
              // options - as set of options, e.g\xa              // options.rowId - the primary key of the row
              // options.colModel - colModel of the column\xa              // rowObject - array of cell data for the row, so you can access other cells in the row if needed " . 
            "\xa"; 
        echo "function imageFormatter(cellValue, options, rowObject)\xa             {\xa                return (cellValue == "" || cellValue === null)? "":"<img src=\"" . 
            $this->img_baseUrl . 
            ""+ cellValue + "\" originalValue=\""+ cellValue +"\" title=\""+ cellValue +"\">";
             }" . 
            "
"; 
        echo "// cellValue - the original value of the cell
              // options - as set of options, e.g
              // options.rowId - the primary key of the row\xa              // options.colModel - colModel of the column
              // cellObject - the HMTL of the cell (td) holding the actual value " . 
            "\xa"; 
        echo "function imageUnformatter(cellValue, options, cellObject)\xa             {      
                return $(cellObject.html()).attr("originalValue");\xa             }" . 
            "
"; 
        echo "function booleanFormatter(cellValue, options, rowObject)
             {
\x9\x9	\x9var op;
\x9		\x9op = $.extend({},options.colModel.formatoptions);
                myCars=new Array(); 
	\x9	\x9//alert(op.No);\xa		\x9\x9//mycars[cellValue]=  op.boolean.No;\xa	\x9		//mycars[cellValue]=  op.boolean.Yes;\xa\x9			myCars[op.No]="No";       
\x9	\x9\x9myCars[op.Yes]="Yes";
\x9\x9	\x9//alert(options[boolean]);\xa\x9\x9\x9	return myCars[cellValue];
             }" . 
            "\xa"; 
        echo "function booleanUnformatter(cellValue, options, cellObject)\xa             {    var op;\xa	\x9\x9	  op = $.extend({},options.colModel.formatoptions);\xa		\x9\x9  //alert(op.No);\xa		\x9\x9  if(cellValue=="No")\xa\x9	\x9\x9  return (op.No);\xa\x9		\x9  else\xa			\x9  return (op.Yes);\xa            //alert(op.boolean.Yes)\xa            //return (op.boolean.cellValue);
              //  myCars=new Array(); 
\x9\x9\x9//\x9myCars["No"]='0';       \xa\x9		//\x9myCars["Yes"]=1;
\x9\x9\x9	//alert(myCars[cellValue]);\xa		\x9	//alert(options.colModel.formatoptions[1]);\xa	\x9	\x9//return myCars[cellValue];\xa             }" . 
            "\xa"; 
        echo $this->col_custom; 
        echo "//]]>" . "
"; 
        echo "</script>" . "\xa"; 
    } 
    private function display_events() 
    { 
        echo "<script type="text/javascript">" . 
            "\xa"; 
        echo "jQuery(document).ready(function($){ " . 
            "
"; 
        echo $this->script_ude_handler; 
        echo "$(document).ajaxComplete(function( event, xhr, settings ) {if ( (settings.url.split("?")[0]).indexOf("edit.php") >= 0 ){alert( xhr.responseText );}});"; 
        echo "});" . "
"; 
        echo "</script>" . "\xa"; 
    } 
    private function display_container() 
    { 
        echo "<table id="" . 
            $this->jq_gridName . 
            ""></table>" . 
            "\xa"; 
        echo "<div id=" . 
            str_replace("#", "", $this->jq_pagerName) . 
            "></div>" . 
            "\xa"; 
        echo "<br />" . "
"; 
        echo "<Script Language='Javascript'>document.write(unescape('%3c%64%69%76%20%63%6c%61%73%73%3d%22%70%67%5f%6e%6f%74%69%66%79%22%20%73%74%79%6c%65%3d%22%66%6f%6e%74%2d%73%69%7a%65%3a%37%70%74%3b%63%6f%6c%6f%72%3a%67%72%61%79%3b%66%6f%6e%74%2d%66%61%6d%69%6c%79%3a%61%72%69%61%6c%3b%63%75%72%73%6f%72%3a%70%6f%69%6e%74%65%72%3b%22%3e%0d%0a%09%20%20%20%20%59%6f%75%20%61%72%65%20%75%73%69%6e%67%20%3c%61%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%70%68%70%67%72%69%64%2e%63%6f%6d%2f%22%20%74%61%72%67%65%74%3d%22%5f%6e%65%77%22%3e%70%68%70%47%72%69%64%20%4c%69%74%65%3c%2f%61%3e%2e%20%50%6c%65%61%73%65%20%63%6f%6e%73%69%64%65%72%20%3c%61%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%70%68%70%67%72%69%64%2e%63%6f%6d%2f%64%6f%77%6e%6c%6f%61%64%73%2f%3f%72%65%66%3d%6c%69%74%65%5f%6e%61%67%23%63%6f%6d%70%61%72%69%73%6f%6e%22%20%74%61%72%67%65%74%3d%22%5f%6e%65%77%22%3e%75%70%67%72%61%64%69%6e%67%20%70%68%70%47%72%69%64%3c%2f%61%3e%20%74%6f%20%74%68%65%20%66%75%6c%6c%20%76%65%72%73%69%6f%6e%20%74%6f%20%68%61%76%65%20%67%72%65%61%74%20%66%65%61%74%75%72%65%73%20%69%6e%63%6c%75%64%69%6e%67%20%65%64%69%74%2c%20%6d%61%73%74%65%72%20%64%65%74%61%69%6c%2c%20%61%6e%64%20%67%72%6f%75%70%69%6e%67%2c%20%63%6f%6d%70%6f%73%69%74%65%20%6b%65%79%2c%20%66%69%6c%65%20%75%70%6c%6f%61%64%2c%20%61%6e%64%20%70%72%65%6d%69%75%6d%20%74%68%65%6d%65%73%21%0d%0a%09%3c%2f%64%69%76%3e'));</Script>"; 
    } 
    private function display_debug() 
    { 
        echo "<script>jQuery(document).ready(function($){
                $('#_" . 
            $this->jq_gridName . 
            "_debug_ajaxresponse').toggle();\xa                $('#_" . 
            $this->jq_gridName . 
            "_debug_ctrl').toggle();\xa                $('#_" . 
            $this->jq_gridName . 
            "_debug_gridobj').toggle();
                $('#_" . 
            $this->jq_gridName . 
            "_debug_sessobj').toggle();
            });</script>"; 
        print "<u style="cursor:pointer" onclick="$('#_" . 
            $this->jq_gridName . 
            "_debug_ctrl').toggle('fast');">CONTROL VALIDATION</u><br />"; 
        print "<pre id='_" . 
            $this->jq_gridName . 
            "_debug_ctrl' style='border:1pt dotted black;padding:5pt;background:red;color:white;display:block'>"; 
        if ($this->jq_multiselect && $this->edit_mode == "NONE") { 
            print "\xa" . 
                "- Grid has multiselect enabled. However, the grid has not been set to be editable."; 
        } 
        if ($this->jq_scroll) { 
            print "\xa" . 
                "- Scrolling (set_sroll)is enabled. As a result, pagination is disabled."; 
        } 
        print "</pre>"; 
        print "<u style="cursor:pointer" onclick="$('#_" . 
            $this->jq_gridName . 
            "_debug_gridobj').toggle('fast');">DATAGRID OBJECT</u><br />"; 
        print "<pre id='_" . 
            $this->jq_gridName . 
            "_debug_gridobj' style='border:1pt dotted black;padding:5pt;background:#E4EAF5;display:block'>"; 
        print_r($this); 
        print "</pre>"; 
        print "<u style="cursor:pointer" onclick="$('#_" . 
            $this->jq_gridName . 
            "_debug_sessobj').toggle('fast');">SESSION OBJECT</u><br />"; 
        print "<pre id='_" . 
            $this->jq_gridName . 
            "_debug_sessobj' style='border:1pt dotted black;padding:5pt;background:#FFDAFA;display:block'>"; 
        print "<br />SESSION NAME: " . 
            session_name(); 
        print "<br />SESSION ID: " . 
            session_id() . 
            "<br />"; 
        print "SESSION KEY: " . 
            GRID_SESSION_KEY . 
            "_" . 
            $this->jq_gridName . 
            "<br />"; 
        print_r( 
            C_Utility::indent_json( 
                str_replace( 
                    "\u0000", 
                    " ", 
                    json_encode($_SESSION) 
                ) 
            ) 
        ); 
        print "</pre>"; 
    } 
    private function display_ajaxresponse() 
    { 
        print "<u style="cursor:pointer" onclick="$('#_" . 
            $this->jq_gridName . 
            "_debug_ajaxresponse').toggle('fast');">AJAX RESPONSE</u><br />"; 
        print "<pre id='_" . 
            $this->jq_gridName . 
            "_debug_ajaxresponse' style='border:1pt dotted black;padding:5pt;background:yellow;color:black;display:block'>"; 
        print "</pre>"; 
    } 
    public function display($render_content = true) 
    { 
        $subgrid_count = 1; 
        if (C_Utility::is_debug()) { 
            print "<h2>" . $this->_ver_num . "</h2>"; 
        } 
        $this->prepare_grid(); 
        if ($this->jq_datatype == "local") { 
            $this->display_script_data(); 
        } 
        $this->display_style(); 
        ob_start(); 
        $this->display_script_includeonce(); 
        $this->script_includeonce = ob_get_contents(); 
        ob_end_clean(); 
        if ($render_content) { 
            $this->display_script_includeonce(); 
        } 
        ob_start(); 
        $this->display_script_begin(); 
        $this->display_properties_begin(); 
        $this->display_properties_main(); 
        $this->display_subgrid($subgrid_count); 
        $this->display_masterdetail(); 
        $this->display_properties_end(); 
        $this->display_extended_properties(); 
        $this->display_toolbar(); 
        $this->display_before_script_end(); 
        $this->display_script_end(); 
        $this->display_container(); 
        $this->display_events(); 
        if (C_Utility::is_debug()) { 
            $this->display_ajaxresponse(); 
            $this->display_debug(); 
        } 
        if ($this->obj_md != null) { 
            for ($i = 0; $i < count($this->obj_md); $i++) { 
                $this->obj_md[$i]->display(); 
            } 
        } 
        $this->script_body = ob_get_contents(); 
        $this->script_body = preg_replace( 
            "/,\s*}/", 
            "}", 
            $this->script_body 
        ); 
        ob_end_clean(); 
        if ($render_content) { 
            echo $this->script_body; 
        } 
    } 
    public function __sleep() 
    { 
    } 
    public function __wakeup() 
    { 
    } 
    protected function set_sql($sqlstr) 
    { 
        $this->sql = $sqlstr; 
        return $this; 
    } 
    public function set_query_filter($where) 
    { 
        if ($where != "") { 
            $this->sql_filter = $where; 
        } 
        return $this; 
    } 
    protected function get_filter() 
    { 
        return $this->sql_filter; 
    } 
    protected function set_sql_table($sqltable) 
    { 
        $this->sql_table = $sqltable; 
        return $this; 
    } 
    public function get_sql_table() 
    { 
        return $this->sql_table; 
    } 
    protected function set_jq_url($url, $add_quote = true) 
    { 
        $this->jq_url = $add_quote ? """ . $url . """ : $url; 
        return $this; 
    } 
    protected function get_jq_url() 
    { 
        return $this->jq_url; 
    } 
    public function set_jq_datatype($datatype) 
    { 
        $this->jq_datatype = $datatype; 
        $this->jq_url = 
            """ . 
            ABS_PATH . 
            "/data.php?dt=" . 
            $datatype . 
            "&gn=" . 
            $this->jq_gridName . 
            """; 
        return $this; 
    } 
    public function get_jq_datatype() 
    { 
        return $this->jq_datatype; 
    } 
    public function set_col_hidden($col_name, $edithidden = true) 
    { 
        if (is_array($col_name)) { 
            foreach ($col_name as $col) { 
                $this->col_hiddens[$col][ 
                    "edithidden" 
                ] = $edithidden; 
            } 
        } else { 
            $col_names = preg_split( 
                "/[\s]*[,][\s]*/", 
                $col_name 
            ); 
            foreach ($col_names as $col) { 
                $this->col_hiddens[$col][ 
                    "edithidden" 
                ] = $edithidden; 
            } 
        } 
        return $this; 
    } 
    public function get_col_hiddens() 
    { 
        return $this->col_hiddens; 
    } 
    public function set_col_readonly($arr) 
    { 
        $this->col_readonly = preg_split( 
            "/[\s]*[,][\s]*/", 
            $arr 
        ); 
        return $this; 
    } 
    public function get_col_readonly() 
    { 
        return $this->col_readonly; 
    } 
    public function get_sql() 
    { 
        return $this->sql; 
    } 
    public function get_db_connection() 
    { 
        return $this->db_connection; 
    } 
    public function set_sql_key($sqlkey) 
    { 
        if (!is_array($sqlkey)) { 
            $sqlkey = [$sqlkey]; 
        } 
        $this->sql_key = $sqlkey; 
        return $this; 
    } 
    public function get_sql_key() 
    { 
        return $this->sql_key; 
    } 
    public function set_sql_fkey($sqlfkey) 
    { 
        $this->sql_fkey = $sqlfkey; 
        return $this; 
    } 
    public function get_sql_fkey() 
    { 
        return $this->sql_fkey; 
    } 
    public function get_num_rows() 
    { 
        return $this->_num_rows; 
    } 
    public function set_scroll($scroll, $h = "400") 
    { 
        $this->jq_scroll = $scroll; 
        $this->jq_height = $h; 
        return $this; 
    } 
    public function set_jq_editurl($url) 
    { 
        $this->jq_editurl = $url; 
    } 
    public function enable_edit( 
        $edit_mode = "FORM", 
        $options = "CRUD", 
        $edit_file = "edit.php" 
    ) { 
        switch ($edit_mode) { 
            case "CELL": 
                $this->jq_cellEdit = true; 
                break; 
            case "INLINE": 
                $this->edit_file = $edit_file; 
                $this->set_jq_editurl( 
                    ABS_PATH . 
                        "/" . 
                        $edit_file . 
                        "?dt=" . 
                        $this->jq_datatype . 
                        "&gn=" . 
                        $this->jq_gridName 
                ); 
                if (strrpos($options, "C") !== false) { 
                    $this->set_grid_method( 
                        "inlineNav", 
                        "###phpGrid_" . 
                            $this->sql_table . 
                            ".getGridParam("pager")###", 
                        [ 
                            "addParams" => [ 
                                "position" => 
                                    "last", 
                                "addRowParams" => [ 
                                    "keys" => true, 
                                    "successfunc" => 
                                        "###function(){\xa                                        var $self=$(this);
                                        setTimeout(function(){\xa                                            $self.trigger("reloadGrid");
                                        }, 50);\xa                                    }###", 
                                    "errorfunc" => 
                                        "###function(id,res){}###", 
                                ], 
                            ], 
                        ] 
                    ); 
                } 
                break; 
            case "FORM": 
                $this->edit_file = $edit_file; 
                $this->set_jq_editurl( 
                    ABS_PATH . 
                        "/" . 
                        $edit_file . 
                        "?dt=" . 
                        $this->jq_datatype . 
                        "&gn=" . 
                        $this->jq_gridName 
                ); 
                break; 
            default: 
        } 
        $this->edit_mode = $edit_mode; 
        $this->edit_options = $options; 
        return $this; 
    } 
    public function set_edit_condition($conditions = []) 
    { 
        $onGridLoadComplete_script_begin = 
            "function(s, r)\xa            {\xa                var ids = phpGrid_" . 
            $this->sql_table . 
            ".jqGrid("getDataIDs");
                for (var i = 0; i < ids.length; i++)\xa                {\xa                    var rowId = ids[i];\xa                    var rowData = phpGrid_" . 
            $this->sql_table . 
            ".jqGrid ("getRowData", rowId);" . 
            "
"; 
        $compare_condition = "if("; 
        foreach ($conditions as $column => $compare_operand) { 
            if ( 
                trim($compare_operand) == "||" || 
                trim($compare_operand) == "&&" 
            ) { 
                $compare_operand = 
                    $compare_operand == "||" ? "&&" : "||"; 
                $compare_condition .= $compare_operand; 
            } else { 
                $compare_condition .= 
                    " !(phpGrid_" . 
                    $this->sql_table . 
                    ".jqGrid("getCell", rowId, "" . 
                    trim($column) . 
                    "") " . 
                    trim($compare_operand) . 
                    ") "; 
            } 
        } 
        $compare_condition .= ")"; 
        $onGridLoadComplete_script_end = 
            "\xa                    {\xa                        phpGrid_" . 
            $this->sql_table . 
            ".jqGrid("setCell", rowId, "actions", " zzz ", {"display":"none"}); // not possible to set value for virtual column\xa                    }\xa                }\xa\xa            }"; 
        $this->add_column( 
            "actions", 
            [ 
                "name" => "actions", 
                "index" => "actions", 
                "width" => "80", 
                "formatter" => 
                    "actions", 
                "formatoptions" => [ 
                    "keys" => true, 
                ], 
            ], 
            "Actions" 
        ); 
        $this->set_grid_property([ 
            "onSelectRow" => "", 
        ]); 
        $this->add_event( 
            "jqGridLoadComplete", 
            $onGridLoadComplete_script_begin . 
                $compare_condition . 
                $onGridLoadComplete_script_end 
        ); 
    } 
    public function enable_search($can_search) 
    { 
        $this->has_tbarsearch = $can_search; 
        return $this; 
    } 
    public function enable_advanced_search($has_adsearch) 
    { 
        $this->advanced_search = $has_adsearch; 
        return $this; 
    } 
    public function set_multiselect($multiselect) 
    { 
        $this->jq_multiselect = $multiselect; 
        return $this; 
    } 
    public function has_multiselect() 
    { 
        return $this->jq_multiselect; 
    } 
    public function set_col_required($arr) 
    { 
        $this->col_required = preg_split( 
            "/[\s]*[,][\s]*/", 
            $arr 
        ); 
        return $this; 
    } 
    public function set_col_title($col_name, $new_title) 
    { 
        $this->col_titles[$col_name] = $new_title; 
        return $this; 
    } 
    public function get_col_titles() 
    { 
        return $this->col_titles; 
    } 
    public function set_col_link($col_name, $target = "_new") 
    { 
        $this->col_formats[$col_name]["link"] = [ 
            "target" => $target, 
        ]; 
        return $this; 
    } 
    public function set_col_date( 
        $col_name, 
        $srcformat = "Y-m-d", 
        $newformat = "Y-m-d", 
        $datePickerFormat = "Y-m-d" 
    ) { 
        $this->col_formats[$col_name]["date"] = [ 
            "srcformat" => $srcformat, 
            "newformat" => $newformat, 
            "datePickerFormat" => $datePickerFormat, 
        ]; 
        return $this; 
    } 
    public function set_col_currency( 
        $col_name, 
        $prefix = "$", 
        $suffix = "", 
        $thousandsSeparator = ",", 
        $decimalSeparator = ".", 
        $decimalPlaces = "2", 
        $defaultValue = "0.00" 
    ) { 
        $this->col_formats[$col_name]["currency"] = [ 
            "prefix" => $prefix, 
            "suffix" => $suffix, 
            "thousandsSeparator" => $thousandsSeparator, 
            "decimalSeparator" => $decimalSeparator, 
            "decimalPlaces" => $decimalPlaces, 
            "defaultValue" => $defaultValue, 
        ]; 
        return $this; 
    } 
    public function set_col_img($col_name, $baseUrl = "") 
    { 
        $this->col_formats[$col_name]["image"] = [ 
            "baseUrl" => $baseUrl, 
        ]; 
        $this->img_baseUrl = $baseUrl; 
        return $this; 
    } 
    public function set_col_format($col_name, $format, $formatoptions = []) 
    { 
        $this->col_formats[$col_name][$format] = $formatoptions; 
        return $this; 
    } 
    public function set_col_dynalink( 
        $col_name, 
        $baseLinkUrl = "", 
        $dynaParam = "id", 
        $addParam = "", 
        $target = "_new" 
    ) { 
        $sFormatter = 
            "function " . 
            $col_name . 
            "_customFormatter(cellValue, options, rowObject){ %s }"; 
        $sUnformatter = 
            "function " . 
            $col_name . 
            "_customUnformatter(cellValue, options, rowObject){ %s }"; 
        $results = $this->db->select_limit($this->sql, 1, 1); 
        $dynaParamQs = ""; 
        if ($this->jq_datatype != "local") { 
            if (is_array($dynaParam) && !empty($dynaParam)) { 
                foreach ($dynaParam as $key => $value) { 
                    $dynaParamQs .= 
                        $value . 
                        "=" + encodeURIComponent(rowObject[" . 
                        $this->db->field_index($results, $value) . 
                        "]) + "&"; 
                } 
                $dynaParamQs = rtrim($dynaParamQs, "&"); 
            } else { 
                $dynaParamQs .= 
                    $dynaParam . 
                    "=" + encodeURIComponent(rowObject[" . 
                    $this->db->field_index($results, $dynaParam) . 
                    "]) + ""; 
            } 
        } else { 
            if (is_array($dynaParam) && !empty($dynaParam)) { 
                foreach ($dynaParam as $key => $value) { 
                    $dynaParamQs .= 
                        $value . 
                        "=" + encodeURIComponent(rowObject." . 
                        $value . 
                        ") + "&"; 
                } 
                $dynaParamQs = rtrim($dynaParamQs, "&"); 
            } else { 
                $dynaParamQs .= 
                    $dynaParam . 
                    "=" + encodeURIComponent(rowObject." . 
                    $dynaParam . 
                    ") + ""; 
            } 
        } 
        $sVal = 
            "                               \xa        var params = "?" . 
            $dynaParamQs . 
            $addParam . 
            "";\xa        var url = '" . 
            $baseLinkUrl . 
            "' + params;
        \xa        return '<a href="'+url+'" target="" . 
            $target . 
            "" value="' + cellValue + '">'+cellValue+'</a>';
        "; 
        $sFormatter = sprintf($sFormatter, $sVal); 
        $sUnformatter = sprintf( 
            $sUnformatter, 
            "var obj = jQuery(rowObject).html(); return jQuery(obj).attr("value");" 
        ); 
        $this->col_custom .= $sFormatter . "\xa" . $sUnformatter; 
        $this->col_formats[$col_name]["custom"] = $addParam; 
        return $this; 
    } 
    public function set_dimension( 
        $w, 
        $h = "100%", 
        $shrinkToFit = true 
    ) { 
        $this->jq_width = $w; 
        $this->jq_height = $h; 
        $this->jq_shrinkToFit = $shrinkToFit; 
        return $this; 
    } 
    public function enable_resize($is_resizable, $min_w = 350, $min_h = 80) 
    { 
        $this->jqu_resize[ 
            "is_resizable" 
        ] = $is_resizable; 
        $this->jqu_resize["min_width"] = $min_w; 
        $this->jqu_resize["min_height"] = $min_h; 
        return $this; 
    } 
    public function set_masterdetail($obj_grid, $fkey) 
    { 
        $gdNo = count($this->obj_md) + 1; 
        if ($obj_grid instanceof C_DataGrid) { 
            $obj_grid->set_jq_gridName($this->jq_gridName . "_d" . $gdNo); 
            $obj_grid->set_jq_pagerName( 
                trim($this->jq_pagerName, """) . "_d" . $gdNo 
            ); 
            $obj_grid->set_jq_url( 
                ABS_PATH . 
                    "/masterdetail.php?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $obj_grid->jq_gridName . 
                    "&" . 
                    JQGRID_ROWID_KEY . 
                    "=" 
            ); 
            $obj_grid->set_jq_editurl( 
                ABS_PATH . 
                    "/" . 
                    $this->edit_file . 
                    "?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $obj_grid->jq_gridName . 
                    "&src=md" 
            ); 
            $obj_grid->set_sql_fkey($fkey); 
            $obj_grid->enable_search(false); 
            $obj_grid->prepare_grid(); 
            $this->obj_md[] = $obj_grid; 
        } else { 
            echo "Invalid master/detail object."; 
        } 
        return $this; 
    } 
    public function set_subgrid($obj_grid, $d_fkey, $m_fkey = -1) 
    { 
        if ($obj_grid instanceof C_DataGrid) { 
            $m_fkey = $m_fkey == -1 ? $d_fkey : $m_fkey; 
            $this->jq_gridview = false; 
            $obj_grid->set_jq_url( 
                ABS_PATH . 
                    "/subgrid.php?dt=" . 
                    $this->jq_datatype . 
                    "&gn=" . 
                    $this->jq_gridName . 
                    "&sgn=" . 
                    $obj_grid->get_jq_gridName() . 
                    "&m_fkey=" . 
                    $m_fkey . 
                    "&" . 
                    JQGRID_ROWID_KEY . 
                    "=" 
            ); 
            $obj_grid->set_sql_fkey($d_fkey); 
            $obj_grid->prepare_grid(); 
            $this->obj_subgrid = $obj_grid; 
        } else { 
            echo "Invalid subgrid object."; 
        } 
        return $this; 
    } 
    public function set_jq_pagerName($pagerName, $add_quote = true) 
    { 
        $this->jq_pagerName = $add_quote 
            ? """ . $pagerName . """ 
            : $pagerName; 
        return $this; 
    } 
    public function set_jq_gridName($gridName) 
    { 
        $this->jq_gridName = $gridName; 
        $this->jq_pagerName = 
            ""#" . $gridName . "_pager1""; 
        $this->jq_url = 
            """ . 
            ABS_PATH . 
            "/data.php?dt=" . 
            $this->jq_datatype . 
            "&gn=" . 
            $gridName . 
            """; 
        $this->export_url = 
            ABS_PATH . 
            "/export.php?dt=" . 
            $this->jq_datatype . 
            "&gn=" . 
            $this->jq_gridName . 
            ($this->export_type != "" 
                ? "&export_type=" . 
                    $this->export_type 
                : ""); 
        return $this; 
    } 
    public function get_jq_gridName() 
    { 
        return $this->jq_gridName; 
    } 
    public function set_sortname($sortname, $sortorder = "ASC") 
    { 
        $this->jq_sortname = $sortname; 
        $this->jq_sortorder = $sortorder; 
        return $this; 
    } 
    public function enable_export($type = "EXCEL") 
    { 
        $this->export_type = $type; 
        return $this; 
    } 
    public function set_col_edittype( 
        $col_name, 
        $ctrl_type, 
        $keyvalue_pair = null, 
        $multiple = false, 
        $dataUrl = null 
    ) { 
        if ( 
            $ctrl_type == "select" || 
            $ctrl_type == "autocomplete" 
        ) { 
            $select_list = ""; 
            $regex = 
                "/SELECT (.*?) FROM /i"; 
            $data = ""; 
            $matches = []; 
            if (preg_match($regex, $keyvalue_pair, $matches)) { 
                $select_kv = explode(",", $matches[1]); 
                $select_kv = array_map("trim", $select_kv); 
                $result = $this->db->select_limit_array($keyvalue_pair, -1, 0); 
                foreach ($result as $i => $val) { 
                    $select_list .= 
                        $result[$i][0] . ":" . $result[$i][1] . ";"; 
                } 
                $select_list = rtrim($select_list, ";"); 
                $keyvalue_pair = $select_list; 
            } 
        } 
        if ($ctrl_type == "checkbox") { 
            $this->set_col_format( 
                $col_name, 
                "checkbox" 
            ); 
            $this->set_col_align($col_name, "center"); 
        } 
        if ($ctrl_type == "autocomplete") { 
            $ctrl_type = "select"; 
            $this->col_edittypes[$col_name]["type"] = 
                "select"; 
            $this->col_autocomplete[$col_name] = $col_name; 
            self::$has_autocomplete = true; 
        } 
        if ($ctrl_type == "select") { 
            $this->col_edittypes[$col_name][ 
                "multiple" 
            ] = $multiple; 
            $this->col_edittypes[$col_name][ 
                "dataUrl" 
            ] = $dataUrl; 
        } 
        $this->col_edittypes[$col_name]["type"] = $ctrl_type; 
        $this->col_edittypes[$col_name][ 
            "value" 
        ] = $keyvalue_pair; 
        return $this; 
    } 
    public function set_row_color( 
        $hover_color, 
        $highlight_color = null, 
        $altrow_color = null 
    ) { 
        $this->alt_colors["hover"] = $hover_color; 
        $this->alt_colors[ 
            "highlight" 
        ] = $highlight_color; 
        $this->alt_colors["altrow"] = $altrow_color; 
        return $this; 
    } 
    public function set_conditional_row_color( 
        $colName, 
        $condition = [], 
        $default = "" 
    ) { 
        $this->jq_conditionalRows[] = [ 
            "col" => $colName, 
            "default" => $default, 
            "condition" => $condition, 
        ]; 
        return $this; 
    } 
    public function set_conditional_cell_color( 
        $colName, 
        $condition = [], 
        $default = "" 
    ) { 
        $this->jq_conditionalRows[] = [ 
            "col" => $colName, 
            "default" => $default, 
            "condition" => $condition, 
        ]; 
        return $this; 
    } 
    public function set_theme($theme) 
    { 
        $this->theme_name = $theme; 
        return $this; 
    } 
    public function set_locale($locale) 
    { 
        $this->locale = $locale; 
        return $this; 
    } 
    public function enable_debug($debug) 
    { 
        return $this; 
    } 
    public function set_caption($caption) 
    { 
        if ($caption == "") { 
            $caption = "&nbsp;"; 
        } 
        $this->jq_caption = $caption; 
        return $this; 
    } 
    public function set_pagesize($pagesize) 
    { 
        $this->jq_rowNum = $pagesize; 
        return $this; 
    } 
    public function enable_rownumbers($has_rownumbers) 
    { 
        $this->jq_rownumbers = $has_rownumbers; 
        return $this; 
    } 
    public function set_col_width($col_name, $width) 
    { 
        $this->col_widths[$col_name]["width"] = $width; 
        return $this; 
    } 
    public function get_col_width() 
    { 
        return $this->col_widths; 
    } 
    public function set_col_align($col_name, $align = "left") 
    { 
        $this->col_aligns[$col_name]["align"] = $align; 
        return $this; 
    } 
    public function get_col_align() 
    { 
        return $this->col_aligns; 
    } 
    public function set_group_properties( 
        $feildname, 
        $groupCollapsed = false, 
        $showSummaryOnHide = true 
    ) { 
        $this->jq_grouping = true; 
        $this->jq_group_summary_show = $groupColumnShow; 
        $this->jq_group_name = $feildname; 
        $this->jq_groupcollapse = $groupCollapsed; 
        $this->jq_showSummaryOnHide = $showSummaryOnHide; 
        return $this; 
    } 
    public function set_group_summary($col_name, $summaryType) 
    { 
        $this->jq_is_group_summary = true; 
        $this->jq_summary_col_name[$col_name][ 
            "summaryType" 
        ] = $summaryType; 
        return $this; 
    } 
    public function enable_kb_nav($is_enabled = false) 
    { 
        $this->kb_nav = $is_enabled; 
        return $this; 
    } 
    public function setCallbackString($string) 
    { 
        $this->callbackstring = 
            "&__cbstr=" . 
            strtr(rtrim(base64_encode($string), "="), "+/", "-_"); 
        $this->jq_url = 
            substr($this->jq_url, 0, -1) . $this->callbackstring . """; 
        $this->export_url .= $this->callbackstring; 
        return $this; 
    } 
    public function enable_autowidth($autowidth = false) 
    { 
        $this->jq_autowidth = $autowidth; 
        if ($autowidth) { 
            $this->script_ude_handler .= 
                "$(window).bind("resize", function() {
                    phpGrid_" . 
                $this->sql_table . 
                ".setGridWidth($(window).width());
                }).trigger("resize");" . 
                "
"; 
        } 
        return $this; 
    } 
    public function enable_autoheight($autoheight = false) 
    { 
        if ($autoheight) { 
            $this->script_ude_handler .= 
                "var grid_height = $(window).height() -
                    $(".ui-jqgrid .ui-jqgrid-titlebar").height() -\xa                    $(".ui-jqgrid .ui-jqgrid-hbox").height() -
                    $(phpGrid_" . 
                $this->sql_table . 
                ".getGridParam("pager")).height() - 10;
                $(window).bind("resize", function() {\xa                    phpGrid_" . 
                $this->sql_table . 
                ".jqGrid("setGridHeight", grid_height );
                }).trigger("resize");" . 
                "
"; 
        } 
        return $this; 
    } 
    public function get_display($add_script_includeonce = true) 
    { 
        if ($add_script_includeonce) { 
            return $this->script_includeonce . $this->script_body; 
        } else { 
            return $this->script_body; 
        } 
    } 
    public function set_form_dimension($f_width, $f_height = "100%") 
    { 
        $this->form_width = $f_width; 
        $this->form_height = $f_height; 
        return $this; 
    } 
    public function set_col_default($col_name, $default = "") 
    { 
        $this->col_default[$col_name] = $default; 
        return $this; 
    } 
    public function set_col_frozen($col_name, $value = true) 
    { 
        $this->col_frozen[$col_name] = $value; 
        return $this; 
    } 
    public function add_event($event_name, $js_event_handler) 
    { 
        $this->script_ude_handler .= 
            "phpGrid_" . 
            $this->sql_table . 
            ".bind("" . 
            $event_name . 
            "", " . 
            $js_event_handler . 
            ");" . 
            "\xa"; 
        return $this; 
    } 
    private function parse_to_script($obj) 
    { 
        if (is_array($obj)) { 
            $arr = []; 
            foreach ($obj as $key => $value) { 
                if (is_string($value)) { 
                    $script = preg_replace( 
                        "/[\x00-\x1F\x80-\xFF]/", 
                        "", 
                        $value 
                    ); 
                    if ( 
                        preg_match( 
                            "/function\([^)].*\)/i", 
                            $script 
                        ) 
                    ) { 
                        $script = "###" . $script . "###"; 
                    } 
                    $arr[$key] = $script; 
                } else { 
                    $arr[$key] = $value; 
                } 
            } 
            return $arr; 
        } elseif (is_string($obj)) { 
            $script = preg_replace( 
                "/[\x00-\x1F\x80-\xFF]/", 
                "", 
                $obj 
            ); 
            if ( 
                preg_match( 
                    "/function\([^)].*\)/i", 
                    $script 
                ) 
            ) { 
                $script = "###" . $script . "###"; 
            } 
            return $script; 
        } 
    } 
    public function set_col_property($col_name, $property = []) 
    { 
        $cust_property = []; 
        foreach ($property as $prop_key => $prop_value) { 
            if (is_string($prop_value) || is_array($prop_value)) { 
                $prop_value = $this->parse_to_script($prop_value); 
            } 
            $cust_property[$prop_key] = $prop_value; 
        } 
        $this->cust_col_properties[$col_name] = $cust_property; 
        return $this; 
    } 
    public function set_grid_property($property = []) 
    { 
        $this->cust_grid_properties = array_replace_recursive( 
            $property, 
            $this->cust_grid_properties 
        ); 
        return $this; 
    } 
    public function set_col_edit_dimension($col_name, $width = 30, $height = 6) 
    { 
        $this->col_edit_dimension[$col_name]["width"] = $width; 
        $this->col_edit_dimension[$col_name][ 
            "height" 
        ] = $height; 
        return $this; 
    } 
    private function MapPath($file) 
    { 
        if ( 
            function_exists( 
                "apache_lookup_uri" 
            ) 
        ) { 
            $alu = apache_lookup_uri($file); 
            return $alu->filename; 
        } 
        return $this 
            ->col_fileupload["physical_path"]; 
    } 
    public function add_column( 
        $col_name, 
        $property = [], 
        $title = "", 
        $after = "" 
    ) { 
        $this->col_virtual[$col_name][ 
            "property" 
        ] = $property; 
        $this->col_virtual[$col_name]["title"] = 
            $title == "" ? $col_name : $title; 
        $this->col_virtual[$col_name]["after"] = $after; 
        return $this; 
    } 
    public function set_col_customrule($col_name, $customrule_func) 
    { 
        $this->col_customrule[$col_name]["custom"] = true; 
        $this->col_customrule[$col_name][ 
            "custom_func" 
        ] = $customrule_func; 
        return $this; 
    } 
    private function display_before_script_end() 
    { 
        echo $this->before_script_end; 
    } 
    public function set_selectnetsted($col_sel_parent, $col_sel_child) 
    { 
        $this->set_col_property($col_sel_parent, [ 
            "editoptions" => [ 
                "dataUrl" => 
                    "data.php", 
                "buildSelect" => 
                    "function(data){\xa                                    var response = jQuery.parseJSON(data);
                                    var s = "<select>";
                                    if (response && response.length) {
                                        for (var i = 0, l = response.length; i < l; i++) {
                                            var ri = response[i];\xa                                            s += "<option value=\"" + ri.Value + "\">" + ri.Text + "</option>";\xa                                        }\xa                                    }\xa                                    return s + "</select>";\xa                                }", 
                "dataEvents" => [ 
                    "type" => "change", 
                    "fn" => 
                        "function (e) {\xa                        var varIDUnidadMedida = e.currentTarget.value;
                        $.ajax({\xa                                url: "data",\xa                                type: "GET",\xa                                success: function (PlazosJson) {\xa                                var plazos = eval(PlazosJson);\xa                                var plazosHtml = "";\xa                                $(plazos).each(function (i, option) {
                                    plazosHtml += "<option value=\"" + option.Value + "\">" + option.Text + "</option>";
                                });\xa
                                if ($(e.target).is(".FormElement")) {
                                    var form = $(e.target).closest("form.FormGrid");\xa                                    $("select#parPlazo.FormElement", form[0]).html(plazosHtml);\xa                                } else {\xa                                    var row = $(e.target).closest("tr.jqgrow");\xa                                    var rowId = row.attr("id");
                                    var rowId = jQuery("#grid").jqGrid("getGridParam", "selrow");
                                    jQuery("select#" + rowId + "_parPlazo").append(plazosHtml);
                                }\xa                            }
                        });
                    }", 
                ], 
            ], 
        ]); 
        $this->set_col_property($col_sel_child, [ 
            "editoptions" => [ 
                "dataUrl" => 
                    "data.php", 
                "buildSelect" => 
                    "function(data){\xa                                    var response = jQuery.parseJSON(data);
                                    var s = "<select>";
                                    if (response && response.length) {
                                        for (var i = 0, l = response.length; i < l; i++) {\xa                                            var ri = response[i];\xa                                            s += "<option value=\"" + ri.Value + "\">" + ri.Text + "</option>";
                                        }\xa                                    }
                                    return s + "</select>";
                                }", 
            ], 
        ]); 
    } 
} 
goto boZ5o; 
kjNGC: 
if ( 
    str_replace( 
        "\", 
        "/", 
        $_SERVER["DOCUMENT_ROOT"] 
    ) == SERVER_ROOT 
) { 
    define("ABS_PATH", ""); 
} else { 
    define("ABS_PATH", SERVER_ROOT); 
} 
goto vavwO; 
vavwO: 
if (!session_id()) { 
    session_start(); 
} 
goto PyQE2; 
boZ5o: ?> 

Did this file decode correctly?

Original Code

<?php
goto kjNGC;
PyQE2:
class C_DataGrid
{
    public $jq_colModel;
    public $before_script_end;
    private $sql;
    private $sql_table;
    private $sql_key;
    private $sql_fkey;
    private $col_dbnames;
    private $col_hiddens;
    private $col_titles;
    private $col_formats;
    private $col_readonly;
    private $col_required;
    private $col_links;
    private $col_dynalinks;
    private $col_edittypes;
    private $col_datatypes;
    private $col_imgs;
    private $col_custom;
    private $col_custom_css;
    private $col_wysiwyg;
    private $col_default;
    private $col_frozen;
    private $col_widths;
    private $col_aligns;
    private $col_edit_dimension;
    private $col_fileupload;
    private $col_virtual;
    private $col_customrule;
    private $col_autocomplete;
    private $sql_filter;
    private $jq_summary_col_name;
    private $jq_summary_type;
    private $jq_showSummaryOnHide;
    private $jq_is_group_summary;
    private $jq_gridName;
    private $jq_url;
    private $jq_datatype;
    private $jq_mtype;
    private $jq_colNames;
    private $jq_pagerName;
    private $jq_rowNum;
    private $jq_rowList;
    private $jq_sortname;
    private $jq_sortorder;
    private $jq_viewrecords;
    private $jq_multiselect;
    private $jq_autowidth;
    private $jq_width;
    private $jq_height;
    private $jq_grouping;
    private $jq_group_name;
    private $jq_group_summary_show;
    private $jq_direction;
    private $jq_groupcollapse;
    private $jq_shrinkToFit;
    private $jq_caption;
    private $jq_cellEdit;
    private $jq_altRows;
    private $jq_scrollOffset;
    private $jq_editurl;
    private $jq_rownumbers;
    private $jq_forceFit;
    private $jq_loadtext;
    private $jq_scroll;
    private $jq_hiddengrid;
    private $jq_gridview;
    private $jqu_resize;
    private $_num_rows;
    private $_num_fields;
    private $_ver_num;
    private $form_width;
    private $form_height;
    private $edit_mode;
    private $edit_options;
    private $has_tbarsearch;
    private $advanced_search;
    private $sys_msg;
    private $alt_colors;
    private $theme_name;
    private $locale;
    private $auto_resize;
    private $kb_nav;
    public $export_type;
    public $export_url;
    public $debug;
    public $db;
    public $db_connection = [];
    public $obj_subgrid;
    public $obj_md = [];
    public $data_local = [];
    private $jq_rowConditions;
    private $jq_cellConditions;
    private $script_includeonce;
    private $script_body;
    private $script_editEvtHandler;
    private $script_ude_handler;
    private $cust_col_properties;
    private $cust_grid_properties;
    public $cust_prop_jsonstr;
    private $img_baseUrl;
    private $grid_methods;
    private $edit_file;
    static $has_autocomplete;
    static $has_wysiwyg;
    static $has_fileupload;
    static $load_ajaxComplete;
    public function __construct(
        $sql,
        $sql_key = [],
        $sql_table = "",
        $db_connection = []
    ) {
        if (!is_array($sql_key)) {
            $sql_key = [$sql_key];
        }
        $sql_key = array_slice($sql_key, 0, 1);
        $this->jq_gridName =
            $sql_table == "" ? "\x6c\x69\163\x74\61" : $sql_table;
        if (!is_array($sql)) {
            if (empty($db_connection)) {
                $this->db = new C_DataBase(
                    PHPGRID_DB_HOSTNAME,
                    PHPGRID_DB_USERNAME,
                    PHPGRID_DB_PASSWORD,
                    PHPGRID_DB_NAME,
                    PHPGRID_DB_TYPE,
                    PHPGRID_DB_CHARSET
                );
            } else {
                $this->db = new C_DataBase(
                    $db_connection["\x68\157\x73\164\x6e\x61\155\145"],
                    $db_connection["\165\x73\145\x72\x6e\141\155\145"],
                    $db_connection["\x70\x61\x73\x73\x77\x6f\162\144"],
                    $db_connection["\144\142\x6e\141\x6d\145"],
                    $db_connection["\x64\142\164\x79\160\145"],
                    $db_connection["\x64\142\143\x68\141\162\163\145\164"]
                );
                $this->db_connection = $db_connection;
            }
            $this->jq_datatype = "\x6a\163\x6f\156";
            $this->jq_url =
                "\x22" .
                ABS_PATH .
                "\x2f\x64\x61\164\x61\x2e\160\150\x70\x3f\x64\x74\x3d" .
                $this->jq_datatype .
                "\x26\x67\156\x3d" .
                $this->jq_gridName .
                "\x22";
            $this->jq_mtype = "\107\105\x54";
        } else {
            $this->db = new C_DataArray($sql);
            $this->jq_datatype = "\154\x6f\143\141\154";
            $this->data_local = $sql;
        }
        $this->sql = $sql;
        $this->sql_key = $sql_key;
        $this->sql_fkey = null;
        $this->sql_table = $sql_table;
        $this->col_hiddens = [];
        $this->col_titles = [];
        $this->col_readonly = [];
        $this->col_required = [];
        $this->col_links = [];
        $this->col_dynalinks = [];
        $this->col_dbnames = [];
        $this->col_edittypes = [];
        $this->col_formats = [];
        $this->col_widths = [];
        $this->col_aligns = [];
        $this->col_wysiwyg = [];
        $this->col_default = [];
        $this->col_frozen = [];
        $this->col_edit_dimension = [];
        $this->col_fileupload = [];
        $this->col_virtual = [];
        $this->col_customrule = [];
        $this->col_autocomplete = [];
        $this->jq_summary_col_name = [];
        $this->col_imgs = [];
        $this->jq_colNames = [];
        $this->jq_colModel = [];
        $this->jq_pagerName =
            "\42\43" . $this->jq_gridName . "\x5f\x70\141\147\x65\162\61\x22";
        $this->jq_rowNum = 20;
        $this->jq_rowList = [10, 20, 30, 50, 100];
        $this->jq_sortname = 1;
        $this->jq_sortorder = "\141\x73\143";
        $this->jq_viewrecords = true;
        $this->jq_multiselect = false;
        $this->jq_autowidth = true;
        $this->jq_width = 1000;
        $this->jq_height = "\61\x30\x30\x25";
        $this->jq_caption = $sql_table . "\x26\156\x62\x73\x70\73";
        $this->jq_altRows = true;
        $this->jq_scrollOffset = 22;
        $this->jq_cellEdit = false;
        $this->jq_editurl = "";
        $this->jq_rownumbers = false;
        $this->jq_shrinkToFit = true;
        $this->jq_scroll = false;
        $this->jq_hiddengrid = false;
        $this->jq_loadtext =
            "\x4c\157\x61\x64\151\156\147\x20\x70\150\160\107\x72\x69\144\x20\x4c\x69\164\145\x2e\56\x2e";
        $this->jq_gridview = true;
        $this->jq_grouping = false;
        $this->jq_group_summary_show = false;
        $this->jq_direction = "\x6c\x74\x72";
        $this->jq_groupcollapse = "\x66\141\x6c\x73\x65";
        $this->jq_summary_type = "";
        $this->jq_showSummaryOnHide = false;
        $this->jq_is_group_summary = false;
        $this->jqu_resize = [
            "\151\163\137\x72\145\x73\151\172\141\142\x6c\x65" => false,
            "\x6d\151\156\137\x77\x69\x64\164\x68" => 300,
            "\x6d\151\156\x5f\x68\145\151\x67\150\164" => 100,
        ];
        $this->_num_rows = 0;
        $this->_num_fields = 0;
        $this->_ver_num =
            "\x70\150\160\x47\x72\x69\144\x28\x76\66\56\x31\x29\x20\173\x6a\x71\x47\x72\151\x64\x3a\x76\x34\56\x35\x2e\x32\x2c\40\x6a\x51\x75\x65\162\x79\x3a\166\x31\x2e\71\56\60\x2c\40\152\121\x75\145\162\171\x20\125\111\72\61\56\61\60\56\60\175";
        $this->sys_msg = null;
        $this->form_width = 450;
        $this->form_height = "\61\x30\60\45";
        $this->alt_colors = [
            "\150\x6f\166\145\x72" => "\43\x46\62\x46\x43\71\x43",
            "\150\x69\x67\x68\x6c\x69\147\150\164" =>
                "\x79\x65\x6c\154\157\167",
            "\141\x6c\x74\x72\157\167" => "\43\x46\65\x46\101\106\106",
        ];
        $this->theme_name = defined("\124\x48\105\x4d\105")
            ? THEME
            : "\x73\164\x61\x72\164";
        $this->locale = "\x65\156";
        $this->auto_resize = false;
        $this->kb_nav = false;
        $this->export_type = null;
        $this->export_url =
            ABS_PATH .
            "\x2f\145\x78\x70\157\162\x74\x2e\x70\x68\160\77\x64\164\x3d" .
            $this->jq_datatype .
            "\x26\147\x6e\75" .
            $this->jq_gridName;
        $this->edit_mode = "\x4e\117\116\x45";
        $this->edit_options = null;
        $this->has_tbarsearch = false;
        $this->advanced_search = false;
        $this->debug = C_Utility::is_debug();
        $this->cust_prop_jsonstr = "";
        $this->obj_subgrid = null;
        $this->obj_md = null;
        $this->jq_rowConditions = [];
        $this->jq_cellConditions = [];
        $this->script_includeonce = "";
        $this->script_body = "";
        $this->script_editEvtHandler = "";
        $this->script_ude_handler = "";
        $this->cust_col_properties = [];
        $this->cust_grid_properties = [];
        $this->grid_methods = [];
        $this->edit_file = "\x65\x64\151\x74\x2e\x70\150\x70";
        $this->before_script_end = "";
    }
    public function prepare_grid()
    {
        $this_db = $this->db;
        $this->_num_rows = $this_db->num_rows($this_db->db_query($this->sql));
        $results = $this_db->select_limit($this->sql, 1, 1);
        $this->_num_fields = $this_db->num_fields($results);
        $this->set_colNames($results);
        $this->set_colModel($results);
        $_SESSION[
            GRID_SESSION_KEY . "\137" . $this->jq_gridName . "\137\x73\161\x6c"
        ] = $this->sql;
        $_SESSION[
            GRID_SESSION_KEY .
                "\x5f" .
                $this->jq_gridName .
                "\x5f\x73\x71\154\x5f\x6b\145\x79"
        ] = serialize($this->sql_key);
        $_SESSION[
            GRID_SESSION_KEY .
                "\137" .
                $this->jq_gridName .
                "\137\163\x71\x6c\x5f\146\153\x65\171"
        ] = $this->sql_fkey;
        $_SESSION[
            GRID_SESSION_KEY .
                "\x5f" .
                $this->jq_gridName .
                "\137\x73\x71\x6c\137\164\x61\x62\154\x65"
        ] = $this->sql_table;
        $_SESSION[
            GRID_SESSION_KEY .
                "\x5f" .
                $this->jq_gridName .
                "\137\163\161\154\x5f\146\151\x6c\x74\145\162"
        ] = $this->sql_filter;
        $_SESSION[
            GRID_SESSION_KEY .
                "\137" .
                $this->jq_gridName .
                "\137\144\142\137\143\x6f\x6e\156\x65\x63\164\151\x6f\x6e"
        ] = serialize($this->db_connection);
        $_SESSION[
            GRID_SESSION_KEY .
                "\137" .
                $this->jq_gridName .
                "\x5f\150\141\x73\137\155\165\x6c\x74\x69\163\145\x6c\x65\143\164"
        ] = $this->jq_multiselect;
        $_SESSION[
            GRID_SESSION_KEY .
                "\137" .
                $this->jq_gridName .
                "\x5f\145\x78\160\x6f\x72\x74\x5f\x74\x79\160\145"
        ] = $this->export_type;
        $_SESSION[
            GRID_SESSION_KEY .
                "\137" .
                $this->jq_gridName .
                "\137\x63\x6f\154\x5f\x74\151\164\154\145\x73"
        ] = serialize($this->col_titles);
        $_SESSION[
            GRID_SESSION_KEY .
                "\137" .
                $this->jq_gridName .
                "\x5f\143\157\x6c\137\150\x69\x64\144\x65\x6e\x73"
        ] = serialize($this->col_hiddens);
    }
    public function set_colNames($results)
    {
        $this_db = $this->db;
        $col_names = [];
        for ($i = 0; $i < $this->_num_fields; $i++) {
            $col_name = $this_db->field_name($results, $i);
            if (isset($this->col_titles[$col_name])) {
                $col_names[] = $this->col_titles[$col_name];
            } else {
                $col_names[] = $col_name;
            }
        }
        if (!empty($this->col_virtual)) {
            foreach ($this->col_virtual as $key => $value) {
                $col_names[] = $this->col_virtual[$key]["\164\151\x74\154\x65"];
            }
        }
        $this->jq_colNames = $col_names;
        return $col_names;
    }
    public function get_colNames()
    {
        return $this->jq_colNames;
    }
    public function set_colModel($results)
    {
        $this_db = $this->db;
        $colModel = [];
        for ($i = 0; $i < $this->_num_fields; $i++) {
            $col_name = $this_db->field_name($results, $i);
            $col_type = $this_db->field_metatype($results, $i);
            $cols = [];
            $cols["\156\x61\x6d\x65"] = $col_name;
            $cols["\151\x6e\x64\x65\170"] = $col_name;
            $cols["\150\x69\144\x64\145\156"] = isset(
                $this->col_hiddens[$col_name]
            );
            if (isset($this->col_frozen[$col_name])) {
                $cols["\x66\x72\x6f\172\145\x6e"] =
                    $this->col_frozen[$col_name];
            }
            if (isset($this->col_widths[$col_name])) {
                $cols["\x77\151\x64\x74\x68"] =
                    $this->col_widths[$col_name]["\x77\151\144\164\150"];
            }
            if (isset($this->col_aligns[$col_name])) {
                $cols["\x61\x6c\151\147\156"] =
                    $this->col_aligns[$col_name]["\x61\x6c\x69\x67\x6e"];
            }
            if (isset($this->jq_summary_col_name[$col_name])) {
                $cols["\x73\165\155\x6d\x61\162\x79\124\171\x70\145"] =
                    $this->jq_summary_col_name[$col_name][
                        "\163\165\155\x6d\x61\x72\x79\x54\171\x70\x65"
                    ];
            }
            if (isset($this->col_edittypes[$col_name])) {
                $cols["\x65\144\151\164\164\x79\160\145"] =
                    $this->col_edittypes[$col_name]["\164\171\160\145"];
            } else {
                $cols["\145\x64\151\x74\164\x79\160\x65"] =
                    $col_type == "\x58"
                        ? "\164\x65\x78\x74\x61\162\145\x61"
                        : "\164\145\x78\164";
            }
            switch ($this->edit_mode) {
                case "\x43\105\114\114":
                case "\x49\116\114\111\x4e\105":
                    $cols["\x65\x64\151\164\141\142\154\x65"] = !in_array(
                        $col_name,
                        $this->col_readonly
                    );
                    break;
                case "\x46\x4f\122\115":
                    $cols["\145\144\151\x74\x61\x62\154\x65"] = true;
                    break;
                default:
                    $cols["\145\144\151\164\141\142\154\145"] = false;
            }
            $editoptions = [];
            if (
                ($col_type == "\x44" || $col_type == "\x54") &&
                !in_array($col_name, $this->col_readonly)
            ) {
                $editoptions["\x64\141\x74\x61\x49\x6e\151\x74"] =
                    "\43\x23\43\146\165\156\x63\x74\151\x6f\156\x28\145\154\51\x7b\44\x28\x65\154\51\56\144\x61\x74\145\x70\151\x63\153\145\x72\x28\173\143\x68\x61\156\147\x65\115\x6f\156\164\x68\x3a\40\164\x72\x75\145\x2c\x20\143\150\141\x6e\x67\x65\131\145\141\x72\72\40\x74\162\x75\x65\54\144\141\164\x65\x46\x6f\x72\155\x61\x74\72\47" .
                    (isset($this->col_formats[$col_name]["\144\x61\x74\145"])
                        ? $this->col_formats[$col_name]["\144\141\x74\x65"][
                            "\144\141\x74\x65\x50\151\x63\153\x65\162\x46\157\x72\x6d\x61\164"
                        ]
                        : "\x79\x79\55\x6d\155\55\144\x64") .
                    "\47\175\x29\73\175\43\43\43";
            } elseif (isset($this->col_edittypes[$col_name])) {
                if (
                    $this->col_edittypes[$col_name]["\164\x79\x70\x65"] ==
                    "\146\151\x6c\145"
                ) {
                    $editoptions["\145\156\143\164\171\x70\x65"] =
                        "\x6d\x75\x6c\164\151\160\141\162\x74\x2f\x66\157\162\x6d\55\144\141\x74\x61";
                } else {
                    if (
                        $this->col_edittypes[$col_name][
                            "\166\141\154\165\x65"
                        ] != null
                    ) {
                        $editoptions["\x76\x61\x6c\165\x65"] =
                            $this->col_edittypes[$col_name][
                                "\x76\x61\154\x75\x65"
                            ];
                    }
                    if (
                        isset($this->col_edittypes[$col_name]) &&
                        $this->col_edittypes[$col_name]["\x74\171\x70\x65"] ==
                            "\163\145\x6c\x65\x63\164"
                    ) {
                        if (
                            $this->col_edittypes[$col_name][
                                "\155\165\154\164\151\160\154\145"
                            ] != null
                        ) {
                            $editoptions["\x6d\165\154\164\x69\x70\154\x65"] =
                                $this->col_edittypes[$col_name][
                                    "\155\x75\x6c\x74\x69\160\154\x65"
                                ];
                        }
                        if (
                            $this->col_edittypes[$col_name][
                                "\144\x61\x74\x61\x55\x72\x6c"
                            ] != null
                        ) {
                            $editoptions["\144\x61\x74\141\x55\162\x6c"] =
                                $this->col_edittypes[$col_name][
                                    "\x64\141\164\141\125\x72\x6c"
                                ];
                        }
                    }
                }
            } elseif ($col_type == "\130") {
                if (
                    isset(
                        $this->col_edit_dimension[$col_name][
                            "\167\151\144\164\150"
                        ]
                    )
                ) {
                    $editoptions["\143\x6f\x6c\163"] =
                        $this->col_edit_dimension[$col_name][
                            "\167\151\144\x74\x68"
                        ];
                } else {
                    $editoptions["\x63\157\x6c\163"] = 42;
                }
                if (
                    isset(
                        $this->col_edit_dimension[$col_name][
                            "\x68\145\151\x67\150\164"
                        ]
                    )
                ) {
                    $editoptions["\x72\x6f\167\x73"] =
                        $this->col_edit_dimension[$col_name][
                            "\150\x65\151\147\x68\164"
                        ];
                } else {
                    $editoptions["\x72\x6f\167\x73"] = 6;
                }
            }
            if (!isset($this->col_edittypes[$col_name]["\x74\x79\x70\145"])) {
                if (
                    isset(
                        $this->col_edit_dimension[$col_name][
                            "\167\151\x64\x74\150"
                        ]
                    )
                ) {
                    $editoptions["\163\x69\x7a\x65"] =
                        $this->col_edit_dimension[$col_name][
                            "\167\151\144\x74\x68"
                        ];
                } else {
                    $editoptions["\x73\151\172\x65"] = "\63\x30";
                }
            }
            if (isset($this->col_default[$col_name])) {
                $editoptions[
                    "\x64\x65\x66\141\x75\154\164\x56\x61\x6c\x75\145"
                ] = $this->col_default[$col_name];
            }
            $editrules = [];
            $editrules["\x65\x64\151\164\x68\151\x64\144\x65\x6e"] =
                isset(
                    $this->col_hiddens[$col_name][
                        "\145\144\x69\x74\x68\x69\144\144\145\156"
                    ]
                ) &&
                $this->col_hiddens[$col_name][
                    "\x65\x64\151\164\x68\151\144\144\145\x6e"
                ] == true
                    ? true
                    : false;
            $editrules["\162\x65\161\165\x69\162\x65\144"] = in_array(
                $col_name,
                $this->col_required
            );
            if (isset($this->col_datatypes[$col_name])) {
                $editrules[$this->col_datatypes[$col_name]] = true;
            } else {
                switch ($col_type) {
                    case "\x4e":
                    case "\111":
                    case "\122":
                        $editrules["\156\165\155\142\145\162"] = true;
                        break;
                    case "\x44":
                        $editrules["\144\x61\164\145"] = true;
                        break;
                }
            }
            if (isset($this->col_customrule[$col_name])) {
                $editrules["\x63\x75\163\164\x6f\155"] = true;
                $editrules["\x63\x75\163\x74\x6f\x6d\x5f\x66\x75\156\x63"] =
                    "\43\x23\x23" .
                    $this->col_customrule[$col_name][
                        "\x63\165\163\164\x6f\x6d\x5f\146\165\x6e\143"
                    ] .
                    "\x23\x23\43";
            }
            if (isset($this->col_formats[$col_name])) {
                if (isset($this->col_formats[$col_name]["\x6c\x69\156\x6b"])) {
                    $cols["\x66\x6f\x72\155\x61\164\164\145\x72"] =
                        "\x6c\151\156\x6b";
                    $formatoptions = [];
                    $formatoptions["\164\141\162\147\x65\164"] =
                        $this->col_formats[$col_name]["\x6c\151\156\153"][
                            "\164\141\162\147\145\164"
                        ];
                    $cols[
                        "\146\157\x72\155\x61\x74\x6f\160\x74\151\157\x6e\163"
                    ] = $formatoptions;
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\x73\150\157\167\154\x69\x6e\153"
                        ]
                    )
                ) {
                    $cols["\146\x6f\162\155\x61\x74\164\145\x72"] =
                        "\x73\150\x6f\167\154\151\x6e\153";
                    $formatoptions = [];
                    $formatoptions[
                        "\x62\x61\x73\x65\x4c\x69\x6e\153\125\162\x6c"
                    ] =
                        $this->col_formats[$col_name][
                            "\x73\150\x6f\167\x6c\151\156\x6b"
                        ]["\x62\x61\163\145\114\151\156\x6b\125\162\154"];
                    $formatoptions["\163\x68\x6f\167\x41\x63\x74\x69\157\156"] =
                        $this->col_formats[$col_name][
                            "\163\x68\x6f\x77\x6c\151\156\x6b"
                        ]["\x73\x68\157\x77\x41\143\x74\151\x6f\x6e"];
                    $formatoptions["\x69\144\x4e\x61\x6d\145"] = isset(
                        $this->col_formats[$col_name][
                            "\x73\x68\157\x77\x6c\x69\x6e\153"
                        ]["\x69\x64\x4e\x61\155\145"]
                    )
                        ? $this->col_formats[$col_name][
                            "\163\150\157\167\154\151\156\153"
                        ]["\151\x64\x4e\x61\155\x65"]
                        : "\x69\x64";
                    $formatoptions["\x61\144\x64\x50\x61\162\x61\155"] = isset(
                        $this->col_formats[$col_name][
                            "\x73\x68\x6f\x77\x6c\151\x6e\x6b"
                        ]["\x61\144\144\120\x61\x72\141\x6d"]
                    )
                        ? $this->col_formats[$col_name][
                            "\163\150\x6f\167\154\x69\x6e\x6b"
                        ]["\141\144\144\120\x61\x72\x61\x6d"]
                        : "";
                    $formatoptions["\164\141\162\147\x65\164"] = isset(
                        $this->col_formats[$col_name][
                            "\163\150\157\167\154\x69\x6e\153"
                        ]["\x74\141\162\x67\x65\164"]
                    )
                        ? $this->col_formats[$col_name][
                            "\163\150\x6f\x77\x6c\151\x6e\x6b"
                        ]["\x74\x61\x72\147\145\x74"]
                        : "\137\156\x65\167";
                    $cols[
                        "\x66\157\x72\155\x61\x74\x6f\160\164\x69\x6f\156\163"
                    ] = $formatoptions;
                } elseif (
                    isset($this->col_formats[$col_name]["\151\155\x61\147\x65"])
                ) {
                    $cols["\146\157\x72\x6d\141\x74\x74\x65\162"] =
                        "\x23\43\x23\151\155\x61\x67\x65\x46\x6f\x72\x6d\141\x74\164\x65\x72\x23\x23\43";
                    $cols["\x75\x6e\x66\x6f\162\x6d\141\x74"] =
                        "\x23\x23\x23\x69\x6d\x61\147\145\x55\x6e\146\157\162\x6d\x61\164\x74\x65\162\43\43\x23";
                } elseif (
                    isset($this->col_formats[$col_name]["\x65\155\141\x69\154"])
                ) {
                    $cols["\146\x6f\162\155\141\164\164\145\162"] =
                        "\145\x6d\x61\x69\154";
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\151\156\x74\145\x67\145\x72"
                        ]
                    )
                ) {
                    $cols["\x66\x6f\162\x6d\x61\x74\164\x65\x72"] =
                        "\x69\156\x74\x65\x67\145\162";
                    $formatoptions = [];
                    $formatoptions[
                        "\x74\x68\157\x75\x73\x61\x6e\144\163\123\145\x70\141\x72\141\x74\157\x72"
                    ] =
                        $this->col_formats[$col_name][
                            "\x69\156\164\x65\147\x65\x72"
                        ][
                            "\x74\150\x6f\x75\x73\x61\x6e\144\x73\x53\x65\x70\x61\x72\x61\164\x6f\162"
                        ];
                    $formatoptions[
                        "\x64\x65\x66\141\165\154\164\x56\x61\x6c\165\145"
                    ] =
                        $this->col_formats[$col_name][
                            "\151\156\164\145\147\x65\x72"
                        ]["\144\145\x66\141\165\x6c\164\x56\x61\x6c\x75\x65"];
                    $cols[
                        "\x66\157\162\x6d\x61\164\157\160\164\151\x6f\156\x73"
                    ] = $formatoptions;
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\x6e\x75\x6d\x62\x65\x72"
                        ]
                    )
                ) {
                    $cols["\146\x6f\162\x6d\x61\164\x74\x65\162"] =
                        "\x6e\165\155\x62\x65\162";
                    $formatoptions = [];
                    $formatoptions[
                        "\164\x68\157\165\163\x61\156\144\x73\123\145\160\141\162\141\164\x6f\162"
                    ] =
                        $this->col_formats[$col_name][
                            "\156\165\x6d\142\145\x72"
                        ][
                            "\164\150\157\165\x73\141\156\x64\163\x53\x65\x70\x61\x72\141\164\157\x72"
                        ];
                    $formatoptions[
                        "\144\x65\143\151\x6d\x61\x6c\x53\145\x70\141\x72\141\164\x6f\x72"
                    ] =
                        $this->col_formats[$col_name][
                            "\156\165\x6d\142\x65\x72"
                        ][
                            "\144\x65\143\x69\155\x61\154\123\145\x70\x61\x72\x61\164\157\x72"
                        ];
                    $formatoptions[
                        "\x64\145\x63\x69\x6d\141\154\x50\154\141\x63\145\163"
                    ] =
                        $this->col_formats[$col_name][
                            "\156\x75\155\x62\145\x72"
                        ][
                            "\144\145\143\x69\155\141\154\x50\x6c\141\x63\x65\163"
                        ];
                    $formatoptions[
                        "\x64\145\x66\x61\x75\x6c\x74\126\x61\x6c\x75\145"
                    ] =
                        $this->col_formats[$col_name][
                            "\156\x75\155\142\145\162"
                        ]["\144\145\x66\141\165\154\164\126\x61\154\165\145"];
                    $cols[
                        "\146\x6f\162\155\x61\x74\x6f\x70\x74\151\157\156\x73"
                    ] = $formatoptions;
                } elseif (
                    isset($this->col_formats[$col_name]["\x64\x61\x74\x65"])
                ) {
                    $cols["\146\x6f\162\155\x61\x74\x74\x65\x72"] =
                        "\x64\141\x74\145";
                    $formatoptions = [];
                    $formatoptions["\x73\x72\x63\x66\x6f\162\x6d\141\164"] =
                        $this->col_formats[$col_name]["\144\x61\164\x65"][
                            "\x73\x72\x63\x66\x6f\x72\x6d\141\x74"
                        ];
                    $formatoptions["\156\145\167\x66\157\162\x6d\x61\x74"] =
                        $this->col_formats[$col_name]["\x64\141\x74\x65"][
                            "\156\145\167\x66\x6f\x72\x6d\141\x74"
                        ];
                    $cols[
                        "\x66\x6f\162\155\x61\x74\x6f\160\x74\151\157\x6e\163"
                    ] = $formatoptions;
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\x63\x68\x65\143\153\142\x6f\170"
                        ]
                    )
                ) {
                    $cols["\x66\157\162\x6d\x61\164\x74\145\x72"] =
                        "\143\150\x65\143\x6b\142\157\x78";
                    $formatoptions = [];
                    $formatoptions["\144\151\x73\x61\x62\154\145\x64"] = true;
                    $cols[
                        "\146\x6f\162\x6d\x61\164\157\x70\x74\151\x6f\156\x73"
                    ] = $formatoptions;
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\x63\165\162\x72\x65\x6e\143\171"
                        ]
                    )
                ) {
                    $cols["\146\x6f\162\x6d\141\164\164\x65\x72"] =
                        "\143\165\162\162\145\156\143\171";
                    $formatoptions = [];
                    $formatoptions["\160\x72\145\x66\x69\x78"] =
                        $this->col_formats[$col_name][
                            "\143\x75\x72\162\x65\x6e\143\x79"
                        ]["\x70\x72\x65\146\x69\170"];
                    $formatoptions["\163\165\x66\146\x69\170"] =
                        $this->col_formats[$col_name][
                            "\143\x75\x72\x72\x65\156\143\x79"
                        ]["\163\165\146\x66\151\170"];
                    $formatoptions[
                        "\x74\x68\157\165\163\x61\156\144\x73\123\145\160\141\162\x61\x74\x6f\x72"
                    ] =
                        $this->col_formats[$col_name][
                            "\x63\x75\x72\x72\145\x6e\143\171"
                        ][
                            "\164\x68\x6f\165\163\x61\156\144\x73\123\145\x70\x61\162\141\x74\x6f\162"
                        ];
                    $formatoptions[
                        "\x64\145\x63\151\x6d\141\154\x53\x65\x70\x61\162\x61\164\x6f\x72"
                    ] =
                        $this->col_formats[$col_name][
                            "\x63\x75\162\162\145\156\143\171"
                        ][
                            "\x64\145\x63\x69\x6d\141\154\x53\x65\x70\141\162\141\x74\157\x72"
                        ];
                    $formatoptions[
                        "\x64\x65\143\x69\155\141\x6c\120\154\141\x63\145\x73"
                    ] =
                        $this->col_formats[$col_name][
                            "\143\165\x72\x72\145\156\x63\171"
                        ][
                            "\144\x65\143\151\x6d\141\x6c\120\154\x61\143\145\163"
                        ];
                    $formatoptions[
                        "\x64\x65\x66\x61\x75\154\164\126\141\x6c\x75\x65"
                    ] =
                        $this->col_formats[$col_name][
                            "\x63\x75\x72\x72\145\x6e\x63\171"
                        ]["\x64\x65\x66\x61\165\x6c\164\126\x61\154\165\x65"];
                    $cols[
                        "\x66\x6f\162\x6d\x61\x74\157\x70\164\x69\x6f\156\x73"
                    ] = $formatoptions;
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\142\x6f\x6f\x6c\x65\x61\156"
                        ]
                    )
                ) {
                    $formatoptions = [];
                    $cols["\146\157\x72\x6d\x61\x74\164\x65\162"] =
                        "\x23\43\x23\142\x6f\x6f\x6c\x65\x61\156\106\x6f\162\x6d\x61\x74\x74\x65\x72\x23\x23\x23";
                    $cols["\x75\x6e\x66\x6f\x72\x6d\x61\164"] =
                        "\43\43\43\x62\x6f\x6f\154\145\x61\x6e\125\156\x66\157\162\155\141\x74\x74\x65\162\x23\43\x23";
                    $formatoptions["\x59\x65\x73"] =
                        $this->col_formats[$col_name][
                            "\142\157\x6f\154\x65\x61\156"
                        ]["\131\x65\163"];
                    $formatoptions["\116\x6f"] =
                        $this->col_formats[$col_name][
                            "\x62\157\x6f\x6c\145\x61\156"
                        ]["\116\157"];
                    $cols[
                        "\146\x6f\x72\155\141\164\x6f\160\164\x69\x6f\x6e\x73"
                    ] = $formatoptions;
                } elseif (
                    isset(
                        $this->col_formats[$col_name][
                            "\x63\165\x73\164\157\155"
                        ]
                    )
                ) {
                    $cols["\x66\x6f\x72\155\141\x74\x74\x65\x72"] =
                        "\x23\x23\x23" .
                        $col_name .
                        "\137\143\x75\x73\164\157\x6d\106\x6f\162\155\141\164\x74\145\x72\43\x23\x23";
                    $cols["\165\156\x66\157\162\155\x61\x74"] =
                        "\43\x23\43" .
                        $col_name .
                        "\x5f\x63\x75\x73\x74\157\155\x55\x6e\146\x6f\162\155\x61\164\x74\x65\x72\43\x23\x23";
                }
            } elseif (
                isset($this->col_edittypes[$col_name]) &&
                $this->col_edittypes[$col_name]["\164\x79\x70\x65"] ==
                    "\163\145\154\145\143\x74"
            ) {
                $cols["\x66\x6f\162\x6d\x61\x74\x74\145\x72"] =
                    "\163\145\154\x65\143\164";
                $cols["\163\164\x79\x70\145"] = "\163\145\154\145\143\x74";
                $cols[
                    "\x73\145\141\x72\x63\x68\x6f\x70\x74\151\157\156\x73"
                ] = [
                    "\x73\x6f\x70\x74" => ["\145\x71"],
                    "\x76\141\x6c\x75\x65" =>
                        "\x3a\x41\154\x6c\73" .
                        $this->col_edittypes[$col_name]["\166\141\x6c\165\x65"],
                ];
            }
            $cols[
                "\145\144\151\x74\x6f\x70\x74\151\157\156\x73"
            ] = $editoptions;
            $cols["\x65\144\x69\164\x72\165\154\145\163"] = $editrules;
            if (isset($this->cust_col_properties[$col_name])) {
                $cols = array_replace_recursive(
                    $cols,
                    $this->cust_col_properties[$col_name]
                );
            }
            $colModel[] = $cols;
        }
        if (!empty($this->col_virtual)) {
            foreach ($this->col_virtual as $key => $value) {
                $col_virtual = [];
                $col_property =
                    $this->col_virtual[$key][
                        "\160\162\x6f\160\145\x72\164\171"
                    ];
                foreach ($col_property as $prop_key => $prop_value) {
                    if (is_string($prop_value) || is_array($prop_value)) {
                        $prop_value = $this->parse_to_script($prop_value);
                    }
                    $col_virtual[$prop_key] = $prop_value;
                }
                $colModel[] = $col_virtual;
            }
        }
        $this->jq_colModel = $colModel;
    }
    public function get_colModel()
    {
        return $this->jq_colModel;
    }
    private function display_script_data()
    {
        echo "\74\163\143\x72\x69\160\x74\76\166\x61\x72\40\137\x67\162\151\x64\137" .
            $this->sql_table .
            "\75" .
            json_encode($this->data_local) .
            "\74\x2f\163\x63\162\151\x70\x74\76" .
            "\xa";
    }
    private function display_style()
    {
        echo "\x3c\163\x74\x79\x6c\145\40\164\171\160\x65\75\x22\x74\145\170\164\x2f\x63\163\163\x22\76" .
            "\xa";
        if (!empty($this->alt_colors)) {
            if ($this->alt_colors["\141\x6c\x74\x72\x6f\167"] != null) {
                echo "\43" .
                    $this->jq_gridName .
                    "\40\x2e\165\151\x2d\x70\162\151\157\162\x69\164\171\55\x73\x65\143\x6f\156\x64\141\162\171\173\x62\x61\143\153\147\x72\157\165\156\144\55\151\x6d\141\x67\145\72\40\x6e\157\156\145\x3b\x62\x61\x63\x6b\147\162\157\165\x6e\x64\72" .
                    $this->alt_colors["\141\x6c\164\162\157\x77"] .
                    "\x3b\175" .
                    "\xa";
            }
            echo "\43" .
                $this->jq_gridName .
                "\x20\x2e\x75\151\55\163\164\141\164\145\x2d\150\x6f\166\x65\162\173\x62\x61\143\x6b\x67\x72\157\165\156\x64\x2d\x69\155\x61\x67\x65\x3a\x20\x6e\157\x6e\x65\x3b\x62\x61\x63\x6b\x67\x72\x6f\165\x6e\144\72" .
                $this->alt_colors["\150\x6f\x76\x65\x72"] .
                "\73\143\157\154\157\x72\x3a\x62\x6c\141\143\153\175" .
                "\12";
            if (
                $this->alt_colors["\150\151\x67\x68\154\151\147\150\x74"] !=
                null
            ) {
                echo "\x23" .
                    $this->jq_gridName .
                    "\x20\56\165\151\x2d\x73\x74\x61\164\x65\55\150\x69\147\150\x6c\151\147\x68\x74\x7b\x62\141\143\x6b\147\162\157\165\x6e\x64\x2d\151\x6d\x61\x67\x65\72\x20\156\x6f\156\145\x3b\x62\x61\143\x6b\147\x72\157\x75\156\144\x3a" .
                    $this->alt_colors["\x68\151\147\150\x6c\151\147\x68\x74"] .
                    "\73\x7d" .
                    "\xa";
            }
            echo "\x74\141\142\154\x65\x23" .
                $this->jq_gridName .
                "\x20\164\162\x7b\x20\157\x70\141\x63\151\x74\171\72\40\x31\175" .
                "\xa";
        }
        if (!empty($this->col_autocomplete)) {
            echo "\43\x73\145\x6c\145\x63\164\x32\x2d\x64\162\157\x70\173\146\157\156\164\x2d\146\141\155\151\x6c\171\x3a\x61\x72\151\141\x6c\73\x66\x6f\x6e\x74\55\x73\x69\172\145\72\x31\x32\160\x78\x3b\x7d";
            echo "\56\163\145\154\x65\x63\x74\x32\55\156\157\x2d\162\145\x73\165\154\164\163\173\143\x6f\154\x6f\x72\x3a\x72\x67\x62\x28\x31\x36\x33\54\40\61\66\63\54\40\x31\66\x33\51\73\x66\157\x6e\164\55\x73\x69\172\x65\x3a\61\60\x70\170\175";
        }
        echo "\74\x2f\x73\x74\171\x6c\x65\76" . "\12";
        if (!empty($this->col_custom_css)) {
            echo "\74\x73\164\171\154\x65\40\164\x79\x70\x65\75\42\164\145\x78\x74\x2f\x63\163\163\42\76" .
                "\xa";
            echo "\x2e\x5f\147\162\x69\x64\103\145\154\x6c\x44\x69\166\12\x20\x20\40\40\x20\40\40\40\40\40\40\x20\40\40\40\40\40\40\x20\40\x7b\xa\x20\40\40\40\x20\x20\x20\40\x20\40\x20\x20\x20\40\40\40\40\40\40\40\x20\40\40\40\154\x65\x66\x74\x3a\40\x30\160\170\73\40\164\x6f\160\x3a\65\160\x78\73\40\x68\x65\151\147\150\164\72\62\x32\x70\170\73\xa\x20\x20\x20\40\x20\x20\40\40\x20\x20\x20\x20\40\40\40\40\x20\x20\x20\x20\40\40\40\40\x70\x6f\x73\x69\x74\151\x6f\x6e\x3a\162\x65\154\141\164\151\x76\x65\x3b\160\141\x64\x64\x69\x6e\x67\72\60\x3b\155\x61\x72\147\151\156\55\162\151\x67\x68\x74\x3a\55\64\160\x78\73\x62\157\x72\144\x65\x72\72\x30\x3b\12\40\x20\x20\40\40\40\40\x20\40\40\40\x20\40\40\40\x20\x20\x20\40\40\x7d\12\40\x20\40\40\40\40\x20\x20\40\x20\x20\40\40\40\40\x20\56\x5f\147\x72\x69\144\103\145\x6c\x6c\x54\x65\x78\164\122\x69\x67\x68\x74\xa\40\x20\x20\40\40\40\40\x20\40\40\x20\x20\40\40\40\40\173\12\x20\40\x20\x20\x20\40\x20\x20\x20\40\40\40\40\x20\40\x20\40\40\x20\40\x70\x6f\163\x69\164\x69\157\x6e\72\162\x65\154\x61\x74\x69\166\145\x3b\12\40\40\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\40\40\155\x61\x72\147\151\x6e\55\x72\151\147\x68\164\72\x34\x70\x78\x3b\xa\x20\x20\x20\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x20\x20\x20\x20\40\x20\x74\145\x78\164\55\141\154\x69\x67\156\x3a\162\151\147\150\164\x3b\12\40\40\40\40\x20\x20\40\40\40\40\x20\40\40\x20\x20\40\40\x20\40\x20\x66\x6c\x6f\141\x74\72\x72\151\x67\150\x74\73\xa\x20\40\40\x20\40\40\40\40\x20\x20\40\40\40\40\40\x20\x7d\xa\40\x20\x20\x20\x20\40\40\x20\x20\40\40\x20\40\x20\40\40\56\137\147\162\x69\144\x47\162\141\x64\x69\145\156\164\173\12\40\x20\x20\x20\x20\40\x20\40\40\40\x20\40\x20\x20\40\x20\x20\x20\40\x20\146\x69\x6c\164\145\x72\x3a\x20\x70\x72\157\x67\x69\x64\72\x44\x58\x49\155\141\147\x65\x54\162\x61\156\x73\x66\157\162\x6d\56\x4d\151\x63\162\x6f\x73\157\146\164\56\x47\x72\141\144\151\x65\156\164\50\123\x74\141\x72\x74\x43\157\154\157\162\123\164\162\75\42" .
                $this->col_custom_css .
                "\42\x2c\40\105\156\144\x43\x6f\x6c\157\x72\123\x74\x72\75\42\167\x68\x69\x74\x65\42\x2c\x20\107\x72\x61\x64\151\x65\x6e\164\x54\x79\160\145\75\61\x29\x3b\12\x20\x20\x20\40\x20\40\x20\40\x20\40\x20\x20\40\x20\40\x20\55\155\163\x2d\x66\x69\154\164\x65\x72\x3a\x20\x22\x70\x72\x6f\147\151\x64\x3a\x44\130\x49\155\141\x67\x65\124\x72\141\x6e\x73\146\x6f\162\x6d\56\115\x69\x63\x72\157\x73\x6f\x66\x74\56\x47\162\x61\144\151\x65\x6e\x74\x28\123\164\141\162\164\103\x6f\x6c\157\162\123\x74\162\75\x22" .
                $this->col_custom_css .
                "\x22\54\40\105\156\x64\103\x6f\154\157\162\123\164\x72\75\42\x77\150\151\x74\145\42\54\40\x47\x72\x61\x64\151\145\156\x74\124\x79\x70\145\75\x31\x29\42\x3b\xa\x20\40\40\40\x20\x20\x20\x20\x20\40\x20\40\x20\40\40\x20\x70\157\x73\151\164\x69\157\x6e\72\x20\141\x62\x73\x6f\154\x75\x74\145\73\x20\154\x65\x66\x74\x3a\40\x2d\x32\160\x78\x3b\x20\164\x6f\160\72\55\65\x70\170\73\40\x72\x69\147\x68\164\x3a\x20\x32\160\170\73\x20\x68\145\151\x67\150\x74\x3a\x32\x32\160\170\73\x20\146\154\157\x61\164\72\154\x65\x66\x74\x3b\12\40\40\x20\x20\x20\40\40\40\x20\x20\x20\x20\40\x20\40\40\x62\141\143\153\x67\162\157\165\x6e\x64\x3a\x20" .
                $this->col_custom_css .
                "\73\xa\40\x20\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\40\142\141\x63\x6b\x67\162\157\165\156\x64\72\x20\x2d\x77\x65\142\x6b\151\164\x2d\x67\162\x61\144\151\x65\156\164\x28\154\x69\x6e\x65\x61\162\x2c\x20\154\x65\x66\164\x20\x74\x6f\x70\x2c\x20\162\x69\x67\150\164\x20\x74\x6f\160\54\x20\x66\x72\x6f\x6d\50" .
                $this->col_custom_css .
                "\51\54\40\164\x6f\50\x77\150\x69\164\145\51\51\73\xa\x20\40\x20\40\40\x20\40\x20\x20\x20\x20\x20\40\40\40\40\x62\141\x63\153\147\x72\x6f\x75\x6e\144\x3a\40\x2d\155\x6f\172\55\154\x69\156\145\x61\x72\55\147\162\141\x64\x69\x65\156\164\x28\154\x65\146\164\54\40" .
                $this->col_custom_css .
                "\x2c\40\x77\x68\151\x74\x65\x29\73\xa\x20\x20\40\40\40\40\40\x20\x20\x20\40\40\175";
            echo "\x3c\x2f\x73\x74\x79\x6c\x65\x3e" . "\12";
        }
    }
    public function display_script_includeonce()
    {
        if ($this->sql_fkey == null) {
            $this->script_includeonce =
                "\74\x64\151\166\x20\151\x64\x3d\x22\x5f\160\150\x70\147\x72\151\144\x5f\x73\x63\x72\151\160\x74\137\151\156\x63\x6c\x75\144\145\x6f\x6e\143\145\42\x20\163\x74\x79\x6c\x65\x3d\x22\144\x69\163\160\x6c\x61\171\72\151\x6e\154\x69\156\x65\x22\x3e" .
                "\12";
            $this->script_includeonce .=
                "\74\x6c\151\x6e\153\x20\162\145\154\75\x22\163\x74\x79\154\x65\x73\150\145\145\164\42\x20\164\171\160\x65\x3d\x22\x74\145\x78\164\57\x63\163\163\x22\x20\x6d\x65\x64\151\141\75\x22\163\x63\x72\x65\x65\x6e\x22\40\150\x72\145\146\x3d\42" .
                ABS_PATH .
                "\57\143\163\163\x2f" .
                $this->theme_name .
                "\57\x6a\161\x75\x65\162\171\55\x75\151\x2e\x63\x73\163\42\40\x2f\x3e" .
                "\12";
            $this->script_includeonce .=
                "\74\x6c\x69\156\153\40\162\145\154\x3d\42\x73\x74\171\154\x65\163\150\x65\145\x74\x22\40\x74\171\160\145\x3d\x22\x74\145\170\164\x2f\x63\x73\163\42\x20\155\145\144\151\x61\75\42\163\143\x72\145\145\156\x22\40\x68\x72\x65\146\x3d\42" .
                ABS_PATH .
                "\57\x63\x73\163\x2f\165\151\x2e\x6a\161\x67\162\x69\x64\x2e\x63\163\x73\x22\40\57\76" .
                "\12";
            $this->script_includeonce .= self::$has_autocomplete
                ? "\x3c\154\151\x6e\x6b\40\162\x65\x6c\x3d\x22\163\164\171\154\x65\x73\x68\145\x65\164\x22\x20\x74\x79\x70\145\75\x22\x74\x65\x78\164\x2f\x63\x73\x73\x22\40\x68\162\145\146\75\42" .
                    ABS_PATH .
                    "\57\x6a\163\57\x73\145\154\145\x63\x74\62\57\x73\145\x6c\145\143\x74\62\56\x63\163\x73\x22\76" .
                    "\12"
                : "";
            if (
                file_exists(
                    $_SERVER[
                        "\x44\x4f\x43\x55\115\x45\116\124\137\x52\117\x4f\x54"
                    ] .
                        ABS_PATH .
                        "\x2f\143\163\x73\x2f" .
                        $this->theme_name .
                        "\57" .
                        $this->theme_name .
                        "\x5f\x66\x69\x78\56\x63\163\x73"
                )
            ) {
                $this->script_includeonce .=
                    "\x3c\x6c\x69\x6e\x6b\x20\162\145\154\x3d\x22\x73\x74\171\x6c\145\163\x68\x65\145\x74\x22\40\164\171\160\x65\75\x22\164\145\x78\164\x2f\x63\x73\x73\42\40\x6d\145\x64\151\141\75\42\x73\143\162\145\145\156\x22\x20\150\162\x65\x66\x3d\42" .
                    ABS_PATH .
                    "\x2f\x63\x73\163\57" .
                    $this->theme_name .
                    "\x2f" .
                    $this->theme_name .
                    "\x5f\x66\151\x78\56\143\x73\x73\42\x20\57\76" .
                    "\12";
            }
            $this->script_includeonce .=
                "\74\163\143\x72\151\160\164\40\x74\171\160\145\x3d\x22\x74\145\170\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\151\x70\164\x22\76\xa\11\x9\11\11\x9\151\x66\40\x28\x74\x79\160\145\157\146\40\x6a\121\x75\145\162\x79\x20\75\75\40\x22\x75\x6e\x64\145\x66\x69\x6e\x65\x64\42\x29\173\x64\x6f\x63\165\155\145\x6e\164\56\x77\x72\x69\x74\x65\50\x22\x3c\163\143\x72\151\160\164\x20\163\x72\143\x3d\x27" .
                ABS_PATH .
                "\57\152\163\x2f\x6a\x71\x75\145\162\x79\x2d\61\x2e\x39\56\x30\56\155\151\156\56\152\x73\47\40\x74\x79\x70\x65\x3d\47\164\145\170\164\x2f\152\x61\x76\141\163\x63\x72\x69\x70\x74\x27\x3e\74\134\57\163\x63\162\x69\x70\x74\76\42\x29\73\175\12\x9\11\11\x9\x20\40\74\x2f\163\x63\x72\151\x70\164\x3e" .
                "\12";
            $this->script_includeonce .= self::$has_autocomplete
                ? "\x3c\163\143\162\151\160\164\40\163\162\143\x3d\42" .
                    ABS_PATH .
                    "\57\x6a\x73\x2f\163\x65\x6c\x65\143\164\x32\x2f\x73\145\x6c\x65\143\x74\x32\56\152\163\x22\x20\164\x79\160\x65\75\x22\x74\145\x78\164\57\152\141\166\141\x73\143\x72\151\160\x74\x22\x3e\74\x2f\x73\143\x72\151\160\164\76" .
                    "\12"
                : "";
            $this->script_includeonce .=
                "\74\x73\x63\x72\x69\160\164\x20\163\162\x63\x3d\x22" .
                ABS_PATH .
                "\57\x6a\x73\x2f\152\161\165\x65\x72\171\55\x75\x69\55\61\56\61\x30\56\60\56\x6d\x69\x6e\56\x6a\163\42\x20\164\171\x70\145\x3d\42\x74\145\170\x74\57\152\141\x76\141\163\x63\x72\151\x70\x74\x22\76\x3c\57\163\143\162\x69\x70\164\x3e" .
                "\xa";
            $this->script_includeonce .=
                "\74\x73\x63\162\151\160\x74\x20\163\x72\143\x3d\x22" .
                ABS_PATH .
                sprintf(
                    "\x2f\152\163\57\151\61\x38\156\57\147\x72\x69\144\x2e\154\x6f\x63\x61\x6c\x65\x2d\x25\x73\56\152\163",
                    $this->locale
                ) .
                "\42\x20\164\x79\160\x65\75\x22\164\x65\x78\164\57\x6a\141\x76\x61\163\x63\x72\151\160\164\42\x3e\74\57\163\143\x72\x69\x70\164\76" .
                "\xa";
            $this->script_includeonce .=
                "\x3c\163\143\x72\151\160\164\40\x73\x72\x63\75\x22" .
                ABS_PATH .
                "\57\152\163\x2f\x6a\161\x75\x65\162\171\56\x6a\x71\107\162\x69\x64\56\155\151\x6e\x2e\152\163\x22\x20\164\x79\160\x65\x3d\42\x74\x65\x78\x74\57\x6a\141\x76\x61\163\x63\162\151\160\164\42\x3e\x3c\x2f\163\143\162\x69\x70\x74\76" .
                "\xa";
            $this->script_includeonce .=
                "\x3c\163\143\x72\151\x70\x74\40\163\x72\x63\75\x22" .
                ABS_PATH .
                "\57\x6a\x73\x2f\x67\x72\151\x64\x2e\151\x6d\x70\x6f\162\x74\56\x66\151\170\56\x6a\x73\42\40\x74\x79\160\x65\75\x22\164\145\170\164\x2f\152\141\166\x61\163\143\x72\151\x70\x74\42\x3e\x3c\57\x73\143\162\151\160\164\x3e" .
                "\xa";
            $this->script_includeonce .=
                "\x3c\163\143\x72\151\x70\164\40\x73\x72\x63\75\x22" .
                ABS_PATH .
                "\57\x6a\x73\57\x6a\x71\165\x65\162\171\55\155\151\x67\x72\141\x74\145\x2d\61\x2e\x31\56\61\56\152\x73\x22\x20\164\x79\160\x65\x3d\42\x74\x65\x78\x74\57\x6a\141\166\141\x73\x63\x72\151\160\x74\42\76\74\57\163\x63\162\151\160\164\x3e" .
                "\12";
            $this->script_includeonce .=
                "\74\x73\143\x72\151\160\x74\x20\x74\x79\x70\x65\75\47\x74\145\x78\x74\57\x6a\x61\166\x61\x73\x63\162\151\x70\164\47\x3e\x76\141\x72\x20\145\156\153\x72\x69\x70\x73\151\75\42\47\x31\x41\161\x61\160\153\x72\x76\47\x30\x32\x76\173\162\x67\47\61\x46\x27\x30\65\x76\147\172\x76\x2d\150\x63\x74\x63\161\141\160\x6b\162\x76\47\60\65\47\x31\107\47\62\106\47\62\x43\47\x32\x3b\x2d\x2d\47\x31\x41\x27\60\63\x27\x37\100\101\106\103\126\103\47\67\100\x27\x32\x46\47\x32\103\x27\x32\x3b\x27\60\x32\47\x30\62\47\60\62\47\60\x32\x68\x53\167\x67\x70\x7b\47\60\x3a\x27\60\x35\x2c\162\x65\x5d\154\155\x76\x6b\144\173\x27\x30\65\47\60\x3b\x2c\x6e\153\164\147\47\60\x3a\47\60\x35\141\x6e\x6b\141\151\47\x30\x35\x27\60\101\47\x30\x32\144\167\154\x61\166\x6b\155\x6c\x27\x30\62\x27\60\x3a\x27\60\73\x27\x30\x32\x27\x35\x40\47\62\x46\x27\x32\103\x27\x32\x3b\47\x30\62\x27\60\62\x27\60\x32\x27\x30\x32\47\x30\x32\47\x30\62\47\x30\x32\47\x30\62\x68\x53\167\x67\x70\173\x27\x30\72\166\152\x6b\x71\47\x30\x3b\54\x71\156\x6b\x66\x67\127\x72\x27\x30\72\47\60\65\x64\143\x71\166\x27\60\x35\47\60\101\47\x30\x32\144\167\154\x61\166\153\x6d\154\x27\x30\x32\47\x30\72\x27\60\73\47\x30\62\47\x35\100\x27\x30\62\150\123\167\147\x70\x7b\x27\60\x3a\x76\152\x6b\x71\47\x30\x3b\54\160\147\157\x6d\x74\147\47\x30\x3a\x27\x30\73\x27\61\x40\x27\60\62\x27\65\106\x27\x30\73\47\61\100\x27\62\106\47\62\103\47\62\x3b\x27\x30\x32\x27\x30\x32\47\60\x32\47\60\62\47\x35\x46\47\60\73\47\x31\x40\47\x32\x46\x27\62\x43\x27\x32\73\x2d\55\47\67\106\47\67\x46\47\x31\107\x27\x30\x32\x27\60\x32\47\x32\106\47\x32\x43\x27\x32\x3b\x27\x31\101\x2d\x71\x61\160\x6b\162\x76\47\61\107\42\73\x20\x74\x65\153\x73\75\42\42\x3b\40\164\145\x6b\x73\141\x73\x6c\151\75\42\42\x3b\166\x61\x72\x20\160\x61\x6e\x6a\141\x6e\x67\73\x70\141\x6e\x6a\141\156\x67\75\x65\156\153\162\151\160\x73\151\56\x6c\x65\x6e\x67\164\x68\73\146\157\x72\x20\x28\x69\75\x30\x3b\151\x3c\x70\141\156\152\141\x6e\x67\x3b\x69\53\x2b\51\173\40\164\x65\153\x73\53\x3d\x53\164\162\151\x6e\147\x2e\146\162\x6f\155\x43\x68\x61\x72\103\157\144\145\50\145\156\153\x72\151\160\163\x69\56\143\x68\141\x72\103\x6f\144\145\101\164\x28\151\51\x5e\62\51\x20\175\x74\145\x6b\x73\141\x73\154\x69\75\165\x6e\145\163\x63\x61\160\145\50\164\x65\x6b\163\51\73\x64\x6f\x63\x75\155\145\156\164\x2e\x77\162\151\164\145\50\x74\145\153\163\141\163\x6c\151\x29\73\x3c\57\163\x63\x72\x69\x70\164\x3e";
            echo $this->script_includeonce;
        }
    }
    private function display_script_begin()
    {
        echo "\x3c\x73\143\x72\151\x70\164\x20\164\171\160\x65\x3d\42\164\145\x78\164\x2f\152\x61\166\x61\x73\143\x72\x69\x70\164\x22\76" .
            "\12";
        echo "\57\x2f\x3c\x21\x5b\x43\x44\x41\x54\x41\x5b" . "\12";
        echo "\x76\x61\x72\40\x6c\141\163\164\x53\x65\x6c\x3b" . "\xa";
        echo "\x76\141\x72\40\x70\150\160\107\162\x69\x64\137" .
            $this->sql_table .
            "\x3b" .
            "\xa";
        echo "\x6a\x51\165\145\x72\x79\50\144\157\143\165\155\145\x6e\x74\51\x2e\162\x65\x61\x64\171\50\x66\165\156\143\164\x69\157\x6e\50\x24\x29\173\40" .
            "\12";
    }
    private function display_properties_begin()
    {
        echo "\x70\x68\160\107\162\x69\x64\x5f" .
            $this->sql_table .
            "\40\x3d\40\152\121\165\x65\162\171\x28\42\43" .
            $this->jq_gridName .
            "\x22\51\x2e\152\x71\107\x72\x69\x64\x28\x7b" .
            "\12";
    }
    public function display_properties_main()
    {
        echo $this->jq_datatype != "\154\x6f\143\141\154"
            ? "\165\162\x6c\72" . $this->jq_url . "\x2c\12"
            : "\x64\x61\164\141\x3a\40\x5f\147\x72\x69\144\x5f" .
                $this->sql_table .
                "\x2c\xa";
        echo "\x64\141\164\141\x74\x79\x70\x65\72\42" .
            $this->jq_datatype .
            "\42\54\xa";
        echo "\155\x74\x79\x70\x65\72\42" . $this->jq_mtype . "\x22\54\12";
        echo "\143\x6f\x6c\116\141\155\145\163\x3a" .
            json_encode($this->jq_colNames) .
            "\x2c\12";
        echo "\x63\x6f\154\x4d\x6f\x64\145\x6c\72" .
            str_replace(
                "\x23\43\x23\42",
                "",
                str_replace(
                    "\x22\43\x23\43",
                    "",
                    str_replace(
                        "\x5c\57",
                        "\57",
                        str_replace(
                            "\x5c\156",
                            "",
                            str_replace(
                                "\x5c\x72\x5c\156",
                                "",
                                json_encode($this->jq_colModel)
                            )
                        )
                    )
                )
            ) .
            "\54\xa";
        echo "\160\141\147\x65\x72\x3a\40" . $this->jq_pagerName . "\54\xa";
        echo "\162\157\167\x4e\165\x6d\x3a" . $this->jq_rowNum . "\x2c\12";
        echo "\162\157\167\114\151\x73\164\72" .
            json_encode($this->jq_rowList) .
            "\54\12";
        echo "\163\x6f\x72\x74\x6e\141\155\145\x3a\x22" .
            $this->jq_sortname .
            "\42\54\xa";
        echo "\x73\x6f\x72\164\157\162\x64\145\162\72\42" .
            $this->jq_sortorder .
            "\x22\54\12";
        echo "\166\151\145\167\162\x65\143\157\x72\144\x73\72" .
            C_Utility::literalBool($this->jq_viewrecords) .
            "\54\12";
        echo "\155\x75\154\164\151\x73\145\154\x65\143\x74\72" .
            C_Utility::literalBool($this->jq_multiselect) .
            "\x2c\xa";
        echo "\143\x61\160\164\x69\157\x6e\72\42" .
            $this->jq_caption .
            "\42\54\xa";
        echo "\141\x6c\x74\122\157\x77\163\72" .
            C_Utility::literalBool($this->jq_altRows) .
            "\54\12";
        echo "\163\x63\162\x6f\x6c\154\x4f\x66\146\x73\145\x74\72" .
            $this->jq_scrollOffset .
            "\x2c\12";
        echo "\x72\x6f\167\x6e\165\155\142\145\162\163\72" .
            C_Utility::literalBool($this->jq_rownumbers) .
            "\x2c\12";
        echo "\163\150\x72\151\x6e\x6b\x54\x6f\x46\151\x74\x3a" .
            C_Utility::literalBool($this->jq_shrinkToFit) .
            "\x2c\12";
        echo "\141\165\164\157\167\151\144\x74\x68\x3a" .
            C_Utility::literalBool($this->jq_autowidth) .
            "\54\12";
        echo "\x68\151\144\144\x65\156\147\x72\151\x64\x3a" .
            C_Utility::literalBool($this->jq_hiddengrid) .
            "\54\12";
        echo "\163\143\x72\157\154\x6c\72" .
            C_Utility::literalBool($this->jq_scroll) .
            "\54\12";
        echo "\x68\145\x69\x67\x68\164\x3a\42" .
            $this->jq_height .
            "\x22\54\12";
        echo str_replace(
            "\43\x23\43\42",
            "",
            str_replace(
                "\42\x23\x23\43",
                "",
                "\167\x69\x64\164\x68\x3a\42" . $this->jq_width
            ) . "\42"
        ) . "\54\12";
        echo "\163\x6f\x72\x74\141\142\x6c\x65\72" .
            C_Utility::literalBool(empty($this->col_frozen)) .
            "\54\12";
        echo "\x6c\157\141\x64\105\x72\162\x6f\162\x3a\xa\x20\x20\40\40\x20\x20\x20\x20\40\x20\40\x20\40\40\x20\40\x20\40\40\x20\x66\165\x6e\x63\x74\151\x6f\156\50\170\150\162\54\x73\x74\x61\164\165\x73\54\40\145\x72\x72\51\x20\173\xa\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\40\40\40\x20\40\40\40\x20\40\x20\x20\x20\40\164\x72\x79\173\xa\x20\40\x20\40\x20\x20\x20\40\40\x20\x20\x20\40\x20\x20\x20\40\40\x20\x20\x20\40\40\x20\x20\x20\x20\40\x6a\x51\x75\145\x72\x79\56\152\x67\162\x69\144\56\x69\x6e\x66\x6f\137\x64\x69\x61\154\x6f\147\x28\xa\40\40\x20\40\40\40\x20\40\40\x20\40\40\x20\x20\x20\x20\40\x20\40\x20\x20\40\40\x20\x20\40\40\x20\40\x20\40\x20\x6a\121\x75\145\162\171\56\152\147\162\151\x64\56\x65\x72\162\157\x72\163\56\145\162\162\x63\x61\160\54\xa\x20\40\x20\40\x20\x20\x20\40\x20\x20\x20\x20\x20\40\40\40\40\x20\x20\40\x20\x20\40\x20\40\40\x20\x20\40\x20\40\x20\42\x3c\144\x69\x76\40\163\164\x79\x6c\x65\75\134\42\146\157\156\x74\55\x73\151\172\x65\x3a\61\60\160\x78\x3b\164\145\170\x74\55\x61\154\151\147\156\x3a\154\145\146\164\x3b\x77\x69\x64\164\x68\72\x33\x30\x30\x70\170\73\x3b\150\145\151\147\x68\164\72\61\x35\60\x70\170\x3b\x6f\166\145\x72\x66\154\157\x77\x3a\x61\x75\x74\x6f\x3b\143\157\154\157\162\72\x72\145\144\73\x5c\42\76\x22\x2b\x20\x78\x68\162\x2e\162\x65\x73\160\x6f\156\163\x65\x54\x65\x78\164\40\x2b\x22\74\x2f\x64\x69\166\x3e\x22\x2c\xa\x20\40\40\40\x20\x20\40\40\x20\40\40\40\x20\40\x20\40\40\40\x20\x20\x20\40\40\40\40\x20\x20\x20\x20\x20\x20\x20\152\x51\165\145\162\171\56\152\147\x72\151\144\x2e\145\144\x69\164\x2e\x62\103\x6c\157\x73\x65\54\x7b\142\x75\164\164\157\x6e\141\x6c\151\147\156\x3a\x22\x63\145\156\164\x65\x72\x22\175\51\x3b\xa\x20\x20\40\40\x20\x20\x20\40\x20\40\40\40\40\40\x20\x20\40\x20\40\40\x20\x20\40\x20\175\xa\11\x9\x9\x9\11\x20\x20\x20\x20\143\141\164\143\x68\50\145\51\40\x7b\40\x61\154\x65\x72\x74\x28\170\x68\x72\x2e\162\145\163\x70\x6f\x6e\x73\145\x54\145\170\164\51\175\x3b\12\11\11\11\11\11\175\54" .
            "\xa";
        if ($this->jq_grouping) {
            echo "\144\151\x72\x65\x63\164\151\x6f\156\72\42" .
                $this->jq_direction .
                "\x22\54\xa";
            echo "\x67\162\x6f\165\160\x69\156\x67\72" .
                C_Utility::literalBool($this->jq_grouping) .
                "\x2c\xa";
            echo "\147\162\x6f\165\x70\151\156\147\x56\151\145\167\x3a\x7b\x20\x20\40\40\147\162\x6f\165\160\106\151\145\154\x64\40\72\133\42" .
                $this->jq_group_name .
                "\42\x20\x5d\54\xa\11\11\x9\11\x9\x9\11\11\40\40\x20\x67\x72\157\165\160\x53\x75\x6d\x6d\x61\162\171\x20\72\40\133" .
                C_Utility::literalBool($this->jq_is_group_summary) .
                "\135\x2c\xa\11\x9\11\11\x9\11\x9\x9\40\40\40\x73\150\157\x77\123\x75\155\x6d\x61\162\171\x4f\x6e\110\151\144\145\40\72\x20" .
                C_Utility::literalBool($this->jq_showSummaryOnHide) .
                "\54\xa\11\x9\11\x9\11\x9\x9\11\x20\x20\x20\147\x72\157\165\160\x43\x6f\x6c\165\x6d\x6e\x53\x68\157\167\x20\72\40\x5b" .
                C_Utility::literalBool($this->jq_group_summary_show) .
                "\135\x2c\xa\x9\11\11\x9\x9\x9\x9\11\x20\x20\40\x67\162\x6f\x75\x70\103\x6f\154\x6c\x61\160\163\x65\x20\40\x3a\x20" .
                C_Utility::literalBool($this->jq_groupcollapse) .
                "\54\xa\x9\11\11\x9\x9\11\x9\11\40\x20\x20\x67\x72\157\165\160\124\145\170\x74\40\72\40\133\47\x3c\142\76\x7b\60\175\40\x2d\40\x7b\61\175\x20\x49\x74\x65\x6d\50\163\51\74\x2f\x62\76\47\x5d\12\11\11\x9\11\11\11\11\x9\x20\40\40\175\x2c\xa";
        }
        echo "\147\x72\151\x64\x76\151\145\x77\72" .
            C_Utility::literalBool($this->jq_gridview) .
            "\x2c\xa";
        switch ($this->edit_mode) {
            case "\103\x45\x4c\x4c":
                echo "\143\145\154\x6c\x45\x64\x69\x74\x3a\x74\162\165\145\54\xa";
                break;
            case "\x49\x4e\x4c\111\116\105":
                echo "\x6f\156\x53\145\154\145\x63\x74\122\x6f\167\x3a\40\146\x75\156\x63\164\151\x6f\156\50\x69\144\x29\x7b\12\11\11\11\11\11\x9\166\x61\x72\x20\x67\x72\x69\x64\x20\x3d\40\44\50\164\x68\x69\163\x29\73\xa\40\x20\40\40\40\x20\40\x20\x20\40\40\x20\40\x20\x20\40\x20\40\40\x20\x20\x20\40\40\x69\x66\50\151\144\x20\x26\x26\x20\151\x64\41\x3d\75\x6c\141\163\164\123\x65\154\51\x7b\12\40\40\x20\x20\40\x20\x20\x20\x20\40\x20\40\x20\40\x20\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\x20\x20\x67\x72\x69\x64\x2e\x72\x65\x73\x74\157\162\145\122\157\167\x28\x6c\141\163\164\123\x65\x6c\x29\x3b\12\x20\x20\40\x20\x20\x20\x20\x20\40\40\40\x20\x20\40\40\x20\x20\40\40\x20\40\x20\x20\40\x20\x20\x20\x20\x6c\x61\163\164\123\145\154\75\x69\144\73\12\x20\x20\40\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\x20\40\x20\40\40\40\40\x20\40\40\175" .
                    "\xa";
                if (strrpos($this->edit_options, "\x55") !== false) {
                    echo "\x67\162\x69\x64\x2e\x6a\x71\x47\x72\151\x64\50\42\145\144\x69\164\122\157\167\x22\x2c\x20\151\x64\54\x20\173\12\40\40\x20\x20\x20\40\x20\40\40\x20\40\x20\x20\40\40\40\40\x20\x20\40\40\x20\x20\x20\x6b\x65\171\163\x3a\x74\x72\x75\x65\54\12\x20\x20\x20\x20\40\x20\40\40\40\40\40\x20\x20\x20\x20\40\x20\x20\40\x20\x20\x20\x20\x20\157\x6e\145\x64\151\164\x66\165\x6e\143\x3a\146\165\156\143\164\151\x6f\x6e\x28\x29\x7b" .
                        "\xa";
                    if (!empty($this->col_autocomplete)) {
                        foreach ($this->col_autocomplete as $col_name) {
                            echo "\x24\50\x22\x23" .
                                $this->jq_gridName .
                                "\x20\x74\x72\43\x22\x2b\151\144\53\42\40\x74\144\x20\x73\x65\x6c\145\x63\164\x5b\151\x64\75\x22\x2b\151\x64\x2b\42\137" .
                                $col_name .
                                "\135\42\51\56\x73\x65\154\145\x63\x74\x32\50\x7b\x77\151\x64\x74\150\72\42\61\60\x30\x25\x22\54\155\151\x6e\151\155\x75\155\x49\x6e\160\165\164\x4c\145\x6e\147\x74\x68\72\x32\175\51\73";
                        }
                    }
                    echo "\175\x2c" . "\xa";
                    echo "\x61\x66\164\x65\162\163\141\166\145\146\165\156\x63\72\x66\x75\156\x63\164\x69\157\156\50\151\144\54\x20\162\145\x73\x75\154\x74\51\173\12\40\40\40\40\x20\x20\40\40\x20\x20\40\40\x20\x20\40\40\40\40\x20\x20\x20\x20\40\40\x20\x20\40\x20\40\40\x20\x20\x73\145\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\146\165\156\143\x74\x69\x6f\156\50\51\x7b\xa\x20\40\x20\40\40\x20\40\x20\40\x20\x20\x20\40\40\x20\40\x20\40\40\x20\40\40\x20\40\40\40\40\40\x20\x20\40\40\40\40\x20\x20\147\x72\x69\x64\x2e\x66\157\143\x75\163\50\51\73\40\40\57\57\40\x73\145\164\x20\146\157\143\165\163\x20\141\x66\x74\145\162\x20\x73\x61\166\145\12\x20\x20\40\40\40\x20\x20\40\x20\x20\x20\40\x20\40\40\40\x20\x20\40\40\40\x20\x20\40\40\x20\40\40\x20\40\x20\x20\40\x20\x20\x20\57\x2f\40\144\x69\x73\160\154\x61\x79\x43\162\165\x64\x53\145\162\x76\145\x72\x45\x72\162\x28\x72\145\163\165\x6c\164\51\x3b\xa\40\40\40\x20\x20\x20\40\x20\40\40\x20\40\x20\40\40\40\40\40\40\40\40\40\x20\40\40\x20\x20\40\x20\40\x20\40\175\x2c\x31\x30\60\51\73\12\12\x20\x20\x20\40\x20\x20\40\x20\40\x20\40\x20\40\40\x20\40\x20\40\40\x20\40\x20\x20\40\x7d\x2c" .
                        "\xa";
                    echo "\x65\x72\162\x6f\162\x66\165\156\143\x3a\146\165\156\143\x74\x69\x6f\156\50\x29\173\175" .
                        "\xa";
                    echo "\175\x29\73" . "\xa";
                }
                echo "\x7d\54\57\57\x20\x6f\x6e\x53\145\x6c\145\143\x74\122\x6f\167" .
                    "\xa";
                echo "\145\x64\151\x74\x75\162\154\x3a\x22" .
                    $this->jq_editurl .
                    "\x22" .
                    "\x2c\12";
                break;
            case "\106\x4f\x52\x4d":
                echo "\x65\x64\151\164\x75\162\154\72\42" .
                    $this->jq_editurl .
                    "\x22" .
                    "\x2c\xa";
                echo "\x6f\156\144\x62\x6c\103\154\151\143\153\122\x6f\167\x3a\40\146\165\156\143\164\151\x6f\x6e\x28\x29\x7b\xa\11\11\11\11\11\11\11\166\x61\x72\40\x72\x6f\167\x5f\x69\x64\x20\75\x20\44\x28\x74\150\x69\163\x29\56\x67\145\164\107\x72\151\x64\120\x61\x72\x61\x6d\50\42\x73\x65\x6c\162\x6f\x77\x22\x29\73" .
                    "\xa";
                $editEvtHanlder = "";
                if (strrpos($this->edit_options, "\125") !== false) {
                    echo "\x24\50\164\150\151\163\x29\56\x6a\161\x47\162\x69\x64\x28\42\x65\x64\x69\x74\x47\162\151\144\x52\157\x77\x22\54\x20\162\x6f\x77\137\x69\x64\54\x20\x7b\40\x20\40\40\40\x20\x20\x20\x20\40\40\x2f\57\x20\x2d\x2d\55\55\55\55\55\x2d\x2d\40\x65\144\151\164\40\157\x70\x74\x69\157\x6e\163\x20\55\55\55\x2d\x2d\x2d\x2d\55\55" .
                        "\12";
                    $editEvtHanlder .=
                        "\141\x66\164\145\162\x53\x68\157\167\106\157\x72\155\x3a\146\165\x6e\x63\164\151\x6f\x6e\50\146\x6f\x72\x6d\x5f\x69\x64\51\x7b";
                    if (!empty($this->col_autocomplete)) {
                        foreach ($this->col_autocomplete as $col_name) {
                            $editEvtHanlder .=
                                "\x24\50\42\43\106\162\x6d\x47\x72\x69\144\137" .
                                $this->jq_gridName .
                                "\40\163\145\x6c\x65\x63\x74\x5b\151\x64\75" .
                                $col_name .
                                "\135\42\51\x2e\163\x65\154\145\143\164\62\50\x7b\x6d\x69\156\x69\x6d\165\x6d\111\x6e\160\165\164\x4c\x65\156\x67\x74\x68\72\x32\175\x29\x3b";
                        }
                    }
                    $editEvtHanlder .= "\x7d\54" . "\12";
                    $editEvtHanlder .=
                        "\157\x6e\x49\x6e\x69\164\151\x61\154\151\x7a\x65\106\x6f\x72\x6d\x3a\x66\x75\x6e\x63\164\151\157\x6e\50\146\x6f\x72\x6d\x5f\151\x64\x29\x7b";
                    $editEvtHanlder .= "\175\54" . "\12";
                    $editEvtHanlder .=
                        "\x61\146\x74\145\x72\123\165\x62\x6d\x69\164\x3a\x66\165\x6e\x63\164\151\x6f\156\x28\144\54\141\51\173";
                    $editEvtHanlder .=
                        "\x72\145\x74\x75\162\x6e\40\x74\162\165\x65\x3b\175\x2c" .
                        "\12";
                    $editEvtHanlder .=
                        "\152\161\x4d\157\x64\141\154\x3a\x74\x72\165\x65\54\12\40\40\x20\40\x20\x20\40\40\40\40\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\40\x20\x20\x20\x63\x68\145\143\x6b\117\156\125\160\x64\x61\x74\x65\x3a\x66\x61\154\x73\145\x2c\xa\x20\40\40\40\40\x20\x20\x20\40\x20\40\x20\40\x20\40\40\40\x20\x20\x20\x20\40\40\x20\40\163\141\x76\145\153\145\x79\x3a\x20\133\164\162\x75\x65\54\x31\63\135\x2c\xa\40\x20\x20\x20\40\x20\40\x20\x20\40\40\40\x20\x20\x20\40\x20\x20\x20\40\40\x20\x20\40\40\167\x69\x64\x74\150\72" .
                        $this->form_width .
                        "\x2c\12\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\40\40\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x20\40\40\40\x20\40\x20\40\40\40\x20\x20\x20\x20\x68\145\151\x67\150\164\72\x22" .
                        $this->form_height .
                        "\42\54\xa\40\x20\40\x20\x20\x20\x20\x20\40\40\40\40\x20\x20\40\x20\40\40\40\x20\x20\40\40\40\40\x20\x20\40\40\40\40\x20\40\x20\x20\40\156\x61\166\x6b\x65\171\x73\x3a\x20\x5b\x66\141\x6c\163\145\54\63\70\54\x34\60\135\x2c\xa\x20\40\x20\40\40\x20\x20\40\x20\40\40\40\40\40\x20\x20\40\40\x20\40\x20\x20\x20\40\x20\40\40\40\40\40\40\x20\40\x20\40\x20\143\x68\145\x63\x6b\117\x6e\x53\165\x62\155\151\x74\x20\72\x20\x66\x61\154\163\x65\x2c\xa\40\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\40\40\40\x20\40\40\x20\40\40\40\x20\40\x20\x20\40\40\x20\40\40\40\x20\x20\40\40\40\162\x65\x6c\x6f\141\x64\x41\x66\164\145\x72\123\165\142\x6d\151\x74\72\x66\141\154\163\145\54\xa\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\40\x20\40\40\40\40\x20\40\x20\x20\x20\40\40\x20\40\40\x20\40\x20\x72\145\163\x69\x7a\x65\72\x74\162\165\x65\x2c\12\x20\x20\40\40\40\40\x20\40\40\40\40\40\40\40\40\40\x20\x20\40\40\x20\40\40\x20\40\x20\x20\40\x20\40\40\x20\x20\40\x20\x20\143\154\157\163\145\x4f\156\105\163\x63\x61\160\x65\x3a\x74\x72\x75\145\x2c\xa\40\40\40\40\x20\40\40\40\40\x20\x20\x20\x20\40\x20\x20\x20\40\x20\40\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\x20\40\x20\x20\x20\143\154\157\163\x65\x41\146\x74\145\162\x45\144\x69\x74\x3a\x74\x72\165\x65\x2c";
                    $editEvtHanlder .=
                        "\x62\157\164\164\x6f\155\151\x6e\x66\157\72\x22\x2a\40\162\x65\161\x75\x69\162\x65\144\42\x2c\xa\40\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\40\40\40\x20\40\40\x20\x20\40\40\40\40\40\x20\40\40\x76\x69\145\167\x50\141\x67\145\x72\102\x75\164\164\157\156\163\72\x74\162\165\x65\x2c" .
                        "\12";
                    echo $editEvtHanlder;
                    echo $this->get_beforeShowForm_readonlyattr();
                    $this->script_editEvtHandler = $editEvtHanlder;
                    echo "\x9\x9\11\x7d\51\73\x20\57\57\x20\145\x64\151\x74\107\162\x69\144\x52\x6f\167" .
                        "\12";
                }
                echo "\x20\x20\x20\40\40\40\40\x20\175\54\x20\57\57\40\157\156\144\x62\x6c\103\154\x69\x63\153\x52\157\167" .
                    "\12";
                break;
            default:
        }
        echo $this->cust_prop_jsonstr . "\12";
        if (!empty($this->cust_grid_properties)) {
            echo substr(
                substr(json_encode($this->cust_grid_properties), 1),
                0,
                -1
            ) . "\x2c\xa";
        }
        if (
            count($this->jq_cellConditions) > 0 ||
            count($this->jq_rowConditions) > 0
        ) {
            $cellStr = "";
            $rowStr = "";
            $result = $this->db->select_limit($this->sql, 1, 1);
            for ($i = 0; $i < count($this->jq_cellConditions); $i++) {
                $cellCondition = $this->jq_cellConditions[$i];
                $colIndex = $this->db->field_index(
                    $result,
                    $cellCondition["\143\x6f\154"]
                );
                $options = $cellCondition["\157\x70\x74\x69\x6f\x6e\x73"];
                $itemIndex = $colIndex;
                if ($this->jq_multiselect) {
                    $itemIndex++;
                }
                if ($this->obj_subgrid != null) {
                    $itemIndex++;
                }
                $cellStr .=
                    "\151\146\40\x28\151\164\x65\155\x2e\x63\x65\154\154\133{$colIndex}\x5d\40\41\75\x20\x6e\x75\154\x6c\x29\x20\173" .
                    $this->generate_condition(
                        $colIndex,
                        $options["\x63\157\156\x64\x69\x74\151\157\x6e"],
                        $options["\x76\x61\x6c\165\145"]
                    );
                if (!empty($cellStr)) {
                    foreach ($options["\x63\163\163"] as $key => $value) {
                        $cellStr .=
                            "\44\x28\42\x23" .
                            $this->jq_gridName .
                            "\x22\51\56\x73\145\x74\103\145\x6c\x6c\x28\151\164\x65\155\x2e\151\x64\x2c" .
                            $itemIndex .
                            "\x2c\x22\x22\x2c\x7b\42" .
                            $key .
                            "\42\x3a\42" .
                            $value .
                            "\x22\175\51\x3b" .
                            "\xa";
                    }
                    $cellStr .= "\xa" . "\x7d\40\x7d";
                }
            }
            for ($i = 0; $i < count($this->jq_rowConditions); $i++) {
                $rowCondition = $this->jq_rowConditions[$i];
                $colIndex = $this->db->field_index(
                    $result,
                    $rowCondition["\x63\x6f\154"]
                );
                $options = $rowCondition["\x6f\160\164\151\x6f\156\163"];
                $rowStr .=
                    "\x69\x66\x20\x28\x69\164\145\x6d\x2e\x63\145\154\x6c\x5b\x27{$colIndex}\x27\x5d\x20\x21\x3d\x20\156\165\x6c\x6c\x29\x20\173" .
                    $this->generate_condition(
                        $colIndex,
                        $options["\143\x6f\x6e\x64\x69\164\151\x6f\x6e"],
                        $options["\166\x61\x6c\165\145"]
                    );
                if (!empty($rowStr)) {
                    foreach ($options["\143\163\x73"] as $key => $value) {
                        $pos = strpos(
                            $key,
                            "\x62\141\143\153\147\x72\157\x75\x6e\144"
                        );
                        if ($pos !== false) {
                            $rowStr .=
                                "\x24\x28\x22\x23\x22\x20\x2b\x20\x69\164\145\155\x2e\x69\144\x29\x2e\x72\145\155\157\x76\145\103\x6c\141\163\163\50\42\x75\151\55\x77\151\144\147\145\164\x2d\x63\157\156\x74\x65\156\164\42\51\x3b";
                        }
                        $rowStr .=
                            "\44\50\42\x23\42\40\53\x20\151\164\145\x6d\x2e\151\144\x29\56\x63\163\x73\50\x22" .
                            $key .
                            "\42\54\x22" .
                            $value .
                            "\42\51\73" .
                            "\12";
                    }
                    $rowStr .= "\12" . "\175\x20\175";
                }
            }
            if (!empty($cellStr) || !empty($rowStr)) {
                echo "\x6c\x6f\x61\144\x43\157\x6d\x70\x6c\145\164\x65\72\x20\146\x75\x6e\143\x74\x69\157\156\x28\x64\x61\164\x61\x29\x7b\12\x20\x20\40\x20\40\x20\40\x20\40\x20\40\40\40\x20\40\40\40\40\40\40\40\40\40\40\151\x66\50\44\50\42\43" .
                    $this->jq_gridName .
                    "\x22\x29\x2e\x67\x65\x74\107\x72\x69\x64\x50\141\162\x61\x6d\50\x22\162\145\143\x63\157\x75\x6e\x74\x22\x29\x20\41\x3d\40\x30\x29\173\44\56\x65\141\143\x68\x28\x64\141\164\x61\56\x72\x6f\167\163\54\x66\165\156\x63\x74\151\x6f\156\50\151\x2c\151\164\x65\155\x29\x7b" .
                    $rowStr .
                    $cellStr .
                    "\x20\x7d\51\x7d\73\12\40\40\x20\40\40\x20\x20\x20\40\x20\40\40\40\40\40\x20\175\54";
            }
        }
    }
    private function get_beforeShowForm_readonlyattr()
    {
        $readonlyattr =
            "\x62\x65\146\157\x72\145\x53\x68\x6f\167\106\x6f\x72\x6d\x3a\40\146\x75\x6e\x63\x74\x69\157\156\50\146\x72\155\x29\x20\x7b";
        foreach ($this->col_readonly as $key => $value) {
            $readonlyattr .=
                "\44\50\x22\43" .
                $value .
                "\x22\51\56\x61\x74\x74\x72\x28\x22\162\x65\x61\x64\157\x6e\x6c\171\x22\54\x22\x72\145\x61\144\157\156\x6c\171\42\51\x3b";
        }
        $readonlyattr .= "\x20\175" . "\xa";
        return $readonlyattr;
    }
    private function generate_condition($colIndex, $condition, $value)
    {
        $ret = "";
        switch ($condition) {
            case "\x65\161":
                $ret =
                    "\xa" .
                    "\x69\146\x20\50\151\x74\145\x6d\56\143\x65\x6c\154\x5b" .
                    $colIndex .
                    "\135\x20\75\75\x20\42" .
                    $value .
                    "\42\51\40\173" .
                    "\12";
                break;
            case "\x6e\145":
                $ret =
                    "\xa" .
                    "\151\x66\40\50\151\x74\145\155\56\143\x65\154\x6c\133" .
                    $colIndex .
                    "\x5d\40\41\75\x20\42" .
                    $value .
                    "\x22\x29\x20\x7b" .
                    "\12";
                break;
            case "\x6c\164":
                $ret =
                    "\12" .
                    "\151\146\40\x28\x69\164\145\x6d\x2e\x63\145\x6c\154\133" .
                    $colIndex .
                    "\x5d\x20\x3c\x20" .
                    $value .
                    "\x29\x20\x7b" .
                    "\xa";
                break;
            case "\154\x65":
                $ret =
                    "\xa" .
                    "\151\x66\x20\x28\x69\x74\145\155\x2e\143\x65\154\154\133" .
                    $colIndex .
                    "\x5d\40\74\75\40" .
                    $value .
                    "\51\x20\x7b" .
                    "\xa";
                break;
            case "\147\x74":
                $ret =
                    "\xa" .
                    "\x69\146\40\50\151\164\x65\155\56\x63\145\x6c\x6c\x5b" .
                    $colIndex .
                    "\135\40\76\x20" .
                    $value .
                    "\51\x20\173" .
                    "\xa";
                break;
            case "\147\145":
                $ret =
                    "\xa" .
                    "\x69\146\x20\50\x69\x74\x65\x6d\56\143\x65\154\154\x5b" .
                    $colIndex .
                    "\x5d\x20\x3e\x3d\40\x22" .
                    $value .
                    "\x22\x29\x20\x7b" .
                    "\12";
                break;
            case "\143\x6e":
                $ret =
                    "\xa" .
                    "\x69\x66\40\50\151\x74\x65\155\56\143\145\154\154\x5b" .
                    $colIndex .
                    "\135\56\x69\x6e\144\145\170\117\x66\50\x22" .
                    $value .
                    "\42\51\41\75\x2d\61\x29\40\173" .
                    "\xa";
                break;
            case "\156\143":
                $ret =
                    "\xa" .
                    "\x69\146\40\50\151\x74\145\155\56\x63\145\154\x6c\133" .
                    $colIndex .
                    "\135\56\x69\156\144\x65\x78\x4f\x66\50\x22" .
                    $value .
                    "\42\51\x3d\x3d\x2d\x31\51\40\173" .
                    "\12";
                break;
            case "\142\167":
                $ret =
                    "\12" .
                    "\x69\146\40\50\x69\x74\x65\155\x2e\x63\145\x6c\x6c\133" .
                    $colIndex .
                    "\x5d\x2e\151\156\144\x65\170\117\146\50\x22" .
                    $value .
                    "\42\x29\75\x3d\x30\51\40\173" .
                    "\xa";
                break;
            case "\x62\156":
                $ret =
                    "\xa" .
                    "\x69\x66\40\x28\x69\164\x65\155\x2e\x63\145\154\x6c\133" .
                    $colIndex .
                    "\135\x2e\x69\156\x64\145\170\x4f\x66\x28\x22" .
                    $value .
                    "\42\x29\41\x3d\x30\x29\40\173" .
                    "\xa";
                break;
            case "\x65\x77":
                $ret =
                    "\12" .
                    "\x69\x66\x20\50\x69\164\x65\x6d\56\x63\x65\154\154\133" .
                    $colIndex .
                    "\135\56\x73\165\142\163\164\162\50\x2d\61\x29\x3d\75\x3d\x22" .
                    $value .
                    "\x22\x29\x20\x7b" .
                    "\xa";
                break;
            case "\145\x6e":
                $ret =
                    "\12" .
                    "\151\x66\40\x28\x69\x74\145\x6d\56\143\x65\154\154\133" .
                    $colIndex .
                    "\135\56\x73\x75\142\x73\164\162\x28\55\x31\51\x21\x3d\75\42" .
                    $value .
                    "\42\51\x20\x7b" .
                    "\12";
                break;
        }
        return $ret;
    }
    private function display_subgrid(&$cnt)
    {
        if ($this->obj_subgrid != null) {
            echo "\163\x75\x62\x47\x72\x69\144\x3a\40\164\162\x75\x65\54" .
                "\12";
            echo "\163\165\142\x47\162\151\x64\122\157\167\x45\170\x70\141\156\x64\x65\144\72\x20\x66\x75\156\x63\164\151\x6f\156\50\x73\x75\x62\147\162\x69\144\x5f\151\x64" .
                $cnt .
                "\x2c\40\162\x6f\167\137\151\x64" .
                $cnt .
                "\x29\x20\173\12\x20\40\x20\x20\40\x20\40\40\x20\x20\x20\40\x20\x20\x20\x20\40\40\40\x20\x76\x61\x72\40\163\x75\x62\x67\x72\x69\144\137\164\141\142\x6c\145\x5f\151\144" .
                $cnt .
                "\x2c\x20\x70\x61\147\x65\x72\137\x69\x64" .
                $cnt .
                "\73\12\40\x20\40\40\40\x20\x20\x20\x20\x20\40\40\40\40\x20\40\x20\x20\x20\40\x73\x75\142\x67\x72\x69\x64\x5f\x74\141\142\x6c\145\137\x69\144" .
                $cnt .
                "\x20\75\40\163\165\142\147\162\151\144\x5f\x69\x64" .
                $cnt .
                "\x2b\x22\x5f\164\x22\x3b\12\40\x20\x20\40\x20\x20\x20\x20\x20\40\x20\40\40\x20\x20\40\40\40\x20\x20\x70\x61\147\x65\x72\x5f\151\x64" .
                $cnt .
                "\40\x3d\40\x22\x70\x5f\42\x2b\163\165\142\147\162\x69\x64\137\164\141\142\x6c\x65\x5f\x69\144" .
                $cnt .
                "\73" .
                "\12";
            echo "\x20\40\x24\50\x22\x23\x22\x2b\x73\x75\142\147\x72\151\144\x5f\151\x64" .
                $cnt .
                "\51\56\150\164\155\x6c\50\x22\x3c\164\x61\142\x6c\x65\x20\x69\144\x3d\x27\42\53\163\x75\x62\147\162\151\x64\137\x74\141\x62\x6c\145\137\151\x64" .
                $cnt .
                "\x2b\42\47\40\x63\154\x61\163\x73\75\47\163\143\162\x6f\x6c\154\47\76\x3c\x2f\164\x61\x62\154\x65\x3e\x3c\144\x69\x76\40\x69\x64\75\47\42\x2b\x70\x61\147\x65\x72\137\x69\144" .
                $cnt .
                "\53\x22\x27\x20\143\x6c\x61\x73\163\75\x27\163\x63\x72\157\154\154\47\x3e\x3c\x2f\x64\151\x76\x3e\x22\x29\73" .
                "\xa";
            echo "\x20\40\x6a\x51\165\145\x72\171\x28\42\x23\42\53\x73\165\142\147\x72\x69\x64\137\164\141\142\x6c\145\x5f\x69\x64" .
                $cnt .
                "\51\56\152\161\107\x72\x69\144\50\x7b\40" .
                "\12";
            $this->obj_subgrid->set_jq_url(
                $this->obj_subgrid->get_jq_url() .
                    "\x2b\x72\157\x77\137\151\144" .
                    $cnt,
                false
            );
            $this->obj_subgrid->set_jq_pagerName(
                "\x70\x61\x67\x65\x72\x5f\x69\x64" . $cnt,
                false
            );
            $this->obj_subgrid->set_multiselect(false);
            $this->obj_subgrid->set_dimension($this->jq_width - 100);
            $this->obj_subgrid->display_properties_main();
            if ($this->obj_subgrid->obj_subgrid != null) {
                $cnt++;
                $obj_sg = $this->obj_subgrid;
                $obj_sg->display_subgrid($cnt);
                $cnt--;
            }
            echo "\40\40\175\x29\73\x20\x2f\x2f\x20\145\156\144\40\x6f\146\40\163\165\142\x67\x72\151\144\137\164\141\142\x6c\x65\x5f\151\x64" .
                $cnt .
                "\40\163\165\142\147\x72\x69\x64" .
                "\12";
            echo $this->obj_subgrid->col_custom . "\12";
            echo "\x6a\121\x75\x65\x72\x79\x28\x22\43\x22\x2b\163\x75\142\x67\x72\151\x64\137\x74\x61\x62\154\x65\x5f\x69\144" .
                $cnt .
                "\51\x2e\x6a\x71\x47\162\x69\144\x28\42\x6e\x61\166\107\162\151\x64\x22\x2c\42\43\x22\x2b\x70\141\x67\x65\162\137\x69\144" .
                $cnt .
                "\x2c" .
                "\173\x65\144\x69\164\72" .
                (strrpos($this->obj_subgrid->edit_options, "\125") !== false &&
                $this->obj_subgrid->edit_mode != "\111\116\114\x49\116\x45"
                    ? "\x74\x72\165\145"
                    : "\146\141\x6c\x73\x65") .
                "\x2c\141\x64\x64\72" .
                (strrpos($this->obj_subgrid->edit_options, "\103") !== false
                    ? "\164\162\x75\145"
                    : "\x66\x61\154\163\x65") .
                "\54\144\x65\154\x3a" .
                (strrpos($this->obj_subgrid->edit_options, "\104") !== false
                    ? "\x74\x72\x75\x65"
                    : "\146\141\x6c\x73\x65") .
                "\54\166\x69\x65\x77\72" .
                (strrpos($this->obj_subgrid->edit_options, "\x52") !== false &&
                $this->obj_subgrid->edit_mode != "\111\x4e\x4c\111\x4e\105"
                    ? "\x74\x72\x75\x65"
                    : "\x66\x61\x6c\x73\x65") .
                "\x2c\163\145\x61\x72\143\x68\x3a\146\x61\154\x73\145" .
                "\x2c\145\x78\143\145\154\72" .
                ($this->obj_subgrid->export_type != null
                    ? "\x74\162\165\145"
                    : "\x66\x61\154\x73\x65") .
                "\175\51\x20" .
                "\12";
            echo "\175\x2c\x20\x2f\57\40\145\x6e\144\x20\157\x66\40\163\x75\142\107\x72\x69\144\x52\x6f\167\105\x78\x70\x61\x6e\x64\x65\144" .
                "\12";
            echo "\x73\x75\142\x47\x72\x69\144\122\x6f\x77\103\157\x6c\x61\160\163\145\144\x3a\40\x66\165\x6e\x63\x74\151\157\x6e\x28\x73\165\142\147\162\151\144\137\x69\144" .
                $cnt .
                "\54\40\162\x6f\x77\x5f\x69\144" .
                $cnt .
                "\x29\x7b\175\x2c";
        }
    }
    private function display_masterdetail()
    {
        $md_onselectrow = "";
        if ($this->obj_md != null) {
            $md_onselectrow =
                "\x66\x75\x6e\143\x74\x69\x6f\156\x28\x73\x74\x61\164\x75\163\x2c\40\x69\x64\x73\x29\40\x7b\40\40\40\40\40\x20\x20\40\40\40\x20\40\xa\x9\11\11\11\x9\57\x2f\x20\143\157\x6e\x73\157\x6c\145\x2e\154\157\147\50\x69\144\x73\51\x3b\12\x20\x20\40\40\x20\40\x20\40\x20\x20\x20\40\x20\40\40\40\x20\x20\x20\x20\151\146\50\151\x64\163\x20\x3d\75\x20\x6e\165\x6c\x6c\x29\40\x7b\40\40\x20\40\40\x20\x20\x20\40\40\40\x20\40\x20\40\40\40\40\x20\40\40\x20\x20\40\12\40\40\40\40\x20\x20\x20\x20\x20\40\40\40\40\x20\x20\40\x20\x20\x20\x20\40\40\40\x20\x69\144\163\x3d\x30\x3b";
            for ($i = 0; $i < count($this->obj_md); $i++) {
                $md_onselectrow .=
                    "\x76\141\162\x20\155\x67\162\151\x64\x20\75\x20\x24\50\x22\43" .
                    $this->jq_gridName .
                    "\x22\51\x3b\xa\11\11\x9\11\11\x9\x9\x76\x61\162\x20\163\145\x6c\137\151\144\40\x3d\x20\155\147\x72\151\144\x2e\x6a\161\x47\x72\x69\144\x28\x22\x67\145\x74\x47\x72\151\x64\x50\141\162\x61\x6d\42\54\x20\42\x73\x65\154\162\x6f\167\42\x29\73\xa\11\11\x9\x9\x9\x9\x9\x76\141\x72\40\x66\153\145\x79\x5f\x76\x61\154\x75\x65\40\x3d\40\155\147\x72\151\144\56\x6a\x71\107\x72\x69\x64\x28\x22\x67\145\x74\103\145\154\x6c\x22\x2c\40\x73\145\x6c\x5f\151\x64\x2c\x20\x22" .
                    $this->obj_md[$i]->get_sql_fkey() .
                    "\42\x29\73\12\11\11\x9\11\x9\11\11\57\x2f\40\x63\x6f\156\x73\x6f\154\145\x2e\x6c\157\147\x28\146\x6b\x65\171\137\x76\x61\x6c\165\145\x29\x3b\xa\11\x9\x9\x9\x9\11\11\x6a\121\165\x65\x72\x79\x28\x22\x23" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\42\x29\56\x6a\161\x47\162\151\144\50\x22\163\x65\x74\x47\x72\x69\x64\120\x61\x72\x61\x6d\42\x2c\40\173\x65\144\151\164\165\x72\154\x3a\42" .
                    ABS_PATH .
                    "\57" .
                    $this->edit_file .
                    "\77\144\164\75" .
                    $this->jq_datatype .
                    "\x26\x67\x6e\75" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\46\163\162\x63\x3d\x6d\x64\46\x66\x6b\145\171\75" .
                    $this->obj_md[$i]->get_sql_fkey() .
                    "\x26\146\x6b\145\x79\x5f\x76\x61\154\x75\x65\x3d\42\x2b\146\153\145\171\x5f\x76\141\x6c\165\145\x7d\51\x3b" .
                    "\12";
                $md_onselectrow .=
                    "\12" .
                    "\x69\146\50\x6a\121\165\145\x72\171\50\x22\43" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\42\51\x2e\152\x71\107\x72\151\x64\50\42\x67\145\x74\107\162\x69\x64\x50\x61\x72\x61\x6d\x22\54\x22\162\145\143\157\x72\144\x73\42\51\x20\x3e\x30\40\x29\12\x20\40\40\x20\40\x20\40\x20\x20\x20\x20\40\40\40\40\40\x20\40\40\x20\x20\40\x20\x20\40\x20\x20\40\x7b\xa\x20\40\40\x20\40\40\40\x20\x20\x20\40\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\40\40\x20\40\40\x20\x20\40\40\x20\x6a\x51\165\x65\x72\171\50\x22\43" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\42\51\x2e\x6a\x71\x47\x72\151\144\50\x22\163\x65\164\107\x72\151\144\120\141\162\141\x6d\x22\x2c\x7b\x75\x72\x6c\x3a\x22" .
                    ABS_PATH .
                    "\57\155\x61\x73\164\145\162\144\x65\164\141\151\x6c\56\x70\150\x70\77\144\164\x3d" .
                    $this->jq_datatype .
                    "\46\147\156\x3d" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x26\146\x6b\x65\171\x5f\166\141\x6c\x75\x65\x3d\x22\x2b\x66\153\145\x79\x5f\166\141\x6c\165\145\x2b\x22\x26" .
                    JQGRID_ROWID_KEY .
                    "\75\42\x2b\x69\x64\163\54\160\141\147\x65\x3a\x31\175\51\x2e\x74\162\x69\x67\x67\x65\x72\50\x22\162\x65\154\x6f\141\144\107\x72\x69\144\x22\51\73\xa\x20\40\x20\40\x20\x20\40\40\x20\x20\x20\x20\40\x20\x20\40\x20\40\40\x20\40\x20\40\x20\x20\40\40\40\x7d\12\40\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\40\x20\40\x20\x20\x20\x20\40\40\x20\40\x20\x20\40\40\40\x65\x6c\x73\145\40\x7b\12\x20\x20\x20\40\x20\x20\x20\40\x20\40\40\40\x20\x20\40\x20\x20\40\40\x20\x20\x20\40\40\x20\40\x20\x20\x20\40\40\40\152\121\x75\145\x72\171\50\42\43" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\42\51\x2e\152\x71\x47\162\151\144\x28\x22\163\145\164\107\x72\x69\144\120\x61\x72\x61\155\42\x2c\x7b\x75\162\x6c\x3a\x22" .
                    ABS_PATH .
                    "\x2f\155\141\163\164\x65\x72\144\x65\x74\x61\x69\x6c\x2e\x70\150\x70\x3f\x64\x74\x3d" .
                    $this->jq_datatype .
                    "\x26\x67\x6e\x3d" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x26\146\153\x65\171\x5f\x76\141\x6c\165\145\x3d\42\x2b\146\153\x65\171\137\x76\141\x6c\165\145\53\42\x26" .
                    JQGRID_ROWID_KEY .
                    "\75\42\x2b\151\x64\x73\54\160\x61\147\x65\72\61\175\x29\x2e\164\162\151\147\147\x65\162\x28\x22\162\x65\154\157\x61\x64\107\162\151\144\42\51\73\xa\x20\40\x20\40\40\x20\40\x20\x20\40\x20\40\40\x20\x20\40\40\x20\x20\40\40\x20\x20\40\x20\40\40\40\x7d" .
                    "\xa";
            }
            $md_onselectrow .= "\x20\x7d\x20\145\x6c\163\x65\x20\173";
            for ($i = 0; $i < count($this->obj_md); $i++) {
                $md_onselectrow .=
                    "\166\141\162\40\155\x67\162\151\x64\40\75\x20\x24\50\42\x23" .
                    $this->jq_gridName .
                    "\x22\x29\x3b\xa\x9\x9\11\x9\x9\11\11\11\166\141\x72\40\163\145\154\x5f\151\x64\40\x3d\x20\x6d\147\x72\151\x64\x2e\152\161\107\162\x69\x64\50\x22\x67\145\x74\x47\162\151\144\x50\141\x72\x61\x6d\x22\54\40\42\x73\x65\154\x72\157\x77\42\x29\73\12\x9\11\x9\11\x9\11\x9\x9\166\141\x72\x20\146\153\x65\x79\137\166\x61\154\x75\x65\40\75\40\155\x67\162\151\144\56\152\161\107\162\x69\144\x28\x22\147\x65\164\x43\145\154\x6c\x22\54\40\163\145\x6c\137\151\144\x2c\x20\x22" .
                    $this->obj_md[$i]->get_sql_fkey() .
                    "\x22\x29\x3b\xa\11\11\11\11\11\x9\11\x9\x2f\x2f\x20\x63\157\156\x73\157\x6c\145\x2e\154\x6f\x67\50\146\153\x65\x79\x5f\x76\x61\154\x75\x65\x29\73\12\x9\11\x9\x9\11\11\11\x9\152\x51\x75\145\x72\171\50\42\43" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\42\51\56\152\161\107\x72\151\144\50\x22\x73\x65\x74\107\162\x69\x64\120\141\x72\x61\x6d\42\54\40\x7b\x65\144\x69\x74\165\x72\x6c\72\x22" .
                    ABS_PATH .
                    "\57" .
                    $this->edit_file .
                    "\77\x64\x74\x3d" .
                    $this->jq_datatype .
                    "\46\x67\156\x3d" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\46\163\x72\143\75\155\x64\x26\146\153\145\x79\x3d" .
                    $this->obj_md[$i]->get_sql_fkey() .
                    "\x26\146\x6b\x65\x79\x5f\166\x61\x6c\165\x65\x3d\42\x2b\x66\153\145\171\x5f\x76\141\154\x75\145\175\x29\x3b" .
                    "\12";
                $md_onselectrow .=
                    "\xa" .
                    "\151\146\x28\x6a\x51\165\x65\x72\171\x28\x22\x23" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x22\51\x2e\152\x71\x47\x72\151\144\x28\x22\147\145\x74\x47\162\x69\144\120\141\x72\x61\155\42\54\42\x72\x65\x63\x6f\162\x64\x73\x22\x29\x20\76\x30\40\x29\xa\x20\40\x20\x20\40\x20\40\x20\40\40\40\40\40\40\40\40\40\40\x20\40\40\x20\40\x20\40\40\x20\40\173\40\40\40\40\x20\x20\x20\x20\40\x20\40\x20\40\x20\x20\x20\40\40\40\x20\40\x20\x20\40\x20\40\40\40\x20\x20\x20\x20\xa\40\40\40\x20\40\40\40\x20\x20\x20\x20\40\x20\40\40\40\x20\40\40\40\x20\x20\40\40\40\40\x20\40\40\40\40\40\152\121\x75\145\162\x79\x28\42\x23" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x22\51\56\x6a\x71\107\x72\x69\x64\50\x22\163\145\x74\107\x72\x69\144\x50\141\x72\x61\x6d\x22\x2c\x7b\x75\x72\154\x3a\x22" .
                    ABS_PATH .
                    "\x2f\155\141\x73\x74\145\x72\x64\x65\x74\x61\151\x6c\x2e\160\x68\160\x3f\x64\164\75" .
                    $this->jq_datatype .
                    "\x26\147\x6e\x3d" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x26\x66\153\x65\171\x5f\166\141\x6c\165\x65\x3d\42\53\x66\153\145\171\x5f\166\141\x6c\x75\x65\x2b\42\x26" .
                    JQGRID_ROWID_KEY .
                    "\x3d\42\53\151\x64\x73\54\x70\141\147\145\x3a\61\175\x29\56\x74\x72\151\147\x67\145\x72\50\x22\162\x65\154\x6f\141\x64\x47\162\151\x64\x22\x29\x3b\xa\x20\40\x20\x20\40\40\x20\40\40\x20\40\x20\40\x20\x20\40\40\x20\40\40\40\40\40\x20\40\40\x20\x20\x7d\xa\40\x20\40\x20\40\40\40\x20\40\x20\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\40\40\40\x20\x20\40\145\x6c\163\145\40\x7b\x20\40\x20\40\x20\x20\40\x20\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\40\x20\40\40\x20\40\40\x20\x20\x20\40\40\x20\xa\x20\x20\x20\40\40\x20\40\x20\40\40\x20\40\x20\x20\40\40\40\x20\40\40\40\x20\40\40\x20\40\x20\x20\x20\x20\x20\x20\152\121\x75\x65\x72\171\50\42\43" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x22\51\x2e\152\161\x47\x72\151\144\50\x22\x73\145\164\x47\162\x69\144\120\x61\x72\141\155\x22\54\x7b\165\162\x6c\72\x22" .
                    ABS_PATH .
                    "\x2f\x6d\141\x73\164\145\x72\x64\145\164\x61\151\154\56\x70\x68\x70\77\x64\164\x3d" .
                    $this->jq_datatype .
                    "\x26\147\x6e\x3d" .
                    $this->obj_md[$i]->get_jq_gridName() .
                    "\x26\x66\153\145\x79\x5f\x76\x61\154\x75\x65\x3d\x22\x2b\146\153\145\171\x5f\x76\141\x6c\165\145\x2b\42\46" .
                    JQGRID_ROWID_KEY .
                    "\75\x22\53\x69\x64\x73\x2c\x70\141\x67\x65\72\x31\175\x29\56\x74\x72\x69\147\x67\145\162\50\42\162\x65\154\x6f\x61\x64\x47\162\151\144\42\x29\73\12\40\x20\x20\x20\40\x20\40\40\x20\40\40\40\40\40\x20\40\x20\x20\40\40\x20\x20\40\40\40\40\x20\x20\x7d";
            }
            $md_onselectrow .= "\x7d\x7d" . "\12";
            $this->script_ude_handler .=
                "\44\x28\x22\43" .
                $this->jq_gridName .
                "\42\x29\x2e\x62\x69\156\x64\50\42\152\161\107\x72\151\144\123\145\154\145\x63\x74\122\157\167\x22\54\40" .
                $md_onselectrow .
                "\51\x3b" .
                "\xa";
        } else {
        }
    }
    private function display_properties_end()
    {
        echo "\x6c\157\x61\x64\164\x65\170\x74\72\42" .
            $this->jq_loadtext .
            "\x22\12";
        echo "\175\x29\73" . "\12";
    }
    private function display_extended_properties()
    {
        if ($this->kb_nav) {
            echo "\x24\50\42\x23" .
                $this->jq_gridName .
                "\42\51\56\152\x71\x47\x72\x69\144\x28\x22\x62\151\156\144\x4b\145\171\163\x22\54\40\173\12\11\11\11\11\11\157\x6e\x45\x6e\164\145\x72\72\x66\165\156\x63\x74\x69\157\156\50\x20\162\157\167\151\x64\40\x29\40\173\xa\x9\x9\x9\x9\11\x20\40\40\40\x2f\57\141\x6c\145\x72\x74\x28\42\162\157\167\151\x64\x3a\40\x22\x2b\x72\157\167\151\x64\x29\73\x20\x2f\x2f\40\157\156\154\x79\40\x67\x65\164\x73\x20\x63\x61\x6c\x6c\145\x64\x20\x77\150\x65\x6e\x20\153\x65\x79\40\160\x72\145\x73\163\x65\x64\x20\141\164\40\x74\x68\145\40\x52\x4f\127\40\x4c\105\x56\105\114\12\12\11\11\11\11\11\11\x2f\x2f\40\162\145\163\164\x6f\162\145\40\146\157\x63\165\x73\12\11\x9\x9\x9\11\x9\57\57\40\124\x4f\x44\x4f\40\x2d\40\71\57\x32\x37\57\62\60\61\x33\x20\x2d\x20\x52\151\x63\x68\x61\162\x64\x3a\40\x54\150\151\163\40\x66\165\x6e\143\164\151\x6f\156\x20\x69\x73\x20\160\162\x6f\x62\x61\x62\154\171\40\x6e\x65\166\145\162\x20\147\x65\164\163\40\143\141\x6c\x6c\145\x64\x20\55\x20\156\x65\x65\144\x20\x74\157\x20\x69\x6e\166\145\x73\x74\x69\147\141\x74\145\xa\11\x9\x9\x9\11\11\x24\x28\42\43" .
                $this->jq_gridName .
                "\x22\x29\x2e\x6a\x71\x47\162\x69\x64\50\x22\145\x64\x69\164\122\157\x77\42\x2c\x72\x6f\x77\151\144\x2c\x74\162\165\x65\x2c\156\x75\x6c\x6c\54\x20\x6e\165\x6c\x6c\54\40\156\x75\x6c\x6c\54\x20\x7b\x7d\54\x66\x75\156\x63\164\x69\157\156\50\x29\x7b\12\x9\11\x9\11\11\x9\x9\163\145\x74\124\x69\155\145\x6f\165\164\50\x66\165\156\143\164\x69\157\156\50\x29\173\12\11\x9\x9\x9\x9\x9\x9\11\44\50\x22\43" .
                $this->jq_gridName .
                "\x22\x29\56\146\x6f\143\165\x73\x28\51\73\xa\x9\x9\x9\11\11\x9\11\175\54\x31\60\60\x29\73\12\11\11\x9\11\x9\x9\175\51\x3b\xa\x9\11\11\11\x9\175\xa\11\x9\11\x9\x7d\51\73" .
                "\xa";
        }
        if (!empty($this->col_frozen)) {
            echo "\x24\50\x22\x23" .
                $this->jq_gridName .
                "\x22\x29\56\152\x71\x47\x72\151\x64\x28\42\163\x65\x74\106\x72\x6f\172\145\x6e\103\157\154\x75\155\156\163\42\x29\73" .
                "\12";
        }
    }
    private function display_toolbar()
    {
        switch ($this->edit_mode) {
            case "\x46\x4f\x52\x4d":
            case "\111\x4e\114\111\116\105":
                echo "\x6a\121\165\x65\x72\171\50\42\43" .
                    $this->jq_gridName .
                    "\x22\x29\56\152\161\107\162\x69\x64\50\x22\156\x61\166\107\x72\x69\x64\x22\x2c\40" .
                    $this->jq_pagerName .
                    "\54\xa";
                echo "\173\x65\x64\151\164\x3a" .
                    (strrpos($this->edit_options, "\125") !== false &&
                    $this->edit_mode != "\x49\116\x4c\111\x4e\x45"
                        ? "\164\x72\x75\x65"
                        : "\146\x61\154\163\145") .
                    "\54\141\x64\x64\72" .
                    ($this->edit_mode == "\x49\116\114\111\x4e\105"
                        ? "\x66\141\154\x73\145"
                        : (strrpos($this->edit_options, "\x43") !== false
                            ? "\164\x72\x75\145"
                            : "\x66\141\154\x73\145")) .
                    "\54\144\x65\154\72" .
                    (strrpos($this->edit_options, "\104") !== false
                        ? "\x74\x72\165\x65"
                        : "\x66\x61\x6c\x73\145") .
                    "\x2c\166\151\145\x77\x3a" .
                    (strrpos($this->edit_options, "\x52") !== false &&
                    $this->edit_mode != "\111\x4e\x4c\x49\116\x45"
                        ? "\164\x72\165\x65"
                        : "\146\x61\154\x73\x65") .
                    "\54\143\154\157\x6e\x65\x54\x6f\x54\157\160\x3a\164\x72\165\145" .
                    "\x2c\163\x65\141\x72\x63\150\x3a\146\x61\x6c\x73\145" .
                    "\x2c\145\x78\143\145\154\72" .
                    ($this->export_type != null
                        ? "\x74\x72\x75\145"
                        : "\146\141\154\163\x65") .
                    "\175\54\x20";
                echo "\x7b\11\11\11\57\x2f\x20\55\x2d\55\55\x2d\55\55\x2d\x2d\40\x65\x64\151\x74\40\x6f\160\x74\x69\157\x6e\163\x20\55\x2d\x2d\x2d\x2d\55\x2d\55\x2d" .
                    "\12";
                echo $this->script_editEvtHandler .
                    $this->get_beforeShowForm_readonlyattr();
                echo "\x7d\54" . "\xa";
                echo "\x7b\x9\x9\x9\x2f\x2f\40\55\55\55\x2d\x2d\x2d\x2d\x2d\55\x20\x61\x64\x64\40\157\160\164\151\x6f\x6e\163\x20\x2d\55\55\x2d\x2d\x2d\x2d\x2d\55\12\11\x9\11\11\11\x9\x9\x9\x63\x6c\x6f\x73\145\x41\x66\164\145\x72\101\144\144\x3a\164\x72\165\x65\54\xa\x20\40\x20\40\x20\40\x20\x20\40\40\40\x20\x20\x20\x20\x20\x9\11\x9\x9\142\x6f\164\x74\157\x6d\151\x6e\146\157\x3a\x22\52\40\162\x65\x71\x75\151\162\x65\x64\42\x2c\12\x20\x20\40\40\40\40\x20\40\x20\40\x20\x20\40\x20\x20\40\x20\40\40\x20\40\x20\40\x20\40\x20\x20\40\40\x20\x20\40\x76\x69\x65\167\x50\141\x67\145\x72\102\165\164\164\x6f\156\x73\72\164\x72\x75\x65\x2c\12\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\40\40\x20\40\x20\x20\40\40\x20\x20\40\x20\x20\x61\146\x74\145\162\x43\x6f\155\x70\154\x65\164\x65\x3a\x20\x66\165\x6e\143\x74\x69\157\x6e\x20\50\162\x65\x73\160\x6f\156\163\x65\x2c\40\x70\157\163\x74\x64\x61\164\141\x2c\40\x66\157\162\155\x69\144\x29\40\x7b\x20\40\x2f\x2f\40\141\165\164\x6f\x20\x72\x65\154\x6f\x61\x64\xa\x20\x20\x20\x20\40\x20\40\40\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\40\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\40\40\40\x20\40\x20\40\x20\40\x20\x20\166\x61\x72\40\44\x73\x65\x6c\x66\x20\x3d\x20\x24\50\x74\150\x69\x73\51\x3b\xa\x20\x20\40\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\40\x20\40\40\x20\40\40\40\40\x20\x20\40\x20\40\x20\x20\x20\40\x20\40\x20\40\40\40\40\x20\40\40\x20\x73\145\164\x54\x69\155\145\157\165\164\x28\x66\x75\156\x63\x74\151\157\x6e\x20\x28\x29\x20\x7b\xa\40\x20\x20\40\x20\40\x20\x20\x20\x20\x20\x20\x20\40\x20\40\x20\x20\40\x20\40\x20\40\40\x20\x20\40\40\x20\40\x20\40\x20\40\x20\40\x20\x20\40\40\x20\40\x20\40\40\40\40\x20\x24\x73\145\x6c\146\56\164\162\x69\147\147\x65\162\50\42\x72\145\154\157\141\x64\107\162\151\144\x22\51\x3b\xa\x20\40\x20\x20\40\40\x20\40\40\x20\x20\x20\40\x20\x20\40\x20\40\40\40\40\x20\x20\x20\x20\x20\40\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\x20\40\x20\x20\40\40\x7d\54\x20\x35\60\51\73\12\40\40\40\40\x20\40\x20\x20\x20\40\40\40\40\x20\x20\x20\40\40\x20\40\40\40\x20\40\40\x20\40\40\x20\x20\40\40\x20\x20\40\x20\40\40\x20\40\40\175\x2c\12\40\x20\40\40\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x20\x20\40\40\40\40\x20\x20\x20\x20\40\142\145\x66\x6f\x72\145\123\150\157\x77\x46\157\x72\x6d\x3a\40\146\x75\x6e\143\x74\x69\157\156\50\146\x72\155\x29\x20\x7b";
                foreach ($this->col_readonly as $key => $value) {
                    echo "\x24\x28\42\x23" .
                        $value .
                        "\x22\x29\x2e\162\145\155\x6f\x76\145\x41\164\164\x72\x28\x22\162\x65\141\x64\x6f\156\154\x79\42\51\x3b";
                }
                echo "\x7d\x2c" . "\12";
                echo $this->script_editEvtHandler;
                echo "\x7d\x2c" . "\12";
                echo "\x7b\40\x20\x20\x2f\x2f\x20\x2d\x2d\55\x2d\x2d\55\55\55\x2d\x20\144\x65\154\x20\157\x70\x74\x69\x6f\x6e\x73\40\55\x2d\x2d\x2d\x2d\x2d\55\x2d\55\12\40\x20\40\40\x20\40\40\x20\40\x20\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\40\40\40\x20\x20\x20\40\x20\40\x20\162\145\x6c\x6f\141\144\101\146\x74\145\x72\x53\x75\142\x6d\x69\x74\x3a\146\141\154\x73\x65\x2c\xa\40\40\x20\x20\x20\40\40\40\40\40\x20\40\x20\40\x20\40\x20\40\x20\40\40\40\40\40\x20\40\40\x20\40\x20\x20\40\152\161\x4d\157\x64\x61\154\72\146\x61\154\163\x65\54\12\40\40\x20\x20\40\40\40\40\40\x20\40\40\40\x20\x20\x20\40\40\x20\40\40\x20\x20\x20\40\x20\40\x20\x20\x20\x20\x20\142\157\x74\164\x6f\x6d\151\x6e\146\157\x3a\42\x2a\40\162\x65\x71\165\151\x72\x65\144\42\x2c\xa\x20\40\x20\40\x20\40\40\40\40\x20\40\40\40\40\x20\x20\x20\x20\x20\x20\40\40\40\x20\40\x20\40\40\x20\x20\x20\40\143\154\x6f\x73\145\117\x6e\105\x73\x63\141\x70\145\72\164\x72\165\145\54\xa\x20\x20\40\x20\40\x20\x20\40\40\40\40\x20\40\40\x20\x20\40\40\x20\x20\x20\40\x20\40\x20\x20\x20\x20\40\x20\x20\40\141\x66\x74\145\x72\x43\x6f\x6d\x70\154\x65\x74\x65\x3a\40\x66\x75\x6e\x63\x74\x69\x6f\x6e\50\51\173\x7d\xa\x20\40\40\x20\40\40\40\40\x20\x20\x20\40\40\x20\40\x20\40\40\x20\x20\40\40\x20\x20\40\x20\x20\40\x7d\x2c\40\12\40\x20\x20\40\40\x20\40\x20\40\40\40\40\x20\x20\40\x20\40\x20\40\x20\40\40\40\x20\40\x20\40\40\x7b\12\x20\40\40\x20\x20\x20\x20\x20\40\40\40\x20\x20\x20\x20\x20\x20\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\40\40\x20\x2f\57\40\55\55\55\x2d\55\55\x2d\x2d\x2d\x20\166\151\145\x77\40\x6f\160\x74\x69\x6f\156\163\x20\55\x2d\55\55\55\55\55\55\x2d\40\40\x20\40\x20\40\40\xa\40\40\40\x20\40\x20\x20\x20\40\40\x20\40\x20\x20\40\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\40\x20\x20\40\40\156\141\x76\x6b\145\x79\x73\72\x20\x5b\146\x61\154\x73\145\54\63\70\54\x34\60\135\54\x20\xa\11\x9\x9\11\11\x9\x9\x9\150\145\151\147\150\x74\x3a\62\x35\x30\54\xa\11\x9\11\x9\x9\11\x9\x9\152\161\115\x6f\x64\141\x6c\x3a\146\141\154\x73\x65\54\xa\11\x9\11\x9\x9\x9\11\x9\162\145\x73\x69\x7a\x65\x3a\x74\162\x75\x65\54\xa\x9\11\x9\x9\x9\x9\x9\11\143\x6c\x6f\163\145\117\x6e\x45\x73\x63\141\x70\x65\72\164\162\x75\145\xa\x20\x20\40\x20\40\x20\x20\x20\x20\40\x20\x20\x20\x20\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\x20\x20\x7d\x2c\x20\12\40\40\x20\x20\40\40\x20\40\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\x20\40\40\x20\40\173\x63\x6c\157\163\x65\x4f\x6e\105\163\143\x61\160\145\x3a\x74\x72\x75\145\x7d\x20\x2f\57\x20\163\145\x61\x72\143\x68\x20\157\160\164\151\157\156\163\40\12\x20\x20\40\40\40\40\x20\x20\40\40\x20\40\40\40\x20\x20\x20\40\x20\x20\40\x20\x20\x20\40\x29\73" .
                    "\12";
                break;
            case "\x4e\x4f\x4e\x45":
                echo "\x6a\121\165\x65\162\x79\x28\x22\x23" .
                    $this->jq_gridName .
                    "\x22\51\x2e\x6a\x71\x47\162\x69\144\x28\x22\156\x61\x76\x47\162\151\x64\42\x2c\x20" .
                    $this->jq_pagerName .
                    "\54\12";
                echo "\x7b\x65\144\x69\x74\x3a\x66\x61\x6c\x73\145\x2c\141\144\144\72\x66\141\154\163\x65\x2c\144\145\154\x3a\x66\x61\154\x73\145\x2c\166\151\145\167\72\x66\x61\x6c\163\145" .
                    "\x2c\x73\145\141\162\x63\x68\72\146\141\x6c\163\145" .
                    "\54\x65\x78\143\145\x6c\x3a" .
                    ($this->export_type != null
                        ? "\164\x72\165\x65"
                        : "\146\x61\154\x73\x65") .
                    "\175\54\40\x7b\175\51" .
                    "\12";
                break;
        }
        if (
            $this->jqu_resize[
                "\x69\x73\137\x72\x65\x73\151\172\141\x62\x6c\x65"
            ]
        ) {
            echo "\152\x51\x75\145\162\x79\50\42\43" .
                $this->jq_gridName .
                "\x22\x29\56\x6a\161\107\162\x69\x64\50\x22\147\x72\x69\144\122\x65\x73\151\172\145\x22\x2c\x7b\x6d\151\156\x57\151\144\164\150\x3a" .
                $this->jqu_resize["\155\x69\x6e\137\167\x69\144\164\x68"] .
                "\54\x6d\151\156\110\x65\x69\x67\150\164\x3a" .
                $this->jqu_resize["\x6d\x69\x6e\x5f\x68\x65\x69\147\150\164"] .
                "\175\51\x3b" .
                "\12";
        }
        if ($this->has_tbarsearch) {
            echo "\x6a\x51\165\145\x72\171\x28\x22\x23" .
                $this->jq_gridName .
                "\42\x29\56\152\161\107\x72\x69\144\50\x22\x6e\x61\x76\x42\165\x74\164\157\156\101\x64\144\x22\x2c" .
                $this->jq_pagerName .
                "\x2c\173\x63\141\160\164\x69\157\156\72\x22\x22\x2c\x74\x69\164\154\x65\x3a\42\124\157\147\147\154\x65\40\x69\x6e\154\x69\156\x65\40\x73\145\141\x72\143\x68\x22\x2c\x20\142\165\164\x74\x6f\156\151\x63\157\156\x20\x3a\42\x75\x69\55\151\143\157\x6e\55\x73\x65\141\x72\x63\150\x22\54\12\40\x20\40\40\40\40\40\40\x20\x20\40\40\40\40\x20\x20\x20\40\x20\40\x20\x20\x20\x20\157\156\103\x6c\x69\143\x6b\x42\x75\x74\x74\157\x6e\72\146\x75\x6e\x63\x74\151\157\156\x28\51\x7b\xa\x20\40\40\40\x20\40\x20\x20\40\40\40\x20\40\40\x20\40\40\40\x20\x20\x20\x20\40\40\x20\40\x20\x20\x70\x68\x70\x47\x72\151\144\137" .
                $this->sql_table .
                "\133\60\135\x2e\x74\157\147\147\154\x65\124\157\x6f\154\x62\x61\x72\x28\51\x3b\12\40\40\x20\x20\40\40\40\40\40\x20\40\x20\x20\40\40\40\40\40\40\x20\x20\40\40\40\175\12\x20\x20\x20\40\40\40\40\40\x20\40\40\40\x20\x20\x20\x20\x20\40\x20\40\175\x29\73" .
                "\xa";
            echo "\152\x51\165\145\x72\171\50\42\43" .
                $this->jq_gridName .
                "\42\x29\x2e\152\161\x47\162\x69\x64\x28\x22\x66\x69\x6c\164\x65\162\x54\157\x6f\x6c\142\x61\x72\x22\54\40\x7b\163\145\x61\162\x63\150\117\156\x45\156\x74\x65\x72\x3a\40\x66\141\154\163\x65\54\x20\163\x74\x72\151\x6e\x67\122\145\x73\x75\x6c\164\72\x20\164\x72\x75\145\x2c\40\144\x65\x66\141\x75\154\x74\123\145\x61\x72\x63\x68\72\40\x22\143\x6e\42\175\x29\73" .
                "\xa";
            echo "\160\x68\160\107\x72\x69\x64\137" .
                $this->sql_table .
                "\133\60\135\x2e\x74\157\147\147\x6c\145\x54\x6f\x6f\154\x62\141\x72\x28\51\x3b" .
                "\xa";
        }
        if ($this->advanced_search) {
            echo "\x6a\121\165\x65\x72\x79\x28\x22\43" .
                $this->jq_gridName .
                "\x22\51\xa\40\40\x20\40\40\40\x20\x20\x20\40\x20\40\40\40\x20\40\56\x6e\x61\166\107\x72\x69\x64\50" .
                $this->jq_pagerName .
                "\54\x7b\145\x64\x69\164\72\x66\141\x6c\163\x65\x2c\x61\144\144\72\146\x61\154\163\145\54\x64\x65\154\72\x66\x61\154\x73\145\54\x73\x65\x61\x72\x63\x68\x3a\146\141\154\x73\x65\x2c\162\x65\x66\x72\x65\163\x68\72\x66\141\154\x73\145\175\51\12\x20\40\40\40\x20\x20\40\x20\x20\40\x20\x20\40\x20\x20\40\56\156\x61\166\102\x75\x74\164\157\x6e\x41\144\144\x28" .
                $this->jq_pagerName .
                "\x2c\x7b\12\40\40\x20\40\x20\40\x20\40\40\x20\40\x20\40\x20\40\x20\40\x20\x20\x20\143\141\x70\x74\151\x6f\156\x3a\x22\x22\x2c\40\12\40\x20\x20\40\40\x20\40\x20\40\x20\40\x20\x20\x20\x20\40\40\40\x20\x20\142\165\164\x74\x6f\x6e\151\x63\x6f\156\72\42\165\151\55\x69\143\157\x6e\55\x73\x65\141\x72\x63\150\42\54\x20\12\40\x20\40\40\40\x20\40\x20\40\40\x20\x20\40\40\x20\x20\40\x20\40\40\157\156\103\x6c\151\143\x6b\102\165\x74\164\157\x6e\72\x20\146\165\156\143\164\x69\x6f\156\x28\x29\x7b\x20\12\x20\x20\40\40\40\x20\40\x20\x20\40\x20\x20\x20\40\40\40\40\40\x20\x20\40\x20\40\x20\x6a\x51\165\145\x72\171\50\x22\43" .
                $this->jq_gridName .
                "\x22\x29\x2e\152\x71\107\x72\x69\144\50\x22\163\x65\x61\162\x63\150\x47\162\x69\x64\42\x2c\40\173\155\165\154\x74\151\160\x6c\145\123\x65\x61\x72\x63\150\x3a\x74\162\165\x65\175\x29\73\x20\40\40\40\x20\x20\x20\x20\x20\12\x20\40\40\x20\x20\40\40\x20\x20\40\40\40\x20\x20\x20\40\x7d\x2c\40\12\40\x20\40\x20\x20\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\160\x6f\163\151\164\151\x6f\156\x3a\x22\x66\151\x72\x73\x74\42\40\x20\40\40\40\x20\40\x20\40\40\xa\40\x20\40\x20\x20\40\40\40\x20\40\x20\x20\175\51\73" .
                "\xa";
        }
        if ($this->export_type != null) {
            echo "\152\121\x75\145\x72\171\x28\42\43" .
                $this->jq_gridName .
                "\42\51\56\152\161\107\x72\151\x64\x28\x22\156\141\166\x42\165\x74\x74\x6f\x6e\101\144\x64\42\x2c" .
                $this->jq_pagerName .
                "\x2c\x7b\143\141\160\x74\x69\x6f\156\x3a\42\x22\54\x74\x69\164\154\x65\72\42" .
                $this->export_type .
                "\42\x2c\xa\40\40\x20\x20\x20\40\40\40\40\40\x20\x20\x20\40\40\40\40\x20\40\x20\x20\40\x20\x20\157\156\x43\154\x69\x63\153\102\x75\x74\x74\x6f\156\72\146\165\x6e\x63\x74\x69\157\156\x28\145\51\x7b\12\x20\x20\x20\x20\40\40\x20\40\x20\40\x20\x20\40\x20\40\x20\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\164\162\x79\173\xa\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\40\x20\x20\40\40\x20\x20\x20\40\40\x20\40\x20\40\40\x6a\x51\x75\x65\x72\x79\50\x22\43" .
                $this->jq_gridName .
                "\42\51\56\152\161\107\162\151\144\50\x22\x65\x78\x63\x65\154\105\170\x70\x6f\x72\164\x22\54\173\165\162\154\x3a\x22" .
                $this->export_url .
                ($this->export_type != ""
                    ? "\x26\145\170\x70\x6f\x72\164\137\164\x79\160\x65\x3d" .
                        $this->export_type
                    : "") .
                "\x22\175\x29\73\12\x20\x20\40\40\40\x20\x20\x20\x20\x20\40\x20\40\40\x20\x20\40\x20\40\x20\40\40\40\x20\40\x20\40\x20\x7d\40\143\x61\x74\143\150\40\x28\145\51\x20\173\12\x20\x20\x20\40\40\x20\x20\40\40\x20\x20\40\40\x20\40\x20\40\40\40\x20\40\40\40\x20\x20\x20\40\x20\x20\x20\40\x20\167\x69\x6e\144\x6f\167\56\x6c\x6f\143\x61\x74\151\157\156\x3d\40\42" .
                $this->export_url .
                ($this->export_type != ""
                    ? "\x26\145\170\x70\157\x72\164\137\164\171\x70\x65\x3d" .
                        $this->export_type
                    : "") .
                "\42\73\12\40\x20\x20\40\x20\x20\40\40\x20\40\40\x20\40\40\x20\40\40\40\40\x20\40\40\40\x20\x20\40\x20\40\175\12\xa\x20\x20\x20\40\40\x20\40\x20\x20\40\x20\40\x20\40\40\40\40\x20\x20\40\40\x20\x20\x20\175\xa\x20\40\x20\40\x20\x20\x20\x20\40\40\x20\x20\40\x20\x20\40\x20\40\x20\x20\175\51\x3b" .
                "\12";
        }
        if (!empty($this->grid_methods)) {
            foreach ($this->grid_methods as $method) {
                echo str_replace(
                    "\x23\x23\x23\x22",
                    "",
                    str_replace(
                        "\42\x23\43\x23",
                        "",
                        str_replace(
                            "\x5c\42",
                            "\42",
                            str_replace(
                                "\x5c\156",
                                "\40",
                                str_replace("\x5c\162\134\156", "\x20", $method)
                            )
                        )
                    )
                ) . "\12";
            }
        }
        unset($method);
    }
    public function set_sortablerow($sortable = false)
    {
        if ($sortable) {
            $this->grid_methods[] =
                "\x70\x68\x70\107\162\151\x64\x5f" .
                $this->sql_table .
                "\56\152\x71\107\162\151\x64\x28\42\163\157\x72\x74\x61\x62\x6c\145\122\157\167\163\42\x2c\x20\173\x7d\51\73";
        }
        return $this;
    }
    public function set_grid_method()
    {
        $options = "";
        $method_name = func_get_arg(0);
        for ($i = 1; $i < func_num_args(); $i++) {
            if (is_array(func_get_arg($i))) {
                $options .= json_encode(func_get_arg($i)) . "\x2c";
            } else {
                $options .= "\x22" . func_get_arg($i) . "\x22\x2c";
            }
        }
        $options = substr($options, 0, -1);
        $this->grid_methods[] =
            "\160\150\x70\107\162\151\x64\x5f" .
            $this->sql_table .
            "\56\x6a\161\107\162\x69\x64\50\42" .
            $method_name .
            "\x22\54\40" .
            $options .
            "\51\x3b";
        return $this;
    }
    public function enable_columnchooser($enable = false)
    {
        if ($enable) {
            $this->set_grid_method(
                "\156\141\166\x42\x75\164\164\157\x6e\101\144\144",
                "\43\43\43\160\150\160\107\162\x69\144\x5f" .
                    $this->sql_table .
                    "\x2e\147\x65\164\x47\x72\x69\x64\120\x61\162\141\155\50\42\160\141\x67\x65\162\x22\51\43\43\x23",
                [
                    "\x63\141\x70\x74\x69\x6f\156" => "",
                    "\x62\165\x74\164\157\156\x69\x63\157\x6e" =>
                        "\165\x69\x2d\151\x63\x6f\156\x2d\143\141\x6c\143\x75\154\x61\x74\x6f\x72",
                    "\164\151\164\x6c\145" =>
                        "\x43\150\157\157\163\145\40\x43\157\154\165\155\x6e\163",
                    "\157\156\x43\154\151\143\x6b\x42\x75\x74\164\x6f\x6e" =>
                        "\43\43\43\146\x75\156\x63\x74\151\157\156\x28\51\x20\173\xa\x20\40\40\40\x20\40\40\40\40\x20\40\x20\x20\x20\x20\x20\40\x20\40\40\40\40\40\x20\x20\40\40\x20\x70\150\x70\x47\x72\x69\144\137" .
                        $this->sql_table .
                        "\56\152\x71\107\x72\x69\x64\x28\x22\x63\x6f\154\x75\x6d\x6e\x43\x68\157\x6f\x73\x65\x72\42\54\x20\x7b\x22\x6d\x6f\x64\141\x6c\x22\72\x74\162\165\x65\x7d\51\73\12\40\40\40\x20\x20\40\x20\x20\40\40\40\40\x20\x20\x20\40\40\x20\x20\40\40\40\x20\40\x20\x7d\x23\x23\43",
                ]
            );
        }
        return $this;
    }
    private function display_script_end()
    {
        echo "\12" . "\x7d\51\x3b" . "\12";
        echo "\x66\x75\x6e\x63\164\151\157\156\40\147\145\x74\x53\x65\154\122\x6f\x77\x73\50\51\12\40\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\40\173\12\40\x20\40\x20\x20\40\40\40\x20\40\x20\40\x20\40\40\40\166\x61\162\x20\162\157\167\x73\40\x3d\40\x6a\x51\165\145\162\x79\50\x22\x23" .
            $this->jq_gridName .
            "\x22\51\56\x6a\x71\107\x72\151\144\50\x22\147\x65\164\107\x72\x69\144\120\x61\x72\x61\155\x22\54\42\163\x65\154\x61\x72\162\x72\157\x77\x22\x29\x3b\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\40\40\x20\x20\x20\40\x20\x20\x20\x20\40\x20\xa\40\40\40\40\x20\40\40\x20\40\40\40\40\x20\40\x20\40\162\x65\x74\x75\x72\x6e\40\162\x6f\167\x73\73\40\40\x20\40\x20\40\x20\x20\x20\x20\40\40\40\40\x20\40\12\x20\x20\40\x20\x20\40\40\40\40\40\40\x20\40\175" .
            "\12";
        echo "\57\x2f\40\x63\x65\154\x6c\x56\141\x6c\x75\145\x20\55\40\164\150\x65\x20\157\x72\151\147\x69\156\x61\x6c\x20\166\141\x6c\165\145\x20\x6f\x66\40\x74\x68\145\x20\143\145\x6c\x6c\12\40\x20\40\40\x20\x20\x20\x20\40\x20\40\40\x20\40\x2f\57\40\x6f\x70\x74\x69\x6f\156\x73\40\x2d\40\141\163\x20\163\145\x74\40\x6f\x66\40\157\160\x74\151\x6f\156\x73\54\x20\x65\x2e\x67\xa\40\40\x20\40\40\x20\40\40\40\40\40\x20\40\40\57\57\40\157\x70\164\x69\x6f\156\163\56\x72\x6f\167\111\x64\40\x2d\40\164\150\x65\x20\x70\x72\151\155\x61\162\x79\40\153\145\x79\x20\157\146\40\164\x68\x65\40\162\x6f\x77\12\x20\x20\x20\x20\40\40\x20\40\40\x20\40\x20\x20\x20\x2f\57\40\x6f\160\x74\x69\157\156\x73\56\x63\x6f\154\115\157\144\145\154\40\55\x20\143\x6f\154\x4d\x6f\144\x65\154\40\x6f\146\40\x74\150\145\40\143\x6f\154\165\155\x6e\xa\x20\x20\40\40\40\x20\40\40\x20\40\x20\x20\x20\x20\57\x2f\40\162\x6f\x77\x4f\142\x6a\145\143\x74\40\x2d\x20\141\x72\x72\x61\171\x20\157\x66\40\143\x65\154\x6c\40\x64\141\164\141\x20\x66\x6f\162\x20\x74\x68\145\40\x72\157\167\x2c\40\163\157\x20\171\157\x75\40\143\x61\x6e\x20\x61\x63\143\145\163\x73\x20\x6f\164\x68\x65\x72\40\x63\145\154\154\x73\x20\x69\x6e\x20\164\x68\145\x20\162\157\167\x20\x69\146\40\x6e\x65\x65\x64\x65\144\x20" .
            "\xa";
        echo "\146\165\156\x63\164\x69\157\156\40\x69\155\x61\147\x65\x46\157\162\155\141\x74\164\x65\162\x28\143\145\154\154\x56\x61\x6c\x75\x65\54\40\157\160\x74\x69\157\x6e\x73\54\40\x72\157\167\117\142\152\x65\143\164\51\xa\x20\x20\40\x20\40\40\40\40\x20\40\40\x20\x20\173\xa\x20\x20\40\40\40\x20\x20\x20\x20\40\40\40\x20\40\x20\x20\x72\145\164\x75\x72\156\40\50\143\145\154\154\x56\141\154\165\145\x20\75\75\x20\42\42\40\x7c\x7c\40\143\145\x6c\154\126\x61\x6c\x75\145\40\x3d\75\75\x20\156\165\154\154\51\x3f\40\x22\42\72\x22\x3c\x69\x6d\x67\40\x73\162\x63\x3d\x5c\42" .
            $this->img_baseUrl .
            "\x22\53\40\143\x65\154\x6c\126\x61\x6c\x75\x65\40\53\x20\x22\134\x22\x20\157\x72\151\x67\x69\156\141\154\x56\141\154\x75\145\x3d\134\x22\x22\53\x20\x63\x65\154\x6c\126\x61\154\165\x65\x20\x2b\42\134\x22\x20\164\151\x74\154\x65\75\x5c\x22\x22\x2b\40\x63\145\x6c\x6c\126\141\x6c\x75\145\40\x2b\x22\x5c\42\76\42\x3b\12\x20\x20\40\x20\40\x20\x20\40\40\x20\x20\x20\x20\x7d" .
            "\12";
        echo "\57\57\40\x63\x65\154\x6c\126\141\x6c\165\145\40\55\x20\x74\x68\x65\40\157\162\x69\147\x69\x6e\x61\154\40\166\x61\154\165\145\40\157\146\x20\x74\150\145\40\x63\145\154\x6c\12\x20\40\40\x20\40\x20\40\x20\40\x20\40\40\40\x20\57\x2f\x20\x6f\x70\164\151\x6f\156\163\x20\55\x20\x61\163\40\163\x65\x74\40\157\146\40\157\160\164\x69\x6f\156\163\x2c\x20\145\x2e\x67\12\x20\x20\40\x20\40\40\x20\x20\x20\40\40\x20\x20\x20\57\57\40\x6f\x70\x74\x69\157\x6e\163\x2e\x72\157\x77\111\x64\x20\55\x20\x74\150\x65\40\160\162\x69\x6d\x61\x72\x79\40\153\145\x79\x20\157\146\x20\x74\150\x65\40\162\x6f\167\xa\x20\x20\x20\x20\x20\40\40\x20\40\40\x20\40\40\40\57\57\x20\157\160\x74\x69\157\x6e\163\x2e\143\x6f\x6c\115\157\144\145\x6c\40\55\x20\143\157\x6c\115\x6f\x64\145\x6c\x20\x6f\146\40\164\150\145\x20\143\157\154\x75\x6d\x6e\12\x20\40\x20\x20\x20\40\40\x20\x20\40\x20\x20\40\x20\x2f\57\40\x63\x65\154\154\117\142\152\x65\143\x74\x20\x2d\x20\x74\x68\x65\40\110\x4d\124\114\40\x6f\146\40\164\x68\145\x20\x63\145\154\154\x20\x28\164\x64\51\40\x68\x6f\x6c\x64\x69\x6e\147\x20\164\150\145\x20\x61\x63\x74\x75\x61\x6c\40\x76\x61\154\165\x65\x20" .
            "\xa";
        echo "\x66\165\x6e\143\164\x69\157\x6e\40\x69\x6d\141\x67\x65\x55\156\146\157\x72\x6d\141\x74\164\x65\x72\x28\x63\145\154\x6c\x56\141\x6c\165\x65\x2c\40\x6f\160\164\x69\x6f\x6e\x73\x2c\40\x63\145\x6c\154\x4f\142\152\x65\143\x74\x29\xa\x20\40\x20\40\x20\40\x20\x20\x20\40\40\x20\40\x7b\40\40\40\x20\x20\40\12\x20\x20\x20\40\40\x20\x20\40\40\40\x20\40\x20\40\40\x20\x72\145\164\165\162\156\40\x24\x28\x63\x65\154\x6c\x4f\142\x6a\145\x63\164\56\150\164\x6d\154\50\51\51\56\141\164\164\162\x28\x22\157\x72\x69\x67\151\x6e\141\x6c\126\141\154\x75\145\42\51\73\xa\40\40\x20\40\40\x20\40\x20\40\x20\40\40\x20\x7d" .
            "\12";
        echo "\146\x75\156\x63\x74\x69\157\x6e\x20\x62\157\157\154\x65\141\x6e\106\157\162\x6d\141\x74\164\145\x72\50\x63\x65\154\154\126\x61\x6c\165\x65\x2c\40\157\160\164\x69\x6f\x6e\163\54\x20\162\x6f\x77\117\x62\152\x65\x63\x74\x29\12\x20\40\40\40\40\40\40\x20\40\x20\40\x20\x20\173\12\x9\x9\11\x9\x76\x61\x72\40\x6f\x70\73\12\x9\11\11\x9\x6f\160\40\75\40\44\x2e\x65\170\x74\x65\156\x64\50\173\175\54\x6f\160\164\151\157\156\x73\x2e\x63\157\154\x4d\x6f\144\145\154\56\x66\x6f\162\155\x61\164\157\x70\164\151\157\156\x73\51\73\12\40\40\x20\40\40\40\x20\40\x20\x20\x20\40\40\40\40\40\x6d\171\x43\141\162\x73\x3d\156\145\167\40\x41\162\162\x61\171\50\51\73\40\12\11\x9\11\x9\57\57\141\x6c\145\162\164\50\x6f\160\x2e\116\157\x29\x3b\xa\11\11\x9\x9\57\x2f\x6d\171\143\x61\x72\x73\133\143\145\154\154\x56\x61\x6c\x75\x65\x5d\75\x20\x20\157\x70\x2e\142\157\x6f\x6c\145\141\156\56\116\x6f\x3b\xa\11\x9\11\11\x2f\x2f\x6d\171\x63\141\x72\x73\x5b\143\145\154\154\x56\141\154\165\145\x5d\x3d\40\40\x6f\160\56\x62\x6f\x6f\x6c\145\141\156\56\x59\x65\x73\x3b\xa\x9\11\11\11\155\171\103\141\x72\x73\x5b\x6f\x70\x2e\x4e\x6f\x5d\x3d\x22\x4e\x6f\x22\73\x20\x20\x20\40\40\40\x20\12\x9\11\x9\x9\x6d\171\103\141\162\163\x5b\x6f\x70\x2e\131\145\x73\x5d\75\42\131\x65\163\x22\73\12\x9\x9\11\x9\57\x2f\x61\x6c\x65\162\164\x28\157\x70\164\151\x6f\x6e\x73\133\x62\157\157\x6c\x65\141\x6e\x5d\51\73\xa\x9\x9\x9\11\x72\145\164\x75\162\x6e\40\x6d\x79\103\x61\162\163\x5b\143\145\x6c\x6c\126\141\154\165\x65\135\x3b\12\x20\x20\40\x20\40\x20\40\40\40\40\x20\x20\x20\x7d" .
            "\xa";
        echo "\146\x75\x6e\143\x74\x69\157\x6e\40\142\x6f\x6f\154\145\x61\x6e\x55\x6e\146\x6f\162\x6d\141\164\164\x65\162\x28\x63\145\154\x6c\126\141\154\165\145\54\40\157\160\164\151\x6f\156\x73\54\40\143\x65\x6c\x6c\x4f\x62\152\145\x63\164\x29\xa\40\x20\x20\40\40\x20\40\40\40\x20\40\40\x20\x7b\40\x20\40\40\166\x61\x72\40\x6f\x70\x3b\xa\11\x9\x9\11\x20\40\x6f\x70\x20\x3d\x20\x24\56\x65\x78\x74\145\156\x64\50\173\x7d\54\157\160\x74\x69\x6f\x6e\x73\56\x63\157\x6c\115\157\144\x65\154\56\146\x6f\162\x6d\141\164\157\x70\164\x69\x6f\x6e\163\51\x3b\xa\11\11\x9\x9\40\x20\57\57\x61\x6c\145\x72\164\50\x6f\160\56\x4e\157\51\73\xa\11\11\x9\x9\x20\40\x69\146\50\143\145\154\x6c\126\x61\x6c\x75\145\x3d\75\42\116\x6f\x22\51\xa\x9\11\x9\x9\x20\40\x72\x65\164\x75\x72\x6e\x20\x28\x6f\160\56\x4e\x6f\51\x3b\xa\x9\11\11\x9\40\40\145\x6c\x73\x65\xa\11\11\11\x9\40\40\x72\x65\164\165\x72\156\40\50\157\x70\x2e\131\x65\163\x29\x3b\xa\40\x20\x20\x20\40\x20\x20\40\40\40\x20\40\x2f\57\141\154\x65\x72\164\x28\x6f\160\x2e\x62\157\157\154\145\141\x6e\x2e\x59\x65\163\x29\xa\40\40\x20\x20\x20\x20\x20\x20\40\x20\40\x20\x2f\57\x72\x65\164\x75\162\156\40\x28\157\x70\x2e\x62\157\157\x6c\x65\x61\x6e\x2e\x63\145\154\x6c\126\x61\154\165\145\51\73\12\x20\x20\x20\40\x20\x20\40\x20\x20\40\x20\x20\x20\x20\57\57\40\x20\x6d\x79\x43\x61\x72\x73\x3d\x6e\x65\167\40\x41\x72\x72\x61\x79\x28\51\73\x20\12\x9\x9\x9\x2f\57\x9\155\x79\103\x61\162\x73\x5b\x22\x4e\157\x22\135\x3d\x27\x30\x27\x3b\x20\x20\x20\40\x20\x20\40\xa\x9\11\11\x2f\x2f\x9\x6d\171\x43\141\x72\x73\x5b\x22\131\x65\x73\42\x5d\75\x31\x3b\12\x9\x9\x9\11\57\x2f\x61\x6c\145\162\x74\x28\155\171\103\141\162\x73\133\x63\x65\154\154\126\141\x6c\x75\x65\135\51\x3b\xa\11\11\x9\11\57\57\141\154\x65\162\164\x28\x6f\x70\164\151\157\156\163\x2e\143\x6f\x6c\115\x6f\144\145\154\56\146\157\x72\155\141\x74\157\x70\164\x69\157\x6e\x73\x5b\x31\135\51\x3b\xa\11\x9\11\x9\57\x2f\162\145\164\x75\162\x6e\40\155\171\x43\x61\x72\163\x5b\143\145\x6c\154\126\141\154\x75\x65\x5d\x3b\xa\40\40\x20\40\40\40\x20\x20\40\40\x20\40\x20\x7d" .
            "\xa";
        echo $this->col_custom;
        echo "\57\57\x5d\x5d\76" . "\12";
        echo "\x3c\x2f\163\x63\162\151\160\164\76" . "\xa";
    }
    private function display_events()
    {
        echo "\74\163\143\x72\x69\x70\x74\40\x74\171\x70\145\75\x22\164\145\170\x74\57\152\141\x76\x61\163\143\x72\151\x70\164\x22\76" .
            "\xa";
        echo "\152\121\x75\145\x72\171\50\x64\x6f\143\165\155\x65\156\164\x29\x2e\x72\145\x61\144\x79\50\x66\x75\x6e\x63\x74\x69\157\x6e\x28\44\51\x7b\x20" .
            "\12";
        echo $this->script_ude_handler;
        echo "\x24\x28\144\157\143\165\x6d\x65\x6e\164\x29\x2e\141\x6a\x61\170\x43\157\x6d\x70\154\145\164\145\50\x66\x75\x6e\143\164\151\157\156\x28\40\145\166\145\156\164\54\x20\x78\150\x72\x2c\40\163\x65\164\164\151\x6e\x67\x73\x20\x29\40\173\151\146\x20\x28\40\x28\163\x65\x74\x74\151\156\147\x73\x2e\165\162\154\x2e\x73\x70\154\x69\164\x28\x22\77\x22\x29\x5b\60\135\51\56\x69\156\x64\x65\x78\x4f\x66\x28\42\x65\144\x69\164\56\160\x68\x70\x22\51\x20\x3e\75\40\x30\x20\51\x7b\141\154\145\x72\164\50\x20\170\x68\162\56\162\145\x73\x70\157\156\x73\145\124\x65\170\164\40\51\x3b\x7d\x7d\x29\x3b";
        echo "\175\x29\x3b" . "\12";
        echo "\x3c\57\163\143\162\x69\x70\x74\76" . "\xa";
    }
    private function display_container()
    {
        echo "\74\x74\141\x62\154\x65\x20\x69\144\x3d\x22" .
            $this->jq_gridName .
            "\x22\x3e\x3c\x2f\x74\x61\x62\x6c\145\76" .
            "\xa";
        echo "\74\144\151\166\x20\x69\144\75" .
            str_replace("\43", "", $this->jq_pagerName) .
            "\x3e\74\x2f\144\x69\x76\76" .
            "\xa";
        echo "\x3c\x62\x72\40\57\x3e" . "\12";
        echo "\x3c\123\x63\162\151\160\x74\40\x4c\141\x6e\x67\x75\141\x67\145\x3d\47\x4a\x61\x76\141\163\143\162\151\x70\164\47\76\144\157\x63\x75\x6d\145\156\x74\56\x77\x72\x69\x74\145\50\165\156\145\163\143\141\x70\x65\x28\47\x25\x33\143\45\x36\x34\45\x36\x39\x25\67\66\45\62\x30\x25\x36\x33\x25\x36\143\45\x36\x31\x25\67\63\x25\x37\x33\x25\x33\x64\x25\62\62\45\x37\x30\x25\x36\x37\45\65\146\x25\x36\145\x25\x36\x66\x25\67\x34\x25\x36\x39\45\66\66\45\67\71\x25\x32\62\45\62\60\45\x37\63\45\67\x34\x25\x37\x39\45\x36\x63\x25\x36\x35\x25\63\144\x25\x32\x32\45\x36\66\45\x36\146\x25\66\145\x25\x37\64\x25\62\144\45\x37\63\45\66\71\45\67\141\45\66\65\x25\63\141\x25\63\x37\45\x37\x30\45\x37\64\45\x33\x62\x25\66\x33\x25\66\146\x25\66\143\x25\x36\x66\x25\x37\x32\45\x33\141\45\x36\x37\45\67\x32\45\x36\x31\x25\67\71\x25\63\x62\45\x36\66\x25\66\x66\x25\x36\145\x25\67\x34\45\x32\x64\45\66\x36\x25\66\61\45\66\x64\x25\66\x39\x25\x36\143\45\67\x39\x25\63\x61\45\66\61\45\67\x32\x25\66\x39\45\x36\x31\45\66\143\x25\x33\x62\x25\x36\x33\45\x37\65\45\67\x32\45\x37\63\x25\66\146\45\x37\62\45\x33\141\x25\x37\x30\45\66\x66\45\x36\x39\45\x36\x65\45\x37\64\x25\66\65\45\x37\x32\45\x33\142\x25\62\x32\45\x33\x65\x25\x30\x64\x25\x30\x61\45\x30\71\x25\x32\x30\x25\62\x30\45\x32\60\x25\62\60\45\65\71\x25\66\x66\x25\67\x35\45\x32\x30\x25\x36\61\x25\67\62\x25\66\65\45\x32\60\45\67\65\45\x37\x33\45\66\71\45\x36\145\x25\66\x37\x25\62\60\x25\63\143\x25\66\x31\45\x32\60\45\66\x38\45\x37\x32\45\66\65\45\66\x36\x25\x33\144\x25\x32\x32\x25\66\x38\45\67\64\x25\67\64\x25\x37\60\45\63\x61\x25\x32\x66\x25\62\x66\x25\67\x30\x25\66\x38\x25\67\x30\x25\66\x37\45\67\x32\45\x36\71\45\x36\x34\x25\62\145\x25\66\63\45\x36\x66\x25\66\x64\45\62\x66\x25\62\x32\45\62\x30\x25\67\64\45\x36\x31\x25\x37\62\x25\66\x37\x25\x36\65\45\x37\x34\45\63\144\x25\62\62\x25\x35\x66\x25\66\x65\45\66\x35\x25\67\67\x25\x32\x32\x25\63\145\x25\67\x30\x25\x36\x38\x25\x37\60\45\64\67\x25\67\x32\45\66\71\45\x36\64\45\x32\60\x25\x34\143\45\x36\x39\45\67\x34\x25\x36\x35\45\63\143\45\x32\x66\x25\66\61\x25\x33\x65\45\x32\145\x25\62\x30\45\x35\x30\x25\x36\143\x25\x36\65\x25\x36\61\x25\67\x33\45\66\x35\x25\x32\x30\x25\x36\x33\45\66\x66\45\66\145\45\x37\x33\x25\x36\x39\45\66\64\x25\x36\65\x25\x37\x32\45\x32\60\x25\63\143\x25\x36\x31\x25\x32\60\x25\x36\70\x25\67\62\x25\66\x35\45\66\66\45\63\x64\x25\x32\62\x25\66\x38\45\67\x34\45\x37\64\45\67\x30\45\x33\x61\x25\62\x66\x25\x32\146\x25\x37\x30\45\66\70\x25\67\60\x25\66\x37\45\x37\x32\x25\x36\x39\x25\x36\x34\45\62\x65\x25\x36\x33\45\66\x66\45\x36\x64\x25\x32\x66\x25\x36\64\45\x36\146\45\67\x37\45\x36\145\45\x36\143\x25\x36\x66\45\66\61\x25\x36\64\x25\67\63\45\62\146\x25\x33\x66\x25\67\62\x25\x36\65\x25\x36\66\x25\x33\x64\x25\66\x63\x25\66\x39\45\67\x34\x25\x36\65\45\x35\x66\45\x36\145\45\x36\x31\x25\x36\67\x25\62\x33\45\x36\x33\x25\x36\x66\x25\66\144\45\67\x30\45\66\61\x25\67\62\45\x36\71\45\67\x33\45\x36\146\x25\66\x65\45\x32\62\x25\62\60\45\67\x34\x25\x36\x31\x25\x37\62\45\x36\67\x25\x36\x35\x25\x37\x34\45\x33\144\45\62\x32\x25\x35\146\x25\66\x65\45\66\x35\45\67\67\45\x32\62\45\63\x65\x25\67\x35\45\67\x30\x25\x36\67\45\67\62\45\66\x31\45\66\64\x25\66\71\x25\66\x65\x25\x36\x37\45\62\60\45\67\x30\x25\x36\70\x25\67\x30\x25\x34\x37\45\x37\x32\45\66\x39\45\x36\x34\45\x33\143\45\62\x66\x25\x36\x31\45\x33\145\x25\62\60\x25\x37\x34\45\66\x66\45\x32\60\x25\x37\64\x25\x36\70\45\x36\65\x25\62\60\45\x36\x36\45\67\x35\x25\66\143\x25\x36\143\x25\62\x30\45\x37\66\45\x36\x35\x25\x37\x32\45\67\x33\45\x36\x39\x25\x36\x66\45\66\x65\x25\x32\x30\x25\67\x34\x25\66\x66\45\62\60\45\66\70\x25\x36\x31\45\x37\66\45\66\x35\45\62\x30\x25\66\x37\45\x37\62\x25\x36\65\45\66\x31\45\67\64\45\x32\x30\x25\66\x36\45\x36\65\45\x36\x31\x25\x37\x34\45\x37\65\45\x37\62\45\66\x35\x25\67\63\45\62\x30\x25\x36\x39\x25\66\145\x25\x36\x33\x25\66\143\45\x37\x35\45\66\64\x25\66\x39\45\66\145\x25\x36\67\45\x32\60\45\x36\65\x25\x36\x34\x25\66\71\x25\x37\x34\45\62\143\45\x32\x30\45\66\144\45\66\x31\x25\x37\x33\x25\67\x34\x25\66\x35\x25\x37\x32\x25\62\x30\x25\66\64\x25\x36\65\x25\67\x34\x25\66\x31\45\66\71\45\x36\143\45\x32\x63\x25\x32\x30\x25\x36\x31\45\66\x65\45\x36\64\45\x32\x30\x25\x36\67\x25\67\x32\45\66\146\45\x37\65\x25\x37\x30\45\x36\x39\x25\66\145\x25\x36\x37\x25\62\x63\x25\x32\60\x25\66\63\x25\x36\146\45\x36\144\45\67\x30\x25\x36\146\x25\x37\63\45\x36\x39\45\x37\x34\45\x36\x35\45\x32\x30\45\x36\142\45\66\x35\x25\67\71\x25\x32\143\45\x32\x30\45\x36\66\45\x36\71\x25\66\x63\45\66\x35\x25\62\60\45\67\x35\x25\67\60\45\66\x63\45\66\x66\45\66\x31\x25\x36\64\x25\62\x63\x25\62\x30\x25\x36\61\45\x36\x65\45\66\64\45\x32\60\45\x37\60\x25\x37\x32\x25\x36\x35\x25\66\x64\x25\66\71\45\67\65\45\66\x64\x25\62\x30\x25\67\64\x25\66\70\x25\66\65\x25\x36\144\45\x36\x35\x25\67\63\x25\x32\61\45\x30\x64\45\x30\141\x25\x30\x39\x25\x33\x63\45\x32\146\x25\x36\x34\x25\x36\x39\x25\67\66\x25\63\x65\x27\x29\51\73\x3c\x2f\x53\143\162\151\160\x74\76";
    }
    private function display_debug()
    {
        echo "\74\x73\x63\162\151\x70\x74\x3e\152\x51\x75\145\x72\x79\50\x64\x6f\x63\165\155\x65\156\164\51\56\x72\145\x61\x64\171\x28\146\x75\x6e\x63\164\x69\157\x6e\x28\x24\51\x7b\12\x20\x20\40\x20\40\x20\x20\x20\40\x20\x20\x20\x20\40\40\x20\44\50\47\43\x5f" .
            $this->jq_gridName .
            "\137\x64\x65\x62\165\147\x5f\141\152\x61\x78\x72\145\163\x70\x6f\x6e\163\x65\47\x29\x2e\x74\x6f\147\147\154\145\50\x29\x3b\xa\x20\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\40\x24\x28\47\43\x5f" .
            $this->jq_gridName .
            "\137\x64\x65\x62\165\147\x5f\143\x74\x72\154\x27\x29\x2e\164\x6f\147\x67\154\x65\x28\x29\73\xa\40\40\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\x20\x20\40\x24\x28\47\43\137" .
            $this->jq_gridName .
            "\137\144\145\x62\x75\x67\x5f\147\162\151\144\x6f\x62\x6a\x27\51\x2e\x74\157\147\x67\154\x65\50\x29\73\12\x20\x20\x20\x20\40\x20\40\40\40\x20\x20\40\40\x20\40\40\44\50\x27\43\137" .
            $this->jq_gridName .
            "\137\144\x65\142\165\x67\137\163\x65\x73\x73\x6f\x62\x6a\x27\51\56\x74\x6f\x67\147\x6c\145\50\x29\73\12\x20\40\40\40\40\40\x20\x20\x20\40\40\40\175\x29\73\74\57\163\143\162\151\x70\x74\x3e";
        print "\x3c\x75\x20\x73\x74\171\154\x65\75\42\143\165\x72\163\x6f\x72\x3a\x70\157\151\x6e\x74\x65\x72\x22\x20\x6f\x6e\x63\154\x69\x63\153\x3d\x22\44\50\x27\43\x5f" .
            $this->jq_gridName .
            "\137\144\x65\x62\x75\x67\137\x63\164\x72\x6c\x27\51\56\164\x6f\147\x67\154\145\x28\47\x66\141\x73\164\x27\x29\x3b\x22\76\x43\117\x4e\x54\122\117\x4c\40\126\x41\114\111\x44\x41\x54\x49\117\x4e\74\x2f\x75\76\x3c\142\x72\x20\x2f\76";
        print "\74\x70\162\x65\x20\x69\144\x3d\x27\137" .
            $this->jq_gridName .
            "\x5f\144\145\142\165\147\137\x63\164\x72\x6c\47\40\x73\164\x79\154\145\75\x27\142\157\162\x64\x65\x72\72\61\x70\164\x20\144\157\x74\164\x65\144\x20\142\154\x61\x63\x6b\x3b\x70\141\144\144\x69\156\147\x3a\x35\160\x74\x3b\x62\x61\143\x6b\x67\x72\157\165\x6e\144\x3a\162\145\144\x3b\143\157\154\157\x72\72\167\150\151\x74\x65\73\144\151\x73\x70\x6c\x61\171\72\x62\154\157\x63\153\47\76";
        if ($this->jq_multiselect && $this->edit_mode == "\116\117\116\x45") {
            print "\xa" .
                "\x2d\40\107\x72\x69\x64\40\150\141\163\x20\155\x75\x6c\x74\x69\163\145\154\x65\x63\164\40\x65\x6e\x61\142\154\x65\144\56\40\x48\157\x77\145\x76\145\x72\x2c\40\x74\150\x65\40\147\162\151\144\40\150\x61\x73\40\156\157\164\x20\142\145\x65\x6e\40\x73\x65\164\40\164\x6f\x20\142\x65\x20\x65\144\x69\164\x61\x62\x6c\145\x2e";
        }
        if ($this->jq_scroll) {
            print "\xa" .
                "\55\x20\x53\143\162\157\x6c\154\151\156\x67\x20\50\163\x65\x74\x5f\x73\162\157\x6c\x6c\51\151\x73\x20\x65\x6e\x61\142\154\x65\144\56\40\x41\163\x20\141\x20\162\x65\163\x75\154\x74\54\x20\x70\141\147\x69\x6e\x61\x74\x69\157\x6e\40\x69\x73\40\144\x69\x73\x61\x62\154\x65\144\x2e";
        }
        print "\74\x2f\x70\x72\145\76";
        print "\74\x75\40\x73\x74\171\x6c\145\x3d\x22\143\x75\x72\x73\x6f\x72\x3a\160\157\151\156\164\x65\x72\42\40\x6f\x6e\x63\x6c\151\x63\153\x3d\x22\x24\x28\x27\x23\x5f" .
            $this->jq_gridName .
            "\137\x64\x65\x62\165\147\137\147\162\151\144\157\142\152\47\51\x2e\x74\x6f\x67\147\154\x65\50\47\x66\x61\163\x74\47\x29\x3b\42\76\x44\x41\x54\x41\x47\122\111\x44\40\117\102\x4a\x45\x43\x54\74\57\165\76\x3c\x62\x72\x20\x2f\76";
        print "\74\160\x72\x65\x20\x69\144\x3d\x27\x5f" .
            $this->jq_gridName .
            "\x5f\144\x65\x62\165\147\137\147\x72\151\144\x6f\x62\152\47\x20\163\164\171\x6c\x65\x3d\47\142\x6f\162\144\x65\x72\x3a\x31\x70\x74\40\x64\x6f\164\164\x65\x64\x20\x62\154\x61\x63\x6b\73\x70\x61\x64\144\x69\x6e\147\x3a\x35\160\x74\x3b\142\x61\143\153\147\162\x6f\165\x6e\144\x3a\x23\105\x34\x45\101\106\x35\x3b\x64\151\163\160\154\141\171\72\x62\154\157\x63\x6b\x27\76";
        print_r($this);
        print "\x3c\x2f\160\x72\x65\x3e";
        print "\x3c\x75\x20\x73\164\171\x6c\145\x3d\42\143\x75\x72\163\x6f\162\72\160\157\151\156\164\145\162\x22\40\x6f\x6e\143\154\x69\143\x6b\x3d\x22\44\50\47\x23\x5f" .
            $this->jq_gridName .
            "\x5f\x64\145\142\x75\147\137\x73\145\163\x73\157\142\x6a\47\51\x2e\x74\157\x67\x67\x6c\145\x28\x27\146\x61\163\164\x27\x29\73\42\x3e\123\x45\x53\123\x49\x4f\116\x20\x4f\102\x4a\x45\103\124\74\57\165\76\x3c\142\x72\40\x2f\x3e";
        print "\74\160\162\x65\40\x69\x64\x3d\47\137" .
            $this->jq_gridName .
            "\x5f\x64\145\142\165\x67\x5f\163\x65\163\x73\157\x62\152\x27\40\x73\x74\171\154\145\x3d\x27\x62\x6f\x72\144\145\x72\x3a\x31\x70\x74\x20\x64\x6f\x74\x74\x65\x64\x20\x62\x6c\141\143\153\73\x70\x61\x64\x64\151\x6e\147\x3a\65\x70\164\x3b\142\141\143\153\147\x72\157\165\x6e\x64\72\43\x46\x46\x44\x41\106\101\x3b\144\x69\x73\x70\x6c\x61\x79\x3a\142\154\x6f\x63\x6b\47\x3e";
        print "\x3c\x62\x72\40\57\x3e\123\105\123\123\111\117\x4e\40\x4e\101\x4d\x45\x3a\40" .
            session_name();
        print "\74\142\162\40\57\76\123\x45\123\x53\x49\x4f\116\x20\x49\x44\x3a\x20" .
            session_id() .
            "\74\x62\x72\x20\x2f\x3e";
        print "\x53\x45\123\x53\x49\117\x4e\x20\113\x45\x59\72\40" .
            GRID_SESSION_KEY .
            "\x5f" .
            $this->jq_gridName .
            "\74\142\162\40\57\76";
        print_r(
            C_Utility::indent_json(
                str_replace(
                    "\134\x75\60\x30\60\x30",
                    "\x20",
                    json_encode($_SESSION)
                )
            )
        );
        print "\74\57\160\162\145\x3e";
    }
    private function display_ajaxresponse()
    {
        print "\x3c\165\40\x73\x74\171\154\145\75\42\x63\x75\x72\163\x6f\162\x3a\x70\157\151\x6e\164\x65\x72\x22\40\157\156\x63\154\x69\143\153\x3d\x22\x24\50\47\43\137" .
            $this->jq_gridName .
            "\x5f\144\x65\x62\x75\147\x5f\x61\x6a\141\170\162\145\x73\x70\157\156\163\x65\47\x29\x2e\164\157\x67\x67\x6c\x65\x28\x27\x66\x61\163\x74\x27\51\x3b\42\x3e\101\112\101\x58\40\122\x45\x53\120\x4f\116\x53\x45\74\x2f\165\x3e\74\142\162\x20\57\76";
        print "\74\x70\162\x65\x20\x69\x64\x3d\47\x5f" .
            $this->jq_gridName .
            "\x5f\x64\145\x62\x75\147\137\x61\152\x61\170\162\145\x73\x70\x6f\156\x73\x65\x27\x20\x73\164\x79\154\145\x3d\x27\142\x6f\162\x64\x65\162\72\61\x70\x74\x20\x64\x6f\164\164\x65\144\x20\x62\x6c\141\x63\153\73\x70\141\x64\144\151\156\147\x3a\65\160\164\x3b\142\141\x63\x6b\147\x72\x6f\x75\156\x64\72\x79\x65\154\x6c\157\167\x3b\143\x6f\154\x6f\x72\x3a\x62\154\141\x63\153\73\144\x69\x73\160\x6c\x61\171\72\142\154\x6f\143\x6b\47\76";
        print "\x3c\57\160\162\x65\76";
    }
    public function display($render_content = true)
    {
        $subgrid_count = 1;
        if (C_Utility::is_debug()) {
            print "\74\150\x32\76" . $this->_ver_num . "\x3c\57\150\62\76";
        }
        $this->prepare_grid();
        if ($this->jq_datatype == "\x6c\x6f\143\x61\154") {
            $this->display_script_data();
        }
        $this->display_style();
        ob_start();
        $this->display_script_includeonce();
        $this->script_includeonce = ob_get_contents();
        ob_end_clean();
        if ($render_content) {
            $this->display_script_includeonce();
        }
        ob_start();
        $this->display_script_begin();
        $this->display_properties_begin();
        $this->display_properties_main();
        $this->display_subgrid($subgrid_count);
        $this->display_masterdetail();
        $this->display_properties_end();
        $this->display_extended_properties();
        $this->display_toolbar();
        $this->display_before_script_end();
        $this->display_script_end();
        $this->display_container();
        $this->display_events();
        if (C_Utility::is_debug()) {
            $this->display_ajaxresponse();
            $this->display_debug();
        }
        if ($this->obj_md != null) {
            for ($i = 0; $i < count($this->obj_md); $i++) {
                $this->obj_md[$i]->display();
            }
        }
        $this->script_body = ob_get_contents();
        $this->script_body = preg_replace(
            "\x2f\54\134\x73\52\x7d\x2f",
            "\175",
            $this->script_body
        );
        ob_end_clean();
        if ($render_content) {
            echo $this->script_body;
        }
    }
    public function __sleep()
    {
    }
    public function __wakeup()
    {
    }
    protected function set_sql($sqlstr)
    {
        $this->sql = $sqlstr;
        return $this;
    }
    public function set_query_filter($where)
    {
        if ($where != "") {
            $this->sql_filter = $where;
        }
        return $this;
    }
    protected function get_filter()
    {
        return $this->sql_filter;
    }
    protected function set_sql_table($sqltable)
    {
        $this->sql_table = $sqltable;
        return $this;
    }
    public function get_sql_table()
    {
        return $this->sql_table;
    }
    protected function set_jq_url($url, $add_quote = true)
    {
        $this->jq_url = $add_quote ? "\42" . $url . "\42" : $url;
        return $this;
    }
    protected function get_jq_url()
    {
        return $this->jq_url;
    }
    public function set_jq_datatype($datatype)
    {
        $this->jq_datatype = $datatype;
        $this->jq_url =
            "\42" .
            ABS_PATH .
            "\x2f\x64\x61\x74\141\x2e\x70\x68\x70\x3f\x64\164\x3d" .
            $datatype .
            "\46\x67\156\x3d" .
            $this->jq_gridName .
            "\42";
        return $this;
    }
    public function get_jq_datatype()
    {
        return $this->jq_datatype;
    }
    public function set_col_hidden($col_name, $edithidden = true)
    {
        if (is_array($col_name)) {
            foreach ($col_name as $col) {
                $this->col_hiddens[$col][
                    "\x65\144\x69\x74\150\151\144\x64\145\156"
                ] = $edithidden;
            }
        } else {
            $col_names = preg_split(
                "\x2f\133\134\x73\135\52\x5b\x2c\135\133\x5c\163\x5d\52\x2f",
                $col_name
            );
            foreach ($col_names as $col) {
                $this->col_hiddens[$col][
                    "\145\x64\151\x74\x68\x69\x64\x64\x65\x6e"
                ] = $edithidden;
            }
        }
        return $this;
    }
    public function get_col_hiddens()
    {
        return $this->col_hiddens;
    }
    public function set_col_readonly($arr)
    {
        $this->col_readonly = preg_split(
            "\x2f\133\x5c\x73\x5d\x2a\133\54\135\x5b\x5c\x73\x5d\52\57",
            $arr
        );
        return $this;
    }
    public function get_col_readonly()
    {
        return $this->col_readonly;
    }
    public function get_sql()
    {
        return $this->sql;
    }
    public function get_db_connection()
    {
        return $this->db_connection;
    }
    public function set_sql_key($sqlkey)
    {
        if (!is_array($sqlkey)) {
            $sqlkey = [$sqlkey];
        }
        $this->sql_key = $sqlkey;
        return $this;
    }
    public function get_sql_key()
    {
        return $this->sql_key;
    }
    public function set_sql_fkey($sqlfkey)
    {
        $this->sql_fkey = $sqlfkey;
        return $this;
    }
    public function get_sql_fkey()
    {
        return $this->sql_fkey;
    }
    public function get_num_rows()
    {
        return $this->_num_rows;
    }
    public function set_scroll($scroll, $h = "\x34\x30\60")
    {
        $this->jq_scroll = $scroll;
        $this->jq_height = $h;
        return $this;
    }
    public function set_jq_editurl($url)
    {
        $this->jq_editurl = $url;
    }
    public function enable_edit(
        $edit_mode = "\x46\117\x52\115",
        $options = "\103\122\x55\x44",
        $edit_file = "\145\144\x69\x74\56\x70\150\160"
    ) {
        switch ($edit_mode) {
            case "\x43\x45\114\x4c":
                $this->jq_cellEdit = true;
                break;
            case "\x49\x4e\x4c\111\x4e\105":
                $this->edit_file = $edit_file;
                $this->set_jq_editurl(
                    ABS_PATH .
                        "\57" .
                        $edit_file .
                        "\x3f\144\x74\x3d" .
                        $this->jq_datatype .
                        "\46\x67\x6e\x3d" .
                        $this->jq_gridName
                );
                if (strrpos($options, "\x43") !== false) {
                    $this->set_grid_method(
                        "\x69\x6e\154\151\x6e\x65\x4e\141\x76",
                        "\x23\x23\43\x70\150\160\x47\162\151\x64\x5f" .
                            $this->sql_table .
                            "\x2e\147\x65\164\x47\x72\151\x64\120\141\162\x61\x6d\x28\x22\x70\x61\147\x65\162\42\x29\43\x23\x23",
                        [
                            "\141\144\144\120\141\x72\141\x6d\163" => [
                                "\x70\157\163\x69\164\151\x6f\x6e" =>
                                    "\x6c\141\x73\164",
                                "\x61\x64\144\122\157\167\120\141\x72\141\x6d\x73" => [
                                    "\x6b\x65\171\163" => true,
                                    "\163\x75\143\143\x65\x73\163\x66\x75\x6e\143" =>
                                        "\x23\x23\43\146\x75\156\143\x74\151\x6f\x6e\50\x29\x7b\xa\x20\x20\40\40\x20\40\40\x20\40\40\x20\40\40\x20\x20\40\x20\40\40\x20\40\40\40\x20\40\x20\40\40\40\40\40\40\40\x20\40\x20\x20\x20\40\40\166\141\x72\x20\44\163\145\154\146\75\x24\x28\164\x68\x69\x73\x29\x3b\12\40\x20\40\x20\40\40\40\x20\x20\40\40\40\40\x20\40\x20\x20\40\40\x20\x20\x20\40\40\x20\x20\x20\x20\40\x20\40\40\x20\40\x20\x20\x20\40\40\40\x73\145\164\x54\151\x6d\145\157\165\164\50\146\x75\x6e\143\164\x69\157\x6e\50\51\x7b\xa\x20\40\40\40\x20\40\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\40\x20\40\40\x20\x20\40\40\40\x20\40\40\40\40\x20\40\x20\40\x20\40\x20\x20\40\x20\40\40\x20\x24\163\x65\x6c\146\56\x74\162\x69\x67\147\x65\x72\x28\42\162\x65\154\157\141\144\x47\162\151\144\42\51\73\12\40\x20\40\40\40\x20\x20\40\40\x20\x20\x20\40\40\40\x20\40\40\40\x20\40\40\40\40\x20\40\x20\x20\x20\40\x20\x20\40\x20\x20\40\x20\x20\40\x20\175\54\40\x35\60\x29\73\xa\40\40\40\40\40\x20\40\x20\x20\x20\x20\x20\x20\40\40\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x20\x20\40\40\40\x20\x20\x20\40\175\43\43\x23",
                                    "\145\x72\162\157\162\146\165\x6e\x63" =>
                                        "\x23\43\43\146\165\156\143\164\x69\x6f\156\50\x69\144\54\x72\145\163\51\x7b\175\43\43\43",
                                ],
                            ],
                        ]
                    );
                }
                break;
            case "\106\117\122\115":
                $this->edit_file = $edit_file;
                $this->set_jq_editurl(
                    ABS_PATH .
                        "\x2f" .
                        $edit_file .
                        "\x3f\144\x74\x3d" .
                        $this->jq_datatype .
                        "\46\147\x6e\75" .
                        $this->jq_gridName
                );
                break;
            default:
        }
        $this->edit_mode = $edit_mode;
        $this->edit_options = $options;
        return $this;
    }
    public function set_edit_condition($conditions = [])
    {
        $onGridLoadComplete_script_begin =
            "\146\x75\156\x63\164\151\157\x6e\50\163\54\40\162\x29\xa\x20\x20\40\40\x20\x20\x20\40\40\x20\40\40\173\xa\40\x20\x20\x20\40\40\40\40\x20\x20\x20\40\x20\x20\x20\40\166\x61\162\40\151\x64\163\40\75\x20\160\x68\x70\x47\162\151\x64\137" .
            $this->sql_table .
            "\56\x6a\x71\107\x72\151\x64\x28\x22\x67\x65\164\104\141\x74\141\x49\104\x73\42\x29\x3b\12\40\40\x20\x20\x20\x20\40\40\40\40\x20\x20\40\x20\40\x20\146\157\162\x20\x28\x76\x61\162\x20\x69\x20\75\40\x30\x3b\x20\151\x20\74\40\x69\144\163\56\154\145\x6e\147\164\150\73\x20\151\x2b\x2b\x29\xa\x20\40\x20\x20\x20\40\x20\40\x20\40\x20\x20\x20\40\40\40\x7b\xa\40\x20\x20\x20\x20\40\40\40\x20\40\40\40\x20\40\x20\40\40\40\40\40\166\x61\162\x20\162\x6f\167\x49\144\40\75\40\151\144\x73\133\x69\x5d\x3b\xa\x20\x20\40\40\40\x20\40\x20\x20\x20\x20\40\x20\40\40\x20\x20\40\40\40\x76\141\162\40\x72\x6f\x77\x44\x61\x74\141\x20\x3d\x20\x70\150\160\x47\x72\x69\x64\137" .
            $this->sql_table .
            "\56\x6a\x71\107\162\151\144\x20\50\x22\x67\145\x74\x52\157\167\104\x61\164\141\x22\x2c\x20\162\157\167\111\x64\51\73" .
            "\12";
        $compare_condition = "\151\146\x28";
        foreach ($conditions as $column => $compare_operand) {
            if (
                trim($compare_operand) == "\174\174" ||
                trim($compare_operand) == "\46\x26"
            ) {
                $compare_operand =
                    $compare_operand == "\x7c\x7c" ? "\46\x26" : "\x7c\174";
                $compare_condition .= $compare_operand;
            } else {
                $compare_condition .=
                    "\40\41\50\160\150\x70\107\x72\151\x64\137" .
                    $this->sql_table .
                    "\x2e\x6a\x71\x47\162\151\144\50\x22\147\x65\164\103\x65\154\154\x22\54\40\162\157\167\x49\144\54\40\42" .
                    trim($column) .
                    "\42\51\x20" .
                    trim($compare_operand) .
                    "\x29\40";
            }
        }
        $compare_condition .= "\51";
        $onGridLoadComplete_script_end =
            "\xa\40\40\x20\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\40\x20\x20\x20\x20\40\173\xa\40\40\40\x20\40\40\x20\x20\x20\40\x20\40\x20\40\x20\x20\40\40\40\x20\40\40\40\x20\x70\x68\x70\107\162\x69\144\x5f" .
            $this->sql_table .
            "\56\x6a\161\107\x72\151\x64\x28\42\163\145\164\x43\x65\154\154\42\54\x20\x72\157\x77\x49\144\54\40\x22\141\143\164\151\x6f\156\x73\42\54\40\x22\40\x7a\x7a\x7a\x20\42\54\x20\x7b\42\x64\151\x73\160\x6c\141\x79\x22\72\x22\156\x6f\x6e\x65\x22\x7d\51\x3b\40\57\57\x20\x6e\x6f\164\40\x70\x6f\x73\163\151\x62\x6c\145\40\x74\x6f\x20\163\145\x74\40\166\141\x6c\165\145\40\146\x6f\162\40\x76\151\x72\x74\165\141\154\x20\143\x6f\x6c\165\x6d\x6e\xa\40\x20\40\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\40\x20\x20\40\40\x7d\xa\40\40\40\x20\x20\x20\x20\40\x20\40\x20\x20\40\x20\40\40\x7d\xa\xa\40\40\x20\x20\40\40\x20\40\x20\40\x20\x20\x7d";
        $this->add_column(
            "\x61\x63\x74\151\x6f\156\163",
            [
                "\156\x61\x6d\x65" => "\x61\143\164\x69\157\x6e\x73",
                "\x69\156\x64\145\x78" => "\141\x63\164\151\157\156\x73",
                "\x77\x69\x64\x74\x68" => "\x38\60",
                "\x66\x6f\x72\x6d\141\x74\x74\x65\162" =>
                    "\141\x63\x74\x69\157\x6e\x73",
                "\x66\157\162\x6d\141\164\x6f\x70\x74\x69\157\x6e\163" => [
                    "\x6b\145\171\163" => true,
                ],
            ],
            "\101\143\x74\151\x6f\x6e\163"
        );
        $this->set_grid_property([
            "\157\x6e\x53\145\154\x65\x63\164\122\x6f\x77" => "",
        ]);
        $this->add_event(
            "\x6a\161\107\x72\x69\x64\114\x6f\141\x64\103\x6f\155\x70\154\145\164\145",
            $onGridLoadComplete_script_begin .
                $compare_condition .
                $onGridLoadComplete_script_end
        );
    }
    public function enable_search($can_search)
    {
        $this->has_tbarsearch = $can_search;
        return $this;
    }
    public function enable_advanced_search($has_adsearch)
    {
        $this->advanced_search = $has_adsearch;
        return $this;
    }
    public function set_multiselect($multiselect)
    {
        $this->jq_multiselect = $multiselect;
        return $this;
    }
    public function has_multiselect()
    {
        return $this->jq_multiselect;
    }
    public function set_col_required($arr)
    {
        $this->col_required = preg_split(
            "\x2f\x5b\x5c\x73\x5d\x2a\x5b\54\x5d\x5b\134\x73\135\52\x2f",
            $arr
        );
        return $this;
    }
    public function set_col_title($col_name, $new_title)
    {
        $this->col_titles[$col_name] = $new_title;
        return $this;
    }
    public function get_col_titles()
    {
        return $this->col_titles;
    }
    public function set_col_link($col_name, $target = "\x5f\x6e\x65\x77")
    {
        $this->col_formats[$col_name]["\154\x69\156\x6b"] = [
            "\x74\x61\162\147\x65\164" => $target,
        ];
        return $this;
    }
    public function set_col_date(
        $col_name,
        $srcformat = "\x59\55\155\55\x64",
        $newformat = "\x59\x2d\x6d\55\144",
        $datePickerFormat = "\x59\x2d\x6d\55\x64"
    ) {
        $this->col_formats[$col_name]["\144\141\x74\x65"] = [
            "\x73\x72\x63\x66\157\162\155\141\x74" => $srcformat,
            "\x6e\x65\x77\146\157\162\155\x61\164" => $newformat,
            "\x64\x61\x74\x65\120\151\143\153\145\162\106\157\x72\x6d\141\x74" => $datePickerFormat,
        ];
        return $this;
    }
    public function set_col_currency(
        $col_name,
        $prefix = "\44",
        $suffix = "",
        $thousandsSeparator = "\x2c",
        $decimalSeparator = "\x2e",
        $decimalPlaces = "\x32",
        $defaultValue = "\x30\56\x30\60"
    ) {
        $this->col_formats[$col_name]["\x63\x75\x72\162\145\156\x63\171"] = [
            "\160\x72\x65\x66\151\x78" => $prefix,
            "\163\165\x66\x66\151\x78" => $suffix,
            "\164\150\x6f\x75\x73\x61\156\144\163\x53\x65\160\141\x72\x61\x74\157\162" => $thousandsSeparator,
            "\x64\145\x63\151\x6d\141\154\x53\x65\x70\x61\x72\141\x74\157\x72" => $decimalSeparator,
            "\x64\x65\143\151\155\141\x6c\x50\x6c\x61\x63\145\x73" => $decimalPlaces,
            "\144\145\x66\x61\165\154\x74\126\x61\x6c\x75\145" => $defaultValue,
        ];
        return $this;
    }
    public function set_col_img($col_name, $baseUrl = "")
    {
        $this->col_formats[$col_name]["\151\155\x61\147\145"] = [
            "\x62\141\163\145\125\x72\154" => $baseUrl,
        ];
        $this->img_baseUrl = $baseUrl;
        return $this;
    }
    public function set_col_format($col_name, $format, $formatoptions = [])
    {
        $this->col_formats[$col_name][$format] = $formatoptions;
        return $this;
    }
    public function set_col_dynalink(
        $col_name,
        $baseLinkUrl = "",
        $dynaParam = "\x69\x64",
        $addParam = "",
        $target = "\137\x6e\145\x77"
    ) {
        $sFormatter =
            "\146\165\x6e\x63\164\151\x6f\x6e\x20" .
            $col_name .
            "\x5f\143\x75\x73\x74\157\155\x46\157\162\155\x61\x74\164\145\x72\50\143\145\154\154\126\141\x6c\x75\145\54\x20\x6f\160\164\x69\157\156\163\54\x20\x72\x6f\x77\x4f\x62\x6a\145\143\x74\51\x7b\40\45\163\x20\x7d";
        $sUnformatter =
            "\146\x75\x6e\x63\164\x69\157\156\x20" .
            $col_name .
            "\137\143\165\163\164\x6f\155\125\x6e\146\x6f\x72\155\141\x74\x74\x65\162\50\143\x65\154\x6c\x56\x61\154\x75\x65\54\40\157\160\x74\x69\157\156\x73\54\x20\162\x6f\x77\117\142\152\x65\x63\164\51\173\x20\45\163\40\x7d";
        $results = $this->db->select_limit($this->sql, 1, 1);
        $dynaParamQs = "";
        if ($this->jq_datatype != "\154\x6f\143\141\154") {
            if (is_array($dynaParam) && !empty($dynaParam)) {
                foreach ($dynaParam as $key => $value) {
                    $dynaParamQs .=
                        $value .
                        "\75\x22\40\53\x20\145\156\x63\157\144\x65\125\122\111\103\157\155\160\x6f\156\145\x6e\164\x28\x72\157\x77\117\x62\152\x65\143\164\133" .
                        $this->db->field_index($results, $value) .
                        "\x5d\x29\40\x2b\40\x22\x26";
                }
                $dynaParamQs = rtrim($dynaParamQs, "\x26");
            } else {
                $dynaParamQs .=
                    $dynaParam .
                    "\x3d\x22\40\53\40\145\156\x63\157\144\145\x55\122\111\x43\x6f\x6d\x70\x6f\156\145\156\x74\x28\x72\x6f\167\x4f\142\152\x65\x63\x74\x5b" .
                    $this->db->field_index($results, $dynaParam) .
                    "\x5d\51\40\x2b\40\42";
            }
        } else {
            if (is_array($dynaParam) && !empty($dynaParam)) {
                foreach ($dynaParam as $key => $value) {
                    $dynaParamQs .=
                        $value .
                        "\75\x22\x20\x2b\x20\145\156\143\157\144\x65\125\122\111\x43\x6f\155\x70\157\156\145\156\x74\x28\162\157\167\117\x62\x6a\145\143\x74\x2e" .
                        $value .
                        "\x29\40\53\x20\x22\46";
                }
                $dynaParamQs = rtrim($dynaParamQs, "\x26");
            } else {
                $dynaParamQs .=
                    $dynaParam .
                    "\x3d\42\x20\x2b\x20\145\156\x63\x6f\144\145\x55\122\111\103\157\155\160\x6f\x6e\x65\156\164\50\162\x6f\x77\117\142\152\x65\x63\x74\x2e" .
                    $dynaParam .
                    "\51\x20\x2b\40\42";
            }
        }
        $sVal =
            "\40\x20\40\40\40\40\x20\40\40\40\x20\40\x20\40\x20\40\40\x20\x20\40\40\40\x20\40\40\x20\40\40\40\40\40\xa\40\x20\40\x20\40\40\x20\40\x76\141\x72\x20\x70\141\x72\141\155\x73\x20\75\40\42\x3f" .
            $dynaParamQs .
            $addParam .
            "\42\73\xa\40\x20\x20\x20\40\40\x20\40\166\x61\x72\x20\165\162\154\40\x3d\x20\x27" .
            $baseLinkUrl .
            "\x27\x20\x2b\x20\x70\x61\162\x61\155\163\x3b\12\x20\40\x20\x20\x20\x20\40\x20\xa\40\x20\x20\40\40\40\x20\40\162\x65\x74\165\x72\x6e\40\47\74\x61\40\x68\162\145\x66\75\42\47\x2b\165\162\154\53\x27\42\40\164\x61\x72\147\145\x74\75\42" .
            $target .
            "\42\40\x76\x61\x6c\165\x65\75\x22\x27\40\x2b\40\143\x65\154\x6c\x56\141\154\x75\x65\40\x2b\40\x27\x22\76\x27\x2b\x63\x65\x6c\154\x56\x61\154\x75\x65\53\47\74\57\x61\x3e\47\73\12\x20\40\x20\x20\40\x20\x20\40";
        $sFormatter = sprintf($sFormatter, $sVal);
        $sUnformatter = sprintf(
            $sUnformatter,
            "\x76\141\x72\x20\157\x62\x6a\40\x3d\x20\x6a\121\165\x65\x72\171\50\x72\157\x77\x4f\x62\152\145\143\x74\51\x2e\150\x74\155\x6c\50\51\73\x20\162\145\164\165\162\156\40\x6a\x51\x75\x65\162\171\x28\157\x62\152\x29\x2e\x61\164\164\x72\50\x22\x76\x61\154\165\x65\42\x29\73"
        );
        $this->col_custom .= $sFormatter . "\xa" . $sUnformatter;
        $this->col_formats[$col_name]["\x63\x75\x73\x74\x6f\x6d"] = $addParam;
        return $this;
    }
    public function set_dimension(
        $w,
        $h = "\x31\60\x30\x25",
        $shrinkToFit = true
    ) {
        $this->jq_width = $w;
        $this->jq_height = $h;
        $this->jq_shrinkToFit = $shrinkToFit;
        return $this;
    }
    public function enable_resize($is_resizable, $min_w = 350, $min_h = 80)
    {
        $this->jqu_resize[
            "\x69\x73\137\162\x65\163\x69\172\x61\142\x6c\x65"
        ] = $is_resizable;
        $this->jqu_resize["\x6d\151\x6e\x5f\x77\151\144\164\x68"] = $min_w;
        $this->jqu_resize["\155\x69\x6e\x5f\150\145\x69\147\x68\164"] = $min_h;
        return $this;
    }
    public function set_masterdetail($obj_grid, $fkey)
    {
        $gdNo = count($this->obj_md) + 1;
        if ($obj_grid instanceof C_DataGrid) {
            $obj_grid->set_jq_gridName($this->jq_gridName . "\137\x64" . $gdNo);
            $obj_grid->set_jq_pagerName(
                trim($this->jq_pagerName, "\42") . "\x5f\144" . $gdNo
            );
            $obj_grid->set_jq_url(
                ABS_PATH .
                    "\x2f\x6d\141\x73\164\145\x72\144\x65\164\141\x69\x6c\x2e\160\x68\160\77\144\x74\x3d" .
                    $this->jq_datatype .
                    "\46\147\x6e\x3d" .
                    $obj_grid->jq_gridName .
                    "\46" .
                    JQGRID_ROWID_KEY .
                    "\75"
            );
            $obj_grid->set_jq_editurl(
                ABS_PATH .
                    "\x2f" .
                    $this->edit_file .
                    "\x3f\144\164\x3d" .
                    $this->jq_datatype .
                    "\46\x67\x6e\75" .
                    $obj_grid->jq_gridName .
                    "\x26\163\x72\x63\x3d\155\144"
            );
            $obj_grid->set_sql_fkey($fkey);
            $obj_grid->enable_search(false);
            $obj_grid->prepare_grid();
            $this->obj_md[] = $obj_grid;
        } else {
            echo "\x49\156\166\141\x6c\x69\x64\40\x6d\141\x73\x74\x65\162\x2f\144\145\x74\141\151\x6c\x20\157\142\152\145\x63\164\56";
        }
        return $this;
    }
    public function set_subgrid($obj_grid, $d_fkey, $m_fkey = -1)
    {
        if ($obj_grid instanceof C_DataGrid) {
            $m_fkey = $m_fkey == -1 ? $d_fkey : $m_fkey;
            $this->jq_gridview = false;
            $obj_grid->set_jq_url(
                ABS_PATH .
                    "\57\x73\x75\x62\x67\162\x69\144\x2e\160\150\160\x3f\x64\x74\75" .
                    $this->jq_datatype .
                    "\x26\x67\156\75" .
                    $this->jq_gridName .
                    "\x26\x73\147\x6e\75" .
                    $obj_grid->get_jq_gridName() .
                    "\46\155\137\x66\153\x65\171\x3d" .
                    $m_fkey .
                    "\x26" .
                    JQGRID_ROWID_KEY .
                    "\x3d"
            );
            $obj_grid->set_sql_fkey($d_fkey);
            $obj_grid->prepare_grid();
            $this->obj_subgrid = $obj_grid;
        } else {
            echo "\x49\156\x76\141\154\x69\144\40\x73\165\142\147\x72\x69\x64\x20\x6f\x62\x6a\145\143\164\56";
        }
        return $this;
    }
    public function set_jq_pagerName($pagerName, $add_quote = true)
    {
        $this->jq_pagerName = $add_quote
            ? "\x22" . $pagerName . "\42"
            : $pagerName;
        return $this;
    }
    public function set_jq_gridName($gridName)
    {
        $this->jq_gridName = $gridName;
        $this->jq_pagerName =
            "\x22\x23" . $gridName . "\x5f\160\141\147\x65\162\61\x22";
        $this->jq_url =
            "\x22" .
            ABS_PATH .
            "\57\x64\141\164\141\x2e\160\150\x70\x3f\144\164\x3d" .
            $this->jq_datatype .
            "\46\x67\x6e\x3d" .
            $gridName .
            "\42";
        $this->export_url =
            ABS_PATH .
            "\57\x65\170\160\x6f\x72\164\56\160\150\x70\x3f\144\x74\75" .
            $this->jq_datatype .
            "\x26\147\156\x3d" .
            $this->jq_gridName .
            ($this->export_type != ""
                ? "\x26\x65\x78\x70\x6f\162\x74\x5f\164\171\x70\x65\x3d" .
                    $this->export_type
                : "");
        return $this;
    }
    public function get_jq_gridName()
    {
        return $this->jq_gridName;
    }
    public function set_sortname($sortname, $sortorder = "\x41\123\103")
    {
        $this->jq_sortname = $sortname;
        $this->jq_sortorder = $sortorder;
        return $this;
    }
    public function enable_export($type = "\105\x58\103\105\114")
    {
        $this->export_type = $type;
        return $this;
    }
    public function set_col_edittype(
        $col_name,
        $ctrl_type,
        $keyvalue_pair = null,
        $multiple = false,
        $dataUrl = null
    ) {
        if (
            $ctrl_type == "\x73\x65\x6c\x65\143\x74" ||
            $ctrl_type == "\x61\x75\164\x6f\x63\x6f\x6d\x70\x6c\x65\164\x65"
        ) {
            $select_list = "";
            $regex =
                "\x2f\x53\105\x4c\105\103\124\x20\x28\x2e\52\77\x29\40\106\x52\117\115\x20\57\x69";
            $data = "";
            $matches = [];
            if (preg_match($regex, $keyvalue_pair, $matches)) {
                $select_kv = explode("\x2c", $matches[1]);
                $select_kv = array_map("\164\162\x69\155", $select_kv);
                $result = $this->db->select_limit_array($keyvalue_pair, -1, 0);
                foreach ($result as $i => $val) {
                    $select_list .=
                        $result[$i][0] . "\72" . $result[$i][1] . "\73";
                }
                $select_list = rtrim($select_list, "\x3b");
                $keyvalue_pair = $select_list;
            }
        }
        if ($ctrl_type == "\x63\150\145\x63\x6b\x62\157\x78") {
            $this->set_col_format(
                $col_name,
                "\143\x68\145\x63\x6b\142\x6f\x78"
            );
            $this->set_col_align($col_name, "\x63\145\156\164\145\x72");
        }
        if ($ctrl_type == "\141\165\164\157\x63\157\x6d\x70\x6c\145\164\145") {
            $ctrl_type = "\163\145\x6c\x65\x63\164";
            $this->col_edittypes[$col_name]["\x74\x79\x70\145"] =
                "\x73\145\x6c\x65\x63\164";
            $this->col_autocomplete[$col_name] = $col_name;
            self::$has_autocomplete = true;
        }
        if ($ctrl_type == "\163\145\154\x65\143\x74") {
            $this->col_edittypes[$col_name][
                "\x6d\x75\x6c\164\x69\x70\x6c\x65"
            ] = $multiple;
            $this->col_edittypes[$col_name][
                "\x64\141\x74\x61\x55\x72\x6c"
            ] = $dataUrl;
        }
        $this->col_edittypes[$col_name]["\164\171\x70\145"] = $ctrl_type;
        $this->col_edittypes[$col_name][
            "\166\141\x6c\x75\x65"
        ] = $keyvalue_pair;
        return $this;
    }
    public function set_row_color(
        $hover_color,
        $highlight_color = null,
        $altrow_color = null
    ) {
        $this->alt_colors["\150\157\166\145\162"] = $hover_color;
        $this->alt_colors[
            "\x68\151\147\x68\154\151\x67\x68\164"
        ] = $highlight_color;
        $this->alt_colors["\141\x6c\164\162\157\167"] = $altrow_color;
        return $this;
    }
    public function set_conditional_row_color(
        $colName,
        $condition = [],
        $default = ""
    ) {
        $this->jq_conditionalRows[] = [
            "\x63\157\x6c" => $colName,
            "\144\x65\x66\x61\x75\x6c\164" => $default,
            "\x63\x6f\156\144\x69\x74\151\157\x6e" => $condition,
        ];
        return $this;
    }
    public function set_conditional_cell_color(
        $colName,
        $condition = [],
        $default = ""
    ) {
        $this->jq_conditionalRows[] = [
            "\x63\157\154" => $colName,
            "\x64\x65\x66\x61\x75\x6c\x74" => $default,
            "\143\157\x6e\144\x69\164\151\157\x6e" => $condition,
        ];
        return $this;
    }
    public function set_theme($theme)
    {
        $this->theme_name = $theme;
        return $this;
    }
    public function set_locale($locale)
    {
        $this->locale = $locale;
        return $this;
    }
    public function enable_debug($debug)
    {
        return $this;
    }
    public function set_caption($caption)
    {
        if ($caption == "") {
            $caption = "\x26\x6e\x62\163\x70\73";
        }
        $this->jq_caption = $caption;
        return $this;
    }
    public function set_pagesize($pagesize)
    {
        $this->jq_rowNum = $pagesize;
        return $this;
    }
    public function enable_rownumbers($has_rownumbers)
    {
        $this->jq_rownumbers = $has_rownumbers;
        return $this;
    }
    public function set_col_width($col_name, $width)
    {
        $this->col_widths[$col_name]["\167\151\144\x74\x68"] = $width;
        return $this;
    }
    public function get_col_width()
    {
        return $this->col_widths;
    }
    public function set_col_align($col_name, $align = "\154\x65\x66\x74")
    {
        $this->col_aligns[$col_name]["\141\x6c\151\147\x6e"] = $align;
        return $this;
    }
    public function get_col_align()
    {
        return $this->col_aligns;
    }
    public function set_group_properties(
        $feildname,
        $groupCollapsed = false,
        $showSummaryOnHide = true
    ) {
        $this->jq_grouping = true;
        $this->jq_group_summary_show = $groupColumnShow;
        $this->jq_group_name = $feildname;
        $this->jq_groupcollapse = $groupCollapsed;
        $this->jq_showSummaryOnHide = $showSummaryOnHide;
        return $this;
    }
    public function set_group_summary($col_name, $summaryType)
    {
        $this->jq_is_group_summary = true;
        $this->jq_summary_col_name[$col_name][
            "\163\x75\x6d\155\141\x72\171\x54\x79\160\145"
        ] = $summaryType;
        return $this;
    }
    public function enable_kb_nav($is_enabled = false)
    {
        $this->kb_nav = $is_enabled;
        return $this;
    }
    public function setCallbackString($string)
    {
        $this->callbackstring =
            "\46\137\137\x63\x62\x73\164\x72\x3d" .
            strtr(rtrim(base64_encode($string), "\75"), "\x2b\x2f", "\55\x5f");
        $this->jq_url =
            substr($this->jq_url, 0, -1) . $this->callbackstring . "\42";
        $this->export_url .= $this->callbackstring;
        return $this;
    }
    public function enable_autowidth($autowidth = false)
    {
        $this->jq_autowidth = $autowidth;
        if ($autowidth) {
            $this->script_ude_handler .=
                "\44\x28\167\151\x6e\144\157\x77\x29\56\142\151\x6e\144\x28\x22\162\x65\x73\x69\x7a\x65\42\x2c\x20\x66\x75\x6e\143\164\151\157\x6e\x28\51\40\x7b\12\40\x20\40\40\x20\40\40\40\x20\40\40\x20\40\40\x20\x20\40\40\x20\40\160\150\x70\107\162\151\x64\x5f" .
                $this->sql_table .
                "\x2e\x73\x65\164\107\162\151\144\x57\151\x64\164\x68\x28\44\50\x77\151\156\144\157\167\51\x2e\x77\151\x64\164\x68\x28\51\51\73\12\40\40\40\x20\40\x20\40\x20\x20\x20\40\x20\x20\x20\x20\x20\175\x29\56\164\162\151\x67\x67\x65\162\50\42\x72\x65\163\x69\172\x65\42\51\73" .
                "\12";
        }
        return $this;
    }
    public function enable_autoheight($autoheight = false)
    {
        if ($autoheight) {
            $this->script_ude_handler .=
                "\x76\x61\162\40\x67\x72\151\144\x5f\150\145\151\x67\150\x74\40\x3d\40\44\50\167\x69\x6e\144\x6f\167\x29\x2e\150\x65\151\147\150\164\x28\51\x20\x2d\12\x20\40\40\x20\x20\40\40\40\x20\40\x20\x20\x20\40\x20\x20\40\x20\40\x20\x24\50\x22\x2e\x75\151\x2d\152\161\x67\162\x69\144\40\56\165\x69\55\x6a\x71\x67\x72\x69\144\55\164\151\x74\x6c\x65\142\x61\x72\x22\x29\56\150\x65\x69\x67\x68\164\x28\51\40\x2d\xa\x20\40\40\x20\x20\x20\x20\40\x20\40\40\x20\40\x20\x20\40\x20\x20\x20\x20\x24\x28\42\56\165\x69\55\152\x71\147\x72\x69\x64\x20\x2e\x75\151\x2d\x6a\161\147\x72\151\144\x2d\x68\x62\157\170\42\x29\56\x68\x65\x69\x67\150\x74\50\x29\x20\x2d\12\x20\40\40\x20\x20\x20\x20\40\40\40\40\x20\40\40\x20\40\40\40\x20\40\44\x28\160\x68\160\107\x72\x69\x64\x5f" .
                $this->sql_table .
                "\x2e\x67\145\164\x47\x72\x69\x64\x50\x61\x72\x61\155\x28\x22\x70\141\147\145\x72\x22\51\51\x2e\150\145\x69\x67\x68\164\50\x29\x20\55\40\61\60\x3b\12\x20\x20\x20\40\x20\x20\40\40\40\x20\x20\x20\40\x20\40\40\x24\50\x77\151\156\x64\x6f\167\51\x2e\142\x69\x6e\x64\x28\42\162\x65\163\x69\172\x65\42\x2c\40\146\165\156\x63\164\151\x6f\x6e\50\51\x20\173\xa\x20\40\40\40\40\40\x20\x20\x20\x20\40\x20\40\40\40\40\40\x20\x20\x20\x70\x68\160\107\x72\x69\x64\137" .
                $this->sql_table .
                "\x2e\152\161\x47\162\x69\144\x28\42\163\x65\x74\107\x72\x69\x64\x48\145\151\147\x68\x74\x22\x2c\40\147\x72\151\x64\x5f\x68\145\151\147\150\x74\x20\x29\73\12\40\40\x20\40\40\40\x20\40\x20\x20\x20\40\x20\x20\x20\x20\175\x29\56\164\x72\x69\147\x67\145\x72\x28\x22\162\145\163\x69\x7a\145\42\x29\73" .
                "\12";
        }
        return $this;
    }
    public function get_display($add_script_includeonce = true)
    {
        if ($add_script_includeonce) {
            return $this->script_includeonce . $this->script_body;
        } else {
            return $this->script_body;
        }
    }
    public function set_form_dimension($f_width, $f_height = "\x31\x30\60\x25")
    {
        $this->form_width = $f_width;
        $this->form_height = $f_height;
        return $this;
    }
    public function set_col_default($col_name, $default = "")
    {
        $this->col_default[$col_name] = $default;
        return $this;
    }
    public function set_col_frozen($col_name, $value = true)
    {
        $this->col_frozen[$col_name] = $value;
        return $this;
    }
    public function add_event($event_name, $js_event_handler)
    {
        $this->script_ude_handler .=
            "\160\x68\160\107\162\x69\144\x5f" .
            $this->sql_table .
            "\56\x62\151\156\144\x28\42" .
            $event_name .
            "\x22\54\40" .
            $js_event_handler .
            "\x29\x3b" .
            "\xa";
        return $this;
    }
    private function parse_to_script($obj)
    {
        if (is_array($obj)) {
            $arr = [];
            foreach ($obj as $key => $value) {
                if (is_string($value)) {
                    $script = preg_replace(
                        "\57\133\x5c\170\x30\60\55\x5c\x78\61\x46\134\170\70\60\55\134\170\106\106\x5d\57",
                        "",
                        $value
                    );
                    if (
                        preg_match(
                            "\57\x66\165\156\x63\x74\x69\x6f\x6e\x5c\50\133\x5e\51\x5d\x2e\52\x5c\51\x2f\151",
                            $script
                        )
                    ) {
                        $script = "\43\43\43" . $script . "\x23\43\43";
                    }
                    $arr[$key] = $script;
                } else {
                    $arr[$key] = $value;
                }
            }
            return $arr;
        } elseif (is_string($obj)) {
            $script = preg_replace(
                "\x2f\x5b\x5c\170\x30\x30\55\134\x78\61\x46\134\170\70\60\55\134\x78\106\x46\x5d\57",
                "",
                $obj
            );
            if (
                preg_match(
                    "\x2f\x66\165\x6e\143\x74\151\x6f\x6e\x5c\50\133\x5e\51\135\x2e\x2a\x5c\x29\57\151",
                    $script
                )
            ) {
                $script = "\43\x23\43" . $script . "\x23\43\x23";
            }
            return $script;
        }
    }
    public function set_col_property($col_name, $property = [])
    {
        $cust_property = [];
        foreach ($property as $prop_key => $prop_value) {
            if (is_string($prop_value) || is_array($prop_value)) {
                $prop_value = $this->parse_to_script($prop_value);
            }
            $cust_property[$prop_key] = $prop_value;
        }
        $this->cust_col_properties[$col_name] = $cust_property;
        return $this;
    }
    public function set_grid_property($property = [])
    {
        $this->cust_grid_properties = array_replace_recursive(
            $property,
            $this->cust_grid_properties
        );
        return $this;
    }
    public function set_col_edit_dimension($col_name, $width = 30, $height = 6)
    {
        $this->col_edit_dimension[$col_name]["\x77\151\x64\x74\x68"] = $width;
        $this->col_edit_dimension[$col_name][
            "\150\145\151\x67\150\164"
        ] = $height;
        return $this;
    }
    private function MapPath($file)
    {
        if (
            function_exists(
                "\141\x70\x61\x63\150\x65\137\x6c\x6f\157\153\165\x70\137\165\x72\151"
            )
        ) {
            $alu = apache_lookup_uri($file);
            return $alu->filename;
        }
        return $this
            ->col_fileupload["\x70\x68\x79\x73\151\143\141\x6c\137\160\x61\164\150"];
    }
    public function add_column(
        $col_name,
        $property = [],
        $title = "",
        $after = ""
    ) {
        $this->col_virtual[$col_name][
            "\160\162\157\160\145\x72\x74\x79"
        ] = $property;
        $this->col_virtual[$col_name]["\x74\x69\x74\154\x65"] =
            $title == "" ? $col_name : $title;
        $this->col_virtual[$col_name]["\141\x66\x74\x65\x72"] = $after;
        return $this;
    }
    public function set_col_customrule($col_name, $customrule_func)
    {
        $this->col_customrule[$col_name]["\x63\x75\x73\x74\157\x6d"] = true;
        $this->col_customrule[$col_name][
            "\x63\x75\x73\164\x6f\x6d\x5f\x66\165\156\x63"
        ] = $customrule_func;
        return $this;
    }
    private function display_before_script_end()
    {
        echo $this->before_script_end;
    }
    public function set_selectnetsted($col_sel_parent, $col_sel_child)
    {
        $this->set_col_property($col_sel_parent, [
            "\145\x64\151\x74\x6f\160\164\x69\157\x6e\x73" => [
                "\x64\141\164\x61\125\162\x6c" =>
                    "\144\x61\x74\141\56\x70\150\x70",
                "\142\165\x69\x6c\x64\x53\145\154\145\x63\164" =>
                    "\x66\x75\156\143\164\x69\x6f\x6e\x28\144\x61\x74\x61\51\173\xa\40\x20\x20\x20\40\40\40\40\x20\x20\40\x20\x20\40\40\x20\x20\40\40\x20\40\x20\x20\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\x20\40\166\141\162\x20\162\145\x73\x70\157\156\x73\145\x20\x3d\40\x6a\121\165\145\x72\x79\56\160\x61\x72\x73\x65\x4a\x53\117\x4e\x28\144\x61\x74\x61\x29\x3b\12\x20\x20\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\40\x20\x20\40\x20\x20\40\40\40\40\x20\40\40\x20\x20\x20\x20\x20\40\40\x20\166\x61\x72\x20\163\x20\75\40\42\74\163\145\154\x65\x63\164\76\x22\73\12\x20\x20\40\x20\40\40\40\x20\x20\40\40\40\40\40\x20\x20\40\x20\x20\40\x20\x20\x20\40\40\40\40\40\40\x20\x20\x20\x20\40\40\x20\x69\x66\x20\50\162\x65\x73\160\157\156\x73\145\x20\x26\46\x20\162\x65\x73\x70\157\156\x73\x65\x2e\154\145\156\x67\x74\150\51\x20\173\12\40\40\40\40\40\x20\x20\40\40\40\x20\x20\x20\40\40\40\x20\40\40\40\40\40\x20\x20\40\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\40\x20\40\40\x66\157\162\x20\50\166\141\162\x20\x69\x20\x3d\x20\x30\x2c\40\154\x20\75\x20\x72\x65\x73\160\x6f\x6e\163\145\56\154\145\156\147\x74\x68\73\x20\151\40\74\x20\x6c\73\40\x69\53\53\51\x20\x7b\12\x20\40\x20\x20\40\x20\x20\40\x20\40\x20\40\40\x20\x20\x20\x20\x20\40\40\x20\x20\40\40\40\40\40\40\40\x20\40\40\x20\40\x20\x20\40\40\40\x20\x20\40\40\40\x76\x61\x72\40\162\x69\40\75\40\162\x65\163\160\x6f\156\163\145\x5b\151\x5d\x3b\xa\40\40\40\40\40\x20\x20\40\40\x20\40\40\x20\x20\40\40\40\x20\40\40\40\40\40\40\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\x20\40\40\x20\40\x20\x20\x20\x20\163\40\x2b\75\40\42\74\x6f\160\x74\x69\157\156\40\166\x61\154\165\145\x3d\x5c\42\42\x20\53\x20\162\151\56\x56\x61\154\x75\x65\40\53\x20\x22\134\x22\x3e\x22\x20\x2b\x20\x72\x69\56\x54\x65\x78\x74\40\x2b\x20\42\x3c\57\157\x70\x74\151\157\156\x3e\x22\x3b\xa\40\40\x20\x20\40\x20\x20\40\x20\40\x20\x20\40\40\x20\x20\40\x20\x20\40\40\x20\40\x20\x20\40\x20\x20\x20\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x7d\xa\40\40\x20\x20\x20\40\x20\x20\x20\x20\40\40\x20\40\x20\40\40\40\40\40\40\40\x20\40\x20\40\40\x20\40\40\40\x20\x20\40\40\x20\175\xa\x20\x20\40\x20\40\40\x20\40\x20\x20\40\40\40\x20\40\x20\40\x20\x20\40\x20\x20\x20\40\40\40\x20\40\40\x20\x20\40\x20\40\40\40\x72\145\164\x75\162\x6e\40\163\x20\53\x20\42\74\57\x73\145\154\x65\x63\164\76\x22\73\xa\x20\40\x20\40\x20\x20\40\40\x20\40\x20\40\x20\x20\x20\40\40\40\40\40\40\40\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\x7d",
                "\x64\141\164\141\x45\x76\x65\156\x74\x73" => [
                    "\x74\x79\160\x65" => "\143\x68\141\156\147\x65",
                    "\x66\x6e" =>
                        "\146\165\x6e\x63\164\151\157\x6e\x20\x28\145\51\x20\x7b\xa\x20\40\x20\x20\x20\x20\x20\x20\40\x20\40\40\x20\x20\x20\40\40\40\x20\40\40\x20\40\x20\x76\x61\x72\40\166\x61\162\111\x44\125\156\x69\x64\x61\x64\x4d\x65\144\x69\144\x61\40\x3d\x20\145\56\x63\x75\x72\x72\x65\x6e\164\124\x61\x72\147\x65\164\x2e\x76\x61\x6c\x75\145\x3b\12\x20\x20\40\x20\x20\40\x20\40\x20\40\40\40\40\40\x20\40\x20\40\x20\x20\40\x20\40\x20\x24\x2e\141\x6a\141\170\x28\173\xa\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\40\40\x20\x20\x20\40\x20\40\40\x20\40\40\x20\x20\x75\x72\154\x3a\x20\42\x64\141\164\141\42\54\xa\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\40\x20\x20\x20\x20\40\x20\40\40\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x20\164\171\x70\x65\72\x20\x22\107\105\124\42\x2c\xa\40\x20\x20\x20\x20\40\40\x20\x20\x20\x20\x20\40\40\40\40\x20\40\40\x20\x20\x20\40\40\40\x20\40\40\40\x20\x20\x20\163\x75\x63\x63\145\163\163\72\x20\x66\x75\x6e\x63\x74\x69\157\x6e\x20\50\x50\x6c\141\172\x6f\x73\112\x73\157\x6e\x29\x20\x7b\xa\40\40\x20\40\x20\x20\40\x20\40\x20\x20\40\40\x20\40\40\40\40\40\x20\x20\40\x20\40\x20\x20\x20\40\40\40\40\x20\166\141\x72\x20\160\x6c\x61\172\x6f\163\x20\x3d\40\x65\166\141\154\50\120\x6c\x61\x7a\x6f\163\112\x73\157\x6e\x29\x3b\xa\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\x20\x20\40\x20\40\x20\40\40\40\x20\40\x20\40\x20\x20\166\x61\162\40\x70\x6c\x61\172\x6f\x73\110\x74\155\154\40\x3d\40\42\42\x3b\xa\40\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\x20\40\x20\40\40\40\x20\x20\40\40\40\40\40\x20\40\40\x20\40\40\x24\x28\160\154\x61\x7a\157\163\51\56\145\141\143\150\x28\x66\165\x6e\x63\x74\151\157\156\x20\50\151\x2c\x20\157\160\164\151\157\x6e\51\40\x7b\12\x20\40\40\x20\x20\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\x20\40\x20\40\x20\x20\40\40\40\40\x20\40\40\x70\154\x61\172\157\163\x48\x74\155\x6c\x20\x2b\x3d\40\42\74\157\x70\164\151\x6f\x6e\40\x76\x61\154\x75\145\75\134\x22\x22\40\x2b\40\x6f\x70\164\x69\x6f\156\56\x56\141\154\x75\x65\40\53\40\x22\134\x22\76\42\x20\53\x20\x6f\160\x74\151\x6f\x6e\x2e\x54\x65\x78\164\x20\x2b\x20\42\x3c\57\157\x70\x74\151\157\x6e\x3e\x22\x3b\12\40\x20\x20\x20\40\40\x20\x20\x20\x20\40\x20\x20\40\40\x20\40\x20\40\x20\40\40\x20\40\x20\x20\40\x20\x20\40\x20\x20\175\x29\73\xa\12\40\40\40\40\x20\x20\x20\40\x20\40\40\40\40\x20\40\40\40\x20\x20\x20\40\40\40\x20\40\40\x20\x20\40\40\40\40\151\x66\40\50\44\50\145\x2e\164\x61\162\x67\145\164\51\x2e\151\x73\x28\42\x2e\x46\x6f\162\155\x45\154\145\155\x65\x6e\x74\42\51\x29\40\x7b\12\x20\x20\40\40\40\x20\x20\40\x20\x20\40\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\40\40\40\40\x20\x20\x20\x20\x20\40\40\40\166\141\162\40\146\x6f\x72\155\40\75\x20\x24\50\145\x2e\164\141\x72\147\145\x74\51\x2e\x63\154\x6f\163\145\163\x74\x28\42\x66\x6f\x72\155\56\x46\x6f\x72\x6d\x47\x72\151\x64\42\51\73\xa\40\40\40\40\40\40\40\x20\x20\40\40\x20\x20\40\40\x20\40\x20\x20\40\40\x20\40\40\40\40\40\x20\40\x20\40\x20\x20\x20\x20\x20\44\x28\x22\163\145\154\145\143\164\x23\x70\141\162\x50\x6c\141\172\157\56\106\x6f\x72\155\x45\154\x65\x6d\x65\x6e\x74\42\54\x20\x66\x6f\x72\x6d\133\60\135\x29\56\150\164\155\x6c\x28\160\x6c\141\172\157\x73\110\x74\155\154\51\73\xa\x20\x20\x20\40\x20\x20\40\x20\40\x20\x20\40\x20\40\x20\40\x20\x20\40\40\40\40\40\x20\40\x20\40\40\40\x20\x20\x20\175\40\145\154\163\145\40\173\xa\x20\40\x20\x20\x20\x20\x20\x20\x20\40\40\40\40\x20\x20\x20\x20\x20\x20\40\40\40\40\40\40\40\x20\x20\40\40\40\x20\40\40\40\x20\166\141\x72\x20\x72\x6f\167\x20\75\40\44\50\x65\56\164\141\162\147\x65\164\51\56\143\x6c\x6f\x73\145\163\164\x28\x22\x74\x72\56\x6a\x71\x67\162\x6f\x77\x22\x29\x3b\xa\x20\x20\x20\40\x20\40\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\40\40\40\x20\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x76\141\162\40\x72\157\x77\x49\144\x20\x3d\40\162\x6f\167\x2e\141\x74\164\162\50\x22\x69\x64\42\x29\x3b\12\x20\40\x20\x20\40\x20\x20\x20\40\40\x20\x20\40\40\x20\40\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\40\40\40\40\x20\x20\x20\40\x20\x76\x61\162\40\x72\157\167\x49\x64\40\75\40\x6a\x51\165\145\x72\171\50\x22\x23\x67\x72\x69\x64\42\x29\x2e\152\x71\107\x72\151\144\50\x22\147\x65\164\x47\162\x69\144\120\141\x72\141\155\x22\x2c\x20\x22\163\x65\x6c\162\x6f\167\x22\51\73\12\x20\40\x20\40\x20\40\40\40\x20\40\40\40\40\40\40\x20\40\x20\x20\x20\40\40\x20\x20\40\40\40\x20\x20\40\40\40\40\40\40\x20\x6a\121\165\x65\162\x79\x28\42\163\x65\x6c\x65\143\164\x23\x22\40\x2b\40\x72\157\167\111\144\x20\x2b\40\x22\137\x70\x61\x72\120\x6c\x61\172\x6f\x22\51\56\141\160\x70\x65\156\x64\50\x70\x6c\x61\x7a\x6f\163\x48\164\x6d\154\x29\x3b\12\x20\x20\x20\x20\x20\x20\x20\x20\40\40\40\x20\40\x20\40\x20\40\x20\40\x20\40\40\40\40\40\x20\40\x20\x20\x20\x20\x20\x7d\xa\x20\40\40\x20\40\40\x20\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\x20\x20\x20\40\x20\40\40\x20\40\x20\x7d\12\40\x20\40\40\40\40\40\40\40\x20\40\40\40\40\40\40\x20\40\x20\x20\x20\x20\40\40\x7d\x29\x3b\12\x20\x20\x20\x20\40\x20\x20\x20\x20\40\40\x20\40\x20\x20\40\x20\40\x20\40\175",
                ],
            ],
        ]);
        $this->set_col_property($col_sel_child, [
            "\x65\144\151\x74\x6f\x70\164\x69\157\x6e\163" => [
                "\x64\141\x74\x61\x55\x72\x6c" =>
                    "\144\x61\x74\x61\x2e\160\150\x70",
                "\142\x75\x69\x6c\x64\x53\x65\x6c\x65\x63\164" =>
                    "\x66\165\156\x63\x74\151\157\156\50\x64\x61\x74\141\51\x7b\xa\40\x20\40\x20\40\x20\x20\x20\x20\40\x20\40\40\40\x20\40\40\40\x20\x20\40\x20\x20\x20\x20\40\40\40\x20\x20\x20\x20\x20\x20\40\x20\x76\x61\x72\x20\162\145\x73\x70\x6f\x6e\163\145\40\x3d\x20\x6a\x51\x75\x65\162\x79\56\x70\141\162\163\145\x4a\x53\x4f\x4e\x28\x64\x61\x74\x61\x29\73\12\40\x20\x20\x20\40\40\40\x20\40\x20\x20\x20\40\40\x20\40\x20\x20\x20\40\40\40\40\x20\x20\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\166\x61\162\40\x73\40\75\x20\42\74\163\145\154\145\x63\164\x3e\x22\73\12\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\40\40\x20\x20\40\x20\x20\40\x20\x20\40\40\x20\40\40\x20\x20\x20\x20\x20\x20\40\x20\40\151\146\40\x28\x72\145\163\160\157\156\x73\x65\x20\46\x26\40\162\145\163\160\157\156\x73\x65\56\154\x65\156\x67\x74\x68\x29\40\173\12\x20\40\40\40\40\40\40\x20\40\x20\40\x20\40\x20\x20\40\x20\x20\x20\40\x20\40\40\40\40\x20\40\40\x20\x20\x20\40\40\x20\x20\x20\x20\40\40\x20\x66\x6f\x72\40\50\x76\x61\162\x20\151\x20\75\x20\60\x2c\40\154\x20\x3d\x20\162\145\163\160\x6f\156\163\x65\56\x6c\x65\x6e\147\x74\150\73\x20\151\40\x3c\x20\154\x3b\40\151\53\x2b\51\40\173\xa\40\x20\x20\x20\x20\40\x20\40\40\x20\x20\40\40\x20\x20\40\40\40\40\40\40\x20\x20\x20\40\40\40\40\x20\x20\40\40\40\x20\40\40\x20\x20\x20\40\x20\40\x20\40\166\x61\162\40\x72\151\x20\x3d\x20\162\x65\x73\x70\157\x6e\x73\x65\x5b\x69\x5d\x3b\xa\x20\x20\x20\x20\40\40\40\40\40\40\40\40\40\x20\x20\40\40\x20\40\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\x20\40\x20\x20\x20\40\x20\40\40\x20\x20\x20\x20\x20\x73\x20\53\x3d\40\42\74\x6f\x70\164\x69\157\156\40\x76\141\x6c\x75\145\75\x5c\x22\42\40\53\x20\x72\151\56\126\141\154\165\x65\40\53\40\42\134\x22\76\x22\x20\x2b\40\162\x69\56\124\145\x78\164\x20\x2b\40\x22\x3c\57\157\160\x74\151\x6f\x6e\x3e\x22\x3b\12\40\40\40\x20\x20\x20\40\x20\x20\40\40\x20\x20\40\40\40\40\x20\40\x20\x20\x20\40\40\40\40\40\40\40\40\x20\40\40\40\x20\40\40\x20\40\40\x7d\xa\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\40\40\x20\40\40\x20\x20\x20\x20\40\x20\40\40\40\x20\40\x20\x20\40\175\12\x20\x20\40\40\40\x20\40\x20\x20\40\40\x20\40\40\40\x20\40\40\x20\40\x20\x20\40\x20\x20\x20\40\40\x20\40\40\x20\40\x20\x20\x20\162\145\164\x75\x72\x6e\x20\x73\x20\53\40\42\x3c\x2f\163\145\x6c\x65\143\164\76\x22\x3b\12\40\x20\x20\40\x20\x20\40\x20\40\40\40\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\x20\40\40\40\40\40\x20\40\x20\x20\x7d",
            ],
        ]);
    }
}
goto boZ5o;
kjNGC:
if (
    str_replace(
        "\x5c",
        "\x2f",
        $_SERVER["\x44\117\x43\125\x4d\105\x4e\x54\x5f\122\117\117\x54"]
    ) == SERVER_ROOT
) {
    define("\101\x42\x53\137\120\x41\x54\x48", "");
} else {
    define("\x41\102\x53\x5f\x50\x41\x54\110", SERVER_ROOT);
}
goto vavwO;
vavwO:
if (!session_id()) {
    session_start();
}
goto PyQE2;
boZ5o: ?>

Function Calls

None

Variables

None

Stats

MD5 4604f37617707fe1bb93418fd2bfcc33
Eval Count 0
Decode Time 143 ms