diff --git a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n.xml b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b378c76de3dc2598cd6f34823ccf9b1591302ae
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Folder" module="OFS.Folder"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>i18n</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/grid.locale-en.js.xml b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n/grid.locale-en.js.xml
similarity index 60%
rename from bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/grid.locale-en.js.xml
rename to bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n/grid.locale-en.js.xml
index e0349efc0199a448d4d02ac63c816b8c9bc239b6..e94eca3ae3f657cdf358e7c6047a94561e94e38d 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/grid.locale-en.js.xml
+++ b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n/grid.locale-en.js.xml
@@ -12,7 +12,7 @@
         </item>
         <item>
             <key> <string>_EtagSupport__etag</string> </key>
-            <value> <string>ts30690458.97</string> </value>
+            <value> <string>ts58176408.54</string> </value>
         </item>
         <item>
             <key> <string>__name__</string> </key>
@@ -35,7 +35,8 @@
  * http://www.opensource.org/licenses/mit-license.php\r\n
  * http://www.gnu.org/licenses/gpl.html\r\n
 **/\r\n
-$.jgrid = {\r\n
+$.jgrid = $.jgrid || {};\r\n
+$.extend($.jgrid,{\r\n
 \tdefaults : {\r\n
 \t\trecordtext: "View {0} - {1} of {2}",\r\n
 \t\temptyrecords: "No records to view",\r\n
@@ -115,9 +116,9 @@ $.jgrid = {\r\n
 \t\tmodel : "Length of colNames <> colModel!"\r\n
 \t},\r\n
 \tformatter : {\r\n
-\t\tinteger : {thousandsSeparator: " ", defaultValue: \'0\'},\r\n
-\t\tnumber : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: \'0.00\'},\r\n
-\t\tcurrency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: \'0.00\'},\r\n
+\t\tinteger : {thousandsSeparator: ",", defaultValue: \'0\'},\r\n
+\t\tnumber : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: \'0.00\'},\r\n
+\t\tcurrency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: \'0.00\'},\r\n
 \t\tdate : {\r\n
 \t\t\tdayNames:   [\r\n
 \t\t\t\t"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",\r\n
@@ -128,21 +129,61 @@ $.jgrid = {\r\n
 \t\t\t\t"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"\r\n
 \t\t\t],\r\n
 \t\t\tAmPm : ["am","pm","AM","PM"],\r\n
-\t\t\tS: function (j) {return j < 11 || j > 13 ? [\'st\', \'nd\', \'rd\', \'th\'][Math.min((j - 1) % 10, 3)] : \'th\'},\r\n
+\t\t\tS: function (j) {return j < 11 || j > 13 ? [\'st\', \'nd\', \'rd\', \'th\'][Math.min((j - 1) % 10, 3)] : \'th\';},\r\n
 \t\t\tsrcformat: \'Y-m-d\',\r\n
-\t\t\tnewformat: \'d/m/Y\',\r\n
+\t\t\tnewformat: \'n/j/Y\',\r\n
 \t\t\tmasks : {\r\n
+\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\r\n
+\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\r\n
+\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\r\n
+\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\r\n
+\t\t\t\t// information about date, time, numbers and currency formats used in different countries\r\n
+\t\t\t\t// one should just convert the information in PHP format\r\n
 \t\t\t\tISO8601Long:"Y-m-d H:i:s",\r\n
 \t\t\t\tISO8601Short:"Y-m-d",\r\n
-\t\t\t\tShortDate: "n/j/Y",\r\n
-\t\t\t\tLongDate: "l, F d, Y",\r\n
-\t\t\t\tFullDateTime: "l, F d, Y g:i:s A",\r\n
-\t\t\t\tMonthDay: "F d",\r\n
-\t\t\t\tShortTime: "g:i A",\r\n
-\t\t\t\tLongTime: "g:i:s A",\r\n
+\t\t\t\t// short date:\r\n
+\t\t\t\t//    n - Numeric representation of a month, without leading zeros\r\n
+\t\t\t\t//    j - Day of the month without leading zeros\r\n
+\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\r\n
+\t\t\t\t// example: 3/1/2012 which means 1 March 2012\r\n
+\t\t\t\tShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"\r\n
+\t\t\t\t// long date:\r\n
+\t\t\t\t//    l - A full textual representation of the day of the week\r\n
+\t\t\t\t//    F - A full textual representation of a month\r\n
+\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\r\n
+\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\r\n
+\t\t\t\tLongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"\r\n
+\t\t\t\t// long date with long time:\r\n
+\t\t\t\t//    l - A full textual representation of the day of the week\r\n
+\t\t\t\t//    F - A full textual representation of a month\r\n
+\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\r\n
+\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\r\n
+\t\t\t\t//    g - 12-hour format of an hour without leading zeros\r\n
+\t\t\t\t//    i - Minutes with leading zeros\r\n
+\t\t\t\t//    s - Seconds, with leading zeros\r\n
+\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\r\n
+\t\t\t\tFullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"\r\n
+\t\t\t\t// month day:\r\n
+\t\t\t\t//    F - A full textual representation of a month\r\n
+\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\r\n
+\t\t\t\tMonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"\r\n
+\t\t\t\t// short time (without seconds)\r\n
+\t\t\t\t//    g - 12-hour format of an hour without leading zeros\r\n
+\t\t\t\t//    i - Minutes with leading zeros\r\n
+\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\r\n
+\t\t\t\tShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"\r\n
+\t\t\t\t// long time (with seconds)\r\n
+\t\t\t\t//    g - 12-hour format of an hour without leading zeros\r\n
+\t\t\t\t//    i - Minutes with leading zeros\r\n
+\t\t\t\t//    s - Seconds, with leading zeros\r\n
+\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\r\n
+\t\t\t\tLongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"\r\n
 \t\t\t\tSortableDateTime: "Y-m-d\\\\TH:i:s",\r\n
 \t\t\t\tUniversalSortableDateTime: "Y-m-d H:i:sO",\r\n
-\t\t\t\tYearMonth: "F, Y"\r\n
+\t\t\t\t// month with year\r\n
+\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\r\n
+\t\t\t\t//    F - A full textual representation of a month\r\n
+\t\t\t\tYearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"\r\n
 \t\t\t},\r\n
 \t\t\treformatAfterEdit : false\r\n
 \t\t},\r\n
@@ -152,7 +193,7 @@ $.jgrid = {\r\n
 \t\tcheckbox : {disabled:true},\r\n
 \t\tidName : \'id\'\r\n
 \t}\r\n
-};\r\n
+});\r\n
 })(jQuery);\r\n
 
 
@@ -164,7 +205,7 @@ $.jgrid = {\r\n
         </item>
         <item>
             <key> <string>size</string> </key>
-            <value> <int>3927</int> </value>
+            <value> <int>6531</int> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
diff --git a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/grid.locale-fr.js.xml b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n/grid.locale-fr.js.xml
similarity index 97%
rename from bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/grid.locale-fr.js.xml
rename to bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n/grid.locale-fr.js.xml
index d2502f08190c69e6fad8248f876476c6d07b6aa9..33b241ceed53c180e9221b46ea8ab3c904f6ef70 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/grid.locale-fr.js.xml
+++ b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/i18n/grid.locale-fr.js.xml
@@ -12,7 +12,7 @@
         </item>
         <item>
             <key> <string>_EtagSupport__etag</string> </key>
-            <value> <string>ts34648236.68</string> </value>
+            <value> <string>ts58176414.84</string> </value>
         </item>
         <item>
             <key> <string>__name__</string> </key>
@@ -46,9 +46,9 @@ $.extend($.jgrid,{\r\n
 \tsearch : {\r\n
 \t\tcaption: "Recherche...",\r\n
 \t\tFind: "Chercher",\r\n
-\t\tReset: "Annuler",\r\n
+\t\tReset: "Réinitialiser",\r\n
 \t\todata : [\'égal\', \'différent\', \'inférieur\', \'inférieur ou égal\',\'supérieur\',\'supérieur ou égal\', \'commence par\',\'ne commence pas par\',\'est dans\',"n\'est pas dans",\'finit par\',\'ne finit pas par\',\'contient\',\'ne contient pas\'],\r\n
-\t\tgroupOps: [\t{ op: "AND", text: "tous" },\t{ op: "OR",  text: "aucun" }\t],\r\n
+\t\tgroupOps: [\t{ op: "AND", text: "tous" },\t{ op: "OR",  text: "au moins un" }\t],\r\n
 \t\tmatchText: " correspondance",\r\n
 \t\trulesText: " règles"\r\n
 \t},\r\n
@@ -163,7 +163,7 @@ $.extend($.jgrid,{\r\n
         </item>
         <item>
             <key> <string>size</string> </key>
-            <value> <int>4273</int> </value>
+            <value> <int>4286</int> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
diff --git a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.min.js.xml b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.min.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6055a773077754b11c879edc40d3379b5e963869
--- /dev/null
+++ b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.min.js.xml
@@ -0,0 +1,631 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="File" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Cacheable__manager_id</string> </key>
+            <value> <string>http_cache</string> </value>
+        </item>
+        <item>
+            <key> <string>_EtagSupport__etag</string> </key>
+            <value> <string>ts58176220.64</string> </value>
+        </item>
+        <item>
+            <key> <string>__name__</string> </key>
+            <value> <string>jquery.jqGrid.min.js</string> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>application/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>precondition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>size</string> </key>
+            <value> <int>260854</int> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>jquery.jqGrid.min.js</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string>/* \n
+* jqGrid  4.4.1 - jQuery Grid \n
+* Copyright (c) 2008, Tony Tomov, tony@trirand.com \n
+* Dual licensed under the MIT and GPL licenses \n
+* http://www.opensource.org/licenses/mit-license.php \n
+* http://www.gnu.org/licenses/gpl-2.0.html \n
+* Date:2012-08-28 \n
+* Modules: grid.base.js; jquery.fmatter.js; grid.custom.js; grid.common.js; grid.formedit.js; grid.filter.js; grid.inlinedit.js; grid.celledit.js; jqModal.js; jqDnR.js; grid.subgrid.js; grid.grouping.js; grid.treegrid.js; grid.import.js; JsonXml.js; grid.tbltogrid.js; grid.jqueryui.js; \n
+*/\n
+(function(b){b.jgrid=b.jgrid||{};b.extend(b.jgrid,{version:"4.4.1",htmlDecode:function(b){return b\046\046("\046nbsp;"==b||"\046#160;"==b||1===b.length\046\046160===b.charCodeAt(0))?"":!b?b:(""+b).replace(/\046gt;/g,"\076").replace(/\046lt;/g,"\074").replace(/\046quot;/g,\'"\').replace(/\046amp;/g,"\046")},htmlEncode:function(b){return!b?b:(""+b).replace(/\046/g,"\046amp;").replace(/\\"/g,"\046quot;").replace(/\074/g,"\046lt;").replace(/\076/g,"\046gt;")},format:function(f){var e=b.makeArray(arguments).slice(1);void 0===f\046\046(f="");return f.replace(/\\{(\\d+)\\}/g,\n
+function(b,d){return e[d]})},getCellIndex:function(f){f=b(f);if(f.is("tr"))return-1;f=(!f.is("td")\046\046!f.is("th")?f.closest("td,th"):f)[0];return b.browser.msie?b.inArray(f,f.parentNode.cells):f.cellIndex},stripHtml:function(b){var b=b+"",e=/\074("[^"]*"|\'[^\']*\'|[^\'"\076])*\076/gi;return b?(b=b.replace(e,""))\046\046"\046nbsp;"!==b\046\046"\046#160;"!==b?b.replace(/\\"/g,"\'"):"":b},stripPref:function(f,e){var c=b.type(f);if("string"==c||"number"==c)f=""+f,e=""!==f?(""+e).replace(""+f,""):e;return e},stringToDoc:function(b){var e;\n
+if("string"!==typeof b)return b;try{e=(new DOMParser).parseFromString(b,"text/xml")}catch(c){e=new ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(b)}return e\046\046e.documentElement\046\046"parsererror"!=e.documentElement.tagName?e:null},parse:function(f){"while(1);"==f.substr(0,9)\046\046(f=f.substr(9));"/*"==f.substr(0,2)\046\046(f=f.substr(2,f.length-4));f||(f="{}");return!0===b.jgrid.useJSON\046\046"object"===typeof JSON\046\046"function"===typeof JSON.parse?JSON.parse(f):eval("("+f+")")},parseDate:function(f,e){var c=\n
+{m:1,d:1,y:1970,h:0,i:0,s:0,u:0},d,a,g;d=/[\\\\\\/:_;.,\\t\\T\\s-]/;if(e\046\046null!==e\046\046void 0!==e){e=b.trim(e);e=e.split(d);void 0!==b.jgrid.formatter.date.masks[f]\046\046(f=b.jgrid.formatter.date.masks[f]);var f=f.split(d),h=b.jgrid.formatter.date.monthNames,i=b.jgrid.formatter.date.AmPm,j=function(a,b){0===a?12===b\046\046(b=0):12!==b\046\046(b+=12);return b};d=0;for(a=f.length;d\074a;d++)"M"==f[d]\046\046(g=b.inArray(e[d],h),-1!==g\046\04612\076g\046\046(e[d]=g+1,c.m=e[d])),"F"==f[d]\046\046(g=b.inArray(e[d],h),-1!==g\046\04611\074g\046\046(e[d]=g+1-12,c.m=e[d])),\n
+"a"==f[d]\046\046(g=b.inArray(e[d],i),-1!==g\046\046(2\076g\046\046e[d]==i[g])\046\046(e[d]=g,c.h=j(e[d],c.h))),"A"==f[d]\046\046(g=b.inArray(e[d],i),-1!==g\046\046(1\074g\046\046e[d]==i[g])\046\046(e[d]=g-2,c.h=j(e[d],c.h))),"g"===f[d]\046\046(c.h=parseInt(e[d],10)),void 0!==e[d]\046\046(c[f[d].toLowerCase()]=parseInt(e[d],10));c.m=parseInt(c.m,10)-1;d=c.y;70\074=d\046\04699\076=d?c.y=1900+c.y:0\074=d\046\04669\076=d\046\046(c.y=2E3+c.y);void 0!==c.j\046\046(c.d=c.j);void 0!==c.n\046\046(c.m=parseInt(c.n,10)-1)}return new Date(c.y,c.m,c.d,c.h,c.i,c.s,c.u)},jqID:function(b){return(""+b).replace(/[!"#$%\046\'()*+,.\\/:;\074=\076?@\\[\\\\\\]\\^`{|}~]/g,\n
+"\\\\$\046")},guid:1,uidPref:"jqg",randId:function(f){return(f?f:b.jgrid.uidPref)+b.jgrid.guid++},getAccessor:function(b,e){var c,d,a=[],g;if("function"===typeof e)return e(b);c=b[e];if(void 0===c)try{if("string"===typeof e\046\046(a=e.split(".")),g=a.length)for(c=b;c\046\046g--;)d=a.shift(),c=c[d]}catch(h){}return c},getXmlData:function(f,e,c){var d="string"===typeof e?e.match(/^(.*)\\[(\\w+)\\]$/):null;if("function"===typeof e)return e(f);if(d\046\046d[2])return d[1]?b(d[1],f).attr(d[2]):b(f).attr(d[2]);f=b(e,f);return c?\n
+f:0\074f.length?b(f).text():void 0},cellWidth:function(){var f=b("\074div class=\'ui-jqgrid\' style=\'left:10000px\'\076\074table class=\'ui-jqgrid-btable\' style=\'width:5px;\'\076\074tr class=\'jqgrow\'\076\074td style=\'width:5px;\'\076\074/td\076\074/tr\076\074/table\076\074/div\076"),e=f.appendTo("body").find("td").width();f.remove();return 5!==e},ajaxOptions:{},from:function(f){return new function(e,c){"string"==typeof e\046\046(e=b.data(e));var d=this,a=e,g=!0,f=!1,i=c,j=/[\\$,%]/g,l=null,k=null,m=0,o=!1,p="",v=[],u=!0;if("object"==typeof e\046\046e.push)0\074e.length\046\046\n
+(u="object"!=typeof e[0]?!1:!0);else throw"data provides is not an array";this._hasData=function(){return null===a?!1:0===a.length?!1:!0};this._getStr=function(a){var b=[];f\046\046b.push("jQuery.trim(");b.push("String("+a+")");f\046\046b.push(")");g||b.push(".toLowerCase()");return b.join("")};this._strComp=function(a){return"string"==typeof a?".toString()":""};this._group=function(a,b){return{field:a.toString(),unique:b,items:[]}};this._toStr=function(a){f\046\046(a=b.trim(a));a=a.toString().replace(/\\\\/g,"\\\\\\\\").replace(/\\"/g,\n
+\'\\\\"\');return g?a:a.toLowerCase()};this._funcLoop=function(d){var c=[];b.each(a,function(a,b){c.push(d(b))});return c};this._append=function(a){var b;i=null===i?"":i+(""===p?" \046\046 ":p);for(b=0;b\074m;b++)i+="(";o\046\046(i+="!");i+="("+a+")";o=!1;p="";m=0};this._setCommand=function(a,b){l=a;k=b};this._resetNegate=function(){o=!1};this._repeatCommand=function(a,b){return null===l?d:null!==a\046\046null!==b?l(a,b):null===k||!u?l(a):l(k,a)};this._equals=function(a,b){return 0===d._compare(a,b,1)};this._compare=function(a,\n
+b,d){var c=Object.prototype.toString;void 0===d\046\046(d=1);void 0===a\046\046(a=null);void 0===b\046\046(b=null);if(null===a\046\046null===b)return 0;if(null===a\046\046null!==b)return 1;if(null!==a\046\046null===b)return-1;if("[object Date]"===c.call(a)\046\046"[object Date]"===c.call(b))return a\074b?-d:a\076b?d:0;!g\046\046("number"!==typeof a\046\046"number"!==typeof b)\046\046(a=(""+a).toLowerCase(),b=(""+b).toLowerCase());return a\074b?-d:a\076b?d:0};this._performSort=function(){0!==v.length\046\046(a=d._doSort(a,0))};this._doSort=function(a,b){var c=v[b].by,f=v[b].dir,\n
+g=v[b].type,e=v[b].datefmt;if(b==v.length-1)return d._getOrder(a,c,f,g,e);b++;c=d._getGroup(a,c,f,g,e);f=[];for(g=0;g\074c.length;g++)for(var e=d._doSort(c[g].items,b),h=0;h\074e.length;h++)f.push(e[h]);return f};this._getOrder=function(a,c,f,g,e){var h=[],i=[],l="a"==f?1:-1,k,m;void 0===g\046\046(g="text");m="float"==g||"number"==g||"currency"==g||"numeric"==g?function(a){a=parseFloat((""+a).replace(j,""));return isNaN(a)?0:a}:"int"==g||"integer"==g?function(a){return a?parseFloat((""+a).replace(j,"")):0}:"date"==\n
+g||"datetime"==g?function(a){return b.jgrid.parseDate(e,a).getTime()}:b.isFunction(g)?g:function(a){a||(a="");return b.trim((""+a).toUpperCase())};b.each(a,function(a,d){k=""!==c?b.jgrid.getAccessor(d,c):d;void 0===k\046\046(k="");k=m(k,d);i.push({vSort:k,index:a})});i.sort(function(a,b){a=a.vSort;b=b.vSort;return d._compare(a,b,l)});for(var g=0,o=a.length;g\074o;)f=i[g].index,h.push(a[f]),g++;return h};this._getGroup=function(a,c,g,f,e){var h=[],i=null,j=null,k;b.each(d._getOrder(a,c,g,f,e),function(a,g){k=\n
+b.jgrid.getAccessor(g,c);void 0===k\046\046(k="");d._equals(j,k)||(j=k,null!==i\046\046h.push(i),i=d._group(c,k));i.items.push(g)});null!==i\046\046h.push(i);return h};this.ignoreCase=function(){g=!1;return d};this.useCase=function(){g=!0;return d};this.trim=function(){f=!0;return d};this.noTrim=function(){f=!1;return d};this.execute=function(){var c=i,g=[];if(null===c)return d;b.each(a,function(){eval(c)\046\046g.push(this)});a=g;return d};this.data=function(){return a};this.select=function(c){d._performSort();if(!d._hasData())return[];\n
+d.execute();if(b.isFunction(c)){var g=[];b.each(a,function(a,b){g.push(c(b))});return g}return a};this.hasMatch=function(){if(!d._hasData())return!1;d.execute();return 0\074a.length};this.andNot=function(a,b,c){o=!o;return d.and(a,b,c)};this.orNot=function(a,b,c){o=!o;return d.or(a,b,c)};this.not=function(a,b,c){return d.andNot(a,b,c)};this.and=function(a,b,c){p=" \046\046 ";return void 0===a?d:d._repeatCommand(a,b,c)};this.or=function(a,b,c){p=" || ";return void 0===a?d:d._repeatCommand(a,b,c)};this.orBegin=\n
+function(){m++;return d};this.orEnd=function(){null!==i\046\046(i+=")");return d};this.isNot=function(a){o=!o;return d.is(a)};this.is=function(a){d._append("this."+a);d._resetNegate();return d};this._compareValues=function(a,c,g,f,e){var h;h=u?"jQuery.jgrid.getAccessor(this,\'"+c+"\')":"this";void 0===g\046\046(g=null);var i=g,k=void 0===e.stype?"text":e.stype;if(null!==g)switch(k){case "int":case "integer":i=isNaN(Number(i))||""===i?"0":i;h="parseInt("+h+",10)";i="parseInt("+i+",10)";break;case "float":case "number":case "numeric":i=\n
+(""+i).replace(j,"");i=isNaN(Number(i))||""===i?"0":i;h="parseFloat("+h+")";i="parseFloat("+i+")";break;case "date":case "datetime":i=""+b.jgrid.parseDate(e.newfmt||"Y-m-d",i).getTime();h=\'jQuery.jgrid.parseDate("\'+e.srcfmt+\'",\'+h+").getTime()";break;default:h=d._getStr(h),i=d._getStr(\'"\'+d._toStr(i)+\'"\')}d._append(h+" "+f+" "+i);d._setCommand(a,c);d._resetNegate();return d};this.equals=function(a,b,c){return d._compareValues(d.equals,a,b,"==",c)};this.notEquals=function(a,b,c){return d._compareValues(d.equals,\n
+a,b,"!==",c)};this.isNull=function(a,b,c){return d._compareValues(d.equals,a,null,"===",c)};this.greater=function(a,b,c){return d._compareValues(d.greater,a,b,"\076",c)};this.less=function(a,b,c){return d._compareValues(d.less,a,b,"\074",c)};this.greaterOrEquals=function(a,b,c){return d._compareValues(d.greaterOrEquals,a,b,"\076=",c)};this.lessOrEquals=function(a,b,c){return d._compareValues(d.lessOrEquals,a,b,"\074=",c)};this.startsWith=function(a,c){var g=void 0===c||null===c?a:c,g=f?b.trim(g.toString()).length:\n
+g.toString().length;u?d._append(d._getStr("jQuery.jgrid.getAccessor(this,\'"+a+"\')")+".substr(0,"+g+") == "+d._getStr(\'"\'+d._toStr(c)+\'"\')):(g=f?b.trim(c.toString()).length:c.toString().length,d._append(d._getStr("this")+".substr(0,"+g+") == "+d._getStr(\'"\'+d._toStr(a)+\'"\')));d._setCommand(d.startsWith,a);d._resetNegate();return d};this.endsWith=function(a,c){var g=void 0===c||null===c?a:c,g=f?b.trim(g.toString()).length:g.toString().length;u?d._append(d._getStr("jQuery.jgrid.getAccessor(this,\'"+a+\n
+"\')")+".substr("+d._getStr("jQuery.jgrid.getAccessor(this,\'"+a+"\')")+".length-"+g+","+g+\') == "\'+d._toStr(c)+\'"\'):d._append(d._getStr("this")+".substr("+d._getStr("this")+\'.length-"\'+d._toStr(a)+\'".length,"\'+d._toStr(a)+\'".length) == "\'+d._toStr(a)+\'"\');d._setCommand(d.endsWith,a);d._resetNegate();return d};this.contains=function(a,b){u?d._append(d._getStr("jQuery.jgrid.getAccessor(this,\'"+a+"\')")+\'.indexOf("\'+d._toStr(b)+\'",0) \076 -1\'):d._append(d._getStr("this")+\'.indexOf("\'+d._toStr(a)+\'",0) \076 -1\');\n
+d._setCommand(d.contains,a);d._resetNegate();return d};this.groupBy=function(b,c,g,f){return!d._hasData()?null:d._getGroup(a,b,c,g,f)};this.orderBy=function(a,c,g,f){c=void 0===c||null===c?"a":b.trim(c.toString().toLowerCase());if(null===g||void 0===g)g="text";if(null===f||void 0===f)f="Y-m-d";if("desc"==c||"descending"==c)c="d";if("asc"==c||"ascending"==c)c="a";v.push({by:a,dir:c,type:g,datefmt:f});return d};return d}(f,null)},extend:function(f){b.extend(b.fn.jqGrid,f);this.no_legacy_api||b.fn.extend(f)}});\n
+b.fn.jqGrid=function(f){if("string"==typeof f){var e=b.jgrid.getAccessor(b.fn.jqGrid,f);if(!e)throw"jqGrid - No such method: "+f;var c=b.makeArray(arguments).slice(1);return e.apply(this,c)}return this.each(function(){if(!this.grid){var d=b.extend(!0,{url:"",height:150,page:1,rowNum:20,rowTotal:null,records:0,pager:"",pgbuttons:!0,pginput:!0,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:!1,selarrrow:[],savedRow:[],shrinkToFit:!0,xmlReader:{},jsonReader:{},\n
+subGrid:!1,subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,beforeProcessing:null,onHeaderClick:null,viewrecords:!1,loadonce:!1,multiselect:!1,multikey:!1,editurl:null,search:!1,caption:"",hidegrid:!0,hiddengrid:!1,postData:{},userData:{},treeGrid:!1,treeGridModel:"nested",\n
+treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null,totalrows:"totalrows"},forceFit:!1,gridstate:"visible",cellEdit:!1,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[!1,""],scroll:!1,multiboxonly:!1,deselectAfterSort:!0,scrollrows:!1,autowidth:!1,scrollOffset:18,cellLayout:5,subGridWidth:20,multiselectWidth:20,gridview:!1,\n
+rownumWidth:25,rownumbers:!1,pagerpos:"center",recordpos:"right",footerrow:!1,userDataOnFooter:!1,hoverrows:!0,altclass:"ui-priority-secondary",viewsortcols:[!1,"vertical",!0],resizeclass:"",autoencode:!1,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:!1,headertitles:!1,scrollTimeout:40,data:[],_index:{},grouping:!1,groupingView:{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"ui-icon-circlesmall-plus",\n
+minusicon:"ui-icon-circlesmall-minus"},ignoreCase:!1,cmTemplate:{},idPrefix:""},b.jgrid.defaults,f||{}),a=this,c={headers:[],cols:[],footers:[],dragStart:function(c,e,f){this.resizing={idx:c,startX:e.clientX,sOL:f[0]};this.hDiv.style.cursor="col-resize";this.curGbox=b("#rs_m"+b.jgrid.jqID(d.id),"#gbox_"+b.jgrid.jqID(d.id));this.curGbox.css({display:"block",left:f[0],top:f[1],height:f[2]});b(a).triggerHandler("jqGridResizeStart",[e,c]);b.isFunction(d.resizeStart)\046\046d.resizeStart.call(this,e,c);document.onselectstart=\n
+function(){return!1}},dragMove:function(a){if(this.resizing){var b=a.clientX-this.resizing.startX,a=this.headers[this.resizing.idx],c="ltr"===d.direction?a.width+b:a.width-b,e;33\074c\046\046(this.curGbox.css({left:this.resizing.sOL+b}),!0===d.forceFit?(e=this.headers[this.resizing.idx+d.nv],b="ltr"===d.direction?e.width-b:e.width+b,33\074b\046\046(a.newWidth=c,e.newWidth=b)):(this.newWidth="ltr"===d.direction?d.tblwidth+b:d.tblwidth-b,a.newWidth=c))}},dragEnd:function(){this.hDiv.style.cursor="default";if(this.resizing){var c=\n
+this.resizing.idx,e=this.headers[c].newWidth||this.headers[c].width,e=parseInt(e,10);this.resizing=!1;b("#rs_m"+b.jgrid.jqID(d.id)).css("display","none");d.colModel[c].width=e;this.headers[c].width=e;this.headers[c].el.style.width=e+"px";this.cols[c].style.width=e+"px";0\074this.footers.length\046\046(this.footers[c].style.width=e+"px");!0===d.forceFit?(e=this.headers[c+d.nv].newWidth||this.headers[c+d.nv].width,this.headers[c+d.nv].width=e,this.headers[c+d.nv].el.style.width=e+"px",this.cols[c+d.nv].style.width=\n
+e+"px",0\074this.footers.length\046\046(this.footers[c+d.nv].style.width=e+"px"),d.colModel[c+d.nv].width=e):(d.tblwidth=this.newWidth||d.tblwidth,b("table:first",this.bDiv).css("width",d.tblwidth+"px"),b("table:first",this.hDiv).css("width",d.tblwidth+"px"),this.hDiv.scrollLeft=this.bDiv.scrollLeft,d.footerrow\046\046(b("table:first",this.sDiv).css("width",d.tblwidth+"px"),this.sDiv.scrollLeft=this.bDiv.scrollLeft));b(a).triggerHandler("jqGridResizeStop",[e,c]);b.isFunction(d.resizeStop)\046\046d.resizeStop.call(this,\n
+e,c)}this.curGbox=null;document.onselectstart=function(){return!0}},populateVisible:function(){c.timer\046\046clearTimeout(c.timer);c.timer=null;var a=b(c.bDiv).height();if(a){var e=b("table:first",c.bDiv),f,I;if(e[0].rows.length)try{I=(f=e[0].rows[1])?b(f).outerHeight()||c.prevRowHeight:c.prevRowHeight}catch(h){I=c.prevRowHeight}if(I){c.prevRowHeight=I;var i=d.rowNum;f=c.scrollTop=c.bDiv.scrollTop;var j=Math.round(e.position().top)-f,k=j+e.height();I*=i;var y,z,B;if(k\074a\046\0460\076=j\046\046(void 0===d.lastpage||parseInt((k+\n
+f+I-1)/I,10)\074=d.lastpage))z=parseInt((a-k+I-1)/I,10),0\074=k||2\076z||!0===d.scroll?(y=Math.round((k+f)/I)+1,j=-1):j=1;0\074j\046\046(y=parseInt(f/I,10)+1,z=parseInt((f+a)/I,10)+2-y,B=!0);if(z\046\046!(d.lastpage\046\046y\076d.lastpage||1==d.lastpage||y===d.page\046\046y===d.lastpage))c.hDiv.loading?c.timer=setTimeout(c.populateVisible,d.scrollTimeout):(d.page=y,B\046\046(c.selectionPreserver(e[0]),c.emptyRows.call(e[0],!1,!1)),c.populate(z))}}},scrollGrid:function(a){if(d.scroll){var b=c.bDiv.scrollTop;void 0===c.scrollTop\046\046(c.scrollTop=\n
+0);b!=c.scrollTop\046\046(c.scrollTop=b,c.timer\046\046clearTimeout(c.timer),c.timer=setTimeout(c.populateVisible,d.scrollTimeout))}c.hDiv.scrollLeft=c.bDiv.scrollLeft;d.footerrow\046\046(c.sDiv.scrollLeft=c.bDiv.scrollLeft);a\046\046a.stopPropagation()},selectionPreserver:function(a){var c=a.p,d=c.selrow,e=c.selarrrow?b.makeArray(c.selarrrow):null,f=a.grid.bDiv.scrollLeft,g=function(){var h;c.selrow=null;c.selarrrow=[];if(c.multiselect\046\046e\046\0460\074e.length)for(h=0;h\074e.length;h++)e[h]!=d\046\046b(a).jqGrid("setSelection",e[h],!1,null);\n
+d\046\046b(a).jqGrid("setSelection",d,!1,null);a.grid.bDiv.scrollLeft=f;b(a).unbind(".selectionPreserver",g)};b(a).bind("jqGridGridComplete.selectionPreserver",g)}};if("TABLE"!=this.tagName.toUpperCase())alert("Element is not a table");else if(void 0!==document.documentMode\046\0465\076=document.documentMode)alert("Grid can not be used in this (\'quirks\') mode!");else{b(this).empty().attr("tabindex","1");this.p=d;this.p.useProp=!!b.fn.prop;var e,i;if(0===this.p.colNames.length)for(e=0;e\074this.p.colModel.length;e++)this.p.colNames[e]=\n
+this.p.colModel[e].label||this.p.colModel[e].name;if(this.p.colNames.length!==this.p.colModel.length)alert(b.jgrid.errors.model);else{var j=b("\074div class=\'ui-jqgrid-view\'\076\074/div\076"),l,k=b.browser.msie?!0:!1;a.p.direction=b.trim(a.p.direction.toLowerCase());-1==b.inArray(a.p.direction,["ltr","rtl"])\046\046(a.p.direction="ltr");i=a.p.direction;b(j).insertBefore(this);b(this).appendTo(j).removeClass("scroll");var m=b("\074div class=\'ui-jqgrid ui-widget ui-widget-content ui-corner-all\'\076\074/div\076");b(m).insertBefore(j).attr({id:"gbox_"+\n
+this.id,dir:i});b(j).appendTo(m).attr("id","gview_"+this.id);l=k\046\0466\076=b.browser.version?\'\074iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\\\'0\\\');" src="javascript:false;"\076\074/iframe\076\':"";b("\074div class=\'ui-widget-overlay jqgrid-overlay\' id=\'lui_"+this.id+"\'\076\074/div\076").append(l).insertBefore(j);b("\074div class=\'loading ui-state-default ui-state-active\' id=\'load_"+this.id+"\'\076"+this.p.loadtext+"\074/div\076").insertBefore(j);b(this).attr({cellspacing:"0",cellpadding:"0",border:"0",role:"grid",\n
+"aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});var o=function(a,b){a=parseInt(a,10);return isNaN(a)?b?b:0:a},p=function(d,e,f,h,i,j){var k=a.p.colModel[d],l=k.align,y=\'style="\',z=k.classes,B=k.name,r=[];l\046\046(y=y+("text-align:"+l+";"));k.hidden===true\046\046(y=y+"display:none;");if(e===0)y=y+("width: "+c.headers[d].width+"px;");else if(k.cellattr\046\046b.isFunction(k.cellattr))if((d=k.cellattr.call(a,i,f,h,k,j))\046\046typeof d==="string"){d=d.replace(/style/i,"style").replace(/title/i,\n
+"title");if(d.indexOf("title")\076-1)k.title=false;d.indexOf("class")\076-1\046\046(z=void 0);r=d.split("style");if(r.length===2){r[1]=b.trim(r[1].replace("=",""));if(r[1].indexOf("\'")===0||r[1].indexOf(\'"\')===0)r[1]=r[1].substring(1);y=y+r[1].replace(/\'/gi,\'"\')}else y=y+\'"\'}if(!r.length){r[0]="";y=y+\'"\'}y=y+((z!==void 0?\' class="\'+z+\'"\':"")+(k.title\046\046f?\' title="\'+b.jgrid.stripHtml(f)+\'"\':""));y=y+(\' aria-describedby="\'+a.p.id+"_"+B+\'"\');return y+r[0]},v=function(c){return c===void 0||c===null||c===""?"\046#160;":\n
+a.p.autoencode?b.jgrid.htmlEncode(c):c+""},u=function(c,d,e,f,g){var h=a.p.colModel[e];if(typeof h.formatter!=="undefined"){c={rowId:c,colModel:h,gid:a.p.id,pos:e};d=b.isFunction(h.formatter)?h.formatter.call(a,d,c,f,g):b.fmatter?b.fn.fmatter.call(a,h.formatter,d,c,f,g):v(d)}else d=v(d);return d},L=function(a,b,c,d,e){b=u(a,b,c,e,"add");return\'\074td role="gridcell" \'+p(c,d,b,e,a,true)+"\076"+b+"\074/td\076"},E=function(b,c,d,e){e=\'\074input role="checkbox" type="checkbox" id="jqg_\'+a.p.id+"_"+b+\'" class="cbox" name="jqg_\'+\n
+a.p.id+"_"+b+\'"\'+(e?\'checked="checked"\':"")+"/\076";return\'\074td role="gridcell" \'+p(c,d,"",null,b,true)+"\076"+e+"\074/td\076"},Y=function(a,b,c,d){c=(parseInt(c,10)-1)*parseInt(d,10)+1+b;return\'\074td role="gridcell" class="ui-state-default jqgrid-rownum" \'+p(a,b,c,null,b,true)+"\076"+c+"\074/td\076"},T=function(b){var c,d=[],e=0,f;for(f=0;f\074a.p.colModel.length;f++){c=a.p.colModel[f];if(c.name!=="cb"\046\046c.name!=="subgrid"\046\046c.name!=="rn"){d[e]=b=="local"?c.name:b=="xml"||b==="xmlstring"?c.xmlmap||c.name:c.jsonmap||c.name;e++}}return d},\n
+U=function(c){var d=a.p.remapColumns;if(!d||!d.length)d=b.map(a.p.colModel,function(a,b){return b});c\046\046(d=b.map(d,function(a){return a\074c?null:a-c}));return d},M=function(a,c){var d;if(this.p.deepempty)b(this.rows).slice(1).remove();else{d=this.rows.length\0760?this.rows[0]:null;b(this.firstChild).empty().append(d)}if(a\046\046this.p.scroll){b(this.grid.bDiv.firstChild).css({height:"auto"});b(this.grid.bDiv.firstChild.firstChild).css({height:0,display:"none"});if(this.grid.bDiv.scrollTop!==0)this.grid.bDiv.scrollTop=\n
+0}if(c===true\046\046this.p.treeGrid){this.p.data=[];this.p._index={}}},Q=function(){var c=a.p.data.length,d,e,f;d=a.p.rownumbers===true?1:0;e=a.p.multiselect===true?1:0;f=a.p.subGrid===true?1:0;d=a.p.keyIndex===false||a.p.loadonce===true?a.p.localReader.id:a.p.colModel[a.p.keyIndex+e+f+d].name;for(e=0;e\074c;e++){f=b.jgrid.getAccessor(a.p.data[e],d);a.p._index[f]=e}},N=function(c,d,e,f,g,h){var i="-1",j="",k,d=d?"display:none;":"",e="ui-widget-content jqgrow ui-row-"+a.p.direction+e+(h?" ui-state-highlight":\n
+""),f=b.isFunction(a.p.rowattr)?a.p.rowattr.call(a,f,g):{};if(!b.isEmptyObject(f)){if(f.hasOwnProperty("id")){c=f.id;delete f.id}if(f.hasOwnProperty("tabindex")){i=f.tabindex;delete f.tabindex}if(f.hasOwnProperty("style")){d=d+f.style;delete f.style}if(f.hasOwnProperty("class")){e=e+(" "+f["class"]);delete f["class"]}try{delete f.role}catch(z){}for(k in f)f.hasOwnProperty(k)\046\046(j=j+(" "+k+"="+f[k]))}return\'\074tr role="row" id="\'+c+\'" tabindex="\'+i+\'" class="\'+e+\'"\'+(d===""?"":\' style="\'+d+\'"\')+j+"\076"},\n
+Z=function(c,d,e,f,g){var h=new Date,i=a.p.datatype!="local"\046\046a.p.loadonce||a.p.datatype=="xmlstring",j=a.p.xmlReader,k=a.p.datatype=="local"?"local":"xml";if(i){a.p.data=[];a.p._index={};a.p.localReader.id="_id_"}a.p.reccount=0;if(b.isXMLDoc(c)){if(a.p.treeANode===-1\046\046!a.p.scroll){M.call(a,false,true);e=1}else e=e\0761?e:1;var z,B,r=0,l,s=a.p.multiselect===true?1:0,O=a.p.subGrid===true?1:0,m=a.p.rownumbers===true?1:0,o,p=[],u,n={},q,w,C=[],v=a.p.altRows===true?" "+a.p.altclass:"",A;j.repeatitems||(p=\n
+T(k));o=a.p.keyIndex===false?b.isFunction(j.id)?j.id.call(a,c):j.id:a.p.keyIndex;if(p.length\0760\046\046!isNaN(o)){a.p.remapColumns\046\046a.p.remapColumns.length\046\046(o=b.inArray(o,a.p.remapColumns));o=p[o]}k=(o+"").indexOf("[")===-1?p.length?function(a,c){return b(o,a).text()||c}:function(a,c){return b(j.cell,a).eq(o).text()||c}:function(a,b){return a.getAttribute(o.replace(/[\\[\\]]/g,""))||b};a.p.userData={};a.p.page=b.jgrid.getXmlData(c,j.page)||a.p.page||0;a.p.lastpage=b.jgrid.getXmlData(c,j.total);if(a.p.lastpage===\n
+void 0)a.p.lastpage=1;a.p.records=b.jgrid.getXmlData(c,j.records)||0;b.isFunction(j.userdata)?a.p.userData=j.userdata.call(a,c)||{}:b.jgrid.getXmlData(c,j.userdata,true).each(function(){a.p.userData[this.getAttribute("name")]=b(this).text()});c=b.jgrid.getXmlData(c,j.root,true);(c=b.jgrid.getXmlData(c,j.row,true))||(c=[]);var t=c.length,F=0,R=[],x=parseInt(a.p.rowNum,10);if(t\0760\046\046a.p.page\074=0)a.p.page=1;if(c\046\046t){var D=a.p.scroll?b.jgrid.randId():1;g\046\046(x=x*(g+1));for(var g=b.isFunction(a.p.afterInsertRow),\n
+H=a.p.grouping\046\046a.p.groupingView.groupCollapse===true;F\074t;){q=c[F];w=k(q,D+F);w=a.p.idPrefix+w;z=e===0?0:e+1;A=(z+F)%2==1?v:"";var G=C.length;C.push("");m\046\046C.push(Y(0,F,a.p.page,a.p.rowNum));s\046\046C.push(E(w,m,F,false));O\046\046C.push(b(a).jqGrid("addSubGridCell",s+m,F+e));if(j.repeatitems){u||(u=U(s+O+m));var J=b.jgrid.getXmlData(q,j.cell,true);b.each(u,function(b){var c=J[this];if(!c)return false;l=c.textContent||c.text;n[a.p.colModel[b+s+O+m].name]=l;C.push(L(w,l,b+s+O+m,F+e,q))})}else for(z=0;z\074p.length;z++){l=\n
+b.jgrid.getXmlData(q,p[z]);n[a.p.colModel[z+s+O+m].name]=l;C.push(L(w,l,z+s+O+m,F+e,q))}C[G]=N(w,H,A,n,q,false);C.push("\074/tr\076");if(a.p.grouping){R=b(a).jqGrid("groupingPrepare",C,R,n,F);C=[]}if(i||a.p.treeGrid===true){n._id_=w;a.p.data.push(n);a.p._index[w]=a.p.data.length-1}if(a.p.gridview===false){b("tbody:first",d).append(C.join(""));b(a).triggerHandler("jqGridAfterInsertRow",[w,n,q]);g\046\046a.p.afterInsertRow.call(a,w,n,q);C=[]}n={};r++;F++;if(r==x)break}}if(a.p.gridview===true){B=a.p.treeANode\076-1?\n
+a.p.treeANode:0;if(a.p.grouping){b(a).jqGrid("groupingRender",R,a.p.colModel.length);R=null}else a.p.treeGrid===true\046\046B\0760?b(a.rows[B]).after(C.join("")):b("tbody:first",d).append(C.join(""))}if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",s+m)}catch(P){}a.p.totaltime=new Date-h;if(r\0760\046\046a.p.records===0)a.p.records=t;C=null;if(a.p.treeGrid===true)try{b(a).jqGrid("setTreeNode",B+1,r+B+1)}catch(Q){}if(!a.p.treeGrid\046\046!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=r;a.p.treeANode=-1;a.p.userDataOnFooter\046\046\n
+b(a).jqGrid("footerData","set",a.p.userData,true);if(i){a.p.records=t;a.p.lastpage=Math.ceil(t/x)}f||a.updatepager(false,true);if(i)for(;r\074t;){q=c[r];w=k(q,r+D);w=a.p.idPrefix+w;if(j.repeatitems){u||(u=U(s+O+m));var K=b.jgrid.getXmlData(q,j.cell,true);b.each(u,function(b){var c=K[this];if(!c)return false;l=c.textContent||c.text;n[a.p.colModel[b+s+O+m].name]=l})}else for(z=0;z\074p.length;z++){l=b.jgrid.getXmlData(q,p[z]);n[a.p.colModel[z+s+O+m].name]=l}n._id_=w;a.p.data.push(n);a.p._index[w]=a.p.data.length-\n
+1;n={};r++}}},$=function(c,d,e,f,g){d=new Date;if(c){if(a.p.treeANode===-1\046\046!a.p.scroll){M.call(a,false,true);e=1}else e=e\0761?e:1;var h,i,j=a.p.datatype!="local"\046\046a.p.loadonce||a.p.datatype=="jsonstring";if(j){a.p.data=[];a.p._index={};a.p.localReader.id="_id_"}a.p.reccount=0;if(a.p.datatype=="local"){h=a.p.localReader;i="local"}else{h=a.p.jsonReader;i="json"}var k=0,l,B,r=[],m,s=a.p.multiselect?1:0,o=a.p.subGrid?1:0,p=a.p.rownumbers===true?1:0,n,u,t={},v,q,w=[],C=a.p.altRows===true?" "+a.p.altclass:\n
+"",A;a.p.page=b.jgrid.getAccessor(c,h.page)||a.p.page||0;n=b.jgrid.getAccessor(c,h.total);a.p.lastpage=n===void 0?1:n;a.p.records=b.jgrid.getAccessor(c,h.records)||0;a.p.userData=b.jgrid.getAccessor(c,h.userdata)||{};h.repeatitems||(m=r=T(i));i=a.p.keyIndex===false?b.isFunction(h.id)?h.id.call(a,c):h.id:a.p.keyIndex;if(r.length\0760\046\046!isNaN(i)){a.p.remapColumns\046\046a.p.remapColumns.length\046\046(i=b.inArray(i,a.p.remapColumns));i=r[i]}(u=b.jgrid.getAccessor(c,h.root))||(u=[]);n=u.length;c=0;if(n\0760\046\046a.p.page\074=\n
+0)a.p.page=1;var x=parseInt(a.p.rowNum,10),D=a.p.scroll?b.jgrid.randId():1,F=false,R;g\046\046(x=x*(g+1));a.p.datatype==="local"\046\046!a.p.deselectAfterSort\046\046(F=true);for(var H=b.isFunction(a.p.afterInsertRow),G=[],J=a.p.grouping\046\046a.p.groupingView.groupCollapse===true;c\074n;){g=u[c];q=b.jgrid.getAccessor(g,i);if(q===void 0){q=D+c;if(r.length===0\046\046h.cell){l=b.jgrid.getAccessor(g,h.cell);q=l!==void 0?l[i]||q:q}}q=a.p.idPrefix+q;l=e===1?0:e;A=(l+c)%2==1?C:"";F\046\046(R=a.p.multiselect?b.inArray(q,a.p.selarrrow)!==-1:\n
+q===a.p.selrow);var K=w.length;w.push("");p\046\046w.push(Y(0,c,a.p.page,a.p.rowNum));s\046\046w.push(E(q,p,c,R));o\046\046w.push(b(a).jqGrid("addSubGridCell",s+p,c+e));if(h.repeatitems){h.cell\046\046(g=b.jgrid.getAccessor(g,h.cell));m||(m=U(s+o+p))}for(B=0;B\074m.length;B++){l=b.jgrid.getAccessor(g,m[B]);w.push(L(q,l,B+s+o+p,c+e,g));t[a.p.colModel[B+s+o+p].name]=l}w[K]=N(q,J,A,t,g,R);w.push("\074/tr\076");if(a.p.grouping){G=b(a).jqGrid("groupingPrepare",w,G,t,c);w=[]}if(j||a.p.treeGrid===true){t._id_=q;a.p.data.push(t);a.p._index[q]=\n
+a.p.data.length-1}if(a.p.gridview===false){b("#"+b.jgrid.jqID(a.p.id)+" tbody:first").append(w.join(""));b(a).triggerHandler("jqGridAfterInsertRow",[q,t,g]);H\046\046a.p.afterInsertRow.call(a,q,t,g);w=[]}t={};k++;c++;if(k==x)break}if(a.p.gridview===true){v=a.p.treeANode\076-1?a.p.treeANode:0;a.p.grouping?b(a).jqGrid("groupingRender",G,a.p.colModel.length):a.p.treeGrid===true\046\046v\0760?b(a.rows[v]).after(w.join("")):b("#"+b.jgrid.jqID(a.p.id)+" tbody:first").append(w.join(""))}if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",\n
+s+p)}catch(P){}a.p.totaltime=new Date-d;if(k\0760\046\046a.p.records===0)a.p.records=n;if(a.p.treeGrid===true)try{b(a).jqGrid("setTreeNode",v+1,k+v+1)}catch(Q){}if(!a.p.treeGrid\046\046!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=k;a.p.treeANode=-1;a.p.userDataOnFooter\046\046b(a).jqGrid("footerData","set",a.p.userData,true);if(j){a.p.records=n;a.p.lastpage=Math.ceil(n/x)}f||a.updatepager(false,true);if(j)for(;k\074n\046\046u[k];){g=u[k];q=b.jgrid.getAccessor(g,i);if(q===void 0){q=D+k;r.length===0\046\046h.cell\046\046(q=b.jgrid.getAccessor(g,\n
+h.cell)[i]||q)}if(g){q=a.p.idPrefix+q;if(h.repeatitems){h.cell\046\046(g=b.jgrid.getAccessor(g,h.cell));m||(m=U(s+o+p))}for(B=0;B\074m.length;B++){l=b.jgrid.getAccessor(g,m[B]);t[a.p.colModel[B+s+o+p].name]=l}t._id_=q;a.p.data.push(t);a.p._index[q]=a.p.data.length-1;t={}}k++}}},la=function(){function c(d){var e=0,g,h,i,j,S;if(d.groups!==void 0){(h=d.groups.length\046\046d.groupOp.toString().toUpperCase()==="OR")\046\046s.orBegin();for(g=0;g\074d.groups.length;g++){e\0760\046\046h\046\046s.or();try{c(d.groups[g])}catch(k){alert(k)}e++}h\046\046\n
+s.orEnd()}if(d.rules!==void 0){if(e\0760){h=s.select();s=b.jgrid.from(h);a.p.ignoreCase\046\046(s=s.ignoreCase())}try{(i=d.rules.length\046\046d.groupOp.toString().toUpperCase()==="OR")\046\046s.orBegin();for(g=0;g\074d.rules.length;g++){S=d.rules[g];j=d.groupOp.toString().toUpperCase();if(o[S.op]\046\046S.field){e\0760\046\046(j\046\046j==="OR")\046\046(s=s.or());s=o[S.op](s,j)(S.field,S.data,f[S.field])}e++}i\046\046s.orEnd()}catch(ma){alert(ma)}}}var d,e=false,f={},g=[],h=[],i,j,k;if(b.isArray(a.p.data)){var l=a.p.grouping?a.p.groupingView:false,m,r;\n
+b.each(a.p.colModel,function(){j=this.sorttype||"text";if(j=="date"||j=="datetime"){if(this.formatter\046\046typeof this.formatter==="string"\046\046this.formatter=="date"){i=this.formatoptions\046\046this.formatoptions.srcformat?this.formatoptions.srcformat:b.jgrid.formatter.date.srcformat;k=this.formatoptions\046\046this.formatoptions.newformat?this.formatoptions.newformat:b.jgrid.formatter.date.newformat}else i=k=this.datefmt||"Y-m-d";f[this.name]={stype:j,srcfmt:i,newfmt:k}}else f[this.name]={stype:j,srcfmt:"",newfmt:""};\n
+if(a.p.grouping){r=0;for(m=l.groupField.length;r\074m;r++)if(this.name==l.groupField[r]){var c=this.name;if(typeof this.index!="undefined")c=this.index;g[r]=f[c];h[r]=c}}if(!e\046\046(this.index==a.p.sortname||this.name==a.p.sortname)){d=this.name;e=true}});if(a.p.treeGrid)b(a).jqGrid("SortTree",d,a.p.sortorder,f[d].stype,f[d].srcfmt);else{var o={eq:function(a){return a.equals},ne:function(a){return a.notEquals},lt:function(a){return a.less},le:function(a){return a.lessOrEquals},gt:function(a){return a.greater},\n
+ge:function(a){return a.greaterOrEquals},cn:function(a){return a.contains},nc:function(a,b){return b==="OR"?a.orNot().contains:a.andNot().contains},bw:function(a){return a.startsWith},bn:function(a,b){return b==="OR"?a.orNot().startsWith:a.andNot().startsWith},en:function(a,b){return b==="OR"?a.orNot().endsWith:a.andNot().endsWith},ew:function(a){return a.endsWith},ni:function(a,b){return b==="OR"?a.orNot().equals:a.andNot().equals},"in":function(a){return a.equals},nu:function(a){return a.isNull},\n
+nn:function(a,b){return b==="OR"?a.orNot().isNull:a.andNot().isNull}},s=b.jgrid.from(a.p.data);a.p.ignoreCase\046\046(s=s.ignoreCase());if(a.p.search===true){var n=a.p.postData.filters;if(n){typeof n=="string"\046\046(n=b.jgrid.parse(n));c(n)}else try{s=o[a.p.postData.searchOper](s)(a.p.postData.searchField,a.p.postData.searchString,f[a.p.postData.searchField])}catch(p){}}if(a.p.grouping)for(r=0;r\074m;r++)s.orderBy(h[r],l.groupOrder[r],g[r].stype,g[r].srcfmt);d\046\046(a.p.sortorder\046\046e)\046\046(a.p.sortorder.toUpperCase()==\n
+"DESC"?s.orderBy(a.p.sortname,"d",f[d].stype,f[d].srcfmt):s.orderBy(a.p.sortname,"a",f[d].stype,f[d].srcfmt));var n=s.select(),u=parseInt(a.p.rowNum,10),t=n.length,v=parseInt(a.p.page,10),x=Math.ceil(t/u),q={},n=n.slice((v-1)*u,v*u),f=s=null;q[a.p.localReader.total]=x;q[a.p.localReader.page]=v;q[a.p.localReader.records]=t;q[a.p.localReader.root]=n;q[a.p.localReader.userdata]=a.p.userData;n=null;return q}}},ba=function(){a.grid.hDiv.loading=true;if(!a.p.hiddengrid)switch(a.p.loadui){case "enable":b("#load_"+\n
+b.jgrid.jqID(a.p.id)).show();break;case "block":b("#lui_"+b.jgrid.jqID(a.p.id)).show();b("#load_"+b.jgrid.jqID(a.p.id)).show()}},K=function(){a.grid.hDiv.loading=false;switch(a.p.loadui){case "enable":b("#load_"+b.jgrid.jqID(a.p.id)).hide();break;case "block":b("#lui_"+b.jgrid.jqID(a.p.id)).hide();b("#load_"+b.jgrid.jqID(a.p.id)).hide()}},G=function(c){if(!a.grid.hDiv.loading){var d=a.p.scroll\046\046c===false,e={},f,g=a.p.prmNames;if(a.p.page\074=0)a.p.page=1;if(g.search!==null)e[g.search]=a.p.search;g.nd!==\n
+null\046\046(e[g.nd]=(new Date).getTime());if(g.rows!==null)e[g.rows]=a.p.rowNum;if(g.page!==null)e[g.page]=a.p.page;if(g.sort!==null)e[g.sort]=a.p.sortname;if(g.order!==null)e[g.order]=a.p.sortorder;if(a.p.rowTotal!==null\046\046g.totalrows!==null)e[g.totalrows]=a.p.rowTotal;var h=b.isFunction(a.p.loadComplete),i=h?a.p.loadComplete:null,j=0,c=c||1;if(c\0761)if(g.npage!==null){e[g.npage]=c;j=c-1;c=1}else i=function(b){a.p.page++;a.grid.hDiv.loading=false;h\046\046a.p.loadComplete.call(a,b);G(c-1)};else g.npage!==null\046\046\n
+delete a.p.postData[g.npage];if(a.p.grouping){b(a).jqGrid("groupingSetup");var k=a.p.groupingView,l,m="";for(l=0;l\074k.groupField.length;l++){var r=k.groupField[l];b.each(a.p.colModel,function(a,b){if(b.name==r\046\046b.index)r=b.index});m=m+(r+" "+k.groupOrder[l]+", ")}e[g.sort]=m+e[g.sort]}b.extend(a.p.postData,e);var n=!a.p.scroll?1:a.rows.length-1,e=b(a).triggerHandler("jqGridBeforeRequest");if(!(e===false||e==="stop"))if(b.isFunction(a.p.datatype))a.p.datatype.call(a,a.p.postData,"load_"+a.p.id);else{if(b.isFunction(a.p.beforeRequest)){e=\n
+a.p.beforeRequest.call(a);e===void 0\046\046(e=true);if(e===false)return}f=a.p.datatype.toLowerCase();switch(f){case "json":case "jsonp":case "xml":case "script":b.ajax(b.extend({url:a.p.url,type:a.p.mtype,dataType:f,data:b.isFunction(a.p.serializeGridData)?a.p.serializeGridData.call(a,a.p.postData):a.p.postData,success:function(e,g,h){if(b.isFunction(a.p.beforeProcessing)\046\046a.p.beforeProcessing.call(a,e,g,h)===false)K();else{f==="xml"?Z(e,a.grid.bDiv,n,c\0761,j):$(e,a.grid.bDiv,n,c\0761,j);b(a).triggerHandler("jqGridLoadComplete",\n
+[e]);i\046\046i.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);d\046\046a.grid.populateVisible();if(a.p.loadonce||a.p.treeGrid)a.p.datatype="local";c===1\046\046K()}},error:function(d,e,f){b.isFunction(a.p.loadError)\046\046a.p.loadError.call(a,d,e,f);c===1\046\046K()},beforeSend:function(c,d){var e=true;b.isFunction(a.p.loadBeforeSend)\046\046(e=a.p.loadBeforeSend.call(a,c,d));e===void 0\046\046(e=true);if(e===false)return false;ba()}},b.jgrid.ajaxOptions,a.p.ajaxGridOptions));break;case "xmlstring":ba();e=b.jgrid.stringToDoc(a.p.datastr);\n
+Z(e,a.grid.bDiv);b(a).triggerHandler("jqGridLoadComplete",[e]);h\046\046a.p.loadComplete.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);a.p.datatype="local";a.p.datastr=null;K();break;case "jsonstring":ba();e=typeof a.p.datastr=="string"?b.jgrid.parse(a.p.datastr):a.p.datastr;$(e,a.grid.bDiv);b(a).triggerHandler("jqGridLoadComplete",[e]);h\046\046a.p.loadComplete.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);a.p.datatype="local";a.p.datastr=null;K();break;case "local":case "clientside":ba();\n
+a.p.datatype="local";e=la();$(e,a.grid.bDiv,n,c\0761,j);b(a).triggerHandler("jqGridLoadComplete",[e]);i\046\046i.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);d\046\046a.grid.populateVisible();K()}}}},ca=function(c){b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv)[a.p.useProp?"prop":"attr"]("checked",c);if(a.p.frozenColumns\046\046a.p.id+"_frozen")b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.fhDiv)[a.p.useProp?"prop":"attr"]("checked",c)};l=function(c,e){var d="",f="\074table cellspacing=\'0\' cellpadding=\'0\' border=\'0\' style=\'table-layout:auto;\' class=\'ui-pg-table\'\076\074tbody\076\074tr\076",\n
+g="",h,j,k,l,m=function(c){var e;b.isFunction(a.p.onPaging)\046\046(e=a.p.onPaging.call(a,c));a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];ca(false)}a.p.savedRow=[];return e=="stop"?false:true},c=c.substr(1),e=e+("_"+c);h="pg_"+c;j=c+"_left";k=c+"_center";l=c+"_right";b("#"+b.jgrid.jqID(c)).append("\074div id=\'"+h+"\' class=\'ui-pager-control\' role=\'group\'\076\074table cellspacing=\'0\' cellpadding=\'0\' border=\'0\' class=\'ui-pg-table\' style=\'width:100%;table-layout:fixed;height:100%;\' role=\'row\'\076\074tbody\076\074tr\076\074td id=\'"+\n
+j+"\' align=\'left\'\076\074/td\076\074td id=\'"+k+"\' align=\'center\' style=\'white-space:pre;\'\076\074/td\076\074td id=\'"+l+"\' align=\'right\'\076\074/td\076\074/tr\076\074/tbody\076\074/table\076\074/div\076").attr("dir","ltr");if(a.p.rowList.length\0760){g="\074td dir=\'"+i+"\'\076";g=g+"\074select class=\'ui-pg-selbox\' role=\'listbox\'\076";for(j=0;j\074a.p.rowList.length;j++)g=g+(\'\074option role="option" value="\'+a.p.rowList[j]+\'"\'+(a.p.rowNum==a.p.rowList[j]?\' selected="selected"\':"")+"\076"+a.p.rowList[j]+"\074/option\076");g=g+"\074/select\076\074/td\076"}i=="rtl"\046\046(f=f+g);a.p.pginput===true\046\046(d="\074td dir=\'"+\n
+i+"\'\076"+b.jgrid.format(a.p.pgtext||"","\074input class=\'ui-pg-input\' type=\'text\' size=\'2\' maxlength=\'7\' value=\'0\' role=\'textbox\'/\076","\074span id=\'sp_1_"+b.jgrid.jqID(c)+"\'\076\074/span\076")+"\074/td\076");if(a.p.pgbuttons===true){j=["first"+e,"prev"+e,"next"+e,"last"+e];i=="rtl"\046\046j.reverse();f=f+("\074td id=\'"+j[0]+"\' class=\'ui-pg-button ui-corner-all\'\076\074span class=\'ui-icon ui-icon-seek-first\'\076\074/span\076\074/td\076");f=f+("\074td id=\'"+j[1]+"\' class=\'ui-pg-button ui-corner-all\'\076\074span class=\'ui-icon ui-icon-seek-prev\'\076\074/span\076\074/td\076");\n
+f=f+(d!==""?"\074td class=\'ui-pg-button ui-state-disabled\' style=\'width:4px;\'\076\074span class=\'ui-separator\'\076\074/span\076\074/td\076"+d+"\074td class=\'ui-pg-button ui-state-disabled\' style=\'width:4px;\'\076\074span class=\'ui-separator\'\076\074/span\076\074/td\076":"")+("\074td id=\'"+j[2]+"\' class=\'ui-pg-button ui-corner-all\'\076\074span class=\'ui-icon ui-icon-seek-next\'\076\074/span\076\074/td\076");f=f+("\074td id=\'"+j[3]+"\' class=\'ui-pg-button ui-corner-all\'\076\074span class=\'ui-icon ui-icon-seek-end\'\076\074/span\076\074/td\076")}else d!==""\046\046(f=f+d);i=="ltr"\046\046(f=f+g);f=f+"\074/tr\076\074/tbody\076\074/table\076";\n
+a.p.viewrecords===true\046\046b("td#"+c+"_"+a.p.recordpos,"#"+h).append("\074div dir=\'"+i+"\' style=\'text-align:"+a.p.recordpos+"\' class=\'ui-paging-info\'\076\074/div\076");b("td#"+c+"_"+a.p.pagerpos,"#"+h).append(f);g=b(".ui-jqgrid").css("font-size")||"11px";b(document.body).append("\074div id=\'testpg\' class=\'ui-jqgrid ui-widget ui-widget-content\' style=\'font-size:"+g+";visibility:hidden;\' \076\074/div\076");f=b(f).clone().appendTo("#testpg").width();b("#testpg").remove();if(f\0760){d!==""\046\046(f=f+50);b("td#"+c+"_"+a.p.pagerpos,"#"+\n
+h).width(f)}a.p._nvtd=[];a.p._nvtd[0]=f?Math.floor((a.p.width-f)/2):Math.floor(a.p.width/3);a.p._nvtd[1]=0;f=null;b(".ui-pg-selbox","#"+h).bind("change",function(){a.p.page=Math.round(a.p.rowNum*(a.p.page-1)/this.value-0.5)+1;a.p.rowNum=this.value;a.p.pager\046\046b(".ui-pg-selbox",a.p.pager).val(this.value);a.p.toppager\046\046b(".ui-pg-selbox",a.p.toppager).val(this.value);if(!m("records"))return false;G();return false});if(a.p.pgbuttons===true){b(".ui-pg-button","#"+h).hover(function(){if(b(this).hasClass("ui-state-disabled"))this.style.cursor=\n
+"default";else{b(this).addClass("ui-state-hover");this.style.cursor="pointer"}},function(){if(!b(this).hasClass("ui-state-disabled")){b(this).removeClass("ui-state-hover");this.style.cursor="default"}});b("#first"+b.jgrid.jqID(e)+", #prev"+b.jgrid.jqID(e)+", #next"+b.jgrid.jqID(e)+", #last"+b.jgrid.jqID(e)).click(function(){var b=o(a.p.page,1),c=o(a.p.lastpage,1),d=false,f=true,g=true,h=true,i=true;if(c===0||c===1)i=h=g=f=false;else if(c\0761\046\046b\076=1)if(b===1)g=f=false;else{if(b===c)i=h=false}else if(c\076\n
+1\046\046b===0){i=h=false;b=c-1}if(this.id==="first"+e\046\046f){a.p.page=1;d=true}if(this.id==="prev"+e\046\046g){a.p.page=b-1;d=true}if(this.id==="next"+e\046\046h){a.p.page=b+1;d=true}if(this.id==="last"+e\046\046i){a.p.page=c;d=true}if(d){if(!m(this.id))return false;G()}return false})}a.p.pginput===true\046\046b("input.ui-pg-input","#"+h).keypress(function(c){if((c.charCode?c.charCode:c.keyCode?c.keyCode:0)==13){a.p.page=b(this).val()\0760?b(this).val():a.p.page;if(!m("user"))return false;G();return false}return this})};var ia=function(c,\n
+e,d,f){if(a.p.colModel[e].sortable\046\046!(a.p.savedRow.length\0760)){if(!d){if(a.p.lastsort==e)if(a.p.sortorder=="asc")a.p.sortorder="desc";else{if(a.p.sortorder=="desc")a.p.sortorder="asc"}else a.p.sortorder=a.p.colModel[e].firstsortorder||"asc";a.p.page=1}if(f){if(a.p.lastsort==e\046\046a.p.sortorder==f\046\046!d)return;a.p.sortorder=f}d=a.grid.headers[a.p.lastsort].el;f=a.grid.headers[e].el;b("span.ui-grid-ico-sort",d).addClass("ui-state-disabled");b(d).attr("aria-selected","false");b("span.ui-icon-"+a.p.sortorder,\n
+f).removeClass("ui-state-disabled");b(f).attr("aria-selected","true");if(!a.p.viewsortcols[0]\046\046a.p.lastsort!=e){b("span.s-ico",d).hide();b("span.s-ico",f).show()}c=c.substring(5+a.p.id.length+1);a.p.sortname=a.p.colModel[e].index||c;d=a.p.sortorder;if(b(a).triggerHandler("jqGridSortCol",[c,e,d])==="stop")a.p.lastsort=e;else if(b.isFunction(a.p.onSortCol)\046\046a.p.onSortCol.call(a,c,e,d)=="stop")a.p.lastsort=e;else{if(a.p.datatype=="local")a.p.deselectAfterSort\046\046b(a).jqGrid("resetSelection");else{a.p.selrow=\n
+null;a.p.multiselect\046\046ca(false);a.p.selarrrow=[];a.p.savedRow=[]}if(a.p.scroll){d=a.grid.bDiv.scrollLeft;M.call(a,true,false);a.grid.hDiv.scrollLeft=d}a.p.subGrid\046\046a.p.datatype=="local"\046\046b("td.sgexpanded","#"+b.jgrid.jqID(a.p.id)).each(function(){b(this).trigger("click")});G();a.p.lastsort=e;if(a.p.sortname!=c\046\046e)a.p.lastsort=e}}},na=function(c){var e,d={},f=b.jgrid.cellWidth()?0:a.p.cellLayout;for(e=d[0]=d[1]=d[2]=0;e\074=c;e++)a.p.colModel[e].hidden===false\046\046(d[0]=d[0]+(a.p.colModel[e].width+f));a.p.direction==\n
+"rtl"\046\046(d[0]=a.p.width-d[0]);d[0]=d[0]-a.grid.bDiv.scrollLeft;b(a.grid.cDiv).is(":visible")\046\046(d[1]=d[1]+(b(a.grid.cDiv).height()+parseInt(b(a.grid.cDiv).css("padding-top"),10)+parseInt(b(a.grid.cDiv).css("padding-bottom"),10)));if(a.p.toolbar[0]===true\046\046(a.p.toolbar[1]=="top"||a.p.toolbar[1]=="both"))d[1]=d[1]+(b(a.grid.uDiv).height()+parseInt(b(a.grid.uDiv).css("border-top-width"),10)+parseInt(b(a.grid.uDiv).css("border-bottom-width"),10));a.p.toppager\046\046(d[1]=d[1]+(b(a.grid.topDiv).height()+parseInt(b(a.grid.topDiv).css("border-bottom-width"),\n
+10)));d[2]=d[2]+(b(a.grid.bDiv).height()+b(a.grid.hDiv).height());return d},ja=function(c){var d,e=a.grid.headers,f=b.jgrid.getCellIndex(c);for(d=0;d\074e.length;d++)if(c===e[d].el){f=d;break}return f};this.p.id=this.id;-1==b.inArray(a.p.multikey,["shiftKey","altKey","ctrlKey"])\046\046(a.p.multikey=!1);a.p.keyIndex=!1;for(e=0;e\074a.p.colModel.length;e++)a.p.colModel[e]=b.extend(!0,{},a.p.cmTemplate,a.p.colModel[e].template||{},a.p.colModel[e]),!1===a.p.keyIndex\046\046!0===a.p.colModel[e].key\046\046(a.p.keyIndex=e);a.p.sortorder=\n
+a.p.sortorder.toLowerCase();!0===a.p.grouping\046\046(a.p.scroll=!1,a.p.rownumbers=!1,a.p.treeGrid=!1,a.p.gridview=!0);if(!0===this.p.treeGrid){try{b(this).jqGrid("setTreeGrid")}catch(pa){}"local"!=a.p.datatype\046\046(a.p.localReader={id:"_id_"})}if(this.p.subGrid)try{b(a).jqGrid("setSubGrid")}catch(qa){}this.p.multiselect\046\046(this.p.colNames.unshift("\074input role=\'checkbox\' id=\'cb_"+this.p.id+"\' class=\'cbox\' type=\'checkbox\'/\076"),this.p.colModel.unshift({name:"cb",width:b.jgrid.cellWidth()?a.p.multiselectWidth+\n
+a.p.cellLayout:a.p.multiselectWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0}));this.p.rownumbers\046\046(this.p.colNames.unshift(""),this.p.colModel.unshift({name:"rn",width:a.p.rownumWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0}));a.p.xmlReader=b.extend(!0,{root:"rows",row:"row",page:"rows\076page",total:"rows\076total",records:"rows\076records",repeatitems:!0,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:!0,cell:"cell"}},\n
+a.p.xmlReader);a.p.jsonReader=b.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!0,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},a.p.jsonReader);a.p.localReader=b.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!1,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},a.p.localReader);a.p.scroll\046\046(a.p.pgbuttons=!1,a.p.pginput=!1,a.p.rowList=[]);a.p.data.length\046\046\n
+Q();var x="\074thead\076\074tr class=\'ui-jqgrid-labels\' role=\'rowheader\'\076",ka,J,da,aa,ea,A,n,V;J=V="";if(!0===a.p.shrinkToFit\046\046!0===a.p.forceFit)for(e=a.p.colModel.length-1;0\074=e;e--)if(!a.p.colModel[e].hidden){a.p.colModel[e].resizable=!1;break}"horizontal"==a.p.viewsortcols[1]\046\046(V=" ui-i-asc",J=" ui-i-desc");ka=k?"class=\'ui-th-div-ie\'":"";V="\074span class=\'s-ico\' style=\'display:none\'\076\074span sort=\'asc\' class=\'ui-grid-ico-sort ui-icon-asc"+V+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+i+"\'\076\074/span\076"+\n
+("\074span sort=\'desc\' class=\'ui-grid-ico-sort ui-icon-desc"+J+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+i+"\'\076\074/span\076\074/span\076");for(e=0;e\074this.p.colNames.length;e++)J=a.p.headertitles?\' title="\'+b.jgrid.stripHtml(a.p.colNames[e])+\'"\':"",x+="\074th id=\'"+a.p.id+"_"+a.p.colModel[e].name+"\' role=\'columnheader\' class=\'ui-state-default ui-th-column ui-th-"+i+"\'"+J+"\076",J=a.p.colModel[e].index||a.p.colModel[e].name,x+="\074div id=\'jqgh_"+a.p.id+"_"+a.p.colModel[e].name+"\' "+ka+"\076"+a.p.colNames[e],\n
+a.p.colModel[e].width=a.p.colModel[e].width?parseInt(a.p.colModel[e].width,10):150,"boolean"!==typeof a.p.colModel[e].title\046\046(a.p.colModel[e].title=!0),J==a.p.sortname\046\046(a.p.lastsort=e),x+=V+"\074/div\076\074/th\076";V=null;b(this).append(x+"\074/tr\076\074/thead\076");b("thead tr:first th",this).hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")});if(this.p.multiselect){var fa=[],W;b("#cb_"+b.jgrid.jqID(a.p.id),this).bind("click",function(){a.p.selarrrow=[];var c=a.p.frozenColumns===\n
+true?a.p.id+"_frozen":"";if(this.checked){b(a.rows).each(function(d){if(d\0760\046\046!b(this).hasClass("ui-subgrid")\046\046!b(this).hasClass("jqgroup")\046\046!b(this).hasClass("ui-state-disabled")){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id))[a.p.useProp?"prop":"attr"]("checked",true);b(this).addClass("ui-state-highlight").attr("aria-selected","true");a.p.selarrrow.push(this.id);a.p.selrow=this.id;if(c){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id),a.grid.fbDiv)[a.p.useProp?"prop":"attr"]("checked",\n
+true);b("#"+b.jgrid.jqID(this.id),a.grid.fbDiv).addClass("ui-state-highlight")}}});W=true;fa=[]}else{b(a.rows).each(function(d){if(d\0760\046\046!b(this).hasClass("ui-subgrid")\046\046!b(this).hasClass("ui-state-disabled")){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id))[a.p.useProp?"prop":"attr"]("checked",false);b(this).removeClass("ui-state-highlight").attr("aria-selected","false");fa.push(this.id);if(c){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id),a.grid.fbDiv)[a.p.useProp?"prop":"attr"]("checked",\n
+false);b("#"+b.jgrid.jqID(this.id),a.grid.fbDiv).removeClass("ui-state-highlight")}}});a.p.selrow=null;W=false}b(a).triggerHandler("jqGridSelectAll",[W?a.p.selarrrow:fa,W]);b.isFunction(a.p.onSelectAll)\046\046a.p.onSelectAll.call(a,W?a.p.selarrrow:fa,W)})}!0===a.p.autowidth\046\046(x=b(m).innerWidth(),a.p.width=0\074x?x:"nw");(function(){var d=0,e=b.jgrid.cellWidth()?0:o(a.p.cellLayout,0),f=0,h,i=o(a.p.scrollOffset,0),j,k=false,l,m=0,n=0,p;b.each(a.p.colModel,function(){if(typeof this.hidden==="undefined")this.hidden=\n
+false;this.widthOrg=j=o(this.width,0);if(this.hidden===false){d=d+(j+e);this.fixed?m=m+(j+e):f++;n++}});if(isNaN(a.p.width))a.p.width=d+(a.p.shrinkToFit===false\046\046!isNaN(a.p.height)?i:0);c.width=a.p.width;a.p.tblwidth=d;if(a.p.shrinkToFit===false\046\046a.p.forceFit===true)a.p.forceFit=false;if(a.p.shrinkToFit===true\046\046f\0760){l=c.width-e*f-m;if(!isNaN(a.p.height)){l=l-i;k=true}d=0;b.each(a.p.colModel,function(b){if(this.hidden===false\046\046!this.fixed){this.width=j=Math.round(l*this.width/(a.p.tblwidth-e*f-m));\n
+d=d+j;h=b}});p=0;k?c.width-m-(d+e*f)!==i\046\046(p=c.width-m-(d+e*f)-i):!k\046\046Math.abs(c.width-m-(d+e*f))!==1\046\046(p=c.width-m-(d+e*f));a.p.colModel[h].width=a.p.colModel[h].width+p;a.p.tblwidth=d+p+e*f+m;if(a.p.tblwidth\076a.p.width){a.p.colModel[h].width=a.p.colModel[h].width-(a.p.tblwidth-parseInt(a.p.width,10));a.p.tblwidth=a.p.width}}})();b(m).css("width",c.width+"px").append("\074div class=\'ui-jqgrid-resize-mark\' id=\'rs_m"+a.p.id+"\'\076\046#160;\074/div\076");b(j).css("width",c.width+"px");var x=b("thead:first",a).get(0),\n
+P="";a.p.footerrow\046\046(P+="\074table role=\'grid\' style=\'width:"+a.p.tblwidth+"px\' class=\'ui-jqgrid-ftable\' cellspacing=\'0\' cellpadding=\'0\' border=\'0\'\076\074tbody\076\074tr role=\'row\' class=\'ui-widget-content footrow footrow-"+i+"\'\076");var j=b("tr:first",x),X="\074tr class=\'jqgfirstrow\' role=\'row\' style=\'height:auto\'\076";a.p.disableClick=!1;b("th",j).each(function(d){da=a.p.colModel[d].width;if(typeof a.p.colModel[d].resizable==="undefined")a.p.colModel[d].resizable=true;if(a.p.colModel[d].resizable){aa=document.createElement("span");\n
+b(aa).html("\046#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+i);b.browser.opera||b(aa).css("cursor","col-resize");b(this).addClass(a.p.resizeclass)}else aa="";b(this).css("width",da+"px").prepend(aa);var e="";if(a.p.colModel[d].hidden){b(this).css("display","none");e="display:none;"}X=X+("\074td role=\'gridcell\' style=\'height:0px;width:"+da+"px;"+e+"\'\076\074/td\076");c.headers[d]={width:da,el:this};ea=a.p.colModel[d].sortable;if(typeof ea!=="boolean")ea=a.p.colModel[d].sortable=true;e=a.p.colModel[d].name;\n
+e=="cb"||(e=="subgrid"||e=="rn")||a.p.viewsortcols[2]\046\046b("\076div",this).addClass("ui-jqgrid-sortable");if(ea)if(a.p.viewsortcols[0]){b("div span.s-ico",this).show();d==a.p.lastsort\046\046b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}else if(d==a.p.lastsort){b("div span.s-ico",this).show();b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}a.p.footerrow\046\046(P=P+("\074td role=\'gridcell\' "+p(d,0,"",null,"",false)+"\076\046#160;\074/td\076"))}).mousedown(function(d){if(b(d.target).closest("th\076span.ui-jqgrid-resize").length==\n
+1){var e=ja(this);if(a.p.forceFit===true){var f=a.p,h=e,i;for(i=e+1;i\074a.p.colModel.length;i++)if(a.p.colModel[i].hidden!==true){h=i;break}f.nv=h-e}c.dragStart(e,d,na(e));return false}}).click(function(c){if(a.p.disableClick)return a.p.disableClick=false;var d="th\076div.ui-jqgrid-sortable",e,f;a.p.viewsortcols[2]||(d="th\076div\076span\076span.ui-grid-ico-sort");c=b(c.target).closest(d);if(c.length==1){d=ja(this);if(!a.p.viewsortcols[2]){e=true;f=c.attr("sort")}ia(b("div",this)[0].id,d,e,f);return false}});if(a.p.sortable\046\046\n
+b.fn.sortable)try{b(a).jqGrid("sortableColumns",j)}catch(ra){}a.p.footerrow\046\046(P+="\074/tr\076\074/tbody\076\074/table\076");X+="\074/tr\076";this.appendChild(document.createElement("tbody"));b(this).addClass("ui-jqgrid-btable").append(X);var X=null,j=b("\074table class=\'ui-jqgrid-htable\' style=\'width:"+a.p.tblwidth+"px\' role=\'grid\' aria-labelledby=\'gbox_"+this.id+"\' cellspacing=\'0\' cellpadding=\'0\' border=\'0\'\076\074/table\076").append(x),D=a.p.caption\046\046!0===a.p.hiddengrid?!0:!1;e=b("\074div class=\'ui-jqgrid-hbox"+("rtl"==i?"-rtl":"")+\n
+"\'\076\074/div\076");x=null;c.hDiv=document.createElement("div");b(c.hDiv).css({width:c.width+"px"}).addClass("ui-state-default ui-jqgrid-hdiv").append(e);b(e).append(j);j=null;D\046\046b(c.hDiv).hide();a.p.pager\046\046("string"==typeof a.p.pager?"#"!=a.p.pager.substr(0,1)\046\046(a.p.pager="#"+a.p.pager):a.p.pager="#"+b(a.p.pager).attr("id"),b(a.p.pager).css({width:c.width+"px"}).appendTo(m).addClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"),D\046\046b(a.p.pager).hide(),l(a.p.pager,""));!1===a.p.cellEdit\046\046!0===a.p.hoverrows\046\046\n
+b(a).bind("mouseover",function(a){n=b(a.target).closest("tr.jqgrow");b(n).attr("class")!=="ui-subgrid"\046\046b(n).addClass("ui-state-hover")}).bind("mouseout",function(a){n=b(a.target).closest("tr.jqgrow");b(n).removeClass("ui-state-hover")});var t,H,ga;b(a).before(c.hDiv).click(function(c){A=c.target;n=b(A,a.rows).closest("tr.jqgrow");if(b(n).length===0||n[0].className.indexOf("ui-state-disabled")\076-1||(b(A,a).closest("table.ui-jqgrid-btable").attr("id")||"").replace("_frozen","")!==a.id)return this;var d=\n
+b(A).hasClass("cbox"),e=b(a).triggerHandler("jqGridBeforeSelectRow",[n[0].id,c]);(e=e===false||e==="stop"?false:true)\046\046b.isFunction(a.p.beforeSelectRow)\046\046(e=a.p.beforeSelectRow.call(a,n[0].id,c));if(!(A.tagName=="A"||(A.tagName=="INPUT"||A.tagName=="TEXTAREA"||A.tagName=="OPTION"||A.tagName=="SELECT")\046\046!d)\046\046e===true){t=n[0].id;H=b.jgrid.getCellIndex(A);ga=b(A).closest("td,th").html();b(a).triggerHandler("jqGridCellSelect",[t,H,ga,c]);b.isFunction(a.p.onCellSelect)\046\046a.p.onCellSelect.call(a,t,H,ga,\n
+c);if(a.p.cellEdit===true)if(a.p.multiselect\046\046d)b(a).jqGrid("setSelection",t,true,c);else{t=n[0].rowIndex;try{b(a).jqGrid("editCell",t,H,true)}catch(f){}}else if(a.p.multikey)if(c[a.p.multikey])b(a).jqGrid("setSelection",t,true,c);else{if(a.p.multiselect\046\046d){d=b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+t).is(":checked");b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+t)[a.p.useProp?"prop":"attr"]("checked",d)}}else{if(a.p.multiselect\046\046a.p.multiboxonly\046\046!d){var g=a.p.frozenColumns?a.p.id+"_frozen":"";b(a.p.selarrrow).each(function(c,\n
+d){var e=a.rows.namedItem(d);b(e).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(d))[a.p.useProp?"prop":"attr"]("checked",false);if(g){b("#"+b.jgrid.jqID(d),"#"+b.jgrid.jqID(g)).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(d),"#"+b.jgrid.jqID(g))[a.p.useProp?"prop":"attr"]("checked",false)}});a.p.selarrrow=[]}b(a).jqGrid("setSelection",t,true,c)}}}).bind("reloadGrid",function(c,d){if(a.p.treeGrid===true)a.p.datatype=a.p.treedatatype;\n
+d\046\046d.current\046\046a.grid.selectionPreserver(a);if(a.p.datatype=="local"){b(a).jqGrid("resetSelection");a.p.data.length\046\046Q()}else if(!a.p.treeGrid){a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];ca(false)}a.p.savedRow=[]}a.p.scroll\046\046M.call(a,true,false);if(d\046\046d.page){var e=d.page;if(e\076a.p.lastpage)e=a.p.lastpage;e\0741\046\046(e=1);a.p.page=e;a.grid.bDiv.scrollTop=a.grid.prevRowHeight?(e-1)*a.grid.prevRowHeight*a.p.rowNum:0}if(a.grid.prevRowHeight\046\046a.p.scroll){delete a.p.lastpage;a.grid.populateVisible()}else a.grid.populate();\n
+a.p._inlinenav===true\046\046b(a).jqGrid("showAddEditButtons");return false}).dblclick(function(c){A=c.target;n=b(A,a.rows).closest("tr.jqgrow");if(b(n).length!==0){t=n[0].rowIndex;H=b.jgrid.getCellIndex(A);b(a).triggerHandler("jqGridDblClickRow",[b(n).attr("id"),t,H,c]);b.isFunction(this.p.ondblClickRow)\046\046a.p.ondblClickRow.call(a,b(n).attr("id"),t,H,c)}}).bind("contextmenu",function(c){A=c.target;n=b(A,a.rows).closest("tr.jqgrow");if(b(n).length!==0){a.p.multiselect||b(a).jqGrid("setSelection",n[0].id,\n
+true,c);t=n[0].rowIndex;H=b.jgrid.getCellIndex(A);b(a).triggerHandler("jqGridRightClickRow",[b(n).attr("id"),t,H,c]);b.isFunction(this.p.onRightClickRow)\046\046a.p.onRightClickRow.call(a,b(n).attr("id"),t,H,c)}});c.bDiv=document.createElement("div");k\046\046"auto"===(""+a.p.height).toLowerCase()\046\046(a.p.height="100%");b(c.bDiv).append(b(\'\074div style="position:relative;\'+(k\046\0468\076b.browser.version?"height:0.01%;":"")+\'"\076\074/div\076\').append("\074div\076\074/div\076").append(this)).addClass("ui-jqgrid-bdiv").css({height:a.p.height+\n
+(isNaN(a.p.height)?"":"px"),width:c.width+"px"}).scroll(c.scrollGrid);b("table:first",c.bDiv).css({width:a.p.tblwidth+"px"});k?(2==b("tbody",this).length\046\046b("tbody:gt(0)",this).remove(),a.p.multikey\046\046b(c.bDiv).bind("selectstart",function(){return false})):a.p.multikey\046\046b(c.bDiv).bind("mousedown",function(){return false});D\046\046b(c.bDiv).hide();c.cDiv=document.createElement("div");var ha=!0===a.p.hidegrid?b("\074a role=\'link\' href=\'javascript:void(0)\'/\076").addClass("ui-jqgrid-titlebar-close HeaderButton").hover(function(){ha.addClass("ui-state-hover")},\n
+function(){ha.removeClass("ui-state-hover")}).append("\074span class=\'ui-icon ui-icon-circle-triangle-n\'\076\074/span\076").css("rtl"==i?"left":"right","0px"):"";b(c.cDiv).append(ha).append("\074span class=\'ui-jqgrid-title"+("rtl"==i?"-rtl":"")+"\'\076"+a.p.caption+"\074/span\076").addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");b(c.cDiv).insertBefore(c.hDiv);a.p.toolbar[0]\046\046(c.uDiv=document.createElement("div"),"top"==a.p.toolbar[1]?b(c.uDiv).insertBefore(c.hDiv):"bottom"==a.p.toolbar[1]\046\046\n
+b(c.uDiv).insertAfter(c.hDiv),"both"==a.p.toolbar[1]?(c.ubDiv=document.createElement("div"),b(c.uDiv).insertBefore(c.hDiv).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id),b(c.ubDiv).insertAfter(c.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id),D\046\046b(c.ubDiv).hide()):b(c.uDiv).width(c.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id),D\046\046b(c.uDiv).hide());a.p.toppager\046\046(a.p.toppager=b.jgrid.jqID(a.p.id)+"_toppager",c.topDiv=b("\074div id=\'"+\n
+a.p.toppager+"\'\076\074/div\076")[0],a.p.toppager="#"+a.p.toppager,b(c.topDiv).insertBefore(c.hDiv).addClass("ui-state-default ui-jqgrid-toppager").width(c.width),l(a.p.toppager,"_t"));a.p.footerrow\046\046(c.sDiv=b("\074div class=\'ui-jqgrid-sdiv\'\076\074/div\076")[0],e=b("\074div class=\'ui-jqgrid-hbox"+("rtl"==i?"-rtl":"")+"\'\076\074/div\076"),b(c.sDiv).append(e).insertAfter(c.hDiv).width(c.width),b(e).append(P),c.footers=b(".ui-jqgrid-ftable",c.sDiv)[0].rows[0].cells,a.p.rownumbers\046\046(c.footers[0].className="ui-state-default jqgrid-rownum"),\n
+D\046\046b(c.sDiv).hide());e=null;if(a.p.caption){var oa=a.p.datatype;!0===a.p.hidegrid\046\046(b(".ui-jqgrid-titlebar-close",c.cDiv).click(function(d){var e=b.isFunction(a.p.onHeaderClick),f=".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-pager, .ui-jqgrid-sdiv",h,i=this;if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"\046\046(f=f+(", #"+b(c.ubDiv).attr("id")));f=f+(", #"+b(c.uDiv).attr("id"))}h=b(f,"#gview_"+b.jgrid.jqID(a.p.id)).length;a.p.gridstate=="visible"?b(f,"#gbox_"+b.jgrid.jqID(a.p.id)).slideUp("fast",function(){h--;\n
+if(h===0){b("span",i).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");a.p.gridstate="hidden";b("#gbox_"+b.jgrid.jqID(a.p.id)).hasClass("ui-resizable")\046\046b(".ui-resizable-handle","#gbox_"+b.jgrid.jqID(a.p.id)).hide();b(a).triggerHandler("jqGridHeaderClick",[a.p.gridstate,d]);e\046\046(D||a.p.onHeaderClick.call(a,a.p.gridstate,d))}}):a.p.gridstate=="hidden"\046\046b(f,"#gbox_"+b.jgrid.jqID(a.p.id)).slideDown("fast",function(){h--;if(h===0){b("span",i).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");\n
+if(D){a.p.datatype=oa;G();D=false}a.p.gridstate="visible";b("#gbox_"+b.jgrid.jqID(a.p.id)).hasClass("ui-resizable")\046\046b(".ui-resizable-handle","#gbox_"+b.jgrid.jqID(a.p.id)).show();b(a).triggerHandler("jqGridHeaderClick",[a.p.gridstate,d]);e\046\046(D||a.p.onHeaderClick.call(a,a.p.gridstate,d))}});return false}),D\046\046(a.p.datatype="local",b(".ui-jqgrid-titlebar-close",c.cDiv).trigger("click")))}else b(c.cDiv).hide();b(c.hDiv).after(c.bDiv).mousemove(function(a){if(c.resizing){c.dragMove(a);return false}});\n
+b(".ui-jqgrid-labels",c.hDiv).bind("selectstart",function(){return false});b(document).mouseup(function(){if(c.resizing){c.dragEnd();return false}return true});a.formatCol=p;a.sortData=ia;a.updatepager=function(c,d){var e,f,g,h,i,j,k,l="",m=a.p.pager?"_"+b.jgrid.jqID(a.p.pager.substr(1)):"",n=a.p.toppager?"_"+a.p.toppager.substr(1):"";g=parseInt(a.p.page,10)-1;g\0740\046\046(g=0);g=g*parseInt(a.p.rowNum,10);i=g+a.p.reccount;if(a.p.scroll){e=b("tbody:first \076 tr:gt(0)",a.grid.bDiv);g=i-e.length;a.p.reccount=\n
+e.length;if(f=e.outerHeight()||a.grid.prevRowHeight){e=g*f;f=parseInt(a.p.records,10)*f;b("\076div:first",a.grid.bDiv).css({height:f}).children("div:first").css({height:e,display:e?"":"none"})}a.grid.bDiv.scrollLeft=a.grid.hDiv.scrollLeft}l=a.p.pager?a.p.pager:"";if(l=l+(a.p.toppager?l?","+a.p.toppager:a.p.toppager:"")){k=b.jgrid.formatter.integer||{};e=o(a.p.page);f=o(a.p.lastpage);b(".selbox",l)[this.p.useProp?"prop":"attr"]("disabled",false);if(a.p.pginput===true){b(".ui-pg-input",l).val(a.p.page);\n
+h=a.p.toppager?"#sp_1"+m+",#sp_1"+n:"#sp_1"+m;b(h).html(b.fmatter?b.fmatter.util.NumberFormat(a.p.lastpage,k):a.p.lastpage)}if(a.p.viewrecords)if(a.p.reccount===0)b(".ui-paging-info",l).html(a.p.emptyrecords);else{h=g+1;j=a.p.records;if(b.fmatter){h=b.fmatter.util.NumberFormat(h,k);i=b.fmatter.util.NumberFormat(i,k);j=b.fmatter.util.NumberFormat(j,k)}b(".ui-paging-info",l).html(b.jgrid.format(a.p.recordtext,h,i,j))}if(a.p.pgbuttons===true){e\074=0\046\046(e=f=0);if(e==1||e===0){b("#first"+m+", #prev"+m).addClass("ui-state-disabled").removeClass("ui-state-hover");\n
+a.p.toppager\046\046b("#first_t"+n+", #prev_t"+n).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#first"+m+", #prev"+m).removeClass("ui-state-disabled");a.p.toppager\046\046b("#first_t"+n+", #prev_t"+n).removeClass("ui-state-disabled")}if(e==f||e===0){b("#next"+m+", #last"+m).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager\046\046b("#next_t"+n+", #last_t"+n).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#next"+m+", #last"+m).removeClass("ui-state-disabled");\n
+a.p.toppager\046\046b("#next_t"+n+", #last_t"+n).removeClass("ui-state-disabled")}}}c===true\046\046a.p.rownumbers===true\046\046b("td.jqgrid-rownum",a.rows).each(function(a){b(this).html(g+1+a)});d\046\046a.p.jqgdnd\046\046b(a).jqGrid("gridDnD","updateDnD");b(a).triggerHandler("jqGridGridComplete");b.isFunction(a.p.gridComplete)\046\046a.p.gridComplete.call(a);b(a).triggerHandler("jqGridAfterGridComplete")};a.refreshIndex=Q;a.setHeadCheckBox=ca;a.constructTr=N;a.formatter=function(a,b,c,d,e){return u(a,b,c,d,e)};b.extend(c,{populate:G,\n
+emptyRows:M});this.grid=c;a.addXmlData=function(b){Z(b,a.grid.bDiv)};a.addJSONData=function(b){$(b,a.grid.bDiv)};this.grid.cols=this.rows[0].cells;G();a.p.hiddengrid=!1}}}})};b.jgrid.extend({getGridParam:function(b){var e=this[0];if(e\046\046e.grid)return b?"undefined"!=typeof e.p[b]?e.p[b]:null:e.p},setGridParam:function(f){return this.each(function(){this.grid\046\046"object"===typeof f\046\046b.extend(!0,this.p,f)})},getDataIDs:function(){var f=[],e=0,c,d=0;this.each(function(){if((c=this.rows.length)\046\0460\074c)for(;e\074\n
+c;)b(this.rows[e]).hasClass("jqgrow")\046\046(f[d]=this.rows[e].id,d++),e++});return f},setSelection:function(f,e,c){return this.each(function(){var d,a,g,h,i,j;if(void 0!==f\046\046(e=!1===e?!1:!0,(a=this.rows.namedItem(f+""))\046\046a.className\046\046!(-1\074a.className.indexOf("ui-state-disabled"))))(!0===this.p.scrollrows\046\046(g=this.rows.namedItem(f).rowIndex,0\074=g\046\046(d=b(this.grid.bDiv)[0].clientHeight,h=b(this.grid.bDiv)[0].scrollTop,i=b(this.rows[g]).position().top,g=this.rows[g].clientHeight,i+g\076=d+h?b(this.grid.bDiv)[0].scrollTop=\n
+i-(d+h)+g+h:i\074d+h\046\046i\074h\046\046(b(this.grid.bDiv)[0].scrollTop=i))),!0===this.p.frozenColumns\046\046(j=this.p.id+"_frozen"),this.p.multiselect)?(this.setHeadCheckBox(!1),this.p.selrow=a.id,h=b.inArray(this.p.selrow,this.p.selarrrow),-1===h?("ui-subgrid"!==a.className\046\046b(a).addClass("ui-state-highlight").attr("aria-selected","true"),d=!0,this.p.selarrrow.push(this.p.selrow)):("ui-subgrid"!==a.className\046\046b(a).removeClass("ui-state-highlight").attr("aria-selected","false"),d=!1,this.p.selarrrow.splice(h,1),i=this.p.selarrrow[0],\n
+this.p.selrow=void 0===i?null:i),b("#jqg_"+b.jgrid.jqID(this.p.id)+"_"+b.jgrid.jqID(a.id))[this.p.useProp?"prop":"attr"]("checked",d),j\046\046(-1===h?b("#"+b.jgrid.jqID(f),"#"+b.jgrid.jqID(j)).addClass("ui-state-highlight"):b("#"+b.jgrid.jqID(f),"#"+b.jgrid.jqID(j)).removeClass("ui-state-highlight"),b("#jqg_"+b.jgrid.jqID(this.p.id)+"_"+b.jgrid.jqID(f),"#"+b.jgrid.jqID(j))[this.p.useProp?"prop":"attr"]("checked",d)),b(this).triggerHandler("jqGridSelectRow",[a.id,d,c]),this.p.onSelectRow\046\046e\046\046this.p.onSelectRow.call(this,\n
+a.id,d,c)):"ui-subgrid"!==a.className\046\046(this.p.selrow!=a.id?(b(this.rows.namedItem(this.p.selrow)).removeClass("ui-state-highlight").attr({"aria-selected":"false",tabindex:"-1"}),b(a).addClass("ui-state-highlight").attr({"aria-selected":"true",tabindex:"0"}),j\046\046(b("#"+b.jgrid.jqID(this.p.selrow),"#"+b.jgrid.jqID(j)).removeClass("ui-state-highlight"),b("#"+b.jgrid.jqID(f),"#"+b.jgrid.jqID(j)).addClass("ui-state-highlight")),d=!0):d=!1,this.p.selrow=a.id,b(this).triggerHandler("jqGridSelectRow",[a.id,\n
+d,c]),this.p.onSelectRow\046\046e\046\046this.p.onSelectRow.call(this,a.id,d,c))})},resetSelection:function(f){return this.each(function(){var e=this,c,d,a;!0===e.p.frozenColumns\046\046(a=e.p.id+"_frozen");if("undefined"!==typeof f){d=f===e.p.selrow?e.p.selrow:f;b("#"+b.jgrid.jqID(e.p.id)+" tbody:first tr#"+b.jgrid.jqID(d)).removeClass("ui-state-highlight").attr("aria-selected","false");a\046\046b("#"+b.jgrid.jqID(d),"#"+b.jgrid.jqID(a)).removeClass("ui-state-highlight");if(e.p.multiselect){b("#jqg_"+b.jgrid.jqID(e.p.id)+\n
+"_"+b.jgrid.jqID(d),"#"+b.jgrid.jqID(e.p.id))[e.p.useProp?"prop":"attr"]("checked",!1);if(a)b("#jqg_"+b.jgrid.jqID(e.p.id)+"_"+b.jgrid.jqID(d),"#"+b.jgrid.jqID(a))[e.p.useProp?"prop":"attr"]("checked",!1);e.setHeadCheckBox(!1)}d=null}else e.p.multiselect?(b(e.p.selarrrow).each(function(d,f){c=e.rows.namedItem(f);b(c).removeClass("ui-state-highlight").attr("aria-selected","false");b("#jqg_"+b.jgrid.jqID(e.p.id)+"_"+b.jgrid.jqID(f))[e.p.useProp?"prop":"attr"]("checked",!1);a\046\046(b("#"+b.jgrid.jqID(f),\n
+"#"+b.jgrid.jqID(a)).removeClass("ui-state-highlight"),b("#jqg_"+b.jgrid.jqID(e.p.id)+"_"+b.jgrid.jqID(f),"#"+b.jgrid.jqID(a))[e.p.useProp?"prop":"attr"]("checked",!1))}),e.setHeadCheckBox(!1),e.p.selarrrow=[]):e.p.selrow\046\046(b("#"+b.jgrid.jqID(e.p.id)+" tbody:first tr#"+b.jgrid.jqID(e.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected","false"),a\046\046b("#"+b.jgrid.jqID(e.p.selrow),"#"+b.jgrid.jqID(a)).removeClass("ui-state-highlight"),e.p.selrow=null);!0===e.p.cellEdit\046\046(0\074=parseInt(e.p.iCol,\n
+10)\046\0460\074=parseInt(e.p.iRow,10))\046\046(b("td:eq("+e.p.iCol+")",e.rows[e.p.iRow]).removeClass("edit-cell ui-state-highlight"),b(e.rows[e.p.iRow]).removeClass("selected-row ui-state-hover"));e.p.savedRow=[]})},getRowData:function(f){var e={},c,d=!1,a,g=0;this.each(function(){var h=this,i,j;if("undefined"==typeof f)d=!0,c=[],a=h.rows.length;else{j=h.rows.namedItem(f);if(!j)return e;a=2}for(;g\074a;)d\046\046(j=h.rows[g]),b(j).hasClass("jqgrow")\046\046(b(\'td[role="gridcell"]\',j).each(function(a){i=h.p.colModel[a].name;if("cb"!==\n
+i\046\046"subgrid"!==i\046\046"rn"!==i)if(!0===h.p.treeGrid\046\046i==h.p.ExpandColumn)e[i]=b.jgrid.htmlDecode(b("span:first",this).html());else try{e[i]=b.unformat.call(h,this,{rowId:j.id,colModel:h.p.colModel[a]},a)}catch(c){e[i]=b.jgrid.htmlDecode(b(this).html())}}),d\046\046(c.push(e),e={})),g++});return c?c:e},delRowData:function(f){var e=!1,c,d;this.each(function(){if(c=this.rows.namedItem(f)){if(b(c).remove(),this.p.records--,this.p.reccount--,this.updatepager(!0,!1),e=!0,this.p.multiselect\046\046(d=b.inArray(f,this.p.selarrrow),\n
+-1!=d\046\046this.p.selarrrow.splice(d,1)),f==this.p.selrow)this.p.selrow=null}else return!1;if("local"==this.p.datatype){var a=this.p._index[b.jgrid.stripPref(this.p.idPrefix,f)];"undefined"!=typeof a\046\046(this.p.data.splice(a,1),this.refreshIndex())}if(!0===this.p.altRows\046\046e){var g=this.p.altclass;b(this.rows).each(function(a){1==a%2?b(this).addClass(g):b(this).removeClass(g)})}});return e},setRowData:function(f,e,c){var d,a=!0,g;this.each(function(){if(!this.grid)return!1;var h=this,i,j,l=typeof c,k={};\n
+j=h.rows.namedItem(f);if(!j)return!1;if(e)try{if(b(this.p.colModel).each(function(a){d=this.name;void 0!==e[d]\046\046(k[d]=this.formatter\046\046"string"===typeof this.formatter\046\046"date"==this.formatter?b.unformat.date.call(h,e[d],this):e[d],i=h.formatter(f,e[d],a,e,"edit"),g=this.title?{title:b.jgrid.stripHtml(i)}:{},!0===h.p.treeGrid\046\046d==h.p.ExpandColumn?b("td:eq("+a+") \076 span:first",j).html(i).attr(g):b("td:eq("+a+")",j).html(i).attr(g))}),"local"==h.p.datatype){var m=b.jgrid.stripPref(h.p.idPrefix,f),o=h.p._index[m];\n
+if(h.p.treeGrid)for(var p in h.p.treeReader)k.hasOwnProperty(h.p.treeReader[p])\046\046delete k[h.p.treeReader[p]];"undefined"!=typeof o\046\046(h.p.data[o]=b.extend(!0,h.p.data[o],k));k=null}}catch(v){a=!1}a\046\046("string"===l?b(j).addClass(c):"object"===l\046\046b(j).css(c),b(h).triggerHandler("jqGridAfterGridComplete"))});return a},addRowData:function(f,e,c,d){c||(c="last");var a=!1,g,h,i,j,l,k,m,o,p="",v,u,L,E,Y,T;e\046\046(b.isArray(e)?(v=!0,c="last",u=f):(e=[e],v=!1),this.each(function(){var U=e.length;l=this.p.rownumbers===\n
+true?1:0;i=this.p.multiselect===true?1:0;j=this.p.subGrid===true?1:0;if(!v)if(typeof f!="undefined")f=f+"";else{f=b.jgrid.randId();if(this.p.keyIndex!==false){u=this.p.colModel[this.p.keyIndex+i+j+l].name;typeof e[0][u]!="undefined"\046\046(f=e[0][u])}}L=this.p.altclass;for(var M=0,Q="",N={},Z=b.isFunction(this.p.afterInsertRow)?true:false;M\074U;){E=e[M];h=[];if(v){try{f=E[u]}catch($){f=b.jgrid.randId()}Q=this.p.altRows===true?(this.rows.length-1)%2===0?L:"":""}T=f;f=this.p.idPrefix+f;if(l){p=this.formatCol(0,\n
+1,"",null,f,true);h[h.length]=\'\074td role="gridcell" class="ui-state-default jqgrid-rownum" \'+p+"\0760\074/td\076"}if(i){o=\'\074input role="checkbox" type="checkbox" id="jqg_\'+this.p.id+"_"+f+\'" class="cbox"/\076\';p=this.formatCol(l,1,"",null,f,true);h[h.length]=\'\074td role="gridcell" \'+p+"\076"+o+"\074/td\076"}j\046\046(h[h.length]=b(this).jqGrid("addSubGridCell",i+l,1));for(m=i+j+l;m\074this.p.colModel.length;m++){Y=this.p.colModel[m];g=Y.name;N[g]=E[g];o=this.formatter(f,b.jgrid.getAccessor(E,g),m,E);p=this.formatCol(m,1,o,E,f,true);\n
+h[h.length]=\'\074td role="gridcell" \'+p+"\076"+o+"\074/td\076"}h.unshift(this.constructTr(f,false,Q,N,E,false));h[h.length]="\074/tr\076";if(this.rows.length===0)b("table:first",this.grid.bDiv).append(h.join(""));else switch(c){case "last":b(this.rows[this.rows.length-1]).after(h.join(""));k=this.rows.length-1;break;case "first":b(this.rows[0]).after(h.join(""));k=1;break;case "after":(k=this.rows.namedItem(d))\046\046(b(this.rows[k.rowIndex+1]).hasClass("ui-subgrid")?b(this.rows[k.rowIndex+1]).after(h):b(k).after(h.join("")));\n
+k++;break;case "before":if(k=this.rows.namedItem(d)){b(k).before(h.join(""));k=k.rowIndex}k--}this.p.subGrid===true\046\046b(this).jqGrid("addSubGrid",i+l,k);this.p.records++;this.p.reccount++;b(this).triggerHandler("jqGridAfterInsertRow",[f,E,E]);Z\046\046this.p.afterInsertRow.call(this,f,E,E);M++;if(this.p.datatype=="local"){N[this.p.localReader.id]=T;this.p._index[T]=this.p.data.length;this.p.data.push(N);N={}}}this.p.altRows===true\046\046!v\046\046(c=="last"?(this.rows.length-1)%2==1\046\046b(this.rows[this.rows.length-1]).addClass(L):\n
+b(this.rows).each(function(a){a%2==1?b(this).addClass(L):b(this).removeClass(L)}));this.updatepager(true,true);a=true}));return a},footerData:function(f,e,c){function d(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}var a,g=!1,h={},i;"undefined"==typeof f\046\046(f="get");"boolean"!=typeof c\046\046(c=!0);f=f.toLowerCase();this.each(function(){var j=this,l;if(!j.grid||!j.p.footerrow||"set"==f\046\046d(e))return!1;g=!0;b(this.p.colModel).each(function(d){a=this.name;"set"==f?void 0!==e[a]\046\046(l=c?j.formatter("",\n
+e[a],d,e,"edit"):e[a],i=this.title?{title:b.jgrid.stripHtml(l)}:{},b("tr.footrow td:eq("+d+")",j.grid.sDiv).html(l).attr(i),g=!0):"get"==f\046\046(h[a]=b("tr.footrow td:eq("+d+")",j.grid.sDiv).html())})});return"get"==f?h:g},showHideCol:function(f,e){return this.each(function(){var c=this,d=!1,a=b.jgrid.cellWidth()?0:c.p.cellLayout,g;if(c.grid){"string"===typeof f\046\046(f=[f]);e="none"!=e?"":"none";var h=""===e?!0:!1,i=c.p.groupHeader\046\046("object"===typeof c.p.groupHeader||b.isFunction(c.p.groupHeader));i\046\046b(c).jqGrid("destroyGroupHeader",\n
+!1);b(this.p.colModel).each(function(i){if(-1!==b.inArray(this.name,f)\046\046this.hidden===h){if(!0===c.p.frozenColumns\046\046!0===this.frozen)return!0;b("tr",c.grid.hDiv).each(function(){b(this.cells[i]).css("display",e)});b(c.rows).each(function(){b(this).hasClass("jqgroup")||b(this.cells[i]).css("display",e)});c.p.footerrow\046\046b("tr.footrow td:eq("+i+")",c.grid.sDiv).css("display",e);g=parseInt(this.width,10);c.p.tblwidth="none"===e?c.p.tblwidth-(g+a):c.p.tblwidth+(g+a);this.hidden=!h;d=!0;b(c).triggerHandler("jqGridShowHideCol",\n
+[h,this.name,i])}});!0===d\046\046(!0===c.p.shrinkToFit\046\046!isNaN(c.p.height)\046\046(c.p.tblwidth+=parseInt(c.p.scrollOffset,10)),b(c).jqGrid("setGridWidth",!0===c.p.shrinkToFit?c.p.tblwidth:c.p.width));i\046\046b(c).jqGrid("setGroupHeaders",c.p.groupHeader)}})},hideCol:function(f){return this.each(function(){b(this).jqGrid("showHideCol",f,"none")})},showCol:function(f){return this.each(function(){b(this).jqGrid("showHideCol",f,"")})},remapColumns:function(f,e,c){function d(a){var c;c=a.length?b.makeArray(a):b.extend({},\n
+a);b.each(f,function(b){a[b]=c[this]})}function a(a,c){b("\076tr"+(c||""),a).each(function(){var a=this,c=b.makeArray(a.cells);b.each(f,function(){var b=c[this];b\046\046a.appendChild(b)})})}var g=this.get(0);d(g.p.colModel);d(g.p.colNames);d(g.grid.headers);a(b("thead:first",g.grid.hDiv),c\046\046":not(.ui-jqgrid-labels)");e\046\046a(b("#"+b.jgrid.jqID(g.p.id)+" tbody:first"),".jqgfirstrow, tr.jqgrow, tr.jqfoot");g.p.footerrow\046\046a(b("tbody:first",g.grid.sDiv));g.p.remapColumns\046\046(g.p.remapColumns.length?d(g.p.remapColumns):\n
+g.p.remapColumns=b.makeArray(f));g.p.lastsort=b.inArray(g.p.lastsort,f);g.p.treeGrid\046\046(g.p.expColInd=b.inArray(g.p.expColInd,f));b(g).triggerHandler("jqGridRemapColumns",[f,e,c])},setGridWidth:function(f,e){return this.each(function(){if(this.grid){var c=this,d,a=0,g=b.jgrid.cellWidth()?0:c.p.cellLayout,h,i=0,j=!1,l=c.p.scrollOffset,k,m=0,o=0,p;"boolean"!=typeof e\046\046(e=c.p.shrinkToFit);if(!isNaN(f)){f=parseInt(f,10);c.grid.width=c.p.width=f;b("#gbox_"+b.jgrid.jqID(c.p.id)).css("width",f+"px");b("#gview_"+\n
+b.jgrid.jqID(c.p.id)).css("width",f+"px");b(c.grid.bDiv).css("width",f+"px");b(c.grid.hDiv).css("width",f+"px");c.p.pager\046\046b(c.p.pager).css("width",f+"px");c.p.toppager\046\046b(c.p.toppager).css("width",f+"px");!0===c.p.toolbar[0]\046\046(b(c.grid.uDiv).css("width",f+"px"),"both"==c.p.toolbar[1]\046\046b(c.grid.ubDiv).css("width",f+"px"));c.p.footerrow\046\046b(c.grid.sDiv).css("width",f+"px");!1===e\046\046!0===c.p.forceFit\046\046(c.p.forceFit=!1);if(!0===e){b.each(c.p.colModel,function(){if(this.hidden===false){d=this.widthOrg;\n
+a=a+(d+g);this.fixed?m=m+(d+g):i++;o++}});if(0===i)return;c.p.tblwidth=a;k=f-g*i-m;if(!isNaN(c.p.height)\046\046(b(c.grid.bDiv)[0].clientHeight\074b(c.grid.bDiv)[0].scrollHeight||1===c.rows.length))j=!0,k-=l;var a=0,v=0\074c.grid.cols.length;b.each(c.p.colModel,function(b){if(this.hidden===false\046\046!this.fixed){d=this.widthOrg;d=Math.round(k*d/(c.p.tblwidth-g*i-m));if(!(d\0740)){this.width=d;a=a+d;c.grid.headers[b].width=d;c.grid.headers[b].el.style.width=d+"px";if(c.p.footerrow)c.grid.footers[b].style.width=d+"px";\n
+if(v)c.grid.cols[b].style.width=d+"px";h=b}}});if(!h)return;p=0;j?f-m-(a+g*i)!==l\046\046(p=f-m-(a+g*i)-l):1!==Math.abs(f-m-(a+g*i))\046\046(p=f-m-(a+g*i));c.p.colModel[h].width+=p;c.p.tblwidth=a+p+g*i+m;c.p.tblwidth\076f?(j=c.p.tblwidth-parseInt(f,10),c.p.tblwidth=f,d=c.p.colModel[h].width-=j):d=c.p.colModel[h].width;c.grid.headers[h].width=d;c.grid.headers[h].el.style.width=d+"px";v\046\046(c.grid.cols[h].style.width=d+"px");c.p.footerrow\046\046(c.grid.footers[h].style.width=d+"px")}c.p.tblwidth\046\046(b("table:first",c.grid.bDiv).css("width",\n
+c.p.tblwidth+"px"),b("table:first",c.grid.hDiv).css("width",c.p.tblwidth+"px"),c.grid.hDiv.scrollLeft=c.grid.bDiv.scrollLeft,c.p.footerrow\046\046b("table:first",c.grid.sDiv).css("width",c.p.tblwidth+"px"))}}})},setGridHeight:function(f){return this.each(function(){if(this.grid){var e=b(this.grid.bDiv);e.css({height:f+(isNaN(f)?"":"px")});!0===this.p.frozenColumns\046\046b("#"+b.jgrid.jqID(this.p.id)+"_frozen").parent().height(e.height()-16);this.p.height=f;this.p.scroll\046\046this.grid.populateVisible()}})},setCaption:function(f){return this.each(function(){this.p.caption=\n
+f;b("span.ui-jqgrid-title, span.ui-jqgrid-title-rtl",this.grid.cDiv).html(f);b(this.grid.cDiv).show()})},setLabel:function(f,e,c,d){return this.each(function(){var a=-1;if(this.grid\046\046"undefined"!=typeof f\046\046(b(this.p.colModel).each(function(b){if(this.name==f)return a=b,!1}),0\074=a)){var g=b("tr.ui-jqgrid-labels th:eq("+a+")",this.grid.hDiv);if(e){var h=b(".s-ico",g);b("[id^=jqgh_]",g).empty().html(e).append(h);this.p.colNames[a]=e}c\046\046("string"===typeof c?b(g).addClass(c):b(g).css(c));"object"===typeof d\046\046\n
+b(g).attr(d)}})},setCell:function(f,e,c,d,a,g){return this.each(function(){var h=-1,i,j;if(this.grid\046\046(isNaN(e)?b(this.p.colModel).each(function(a){if(this.name==e)return h=a,!1}):h=parseInt(e,10),0\074=h\046\046(i=this.rows.namedItem(f)))){var l=b("td:eq("+h+")",i);if(""!==c||!0===g)i=this.formatter(f,c,h,i,"edit"),j=this.p.colModel[h].title?{title:b.jgrid.stripHtml(i)}:{},this.p.treeGrid\046\0460\074b(".tree-wrap",b(l)).length?b("span",b(l)).html(i).attr(j):b(l).html(i).attr(j),"local"==this.p.datatype\046\046(i=this.p.colModel[h],\n
+c=i.formatter\046\046"string"===typeof i.formatter\046\046"date"==i.formatter?b.unformat.date.call(this,c,i):c,j=this.p._index[f],"undefined"!=typeof j\046\046(this.p.data[j][i.name]=c));"string"===typeof d?b(l).addClass(d):d\046\046b(l).css(d);"object"===typeof a\046\046b(l).attr(a)}})},getCell:function(f,e){var c=!1;this.each(function(){var d=-1;if(this.grid\046\046(isNaN(e)?b(this.p.colModel).each(function(a){if(this.name===e)return d=a,!1}):d=parseInt(e,10),0\074=d)){var a=this.rows.namedItem(f);if(a)try{c=b.unformat.call(this,b("td:eq("+\n
+d+")",a),{rowId:a.id,colModel:this.p.colModel[d]},d)}catch(g){c=b.jgrid.htmlDecode(b("td:eq("+d+")",a).html())}}});return c},getCol:function(f,e,c){var d=[],a,g=0,h,i,j,e="boolean"!=typeof e?!1:e;"undefined"==typeof c\046\046(c=!1);this.each(function(){var l=-1;if(this.grid\046\046(isNaN(f)?b(this.p.colModel).each(function(a){if(this.name===f)return l=a,!1}):l=parseInt(f,10),0\074=l)){var k=this.rows.length,m=0;if(k\046\0460\074k){for(;m\074k;){if(b(this.rows[m]).hasClass("jqgrow")){try{a=b.unformat.call(this,b(this.rows[m].cells[l]),\n
+{rowId:this.rows[m].id,colModel:this.p.colModel[l]},l)}catch(o){a=b.jgrid.htmlDecode(this.rows[m].cells[l].innerHTML)}c?(j=parseFloat(a),g+=j,void 0===i\046\046(i=h=j),h=Math.min(h,j),i=Math.max(i,j)):e?d.push({id:this.rows[m].id,value:a}):d.push(a)}m++}if(c)switch(c.toLowerCase()){case "sum":d=g;break;case "avg":d=g/k;break;case "count":d=k;break;case "min":d=h;break;case "max":d=i}}}});return d},clearGridData:function(f){return this.each(function(){if(this.grid){"boolean"!=typeof f\046\046(f=!1);if(this.p.deepempty)b("#"+\n
+b.jgrid.jqID(this.p.id)+" tbody:first tr:gt(0)").remove();else{var e=b("#"+b.jgrid.jqID(this.p.id)+" tbody:first tr:first")[0];b("#"+b.jgrid.jqID(this.p.id)+" tbody:first").empty().append(e)}this.p.footerrow\046\046f\046\046b(".ui-jqgrid-ftable td",this.grid.sDiv).html("\046#160;");this.p.selrow=null;this.p.selarrrow=[];this.p.savedRow=[];this.p.records=0;this.p.page=1;this.p.lastpage=0;this.p.reccount=0;this.p.data=[];this.p._index={};this.updatepager(!0,!1)}})},getInd:function(b,e){var c=!1,d;this.each(function(){(d=\n
+this.rows.namedItem(b))\046\046(c=!0===e?d:d.rowIndex)});return c},bindKeys:function(f){var e=b.extend({onEnter:null,onSpace:null,onLeftKey:null,onRightKey:null,scrollingRows:!0},f||{});return this.each(function(){var c=this;b("body").is("[role]")||b("body").attr("role","application");c.p.scrollrows=e.scrollingRows;b(c).keydown(function(d){var a=b(c).find("tr[tabindex=0]")[0],f,h,i,j=c.p.treeReader.expanded_field;if(a)if(i=c.p._index[a.id],37===d.keyCode||38===d.keyCode||39===d.keyCode||40===d.keyCode){if(38===\n
+d.keyCode){h=a.previousSibling;f="";if(h)if(b(h).is(":hidden"))for(;h;){if(h=h.previousSibling,!b(h).is(":hidden")\046\046b(h).hasClass("jqgrow")){f=h.id;break}}else f=h.id;b(c).jqGrid("setSelection",f,!0,d);d.preventDefault()}if(40===d.keyCode){h=a.nextSibling;f="";if(h)if(b(h).is(":hidden"))for(;h;){if(h=h.nextSibling,!b(h).is(":hidden")\046\046b(h).hasClass("jqgrow")){f=h.id;break}}else f=h.id;b(c).jqGrid("setSelection",f,!0,d);d.preventDefault()}37===d.keyCode\046\046(c.p.treeGrid\046\046c.p.data[i][j]\046\046b(a).find("div.treeclick").trigger("click"),\n
+b(c).triggerHandler("jqGridKeyLeft",[c.p.selrow]),b.isFunction(e.onLeftKey)\046\046e.onLeftKey.call(c,c.p.selrow));39===d.keyCode\046\046(c.p.treeGrid\046\046!c.p.data[i][j]\046\046b(a).find("div.treeclick").trigger("click"),b(c).triggerHandler("jqGridKeyRight",[c.p.selrow]),b.isFunction(e.onRightKey)\046\046e.onRightKey.call(c,c.p.selrow))}else 13===d.keyCode?(b(c).triggerHandler("jqGridKeyEnter",[c.p.selrow]),b.isFunction(e.onEnter)\046\046e.onEnter.call(c,c.p.selrow)):32===d.keyCode\046\046(b(c).triggerHandler("jqGridKeySpace",[c.p.selrow]),\n
+b.isFunction(e.onSpace)\046\046e.onSpace.call(c,c.p.selrow))})})},unbindKeys:function(){return this.each(function(){b(this).unbind("keydown")})},getLocalRow:function(b){var e=!1,c;this.each(function(){"undefined"!==typeof b\046\046(c=this.p._index[b],0\074=c\046\046(e=this.p.data[c]))});return e}})})(jQuery);\n
+(function(c){c.fmatter={};c.extend(c.fmatter,{isBoolean:function(a){return"boolean"===typeof a},isObject:function(a){return a\046\046("object"===typeof a||c.isFunction(a))||!1},isString:function(a){return"string"===typeof a},isNumber:function(a){return"number"===typeof a\046\046isFinite(a)},isNull:function(a){return null===a},isUndefined:function(a){return"undefined"===typeof a},isValue:function(a){return this.isObject(a)||this.isString(a)||this.isNumber(a)||this.isBoolean(a)},isEmpty:function(a){if(!this.isString(a)\046\046\n
+this.isValue(a))return!1;if(!this.isValue(a))return!0;a=c.trim(a).replace(/\\\046nbsp\\;/ig,"").replace(/\\\046#160\\;/ig,"");return""===a}});c.fn.fmatter=function(a,b,f,d,e){var g=b,f=c.extend({},c.jgrid.formatter,f);try{g=c.fn.fmatter[a].call(this,b,f,d,e)}catch(h){}return g};c.fmatter.util={NumberFormat:function(a,b){c.fmatter.isNumber(a)||(a*=1);if(c.fmatter.isNumber(a)){var f=0\076a,d=a+"",e=b.decimalSeparator?b.decimalSeparator:".",g;if(c.fmatter.isNumber(b.decimalPlaces)){var h=b.decimalPlaces,d=Math.pow(10,\n
+h),d=Math.round(a*d)/d+"";g=d.lastIndexOf(".");if(0\074h){0\076g?(d+=e,g=d.length-1):"."!==e\046\046(d=d.replace(".",e));for(;d.length-1-g\074h;)d+="0"}}if(b.thousandsSeparator){h=b.thousandsSeparator;g=d.lastIndexOf(e);g=-1\074g?g:d.length;for(var e=d.substring(g),i=-1,j=g;0\074j;j--){i++;if(0===i%3\046\046j!==g\046\046(!f||1\074j))e=h+e;e=d.charAt(j-1)+e}d=e}d=b.prefix?b.prefix+d:d;return d=b.suffix?d+b.suffix:d}return a},DateFormat:function(a,b,f,d){var e=/^\\/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)\\/$/,g="string"===\n
+typeof b?b.match(e):null,e=function(a,b){a=""+a;for(b=parseInt(b,10)||2;a.length\074b;)a="0"+a;return a},h={m:1,d:1,y:1970,h:0,i:0,s:0,u:0},i=0,j,k=["i18n"];k.i18n={dayNames:d.dayNames,monthNames:d.monthNames};a in d.masks\046\046(a=d.masks[a]);if(!isNaN(b-0)\046\046"u"==(""+a).toLowerCase())i=new Date(1E3*parseFloat(b));else if(b.constructor===Date)i=b;else if(null!==g)i=new Date(parseInt(g[1],10)),g[3]\046\046(a=60*Number(g[5])+Number(g[6]),a*="-"==g[4]?1:-1,a-=i.getTimezoneOffset(),i.setTime(Number(Number(i)+6E4*a)));\n
+else{b=(""+b).split(/[\\\\\\/:_;.,\\t\\T\\s-]/);a=a.split(/[\\\\\\/:_;.,\\t\\T\\s-]/);g=0;for(j=a.length;g\074j;g++)"M"==a[g]\046\046(i=c.inArray(b[g],k.i18n.monthNames),-1!==i\046\04612\076i\046\046(b[g]=i+1)),"F"==a[g]\046\046(i=c.inArray(b[g],k.i18n.monthNames),-1!==i\046\04611\074i\046\046(b[g]=i+1-12)),b[g]\046\046(h[a[g].toLowerCase()]=parseInt(b[g],10));h.f\046\046(h.m=h.f);if(0===h.m\046\0460===h.y\046\0460===h.d)return"\046#160;";h.m=parseInt(h.m,10)-1;i=h.y;70\074=i\046\04699\076=i?h.y=1900+h.y:0\074=i\046\04669\076=i\046\046(h.y=2E3+h.y);i=new Date(h.y,h.m,h.d,h.h,h.i,h.s,h.u)}f in d.masks?f=d.masks[f]:\n
+f||(f="Y-m-d");a=i.getHours();b=i.getMinutes();h=i.getDate();g=i.getMonth()+1;j=i.getTimezoneOffset();var l=i.getSeconds(),r=i.getMilliseconds(),n=i.getDay(),m=i.getFullYear(),o=(n+6)%7+1,p=(new Date(m,g-1,h)-new Date(m,0,1))/864E5,q={d:e(h),D:k.i18n.dayNames[n],j:h,l:k.i18n.dayNames[n+7],N:o,S:d.S(h),w:n,z:p,W:5\076o?Math.floor((p+o-1)/7)+1:Math.floor((p+o-1)/7)||(4\076((new Date(m-1,0,1)).getDay()+6)%7?53:52),F:k.i18n.monthNames[g-1+12],m:e(g),M:k.i18n.monthNames[g-1],n:g,t:"?",L:"?",o:"?",Y:m,y:(""+\n
+m).substring(2),a:12\076a?d.AmPm[0]:d.AmPm[1],A:12\076a?d.AmPm[2]:d.AmPm[3],B:"?",g:a%12||12,G:a,h:e(a%12||12),H:e(a),i:e(b),s:e(l),u:r,e:"?",I:"?",O:(0\074j?"-":"+")+e(100*Math.floor(Math.abs(j)/60)+Math.abs(j)%60,4),P:"?",T:((""+i).match(/\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g)||[""]).pop().replace(/[^-+\\dA-Z]/g,""),Z:"?",c:"?",r:"?",U:Math.floor(i/1E3)};return f.replace(/\\\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,\n
+function(a){return a in q?q[a]:a.substring(1)})}};c.fn.fmatter.defaultFormat=function(a,b){return c.fmatter.isValue(a)\046\046""!==a?a:b.defaultValue?b.defaultValue:"\046#160;"};c.fn.fmatter.email=function(a,b){return c.fmatter.isEmpty(a)?c.fn.fmatter.defaultFormat(a,b):\'\074a href="mailto:\'+a+\'"\076\'+a+"\074/a\076"};c.fn.fmatter.checkbox=function(a,b){var f=c.extend({},b.checkbox),d;void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));d=!0===f.disabled?\'disabled="disabled"\':\n
+"";if(c.fmatter.isEmpty(a)||c.fmatter.isUndefined(a))a=c.fn.fmatter.defaultFormat(a,f);a=(a+"").toLowerCase();return\'\074input type="checkbox" \'+(0\076a.search(/(false|0|no|off)/i)?" checked=\'checked\' ":"")+\' value="\'+a+\'" offval="no" \'+d+"/\076"};c.fn.fmatter.link=function(a,b){var f={target:b.target},d="";void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));f.target\046\046(d="target="+f.target);return!c.fmatter.isEmpty(a)?"\074a "+d+\' href="\'+a+\'"\076\'+\n
+a+"\074/a\076":c.fn.fmatter.defaultFormat(a,b)};c.fn.fmatter.showlink=function(a,b){var f={baseLinkUrl:b.baseLinkUrl,showAction:b.showAction,addParam:b.addParam||"",target:b.target,idName:b.idName},d="";void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));f.target\046\046(d="target="+f.target);f=f.baseLinkUrl+f.showAction+"?"+f.idName+"="+b.rowId+f.addParam;return c.fmatter.isString(a)||c.fmatter.isNumber(a)?"\074a "+d+\' href="\'+f+\'"\076\'+a+"\074/a\076":c.fn.fmatter.defaultFormat(a,\n
+b)};c.fn.fmatter.integer=function(a,b){var f=c.extend({},b.integer);void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));return c.fmatter.isEmpty(a)?f.defaultValue:c.fmatter.util.NumberFormat(a,f)};c.fn.fmatter.number=function(a,b){var f=c.extend({},b.number);void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));return c.fmatter.isEmpty(a)?f.defaultValue:c.fmatter.util.NumberFormat(a,\n
+f)};c.fn.fmatter.currency=function(a,b){var f=c.extend({},b.currency);void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));return c.fmatter.isEmpty(a)?f.defaultValue:c.fmatter.util.NumberFormat(a,f)};c.fn.fmatter.date=function(a,b,f,d){f=c.extend({},b.date);void 0!==b.colModel\046\046!c.fmatter.isUndefined(b.colModel.formatoptions)\046\046(f=c.extend({},f,b.colModel.formatoptions));return!f.reformatAfterEdit\046\046"edit"==d||c.fmatter.isEmpty(a)?c.fn.fmatter.defaultFormat(a,\n
+b):c.fmatter.util.DateFormat(f.srcformat,a,f.newformat,f)};c.fn.fmatter.select=function(a,b){var a=a+"",f=!1,d=[],e,g;c.fmatter.isUndefined(b.colModel.formatoptions)?c.fmatter.isUndefined(b.colModel.editoptions)||(f=b.colModel.editoptions.value,e=void 0===b.colModel.editoptions.separator?":":b.colModel.editoptions.separator,g=void 0===b.colModel.editoptions.delimiter?";":b.colModel.editoptions.delimiter):(f=b.colModel.formatoptions.value,e=void 0===b.colModel.formatoptions.separator?":":b.colModel.formatoptions.separator,\n
+g=void 0===b.colModel.formatoptions.delimiter?";":b.colModel.formatoptions.delimiter);if(f){var h=!0===b.colModel.editoptions.multiple?!0:!1,i=[];h\046\046(i=a.split(","),i=c.map(i,function(a){return c.trim(a)}));if(c.fmatter.isString(f))for(var j=f.split(g),k=0,l=0;l\074j.length;l++)if(g=j[l].split(e),2\074g.length\046\046(g[1]=c.map(g,function(a,b){if(b\0760)return a}).join(e)),h)-1\074c.inArray(g[0],i)\046\046(d[k]=g[1],k++);else{if(c.trim(g[0])==c.trim(a)){d[0]=g[1];break}}else c.fmatter.isObject(f)\046\046(h?d=c.map(i,function(a){return f[a]}):\n
+d[0]=f[a]||"")}a=d.join(", ");return""===a?c.fn.fmatter.defaultFormat(a,b):a};c.fn.fmatter.rowactions=function(a,b,f,d){var e={keys:!1,onEdit:null,onSuccess:null,afterSave:null,onError:null,afterRestore:null,extraparam:{},url:null,restoreAfterError:!0,mtype:"POST",delOptions:{},editOptions:{}},a=c.jgrid.jqID(a),b=c.jgrid.jqID(b),d=c("#"+b)[0].p.colModel[d];c.fmatter.isUndefined(d.formatoptions)||(e=c.extend(e,d.formatoptions));c.fmatter.isUndefined(c("#"+b)[0].p.editOptions)||(e.editOptions=c("#"+\n
+b)[0].p.editOptions);c.fmatter.isUndefined(c("#"+b)[0].p.delOptions)||(e.delOptions=c("#"+b)[0].p.delOptions);var g=c("#"+b)[0],d=function(d){c.isFunction(e.afterRestore)\046\046e.afterRestore.call(g,d);c("tr#"+a+" div.ui-inline-edit, tr#"+a+" div.ui-inline-del","#"+b+".ui-jqgrid-btable:first").show();c("tr#"+a+" div.ui-inline-save, tr#"+a+" div.ui-inline-cancel","#"+b+".ui-jqgrid-btable:first").hide()};if(c("#"+a,"#"+b).hasClass("jqgrid-new-row")){var h=g.p.prmNames;e.extraparam[h.oper]=h.addoper}h={keys:e.keys,\n
+oneditfunc:e.onEdit,successfunc:e.onSuccess,url:e.url,extraparam:e.extraparam,aftersavefunc:function(d,f){c.isFunction(e.afterSave)\046\046e.afterSave.call(g,d,f);c("tr#"+a+" div.ui-inline-edit, tr#"+a+" div.ui-inline-del","#"+b+".ui-jqgrid-btable:first").show();c("tr#"+a+" div.ui-inline-save, tr#"+a+" div.ui-inline-cancel","#"+b+".ui-jqgrid-btable:first").hide()},errorfunc:e.onError,afterrestorefunc:d,restoreAfterError:e.restoreAfterError,mtype:e.mtype};switch(f){case "edit":c("#"+b).jqGrid("editRow",\n
+a,h);c("tr#"+a+" div.ui-inline-edit, tr#"+a+" div.ui-inline-del","#"+b+".ui-jqgrid-btable:first").hide();c("tr#"+a+" div.ui-inline-save, tr#"+a+" div.ui-inline-cancel","#"+b+".ui-jqgrid-btable:first").show();c(g).triggerHandler("jqGridAfterGridComplete");break;case "save":c("#"+b).jqGrid("saveRow",a,h)\046\046(c("tr#"+a+" div.ui-inline-edit, tr#"+a+" div.ui-inline-del","#"+b+".ui-jqgrid-btable:first").show(),c("tr#"+a+" div.ui-inline-save, tr#"+a+" div.ui-inline-cancel","#"+b+".ui-jqgrid-btable:first").hide(),\n
+c(g).triggerHandler("jqGridAfterGridComplete"));break;case "cancel":c("#"+b).jqGrid("restoreRow",a,d);c("tr#"+a+" div.ui-inline-edit, tr#"+a+" div.ui-inline-del","#"+b+".ui-jqgrid-btable:first").show();c("tr#"+a+" div.ui-inline-save, tr#"+a+" div.ui-inline-cancel","#"+b+".ui-jqgrid-btable:first").hide();c(g).triggerHandler("jqGridAfterGridComplete");break;case "del":c("#"+b).jqGrid("delGridRow",a,e.delOptions);break;case "formedit":c("#"+b).jqGrid("setSelection",a),c("#"+b).jqGrid("editGridRow",a,\n
+e.editOptions)}};c.fn.fmatter.actions=function(a,b){var f={keys:!1,editbutton:!0,delbutton:!0,editformbutton:!1};c.fmatter.isUndefined(b.colModel.formatoptions)||(f=c.extend(f,b.colModel.formatoptions));var d=b.rowId,e="",g;if("undefined"==typeof d||c.fmatter.isEmpty(d))return"";f.editformbutton?(g="onclick=jQuery.fn.fmatter.rowactions(\'"+d+"\',\'"+b.gid+"\',\'formedit\',"+b.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\'); ",e=e+"\074div title=\'"+\n
+c.jgrid.nav.edittitle+"\' style=\'float:left;cursor:pointer;\' class=\'ui-pg-div ui-inline-edit\' "+g+"\076\074span class=\'ui-icon ui-icon-pencil\'\076\074/span\076\074/div\076"):f.editbutton\046\046(g="onclick=jQuery.fn.fmatter.rowactions(\'"+d+"\',\'"+b.gid+"\',\'edit\',"+b.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\') ",e=e+"\074div title=\'"+c.jgrid.nav.edittitle+"\' style=\'float:left;cursor:pointer;\' class=\'ui-pg-div ui-inline-edit\' "+g+"\076\074span class=\'ui-icon ui-icon-pencil\'\076\074/span\076\074/div\076");\n
+f.delbutton\046\046(g="onclick=jQuery.fn.fmatter.rowactions(\'"+d+"\',\'"+b.gid+"\',\'del\',"+b.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\'); ",e=e+"\074div title=\'"+c.jgrid.nav.deltitle+"\' style=\'float:left;margin-left:5px;\' class=\'ui-pg-div ui-inline-del\' "+g+"\076\074span class=\'ui-icon ui-icon-trash\'\076\074/span\076\074/div\076");g="onclick=jQuery.fn.fmatter.rowactions(\'"+d+"\',\'"+b.gid+"\',\'save\',"+b.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\'); ";\n
+e=e+"\074div title=\'"+c.jgrid.edit.bSubmit+"\' style=\'float:left;display:none\' class=\'ui-pg-div ui-inline-save\' "+g+"\076\074span class=\'ui-icon ui-icon-disk\'\076\074/span\076\074/div\076";g="onclick=jQuery.fn.fmatter.rowactions(\'"+d+"\',\'"+b.gid+"\',\'cancel\',"+b.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\'); ";e=e+"\074div title=\'"+c.jgrid.edit.bCancel+"\' style=\'float:left;display:none;margin-left:5px;\' class=\'ui-pg-div ui-inline-cancel\' "+g+"\076\074span class=\'ui-icon ui-icon-cancel\'\076\074/span\076\074/div\076";\n
+return"\074div style=\'margin-left:8px;\'\076"+e+"\074/div\076"};c.unformat=function(a,b,f,d){var e,g=b.colModel.formatter,h=b.colModel.formatoptions||{},i=/([\\.\\*\\_\\\'\\(\\)\\{\\}\\+\\?\\\\])/g,j=b.colModel.unformat||c.fn.fmatter[g]\046\046c.fn.fmatter[g].unformat;if("undefined"!==typeof j\046\046c.isFunction(j))e=j.call(this,c(a).text(),b,a);else if(!c.fmatter.isUndefined(g)\046\046c.fmatter.isString(g))switch(e=c.jgrid.formatter||{},g){case "integer":h=c.extend({},e.integer,h);b=h.thousandsSeparator.replace(i,"\\\\$1");b=RegExp(b,"g");\n
+e=c(a).text().replace(b,"");break;case "number":h=c.extend({},e.number,h);b=h.thousandsSeparator.replace(i,"\\\\$1");b=RegExp(b,"g");e=c(a).text().replace(b,"").replace(h.decimalSeparator,".");break;case "currency":h=c.extend({},e.currency,h);b=h.thousandsSeparator.replace(i,"\\\\$1");b=RegExp(b,"g");e=c(a).text();h.prefix\046\046h.prefix.length\046\046(e=e.substr(h.prefix.length));h.suffix\046\046h.suffix.length\046\046(e=e.substr(0,e.length-h.suffix.length));e=e.replace(b,"").replace(h.decimalSeparator,".");break;case "checkbox":h=\n
+b.colModel.editoptions?b.colModel.editoptions.value.split(":"):["Yes","No"];e=c("input",a).is(":checked")?h[0]:h[1];break;case "select":e=c.unformat.select(a,b,f,d);break;case "actions":return"";default:e=c(a).text()}return void 0!==e?e:!0===d?c(a).text():c.jgrid.htmlDecode(c(a).html())};c.unformat.select=function(a,b,f,d){f=[];a=c(a).text();if(!0===d)return a;var d=c.extend({},!c.fmatter.isUndefined(b.colModel.formatoptions)?b.colModel.formatoptions:b.colModel.editoptions),b=void 0===d.separator?\n
+":":d.separator,e=void 0===d.delimiter?";":d.delimiter;if(d.value){var g=d.value,d=!0===d.multiple?!0:!1,h=[];d\046\046(h=a.split(","),h=c.map(h,function(a){return c.trim(a)}));if(c.fmatter.isString(g))for(var i=g.split(e),j=0,k=0;k\074i.length;k++)if(e=i[k].split(b),2\074e.length\046\046(e[1]=c.map(e,function(a,b){if(b\0760)return a}).join(b)),d)-1\074c.inArray(e[1],h)\046\046(f[j]=e[0],j++);else{if(c.trim(e[1])==c.trim(a)){f[0]=e[0];break}}else if(c.fmatter.isObject(g)||c.isArray(g))d||(h[0]=a),f=c.map(h,function(a){var b;c.each(g,\n
+function(c,d){if(d==a){b=c;return false}});if(typeof b!="undefined")return b});return f.join(", ")}return a||""};c.unformat.date=function(a,b){var f=c.jgrid.formatter.date||{};c.fmatter.isUndefined(b.formatoptions)||(f=c.extend({},f,b.formatoptions));return!c.fmatter.isEmpty(a)?c.fmatter.util.DateFormat(f.newformat,a,f.srcformat,f):c.fn.fmatter.defaultFormat(a,b)}})(jQuery);\n
+(function(a){a.jgrid.extend({getColProp:function(a){var d={},c=this[0];if(!c.grid)return!1;for(var c=c.p.colModel,e=0;e\074c.length;e++)if(c[e].name==a){d=c[e];break}return d},setColProp:function(b,d){return this.each(function(){if(this.grid\046\046d)for(var c=this.p.colModel,e=0;e\074c.length;e++)if(c[e].name==b){a.extend(this.p.colModel[e],d);break}})},sortGrid:function(a,d,c){return this.each(function(){var e=-1;if(this.grid){a||(a=this.p.sortname);for(var h=0;h\074this.p.colModel.length;h++)if(this.p.colModel[h].index==\n
+a||this.p.colModel[h].name==a){e=h;break}-1!=e\046\046(h=this.p.colModel[e].sortable,"boolean"!==typeof h\046\046(h=!0),"boolean"!==typeof d\046\046(d=!1),h\046\046this.sortData("jqgh_"+this.p.id+"_"+a,e,d,c))}})},clearBeforeUnload:function(){return this.each(function(){var b=this.grid;b.emptyRows.call(this,!0,!0);a(b.hDiv).unbind("mousemove");a(this).unbind();b.dragEnd=null;b.dragMove=null;b.dragStart=null;b.emptyRows=null;b.populate=null;b.populateVisible=null;b.scrollGrid=null;b.selectionPreserver=null;b.bDiv=null;b.cDiv=\n
+null;b.hDiv=null;b.cols=null;var d,c=b.headers.length;for(d=0;d\074c;d++)b.headers[d].el=null;this.addJSONData=this.addXmlData=this.formatter=this.constructTr=this.setHeadCheckBox=this.refreshIndex=this.updatepager=this.sortData=this.formatCol=null})},GridDestroy:function(){return this.each(function(){if(this.grid){this.p.pager\046\046a(this.p.pager).remove();try{a(this).jqGrid("clearBeforeUnload"),a("#gbox_"+a.jgrid.jqID(this.id)).remove()}catch(b){}}})},GridUnload:function(){return this.each(function(){if(this.grid){var b=\n
+a(this).attr("id"),d=a(this).attr("class");this.p.pager\046\046a(this.p.pager).empty().removeClass("ui-state-default ui-jqgrid-pager corner-bottom");var c=document.createElement("table");a(c).attr({id:b});c.className=d;b=a.jgrid.jqID(this.id);a(c).removeClass("ui-jqgrid-btable");1===a(this.p.pager).parents("#gbox_"+b).length?(a(c).insertBefore("#gbox_"+b).show(),a(this.p.pager).insertBefore("#gbox_"+b)):a(c).insertBefore("#gbox_"+b).show();a(this).jqGrid("clearBeforeUnload");a("#gbox_"+b).remove()}})},\n
+setGridState:function(b){return this.each(function(){this.grid\046\046("hidden"==b?(a(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+a.jgrid.jqID(this.p.id)).slideUp("fast"),this.p.pager\046\046a(this.p.pager).slideUp("fast"),this.p.toppager\046\046a(this.p.toppager).slideUp("fast"),!0===this.p.toolbar[0]\046\046("both"==this.p.toolbar[1]\046\046a(this.grid.ubDiv).slideUp("fast"),a(this.grid.uDiv).slideUp("fast")),this.p.footerrow\046\046a(".ui-jqgrid-sdiv","#gbox_"+a.jgrid.jqID(this.p.id)).slideUp("fast"),a(".ui-jqgrid-titlebar-close span",\n
+this.grid.cDiv).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s"),this.p.gridstate="hidden"):"visible"==b\046\046(a(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+a.jgrid.jqID(this.p.id)).slideDown("fast"),this.p.pager\046\046a(this.p.pager).slideDown("fast"),this.p.toppager\046\046a(this.p.toppager).slideDown("fast"),!0===this.p.toolbar[0]\046\046("both"==this.p.toolbar[1]\046\046a(this.grid.ubDiv).slideDown("fast"),a(this.grid.uDiv).slideDown("fast")),this.p.footerrow\046\046a(".ui-jqgrid-sdiv","#gbox_"+\n
+a.jgrid.jqID(this.p.id)).slideDown("fast"),a(".ui-jqgrid-titlebar-close span",this.grid.cDiv).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n"),this.p.gridstate="visible"))})},filterToolbar:function(b){b=a.extend({autosearch:!0,searchOnEnter:!0,beforeSearch:null,afterSearch:null,beforeClear:null,afterClear:null,searchurl:"",stringResult:!1,groupOp:"AND",defaultSearch:"bw"},b||{});return this.each(function(){function d(b,c){var d=a(b);d[0]\046\046jQuery.each(c,function(){void 0!==\n
+this.data?d.bind(this.type,this.data,this.fn):d.bind(this.type,this.fn)})}var c=this;if(!this.ftoolbar){var e=function(){var d={},j=0,g,f,h={},m;a.each(c.p.colModel,function(){f=this.index||this.name;m=this.searchoptions\046\046this.searchoptions.sopt?this.searchoptions.sopt[0]:"select"==this.stype?"eq":b.defaultSearch;if(g=a("#gs_"+a.jgrid.jqID(this.name),!0===this.frozen\046\046!0===c.p.frozenColumns?c.grid.fhDiv:c.grid.hDiv).val())d[f]=g,h[f]=m,j++;else try{delete c.p.postData[f]}catch(e){}});var e=0\074j?!0:\n
+!1;if(!0===b.stringResult||"local"==c.p.datatype){var k=\'{"groupOp":"\'+b.groupOp+\'","rules":[\',l=0;a.each(d,function(a,b){0\074l\046\046(k+=",");k+=\'{"field":"\'+a+\'",\';k+=\'"op":"\'+h[a]+\'",\';k+=\'"data":"\'+(b+"").replace(/\\\\/g,"\\\\\\\\").replace(/\\"/g,\'\\\\"\')+\'"}\';l++});k+="]}";a.extend(c.p.postData,{filters:k});a.each(["searchField","searchString","searchOper"],function(a,b){c.p.postData.hasOwnProperty(b)\046\046delete c.p.postData[b]})}else a.extend(c.p.postData,d);var p;c.p.searchurl\046\046(p=c.p.url,a(c).jqGrid("setGridParam",\n
+{url:c.p.searchurl}));var r="stop"===a(c).triggerHandler("jqGridToolbarBeforeSearch")?!0:!1;!r\046\046a.isFunction(b.beforeSearch)\046\046(r=b.beforeSearch.call(c));r||a(c).jqGrid("setGridParam",{search:e}).trigger("reloadGrid",[{page:1}]);p\046\046a(c).jqGrid("setGridParam",{url:p});a(c).triggerHandler("jqGridToolbarAfterSearch");a.isFunction(b.afterSearch)\046\046b.afterSearch.call(c)},h=a("\074tr class=\'ui-search-toolbar\' role=\'rowheader\'\076\074/tr\076"),g;a.each(c.p.colModel,function(){var i=this,j,q,f,n;q=a("\074th role=\'columnheader\' class=\'ui-state-default ui-th-column ui-th-"+\n
+c.p.direction+"\'\076\074/th\076");j=a("\074div style=\'width:100%;position:relative;height:100%;padding-right:0.3em;\'\076\074/div\076");!0===this.hidden\046\046a(q).css("display","none");this.search=!1===this.search?!1:!0;"undefined"==typeof this.stype\046\046(this.stype="text");f=a.extend({},this.searchoptions||{});if(this.search)switch(this.stype){case "select":if(n=this.surl||f.dataUrl)a.ajax(a.extend({url:n,dataType:"html",success:function(c){if(f.buildSelect!==void 0)(c=f.buildSelect(c))\046\046a(j).append(c);else a(j).append(c);f.defaultValue!==\n
+void 0\046\046a("select",j).val(f.defaultValue);a("select",j).attr({name:i.index||i.name,id:"gs_"+i.name});f.attr\046\046a("select",j).attr(f.attr);a("select",j).css({width:"100%"});f.dataInit!==void 0\046\046f.dataInit(a("select",j)[0]);f.dataEvents!==void 0\046\046d(a("select",j)[0],f.dataEvents);b.autosearch===true\046\046a("select",j).change(function(){e();return false});c=null}},a.jgrid.ajaxOptions,c.p.ajaxSelectOptions||{}));else{var m,o,k;i.searchoptions?(m=void 0===i.searchoptions.value?"":i.searchoptions.value,o=void 0===\n
+i.searchoptions.separator?":":i.searchoptions.separator,k=void 0===i.searchoptions.delimiter?";":i.searchoptions.delimiter):i.editoptions\046\046(m=void 0===i.editoptions.value?"":i.editoptions.value,o=void 0===i.editoptions.separator?":":i.editoptions.separator,k=void 0===i.editoptions.delimiter?";":i.editoptions.delimiter);if(m){n=document.createElement("select");n.style.width="100%";a(n).attr({name:i.index||i.name,id:"gs_"+i.name});var l;if("string"===typeof m){m=m.split(k);for(var p=0;p\074m.length;p++)l=\n
+m[p].split(o),k=document.createElement("option"),k.value=l[0],k.innerHTML=l[1],n.appendChild(k)}else if("object"===typeof m)for(l in m)m.hasOwnProperty(l)\046\046(k=document.createElement("option"),k.value=l,k.innerHTML=m[l],n.appendChild(k));void 0!==f.defaultValue\046\046a(n).val(f.defaultValue);f.attr\046\046a(n).attr(f.attr);void 0!==f.dataInit\046\046f.dataInit(n);void 0!==f.dataEvents\046\046d(n,f.dataEvents);a(j).append(n);!0===b.autosearch\046\046a(n).change(function(){e();return false})}}break;case "text":o=void 0!==f.defaultValue?\n
+f.defaultValue:"",a(j).append("\074input type=\'text\' style=\'width:95%;padding:0px;\' name=\'"+(i.index||i.name)+"\' id=\'gs_"+i.name+"\' value=\'"+o+"\'/\076"),f.attr\046\046a("input",j).attr(f.attr),void 0!==f.dataInit\046\046f.dataInit(a("input",j)[0]),void 0!==f.dataEvents\046\046d(a("input",j)[0],f.dataEvents),!0===b.autosearch\046\046(b.searchOnEnter?a("input",j).keypress(function(a){if((a.charCode?a.charCode:a.keyCode?a.keyCode:0)==13){e();return false}return this}):a("input",j).keydown(function(a){switch(a.which){case 13:return false;\n
+case 9:case 16:case 37:case 38:case 39:case 40:case 27:break;default:g\046\046clearTimeout(g);g=setTimeout(function(){e()},500)}}))}a(q).append(j);a(h).append(q)});a("table thead",c.grid.hDiv).append(h);this.ftoolbar=!0;this.triggerToolbar=e;this.clearToolbar=function(d){var j={},g=0,f,d="boolean"!=typeof d?!0:d;a.each(c.p.colModel,function(){var b;this.searchoptions\046\046void 0!==this.searchoptions.defaultValue\046\046(b=this.searchoptions.defaultValue);f=this.index||this.name;switch(this.stype){case "select":a("#gs_"+\n
+a.jgrid.jqID(this.name)+" option",!0===this.frozen\046\046!0===c.p.frozenColumns?c.grid.fhDiv:c.grid.hDiv).each(function(c){if(c===0)this.selected=true;if(a(this).val()==b){this.selected=true;return false}});if(void 0!==b)j[f]=b,g++;else try{delete c.p.postData[f]}catch(d){}break;case "text":if(a("#gs_"+a.jgrid.jqID(this.name),!0===this.frozen\046\046!0===c.p.frozenColumns?c.grid.fhDiv:c.grid.hDiv).val(b),void 0!==b)j[f]=b,g++;else try{delete c.p.postData[f]}catch(e){}}});var h=0\074g?!0:!1;if(!0===b.stringResult||\n
+"local"==c.p.datatype){var e=\'{"groupOp":"\'+b.groupOp+\'","rules":[\',o=0;a.each(j,function(a,b){0\074o\046\046(e+=",");e+=\'{"field":"\'+a+\'",\';e+=\'"op":"eq",\';e+=\'"data":"\'+(b+"").replace(/\\\\/g,"\\\\\\\\").replace(/\\"/g,\'\\\\"\')+\'"}\';o++});e+="]}";a.extend(c.p.postData,{filters:e});a.each(["searchField","searchString","searchOper"],function(a,b){c.p.postData.hasOwnProperty(b)\046\046delete c.p.postData[b]})}else a.extend(c.p.postData,j);var k;c.p.searchurl\046\046(k=c.p.url,a(c).jqGrid("setGridParam",{url:c.p.searchurl}));var l=\n
+"stop"===a(c).triggerHandler("jqGridToolbarBeforeClear")?!0:!1;!l\046\046a.isFunction(b.beforeClear)\046\046(l=b.beforeClear.call(c));l||d\046\046a(c).jqGrid("setGridParam",{search:h}).trigger("reloadGrid",[{page:1}]);k\046\046a(c).jqGrid("setGridParam",{url:k});a(c).triggerHandler("jqGridToolbarAfterClear");a.isFunction(b.afterClear)\046\046b.afterClear()};this.toggleToolbar=function(){var b=a("tr.ui-search-toolbar",c.grid.hDiv),d=!0===c.p.frozenColumns?a("tr.ui-search-toolbar",c.grid.fhDiv):!1;"none"==b.css("display")?(b.show(),\n
+d\046\046d.show()):(b.hide(),d\046\046d.hide())}}})},destroyGroupHeader:function(b){"undefined"==typeof b\046\046(b=!0);return this.each(function(){var d,c,e,h,g,i;c=this.grid;var j=a("table.ui-jqgrid-htable thead",c.hDiv),q=this.p.colModel;if(c){a(this).unbind(".setGroupHeaders");d=a("\074tr\076",{role:"rowheader"}).addClass("ui-jqgrid-labels");h=c.headers;c=0;for(e=h.length;c\074e;c++){g=q[c].hidden?"none":"";g=a(h[c].el).width(h[c].width).css("display",g);try{g.removeAttr("rowSpan")}catch(f){g.attr("rowSpan",1)}d.append(g);\n
+i=g.children("span.ui-jqgrid-resize");0\074i.length\046\046(i[0].style.height="");g.children("div")[0].style.top=""}a(j).children("tr.ui-jqgrid-labels").remove();a(j).prepend(d);!0===b\046\046a(this).jqGrid("setGridParam",{groupHeader:null})}})},setGroupHeaders:function(b){b=a.extend({useColSpanStyle:!1,groupHeaders:[]},b||{});return this.each(function(){this.p.groupHeader=b;var d,c,e=0,h,g,i,j,q,f=this.p.colModel,n=f.length,m=this.grid.headers,o=a("table.ui-jqgrid-htable",this.grid.hDiv),k=o.children("thead").children("tr.ui-jqgrid-labels:last").addClass("jqg-second-row-header");\n
+h=o.children("thead");var l=o.find(".jqg-first-row-header");void 0===l[0]?l=a("\074tr\076",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):l.empty();var p,r=function(a,b){for(var c=0,d=b.length;c\074d;c++)if(b[c].startColumnName===a)return c;return-1};a(this).prepend(h);h=a("\074tr\076",{role:"rowheader"}).addClass("ui-jqgrid-labels jqg-third-row-header");for(d=0;d\074n;d++)if(i=m[d].el,j=a(i),c=f[d],g={height:"0px",width:m[d].width+"px",display:c.hidden?"none":""},a("\074th\076",\n
+{role:"gridcell"}).css(g).addClass("ui-first-th-"+this.p.direction).appendTo(l),i.style.width="",g=r(c.name,b.groupHeaders),0\074=g){g=b.groupHeaders[g];e=g.numberOfColumns;q=g.titleText;for(g=c=0;g\074e\046\046d+g\074n;g++)f[d+g].hidden||c++;g=a("\074th\076").attr({role:"columnheader"}).addClass("ui-state-default ui-th-column-header ui-th-"+this.p.direction).css({height:"22px","border-top":"0px none"}).html(q);0\074c\046\046g.attr("colspan",""+c);this.p.headertitles\046\046g.attr("title",g.text());0===c\046\046g.hide();j.before(g);h.append(i);\n
+e-=1}else 0===e?b.useColSpanStyle?j.attr("rowspan","2"):(a("\074th\076",{role:"columnheader"}).addClass("ui-state-default ui-th-column-header ui-th-"+this.p.direction).css({display:c.hidden?"none":"","border-top":"0px none"}).insertBefore(j),h.append(i)):(h.append(i),e--);f=a(this).children("thead");f.prepend(l);h.insertAfter(k);o.append(f);b.useColSpanStyle\046\046(o.find("span.ui-jqgrid-resize").each(function(){var b=a(this).parent();b.is(":visible")\046\046(this.style.cssText="height: "+b.height()+"px !important; cursor: col-resize;")}),\n
+o.find("div.ui-jqgrid-sortable").each(function(){var b=a(this),c=b.parent();c.is(":visible")\046\046c.is(":has(span.ui-jqgrid-resize)")\046\046b.css("top",(c.height()-b.outerHeight())/2+"px")}));p=f.find("tr.jqg-first-row-header");a(this).bind("jqGridResizeStop.setGroupHeaders",function(a,b,c){p.find("th").eq(c).width(b)})})},setFrozenColumns:function(){return this.each(function(){if(this.grid){var b=this,d=b.p.colModel,c=0,e=d.length,h=-1,g=!1;if(!(!0===b.p.subGrid||!0===b.p.treeGrid||!0===b.p.cellEdit||b.p.sortable||\n
+b.p.scroll||b.p.grouping)){b.p.rownumbers\046\046c++;for(b.p.multiselect\046\046c++;c\074e;){if(!0===d[c].frozen)g=!0,h=c;else break;c++}if(0\074=h\046\046g){d=b.p.caption?a(b.grid.cDiv).outerHeight():0;c=a(".ui-jqgrid-htable","#gview_"+a.jgrid.jqID(b.p.id)).height();b.p.toppager\046\046(d+=a(b.grid.topDiv).outerHeight());!0===b.p.toolbar[0]\046\046"bottom"!=b.p.toolbar[1]\046\046(d+=a(b.grid.uDiv).outerHeight());b.grid.fhDiv=a(\'\074div style="position:absolute;left:0px;top:\'+d+"px;height:"+c+\'px;" class="frozen-div ui-state-default ui-jqgrid-hdiv"\076\074/div\076\');\n
+b.grid.fbDiv=a(\'\074div style="position:absolute;left:0px;top:\'+(parseInt(d,10)+parseInt(c,10)+1)+\'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"\076\074/div\076\');a("#gview_"+a.jgrid.jqID(b.p.id)).append(b.grid.fhDiv);d=a(".ui-jqgrid-htable","#gview_"+a.jgrid.jqID(b.p.id)).clone(!0);if(b.p.groupHeader){a("tr.jqg-first-row-header, tr.jqg-third-row-header",d).each(function(){a("th:gt("+h+")",this).remove()});var i=-1,j=-1;a("tr.jqg-second-row-header th",d).each(function(){var b=parseInt(a(this).attr("colspan"),\n
+10);b\046\046(i+=b,j++);if(i===h)return!1});i!==h\046\046(j=h);a("tr.jqg-second-row-header",d).each(function(){a("th:gt("+j+")",this).remove()})}else a("tr",d).each(function(){a("th:gt("+h+")",this).remove()});a(d).width(1);a(b.grid.fhDiv).append(d).mousemove(function(a){if(b.grid.resizing)return b.grid.dragMove(a),!1});a(b).bind("jqGridResizeStop.setFrozenColumns",function(c,d,e){c=a(".ui-jqgrid-htable",b.grid.fhDiv);a("th:eq("+e+")",c).width(d);c=a(".ui-jqgrid-btable",b.grid.fbDiv);a("tr:first td:eq("+e+")",\n
+c).width(d)});a(b).bind("jqGridOnSortCol.setFrozenColumns",function(c,d){var e=a("tr.ui-jqgrid-labels:last th:eq("+b.p.lastsort+")",b.grid.fhDiv),g=a("tr.ui-jqgrid-labels:last th:eq("+d+")",b.grid.fhDiv);a("span.ui-grid-ico-sort",e).addClass("ui-state-disabled");a(e).attr("aria-selected","false");a("span.ui-icon-"+b.p.sortorder,g).removeClass("ui-state-disabled");a(g).attr("aria-selected","true");!b.p.viewsortcols[0]\046\046b.p.lastsort!=d\046\046(a("span.s-ico",e).hide(),a("span.s-ico",g).show())});a("#gview_"+\n
+a.jgrid.jqID(b.p.id)).append(b.grid.fbDiv);jQuery(b.grid.bDiv).scroll(function(){jQuery(b.grid.fbDiv).scrollTop(jQuery(this).scrollTop())});!0===b.p.hoverrows\046\046a("#"+a.jgrid.jqID(b.p.id)).unbind("mouseover").unbind("mouseout");a(b).bind("jqGridAfterGridComplete.setFrozenColumns",function(){a("#"+a.jgrid.jqID(b.p.id)+"_frozen").remove();jQuery(b.grid.fbDiv).height(jQuery(b.grid.bDiv).height()-16);var c=a("#"+a.jgrid.jqID(b.p.id)).clone(!0);a("tr",c).each(function(){a("td:gt("+h+")",this).remove()});\n
+a(c).width(1).attr("id",b.p.id+"_frozen");a(b.grid.fbDiv).append(c);!0===b.p.hoverrows\046\046(a("tr.jqgrow",c).hover(function(){a(this).addClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)).removeClass("ui-state-hover")}),a("tr.jqgrow","#"+a.jgrid.jqID(b.p.id)).hover(function(){a(this).addClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)+\n
+"_frozen").addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)+"_frozen").removeClass("ui-state-hover")}));c=null});b.p.frozenColumns=!0}}}})},destroyFrozenColumns:function(){return this.each(function(){if(this.grid\046\046!0===this.p.frozenColumns){a(this.grid.fhDiv).remove();a(this.grid.fbDiv).remove();this.grid.fhDiv=null;this.grid.fbDiv=null;a(this).unbind(".setFrozenColumns");if(!0===this.p.hoverrows){var b;a("#"+a.jgrid.jqID(this.p.id)).bind("mouseover",\n
+function(d){b=a(d.target).closest("tr.jqgrow");"ui-subgrid"!==a(b).attr("class")\046\046a(b).addClass("ui-state-hover")}).bind("mouseout",function(d){b=a(d.target).closest("tr.jqgrow");a(b).removeClass("ui-state-hover")})}this.p.frozenColumns=!1}})}})})(jQuery);\n
+(function(a){a.extend(a.jgrid,{showModal:function(a){a.w.show()},closeModal:function(a){a.w.hide().attr("aria-hidden","true");a.o\046\046a.o.remove()},hideModal:function(d,b){b=a.extend({jqm:!0,gb:""},b||{});if(b.onClose){var c=b.onClose(d);if("boolean"==typeof c\046\046!c)return}if(a.fn.jqm\046\046!0===b.jqm)a(d).attr("aria-hidden","true").jqmHide();else{if(""!==b.gb)try{a(".jqgrid-overlay:first",b.gb).hide()}catch(f){}a(d).hide().attr("aria-hidden","true")}},findPos:function(a){var b=0,c=0;if(a.offsetParent){do b+=\n
+a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]},createModal:function(d,b,c,f,g,h,i){var c=a.extend(!0,a.jgrid.jqModal||{},c),e=document.createElement("div"),l,j=this,i=a.extend({},i||{});l="rtl"==a(c.gbox).attr("dir")?!0:!1;e.className="ui-widget ui-widget-content ui-corner-all ui-jqdialog";e.id=d.themodal;var k=document.createElement("div");k.className="ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix";k.id=d.modalhead;a(k).append("\074span class=\'ui-jqdialog-title\'\076"+\n
+c.caption+"\074/span\076");var n=a("\074a href=\'javascript:void(0)\' class=\'ui-jqdialog-titlebar-close ui-corner-all\'\076\074/a\076").hover(function(){n.addClass("ui-state-hover")},function(){n.removeClass("ui-state-hover")}).append("\074span class=\'ui-icon ui-icon-closethick\'\076\074/span\076");a(k).append(n);l?(e.dir="rtl",a(".ui-jqdialog-title",k).css("float","right"),a(".ui-jqdialog-titlebar-close",k).css("left","0.3em")):(e.dir="ltr",a(".ui-jqdialog-title",k).css("float","left"),a(".ui-jqdialog-titlebar-close",k).css("right",\n
+"0.3em"));var m=document.createElement("div");a(m).addClass("ui-jqdialog-content ui-widget-content").attr("id",d.modalcontent);a(m).append(b);e.appendChild(m);a(e).prepend(k);!0===h?a("body").append(e):"string"==typeof h?a(h).append(e):a(e).insertBefore(f);a(e).css(i);"undefined"===typeof c.jqModal\046\046(c.jqModal=!0);b={};if(a.fn.jqm\046\046!0===c.jqModal)0===c.left\046\046(0===c.top\046\046c.overlay)\046\046(i=[],i=a.jgrid.findPos(g),c.left=i[0]+4,c.top=i[1]+4),b.top=c.top+"px",b.left=c.left;else if(0!==c.left||0!==c.top)b.left=\n
+c.left,b.top=c.top+"px";a("a.ui-jqdialog-titlebar-close",k).click(function(){var b=a("#"+a.jgrid.jqID(d.themodal)).data("onClose")||c.onClose,e=a("#"+a.jgrid.jqID(d.themodal)).data("gbox")||c.gbox;j.hideModal("#"+a.jgrid.jqID(d.themodal),{gb:e,jqm:c.jqModal,onClose:b});return false});if(0===c.width||!c.width)c.width=300;if(0===c.height||!c.height)c.height=200;c.zIndex||(f=a(f).parents("*[role=dialog]").filter(":first").css("z-index"),c.zIndex=f?parseInt(f,10)+2:950);f=0;l\046\046(b.left\046\046!h)\046\046(f=a(c.gbox).width()-\n
+(!isNaN(c.width)?parseInt(c.width,10):0)-8,b.left=parseInt(b.left,10)+parseInt(f,10));b.left\046\046(b.left+="px");a(e).css(a.extend({width:isNaN(c.width)?"auto":c.width+"px",height:isNaN(c.height)?"auto":c.height+"px",zIndex:c.zIndex,overflow:"hidden"},b)).attr({tabIndex:"-1",role:"dialog","aria-labelledby":d.modalhead,"aria-hidden":"true"});"undefined"==typeof c.drag\046\046(c.drag=!0);"undefined"==typeof c.resize\046\046(c.resize=!0);if(c.drag)if(a(k).css("cursor","move"),a.fn.jqDrag)a(e).jqDrag(k);else try{a(e).draggable({handle:a("#"+\n
+a.jgrid.jqID(k.id))})}catch(o){}if(c.resize)if(a.fn.jqResize)a(e).append("\074div class=\'jqResize ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se\'\076\074/div\076"),a("#"+a.jgrid.jqID(d.themodal)).jqResize(".jqResize",d.scrollelm?"#"+a.jgrid.jqID(d.scrollelm):!1);else try{a(e).resizable({handles:"se, sw",alsoResize:d.scrollelm?"#"+a.jgrid.jqID(d.scrollelm):!1})}catch(p){}!0===c.closeOnEscape\046\046a(e).keydown(function(b){if(b.which==27){b=a("#"+a.jgrid.jqID(d.themodal)).data("onClose")||\n
+c.onClose;j.hideModal(this,{gb:c.gbox,jqm:c.jqModal,onClose:b})}})},viewModal:function(d,b){b=a.extend({toTop:!0,overlay:10,modal:!1,overlayClass:"ui-widget-overlay",onShow:a.jgrid.showModal,onHide:a.jgrid.closeModal,gbox:"",jqm:!0,jqM:!0},b||{});if(a.fn.jqm\046\046!0===b.jqm)b.jqM?a(d).attr("aria-hidden","false").jqm(b).jqmShow():a(d).attr("aria-hidden","false").jqmShow();else{""!==b.gbox\046\046(a(".jqgrid-overlay:first",b.gbox).show(),a(d).data("gbox",b.gbox));a(d).show().attr("aria-hidden","false");try{a(":input:visible",\n
+d)[0].focus()}catch(c){}}},info_dialog:function(d,b,c,f){var g={width:290,height:"auto",dataheight:"auto",drag:!0,resize:!1,caption:"\074b\076"+d+"\074/b\076",left:250,top:170,zIndex:1E3,jqModal:!0,modal:!1,closeOnEscape:!0,align:"center",buttonalign:"center",buttons:[]};a.extend(g,f||{});var h=g.jqModal,i=this;a.fn.jqm\046\046!h\046\046(h=!1);d="";if(0\074g.buttons.length)for(f=0;f\074g.buttons.length;f++)"undefined"==typeof g.buttons[f].id\046\046(g.buttons[f].id="info_button_"+f),d+="\074a href=\'javascript:void(0)\' id=\'"+g.buttons[f].id+\n
+"\' class=\'fm-button ui-state-default ui-corner-all\'\076"+g.buttons[f].text+"\074/a\076";f=isNaN(g.dataheight)?g.dataheight:g.dataheight+"px";b="\074div id=\'info_id\'\076"+("\074div id=\'infocnt\' style=\'margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+f+";"+("text-align:"+g.align+";")+"\'\076"+b+"\074/div\076");b+=c?"\074div class=\'ui-widget-content ui-helper-clearfix\' style=\'text-align:"+g.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;\'\076\074a href=\'javascript:void(0)\' id=\'closedialog\' class=\'fm-button ui-state-default ui-corner-all\'\076"+\n
+c+"\074/a\076"+d+"\074/div\076":""!==d?"\074div class=\'ui-widget-content ui-helper-clearfix\' style=\'text-align:"+g.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;\'\076"+d+"\074/div\076":"";b+="\074/div\076";try{"false"==a("#info_dialog").attr("aria-hidden")\046\046a.jgrid.hideModal("#info_dialog",{jqm:h}),a("#info_dialog").remove()}catch(e){}a.jgrid.createModal({themodal:"info_dialog",modalhead:"info_head",modalcontent:"info_content",scrollelm:"infocnt"},b,g,"","",!0);d\046\046a.each(g.buttons,\n
+function(b){a("#"+a.jgrid.jqID(this.id),"#info_id").bind("click",function(){g.buttons[b].onClick.call(a("#info_dialog"));return!1})});a("#closedialog","#info_id").click(function(){i.hideModal("#info_dialog",{jqm:h});return!1});a(".fm-button","#info_dialog").hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});a.isFunction(g.beforeOpen)\046\046g.beforeOpen();a.jgrid.viewModal("#info_dialog",{onHide:function(a){a.w.hide().remove();a.o\046\046a.o.remove()},modal:g.modal,\n
+jqm:h});a.isFunction(g.afterOpen)\046\046g.afterOpen();try{a("#info_dialog").focus()}catch(l){}},createEl:function(d,b,c,f,g){function h(b,d){a.isFunction(d.dataInit)\046\046d.dataInit.call(l,b);d.dataEvents\046\046a.each(d.dataEvents,function(){void 0!==this.data?a(b).bind(this.type,this.data,this.fn):a(b).bind(this.type,this.fn)});return d}function i(b,d,c){var e="dataInit dataEvents dataUrl buildSelect sopt searchhidden defaultValue attr".split(" ");"undefined"!=typeof c\046\046a.isArray(c)\046\046a.merge(e,c);a.each(d,function(d,\n
+c){-1===a.inArray(d,e)\046\046a(b).attr(d,c)});d.hasOwnProperty("id")||a(b).attr("id",a.jgrid.randId())}var e="",l=this;switch(d){case "textarea":e=document.createElement("textarea");f?b.cols||a(e).css({width:"98%"}):b.cols||(b.cols=20);b.rows||(b.rows=2);if("\046nbsp;"==c||"\046#160;"==c||1==c.length\046\046160==c.charCodeAt(0))c="";e.value=c;i(e,b);b=h(e,b);a(e).attr({role:"textbox",multiline:"true"});break;case "checkbox":e=document.createElement("input");e.type="checkbox";b.value?(d=b.value.split(":"),c===d[0]\046\046\n
+(e.checked=!0,e.defaultChecked=!0),e.value=d[0],a(e).attr("offval",d[1])):(d=c.toLowerCase(),0\076d.search(/(false|0|no|off|undefined)/i)\046\046""!==d?(e.checked=!0,e.defaultChecked=!0,e.value=c):e.value="on",a(e).attr("offval","off"));i(e,b,["value"]);b=h(e,b);a(e).attr("role","checkbox");break;case "select":e=document.createElement("select");e.setAttribute("role","select");f=[];!0===b.multiple?(d=!0,e.multiple="multiple",a(e).attr("aria-multiselectable","true")):d=!1;if("undefined"!=typeof b.dataUrl)a.ajax(a.extend({url:b.dataUrl,\n
+type:"GET",dataType:"html",context:{elem:e,options:b,vl:c},success:function(d){var b=[],c=this.elem,e=this.vl,f=a.extend({},this.options),g=f.multiple===true;a.isFunction(f.buildSelect)\046\046(d=f.buildSelect.call(l,d));if(d=a(d).html()){a(c).append(d);i(c,f);f=h(c,f);if(typeof f.size==="undefined")f.size=g?3:1;if(g){b=e.split(",");b=a.map(b,function(b){return a.trim(b)})}else b[0]=a.trim(e);setTimeout(function(){a("option",c).each(function(d){if(d===0\046\046c.multiple)this.selected=false;a(this).attr("role",\n
+"option");if(a.inArray(a.trim(a(this).text()),b)\076-1||a.inArray(a.trim(a(this).val()),b)\076-1)this.selected="selected"})},0)}}},g||{}));else if(b.value){var j;"undefined"===typeof b.size\046\046(b.size=d?3:1);d\046\046(f=c.split(","),f=a.map(f,function(b){return a.trim(b)}));"function"===typeof b.value\046\046(b.value=b.value());var k,n,m=void 0===b.separator?":":b.separator,g=void 0===b.delimiter?";":b.delimiter;if("string"===typeof b.value){k=b.value.split(g);for(j=0;j\074k.length;j++){n=k[j].split(m);2\074n.length\046\046(n[1]=\n
+a.map(n,function(a,b){if(b\0760)return a}).join(m));g=document.createElement("option");g.setAttribute("role","option");g.value=n[0];g.innerHTML=n[1];e.appendChild(g);if(!d\046\046(a.trim(n[0])==a.trim(c)||a.trim(n[1])==a.trim(c)))g.selected="selected";if(d\046\046(-1\074a.inArray(a.trim(n[1]),f)||-1\074a.inArray(a.trim(n[0]),f)))g.selected="selected"}}else if("object"===typeof b.value)for(j in m=b.value,m)if(m.hasOwnProperty(j)){g=document.createElement("option");g.setAttribute("role","option");g.value=j;g.innerHTML=\n
+m[j];e.appendChild(g);if(!d\046\046(a.trim(j)==a.trim(c)||a.trim(m[j])==a.trim(c)))g.selected="selected";if(d\046\046(-1\074a.inArray(a.trim(m[j]),f)||-1\074a.inArray(a.trim(j),f)))g.selected="selected"}i(e,b,["value"]);b=h(e,b)}break;case "text":case "password":case "button":j="button"==d?"button":"textbox";e=document.createElement("input");e.type=d;e.value=c;i(e,b);b=h(e,b);"button"!=d\046\046(f?b.size||a(e).css({width:"98%"}):b.size||(b.size=20));a(e).attr("role",j);break;case "image":case "file":e=document.createElement("input");\n
+e.type=d;i(e,b);b=h(e,b);break;case "custom":e=document.createElement("span");try{if(a.isFunction(b.custom_element))if(m=b.custom_element.call(l,c,b))m=a(m).addClass("customelement").attr({id:b.id,name:b.name}),a(e).empty().append(m);else throw"e2";else throw"e1";}catch(o){"e1"==o\046\046a.jgrid.info_dialog(a.jgrid.errors.errcap,"function \'custom_element\' "+a.jgrid.edit.msg.nodefined,a.jgrid.edit.bClose),"e2"==o?a.jgrid.info_dialog(a.jgrid.errors.errcap,"function \'custom_element\' "+a.jgrid.edit.msg.novalue,\n
+a.jgrid.edit.bClose):a.jgrid.info_dialog(a.jgrid.errors.errcap,"string"===typeof o?o:o.message,a.jgrid.edit.bClose)}}return e},checkDate:function(a,b){var c={},f,a=a.toLowerCase();f=-1!=a.indexOf("/")?"/":-1!=a.indexOf("-")?"-":-1!=a.indexOf(".")?".":"/";a=a.split(f);b=b.split(f);if(3!=b.length)return!1;f=-1;for(var g,h=-1,i=-1,e=0;e\074a.length;e++)g=isNaN(b[e])?0:parseInt(b[e],10),c[a[e]]=g,g=a[e],-1!=g.indexOf("y")\046\046(f=e),-1!=g.indexOf("m")\046\046(i=e),-1!=g.indexOf("d")\046\046(h=e);g="y"==a[f]||"yyyy"==a[f]?\n
+4:"yy"==a[f]?2:-1;var e=function(a){for(var b=1;b\074=a;b++){this[b]=31;if(4==b||6==b||9==b||11==b)this[b]=30;2==b\046\046(this[b]=29)}return this}(12),l;if(-1===f)return!1;l=c[a[f]].toString();2==g\046\0461==l.length\046\046(g=1);if(l.length!=g||0===c[a[f]]\046\046"00"!=b[f]||-1===i)return!1;l=c[a[i]].toString();if(1\076l.length||(1\076c[a[i]]||12\074c[a[i]])||-1===h)return!1;l=c[a[h]].toString();return 1\076l.length||1\076c[a[h]]||31\074c[a[h]]||2==c[a[i]]\046\046c[a[h]]\076(0===c[a[f]]%4\046\046(0!==c[a[f]]%100||0===c[a[f]]%400)?29:28)||c[a[h]]\076e[c[a[i]]]?\n
+!1:!0},isEmpty:function(a){return a.match(/^\\s+$/)||""===a?!0:!1},checkTime:function(d){var b=/^(\\d{1,2}):(\\d{2})([ap]m)?$/;if(!a.jgrid.isEmpty(d))if(d=d.match(b)){if(d[3]){if(1\076d[1]||12\074d[1])return!1}else if(23\074d[1])return!1;if(59\074d[2])return!1}else return!1;return!0},checkValues:function(d,b,c,f,g){var h,i;if("undefined"===typeof f)if("string"==typeof b){f=0;for(g=c.p.colModel.length;f\074g;f++)if(c.p.colModel[f].name==b){h=c.p.colModel[f].editrules;b=f;try{i=c.p.colModel[f].formoptions.label}catch(e){}break}}else 0\074=\n
+b\046\046(h=c.p.colModel[b].editrules);else h=f,i=void 0===g?"_":g;if(h){i||(i=c.p.colNames[b]);if(!0===h.required\046\046a.jgrid.isEmpty(d))return[!1,i+": "+a.jgrid.edit.msg.required,""];f=!1===h.required?!1:!0;if(!0===h.number\046\046!(!1===f\046\046a.jgrid.isEmpty(d))\046\046isNaN(d))return[!1,i+": "+a.jgrid.edit.msg.number,""];if("undefined"!=typeof h.minValue\046\046!isNaN(h.minValue)\046\046parseFloat(d)\074parseFloat(h.minValue))return[!1,i+": "+a.jgrid.edit.msg.minValue+" "+h.minValue,""];if("undefined"!=typeof h.maxValue\046\046!isNaN(h.maxValue)\046\046\n
+parseFloat(d)\076parseFloat(h.maxValue))return[!1,i+": "+a.jgrid.edit.msg.maxValue+" "+h.maxValue,""];if(!0===h.email\046\046!(!1===f\046\046a.jgrid.isEmpty(d))\046\046(g=/^((([a-z]|\\d|[!#\\$%\046\'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%\046\'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i,\n
+!g.test(d)))return[!1,i+": "+a.jgrid.edit.msg.email,""];if(!0===h.integer\046\046!(!1===f\046\046a.jgrid.isEmpty(d))\046\046(isNaN(d)||0!==d%1||-1!=d.indexOf(".")))return[!1,i+": "+a.jgrid.edit.msg.integer,""];if(!0===h.date\046\046!(!1===f\046\046a.jgrid.isEmpty(d))\046\046(b=c.p.colModel[b].formatoptions\046\046c.p.colModel[b].formatoptions.newformat?c.p.colModel[b].formatoptions.newformat:c.p.colModel[b].datefmt||"Y-m-d",!a.jgrid.checkDate(b,d)))return[!1,i+": "+a.jgrid.edit.msg.date+" - "+b,""];if(!0===h.time\046\046!(!1===f\046\046a.jgrid.isEmpty(d))\046\046\n
+!a.jgrid.checkTime(d))return[!1,i+": "+a.jgrid.edit.msg.date+" - hh:mm (am/pm)",""];if(!0===h.url\046\046!(!1===f\046\046a.jgrid.isEmpty(d))\046\046(g=/^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@\046#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i,!g.test(d)))return[!1,i+": "+a.jgrid.edit.msg.url,""];if(!0===h.custom\046\046!(!1===f\046\046a.jgrid.isEmpty(d)))return a.isFunction(h.custom_func)?(d=h.custom_func.call(c,d,i),a.isArray(d)?d:[!1,a.jgrid.edit.msg.customarray,""]):[!1,a.jgrid.edit.msg.customfcheck,\n
+""]}return[!0,"",""]}})})(jQuery);\n
+(function(a){var c={};a.jgrid.extend({searchGrid:function(c){c=a.extend({recreateFilter:!1,drag:!0,sField:"searchField",sValue:"searchString",sOper:"searchOper",sFilter:"filters",loadDefaults:!0,beforeShowSearch:null,afterShowSearch:null,onInitializeSearch:null,afterRedraw:null,afterChange:null,closeAfterSearch:!1,closeAfterReset:!1,closeOnEscape:!1,searchOnEnter:!1,multipleSearch:!1,multipleGroup:!1,top:0,left:0,jqModal:!0,modal:!1,resize:!0,width:450,height:"auto",dataheight:"auto",showQuery:!1,\n
+errorcheck:!0,sopt:null,stringResult:void 0,onClose:null,onSearch:null,onReset:null,toTop:!0,overlay:30,columns:[],tmplNames:null,tmplFilters:null,tmplLabel:" Template: ",showOnLoad:!1,layer:null},a.jgrid.search,c||{});return this.each(function(){function d(b){r=a(e).triggerHandler("jqGridFilterBeforeShow",[b]);"undefined"===typeof r\046\046(r=!0);r\046\046a.isFunction(c.beforeShowSearch)\046\046(r=c.beforeShowSearch.call(e,b));r\046\046(a.jgrid.viewModal("#"+a.jgrid.jqID(u.themodal),{gbox:"#gbox_"+a.jgrid.jqID(n),jqm:c.jqModal,\n
+modal:c.modal,overlay:c.overlay,toTop:c.toTop}),a(e).triggerHandler("jqGridFilterAfterShow",[b]),a.isFunction(c.afterShowSearch)\046\046c.afterShowSearch.call(e,b))}var e=this;if(e.grid){var n="fbox_"+e.p.id,r=!0,u={themodal:"searchmod"+n,modalhead:"searchhd"+n,modalcontent:"searchcnt"+n,scrollelm:n},t=e.p.postData[c.sFilter];"string"===typeof t\046\046(t=a.jgrid.parse(t));!0===c.recreateFilter\046\046a("#"+a.jgrid.jqID(u.themodal)).remove();if(void 0!==a("#"+a.jgrid.jqID(u.themodal))[0])d(a("#fbox_"+a.jgrid.jqID(+e.p.id)));\n
+else{var l=a("\074div\076\074div id=\'"+n+"\' class=\'searchFilter\' style=\'overflow:auto\'\076\074/div\076\074/div\076").insertBefore("#gview_"+a.jgrid.jqID(e.p.id)),g="left",f="";"rtl"==e.p.direction\046\046(g="right",f=" style=\'text-align:left\'",l.attr("dir","rtl"));var p=a.extend([],e.p.colModel),w="\074a href=\'javascript:void(0)\' id=\'"+n+"_search\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-right ui-reset\'\076\074span class=\'ui-icon ui-icon-search\'\076\074/span\076"+c.Find+"\074/a\076",b="\074a href=\'javascript:void(0)\' id=\'"+n+"_reset\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-left ui-search\'\076\074span class=\'ui-icon ui-icon-arrowreturnthick-1-w\'\076\074/span\076"+\n
+c.Reset+"\074/a\076",s="",h="",j,i=!1,q=-1;c.showQuery\046\046(s="\074a href=\'javascript:void(0)\' id=\'"+n+"_query\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-left\'\076\074span class=\'ui-icon ui-icon-comment\'\076\074/span\076Query\074/a\076");c.columns.length?p=c.columns:a.each(p,function(a,b){if(!b.label)b.label=e.p.colNames[a];if(!i){var c=typeof b.search==="undefined"?true:b.search,d=b.hidden===true;if(b.searchoptions\046\046b.searchoptions.searchhidden===true\046\046c||c\046\046!d){i=true;j=b.index||b.name;q=a}}});if(!t\046\046j||!1===\n
+c.multipleSearch){var y="eq";0\074=q\046\046p[q].searchoptions\046\046p[q].searchoptions.sopt?y=p[q].searchoptions.sopt[0]:c.sopt\046\046c.sopt.length\046\046(y=c.sopt[0]);t={groupOp:"AND",rules:[{field:j,op:y,data:""}]}}i=!1;c.tmplNames\046\046c.tmplNames.length\046\046(i=!0,h=c.tmplLabel,h+="\074select class=\'ui-template\'\076",h+="\074option value=\'default\'\076Default\074/option\076",a.each(c.tmplNames,function(a,b){h=h+("\074option value=\'"+a+"\'\076"+b+"\074/option\076")}),h+="\074/select\076");g="\074table class=\'EditTable\' style=\'border:0px none;margin-top:5px\' id=\'"+\n
+n+"_2\'\076\074tbody\076\074tr\076\074td colspan=\'2\'\076\074hr class=\'ui-widget-content\' style=\'margin:1px\'/\076\074/td\076\074/tr\076\074tr\076\074td class=\'EditButton\' style=\'text-align:"+g+"\'\076"+b+h+"\074/td\076\074td class=\'EditButton\' "+f+"\076"+s+w+"\074/td\076\074/tr\076\074/tbody\076\074/table\076";n=a.jgrid.jqID(n);a("#"+n).jqFilter({columns:p,filter:c.loadDefaults?t:null,showQuery:c.showQuery,errorcheck:c.errorcheck,sopt:c.sopt,groupButton:c.multipleGroup,ruleButtons:c.multipleSearch,afterRedraw:c.afterRedraw,_gridsopt:a.jgrid.search.odata,ajaxSelectOptions:e.p.ajaxSelectOptions,\n
+groupOps:c.groupOps,onChange:function(){this.p.showQuery\046\046a(".query",this).html(this.toUserFriendlyString());a.isFunction(c.afterChange)\046\046c.afterChange.call(e,a("#"+n),c)},direction:e.p.direction});l.append(g);i\046\046(c.tmplFilters\046\046c.tmplFilters.length)\046\046a(".ui-template",l).bind("change",function(){var b=a(this).val();b=="default"?a("#"+n).jqFilter("addFilter",t):a("#"+n).jqFilter("addFilter",c.tmplFilters[parseInt(b,10)]);return false});!0===c.multipleGroup\046\046(c.multipleSearch=!0);a(e).triggerHandler("jqGridFilterInitialize",\n
+[a("#"+n)]);a.isFunction(c.onInitializeSearch)\046\046c.onInitializeSearch.call(e,a("#"+n));c.gbox="#gbox_"+n;c.layer?a.jgrid.createModal(u,l,c,"#gview_"+a.jgrid.jqID(e.p.id),a("#gbox_"+a.jgrid.jqID(e.p.id))[0],"#"+a.jgrid.jqID(c.layer),{position:"relative"}):a.jgrid.createModal(u,l,c,"#gview_"+a.jgrid.jqID(e.p.id),a("#gbox_"+a.jgrid.jqID(e.p.id))[0]);(c.searchOnEnter||c.closeOnEscape)\046\046a("#"+a.jgrid.jqID(u.themodal)).keydown(function(b){var d=a(b.target);if(c.searchOnEnter\046\046b.which===13\046\046!d.hasClass("add-group")\046\046\n
+!d.hasClass("add-rule")\046\046!d.hasClass("delete-group")\046\046!d.hasClass("delete-rule")\046\046(!d.hasClass("fm-button")||!d.is("[id$=_query]"))){a("#"+n+"_search").focus().click();return false}if(c.closeOnEscape\046\046b.which===27){a("#"+a.jgrid.jqID(u.modalhead)).find(".ui-j</string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+qdialog-titlebar-close").focus().click();return false}});s&&a("#"+n+"_query").bind("click",function(){a(".queryresult",l).toggle();return false});void 0===c.stringResult&&(c.stringResult=c.multipleSearch);a("#"+n+"_search").bind("click",function(){var b=\n
+a("#"+n),d={},h,f=b.jqFilter("filterData");if(c.errorcheck){b[0].hideError();c.showQuery||b.jqFilter("toSQLString");if(b[0].p.error){b[0].showError();return false}}if(c.stringResult){try{h=xmlJsonClass.toJson(f,"","",false)}catch(g){try{h=JSON.stringify(f)}catch(j){}}if(typeof h==="string"){d[c.sFilter]=h;a.each([c.sField,c.sValue,c.sOper],function(){d[this]=""})}}else if(c.multipleSearch){d[c.sFilter]=f;a.each([c.sField,c.sValue,c.sOper],function(){d[this]=""})}else{d[c.sField]=f.rules[0].field;\n
+d[c.sValue]=f.rules[0].data;d[c.sOper]=f.rules[0].op;d[c.sFilter]=""}e.p.search=true;a.extend(e.p.postData,d);a(e).triggerHandler("jqGridFilterSearch");a.isFunction(c.onSearch)&&c.onSearch.call(e);a(e).trigger("reloadGrid",[{page:1}]);c.closeAfterSearch&&a.jgrid.hideModal("#"+a.jgrid.jqID(u.themodal),{gb:"#gbox_"+a.jgrid.jqID(e.p.id),jqm:c.jqModal,onClose:c.onClose});return false});a("#"+n+"_reset").bind("click",function(){var b={},d=a("#"+n);e.p.search=false;c.multipleSearch===false?b[c.sField]=\n
+b[c.sValue]=b[c.sOper]="":b[c.sFilter]="";d[0].resetFilter();i&&a(".ui-template",l).val("default");a.extend(e.p.postData,b);a(e).triggerHandler("jqGridFilterReset");a.isFunction(c.onReset)&&c.onReset.call(e);a(e).trigger("reloadGrid",[{page:1}]);return false});d(a("#"+n));a(".fm-button:not(.ui-state-disabled)",l).hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")})}}})},editGridRow:function(o,d){d=a.extend({top:0,left:0,width:300,height:"auto",dataheight:"auto",\n
+modal:!1,overlay:30,drag:!0,resize:!0,url:null,mtype:"POST",clearAfterAdd:!0,closeAfterEdit:!1,reloadAfterSubmit:!0,onInitializeForm:null,beforeInitData:null,beforeShowForm:null,afterShowForm:null,beforeSubmit:null,afterSubmit:null,onclickSubmit:null,afterComplete:null,onclickPgButtons:null,afterclickPgButtons:null,editData:{},recreateForm:!1,jqModal:!0,closeOnEscape:!1,addedrow:"first",topinfo:"",bottominfo:"",saveicon:[],closeicon:[],savekey:[!1,13],navkeys:[!1,38,40],checkOnSubmit:!1,checkOnUpdate:!1,\n
+_savedData:{},processing:!1,onClose:null,ajaxEditOptions:{},serializeEditData:null,viewPagerButtons:!0},a.jgrid.edit,d||{});c[a(this)[0].p.id]=d;return this.each(function(){function e(){a(i+" > tbody > tr > td > .FormElement").each(function(){var c=a(".customelement",this);if(c.length){var d=a(c[0]).attr("name");a.each(b.p.colModel,function(){if(this.name===d&&this.editoptions&&a.isFunction(this.editoptions.custom_value)){try{if(k[d]=this.editoptions.custom_value.call(b,a("#"+a.jgrid.jqID(d),i),"get"),\n
+void 0===k[d])throw"e1";}catch(c){"e1"===c?a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function \'custom_value\' "+a.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose):a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,c.message,jQuery.jgrid.edit.bClose)}return!0}})}else{switch(a(this).get(0).type){case "checkbox":a(this).is(":checked")?k[this.name]=a(this).val():(c=a(this).attr("offval"),k[this.name]=c);break;case "select-one":k[this.name]=a("option:selected",this).val();B[this.name]=a("option:selected",\n
+this).text();break;case "select-multiple":k[this.name]=a(this).val();k[this.name]=k[this.name]?k[this.name].join(","):"";var e=[];a("option:selected",this).each(function(b,c){e[b]=a(c).text()});B[this.name]=e.join(",");break;case "password":case "text":case "textarea":case "button":k[this.name]=a(this).val()}b.p.autoencode&&(k[this.name]=a.jgrid.htmlEncode(k[this.name]))}});return!0}function n(d,e,h,k){var f,g,m,j=0,i,q,l,n=[],v=!1,p="",o;for(o=1;o<=k;o++)p+="<td class=\'CaptionTD\'>&#160;</td><td class=\'DataTD\'>&#160;</td>";\n
+"_empty"!=d&&(v=a(e).jqGrid("getInd",d));a(e.p.colModel).each(function(o){f=this.name;q=(g=this.editrules&&!0===this.editrules.edithidden?!1:!0===this.hidden?!0:!1)?"style=\'display:none\'":"";if("cb"!==f&&"subgrid"!==f&&!0===this.editable&&"rn"!==f){if(!1===v)i="";else if(f==e.p.ExpandColumn&&!0===e.p.treeGrid)i=a("td:eq("+o+")",e.rows[v]).text();else{try{i=a.unformat.call(e,a("td:eq("+o+")",e.rows[v]),{rowId:d,colModel:this},o)}catch(s){i=this.edittype&&"textarea"==this.edittype?a("td:eq("+o+")",\n
+e.rows[v]).text():a("td:eq("+o+")",e.rows[v]).html()}if(!i||"&nbsp;"==i||"&#160;"==i||1==i.length&&160==i.charCodeAt(0))i=""}var r=a.extend({},this.editoptions||{},{id:f,name:f}),t=a.extend({},{elmprefix:"",elmsuffix:"",rowabove:!1,rowcontent:""},this.formoptions||{}),u=parseInt(t.rowpos,10)||j+1,y=parseInt(2*(parseInt(t.colpos,10)||1),10);"_empty"==d&&r.defaultValue&&(i=a.isFunction(r.defaultValue)?r.defaultValue.call(b):r.defaultValue);this.edittype||(this.edittype="text");b.p.autoencode&&(i=a.jgrid.htmlDecode(i));\n
+l=a.jgrid.createEl.call(b,this.edittype,r,i,!1,a.extend({},a.jgrid.ajaxOptions,e.p.ajaxSelectOptions||{}));""===i&&"checkbox"==this.edittype&&(i=a(l).attr("offval"));""===i&&"select"==this.edittype&&(i=a("option:eq(0)",l).text());if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData[f]=i;a(l).addClass("FormElement");("text"==this.edittype||"textarea"==this.edittype)&&a(l).addClass("ui-widget-content ui-corner-all");m=a(h).find("tr[rowpos="+u+"]");t.rowabove&&(r=a("<tr><td class=\'contentinfo\' colspan=\'"+\n
+2*k+"\'>"+t.rowcontent+"</td></tr>"),a(h).append(r),r[0].rp=u);0===m.length&&(m=a("<tr "+q+" rowpos=\'"+u+"\'></tr>").addClass("FormData").attr("id","tr_"+f),a(m).append(p),a(h).append(m),m[0].rp=u);a("td:eq("+(y-2)+")",m[0]).html("undefined"===typeof t.label?e.p.colNames[o]:t.label);a("td:eq("+(y-1)+")",m[0]).append(t.elmprefix).append(l).append(t.elmsuffix);n[j]=o;j++}});if(0<j&&(o=a("<tr class=\'FormData\' style=\'display:none\'><td class=\'CaptionTD\'></td><td colspan=\'"+(2*k-1)+"\' class=\'DataTD\'><input class=\'FormElement\' id=\'id_g\' type=\'text\' name=\'"+\n
+e.p.id+"_id\' value=\'"+d+"\'/></td></tr>"),o[0].rp=j+999,a(h).append(o),c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate))c[b.p.id]._savedData[e.p.id+"_id"]=d;return n}function r(d,e,h){var f,k=0,g,m,j,q,l;if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData={},c[b.p.id]._savedData[e.p.id+"_id"]=d;var o=e.p.colModel;if("_empty"==d)a(o).each(function(){f=this.name;j=a.extend({},this.editoptions||{});if((m=a("#"+a.jgrid.jqID(f),"#"+h))&&m.length&&null!==m[0])if(q="",j.defaultValue?\n
+(q=a.isFunction(j.defaultValue)?j.defaultValue.call(b):j.defaultValue,"checkbox"==m[0].type?(l=q.toLowerCase(),0>l.search(/(false|0|no|off|undefined)/i)&&""!==l?(m[0].checked=!0,m[0].defaultChecked=!0,m[0].value=q):(m[0].checked=!1,m[0].defaultChecked=!1)):m.val(q)):"checkbox"==m[0].type?(m[0].checked=!1,m[0].defaultChecked=!1,q=a(m).attr("offval")):m[0].type&&"select"==m[0].type.substr(0,6)?m[0].selectedIndex=0:m.val(q),!0===c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData[f]=\n
+q}),a("#id_g","#"+h).val(d);else{var n=a(e).jqGrid("getInd",d,!0);n&&(a(\'td[role="gridcell"]\',n).each(function(m){f=o[m].name;if("cb"!==f&&"subgrid"!==f&&"rn"!==f&&!0===o[m].editable){if(f==e.p.ExpandColumn&&!0===e.p.treeGrid)g=a(this).text();else try{g=a.unformat.call(e,a(this),{rowId:d,colModel:o[m]},m)}catch(i){g="textarea"==o[m].edittype?a(this).text():a(this).html()}b.p.autoencode&&(g=a.jgrid.htmlDecode(g));if(!0===c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData[f]=g;f=\n
+a.jgrid.jqID(f);switch(o[m].edittype){case "password":case "text":case "button":case "image":case "textarea":if("&nbsp;"==g||"&#160;"==g||1==g.length&&160==g.charCodeAt(0))g="";a("#"+f,"#"+h).val(g);break;case "select":var j=g.split(","),j=a.map(j,function(b){return a.trim(b)});a("#"+f+" option","#"+h).each(function(){this.selected=!o[m].editoptions.multiple&&(a.trim(g)==a.trim(a(this).text())||j[0]==a.trim(a(this).text())||j[0]==a.trim(a(this).val()))?!0:o[m].editoptions.multiple?-1<a.inArray(a.trim(a(this).text()),\n
+j)||-1<a.inArray(a.trim(a(this).val()),j)?!0:!1:!1});break;case "checkbox":g+="";o[m].editoptions&&o[m].editoptions.value?o[m].editoptions.value.split(":")[0]==g?(a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("checked",!0),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!0)):(a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("checked",!1),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!1)):(g=g.toLowerCase(),0>g.search(/(false|0|no|off|undefined)/i)&&""!==g?(a("#"+f,"#"+h)[b.p.useProp?\n
+"prop":"attr"]("checked",!0),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!0)):(a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("checked",!1),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!1)));break;case "custom":try{if(o[m].editoptions&&a.isFunction(o[m].editoptions.custom_value))o[m].editoptions.custom_value.call(b,a("#"+f,"#"+h),"set",g);else throw"e1";}catch(q){"e1"==q?a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function \'custom_value\' "+a.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose):\n
+a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,q.message,jQuery.jgrid.edit.bClose)}}k++}}),0<k&&a("#id_g",i).val(d))}}function u(){a.each(b.p.colModel,function(a,b){b.editoptions&&!0===b.editoptions.NullIfEmpty&&k.hasOwnProperty(b.name)&&""===k[b.name]&&(k[b.name]="null")})}function t(){var e,f=[!0,"",""],m={},g=b.p.prmNames,j,o,l,n,v,p=a(b).triggerHandler("jqGridAddEditBeforeCheckValues",[a("#"+h),z]);p&&"object"===typeof p&&(k=p);a.isFunction(c[b.p.id].beforeCheckValues)&&(p=c[b.p.id].beforeCheckValues.call(b,\n
+k,a("#"+h),"_empty"==k[b.p.id+"_id"]?g.addoper:g.editoper))&&"object"===typeof p&&(k=p);for(l in k)if(k.hasOwnProperty(l)&&(f=a.jgrid.checkValues.call(b,k[l],l,b),!1===f[0]))break;u();f[0]&&(m=a(b).triggerHandler("jqGridAddEditClickSubmit",[c[b.p.id],k,z]),void 0===m&&a.isFunction(c[b.p.id].onclickSubmit)&&(m=c[b.p.id].onclickSubmit.call(b,c[b.p.id],k)||{}),f=a(b).triggerHandler("jqGridAddEditBeforeSubmit",[k,a("#"+h),z]),void 0===f&&(f=[!0,"",""]),f[0]&&a.isFunction(c[b.p.id].beforeSubmit)&&(f=c[b.p.id].beforeSubmit.call(b,\n
+k,a("#"+h))));if(f[0]&&!c[b.p.id].processing){c[b.p.id].processing=!0;a("#sData",i+"_2").addClass("ui-state-active");o=g.oper;j=g.id;k[o]="_empty"==a.trim(k[b.p.id+"_id"])?g.addoper:g.editoper;k[o]!=g.addoper?k[j]=k[b.p.id+"_id"]:void 0===k[j]&&(k[j]=k[b.p.id+"_id"]);delete k[b.p.id+"_id"];k=a.extend(k,c[b.p.id].editData,m);if(!0===b.p.treeGrid)for(v in k[o]==g.addoper&&(n=a(b).jqGrid("getGridParam","selrow"),k["adjacency"==b.p.treeGridModel?b.p.treeReader.parent_id_field:"parent_id"]=n),b.p.treeReader)b.p.treeReader.hasOwnProperty(v)&&\n
+(m=b.p.treeReader[v],k.hasOwnProperty(m)&&!(k[o]==g.addoper&&"parent_id_field"===v)&&delete k[m]);k[j]=a.jgrid.stripPref(b.p.idPrefix,k[j]);v=a.extend({url:c[b.p.id].url?c[b.p.id].url:a(b).jqGrid("getGridParam","editurl"),type:c[b.p.id].mtype,data:a.isFunction(c[b.p.id].serializeEditData)?c[b.p.id].serializeEditData.call(b,k):k,complete:function(m,l){k[j]=b.p.idPrefix+k[j];if(l!="success"){f[0]=false;f[1]=a(b).triggerHandler("jqGridAddEditErrorTextFormat",[m,z]);f[1]=a.isFunction(c[b.p.id].errorTextFormat)?\n
+c[b.p.id].errorTextFormat.call(b,m):l+" Status: \'"+m.statusText+"\'. Error code: "+m.status}else{f=a(b).triggerHandler("jqGridAddEditAfterSubmit",[m,k,z]);f===void 0&&(f=[true,"",""]);f[0]&&a.isFunction(c[b.p.id].afterSubmit)&&(f=c[b.p.id].afterSubmit.call(b,m,k))}if(f[0]===false){a("#FormError>td",i).html(f[1]);a("#FormError",i).show()}else{a.each(b.p.colModel,function(){if(B[this.name]&&this.formatter&&this.formatter=="select")try{delete B[this.name]}catch(a){}});k=a.extend(k,B);b.p.autoencode&&\n
+a.each(k,function(b,d){k[b]=a.jgrid.htmlDecode(d)});if(k[o]==g.addoper){f[2]||(f[2]=a.jgrid.randId());k[j]=f[2];if(c[b.p.id].closeAfterAdd){if(c[b.p.id].reloadAfterSubmit)a(b).trigger("reloadGrid");else if(b.p.treeGrid===true)a(b).jqGrid("addChildNode",f[2],n,k);else{a(b).jqGrid("addRowData",f[2],k,d.addedrow);a(b).jqGrid("setSelection",f[2])}a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose})}else if(c[b.p.id].clearAfterAdd){c[b.p.id].reloadAfterSubmit?\n
+a(b).trigger("reloadGrid"):b.p.treeGrid===true?a(b).jqGrid("addChildNode",f[2],n,k):a(b).jqGrid("addRowData",f[2],k,d.addedrow);r("_empty",b,h)}else c[b.p.id].reloadAfterSubmit?a(b).trigger("reloadGrid"):b.p.treeGrid===true?a(b).jqGrid("addChildNode",f[2],n,k):a(b).jqGrid("addRowData",f[2],k,d.addedrow)}else{if(c[b.p.id].reloadAfterSubmit){a(b).trigger("reloadGrid");c[b.p.id].closeAfterEdit||setTimeout(function(){a(b).jqGrid("setSelection",k[j])},1E3)}else b.p.treeGrid===true?a(b).jqGrid("setTreeRow",\n
+k[j],k):a(b).jqGrid("setRowData",k[j],k);c[b.p.id].closeAfterEdit&&a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose})}if(a.isFunction(c[b.p.id].afterComplete)){e=m;setTimeout(function(){a(b).triggerHandler("jqGridAddEditAfterComplete",[e,k,a("#"+h),z]);c[b.p.id].afterComplete.call(b,e,k,a("#"+h));e=null},500)}if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate){a("#"+h).data("disabled",false);if(c[b.p.id]._savedData[b.p.id+"_id"]!=\n
+"_empty")for(var v in c[b.p.id]._savedData)k[v]&&(c[b.p.id]._savedData[v]=k[v])}}c[b.p.id].processing=false;a("#sData",i+"_2").removeClass("ui-state-active");try{a(":input:visible","#"+h)[0].focus()}catch(p){}}},a.jgrid.ajaxOptions,c[b.p.id].ajaxEditOptions);!v.url&&!c[b.p.id].useDataProxy&&(a.isFunction(b.p.dataProxy)?c[b.p.id].useDataProxy=!0:(f[0]=!1,f[1]+=" "+a.jgrid.errors.nourl));f[0]&&(c[b.p.id].useDataProxy?(m=b.p.dataProxy.call(b,v,"set_"+b.p.id),"undefined"==typeof m&&(m=[!0,""]),!1===m[0]?\n
+(f[0]=!1,f[1]=m[1]||"Error deleting the selected row!"):(v.data.oper==g.addoper&&c[b.p.id].closeAfterAdd&&a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose}),v.data.oper==g.editoper&&c[b.p.id].closeAfterEdit&&a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose}))):a.ajax(v))}!1===f[0]&&(a("#FormError>td",i).html(f[1]),a("#FormError",i).show())}function l(a,b){var d=!1,\n
+c;for(c in a)if(a[c]!=b[c]){d=!0;break}return d}function g(){var d=!0;a("#FormError",i).hide();if(c[b.p.id].checkOnUpdate&&(k={},B={},e(),F=a.extend({},k,B),M=l(F,c[b.p.id]._savedData)))a("#"+h).data("disabled",!0),a(".confirm","#"+q.themodal).show(),d=!1;return d}function f(){if("_empty"!==o&&"undefined"!==typeof b.p.savedRow&&0<b.p.savedRow.length&&a.isFunction(a.fn.jqGrid.restoreRow))for(var d=0;d<b.p.savedRow.length;d++)if(b.p.savedRow[d].id==o){a(b).jqGrid("restoreRow",o);break}}function p(b,\n
+d){0===b?a("#pData",i+"_2").addClass("ui-state-disabled"):a("#pData",i+"_2").removeClass("ui-state-disabled");b==d?a("#nData",i+"_2").addClass("ui-state-disabled"):a("#nData",i+"_2").removeClass("ui-state-disabled")}function w(){var d=a(b).jqGrid("getDataIDs"),c=a("#id_g",i).val();return[a.inArray(c,d),d]}var b=this;if(b.grid&&o){var s=b.p.id,h="FrmGrid_"+s,j="TblGrid_"+s,i="#"+a.jgrid.jqID(j),q={themodal:"editmod"+s,modalhead:"edithd"+s,modalcontent:"editcnt"+s,scrollelm:h},y=a.isFunction(c[b.p.id].beforeShowForm)?\n
+c[b.p.id].beforeShowForm:!1,A=a.isFunction(c[b.p.id].afterShowForm)?c[b.p.id].afterShowForm:!1,x=a.isFunction(c[b.p.id].beforeInitData)?c[b.p.id].beforeInitData:!1,m=a.isFunction(c[b.p.id].onInitializeForm)?c[b.p.id].onInitializeForm:!1,v=!0,E=1,H=0,k,B,F,M,z,h=a.jgrid.jqID(h);"new"===o?(o="_empty",z="add",d.caption=c[b.p.id].addCaption):(d.caption=c[b.p.id].editCaption,z="edit");!0===d.recreateForm&&void 0!==a("#"+a.jgrid.jqID(q.themodal))[0]&&a("#"+a.jgrid.jqID(q.themodal)).remove();var I=!0;d.checkOnUpdate&&\n
+(d.jqModal&&!d.modal)&&(I=!1);if(void 0!==a("#"+a.jgrid.jqID(q.themodal))[0]){v=a(b).triggerHandler("jqGridAddEditBeforeInitData",[a("#"+a.jgrid.jqID(h)),z]);"undefined"==typeof v&&(v=!0);v&&x&&(v=x.call(b,a("#"+h)));if(!1===v)return;f();a(".ui-jqdialog-title","#"+a.jgrid.jqID(q.modalhead)).html(d.caption);a("#FormError",i).hide();c[b.p.id].topinfo?(a(".topinfo",i).html(c[b.p.id].topinfo),a(".tinfo",i).show()):a(".tinfo",i).hide();c[b.p.id].bottominfo?(a(".bottominfo",i+"_2").html(c[b.p.id].bottominfo),\n
+a(".binfo",i+"_2").show()):a(".binfo",i+"_2").hide();r(o,b,h);"_empty"==o||!c[b.p.id].viewPagerButtons?a("#pData, #nData",i+"_2").hide():a("#pData, #nData",i+"_2").show();!0===c[b.p.id].processing&&(c[b.p.id].processing=!1,a("#sData",i+"_2").removeClass("ui-state-active"));!0===a("#"+h).data("disabled")&&(a(".confirm","#"+a.jgrid.jqID(q.themodal)).hide(),a("#"+h).data("disabled",!1));a(b).triggerHandler("jqGridAddEditBeforeShowForm",[a("#"+h),z]);y&&y.call(b,a("#"+h));a("#"+a.jgrid.jqID(q.themodal)).data("onClose",\n
+c[b.p.id].onClose);a.jgrid.viewModal("#"+a.jgrid.jqID(q.themodal),{gbox:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,jqM:!1,overlay:d.overlay,modal:d.modal});I||a(".jqmOverlay").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a(b).triggerHandler("jqGridAddEditAfterShowForm",[a("#"+h),z]);A&&A.call(b,a("#"+h))}else{var G=isNaN(d.dataheight)?d.dataheight:d.dataheight+"px",G=a("<form name=\'FormPost\' id=\'"+\n
+h+"\' class=\'FormGrid\' onSubmit=\'return false;\' style=\'width:100%;overflow:auto;position:relative;height:"+G+";\'></form>").data("disabled",!1),C=a("<table id=\'"+j+"\' class=\'EditTable\' cellspacing=\'0\' cellpadding=\'0\' border=\'0\'><tbody></tbody></table>"),v=a(b).triggerHandler("jqGridAddEditBeforeInitData",[a("#"+h),z]);"undefined"==typeof v&&(v=!0);v&&x&&(v=x.call(b,a("#"+h)));if(!1===v)return;f();a(b.p.colModel).each(function(){var a=this.formoptions;E=Math.max(E,a?a.colpos||0:0);H=Math.max(H,a?a.rowpos||\n
+0:0)});a(G).append(C);x=a("<tr id=\'FormError\' style=\'display:none\'><td class=\'ui-state-error\' colspan=\'"+2*E+"\'></td></tr>");x[0].rp=0;a(C).append(x);x=a("<tr style=\'display:none\' class=\'tinfo\'><td class=\'topinfo\' colspan=\'"+2*E+"\'>"+c[b.p.id].topinfo+"</td></tr>");x[0].rp=0;a(C).append(x);var v=(x="rtl"==b.p.direction?!0:!1)?"nData":"pData",D=x?"pData":"nData";n(o,b,C,E);var v="<a href=\'javascript:void(0)\' id=\'"+v+"\' class=\'fm-button ui-state-default ui-corner-left\'><span class=\'ui-icon ui-icon-triangle-1-w\'></span></a>",\n
+D="<a href=\'javascript:void(0)\' id=\'"+D+"\' class=\'fm-button ui-state-default ui-corner-right\'><span class=\'ui-icon ui-icon-triangle-1-e\'></span></a>",J="<a href=\'javascript:void(0)\' id=\'sData\' class=\'fm-button ui-state-default ui-corner-all\'>"+d.bSubmit+"</a>",K="<a href=\'javascript:void(0)\' id=\'cData\' class=\'fm-button ui-state-default ui-corner-all\'>"+d.bCancel+"</a>",j="<table border=\'0\' cellspacing=\'0\' cellpadding=\'0\' class=\'EditTable\' id=\'"+j+"_2\'><tbody><tr><td colspan=\'2\'><hr class=\'ui-widget-content\' style=\'margin:1px\'/></td></tr><tr id=\'Act_Buttons\'><td class=\'navButton\'>"+\n
+(x?D+v:v+D)+"</td><td class=\'EditButton\'>"+J+K+"</td></tr>"+("<tr style=\'display:none\' class=\'binfo\'><td class=\'bottominfo\' colspan=\'2\'>"+c[b.p.id].bottominfo+"</td></tr>"),j=j+"</tbody></table>";if(0<H){var L=[];a.each(a(C)[0].rows,function(a,b){L[a]=b});L.sort(function(a,b){return a.rp>b.rp?1:a.rp<b.rp?-1:0});a.each(L,function(b,d){a("tbody",C).append(d)})}d.gbox="#gbox_"+a.jgrid.jqID(s);var N=!1;!0===d.closeOnEscape&&(d.closeOnEscape=!1,N=!0);j=a("<span></span>").append(G).append(j);a.jgrid.createModal(q,\n
+j,d,"#gview_"+a.jgrid.jqID(b.p.id),a("#gbox_"+a.jgrid.jqID(b.p.id))[0]);x&&(a("#pData, #nData",i+"_2").css("float","right"),a(".EditButton",i+"_2").css("text-align","left"));c[b.p.id].topinfo&&a(".tinfo",i).show();c[b.p.id].bottominfo&&a(".binfo",i+"_2").show();j=j=null;a("#"+a.jgrid.jqID(q.themodal)).keydown(function(e){var f=e.target;if(a("#"+h).data("disabled")===true)return false;if(c[b.p.id].savekey[0]===true&&e.which==c[b.p.id].savekey[1]&&f.tagName!="TEXTAREA"){a("#sData",i+"_2").trigger("click");\n
+return false}if(e.which===27){if(!g())return false;N&&a.jgrid.hideModal(this,{gb:d.gbox,jqm:d.jqModal,onClose:c[b.p.id].onClose});return false}if(c[b.p.id].navkeys[0]===true){if(a("#id_g",i).val()=="_empty")return true;if(e.which==c[b.p.id].navkeys[1]){a("#pData",i+"_2").trigger("click");return false}if(e.which==c[b.p.id].navkeys[2]){a("#nData",i+"_2").trigger("click");return false}}});d.checkOnUpdate&&(a("a.ui-jqdialog-titlebar-close span","#"+a.jgrid.jqID(q.themodal)).removeClass("jqmClose"),a("a.ui-jqdialog-titlebar-close",\n
+"#"+a.jgrid.jqID(q.themodal)).unbind("click").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false}));d.saveicon=a.extend([!0,"left","ui-icon-disk"],d.saveicon);d.closeicon=a.extend([!0,"left","ui-icon-close"],d.closeicon);!0===d.saveicon[0]&&a("#sData",i+"_2").addClass("right"==d.saveicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class=\'ui-icon "+d.saveicon[2]+\n
+"\'></span>");!0===d.closeicon[0]&&a("#cData",i+"_2").addClass("right"==d.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class=\'ui-icon "+d.closeicon[2]+"\'></span>");if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)J="<a href=\'javascript:void(0)\' id=\'sNew\' class=\'fm-button ui-state-default ui-corner-all\' style=\'z-index:1002\'>"+d.bYes+"</a>",D="<a href=\'javascript:void(0)\' id=\'nNew\' class=\'fm-button ui-state-default ui-corner-all\' style=\'z-index:1002\'>"+d.bNo+"</a>",K="<a href=\'javascript:void(0)\' id=\'cNew\' class=\'fm-button ui-state-default ui-corner-all\' style=\'z-index:1002\'>"+\n
+d.bExit+"</a>",j=d.zIndex||999,j++,a("<div class=\'ui-widget-overlay jqgrid-overlay confirm\' style=\'z-index:"+j+";display:none;\'>&#160;"+(a.browser.msie&&6==a.browser.version?\'<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\\\'0\\\');" src="javascript:false;"></iframe>\':"")+"</div><div class=\'confirm ui-widget-content ui-jqconfirm\' style=\'z-index:"+(j+1)+"\'>"+d.saveData+"<br/><br/>"+J+D+K+"</div>").insertAfter("#"+h),a("#sNew","#"+a.jgrid.jqID(q.themodal)).click(function(){t();\n
+a("#"+h).data("disabled",false);a(".confirm","#"+a.jgrid.jqID(q.themodal)).hide();return false}),a("#nNew","#"+a.jgrid.jqID(q.themodal)).click(function(){a(".confirm","#"+a.jgrid.jqID(q.themodal)).hide();a("#"+h).data("disabled",false);setTimeout(function(){a(":input","#"+h)[0].focus()},0);return false}),a("#cNew","#"+a.jgrid.jqID(q.themodal)).click(function(){a(".confirm","#"+a.jgrid.jqID(q.themodal)).hide();a("#"+h).data("disabled",false);a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+\n
+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a(b).triggerHandler("jqGridAddEditInitializeForm",[a("#"+h),z]);m&&m.call(b,a("#"+h));"_empty"==o||!c[b.p.id].viewPagerButtons?a("#pData,#nData",i+"_2").hide():a("#pData,#nData",i+"_2").show();a(b).triggerHandler("jqGridAddEditBeforeShowForm",[a("#"+h),z]);y&&y.call(b,a("#"+h));a("#"+a.jgrid.jqID(q.themodal)).data("onClose",c[b.p.id].onClose);a.jgrid.viewModal("#"+a.jgrid.jqID(q.themodal),{gbox:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,\n
+overlay:d.overlay,modal:d.modal});I||a(".jqmOverlay").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a(b).triggerHandler("jqGridAddEditAfterShowForm",[a("#"+h),z]);A&&A.call(b,a("#"+h));a(".fm-button","#"+a.jgrid.jqID(q.themodal)).hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});a("#sData",i+"_2").click(function(){k={};B=\n
+{};a("#FormError",i).hide();e();if(k[b.p.id+"_id"]=="_empty")t();else if(d.checkOnSubmit===true){F=a.extend({},k,B);if(M=l(F,c[b.p.id]._savedData)){a("#"+h).data("disabled",true);a(".confirm","#"+a.jgrid.jqID(q.themodal)).show()}else t()}else t();return false});a("#cData",i+"_2").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(q.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a("#nData",i+"_2").click(function(){if(!g())return false;\n
+a("#FormError",i).hide();var c=w();c[0]=parseInt(c[0],10);if(c[0]!=-1&&c[1][c[0]+1]){a(b).triggerHandler("jqGridAddEditClickPgButtons",["next",a("#"+h),c[1][c[0]]]);var e=true;if(a.isFunction(d.onclickPgButtons)){e=d.onclickPgButtons.call(b,"next",a("#"+h),c[1][c[0]]);if(e!==void 0&&e===false)return false}if(a("#"+a.jgrid.jqID(c[1][c[0]+1])).hasClass("ui-state-disabled"))return false;r(c[1][c[0]+1],b,h);a(b).jqGrid("setSelection",c[1][c[0]+1]);a(b).triggerHandler("jqGridAddEditAfterClickPgButtons",\n
+["next",a("#"+h),c[1][c[0]]]);a.isFunction(d.afterclickPgButtons)&&d.afterclickPgButtons.call(b,"next",a("#"+h),c[1][c[0]+1]);p(c[0]+1,c[1].length-1)}return false});a("#pData",i+"_2").click(function(){if(!g())return false;a("#FormError",i).hide();var c=w();if(c[0]!=-1&&c[1][c[0]-1]){a(b).triggerHandler("jqGridAddEditClickPgButtons",["prev",a("#"+h),c[1][c[0]]]);var e=true;if(a.isFunction(d.onclickPgButtons)){e=d.onclickPgButtons.call(b,"prev",a("#"+h),c[1][c[0]]);if(e!==void 0&&e===false)return false}if(a("#"+\n
+a.jgrid.jqID(c[1][c[0]-1])).hasClass("ui-state-disabled"))return false;r(c[1][c[0]-1],b,h);a(b).jqGrid("setSelection",c[1][c[0]-1]);a(b).triggerHandler("jqGridAddEditAfterClickPgButtons",["prev",a("#"+h),c[1][c[0]]]);a.isFunction(d.afterclickPgButtons)&&d.afterclickPgButtons.call(b,"prev",a("#"+h),c[1][c[0]-1]);p(c[0]-1,c[1].length-1)}return false})}y=w();p(y[0],y[1].length-1)}})},viewGridRow:function(o,d){d=a.extend({top:0,left:0,width:0,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,\n
+resize:!0,jqModal:!0,closeOnEscape:!1,labelswidth:"30%",closeicon:[],navkeys:[!1,38,40],onClose:null,beforeShowForm:null,beforeInitData:null,viewPagerButtons:!0},a.jgrid.view,d||{});c[a(this)[0].p.id]=d;return this.each(function(){function e(){(!0===c[l.p.id].closeOnEscape||!0===c[l.p.id].navkeys[0])&&setTimeout(function(){a(".ui-jqdialog-titlebar-close","#"+a.jgrid.jqID(s.modalhead)).focus()},0)}function n(b,c,e,f){for(var g,h,j,i=0,o,q,l=[],n=!1,p="<td class=\'CaptionTD form-view-label ui-widget-content\' width=\'"+\n
+d.labelswidth+"\'>&#160;</td><td class=\'DataTD form-view-data ui-helper-reset ui-widget-content\'>&#160;</td>",r="",t=["integer","number","currency"],s=0,u=0,y,x,w,A=1;A<=f;A++)r+=1==A?p:"<td class=\'CaptionTD form-view-label ui-widget-content\'>&#160;</td><td class=\'DataTD form-view-data ui-widget-content\'>&#160;</td>";a(c.p.colModel).each(function(){h=this.editrules&&!0===this.editrules.edithidden?!1:!0===this.hidden?!0:!1;!h&&"right"===this.align&&(this.formatter&&-1!==a.inArray(this.formatter,t)?\n
+s=Math.max(s,parseInt(this.width,10)):u=Math.max(u,parseInt(this.width,10)))});y=0!==s?s:0!==u?u:0;n=a(c).jqGrid("getInd",b);a(c.p.colModel).each(function(b){g=this.name;x=!1;q=(h=this.editrules&&!0===this.editrules.edithidden?!1:!0===this.hidden?!0:!1)?"style=\'display:none\'":"";w="boolean"!=typeof this.viewable?!0:this.viewable;if("cb"!==g&&"subgrid"!==g&&"rn"!==g&&w){o=!1===n?"":g==c.p.ExpandColumn&&!0===c.p.treeGrid?a("td:eq("+b+")",c.rows[n]).text():a("td:eq("+b+")",c.rows[n]).html();x="right"===\n
+this.align&&0!==y?!0:!1;var d=a.extend({},{rowabove:!1,rowcontent:""},this.formoptions||{}),m=parseInt(d.rowpos,10)||i+1,p=parseInt(2*(parseInt(d.colpos,10)||1),10);if(d.rowabove){var s=a("<tr><td class=\'contentinfo\' colspan=\'"+2*f+"\'>"+d.rowcontent+"</td></tr>");a(e).append(s);s[0].rp=m}j=a(e).find("tr[rowpos="+m+"]");0===j.length&&(j=a("<tr "+q+" rowpos=\'"+m+"\'></tr>").addClass("FormData").attr("id","trv_"+g),a(j).append(r),a(e).append(j),j[0].rp=m);a("td:eq("+(p-2)+")",j[0]).html("<b>"+("undefined"===\n
+typeof d.label?c.p.colNames[b]:d.label)+"</b>");a("td:eq("+(p-1)+")",j[0]).append("<span>"+o+"</span>").attr("id","v_"+g);x&&a("td:eq("+(p-1)+") span",j[0]).css({"text-align":"right",width:y+"px"});l[i]=b;i++}});0<i&&(b=a("<tr class=\'FormData\' style=\'display:none\'><td class=\'CaptionTD\'></td><td colspan=\'"+(2*f-1)+"\' class=\'DataTD\'><input class=\'FormElement\' id=\'id_g\' type=\'text\' name=\'id\' value=\'"+b+"\'/></td></tr>"),b[0].rp=i+99,a(e).append(b));return l}function r(b,c){var d,e,f=0,g,h;if(h=a(c).jqGrid("getInd",\n
+b,!0))a("td",h).each(function(b){d=c.p.colModel[b].name;e=c.p.colModel[b].editrules&&!0===c.p.colModel[b].editrules.edithidden?!1:!0===c.p.colModel[b].hidden?!0:!1;"cb"!==d&&("subgrid"!==d&&"rn"!==d)&&(g=d==c.p.ExpandColumn&&!0===c.p.treeGrid?a(this).text():a(this).html(),a.extend({},c.p.colModel[b].editoptions||{}),d=a.jgrid.jqID("v_"+d),a("#"+d+" span","#"+p).html(g),e&&a("#"+d,"#"+p).parents("tr:first").hide(),f++)}),0<f&&a("#id_g","#"+p).val(b)}function u(b,c){0===b?a("#pData","#"+p+"_2").addClass("ui-state-disabled"):\n
+a("#pData","#"+p+"_2").removeClass("ui-state-disabled");b==c?a("#nData","#"+p+"_2").addClass("ui-state-disabled"):a("#nData","#"+p+"_2").removeClass("ui-state-disabled")}function t(){var b=a(l).jqGrid("getDataIDs"),c=a("#id_g","#"+p).val();return[a.inArray(c,b),b]}var l=this;if(l.grid&&o){var g=l.p.id,f="ViewGrid_"+a.jgrid.jqID(g),p="ViewTbl_"+a.jgrid.jqID(g),w="ViewGrid_"+g,b="ViewTbl_"+g,s={themodal:"viewmod"+g,modalhead:"viewhd"+g,modalcontent:"viewcnt"+g,scrollelm:f},h=a.isFunction(c[l.p.id].beforeInitData)?\n
+c[l.p.id].beforeInitData:!1,j=!0,i=1,q=0;if(void 0!==a("#"+a.jgrid.jqID(s.themodal))[0]){h&&(j=h.call(l,a("#"+f)),"undefined"==typeof j&&(j=!0));if(!1===j)return;a(".ui-jqdialog-title","#"+a.jgrid.jqID(s.modalhead)).html(d.caption);a("#FormError","#"+p).hide();r(o,l);a.isFunction(c[l.p.id].beforeShowForm)&&c[l.p.id].beforeShowForm.call(l,a("#"+f));a.jgrid.viewModal("#"+a.jgrid.jqID(s.themodal),{gbox:"#gbox_"+a.jgrid.jqID(g),jqm:d.jqModal,jqM:!1,overlay:d.overlay,modal:d.modal});e()}else{var y=isNaN(d.dataheight)?\n
+d.dataheight:d.dataheight+"px",w=a("<form name=\'FormPost\' id=\'"+w+"\' class=\'FormGrid\' style=\'width:100%;overflow:auto;position:relative;height:"+y+";\'></form>"),A=a("<table id=\'"+b+"\' class=\'EditTable\' cellspacing=\'1\' cellpadding=\'2\' border=\'0\' style=\'table-layout:fixed\'><tbody></tbody></table>");h&&(j=h.call(l,a("#"+f)),"undefined"==typeof j&&(j=!0));if(!1===j)return;a(l.p.colModel).each(function(){var a=this.formoptions;i=Math.max(i,a?a.colpos||0:0);q=Math.max(q,a?a.rowpos||0:0)});a(w).append(A);\n
+n(o,l,A,i);b="rtl"==l.p.direction?!0:!1;h="<a href=\'javascript:void(0)\' id=\'"+(b?"nData":"pData")+"\' class=\'fm-button ui-state-default ui-corner-left\'><span class=\'ui-icon ui-icon-triangle-1-w\'></span></a>";j="<a href=\'javascript:void(0)\' id=\'"+(b?"pData":"nData")+"\' class=\'fm-button ui-state-default ui-corner-right\'><span class=\'ui-icon ui-icon-triangle-1-e\'></span></a>";y="<a href=\'javascript:void(0)\' id=\'cData\' class=\'fm-button ui-state-default ui-corner-all\'>"+d.bClose+"</a>";if(0<q){var x=[];\n
+a.each(a(A)[0].rows,function(a,b){x[a]=b});x.sort(function(a,b){return a.rp>b.rp?1:a.rp<b.rp?-1:0});a.each(x,function(b,c){a("tbody",A).append(c)})}d.gbox="#gbox_"+a.jgrid.jqID(g);w=a("<span></span>").append(w).append("<table border=\'0\' class=\'EditTable\' id=\'"+p+"_2\'><tbody><tr id=\'Act_Buttons\'><td class=\'navButton\' width=\'"+d.labelswidth+"\'>"+(b?j+h:h+j)+"</td><td class=\'EditButton\'>"+y+"</td></tr></tbody></table>");a.jgrid.createModal(s,w,d,"#gview_"+a.jgrid.jqID(l.p.id),a("#gview_"+a.jgrid.jqID(l.p.id))[0]);\n
+b&&(a("#pData, #nData","#"+p+"_2").css("float","right"),a(".EditButton","#"+p+"_2").css("text-align","left"));d.viewPagerButtons||a("#pData, #nData","#"+p+"_2").hide();w=null;a("#"+s.themodal).keydown(function(b){if(b.which===27){c[l.p.id].closeOnEscape&&a.jgrid.hideModal(this,{gb:d.gbox,jqm:d.jqModal,onClose:d.onClose});return false}if(d.navkeys[0]===true){if(b.which===d.navkeys[1]){a("#pData","#"+p+"_2").trigger("click");return false}if(b.which===d.navkeys[2]){a("#nData","#"+p+"_2").trigger("click");\n
+return false}}});d.closeicon=a.extend([!0,"left","ui-icon-close"],d.closeicon);!0===d.closeicon[0]&&a("#cData","#"+p+"_2").addClass("right"==d.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class=\'ui-icon "+d.closeicon[2]+"\'></span>");a.isFunction(d.beforeShowForm)&&d.beforeShowForm.call(l,a("#"+f));a.jgrid.viewModal("#"+a.jgrid.jqID(s.themodal),{gbox:"#gbox_"+a.jgrid.jqID(g),jqm:d.jqModal,modal:d.modal});a(".fm-button:not(.ui-state-disabled)","#"+p+"_2").hover(function(){a(this).addClass("ui-state-hover")},\n
+function(){a(this).removeClass("ui-state-hover")});e();a("#cData","#"+p+"_2").click(function(){a.jgrid.hideModal("#"+a.jgrid.jqID(s.themodal),{gb:"#gbox_"+a.jgrid.jqID(g),jqm:d.jqModal,onClose:d.onClose});return false});a("#nData","#"+p+"_2").click(function(){a("#FormError","#"+p).hide();var b=t();b[0]=parseInt(b[0],10);if(b[0]!=-1&&b[1][b[0]+1]){a.isFunction(d.onclickPgButtons)&&d.onclickPgButtons.call(l,"next",a("#"+f),b[1][b[0]]);r(b[1][b[0]+1],l);a(l).jqGrid("setSelection",b[1][b[0]+1]);a.isFunction(d.afterclickPgButtons)&&\n
+d.afterclickPgButtons.call(l,"next",a("#"+f),b[1][b[0]+1]);u(b[0]+1,b[1].length-1)}e();return false});a("#pData","#"+p+"_2").click(function(){a("#FormError","#"+p).hide();var b=t();if(b[0]!=-1&&b[1][b[0]-1]){a.isFunction(d.onclickPgButtons)&&d.onclickPgButtons.call(l,"prev",a("#"+f),b[1][b[0]]);r(b[1][b[0]-1],l);a(l).jqGrid("setSelection",b[1][b[0]-1]);a.isFunction(d.afterclickPgButtons)&&d.afterclickPgButtons.call(l,"prev",a("#"+f),b[1][b[0]-1]);u(b[0]-1,b[1].length-1)}e();return false})}w=t();u(w[0],\n
+w[1].length-1)}})},delGridRow:function(o,d){d=a.extend({top:0,left:0,width:240,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:"",mtype:"POST",reloadAfterSubmit:!0,beforeShowForm:null,beforeInitData:null,afterShowForm:null,beforeSubmit:null,onclickSubmit:null,afterSubmit:null,jqModal:!0,closeOnEscape:!1,delData:{},delicon:[],cancelicon:[],onClose:null,ajaxDelOptions:{},processing:!1,serializeDelData:null,useDataProxy:!1},a.jgrid.del,d||{});c[a(this)[0].p.id]=d;return this.each(function(){var e=\n
+this;if(e.grid&&o){var n=a.isFunction(c[e.p.id].beforeShowForm),r=a.isFunction(c[e.p.id].afterShowForm),u=a.isFunction(c[e.p.id].beforeInitData)?c[e.p.id].beforeInitData:!1,t=e.p.id,l={},g=!0,f="DelTbl_"+a.jgrid.jqID(t),p,w,b,s,h="DelTbl_"+t,j={themodal:"delmod"+t,modalhead:"delhd"+t,modalcontent:"delcnt"+t,scrollelm:f};jQuery.isArray(o)&&(o=o.join());if(void 0!==a("#"+a.jgrid.jqID(j.themodal))[0]){u&&(g=u.call(e,a("#"+f)),"undefined"==typeof g&&(g=!0));if(!1===g)return;a("#DelData>td","#"+f).text(o);\n
+a("#DelError","#"+f).hide();!0===c[e.p.id].processing&&(c[e.p.id].processing=!1,a("#dData","#"+f).removeClass("ui-state-active"));n&&c[e.p.id].beforeShowForm.call(e,a("#"+f));a.jgrid.viewModal("#"+a.jgrid.jqID(j.themodal),{gbox:"#gbox_"+a.jgrid.jqID(t),jqm:c[e.p.id].jqModal,jqM:!1,overlay:c[e.p.id].overlay,modal:c[e.p.id].modal})}else{var i=isNaN(c[e.p.id].dataheight)?c[e.p.id].dataheight:c[e.p.id].dataheight+"px",h="<div id=\'"+h+"\' class=\'formdata\' style=\'width:100%;overflow:auto;position:relative;height:"+\n
+i+";\'><table class=\'DelTable\'><tbody><tr id=\'DelError\' style=\'display:none\'><td class=\'ui-state-error\'></td></tr>"+("<tr id=\'DelData\' style=\'display:none\'><td >"+o+"</td></tr>"),h=h+(\'<tr><td class="delmsg" style="white-space:pre;">\'+c[e.p.id].msg+"</td></tr><tr><td >&#160;</td></tr>"),h=h+"</tbody></table></div>"+("<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\' class=\'EditTable\' id=\'"+f+"_2\'><tbody><tr><td><hr class=\'ui-widget-content\' style=\'margin:1px\'/></td></tr><tr><td class=\'DelButton EditButton\'>"+\n
+("<a href=\'javascript:void(0)\' id=\'dData\' class=\'fm-button ui-state-default ui-corner-all\'>"+d.bSubmit+"</a>")+"&#160;"+("<a href=\'javascript:void(0)\' id=\'eData\' class=\'fm-button ui-state-default ui-corner-all\'>"+d.bCancel+"</a>")+"</td></tr></tbody></table>");d.gbox="#gbox_"+a.jgrid.jqID(t);a.jgrid.createModal(j,h,d,"#gview_"+a.jgrid.jqID(e.p.id),a("#gview_"+a.jgrid.jqID(e.p.id))[0]);u&&(g=u.call(e,a("#"+f)),"undefined"==typeof g&&(g=!0));if(!1===g)return;a(".fm-button","#"+f+"_2").hover(function(){a(this).addClass("ui-state-hover")},\n
+function(){a(this).removeClass("ui-state-hover")});d.delicon=a.extend([!0,"left","ui-icon-scissors"],c[e.p.id].delicon);d.cancelicon=a.extend([!0,"left","ui-icon-cancel"],c[e.p.id].cancelicon);!0===d.delicon[0]&&a("#dData","#"+f+"_2").addClass("right"==d.delicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class=\'ui-icon "+d.delicon[2]+"\'></span>");!0===d.cancelicon[0]&&a("#eData","#"+f+"_2").addClass("right"==d.cancelicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class=\'ui-icon "+\n
+d.cancelicon[2]+"\'></span>");a("#dData","#"+f+"_2").click(function(){var g=[true,""];l={};var h=a("#DelData>td","#"+f).text();a.isFunction(c[e.p.id].onclickSubmit)&&(l=c[e.p.id].onclickSubmit.call(e,c[e.p.id],h)||{});a.isFunction(c[e.p.id].beforeSubmit)&&(g=c[e.p.id].beforeSubmit.call(e,h));if(g[0]&&!c[e.p.id].processing){c[e.p.id].processing=true;b=e.p.prmNames;p=a.extend({},c[e.p.id].delData,l);s=b.oper;p[s]=b.deloper;w=b.id;h=(""+h).split(",");if(!h.length)return false;for(var i in h)h.hasOwnProperty(i)&&\n
+(h[i]=a.jgrid.stripPref(e.p.idPrefix,h[i]));p[w]=h.join();a(this).addClass("ui-state-active");i=a.extend({url:c[e.p.id].url?c[e.p.id].url:a(e).jqGrid("getGridParam","editurl"),type:c[e.p.id].mtype,data:a.isFunction(c[e.p.id].serializeDelData)?c[e.p.id].serializeDelData.call(e,p):p,complete:function(b,i){if(i!="success"){g[0]=false;g[1]=a.isFunction(c[e.p.id].errorTextFormat)?c[e.p.id].errorTextFormat.call(e,b):i+" Status: \'"+b.statusText+"\'. Error code: "+b.status}else a.isFunction(c[e.p.id].afterSubmit)&&\n
+(g=c[e.p.id].afterSubmit.call(e,b,p));if(g[0]===false){a("#DelError>td","#"+f).html(g[1]);a("#DelError","#"+f).show()}else{if(c[e.p.id].reloadAfterSubmit&&e.p.datatype!="local")a(e).trigger("reloadGrid");else{if(e.p.treeGrid===true)try{a(e).jqGrid("delTreeNode",e.p.idPrefix+h[0])}catch(o){}else for(var l=0;l<h.length;l++)a(e).jqGrid("delRowData",e.p.idPrefix+h[l]);e.p.selrow=null;e.p.selarrrow=[]}a.isFunction(c[e.p.id].afterComplete)&&setTimeout(function(){c[e.p.id].afterComplete.call(e,b,h)},500)}c[e.p.id].processing=\n
+false;a("#dData","#"+f+"_2").removeClass("ui-state-active");g[0]&&a.jgrid.hideModal("#"+a.jgrid.jqID(j.themodal),{gb:"#gbox_"+a.jgrid.jqID(t),jqm:d.jqModal,onClose:c[e.p.id].onClose})}},a.jgrid.ajaxOptions,c[e.p.id].ajaxDelOptions);if(!i.url&&!c[e.p.id].useDataProxy)if(a.isFunction(e.p.dataProxy))c[e.p.id].useDataProxy=true;else{g[0]=false;g[1]=g[1]+(" "+a.jgrid.errors.nourl)}if(g[0])if(c[e.p.id].useDataProxy){i=e.p.dataProxy.call(e,i,"del_"+e.p.id);typeof i=="undefined"&&(i=[true,""]);if(i[0]===\n
+false){g[0]=false;g[1]=i[1]||"Error deleting the selected row!"}else a.jgrid.hideModal("#"+a.jgrid.jqID(j.themodal),{gb:"#gbox_"+a.jgrid.jqID(t),jqm:d.jqModal,onClose:c[e.p.id].onClose})}else a.ajax(i)}if(g[0]===false){a("#DelError>td","#"+f).html(g[1]);a("#DelError","#"+f).show()}return false});a("#eData","#"+f+"_2").click(function(){a.jgrid.hideModal("#"+a.jgrid.jqID(j.themodal),{gb:"#gbox_"+a.jgrid.jqID(t),jqm:c[e.p.id].jqModal,onClose:c[e.p.id].onClose});return false});n&&c[e.p.id].beforeShowForm.call(e,\n
+a("#"+f));a.jgrid.viewModal("#"+a.jgrid.jqID(j.themodal),{gbox:"#gbox_"+a.jgrid.jqID(t),jqm:c[e.p.id].jqModal,overlay:c[e.p.id].overlay,modal:c[e.p.id].modal})}r&&c[e.p.id].afterShowForm.call(e,a("#"+f));!0===c[e.p.id].closeOnEscape&&setTimeout(function(){a(".ui-jqdialog-titlebar-close","#"+a.jgrid.jqID(j.modalhead)).focus()},0)}})},navGrid:function(c,d,e,n,r,u,t){d=a.extend({edit:!0,editicon:"ui-icon-pencil",add:!0,addicon:"ui-icon-plus",del:!0,delicon:"ui-icon-trash",search:!0,searchicon:"ui-icon-search",\n
+refresh:!0,refreshicon:"ui-icon-refresh",refreshstate:"firstpage",view:!1,viewicon:"ui-icon-document",position:"left",closeOnEscape:!0,beforeRefresh:null,afterRefresh:null,cloneToTop:!1,alertwidth:200,alertheight:"auto",alerttop:null,alertleft:null,alertzIndex:null},a.jgrid.nav,d||{});return this.each(function(){if(!this.nav){var l={themodal:"alertmod",modalhead:"alerthd",modalcontent:"alertcnt"},g=this,f;if(g.grid&&"string"==typeof c){void 0===a("#"+l.themodal)[0]&&(!d.alerttop&&!d.alertleft&&("undefined"!=\n
+typeof window.innerWidth?(d.alertleft=window.innerWidth,d.alerttop=window.innerHeight):"undefined"!=typeof document.documentElement&&"undefined"!=typeof document.documentElement.clientWidth&&0!==document.documentElement.clientWidth?(d.alertleft=document.documentElement.clientWidth,d.alerttop=document.documentElement.clientHeight):(d.alertleft=1024,d.alerttop=768),d.alertleft=d.alertleft/2-parseInt(d.alertwidth,10)/2,d.alerttop=d.alerttop/2-25),a.jgrid.createModal(l,"<div>"+d.alerttext+"</div><span tabindex=\'0\'><span tabindex=\'-1\' id=\'jqg_alrt\'></span></span>",\n
+{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqModal:!0,drag:!0,resize:!0,caption:d.alertcap,top:d.alerttop,left:d.alertleft,width:d.alertwidth,height:d.alertheight,closeOnEscape:d.closeOnEscape,zIndex:d.alertzIndex},"","",!0));var p=1;d.cloneToTop&&g.p.toppager&&(p=2);for(var w=0;w<p;w++){var b=a("<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\' class=\'ui-pg-table navtable\' style=\'float:left;table-layout:auto;\'><tbody><tr></tr></tbody></table>"),s,h;0===w?(s=c,h=g.p.id,s==g.p.toppager&&(h+="_top",p=1)):\n
+(s=g.p.toppager,h=g.p.id+"_top");"rtl"==g.p.direction&&a(b).attr("dir","rtl").css("float","right");d.add&&(n=n||{},f=a("<td class=\'ui-pg-button ui-corner-all\'></td>"),a(f).append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.addicon+"\'></span>"+d.addtext+"</div>"),a("tr",b).append(f),a(f,b).attr({title:d.addtitle||"",id:n.id||"add_"+h}).click(function(){a(this).hasClass("ui-state-disabled")||(a.isFunction(d.addfunc)?d.addfunc.call(g):a(g).jqGrid("editGridRow","new",n));return false}).hover(function(){a(this).hasClass("ui-state-disabled")||\n
+a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);d.edit&&(f=a("<td class=\'ui-pg-button ui-corner-all\'></td>"),e=e||{},a(f).append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.editicon+"\'></span>"+d.edittext+"</div>"),a("tr",b).append(f),a(f,b).attr({title:d.edittitle||"",id:e.id||"edit_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){var b=g.p.selrow;if(b)a.isFunction(d.editfunc)?d.editfunc.call(g,b):a(g).jqGrid("editGridRow",b,e);\n
+else{a.jgrid.viewModal("#"+l.themodal,{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqm:true});a("#jqg_alrt").focus()}}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);d.view&&(f=a("<td class=\'ui-pg-button ui-corner-all\'></td>"),t=t||{},a(f).append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.viewicon+"\'></span>"+d.viewtext+"</div>"),a("tr",b).append(f),a(f,b).attr({title:d.viewtitle||"",\n
+id:t.id||"view_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){var b=g.p.selrow;if(b)a.isFunction(d.viewfunc)?d.viewfunc.call(g,b):a(g).jqGrid("viewGridRow",b,t);else{a.jgrid.viewModal("#"+l.themodal,{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqm:true});a("#jqg_alrt").focus()}}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);d.del&&(f=a("<td class=\'ui-pg-button ui-corner-all\'></td>"),\n
+r=r||{},a(f).append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.delicon+"\'></span>"+d.deltext+"</div>"),a("tr",b).append(f),a(f,b).attr({title:d.deltitle||"",id:r.id||"del_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){var b;if(g.p.multiselect){b=g.p.selarrrow;b.length===0&&(b=null)}else b=g.p.selrow;if(b)a.isFunction(d.delfunc)?d.delfunc.call(g,b):a(g).jqGrid("delGridRow",b,r);else{a.jgrid.viewModal("#"+l.themodal,{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqm:true});a("#jqg_alrt").focus()}}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||\n
+a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);(d.add||d.edit||d.del||d.view)&&a("tr",b).append("<td class=\'ui-pg-button ui-state-disabled\' style=\'width:4px;\'><span class=\'ui-separator\'></span></td>");d.search&&(f=a("<td class=\'ui-pg-button ui-corner-all\'></td>"),u=u||{},a(f).append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.searchicon+"\'></span>"+d.searchtext+"</div>"),a("tr",b).append(f),a(f,b).attr({title:d.searchtitle||"",id:u.id||"search_"+\n
+h}).click(function(){a(this).hasClass("ui-state-disabled")||(a.isFunction(d.searchfunc)?d.searchfunc.call(g,u):a(g).jqGrid("searchGrid",u));return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),u.showOnLoad&&!0===u.showOnLoad&&a(f,b).click(),f=null);d.refresh&&(f=a("<td class=\'ui-pg-button ui-corner-all\'></td>"),a(f).append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.refreshicon+"\'></span>"+\n
+d.refreshtext+"</div>"),a("tr",b).append(f),a(f,b).attr({title:d.refreshtitle||"",id:"refresh_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){a.isFunction(d.beforeRefresh)&&d.beforeRefresh.call(g);g.p.search=false;try{var b=g.p.id;g.p.postData.filters="";a("#fbox_"+a.jgrid.jqID(b)).jqFilter("resetFilter");a.isFunction(g.clearToolbar)&&g.clearToolbar.call(g,false)}catch(c){}switch(d.refreshstate){case "firstpage":a(g).trigger("reloadGrid",[{page:1}]);break;case "current":a(g).trigger("reloadGrid",\n
+[{current:true}])}a.isFunction(d.afterRefresh)&&d.afterRefresh.call(g)}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);f=a(".ui-jqgrid").css("font-size")||"11px";a("body").append("<div id=\'testpg2\' class=\'ui-jqgrid ui-widget ui-widget-content\' style=\'font-size:"+f+";visibility:hidden;\' ></div>");f=a(b).clone().appendTo("#testpg2").width();a("#testpg2").remove();a(s+"_"+d.position,\n
+s).append(b);g.p._nvtd&&(f>g.p._nvtd[0]&&(a(s+"_"+d.position,s).width(f),g.p._nvtd[0]=f),g.p._nvtd[1]=f);b=f=f=null;this.nav=!0}}}})},navButtonAdd:function(c,d){d=a.extend({caption:"newButton",title:"",buttonicon:"ui-icon-newwin",onClickButton:null,position:"last",cursor:"pointer"},d||{});return this.each(function(){if(this.grid){"string"===typeof c&&0!==c.indexOf("#")&&(c="#"+a.jgrid.jqID(c));var e=a(".navtable",c)[0],n=this;if(e&&!(d.id&&void 0!==a("#"+a.jgrid.jqID(d.id),e)[0])){var r=a("<td></td>");\n
+"NONE"==d.buttonicon.toString().toUpperCase()?a(r).addClass("ui-pg-button ui-corner-all").append("<div class=\'ui-pg-div\'>"+d.caption+"</div>"):a(r).addClass("ui-pg-button ui-corner-all").append("<div class=\'ui-pg-div\'><span class=\'ui-icon "+d.buttonicon+"\'></span>"+d.caption+"</div>");d.id&&a(r).attr("id",d.id);"first"==d.position?0===e.rows[0].cells.length?a("tr",e).append(r):a("tr td:eq(0)",e).before(r):a("tr",e).append(r);a(r,e).attr("title",d.title||"").click(function(c){a(this).hasClass("ui-state-disabled")||\n
+a.isFunction(d.onClickButton)&&d.onClickButton.call(n,c);return!1}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")})}}})},navSeparatorAdd:function(c,d){d=a.extend({sepclass:"ui-separator",sepcontent:""},d||{});return this.each(function(){if(this.grid){"string"===typeof c&&0!==c.indexOf("#")&&(c="#"+a.jgrid.jqID(c));var e=a(".navtable",c)[0];if(e){var n="<td class=\'ui-pg-button ui-state-disabled\' style=\'width:4px;\'><span class=\'"+\n
+d.sepclass+"\'></span>"+d.sepcontent+"</td>";a("tr",e).append(n)}}})},GridToForm:function(c,d){return this.each(function(){var e=this;if(e.grid){var n=a(e).jqGrid("getRowData",c);if(n)for(var r in n)a("[name="+a.jgrid.jqID(r)+"]",d).is("input:radio")||a("[name="+a.jgrid.jqID(r)+"]",d).is("input:checkbox")?a("[name="+a.jgrid.jqID(r)+"]",d).each(function(){if(a(this).val()==n[r])a(this)[e.p.useProp?"prop":"attr"]("checked",!0);else a(this)[e.p.useProp?"prop":"attr"]("checked",!1)}):a("[name="+a.jgrid.jqID(r)+\n
+"]",d).val(n[r])}})},FormToGrid:function(c,d,e,n){return this.each(function(){if(this.grid){e||(e="set");n||(n="first");var r=a(d).serializeArray(),u={};a.each(r,function(a,c){u[c.name]=c.value});"add"==e?a(this).jqGrid("addRowData",c,u,n):"set"==e&&a(this).jqGrid("setRowData",c,u)}})}})})(jQuery);\n
+(function(a){a.fn.jqFilter=function(d){if("string"===typeof d){var n=a.fn.jqFilter[d];if(!n)throw"jqFilter - No such method: "+d;var u=a.makeArray(arguments).slice(1);return n.apply(this,u)}var o=a.extend(!0,{filter:null,columns:[],onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[{name:"eq",description:"equal",operator:"="},{name:"ne",description:"not equal",operator:"<>"},{name:"lt",description:"less",operator:"<"},{name:"le",description:"less or equal",\n
+operator:"<="},{name:"gt",description:"greater",operator:">"},{name:"ge",description:"greater or equal",operator:">="},{name:"bw",description:"begins with",operator:"LIKE"},{name:"bn",description:"does not begin with",operator:"NOT LIKE"},{name:"in",description:"in",operator:"IN"},{name:"ni",description:"not in",operator:"NOT IN"},{name:"ew",description:"ends with",operator:"LIKE"},{name:"en",description:"does not end with",operator:"NOT LIKE"},{name:"cn",description:"contains",operator:"LIKE"},{name:"nc",\n
+description:"does not contain",operator:"NOT LIKE"},{name:"nu",description:"is null",operator:"IS NULL"},{name:"nn",description:"is not null",operator:"IS NOT NULL"}],numopts:"eq ne lt le gt ge nu nn in ni".split(" "),stropts:"eq ne bw bn ew en cn nc nu nn in ni".split(" "),_gridsopt:[],groupOps:[{op:"AND",text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,direction:"ltr"},a.jgrid.filter,d||{});return this.each(function(){if(!this.filter){this.p=o;if(null===this.p.filter||void 0===this.p.filter)this.p.filter=\n
+{groupOp:this.p.groupOps[0].op,rules:[],groups:[]};var d,n=this.p.columns.length,f,t=/msie/i.test(navigator.userAgent)&&!window.opera;if(this.p._gridsopt.length)for(d=0;d<this.p._gridsopt.length;d++)this.p.ops[d].description=this.p._gridsopt[d];this.p.initFilter=a.extend(!0,{},this.p.filter);if(n){for(d=0;d<n;d++)if(f=this.p.columns[d],f.stype?f.inputtype=f.stype:f.inputtype||(f.inputtype="text"),f.sorttype?f.searchtype=f.sorttype:f.searchtype||(f.searchtype="string"),void 0===f.hidden&&(f.hidden=\n
+!1),f.label||(f.label=f.name),f.index&&(f.name=f.index),f.hasOwnProperty("searchoptions")||(f.searchoptions={}),!f.hasOwnProperty("searchrules"))f.searchrules={};this.p.showQuery&&a(this).append("<table class=\'queryresult ui-widget ui-widget-content\' style=\'display:block;max-width:440px;border:0px none;\' dir=\'"+this.p.direction+"\'><tbody><tr><td class=\'query\'></td></tr></tbody></table>");var r=function(g,k){var b=[!0,""];if(a.isFunction(k.searchrules))b=k.searchrules(g,k);else if(a.jgrid&&a.jgrid.checkValues)try{b=\n
+a.jgrid.checkValues(g,-1,null,k.searchrules,k.label)}catch(c){}b&&(b.length&&!1===b[0])&&(o.error=!b[0],o.errmsg=b[1])};this.onchange=function(){this.p.error=!1;this.p.errmsg="";return a.isFunction(this.p.onChange)?this.p.onChange.call(this,this.p):!1};this.reDraw=function(){a("table.group:first",this).remove();var g=this.createTableForGroup(o.filter,null);a(this).append(g);a.isFunction(this.p.afterRedraw)&&this.p.afterRedraw.call(this,this.p)};this.createTableForGroup=function(g,k){var b=this,c,\n
+e=a("<table class=\'group ui-widget ui-widget-content\' style=\'border:0px none;\'><tbody></tbody></table>"),d="left";"rtl"==this.p.direction&&(d="right",e.attr("dir","rtl"));null===k&&e.append("<tr class=\'error\' style=\'display:none;\'><th colspan=\'5\' class=\'ui-state-error\' align=\'"+d+"\'></th></tr>");var h=a("<tr></tr>");e.append(h);d=a("<th colspan=\'5\' align=\'"+d+"\'></th>");h.append(d);if(!0===this.p.ruleButtons){var i=a("<select class=\'opsel\'></select>");d.append(i);var h="",f;for(c=0;c<o.groupOps.length;c++)f=\n
+g.groupOp===b.p.groupOps[c].op?" selected=\'selected\'":"",h+="<option value=\'"+b.p.groupOps[c].op+"\'"+f+">"+b.p.groupOps[c].text+"</option>";i.append(h).bind("change",function(){g.groupOp=a(i).val();b.onchange()})}h="<span></span>";this.p.groupButton&&(h=a("<input type=\'button\' value=\'+ {}\' title=\'Add subgroup\' class=\'add-group\'/>"),h.bind("click",function(){if(g.groups===void 0)g.groups=[];g.groups.push({groupOp:o.groupOps[0].op,rules:[],groups:[]});b.reDraw();b.onchange();return false}));d.append(h);\n
+if(!0===this.p.ruleButtons){var h=a("<input type=\'button\' value=\'+\' title=\'Add rule\' class=\'add-rule ui-add\'/>"),l;h.bind("click",function(){if(g.rules===void 0)g.rules=[];for(c=0;c<b.p.columns.length;c++){var a=typeof b.p.columns[c].search==="undefined"?true:b.p.columns[c].search,e=b.p.columns[c].hidden===true;if(b.p.columns[c].searchoptions.searchhidden===true&&a||a&&!e){l=b.p.columns[c];break}}g.rules.push({field:l.name,op:(l.searchoptions.sopt?l.searchoptions.sopt:b.p.sopt?b.p.sopt:l.searchtype===\n
+"string"?b.p.stropts:b.p.numopts)[0],data:""});b.reDraw();return false});d.append(h)}null!==k&&(h=a("<input type=\'button\' value=\'-\' title=\'Delete group\' class=\'delete-group\'/>"),d.append(h),h.bind("click",function(){for(c=0;c<k.groups.length;c++)if(k.groups[c]===g){k.groups.splice(c,1);break}b.reDraw();b.onchange();return false}));if(void 0!==g.groups)for(c=0;c<g.groups.length;c++)d=a("<tr></tr>"),e.append(d),h=a("<td class=\'first\'></td>"),d.append(h),h=a("<td colspan=\'4\'></td>"),h.append(this.createTableForGroup(g.groups[c],\n
+g)),d.append(h);void 0===g.groupOp&&(g.groupOp=b.p.groupOps[0].op);if(void 0!==g.rules)for(c=0;c<g.rules.length;c++)e.append(this.createTableRowForRule(g.rules[c],g));return e};this.createTableRowForRule=function(g,d){var b=this,c=a("<tr></tr>"),e,f,h,i,j="",l;c.append("<td class=\'first\'></td>");var m=a("<td class=\'columns\'></td>");c.append(m);var n=a("<select></select>"),p,q=[];m.append(n);n.bind("change",function(){g.field=a(n).val();h=a(this).parents("tr:first");for(e=0;e<b.p.columns.length;e++)if(b.p.columns[e].name===\n
+g.field){i=b.p.columns[e];break}if(i){i.searchoptions.id=a.jgrid.randId();t&&"text"===i.inputtype&&!i.searchoptions.size&&(i.searchoptions.size=10);var c=a.jgrid.createEl(i.inputtype,i.searchoptions,"",!0,b.p.ajaxSelectOptions,!0);a(c).addClass("input-elm");f=i.searchoptions.sopt?i.searchoptions.sopt:b.p.sopt?b.p.sopt:"string"===i.searchtype?b.p.stropts:b.p.numopts;var d="",k=0;q=[];a.each(b.p.ops,function(){q.push(this.name)});for(e=0;e<f.length;e++)p=a.inArray(f[e],q),-1!==p&&(0===k&&(g.op=b.p.ops[p].name),\n
+d+="<option value=\'"+b.p.ops[p].name+"\'>"+b.p.ops[p].description+"</option>",k++);a(".selectopts",h).empty().append(d);a(".selectopts",h)[0].selectedIndex=0;a.browser.msie&&9>a.browser.version&&(d=parseInt(a("select.selectopts",h)[0].offsetWidth)+1,a(".selectopts",h).width(d),a(".selectopts",h).css("width","auto"));a(".data",h).empty().append(c);a(".input-elm",h).bind("change",function(c){var d=a(this).hasClass("ui-autocomplete-input")?200:0;setTimeout(function(){var d=c.target;g.data=d.nodeName.toUpperCase()===\n
+"SPAN"&&i.searchoptions&&a.isFunction(i.searchoptions.custom_value)?i.searchoptions.custom_value(a(d).children(".customelement:first"),"get"):d.value;b.onchange()},d)});setTimeout(function(){g.data=a(c).val();b.onchange()},0)}});for(e=m=0;e<b.p.columns.length;e++){l="undefined"===typeof b.p.columns[e].search?!0:b.p.columns[e].search;var r=!0===b.p.columns[e].hidden;if(!0===b.p.columns[e].searchoptions.searchhidden&&l||l&&!r)l="",g.field===b.p.columns[e].name&&(l=" selected=\'selected\'",m=e),j+="<option value=\'"+\n
+b.p.columns[e].name+"\'"+l+">"+b.p.columns[e].label+"</option>"}n.append(j);j=a("<td class=\'operators\'></td>");c.append(j);i=o.columns[m];i.searchoptions.id=a.jgrid.randId();t&&"text"===i.inputtype&&!i.searchoptions.size&&(i.searchoptions.size=10);var m=a.jgrid.createEl(i.inputtype,i.searchoptions,g.data,!0,b.p.ajaxSelectOptions,!0),s=a("<select class=\'selectopts\'></select>");j.append(s);s.bind("change",function(){g.op=a(s).val();h=a(this).parents("tr:first");var c=a(".input-elm",h)[0];if(g.op==="nu"||\n
+g.op==="nn"){g.data="";c.value="";c.setAttribute("readonly","true");c.setAttribute("disabled","true")}else{c.removeAttribute("readonly");c.removeAttribute("disabled")}b.onchange()});f=i.searchoptions.sopt?i.searchoptions.sopt:b.p.sopt?b.p.sopt:"string"===i.searchtype?o.stropts:b.p.numopts;j="";a.each(b.p.ops,function(){q.push(this.name)});for(e=0;e<f.length;e++)p=a.inArray(f[e],q),-1!==p&&(l=g.op===b.p.ops[p].name?" selected=\'selected\'":"",j+="<option value=\'"+b.p.ops[p].name+"\'"+l+">"+b.p.ops[p].description+\n
+"</option>");s.append(j);j=a("<td class=\'data\'></td>");c.append(j);j.append(m);a(m).addClass("input-elm").bind("change",function(){g.data=i.inputtype==="custom"?i.searchoptions.custom_value(a(this).children(".customelement:first"),"get"):a(this).val();b.onchange()});j=a("<td></td>");c.append(j);!0===this.p.ruleButtons&&(m=a("<input type=\'button\' value=\'-\' title=\'Delete rule\' class=\'delete-rule ui-del\'/>"),j.append(m),m.bind("click",function(){for(e=0;e<d.rules.length;e++)if(d.rules[e]===g){d.rules.splice(e,\n
+1);break}b.reDraw();b.onchange();return false}));return c};this.getStringForGroup=function(a){var d="(",b;if(void 0!==a.groups)for(b=0;b<a.groups.length;b++){1<d.length&&(d+=" "+a.groupOp+" ");try{d+=this.getStringForGroup(a.groups[b])}catch(c){alert(c)}}if(void 0!==a.rules)try{for(b=0;b<a.rules.length;b++)1<d.length&&(d+=" "+a.groupOp+" "),d+=this.getStringForRule(a.rules[b])}catch(e){alert(e)}d+=")";return"()"===d?"":d};this.getStringForRule=function(d){var f="",b="",c,e;for(c=0;c<this.p.ops.length;c++)if(this.p.ops[c].name===\n
+d.op){f=this.p.ops[c].operator;b=this.p.ops[c].name;break}for(c=0;c<this.p.columns.length;c++)if(this.p.columns[c].name===d.field){e=this.p.columns[c];break}c=d.data;if("bw"===b||"bn"===b)c+="%";if("ew"===b||"en"===b)c="%"+c;if("cn"===b||"nc"===b)c="%"+c+"%";if("in"===b||"ni"===b)c=" ("+c+")";o.errorcheck&&r(d.data,e);return-1!==a.inArray(e.searchtype,["int","integer","float","number","currency"])||"nn"===b||"nu"===b?d.field+" "+f+" "+c:d.field+" "+f+\' "\'+c+\'"\'};this.resetFilter=function(){this.p.filter=\n
+a.extend(!0,{},this.p.initFilter);this.reDraw();this.onchange()};this.hideError=function(){a("th.ui-state-error",this).html("");a("tr.error",this).hide()};this.showError=function(){a("th.ui-state-error",this).html(this.p.errmsg);a("tr.error",this).show()};this.toUserFriendlyString=function(){return this.getStringForGroup(o.filter)};this.toString=function(){function a(b){var c="(",e;if(void 0!==b.groups)for(e=0;e<b.groups.length;e++)1<c.length&&(c="OR"===b.groupOp?c+" || ":c+" && "),c+=a(b.groups[e]);\n
+if(void 0!==b.rules)for(e=0;e<b.rules.length;e++){1<c.length&&(c="OR"===b.groupOp?c+" || ":c+" && ");var f=b.rules[e];if(d.p.errorcheck){for(var h=void 0,i=void 0,h=0;h<d.p.columns.length;h++)if(d.p.columns[h].name===f.field){i=d.p.columns[h];break}i&&r(f.data,i)}c+=f.op+"(item."+f.field+",\'"+f.data+"\')"}c+=")";return"()"===c?"":c}var d=this;return a(this.p.filter)};this.reDraw();if(this.p.showQuery)this.onchange();this.filter=!0}}})};a.extend(a.fn.jqFilter,{toSQLString:function(){var a="";this.each(function(){a=\n
+this.toUserFriendlyString()});return a},filterData:function(){var a;this.each(function(){a=this.p.filter});return a},getParameter:function(a){return void 0!==a&&this.p.hasOwnProperty(a)?this.p[a]:this.p},resetFilter:function(){return this.each(function(){this.resetFilter()})},addFilter:function(a){"string"===typeof a&&(a=jQuery.jgrid.parse(a));this.each(function(){this.p.filter=a;this.reDraw();this.onchange()})}})})(jQuery);\n
+(function(a){a.jgrid.inlineEdit=a.jgrid.inlineEdit||{};a.jgrid.extend({editRow:function(c,d,b,k,g,l,p,h,e){var j={},f=a.makeArray(arguments).slice(1);if("object"===a.type(f[0]))j=f[0];else if("undefined"!==typeof d&&(j.keys=d),a.isFunction(b)&&(j.oneditfunc=b),a.isFunction(k)&&(j.successfunc=k),"undefined"!==typeof g&&(j.url=g),"undefined"!==typeof l&&(j.extraparam=l),a.isFunction(p)&&(j.aftersavefunc=p),a.isFunction(h)&&(j.errorfunc=h),a.isFunction(e))j.afterrestorefunc=e;j=a.extend(!0,{keys:!1,\n
+oneditfunc:null,successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST"},a.jgrid.inlineEdit,j);return this.each(function(){var e=this,d,b,f,g=0,h=null,l={},m,n;e.grid&&(m=a(e).jqGrid("getInd",c,!0),!1!==m&&(f=a(m).attr("editable")||"0","0"==f&&!a(m).hasClass("not-editable-row")&&(n=e.p.colModel,a(\'td[role="gridcell"]\',m).each(function(f){d=n[f].name;var j=!0===e.p.treeGrid&&d==e.p.ExpandColumn;if(j)b=a("span:first",this).html();\n
+else try{b=a.unformat.call(e,this,{rowId:c,colModel:n[f]},f)}catch(m){b=n[f].edittype&&"textarea"==n[f].edittype?a(this).text():a(this).html()}if("cb"!=d&&("subgrid"!=d&&"rn"!=d)&&(e.p.autoencode&&(b=a.jgrid.htmlDecode(b)),l[d]=b,!0===n[f].editable)){null===h&&(h=f);j?a("span:first",this).html(""):a(this).html("");var k=a.extend({},n[f].editoptions||{},{id:c+"_"+d,name:d});n[f].edittype||(n[f].edittype="text");if("&nbsp;"==b||"&#160;"==b||1==b.length&&160==b.charCodeAt(0))b="";k=a.jgrid.createEl.call(e,\n
+n[f].edittype,k,b,!0,a.extend({},a.jgrid.ajaxOptions,e.p.ajaxSelectOptions||{}));a(k).addClass("editable");j?a("span:first",this).append(k):a(this).append(k);"select"==n[f].edittype&&("undefined"!==typeof n[f].editoptions&&!0===n[f].editoptions.multiple&&"undefined"===typeof n[f].editoptions.dataUrl&&a.browser.msie)&&a(k).width(a(k).width());g++}}),0<g&&(l.id=c,e.p.savedRow.push(l),a(m).attr("editable","1"),a("td:eq("+h+") input",m).focus(),!0===j.keys&&a(m).bind("keydown",function(f){if(27===f.keyCode){a(e).jqGrid("restoreRow",\n
+c,j.afterrestorefunc);if(e.p._inlinenav)try{a(e).jqGrid("showAddEditButtons")}catch(b){}return!1}if(13===f.keyCode){if("TEXTAREA"==f.target.tagName)return!0;if(a(e).jqGrid("saveRow",c,j)&&e.p._inlinenav)try{a(e).jqGrid("showAddEditButtons")}catch(d){}return!1}}),a(e).triggerHandler("jqGridInlineEditRow",[c,j]),a.isFunction(j.oneditfunc)&&j.oneditfunc.call(e,c)))))})},saveRow:function(c,d,b,k,g,l,p){var h=a.makeArray(arguments).slice(1),e={};if("object"===a.type(h[0]))e=h[0];else if(a.isFunction(d)&&\n
+(e.successfunc=d),"undefined"!==typeof b&&(e.url=b),"undefined"!==typeof k&&(e.extraparam=k),a.isFunction(g)&&(e.aftersavefunc=g),a.isFunction(l)&&(e.errorfunc=l),a.isFunction(p))e.afterrestorefunc=p;var e=a.extend(!0,{successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST"},a.jgrid.inlineEdit,e),j=!1,f=this[0],o,i={},u={},r={},t,s,q;if(!f.grid)return j;q=a(f).jqGrid("getInd",c,!0);if(!1===q)return j;h=a(q).attr("editable");\n
+e.url=e.url?e.url:f.p.editurl;if("1"===h){var m;a(\'td[role="gridcell"]\',q).each(function(c){m=f.p.colModel[c];o=m.name;if("cb"!=o&&"subgrid"!=o&&!0===m.editable&&"rn"!=o&&!a(this).hasClass("not-editable-cell")){switch(m.edittype){case "checkbox":var b=["Yes","No"];m.editoptions&&(b=m.editoptions.value.split(":"));i[o]=a("input",this).is(":checked")?b[0]:b[1];break;case "text":case "password":case "textarea":case "button":i[o]=a("input, textarea",this).val();break;case "select":if(m.editoptions.multiple){var b=\n
+a("select",this),d=[];i[o]=a(b).val();i[o]=i[o]?i[o].join(","):"";a("select option:selected",this).each(function(e,f){d[e]=a(f).text()});u[o]=d.join(",")}else i[o]=a("select option:selected",this).val(),u[o]=a("select option:selected",this).text();m.formatter&&"select"==m.formatter&&(u={});break;case "custom":try{if(m.editoptions&&a.isFunction(m.editoptions.custom_value)){if(i[o]=m.editoptions.custom_value.call(f,a(".customelement",this),"get"),void 0===i[o])throw"e2";}else throw"e1";}catch(g){"e1"==\n
+g&&a.jgrid.info_dialog(a.jgrid.errors.errcap,"function \'custom_value\' "+a.jgrid.edit.msg.nodefined,a.jgrid.edit.bClose),"e2"==g?a.jgrid.info_dialog(a.jgrid.errors.errcap,"function \'custom_value\' "+a.jgrid.edit.msg.novalue,a.jgrid.edit.bClose):a.jgrid.info_dialog(a.jgrid.errors.errcap,g.message,a.jgrid.edit.bClose)}}s=a.jgrid.checkValues(i[o],c,f);if(!1===s[0])return s[1]=i[o]+" "+s[1],!1;f.p.autoencode&&(i[o]=a.jgrid.htmlEncode(i[o]));"clientArray"!==e.url&&m.editoptions&&!0===m.editoptions.NullIfEmpty&&\n
+""===i[o]&&(r[o]="null")}});if(!1===s[0]){try{var n=a.jgrid.findPos(a("#"+a.jgrid.jqID(c),f.grid.bDiv)[0]);a.jgrid.info_dialog(a.jgrid.errors.errcap,s[1],a.jgrid.edit.bClose,{left:n[0],top:n[1]})}catch(w){alert(s[1])}return j}var v,h=f.p.prmNames;v=h.oper;n=h.id;i&&(i[v]=h.editoper,i[n]=c,"undefined"==typeof f.p.inlineData&&(f.p.inlineData={}),i=a.extend({},i,f.p.inlineData,e.extraparam));if("clientArray"==e.url){i=a.extend({},i,u);f.p.autoencode&&a.each(i,function(e,f){i[e]=a.jgrid.htmlDecode(f)});\n
+n=a(f).jqGrid("setRowData",c,i);a(q).attr("editable","0");for(h=0;h<f.p.savedRow.length;h++)if(f.p.savedRow[h].id==c){t=h;break}0<=t&&f.p.savedRow.splice(t,1);a(f).triggerHandler("jqGridInlineAfterSaveRow",[c,n,i,e]);a.isFunction(e.aftersavefunc)&&e.aftersavefunc.call(f,c,n,e);j=!0;a(q).unbind("keydown")}else a("#lui_"+a.jgrid.jqID(f.p.id)).show(),r=a.extend({},i,r),r[n]=a.jgrid.stripPref(f.p.idPrefix,r[n]),a.ajax(a.extend({url:e.url,data:a.isFunction(f.p.serializeRowData)?f.p.serializeRowData.call(f,\n
+r):r,type:e.mtype,async:!1,complete:function(b,d){a("#lui_"+a.jgrid.jqID(f.p.id)).hide();if(d==="success"){var g=true,h;h=a(f).triggerHandler("jqGridInlineSuccessSaveRow",[b,c,e]);a.isArray(h)||(h=[true,i]);h[0]&&a.isFunction(e.successfunc)&&(h=e.successfunc.call(f,b));if(a.isArray(h)){g=h[0];i=h[1]?h[1]:i}else g=h;if(g===true){f.p.autoencode&&a.each(i,function(b,e){i[b]=a.jgrid.htmlDecode(e)});i=a.extend({},i,u);a(f).jqGrid("setRowData",c,i);a(q).attr("editable","0");for(g=0;
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+g<f.p.savedRow.length;g++)if(f.p.savedRow[g].id==\n
+c){t=g;break}t>=0&&f.p.savedRow.splice(t,1);a(f).triggerHandler("jqGridInlineAfterSaveRow",[c,b,i,e]);a.isFunction(e.aftersavefunc)&&e.aftersavefunc.call(f,c,b);j=true;a(q).unbind("keydown")}else{a(f).triggerHandler("jqGridInlineErrorSaveRow",[c,b,d,null,e]);a.isFunction(e.errorfunc)&&e.errorfunc.call(f,c,b,d,null);e.restoreAfterError===true&&a(f).jqGrid("restoreRow",c,e.afterrestorefunc)}}},error:function(b,d,g){a("#lui_"+a.jgrid.jqID(f.p.id)).hide();a(f).triggerHandler("jqGridInlineErrorSaveRow",\n
+[c,b,d,g,e]);if(a.isFunction(e.errorfunc))e.errorfunc.call(f,c,b,d,g);else{b=b.responseText||b.statusText;try{a.jgrid.info_dialog(a.jgrid.errors.errcap,\'<div class="ui-state-error">\'+b+"</div>",a.jgrid.edit.bClose,{buttonalign:"right"})}catch(h){alert(b)}}e.restoreAfterError===true&&a(f).jqGrid("restoreRow",c,e.afterrestorefunc)}},a.jgrid.ajaxOptions,f.p.ajaxRowOptions||{}))}return j},restoreRow:function(c,d){var b=a.makeArray(arguments).slice(1),k={};"object"===a.type(b[0])?k=b[0]:a.isFunction(d)&&\n
+(k.afterrestorefunc=d);k=a.extend(!0,a.jgrid.inlineEdit,k);return this.each(function(){var b=this,d,p,h={};if(b.grid){p=a(b).jqGrid("getInd",c,true);if(p!==false){for(var e=0;e<b.p.savedRow.length;e++)if(b.p.savedRow[e].id==c){d=e;break}if(d>=0){if(a.isFunction(a.fn.datepicker))try{a("input.hasDatepicker","#"+a.jgrid.jqID(p.id)).datepicker("hide")}catch(j){}a.each(b.p.colModel,function(){this.editable===true&&this.name in b.p.savedRow[d]&&(h[this.name]=b.p.savedRow[d][this.name])});a(b).jqGrid("setRowData",\n
+c,h);a(p).attr("editable","0").unbind("keydown");b.p.savedRow.splice(d,1);a("#"+a.jgrid.jqID(c),"#"+a.jgrid.jqID(b.p.id)).hasClass("jqgrid-new-row")&&setTimeout(function(){a(b).jqGrid("delRowData",c)},0)}a(b).triggerHandler("jqGridInlineAfterRestoreRow",[c]);a.isFunction(k.afterrestorefunc)&&k.afterrestorefunc.call(b,c)}}})},addRow:function(c){c=a.extend(!0,{rowID:"new_row",initdata:{},position:"first",useDefValues:!0,useFormatter:!1,addRowParams:{extraparam:{}}},c||{});return this.each(function(){if(this.grid){var d=\n
+this;!0===c.useDefValues&&a(d.p.colModel).each(function(){if(this.editoptions&&this.editoptions.defaultValue){var b=this.editoptions.defaultValue,b=a.isFunction(b)?b.call(d):b;c.initdata[this.name]=b}});a(d).jqGrid("addRowData",c.rowID,c.initdata,c.position);c.rowID=d.p.idPrefix+c.rowID;a("#"+a.jgrid.jqID(c.rowID),"#"+a.jgrid.jqID(d.p.id)).addClass("jqgrid-new-row");if(c.useFormatter)a("#"+a.jgrid.jqID(c.rowID)+" .ui-inline-edit","#"+a.jgrid.jqID(d.p.id)).click();else{var b=d.p.prmNames;c.addRowParams.extraparam[b.oper]=\n
+b.addoper;a(d).jqGrid("editRow",c.rowID,c.addRowParams);a(d).jqGrid("setSelection",c.rowID)}}})},inlineNav:function(c,d){d=a.extend({edit:!0,editicon:"ui-icon-pencil",add:!0,addicon:"ui-icon-plus",save:!0,saveicon:"ui-icon-disk",cancel:!0,cancelicon:"ui-icon-cancel",addParams:{useFormatter:!1,rowID:"new_row"},editParams:{},restoreAfterSelect:!0},a.jgrid.nav,d||{});return this.each(function(){if(this.grid){var b=this,k,g=a.jgrid.jqID(b.p.id);b.p._inlinenav=!0;if(!0===d.addParams.useFormatter){var l=\n
+b.p.colModel,p;for(p=0;p<l.length;p++)if(l[p].formatter&&"actions"===l[p].formatter){l[p].formatoptions&&(l=a.extend({keys:!1,onEdit:null,onSuccess:null,afterSave:null,onError:null,afterRestore:null,extraparam:{},url:null},l[p].formatoptions),d.addParams.addRowParams={keys:l.keys,oneditfunc:l.onEdit,successfunc:l.onSuccess,url:l.url,extraparam:l.extraparam,aftersavefunc:l.afterSavef,errorfunc:l.onError,afterrestorefunc:l.afterRestore});break}}d.add&&a(b).jqGrid("navButtonAdd",c,{caption:d.addtext,\n
+title:d.addtitle,buttonicon:d.addicon,id:b.p.id+"_iladd",onClickButton:function(){a(b).jqGrid("addRow",d.addParams);d.addParams.useFormatter||(a("#"+g+"_ilsave").removeClass("ui-state-disabled"),a("#"+g+"_ilcancel").removeClass("ui-state-disabled"),a("#"+g+"_iladd").addClass("ui-state-disabled"),a("#"+g+"_iledit").addClass("ui-state-disabled"))}});d.edit&&a(b).jqGrid("navButtonAdd",c,{caption:d.edittext,title:d.edittitle,buttonicon:d.editicon,id:b.p.id+"_iledit",onClickButton:function(){var c=a(b).jqGrid("getGridParam",\n
+"selrow");c?(a(b).jqGrid("editRow",c,d.editParams),a("#"+g+"_ilsave").removeClass("ui-state-disabled"),a("#"+g+"_ilcancel").removeClass("ui-state-disabled"),a("#"+g+"_iladd").addClass("ui-state-disabled"),a("#"+g+"_iledit").addClass("ui-state-disabled")):(a.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+g,jqm:!0}),a("#jqg_alrt").focus())}});d.save&&(a(b).jqGrid("navButtonAdd",c,{caption:d.savetext||"",title:d.savetitle||"Save row",buttonicon:d.saveicon,id:b.p.id+"_ilsave",onClickButton:function(){var c=\n
+b.p.savedRow[0].id;if(c){var e=b.p.prmNames,j=e.oper;d.editParams.extraparam||(d.editParams.extraparam={});d.editParams.extraparam[j]=a("#"+a.jgrid.jqID(c),"#"+g).hasClass("jqgrid-new-row")?e.addoper:e.editoper;a(b).jqGrid("saveRow",c,d.editParams)&&a(b).jqGrid("showAddEditButtons")}else a.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+g,jqm:!0}),a("#jqg_alrt").focus()}}),a("#"+g+"_ilsave").addClass("ui-state-disabled"));d.cancel&&(a(b).jqGrid("navButtonAdd",c,{caption:d.canceltext||"",title:d.canceltitle||\n
+"Cancel row editing",buttonicon:d.cancelicon,id:b.p.id+"_ilcancel",onClickButton:function(){var c=b.p.savedRow[0].id;if(c){a(b).jqGrid("restoreRow",c,d.editParams);a(b).jqGrid("showAddEditButtons")}else{a.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+g,jqm:true});a("#jqg_alrt").focus()}}}),a("#"+g+"_ilcancel").addClass("ui-state-disabled"));!0===d.restoreAfterSelect&&(k=a.isFunction(b.p.beforeSelectRow)?b.p.beforeSelectRow:!1,b.p.beforeSelectRow=function(c,e){var g=true;if(b.p.savedRow.length>0&&b.p._inlinenav===\n
+true&&c!==b.p.selrow&&b.p.selrow!==null){b.p.selrow==d.addParams.rowID?a(b).jqGrid("delRowData",b.p.selrow):a(b).jqGrid("restoreRow",b.p.selrow,d.editParams);a(b).jqGrid("showAddEditButtons")}k&&(g=k.call(b,c,e));return g})}})},showAddEditButtons:function(){return this.each(function(){if(this.grid){var c=a.jgrid.jqID(this.p.id);a("#"+c+"_ilsave").addClass("ui-state-disabled");a("#"+c+"_ilcancel").addClass("ui-state-disabled");a("#"+c+"_iladd").removeClass("ui-state-disabled");a("#"+c+"_iledit").removeClass("ui-state-disabled")}})}})})(jQuery);\n
+(function(b){b.jgrid.extend({editCell:function(d,f,a){return this.each(function(){var c=this,g,e,h,i;if(c.grid&&!0===c.p.cellEdit){f=parseInt(f,10);c.p.selrow=c.rows[d].id;c.p.knv||b(c).jqGrid("GridNav");if(0<c.p.savedRow.length){if(!0===a&&d==c.p.iRow&&f==c.p.iCol)return;b(c).jqGrid("saveCell",c.p.savedRow[0].id,c.p.savedRow[0].ic)}else window.setTimeout(function(){b("#"+b.jgrid.jqID(c.p.knv)).attr("tabindex","-1").focus()},0);i=c.p.colModel[f];g=i.name;if(!("subgrid"==g||"cb"==g||"rn"==g)){h=b("td:eq("+\n
+f+")",c.rows[d]);if(!0===i.editable&&!0===a&&!h.hasClass("not-editable-cell")){0<=parseInt(c.p.iCol,10)&&0<=parseInt(c.p.iRow,10)&&(b("td:eq("+c.p.iCol+")",c.rows[c.p.iRow]).removeClass("edit-cell ui-state-highlight"),b(c.rows[c.p.iRow]).removeClass("selected-row ui-state-hover"));b(h).addClass("edit-cell ui-state-highlight");b(c.rows[d]).addClass("selected-row ui-state-hover");try{e=b.unformat.call(c,h,{rowId:c.rows[d].id,colModel:i},f)}catch(k){e=i.edittype&&"textarea"==i.edittype?b(h).text():b(h).html()}c.p.autoencode&&\n
+(e=b.jgrid.htmlDecode(e));i.edittype||(i.edittype="text");c.p.savedRow.push({id:d,ic:f,name:g,v:e});if("&nbsp;"===e||"&#160;"===e||1===e.length&&160===e.charCodeAt(0))e="";if(b.isFunction(c.p.formatCell)){var j=c.p.formatCell.call(c,c.rows[d].id,g,e,d,f);void 0!==j&&(e=j)}var j=b.extend({},i.editoptions||{},{id:d+"_"+g,name:g}),n=b.jgrid.createEl.call(c,i.edittype,j,e,!0,b.extend({},b.jgrid.ajaxOptions,c.p.ajaxSelectOptions||{}));b(c).triggerHandler("jqGridBeforeEditCell",[c.rows[d].id,g,e,d,f]);\n
+b.isFunction(c.p.beforeEditCell)&&c.p.beforeEditCell.call(c,c.rows[d].id,g,e,d,f);b(h).html("").append(n).attr("tabindex","0");window.setTimeout(function(){b(n).focus()},0);b("input, select, textarea",h).bind("keydown",function(a){a.keyCode===27&&(b("input.hasDatepicker",h).length>0?b(".ui-datepicker").is(":hidden")?b(c).jqGrid("restoreCell",d,f):b("input.hasDatepicker",h).datepicker("hide"):b(c).jqGrid("restoreCell",d,f));if(a.keyCode===13){b(c).jqGrid("saveCell",d,f);return false}if(a.keyCode===\n
+9){if(c.grid.hDiv.loading)return false;a.shiftKey?b(c).jqGrid("prevCell",d,f):b(c).jqGrid("nextCell",d,f)}a.stopPropagation()});b(c).triggerHandler("jqGridAfterEditCell",[c.rows[d].id,g,e,d,f]);b.isFunction(c.p.afterEditCell)&&c.p.afterEditCell.call(c,c.rows[d].id,g,e,d,f)}else 0<=parseInt(c.p.iCol,10)&&0<=parseInt(c.p.iRow,10)&&(b("td:eq("+c.p.iCol+")",c.rows[c.p.iRow]).removeClass("edit-cell ui-state-highlight"),b(c.rows[c.p.iRow]).removeClass("selected-row ui-state-hover")),h.addClass("edit-cell ui-state-highlight"),\n
+b(c.rows[d]).addClass("selected-row ui-state-hover"),e=h.html().replace(/\\&#160\\;/ig,""),b(c).triggerHandler("jqGridSelectCell",[c.rows[d].id,g,e,d,f]),b.isFunction(c.p.onSelectCell)&&c.p.onSelectCell.call(c,c.rows[d].id,g,e,d,f);c.p.iCol=f;c.p.iRow=d}}})},saveCell:function(d,f){return this.each(function(){var a=this,c;if(a.grid&&!0===a.p.cellEdit){c=1<=a.p.savedRow.length?0:null;if(null!==c){var g=b("td:eq("+f+")",a.rows[d]),e,h,i=a.p.colModel[f],k=i.name,j=b.jgrid.jqID(k);switch(i.edittype){case "select":if(i.editoptions.multiple){var j=\n
+b("#"+d+"_"+j,a.rows[d]),n=[];(e=b(j).val())?e.join(","):e="";b("option:selected",j).each(function(a,c){n[a]=b(c).text()});h=n.join(",")}else e=b("#"+d+"_"+j+" option:selected",a.rows[d]).val(),h=b("#"+d+"_"+j+" option:selected",a.rows[d]).text();i.formatter&&(h=e);break;case "checkbox":var l=["Yes","No"];i.editoptions&&(l=i.editoptions.value.split(":"));h=e=b("#"+d+"_"+j,a.rows[d]).is(":checked")?l[0]:l[1];break;case "password":case "text":case "textarea":case "button":h=e=b("#"+d+"_"+j,a.rows[d]).val();\n
+break;case "custom":try{if(i.editoptions&&b.isFunction(i.editoptions.custom_value)){e=i.editoptions.custom_value.call(a,b(".customelement",g),"get");if(void 0===e)throw"e2";h=e}else throw"e1";}catch(o){"e1"==o&&b.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function \'custom_value\' "+b.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose),"e2"==o?b.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function \'custom_value\' "+b.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose):b.jgrid.info_dialog(jQuery.jgrid.errors.errcap,\n
+o.message,jQuery.jgrid.edit.bClose)}}if(h!==a.p.savedRow[c].v){if(c=b(a).triggerHandler("jqGridBeforeSaveCell",[a.rows[d].id,k,e,d,f]))h=e=c;if(b.isFunction(a.p.beforeSaveCell)&&(c=a.p.beforeSaveCell.call(a,a.rows[d].id,k,e,d,f)))h=e=c;var p=b.jgrid.checkValues(e,f,a);if(!0===p[0]){c=b(a).triggerHandler("jqGridBeforeSubmitCell",[a.rows[d].id,k,e,d,f])||{};b.isFunction(a.p.beforeSubmitCell)&&((c=a.p.beforeSubmitCell.call(a,a.rows[d].id,k,e,d,f))||(c={}));0<b("input.hasDatepicker",g).length&&b("input.hasDatepicker",\n
+g).datepicker("hide");if("remote"==a.p.cellsubmit)if(a.p.cellurl){var m={};a.p.autoencode&&(e=b.jgrid.htmlEncode(e));m[k]=e;l=a.p.prmNames;i=l.id;j=l.oper;m[i]=b.jgrid.stripPref(a.p.idPrefix,a.rows[d].id);m[j]=l.editoper;m=b.extend(c,m);b("#lui_"+b.jgrid.jqID(a.p.id)).show();a.grid.hDiv.loading=!0;b.ajax(b.extend({url:a.p.cellurl,data:b.isFunction(a.p.serializeCellData)?a.p.serializeCellData.call(a,m):m,type:"POST",complete:function(c,i){b("#lui_"+a.p.id).hide();a.grid.hDiv.loading=false;if(i=="success"){var j=\n
+b(a).triggerHandler("jqGridAfterSubmitCell",[a,c,m.id,k,e,d,f])||[true,""];j[0]===true&&b.isFunction(a.p.afterSubmitCell)&&(j=a.p.afterSubmitCell.call(a,c,m.id,k,e,d,f));if(j[0]===true){b(g).empty();b(a).jqGrid("setCell",a.rows[d].id,f,h,false,false,true);b(g).addClass("dirty-cell");b(a.rows[d]).addClass("edited");b(a).triggerHandler("jqGridAfterSaveCell",[a.rows[d].id,k,e,d,f]);b.isFunction(a.p.afterSaveCell)&&a.p.afterSaveCell.call(a,a.rows[d].id,k,e,d,f);a.p.savedRow.splice(0,1)}else{b.jgrid.info_dialog(b.jgrid.errors.errcap,\n
+j[1],b.jgrid.edit.bClose);b(a).jqGrid("restoreCell",d,f)}}},error:function(c,e,h){b("#lui_"+b.jgrid.jqID(a.p.id)).hide();a.grid.hDiv.loading=false;b(a).triggerHandler("jqGridErrorCell",[c,e,h]);b.isFunction(a.p.errorCell)?a.p.errorCell.call(a,c,e,h):b.jgrid.info_dialog(b.jgrid.errors.errcap,c.status+" : "+c.statusText+"<br/>"+e,b.jgrid.edit.bClose);b(a).jqGrid("restoreCell",d,f)}},b.jgrid.ajaxOptions,a.p.ajaxCellOptions||{}))}else try{b.jgrid.info_dialog(b.jgrid.errors.errcap,b.jgrid.errors.nourl,\n
+b.jgrid.edit.bClose),b(a).jqGrid("restoreCell",d,f)}catch(q){}"clientArray"==a.p.cellsubmit&&(b(g).empty(),b(a).jqGrid("setCell",a.rows[d].id,f,h,!1,!1,!0),b(g).addClass("dirty-cell"),b(a.rows[d]).addClass("edited"),b(a).triggerHandler("jqGridAfterSaveCell",[a.rows[d].id,k,e,d,f]),b.isFunction(a.p.afterSaveCell)&&a.p.afterSaveCell.call(a,a.rows[d].id,k,e,d,f),a.p.savedRow.splice(0,1))}else try{window.setTimeout(function(){b.jgrid.info_dialog(b.jgrid.errors.errcap,e+" "+p[1],b.jgrid.edit.bClose)},\n
+100),b(a).jqGrid("restoreCell",d,f)}catch(r){}}else b(a).jqGrid("restoreCell",d,f)}b.browser.opera?b("#"+b.jgrid.jqID(a.p.knv)).attr("tabindex","-1").focus():window.setTimeout(function(){b("#"+b.jgrid.jqID(a.p.knv)).attr("tabindex","-1").focus()},0)}})},restoreCell:function(d,f){return this.each(function(){var a=this,c;if(a.grid&&!0===a.p.cellEdit){c=1<=a.p.savedRow.length?0:null;if(null!==c){var g=b("td:eq("+f+")",a.rows[d]);if(b.isFunction(b.fn.datepicker))try{b("input.hasDatepicker",g).datepicker("hide")}catch(e){}b(g).empty().attr("tabindex",\n
+"-1");b(a).jqGrid("setCell",a.rows[d].id,f,a.p.savedRow[c].v,!1,!1,!0);b(a).triggerHandler("jqGridAfterRestoreCell",[a.rows[d].id,a.p.savedRow[c].v,d,f]);b.isFunction(a.p.afterRestoreCell)&&a.p.afterRestoreCell.call(a,a.rows[d].id,a.p.savedRow[c].v,d,f);a.p.savedRow.splice(0,1)}window.setTimeout(function(){b("#"+a.p.knv).attr("tabindex","-1").focus()},0)}})},nextCell:function(d,f){return this.each(function(){var a=!1;if(this.grid&&!0===this.p.cellEdit){for(var c=f+1;c<this.p.colModel.length;c++)if(!0===\n
+this.p.colModel[c].editable){a=c;break}!1!==a?b(this).jqGrid("editCell",d,a,!0):0<this.p.savedRow.length&&b(this).jqGrid("saveCell",d,f)}})},prevCell:function(d,f){return this.each(function(){var a=!1;if(this.grid&&!0===this.p.cellEdit){for(var c=f-1;0<=c;c--)if(!0===this.p.colModel[c].editable){a=c;break}!1!==a?b(this).jqGrid("editCell",d,a,!0):0<this.p.savedRow.length&&b(this).jqGrid("saveCell",d,f)}})},GridNav:function(){return this.each(function(){function d(c,d,e){if("v"==e.substr(0,1)){var f=\n
+b(a.grid.bDiv)[0].clientHeight,g=b(a.grid.bDiv)[0].scrollTop,l=a.rows[c].offsetTop+a.rows[c].clientHeight,o=a.rows[c].offsetTop;"vd"==e&&l>=f&&(b(a.grid.bDiv)[0].scrollTop=b(a.grid.bDiv)[0].scrollTop+a.rows[c].clientHeight);"vu"==e&&o<g&&(b(a.grid.bDiv)[0].scrollTop=b(a.grid.bDiv)[0].scrollTop-a.rows[c].clientHeight)}"h"==e&&(e=b(a.grid.bDiv)[0].clientWidth,f=b(a.grid.bDiv)[0].scrollLeft,g=a.rows[c].cells[d].offsetLeft,a.rows[c].cells[d].offsetLeft+a.rows[c].cells[d].clientWidth>=e+parseInt(f,10)?\n
+b(a.grid.bDiv)[0].scrollLeft=b(a.grid.bDiv)[0].scrollLeft+a.rows[c].cells[d].clientWidth:g<f&&(b(a.grid.bDiv)[0].scrollLeft=b(a.grid.bDiv)[0].scrollLeft-a.rows[c].cells[d].clientWidth))}function f(b,c){var d,e;if("lft"==c){d=b+1;for(e=b;0<=e;e--)if(!0!==a.p.colModel[e].hidden){d=e;break}}if("rgt"==c){d=b-1;for(e=b;e<a.p.colModel.length;e++)if(!0!==a.p.colModel[e].hidden){d=e;break}}return d}var a=this;if(a.grid&&!0===a.p.cellEdit){a.p.knv=a.p.id+"_kn";var c=b("<div style=\'position:absolute;top:-1000000px;width:1px;height:1px;\' tabindex=\'0\'><div tabindex=\'-1\' style=\'width:1px;height:1px;\' id=\'"+\n
+a.p.knv+"\'></div></div>"),g,e;b(c).insertBefore(a.grid.cDiv);b("#"+a.p.knv).focus().keydown(function(c){e=c.keyCode;"rtl"==a.p.direction&&(37===e?e=39:39===e&&(e=37));switch(e){case 38:0<a.p.iRow-1&&(d(a.p.iRow-1,a.p.iCol,"vu"),b(a).jqGrid("editCell",a.p.iRow-1,a.p.iCol,!1));break;case 40:a.p.iRow+1<=a.rows.length-1&&(d(a.p.iRow+1,a.p.iCol,"vd"),b(a).jqGrid("editCell",a.p.iRow+1,a.p.iCol,!1));break;case 37:0<=a.p.iCol-1&&(g=f(a.p.iCol-1,"lft"),d(a.p.iRow,g,"h"),b(a).jqGrid("editCell",a.p.iRow,g,!1));\n
+break;case 39:a.p.iCol+1<=a.p.colModel.length-1&&(g=f(a.p.iCol+1,"rgt"),d(a.p.iRow,g,"h"),b(a).jqGrid("editCell",a.p.iRow,g,!1));break;case 13:0<=parseInt(a.p.iCol,10)&&0<=parseInt(a.p.iRow,10)&&b(a).jqGrid("editCell",a.p.iRow,a.p.iCol,!0);break;default:return!0}return!1})}})},getChangedCells:function(d){var f=[];d||(d="all");this.each(function(){var a=this,c;a.grid&&!0===a.p.cellEdit&&b(a.rows).each(function(g){var e={};b(this).hasClass("edited")&&(b("td",this).each(function(f){c=a.p.colModel[f].name;\n
+if("cb"!==c&&"subgrid"!==c)if("dirty"==d){if(b(this).hasClass("dirty-cell"))try{e[c]=b.unformat.call(a,this,{rowId:a.rows[g].id,colModel:a.p.colModel[f]},f)}catch(i){e[c]=b.jgrid.htmlDecode(b(this).html())}}else try{e[c]=b.unformat.call(a,this,{rowId:a.rows[g].id,colModel:a.p.colModel[f]},f)}catch(k){e[c]=b.jgrid.htmlDecode(b(this).html())}}),e.id=this.id,f.push(e))})});return f}})})(jQuery);\n
+(function(b){b.fn.jqm=function(a){var k={overlay:50,closeoverlay:!0,overlayClass:"jqmOverlay",closeClass:"jqmClose",trigger:".jqModal",ajax:d,ajaxText:"",target:d,modal:d,toTop:d,onShow:d,onHide:d,onLoad:d};return this.each(function(){if(this._jqm)return i[this._jqm].c=b.extend({},i[this._jqm].c,a);g++;this._jqm=g;i[g]={c:b.extend(k,b.jqm.params,a),a:d,w:b(this).addClass("jqmID"+g),s:g};k.trigger&&b(this).jqmAddTrigger(k.trigger)})};b.fn.jqmAddClose=function(a){return n(this,a,"jqmHide")};b.fn.jqmAddTrigger=\n
+function(a){return n(this,a,"jqmShow")};b.fn.jqmShow=function(a){return this.each(function(){b.jqm.open(this._jqm,a)})};b.fn.jqmHide=function(a){return this.each(function(){b.jqm.close(this._jqm,a)})};b.jqm={hash:{},open:function(a,k){var c=i[a],e=c.c,l="."+e.closeClass,h=parseInt(c.w.css("z-index")),h=0<h?h:3E3,f=b("<div></div>").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":h-1,opacity:e.overlay/100});if(c.a)return d;c.t=k;c.a=!0;c.w.css("z-index",h);e.modal?(j[0]||setTimeout(function(){o("bind")},\n
+1),j.push(a)):0<e.overlay?e.closeoverlay&&c.w.jqmAddClose(f):f=d;c.o=f?f.addClass(e.overlayClass).prependTo("body"):d;if(p&&(b("html,body").css({height:"100%",width:"100%"}),f)){var f=f.css({position:"absolute"})[0],g;for(g in{Top:1,Left:1})f.style.setExpression(g.toLowerCase(),"(_=(document.documentElement.scroll"+g+" || document.body.scroll"+g+"))+\'px\'")}e.ajax?(h=e.target||c.w,f=e.ajax,h="string"==typeof h?b(h,c.w):b(h),f="@"==f.substr(0,1)?b(k).attr(f.substring(1)):f,h.html(e.ajaxText).load(f,\n
+function(){e.onLoad&&e.onLoad.call(this,c);l&&c.w.jqmAddClose(b(l,c.w));q(c)})):l&&c.w.jqmAddClose(b(l,c.w));e.toTop&&c.o&&c.w.before(\'<span id="jqmP\'+c.w[0]._jqm+\'"></span>\').insertAfter(c.o);e.onShow?e.onShow(c):c.w.show();q(c);return d},close:function(a){a=i[a];if(!a.a)return d;a.a=d;j[0]&&(j.pop(),j[0]||o("unbind"));a.c.toTop&&a.o&&b("#jqmP"+a.w[0]._jqm).after(a.w).remove();if(a.c.onHide)a.c.onHide(a);else a.w.hide(),a.o&&a.o.remove();return d},params:{}};var g=0,i=b.jqm.hash,j=[],p=b.browser.msie&&\n
+"6.0"==b.browser.version,d=!1,q=function(a){var d=b(\'<iframe src="javascript:false;document.write(\\\'\\\');" class="jqm"></iframe>\').css({opacity:0});p&&(a.o?a.o.html(\'<p style="width:100%;height:100%"/>\').prepend(d):b("iframe.jqm",a.w)[0]||a.w.prepend(d));r(a)},r=function(a){try{b(":input:visible",a.w)[0].focus()}catch(d){}},o=function(a){b(document)[a]("keypress",m)[a]("keydown",m)[a]("mousedown",m)},m=function(a){var d=i[j[j.length-1]];(a=!b(a.target).parents(".jqmID"+d.s)[0])&&r(d);return!a},n=function(a,\n
+g,c){return a.each(function(){var a=this._jqm;b(g).each(function(){this[c]||(this[c]=[],b(this).click(function(){for(var a in{jqmShow:1,jqmHide:1})for(var b in this[a])if(i[this[a][b]])i[this[a][b]].w[a](this);return d}));this[c].push(a)})})}})(jQuery);\n
+(function(b){b.fn.jqDrag=function(a){return h(this,a,"d")};b.fn.jqResize=function(a,b){return h(this,a,"r",b)};b.jqDnR={dnr:{},e:0,drag:function(a){"d"==d.k?e.css({left:d.X+a.pageX-d.pX,top:d.Y+a.pageY-d.pY}):(e.css({width:Math.max(a.pageX-d.pX+d.W,0),height:Math.max(a.pageY-d.pY+d.H,0)}),f&&g.css({width:Math.max(a.pageX-f.pX+f.W,0),height:Math.max(a.pageY-f.pY+f.H,0)}));return!1},stop:function(){b(document).unbind("mousemove",c.drag).unbind("mouseup",c.stop)}};var c=b.jqDnR,d=c.dnr,e=c.e,g,f,h=function(a,\n
+c,h,l){return a.each(function(){c=c?b(c,a):a;c.bind("mousedown",{e:a,k:h},function(a){var c=a.data,i={};e=c.e;g=l?b(l):!1;if("relative"!=e.css("position"))try{e.position(i)}catch(h){}d={X:i.left||j("left")||0,Y:i.top||j("top")||0,W:j("width")||e[0].scrollWidth||0,H:j("height")||e[0].scrollHeight||0,pX:a.pageX,pY:a.pageY,k:c.k};f=g&&"d"!=c.k?{X:i.left||k("left")||0,Y:i.top||k("top")||0,W:g[0].offsetWidth||k("width")||0,H:g[0].offsetHeight||k("height")||0,pX:a.pageX,pY:a.pageY,k:c.k}:!1;if(b("input.hasDatepicker",\n
+e[0])[0])try{b("input.hasDatepicker",e[0]).datepicker("hide")}catch(m){}b(document).mousemove(b.jqDnR.drag).mouseup(b.jqDnR.stop);return!1})})},j=function(a){return parseInt(e.css(a),10)||!1},k=function(a){return parseInt(g.css(a),10)||!1}})(jQuery);\n
+(function(b){b.jgrid.extend({setSubGrid:function(){return this.each(function(){var e;this.p.subGridOptions=b.extend({plusicon:"ui-icon-plus",minusicon:"ui-icon-minus",openicon:"ui-icon-carat-1-sw",expandOnLoad:!1,delayOnLoad:50,selectOnExpand:!1,reloadOnExpand:!0},this.p.subGridOptions||{});this.p.colNames.unshift("");this.p.colModel.unshift({name:"subgrid",width:b.browser.safari?this.p.subGridWidth+this.p.cellLayout:this.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0});e=this.p.subGridModel;\n
+if(e[0]){e[0].align=b.extend([],e[0].align||[]);for(var c=0;c<e[0].name.length;c++)e[0].align[c]=e[0].align[c]||"left"}})},addSubGridCell:function(b,c){var a="",m,l;this.each(function(){a=this.formatCol(b,c);l=this.p.id;m=this.p.subGridOptions.plusicon});return\'<td role="gridcell" aria-describedby="\'+l+\'_subgrid" class="ui-sgcollapsed sgcollapsed" \'+a+"><a href=\'javascript:void(0);\'><span class=\'ui-icon "+m+"\'></span></a></td>"},addSubGrid:function(e,c){return this.each(function(){var a=this;if(a.grid){var m=\n
+function(c,e,h){e=b("<td align=\'"+a.p.subGridModel[0].align[h]+"\'></td>").html(e);b(c).append(e)},l=function(c,e){var h,f,n,d=b("<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\'><tbody></tbody></table>"),i=b("<tr></tr>");for(f=0;f<a.p.subGridModel[0].name.length;f++)h=b("<th class=\'ui-state-default ui-th-subgrid ui-th-column ui-th-"+a.p.direction+"\'></th>"),b(h).html(a.p.subGridModel[0].name[f]),b(h).width(a.p.subGridModel[0].width[f]),b(i).append(h);b(d).append(i);c&&(n=a.p.xmlReader.subgrid,b(n.root+\n
+" "+n.row,c).each(function(){i=b("<tr class=\'ui-widget-content ui-subtblcell\'></tr>");if(!0===n.repeatitems)b(n.cell,this).each(function(a){m(i,b(this).text()||"&#160;",a)});else{var c=a.p.subGridModel[0].mapping||a.p.subGridModel[0].name;if(c)for(f=0;f<c.length;f++)m(i,b(c[f],this).text()||"&#160;",f)}b(d).append(i)}));h=b("table:first",a.grid.bDiv).attr("id")+"_";b("#"+b.jgrid.jqID(h+e)).append(d);a.grid.hDiv.loading=!1;b("#load_"+b.jgrid.jqID(a.p.id)).hide();return!1},p=function(c,e){var h,f,d,\n
+g,i,k=b("<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\'><tbody></tbody></table>"),j=b("<tr></tr>");for(f=0;f<a.p.subGridModel[0].name.length;f++)h=b("<th class=\'ui-state-default ui-th-subgrid ui-th-column ui-th-"+a.p.direction+"\'></th>"),b(h).html(a.p.subGridModel[0].name[f]),b(h).width(a.p.subGridModel[0].width[f]),b(j).append(h);b(k).append(j);if(c&&(g=a.p.jsonReader.subgrid,h=b.jgrid.getAccessor(c,g.root),"undefined"!==typeof h))for(f=0;f<h.length;f++){d=h[f];j=b("<tr class=\'ui-widget-content ui-subtblcell\'></tr>");\n
+if(!0===g.repeatitems){g.cell&&(d=d[g.cell]);for(i=0;i<d.length;i++)m(j,d[i]||"&#160;",i)}else{var l=a.p.subGridModel[0].mapping||a.p.subGridModel[0].name;if(l.length)for(i=0;i<l.length;i++)m(j,d[l[i]]||"&#160;",i)}b(k).append(j)}f=b("table:first",a.grid.bDiv).attr("id")+"_";b("#"+b.jgrid.jqID(f+e)).append(k);a.grid.hDiv.loading=!1;b("#load_"+b.jgrid.jqID(a.p.id)).hide();return!1},t=function(c){var e,d,f,g;e=b(c).attr("id");d={nd_:(new Date).getTime()};d[a.p.prmNames.subgridid]=e;if(!a.p.subGridModel[0])return!1;\n
+if(a.p.subGridModel[0].params)for(g=0;g<a.p.subGridModel[0].params.length;g++)for(f=0;f<a.p.colModel.length;f++)a.p.colModel[f].name===a.p.subGridModel[0].params[g]&&(d[a.p.colModel[f].name]=b("td:eq("+f+")",c).text().replace(/\\&#160\\;/ig,""));if(!a.grid.hDiv.loading)switch(a.grid.hDiv.loading=!0,b("#load_"+b.jgrid.jqID(a.p.id)).show(),a.p.subgridtype||(a.p.subgridtype=a.p.datatype),b.isFunction(a.p.subgridtype)?a.p.subgridtype.call(a,d):a.p.subgridtype=a.p.subgridtype.toLowerCase(),a.p.subgridtype){case "xml":case "json":b.ajax(b.extend({type:a.p.mtype,\n
+url:a.p.subGridUrl,dataType:a.p.subgridtype,data:b.isFunction(a.p.serializeSubGridData)?a.p.serializeSubGridData.call(a,d):d,complete:function(c){a.p.subgridtype==="xml"?l(c.responseXML,e):p(b.jgrid.parse(c.responseText),e)}},b.jgrid.ajaxOptions,a.p.ajaxSubgridOptions||{}))}return!1},d,k,q,r=0,g,j;b.each(a.p.colModel,function(){(!0===this.hidden||"rn"===this.name||"cb"===this.name)&&r++});var s=a.rows.length,o=1;void 0!==c&&0<c&&(o=c,s=c+1);for(;o<s;)b(a.rows[o]).hasClass("jqgrow")&&b(a.rows[o].cells[e]).bind("click",\n
+function(){var c=b(this).parent("tr")[0];j=c.nextSibling;if(b(this).hasClass("sgcollapsed")){k=a.p.id;d=c.id;if(a.p.subGridOptions.reloadOnExpand===true||a.p.subGridOptions.reloadOnExpand===false&&!b(j).hasClass("ui-subgrid")){q=e>=1?"<td colspan=\'"+e+"\'>&#160;</td>":"";g=b(a).triggerHandler("jqGridSubGridBeforeExpand",[k+"_"+d,d]);(g=g===false||g==="stop"?false:true)&&b.isFunction(a.p.subGridBeforeExpand)&&(g=a.p.subGridBeforeExpand.call(a,k+"_"+d,d));if(g===false)return false;b(c).after("<tr role=\'row\' class=\'ui-subgrid\'>"+\n
+q+"<td class=\'ui-widget-content subgrid-cell\'><span class=\'ui-icon "+a.p.subGridOptions.openicon+"\'></span></td><td colspan=\'"+parseInt(a.p.colNames.length-1-r,10)+"\' class=\'ui-widget-content subgrid-data\'><div id="+k+"_"+d+" class=\'tablediv\'></div></td></tr>");b(a).triggerHandler("jqGridSubGridRowExpanded",[k+"_"+d,d]);b.isFunction(a.p.subGridRowExpanded)?a.p.subGridRowExpanded.call(a,k+"_"+d,d):t(c)}else b(j).show();b(this).html("<a href=\'javascript:void(0);\'><span class=\'ui-icon "+a.p.subGridOptions.minusicon+\n
+"\'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");a.p.subGridOptions.selectOnExpand&&b(a).jqGrid("setSelection",d)}else if(b(this).hasClass("sgexpanded")){g=b(a).triggerHandler("jqGridSubGridRowColapsed",[k+"_"+d,d]);if((g=g===false||g==="stop"?false:true)&&b.isFunction(a.p.subGridRowColapsed)){d=c.id;g=a.p.subGridRowColapsed.call(a,k+"_"+d,d)}if(g===false)return false;a.p.subGridOptions.reloadOnExpand===true?b(j).remove(".ui-subgrid"):b(j).hasClass("ui-subgrid")&&b(j).hide();b(this).html("<a href=\'javascript:void(0);\'><span class=\'ui-icon "+\n
+a.p.subGridOptions.plusicon+"\'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed")}return false}),o++;!0===a.p.subGridOptions.expandOnLoad&&b(a.rows).filter(".jqgrow").each(function(a,c){b(c.cells[0]).click()});a.subGridXml=function(a,b){l(a,b)};a.subGridJson=function(a,b){p(a,b)}}})},expandSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var c=b(this).jqGrid("getInd",e,!0);c&&(c=b("td.sgcollapsed",c)[0])&&b(c).trigger("click")}})},collapseSubGridRow:function(e){return this.each(function(){if((this.grid||\n
+e)&&!0===this.p.subGrid){var c=b(this).jqGrid("getInd",e,!0);c&&(c=b("td.sgexpanded",c)[0])&&b(c).trigger("click")}})},toggleSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var c=b(this).jqGrid("getInd",e,!0);if(c){var a=b("td.sgcollapsed",c)[0];a?b(a).trigger("click"):(a=b("td.sgexpanded",c)[0])&&b(a).trigger("click")}}})}})})(jQuery);\n
+(function(b){b.extend(b.jgrid,{template:function(a){var c=b.makeArray(arguments).slice(1),f=1;void 0===a&&(a="");return a.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g,function(a,d){if(isNaN(parseInt(d,10))){for(var b=c[f],g=b.length;g--;)if(d===b[g].nm)return b[g].v;f++}else return f++,c[parseInt(d,10)]})}});b.jgrid.extend({groupingSetup:function(){return this.each(function(){var a=this.p.groupingView;if(null!==a&&("object"===typeof a||b.isFunction(a)))if(a.groupField.length){"undefined"===\n
+typeof a.visibiltyOnNextGrouping&&(a.visibiltyOnNextGrouping=[]);a.lastvalues=[];a.groups=[];a.counters=[];for(var c=0;c<a.groupField.length;c++)a.groupOrder[c]||(a.groupOrder[c]="asc"),a.groupText[c]||(a.groupText[c]="{0}"),"boolean"!==typeof a.groupColumnShow[c]&&(a.groupColumnShow[c]=!0),"boolean"!==typeof a.groupSummary[c]&&(a.groupSummary[c]=!1),!0===a.groupColumnShow[c]?(a.visibiltyOnNextGrouping[c]=!0,b(this).jqGrid("showCol",a.groupField[c])):(a.visibiltyOnNextGrouping[c]=b("#"+b.jgrid.jqID(this.p.id+\n
+"_"+a.groupField[c])).is(":visible"),b(this).jqGrid("hideCol",a.groupField[c]));a.summary=[];for(var c=this.p.colModel,f=0,e=c.length;f<e;f++)c[f].summaryType&&a.summary.push({nm:c[f].name,st:c[f].summaryType,v:"",sr:c[f].summaryRound,srt:c[f].summaryRoundType||"round"})}else this.p.grouping=!1;else this.p.grouping=!1})},groupingPrepare:function(a,c,f,e){this.each(function(){for(var d=this.p.groupingView,h=this,g=d.groupField.length,k,j,p=0,i=0;i<g;i++)k=d.groupField[i],j=f[k],void 0!==j&&(0===e?\n
+(d.groups.push({idx:i,dataIndex:k,value:j,startRow:e,cnt:1,summary:[]}),d.lastvalues[i]=j,d.counters[i]={cnt:1,pos:d.groups.length-1,summary:b.extend(!0,[],d.summary)}):"object"!==typeof j&&d.lastvalues[i]!==j?(d.groups.push({idx:i,dataIndex:k,value:j,startRow:e,cnt:1,summary:[]}),d.lastvalues[i]=j,p=1,d.counters[i]={cnt:1,pos:d.groups.length-1,summary:b.extend(!0,[],d.summary)}):1===p?(d.groups.push({idx:i,dataIndex:k,value:j,startRow:e,cnt:1,summary:[]}),d.lastvalues[i]=j,d.counters[i]={cnt:1,pos:d.groups.length-\n
+1,summary:b.extend(!0,[],d.summary)}):(d.counters[i].cnt+=1,d.groups[d.counters[i].pos].cnt=d.counters[i].cnt),b.each(d.counters[i].summary,function(){this.v=b.isFunction(this.st)?this.st.call(h,this.v,this.nm,f):b(h).jqGrid("groupingCalculations.handler",this.st,this.v,this.nm,this.sr,this.srt,f)}),d.groups[d.counters[i].pos].summary=d.counters[i].summary);c.push(a)});return c},groupingToggle:function(a){this.each(function(){var c=this.p.groupingView,f=a.split("_"),e=parseInt(f[f.length-2],10);f.splice(f.length-\n
+2,2);var f=f.join("_"),d=c.minusicon,h=c.plusicon,g=b("#"+b.jgrid.jqID(a)),g=g.length?g[0].nextSibling:null,k=b("#"+b.jgrid.jqID(a)+" span.tree-wrap-"+this.p.direction),j=!1;if(k.hasClass(d)){if(c.showSummaryOnHide){if(g)for(;g&&!(b(g).hasClass("jqfoot")&&parseInt(b(g).attr("jqfootlevel"),10)<=e);)b(g).hide(),g=g.nextSibling}else if(g)for(;g&&!b(g).hasClass(f+"_"+(""+e))&&!b(g).hasClass(f+"_"+(""+(e-1)));)b(g).hide(),g=g.nextSibling;k.removeClass(d).addClass(h);j=!0}else{if(g)for(;g&&!b(g).hasClass(f+\n
+"_"+(""+e))&&!b(g).hasClass(f+"_"+(""+(e-1)));)b(g).show(),(c=b(g).find("span.tree-wrap-"+this.p.direction))&&b(c).hasClass(h)&&b(c).removeClass(h).addClass(d),g=g.nextSibling;k.removeClass(h).addClass(d)}b(this).triggerHandler("jqGridGroupingClickGroup",[a,j]);b.isFunction(this.p.onClickGroup)&&this.p.onClickGroup.call(this,a,j)});return!1},groupingRender:function(a,c){return this.each(function(){function f(a,b,c){if(0===b)return c[a];var d=c[a].idx;if(0===d)return c[a];for(;0<=a;a--)if(c[a].idx===\n
+d-b)return c[a]}var e=this,d=e.p.groupingView,h="",g="",k,j,p=d.groupCollapse?d.plusicon:d.minusicon,i,w=[],x=d.groupField.length,p=p+(" tree-wrap-"+e.p.direction);b.each(e.p.colModel,function(a,b){for(var c=0;c<x;c++)if(d.groupField[c]===b.name){w[c]=a;break}});var s=0,y=b.makeArray(d.groupSummary);y.reverse();b.each(d.groups,function(r,l){s++;j=e.p.id+"ghead_"+l.idx;k=j+"_"+r;g="<span style=\'cursor:pointer;\' class=\'ui-icon "+p+"\' onclick=\\"jQuery(\'#"+b.jgrid.jqID(e.p.id)+"\').jqGrid(\'groupingToggle\',\'"+\n
+k+"\');return false;\\"></span>";try{i=e.formatter(k,l.value,w[l.idx],l.value)}catch(C){i=l.value}h+=\'<tr id="\'+k+\'" role="row" class= "ui-widget-content jqgroup ui-row-\'+e.p.direction+" "+j+\'"><td style="padding-left:\'+12*l.idx+\'px;" colspan="\'+c+\'">\'+g+b.jgrid.template(d.groupText[l.idx],i,l.cnt,l.summary)+"</td></tr>";if(x-1===l.idx){for(var m=d.groups[r+1],o=void 0!==m?d.groups[r+1].startRow:a.length,t=l.startRow;t<o;t++)h+=a[t].join("");var q;if(void 0!==m){for(q=0;q<d.groupField.length&&m.dataIndex!==\n
+d.groupField[q];q++);s=d.groupField.length-q}for(m=0;m<s;m++)if(y[m]){o="";d.groupCollapse&&!d.showSummaryOnHide&&(o=\' style="display:none;"\');h+="<tr"+o+\' jqfootlevel="\'+(l.idx-m)+\'" role="row" class="ui-widget-content jqfoot ui-row-\'+e.p.direction+\'">\';for(var o=f(r,m,d.groups),u=e.p.colModel,v,z=o.cnt,n=0;n<c;n++){var A="<td "+e.formatCol(n,1,"")+">&#160;</td>",B="{0}";b.each(o.summary,function(){if(this.nm===u[n].name){u[n].summaryTpl&&(B=u[n].summaryTpl);"string"===typeof this.st&&"avg"===this.st.toLowerCase()&&\n
+(this.v&&0<z)&&(this.v/=z);try{v=e.formatter("",this.v,n,this)}catch(a){v=this.v}A="<td "+e.formatCol(n,1,"")+">"+b.jgrid.format(B,v)+"</td>";return!1}});h+=A}h+="</tr>"}s=q}});b("#"+b.jgrid.jqID(e.p.id)+" tbody:first").append(h);h=null})},groupingGroupBy:function(a,c){return this.each(function(){"string"===typeof a&&(a=[a]);var f=this.p.groupingView;this.p.grouping=!0;"undefined"===typeof f.visibiltyOnNextGrouping&&(f.visibiltyOnNextGrouping=[]);var e;for(e=0;e<f.groupField.length;e++)!f.groupColumnShow[e]&&\n
+f.visibiltyOnNextGrouping[e]&&b(this).jqGrid("showCol",f.groupField[e]);for(e=0;e<a.length;e++)f.visibiltyOnNextGrouping[e]=b("#"+b.jgrid.jqID(this.p.id)+"_"+b.jgrid.jqID(a[e])).is(":visible");this.p.groupingView=b.extend(this.p.groupingView,c||{});f.groupField=a;b(this).trigger("reloadGrid")})},groupingRemove:function(a){return this.each(function(){"undefined"===typeof a&&(a=!0);this.p.grouping=!1;if(!0===a){for(var c=this.p.groupingView,f=0;f<c.groupField.length;f++)!c.groupColumnShow[f]&&c.visibiltyOnNextGrouping[f]&&\n
+b(this).jqGrid("showCol",c.groupField);b("tr.jqgroup, tr.jqfoot","#"+b.jgrid.jqID(this.p.id)+" tbody:first").remove();b("tr.jqgrow:hidden","#"+b.jgrid.jqID(this.p.id)+" tbody:first").show()}else b(this).trigger("reloadGrid")})},groupingCalculations:{handler:function(a,c,b,e,d,h){var g={sum:function(){return parseFloat(c||0)+parseFloat(h[b]||0)},min:function(){return""===c?parseFloat(h[b]||0):Math.min(parseFloat(c),parseFloat(h[b]||0))},max:function(){return""===c?parseFloat(h[b]||0):Math.max(parseFloat(c),\n
+parseFloat(h[b]||0))},count:function(){""===c&&(c=0);return h.hasOwnProperty(b)?c+1:0},avg:function(){return g.sum()}};if(!g[a])throw"jqGrid Grouping No such method: "+a;a=g[a]();null!=e&&("fixed"==d?a=a.toFixed(e):(e=Math.pow(10,e),a=Math.round(a*e)/e));return a}}})})(jQuery);\n
+(function(d){d.jgrid.extend({setTreeNode:function(a,c){return this.each(function(){var b=this;if(b.grid&&b.p.treeGrid)for(var e=b.p.expColInd,g=b.p.treeReader.expanded_field,h=b.p.treeReader.leaf_field,f=b.p.treeReader.level_field,l=b.p.treeReader.icon_field,j=b.p.treeReader.loaded,i,p,m,k;a<c;)k=b.p.data[b.p._index[b.rows[a].id]],"nested"==b.p.treeGridModel&&!k[h]&&(i=parseInt(k[b.p.treeReader.left_field],10),p=parseInt(k[b.p.treeReader.right_field],10),k[h]=p===i+1?"true":"false",b.rows[a].cells[b.p._treeleafpos].innerHTML=\n
+k[h]),i=parseInt(k[f],10),0===b.p.tree_root_level?(m=i+1,p=i):(m=i,p=i-1),m="<div class=\'tree-wrap tree-wrap-"+b.p.direction+"\' style=\'width:"+18*m+"px;\'>",m+="<div style=\'"+("rtl"==b.p.direction?"right:":"left:")+18*p+"px;\' class=\'ui-icon ",void 0!==k[j]&&(k[j]="true"==k[j]||!0===k[j]?!0:!1),"true"==k[h]||!0===k[h]?(m+=(void 0!==k[l]&&""!==k[l]?k[l]:b.p.treeIcons.leaf)+" tree-leaf treeclick",k[h]=!0,p="leaf"):(k[h]=!1,p=""),k[g]=("true"==k[g]||!0===k[g]?!0:!1)&&k[j],m=!1===k[g]?m+(!0===k[h]?"\'":\n
+b.p.treeIcons.plus+" tree-plus treeclick\'"):m+(!0===k[h]?"\'":b.p.treeIcons.minus+" tree-minus treeclick\'"),m+="></div></div>",d(b.rows[a].cells[e]).wrapInner("<span class=\'cell-wrapper"+p+"\'></span>").prepend(m),i!==parseInt(b.p.tree_root_level,10)&&((k=(k=d(b).jqGrid("getNodeParent",k))&&k.hasOwnProperty(g)?k[g]:!0)||d(b.rows[a]).css("display","none")),d(b.rows[a].cells[e]).find("div.treeclick").bind("click",function(a){a=d(a.target||a.srcElement,b.rows).closest("tr.jqgrow")[0].id;a=b.p._index[a];\n
+if(!b.p.data[a][h])if(b.p.data[a][g]){d(b).jqGrid("collapseRow",b.p.data[a]);d(b).jqGrid("collapseNode",b.p.data[a])}else{d(b).jqGrid("expandRow",b.p.data[a]);d(b).jqGrid("expandNode",b.p.data[a])}return false}),!0===b.p.ExpandColClick&&d(b.rows[a].cells[e]).find("span.cell-wrapper").css("cursor","pointer").bind("click",function(a){var a=d(a.target||a.srcElement,b.rows).closest("tr.jqgrow")[0].id,c=b.p._index[a];if(!b.p.data[c][h])if(b.p.data[c][g]){d(b).jqGrid("collapseRow",b.p.data[c]);d(b).jqGrid("collapseNode",\n
+b.p.data[c])}else{d(b).jqGrid("expandRow",b.p.data[c]);d(b).jqGrid("expandNode",b.p.data[c])}d(b).jqGrid("setSelection",a);return false}),a++})},setTreeGrid:function(){return this.each(function(){var a=this,c=0,b,e=!1,g,h=[];if(a.p.treeGrid){a.p.treedatatype||d.extend(a.p,{treedatatype:a.p.datatype});a.p.subGrid=!1;a.p.altRows=!1;a.p.pgbuttons=!1;a.p.pginput=!1;a.p.gridview=!0;null===a.p.rowTotal&&(a.p.rowNum=1E4);a.p.multiselect=!1;a.p.rowList=[];a.p.expColInd=0;b="ui-icon-triangle-1-"+("rtl"==a.p.direction?\n
+"w":"e");a.p.treeIcons=d.extend({plus:b,minus:"ui-icon-triangle-1-s",leaf:"ui-icon-radio-off"},a.p.treeIcons||{});"nested"==a.p.treeGridModel?a.p.treeReader=d.extend({level_field:"level",left_field:"lft",right_field:"rgt",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},a.p.treeReader):"adjacency"==a.p.treeGridModel&&(a.p.treeReader=d.extend({level_field:"level",parent_id_field:"parent",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},\n
+a.p.treeReader));for(g in a.p.colModel)if(a.p.colModel.hasOwnProperty(g)){b=a.p.colModel[g].name;b==a.p.ExpandColumn&&!e&&(e=!0,a.p.expColInd=c);c++;for(var f in a.p.treeReader)a.p.treeReader[f]==b&&h.push(b)}d.each(a.p.treeReader,function(b,e){if(e&&d.inArray(e,h)===-1){if(b==="leaf_field")a.p._treeleafpos=c;c++;a.p.colNames.push(e);a.p.colModel.push({name:e,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false})}})}})},expandRow:function(a){this.each(function(){var c=\n
+this;if(c.grid&&c.p.treeGrid){var b=d(c).jqGrid("getNodeChildren",a),e=c.p.treeReader.expanded_field,g=c.rows;d(b).each(function(){var a=d.jgrid.getAccessor(this,c.p.localReader.id);d(g.namedItem(a)).css("display","");this[e]&&d(c).jqGrid("expandRow",this)})}})},collapseRow:function(a){this.each(function(){var c=this;if(c.grid&&c.p.treeGrid){var b=d(c).jqGrid("getNodeChildren",a),e=c.p.treeReader.expanded_field,g=c.rows;d(b).each(function(){var a=d.jgrid.getAccessor(this,c.p.localReader.id);d(g.namedItem(a)).css("display",\n
+"none");this[e]&&d(c).jqGrid("collapseRow",this)})}})},getRootNodes:function(){var a=[];this.each(function(){var c=this;if(c.grid&&c.p.treeGrid)switch(c.p.treeGridModel){case "nested":var b=c.p.treeReader.level_field;d(c.p.data).each(function(){parseInt(this[b],10)===parseInt(c.p.tree_root_level,10)&&a.push(this)});break;case "adjacency":var e=c.p.treeReader.parent_id_field;d(c.p.data).each(function(){(null===this[e]||"null"==(""+this[e]).toLowerCase())&&a.push(this)})}});return a},getNodeDepth:function(a){var c=\n
+null;this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case "nested":c=parseInt(a[this.p.treeReader.level_field],10)-parseInt(this.p.tree_root_level,10);break;case "adjacency":c=d(this).jqGrid("getNodeAncestors",a).length}});return c},getNodeParent:function(a){var c=null;this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case "nested":var b=this.p.treeReader.left_field,e=this.p.treeReader.right_field,g=this.p.treeReader.level_field,h=parseInt(a[b],\n
+10),f=parseInt(a[e],10),l=parseInt(a[g],10);d(this.p.data).each(function(){if(parseInt(this[g],10)===l-1&&parseInt(this[b],10)<h&&parseInt(this[e],10)>f)return c=this,!1});break;case "adjacency":var j=this.p.treeReader.parent_id_field,i=this.p.localReader.id;d(this.p.data).each(function(){if(this[i]==a[j])return c=this,!1})}});return c},getNodeChildren:function(a){var c=[];this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case "nested":var b=this.p.treeReader.left_field,\n
+e=this.p.treeReader.right_field,g=this.p.treeReader.level_field,h=parseInt(a[b],10),f=parseInt(a[e],10),l=parseInt(a[g],10);d(this.p.data).each(function(){parseInt(this[g],10)===l+1&&(parseInt(this[b],10)>h&&parseInt(this[e],10)<f)&&c.push(this)});break;case "adjacency":var j=this.p.treeReader.parent_id_field,i=this.p.localReader.id;d(this.p.data).each(function(){this[j]==a[i]&&c.push(this)})}});return c},getFullTreeNode:function(a){var c=[];this.each(function(){var b;if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case "nested":var e=\n
+this.p.treeReader.left_field,g=this.p.treeReader.right_field,h=this.p.treeReader.level_field,f=parseInt(a[e],10),l=parseInt(a[g],10),j=parseInt(a[h],10);d(this.p.data).each(function(){parseInt(this[h],10)>=j&&(parseInt(this[e],10)>=f&&parseInt(this[e],10)<=l)&&c.push(this)});break;case "adjacency":if(a){c.push(a);var i=this.p.treeReader.parent_id_field,p=this.p.localReader.id;d(this.p.data).each(function(a){b=c.length;for(a=0;a<b;a++)if(c[a][p]==this[i]){c.push(this);break}})}}});return c},getNodeAncestors:function(a){var c=\n
+[];this.each(function(){if(this.grid&&this.p.treeGrid)for(var b=d(this).jqGrid("getNodeParent",a);b;)c.push(b),b=d(this).jqGrid("getNodeParent",b)});return c},isVisibleNode:function(a){var c=!0;this.each(function(){if(this.grid&&this.p.treeGrid){var b=d(this).jqGrid("getNodeAncestors",a),e=this.p.treeReader.expanded_field;d(b).each(function(){c=c&&this[e];if(!c)return!1})}});return c},isNodeLoaded:function(a){var c;this.each(function(){if(this.grid&&this.p.treeGrid){var b=this.p.treeReader.leaf_field;\n
+c=void 0!==a?void 0!==a.loaded?a.loaded:a[b]||0<d(this).jqGrid("getNodeChildren",a).length?!0:!1:!1}});return c},expandNode:function(a){return this.each(function(){if(this.grid&&this.p.treeGrid){var c=this.p.treeReader.expanded_field,b=this.p.treeReader.parent_id_field,e=this.p.treeReader.loaded,g=this.p.treeReader.level_field,h=this.p.treeReader.left_field,f=this.p.treeReader.right_field;if(!a[c]){var l=d.jgrid.getAccessor(a,this.p.localReader.id),j=d("#"+d.jgrid.jqID(l),this.grid.bDiv)[0],i=this.p._index[l];\n
+d(this).jqGrid("isNodeLoaded",this.p.data[i])?(a[c]=!0,d("div.treeclick",j).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus")):this.grid.hDiv.loading||(a[c]=!0,d("div.treeclick",j).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=j.rowIndex,this.p.datatype=this.p.treedatatype,"nested"==this.p.treeGridModel?d(this).jqGrid("setGridParam",{postData:{nodeid:l,n_left:a[h],n_right:a[f],n_level:a[g]}}):\n
+d(this).jqGrid("setGridParam",{postData:{nodeid:l,parentid:a[b],n_level:a[g]}}),d(this).trigger("reloadGrid"),a[e]=!0,"nested"==this.p.treeGridModel?d(this).jqGrid("setGridParam",{postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):d(this).jqGrid("setGridParam",{postData:{nodeid:"",parentid:"",n_level:""}}))}}})},collapseNode:function(a){return this.each(function(){if(this.grid&&this.p.treeGrid){var c=this.p.treeReader.expanded_field;a[c]&&(a[c]=!1,c=d.jgrid.getAccessor(a,this.p.localReader.id),\n
+c=d("#"+d.jgrid.jqID(c),this.grid.bDiv)[0],d("div.treeclick",c).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"))}})},SortTree:function(a,c,b,e){return this.each(function(){if(this.grid&&this.p.treeGrid){var g,h,f,l=[],j=this,i;g=d(this).jqGrid("getRootNodes");g=d.jgrid.from(g);g.orderBy(a,c,b,e);i=g.select();g=0;for(h=i.length;g<h;g++)f=i[g],l.push(f),d(this).jqGrid("collectChildrenSortTree",l,f,a,c,b,e);d.each(l,function(a){var b=d.jgrid.getAccessor(this,\n
+j.p.localReader.id);d("#"+d.jgrid.jqID(j.p.id)+" tbody tr:eq("+a+")").after(d("tr#"+d.jgrid.jqID(b),j.grid.bDiv))});l=i=g=null}})},collectChildrenSortTree:function(a,c,b,e,g,h){return this.each(function(){if(this.grid&&this.p.treeGrid){var f,l,j,i;f=d(this).jqGrid("getNodeChildren",c);f=d.jgrid.from(f);f.orderBy(b,e,g,h);i=f.select();f=0;for(l=i.length;f<l;f++)j=i[f],a.push(j),d(this).jqGrid("collectChildrenSortTree",a,j,b,e,g,h)}})},setTreeRow:function(a,c){var b=!1;this.each(function(){this.grid&&\n
+this.p.treeGrid&&(b=d(this).jqGrid("setRowData",a,c))});return b},delTreeNode:function(a){return this.each(function(){var c=this.p.localReader.id,b=this.p.treeReader.left_field,e=this.p.treeReader.right_field,g,h,f;if(this.grid&&this.p.treeGrid){var l=this.p._index[a];if(void 0!==l){g=parseInt(this.p.data[l][e],10);h=g-parseInt(this.p.data[l][b],10)+1;l=d(this).jqGrid("getFullTreeNode",this.p.data[l]);if(0<l.length)for(var j=0;j<l.length;j++)d(this).jqGrid("delRowData",l[j][c]);if("nested"===this.p.treeGridModel){c=\n
+d.jgrid.from(this.p.data).greater(b,g,{stype:"integer"}).select();if(c.length)for(f in c)c.hasOwnProperty(f)&&(c[f][b]=parseInt(c[f][b],10)-h);c=d.jgrid.from(this.p.data).greater(e,g,{stype:"integer"}).select();if(c.length)for(f in c)c.hasOwnProperty(f)&&(c[f][e]=parseInt(c[f][e],10)-h)}}}})},addChildNode:function(a,c,b){var e=this[0];if(b){var g=e.p.treeReader.expanded_field,h=e.p.treeReader.leaf_field,f=e.p.treeReader.level_field,l=e.p.treeReader.parent_id_field,j=e.p.treeReader.left_field,i=e.p.treeReader.right_field,\n
+p=e.p.treeReader.loaded,m,k,q,s,o;m=0;var r=c,t;if("undefined"===typeof a||null===a){o=e.p.data.length-1;if(0<=o)for(;0<=o;)m=Math.max(m,parseInt(e.p.data[o][e.p.localReader.id],10)),o--;a=m+1}var u=d(e).jqGrid("getInd",c);t=!1;if(void 0===c||null===c||""===c)r=c=null,m="last",s=e.p.tree_root_level,o=e.p.data.length+1;else if(m="after",k=e.p._index[c],q=e.p.data[k],c=q[e.p.localReader.id],s=parseInt(q[f],10)+1,o=d(e).jqGrid("getFullTreeNode",q),o.length?(r=o=o[o.length-1][e.p.localReader.id],o=d(e).jqGrid("getInd",\n
+r)+1):o=d(e).jqGrid("getInd",c)+1,q[h])t=!0,q[g]=!0,d(e.rows[u]).find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper").end().find("div.tree-leaf").removeClass(e.p.treeIcons.leaf+" tree-leaf").addClass(e.p.treeIcons.minus+" tree-minus"),e.p.data[k][h]=!1,q[p]=!0;k=o+1;b[g]=!1;b[p]=!0;b[f]=s;b[h]=!0;"adjacency"===e.p.treeGridModel&&(b[l]=c);if("nested"===e.p.treeGridModel){var n;if(null!==c){h=parseInt(q[i],10);f=d.jgrid.from(e.p.data);f=f.greaterOrEquals(i,h,{stype:"integer"});\n
+f=f.select();if(f.length)for(n in f)f.hasOwnProperty(n)&&(f[n][j]=f[n][j]>h?parseInt(f[n][j],10)+2:f[n][j],f[n][i]=f[n][i]>=h?parseInt(f[n][i],10)+2:f[n][i]);b[j]=h;b[i]=h+1}else{h=parseInt(d(e).jqGrid("getCol",i,!1,"max"),10);f=d.jgrid.from(e.p.data).greater(j,h,{stype:"integer"}).select();if(f.length)for(n in f)f.hasOwnProperty(n)&&(f[n][j]=parseInt(f[n][j],10)+2);f=d.jgrid.from(e.p.data).greater(i,h,{stype:"integer"}).select();if(f.length)for(n in f)f.hasOwnProperty(n)&&(f[n][i]=parseInt(f[n][i],\n
+10)+2);b[j]=h+1;b[i]=h+2}}if(null===c||d(e).jqGrid("isNodeLoaded",q)||t)d(e).jqGrid("addRowData",a,b,m,r),d(e).jqGrid("setTreeNode",o,k);q&&!q[g]&&d(e.rows[u]).find("div.treeclick").click()}}})})(jQuery);\n
+(function(c){c.jgrid.extend({jqGridImport:function(a){a=c.extend({imptype:"xml",impstring:"",impurl:"",mtype:"GET",impData:{},xmlGrid:{config:"roots>grid",data:"roots>rows"},jsonGrid:{config:"grid",data:"data"},ajaxOptions:{}},a||{});return this.each(function(){var d=this,b=function(a,b){var e=c(b.xmlGrid.config,a)[0],h=c(b.xmlGrid.data,a)[0],f;if(xmlJsonClass.xml2json&&c.jgrid.parse){var e=xmlJsonClass.xml2json(e," "),e=c.jgrid.parse(e),g;for(g in e)e.hasOwnProperty(g)&&(f=e[g]);h?(h=e.grid.datatype,\n
+e.grid.datatype="xmlstring",e.grid.datastr=a,c(d).jqGrid(f).jqGrid("setGridParam",{datatype:h})):c(d).jqGrid(f)}else alert("xml2json or parse are not present")},g=function(a,b){if(a&&"string"==typeof a){var e=!1;c.jgrid.useJSON&&(c.jgrid.useJSON=!1,e=!0);var f=c.jgrid.parse(a);e&&(c.jgrid.useJSON=!0);e=f[b.jsonGrid.config];if(f=f[b.jsonGrid.data]){var g=e.datatype;e.datatype="jsonstring";e.datastr=f;c(d).jqGrid(e).jqGrid("setGridParam",{datatype:g})}else c(d).jqGrid(e)}};switch(a.imptype){case "xml":c.ajax(c.extend({url:a.impurl,\n
+type:a.mtype,data:a.impData,dataType:"xml",complete:function(f,g){"success"==g&&(b(f.responseXML,a),c(d).triggerHandler("jqGridImportComplete",[f,a]),c.isFunction(a.importComplete)&&a.importComplete(f))}},a.ajaxOptions));break;case "xmlstring":if(a.impstring&&"string"==typeof a.impstring){var f=c.jgrid.stringToDoc(a.impstring);f&&(b(f,a),c(d).triggerHandler("jqGridImportComplete",[f,a]),c.isFunction(a.importComplete)&&a.importComplete(f),a.impstring=null);f=null}break;case "json":c.ajax(c.extend({url:a.impurl,\n
+type:a.mtype,data:a.impData,dataType:"json",complete:function(b){try{g(b.responseText,a),c(d).triggerHandler("jqGridImportComplete",[b,a]),c.isFunction(a.importComplete)&&a.importComplete(b)}catch(f){}}},a.ajaxOptions));break;case "jsonstring":a.impstring&&"string"==typeof a.impstring&&(g(a.impstring,a),c(d).triggerHandler("jqGridImportComplete",[a.impstring,a]),c.isFunction(a.importComplete)&&a.importComplete(a.impstring),a.impstring=null)}})},jqGridExport:function(a){var a=c.extend({exptype:"xmlstring",\n
+root:"grid",ident:"\\t"},a||{}),d=null;this.each(function(){if(this.grid){var b=c.extend(!0,{},c(this).jqGrid("getGridParam"));b.rownumbers&&(b.colNames.splice(0,1),b.colModel.splice(0,1));b.multiselect&&(b.colNames.splice(0,1),b.colModel.splice(0,1));b.subGrid&&(b.colNames.splice(0,1),b.colModel.splice(0,1));b.knv=null;if(b.treeGrid)for(var g in b.treeReader)b.treeReader.hasOwnProperty(g)&&(b.colNames.splice(b.colNames.length-1),b.colModel.splice(b.colModel.length-1));switch(a.exptype){case "xmlstring":d=\n
+"<"+a.root+">"+xmlJsonClass.json2xml(b,a.ident)+"</"+a.root+">";break;case "jsonstring":d="{"+xmlJsonClass.toJson(b,a.root,a.ident,!1)+"}",void 0!==b.postData.filters&&(d=d.replace(/filters":"/,\'filters":\'),d=d.replace(/}]}"/,"}]}"))}}});return d},excelExport:function(a){a=c.extend({exptype:"remote",url:null,oper:"oper",tag:"excel",exportOptions:{}},a||{});return this.each(function(){if(this.grid){var d;"remote"==a.exptype&&(d=c.extend({},this.p.postData),d[a.oper]=a.tag,d=jQuery.param(d),d=-1!=a.url.indexOf("?")?\n
+a.url+"&"+d:a.url+"?"+d,window.location=d)}})}})})(jQuery);\n
+var xmlJsonClass={xml2json:function(a,b){9===a.nodeType&&(a=a.documentElement);var g=this.toJson(this.toObj(this.removeWhite(a)),a.nodeName,"\\t");return"{\\n"+b+(b?g.replace(/\\t/g,b):g.replace(/\\t|\\n/g,""))+"\\n}"},json2xml:function(a,b){var g=function(a,b,e){var d="",f,i;if(a instanceof Array)if(0===a.length)d+=e+"<"+b+">__EMPTY_ARRAY_</"+b+">\\n";else{f=0;for(i=a.length;f<i;f+=1)var l=e+g(a[f],b,e+"\\t")+"\\n",d=d+l}else if("object"===typeof a){f=!1;d+=e+"<"+b;for(i in a)a.hasOwnProperty(i)&&("@"===\n
+i.charAt(0)?d+=" "+i.substr(1)+\'="\'+a[i].toString()+\'"\':f=!0);d+=f?">":"/>";if(f){for(i in a)a.hasOwnProperty(i)&&("#text"===i?d+=a[i]:"#cdata"===i?d+="<![CDATA["+a[i]+"]]\\>":"@"!==i.charAt(0)&&(d+=g(a[i],i,e+"\\t")));d+=("\\n"===d.charAt(d.length-1)?e:"")+"</"+b+">"}}else"function"===typeof a?d+=e+"<"+b+"><![CDATA["+a+"]]\\></"+b+">":(void 0===a&&(a=""),d=\'""\'===a.toString()||0===a.toString().length?d+(e+"<"+b+">__EMPTY_STRING_</"+b+">"):d+(e+"<"+b+">"+a.toString()+"</"+b+">"));return d},f="",e;for(e in a)a.hasOwnProperty(e)&&\n
+(f+=g(a[e],e,""));return b?f.replace(/\\t/g,b):f.replace(/\\t|\\n/g,"")},toObj:function(a){var b={},g=/function/i;if(1===a.nodeType){if(a.attributes.length){var f;for(f=0;f<a.attributes.length;f+=1)b["@"+a.attributes[f].nodeName]=(a.attributes[f].nodeValue||"").toString()}if(a.firstChild){var e=f=0,h=!1,c;for(c=a.firstChild;c;c=c.nextSibling)1===c.nodeType?h=!0:3===c.nodeType&&c.nodeValue.match(/[^ \\f\\n\\r\\t\\v]/)?f+=1:4===c.nodeType&&(e+=1);if(h)if(2>f&&2>e){this.removeWhite(a);for(c=a.firstChild;c;c=\n
+c.nextSibling)3===c.nodeType?b["#text"]=this.escape(c.nodeValue):4===c.nodeType?g.test(c.nodeValue)?b[c.nodeName]=[b[c.nodeName],c.nodeValue]:b["#cdata"]=this.escape(c.nodeValue):b[c.nodeName]?b[c.nodeName]instanceof Array?b[c.nodeName][b[c.nodeName].length]=this.toObj(c):b[c.nodeName]=[b[c.nodeName],this.toObj(c)]:b[c.nodeName]=this.toObj(c)}else a.attributes.length?b["#text"]=this.escape(this.innerXml(a)):b=this.escape(this.innerXml(a));else if(f)a.attributes.length?b["#text"]=this.escape(this.innerXml(a)):\n
+(b=this.escape(this.innerXml(a)),"__EMPTY_ARRAY_"===b?b="[]":"__EMPTY_STRING_"===b&&(b=""));else if(e)if(1<e)b=this.escape(this.innerXml(a));else for(c=a.firstChild;c;c=c.nextSibling)if(g.test(a.firstChild.nodeValue)){b=a.firstChild.nodeValue;break}else b["#cdata"]=this.escape(c.nodeValue)}!a.attributes.length&&!a.firstChild&&(b=null)}else 9===a.nodeType?b=this.toObj(a.documentElement):alert("unhandled node type: "+a.nodeType);return b},toJson:function(a,b,g,f){void 0===f&&(f=!0);var e=b?\'"\'+b+\'"\':\n
+"",h="\\t",c="\\n";f||(c=h="");if("[]"===a)e+=b?":[]":"[]";else if(a instanceof Array){var j,d,k=[];d=0;for(j=a.length;d<j;d+=1)k[d]=this.toJson(a[d],"",g+h,f);e+=(b?":[":"[")+(1<k.length?c+g+h+k.join(","+c+g+h)+c+g:k.join(""))+"]"}else if(null===a)e+=(b&&":")+"null";else if("object"===typeof a){j=[];for(d in a)a.hasOwnProperty(d)&&(j[j.length]=this.toJson(a[d],d,g+h,f));e+=(b?":{":"{")+(1<j.length?c+g+h+j.join(","+c+g+h)+c+g:j.join(""))+"}"}else e="string"===typeof a?e+((b&&":")+\'"\'+a.replace(/\\\\/g,\n
+"\\\\\\\\").replace(/\\"/g,\'\\\\"\')+\'"\'):e+((b&&":")+a.toString());return e},innerXml:function(a){var b="";if("innerHTML"in a)b=a.innerHTML;else for(var g=function(a){var b="",h;if(1===a.nodeType){b+="<"+a.nodeName;for(h=0;h<a.attributes.length;h+=1)b+=" "+a.attributes[h].nodeName+\'="\'+(a.attributes[h].nodeValue||"").toString()+\'"\';if(a.firstChild){b+=">";for(h=a.firstChild;h;h=h.nextSibling)b+=g(h);b+="</"+a.nodeName+">"}else b+="/>"}else 3===a.nodeType?b+=a.nodeValue:4===a.nodeType&&(b+="<![CDATA["+a.nodeValue+\n
+"]]\\>");return b},a=a.firstChild;a;a=a.nextSibling)b+=g(a);return b},escape:function(a){return a.replace(/[\\\\]/g,"\\\\\\\\").replace(/[\\"]/g,\'\\\\"\').replace(/[\\n]/g,"\\\\n").replace(/[\\r]/g,"\\\\r")},removeWhite:function(a){a.normalize();var b;for(b=a.firstChild;b;)if(3===b.nodeType)if(b.nodeValue.match(/[^ \\f\\n\\r\\t\\v]/))b=b.nextSibling;else{var g=b.nextSibling;a.removeChild(b);b=g}else 1===b.nodeType&&this.removeWhite(b),b=b.nextSibling;return a}};\n
+function tableToGrid(j,k){jQuery(j).each(function(){if(!this.grid){jQuery(this).width("99%");var b=jQuery(this).width(),c=jQuery("tr td:first-child input[type=checkbox]:first",jQuery(this)),a=jQuery("tr td:first-child input[type=radio]:first",jQuery(this)),c=0<c.length,a=!c&&0<a.length,i=c||a,d=[],e=[];jQuery("th",jQuery(this)).each(function(){0===d.length&&i?(d.push({name:"__selection__",index:"__selection__",width:0,hidden:!0}),e.push("__selection__")):(d.push({name:jQuery(this).attr("id")||jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(" ").join("_"),\n
+index:jQuery(this).attr("id")||jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(" ").join("_"),width:jQuery(this).width()||150}),e.push(jQuery(this).html()))});var f=[],g=[],h=[];jQuery("tbody > tr",jQuery(this)).each(function(){var b={},a=0;jQuery("td",jQuery(this)).each(function(){if(0===a&&i){var c=jQuery("input",jQuery(this)),e=c.attr("value");g.push(e||f.length);c.is(":checked")&&h.push(e);b[d[a].name]=c.attr("value")}else b[d[a].name]=jQuery(this).html();a++});0<a&&f.push(b)});\n
+jQuery(this).empty();jQuery(this).addClass("scroll");jQuery(this).jqGrid(jQuery.extend({datatype:"local",width:b,colNames:e,colModel:d,multiselect:c},k||{}));for(b=0;b<f.length;b++)a=null,0<g.length&&(a=g[b])&&a.replace&&(a=encodeURIComponent(a).replace(/[.\\-%]/g,"_")),null===a&&(a=b+1),jQuery(this).jqGrid("addRowData",a,f[b]);for(b=0;b<h.length;b++)jQuery(this).jqGrid("setSelection",h[b])}})};\n
+(function(b){b.browser.msie&&8==b.browser.version&&(b.expr[":"].hidden=function(b){return 0===b.offsetWidth||0===b.offsetHeight||"none"==b.style.display});b.jgrid._multiselect=!1;if(b.ui&&b.ui.multiselect){if(b.ui.multiselect.prototype._setSelected){var m=b.ui.multiselect.prototype._setSelected;b.ui.multiselect.prototype._setSelected=function(a,e){var c=m.call(this,a,e);if(e&&this.selectedList){var d=this.element;this.selectedList.find("li").each(function(){b(this).data("optionLink")&&b(this).data("optionLink").remove().appendTo(d)})}return c}}b.ui.multiselect.prototype.destroy&&\n
+(b.ui.multiselect.prototype.destroy=function(){this.element.show();this.container.remove();b.Widget===void 0?b.widget.prototype.destroy.apply(this,arguments):b.Widget.prototype.destroy.apply(this,arguments)});b.jgrid._multiselect=!0}b.jgrid.extend({sortableColumns:function(a){return this.each(function(){function e(){c.p.disableClick=true}var c=this,d=b.jgrid.jqID(c.p.id),d={tolerance:"pointer",axis:"x",scrollSensitivity:"1",items:">th:not(:has(#jqgh_"+d+"_cb,#jqgh_"+d+"_rn,#jqgh_"+d+"_subgrid),:hidden)",\n
+placeholder:{element:function(a){return b(document.createElement(a[0].nodeName)).addClass(a[0].className+" ui-sortable-placeholder ui-state-highlight").removeClass("ui-sortable-helper")[0]},update:function(b,a){a.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));a.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}},update:function(a,\n
+g){var d=b(g.item).parent(),d=b(">th",d),e={},i=c.p.id+"_";b.each(c.p.colModel,function(b){e[this.name]=b});var h=[];d.each(function(){var a=b(">div",this).get(0).id.replace(/^jqgh_/,"").replace(i,"");a in e&&h.push(e[a])});b(c).jqGrid("remapColumns",h,true,true);b.isFunction(c.p.sortable.update)&&c.p.sortable.update(h);setTimeout(function(){c.p.disableClick=false},50)}};if(c.p.sortable.options)b.extend(d,c.p.sortable.options);else if(b.isFunction(c.p.sortable))c.p.sortable={update:c.p.sortable};\n
+if(d.start){var g=d.start;d.start=function(b,a){e();g.call(this,b,a)}}else d.start=e;if(c.p.sortable.exclude)d.items=d.items+(":not("+c.p.sortable.exclude+")");a.sortable(d).data("sortable").floating=true})},columnChooser:function(a){function e(a,c){a&&(typeof a=="string"?b.fn[a]&&b.fn[a].apply(c,b.makeArray(arguments).slice(2)):b.isFunction(a)&&a.apply(c,b.makeArray(arguments).slice(2)))}var c=this;if(!b("#colchooser_"+b.jgrid.jqID(c[0].p.id)).length){var d=b(\'<div id="colchooser_\'+c[0].p.id+\'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>\'),\n
+g=b("select",d),a=b.extend({width:420,height:240,classname:null,done:function(b){b&&c.jqGrid("remapColumns",b,true)},msel:"multiselect",dlog:"dialog",dialog_opts:{minWidth:470},dlog_opts:function(a){var c={};c[a.bSubmit]=function(){a.apply_perm();a.cleanup(false)};c[a.bCancel]=function(){a.cleanup(true)};return b.extend(true,{buttons:c,close:function(){a.cleanup(true)},modal:a.modal?a.modal:false,resizable:a.resizable?a.resizable:true,width:a.width+20},a.dialog_opts||{})},apply_perm:function(){b("option",\n
+g).each(function(){this.selected?c.jqGrid("showCol",k[this.value].name):c.jqGrid("hideCol",k[this.value].name)});var d=[];b("option:selected",g).each(function(){d.push(parseInt(this.value,10))});b.each(d,function(){delete f[k[parseInt(this,10)].name]});b.each(f,function(){var b=parseInt(this,10);var a=d,c=b;if(c>=0){var g=a.slice(),e=g.splice(c,Math.max(a.length-c,c));if(c>a.length)c=a.length;g[c]=b;d=g.concat(e)}else d=void 0});a.done&&a.done.call(c,d)},cleanup:function(b){e(a.dlog,d,"destroy");\n
+e(a.msel,g,"destroy");d.remove();b&&a.done&&a.done.call(c)},msel_opts:{}},b.jgrid.col,a||{});if(b.ui&&b.ui.multiselect&&a.msel=="multiselect"){if(!b.jgrid._multiselect){alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");return}a.msel_opts=b.extend(b.ui.multiselect.defaults,a.msel_opts)}a.caption&&d.attr("title",a.caption);if(a.classname){d.addClass(a.classname);g.addClass(a.classname)}if(a.width){b(">div",d).css({width:a.width,margin:"0 auto"});g.css("width",\n
+a.width)}if(a.height){b(">div",d).css("height",a.height);g.css("height",a.height-10)}var k=c.jqGrid("getGridParam","colModel"),p=c.jqGrid("getGridParam","colNames"),f={},j=[];g.empty();b.each(k,function(b){f[this.name]=b;this.hidedlg?this.hidden||j.push(b):g.append("<option value=\'"+b+"\' "+(this.hidden?"":"selected=\'selected\'")+">"+jQuery.jgrid.stripHtml(p[b])+"</option>")});var i=b.isFunction(a.dlog_opts)?a.dlog_opts.call(c,a):a.dlog_opts;e(a.dlog,d,i);i=b.isFunction(a.msel_opts)?a.msel_opts.call(c,\n
+a):a.msel_opts;e(a.msel,g,i)}},sortableRows:function(a){return this.each(function(){var e=this;if(e.grid&&!e.p.treeGrid&&b.fn.sortable){a=b.extend({cursor:"move",axis:"y",items:".jqgrow"},a||{});if(a.start&&b.isFunction(a.start)){a._start_=a.start;delete a.start}else a._start_=false;if(a.update&&b.isFunction(a.update)){a._update_=a.update;delete a.update}else a._update_=false;a.start=function(c,d){b(d.item).css("border-width","0px");b("td",d.item).each(function(b){this.style.width=e.grid.cols[b].style.width});\n
+if(e.p.subGrid){var g=b(d.item).attr("id");try{b(e).jqGrid("collapseSubGridRow",g)}catch(k){}}a._start_&&a._start_.apply(this,[c,d])};a.update=function(c,d){b(d.item).css("border-width","");e.p.rownumbers===true&&b("td.jqgrid-rownum",e.rows).each(function(a){b(this).html(a+1+(parseInt(e.p.page,10)-1)*parseInt(e.p.rowNum,10))});a._update_&&a._update_.apply(this,[c,d])};b("tbody:first",e).sortable(a);b("tbody:first",e).disableSelection()}})},gridDnD:function(a){return this.each(function(){function e(){var a=\n
+b.data(c,"dnd");b("tr.jqgrow:not(.ui-draggable)",c).draggable(b.isFunction(a.drag)?a.drag.call(b(c),a):a.drag)}var c=this;if(c.grid&&!c.p.treeGrid&&b.fn.draggable&&b.fn.droppable){b("#jqgrid_dnd")[0]===void 0&&b("body").append("<table id=\'jqgrid_dnd\' class=\'ui-jqgrid-dnd\'></table>");if(typeof a=="string"&&a=="updateDnD"&&c.p.jqgdnd===true)e();else{a=b.extend({drag:function(a){return b.extend({start:function(d,e){if(c.p.subGrid){var f=b(e.helper).attr("id");try{b(c).jqGrid("collapseSubGridRow",f)}catch(j){}}for(f=\n
+0;f<b.data(c,"dnd").connectWith.length;f++)b(b.data(c,"dnd").connectWith[f]).jqGrid("getGridParam","reccount")=="0"&&b(b.data(c,"dnd").connectWith[f]).jqGrid("addRowData","jqg_empty_row",{});e.helper.addClass("ui-state-highlight");b("td",e.helper).each(function(b){this.style.width=c.grid.headers[b].width+"px"});a.onstart&&b.isFunction(a.onstart)&&a.onstart.call(b(c),d,e)},stop:function(d,e){if(e.helper.dropped&&!a.dragcopy){var f=b(e.helper).attr("id");f===void 0&&(f=b(this).attr("id"));b(c).jqGrid("delRowData",\n
+f)}for(f=0;f<b.data(c,"dnd").connectWith.length;f++)b(b.data(c,"dnd").connectWith[f]).jqGrid("delRowData","jqg_empty_row");a.onstop&&b.isFunction(a.onstop)&&a.onstop.call(b(c),d,e)}},a.drag_opts||{})},drop:function(a){return b.extend({accept:function(a){if(!b(a).hasClass("jqgrow"))return a;a=b(a).closest("table.ui-jqgrid-btable");if(a.length>0&&b.data(a[0],"dnd")!==void 0){a=b.data(a[0],"dnd").connectWith;return b.inArray("#"+b.jgrid.jqID(this.id),a)!=-1?true:false}return false},drop:function(d,e){if(b(e.draggable).hasClass("jqgrow")){var f=\n
+b(e.draggable).attr("id"),f=e.draggable.parent().parent().jqGrid("getRowData",f);if(!a.dropbyname){var j=0,i={},h,n=b("#"+b.jgrid.jqID(this.id)).jqGrid("getGridParam","colModel");try{for(var o in f){h=n[j].name;h=="cb"||(h=="rn"||h=="subgrid")||f.hasOwnProperty(o)&&n[j]&&(i[h]=f[o]);j++}f=i}catch(m){}}e.helper.dropped=true;if(a.beforedrop&&b.isFunction(a.beforedrop)){h=a.beforedrop.call(this,d,e,f,b("#"+b.jgrid.jqID(c.p.id)),b(this));typeof h!="undefined"&&(h!==null&&typeof h=="object")&&(f=h)}if(e.helper.dropped){var l;\n
+if(a.autoid)if(b.isFunction(a.autoid))l=a.autoid.call(this,f);else{l=Math.ceil(Math.random()*1E3);l=a.autoidprefix+l}b("#"+b.jgrid.jqID(this.id)).jqGrid("addRowData",l,f,a.droppos)}a.ondrop&&b.isFunction(a.ondrop)&&a.ondrop.call(this,d,e,f)}}},a.drop_opts||{})},onstart:null,onstop:null,beforedrop:null,ondrop:null,drop_opts:{activeClass:"ui-state-active",hoverClass:"ui-state-hover"},drag_opts:{revert:"invalid",helper:"clone",cursor:"move",appendTo:"#jqgrid_dnd",zIndex:5E3},dragcopy:false,dropbyname:false,\n
+droppos:"first",autoid:true,autoidprefix:"dnd_"},a||{});if(a.connectWith){a.connectWith=a.connectWith.split(",");a.connectWith=b.map(a.connectWith,function(a){return b.trim(a)});b.data(c,"dnd",a);c.p.reccount!="0"&&!c.p.jqgdnd&&e();c.p.jqgdnd=true;for(var d=0;d<a.connectWith.length;d++)b(a.connectWith[d]).droppable(b.isFunction(a.drop)?a.drop.call(b(c),a):a.drop)}}}})},gridResize:function(a){return this.each(function(){var e=this,c=b.jgrid.jqID(e.p.id);if(e.grid&&b.fn.resizable){a=b.extend({},a||\n
+{});if(a.alsoResize){a._alsoResize_=a.alsoResize;delete a.alsoResize}else a._alsoResize_=false;if(a.stop&&b.isFunction(a.stop)){a._stop_=a.stop;delete a.stop}else a._stop_=false;a.stop=function(d,g){b(e).jqGrid("setGridParam",{height:b("#gview_"+c+" .ui-jqgrid-bdiv").height()});b(e).jqGrid("setGridWidth",g.size.width,a.shrinkToFit);a._stop_&&a._stop_.call(e,d,g)};a.alsoResize=a._alsoResize_?eval("("+("{\'#gview_"+c+" .ui-jqgrid-bdiv\':true,\'"+a._alsoResize_+"\':true}")+")"):b(".ui-jqgrid-bdiv","#gview_"+\n
+c);delete a._alsoResize_;b("#gbox_"+c).resizable(a)}})}})})(jQuery);\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.src.js.xml b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.src.js.xml
index b69bb6360f1ad83a6212cd7ed26887e1b6ec529c..079a0c1d285e0dc03fa0cc61904a992cfddca981 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.src.js.xml
+++ b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/jquery.jqGrid.src.js.xml
@@ -12,7 +12,7 @@
         </item>
         <item>
             <key> <string>_EtagSupport__etag</string> </key>
-            <value> <string>ts30690511.77</string> </value>
+            <value> <string>ts58176234.25</string> </value>
         </item>
         <item>
             <key> <string>__name__</string> </key>
@@ -34,7 +34,7 @@
         </item>
         <item>
             <key> <string>size</string> </key>
-            <value> <int>418973</int> </value>
+            <value> <int>441297</int> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
@@ -57,12 +57,12 @@
 // @compilation_level SIMPLE_OPTIMIZATIONS\r\n
 \r\n
 /**\r\n
- * @license jqGrid  4.3.1  - jQuery Grid\r\n
+ * @license jqGrid  4.4.1  - jQuery Grid\r\n
  * Copyright (c) 2008, Tony Tomov, tony@trirand.com\r\n
  * Dual licensed under the MIT and GPL licenses\r\n
  * http://www.opensource.org/licenses/mit-license.php\r\n
  * http://www.gnu.org/licenses/gpl-2.0.html\r\n
- * Date: 2011-12-20\r\n
+ * Date: 2012-08-28\r\n
  */\r\n
 //jsHint options\r\n
 /*global document, window, jQuery, DOMParser, ActiveXObject, $, alert */\r\n
@@ -71,6 +71,7 @@
 "use strict";\r\n
 $.jgrid = $.jgrid || {};\r\n
 $.extend($.jgrid,{\r\n
+\tversion : "4.4.1",\r\n
 \thtmlDecode : function(value){\r\n
 \t\tif(value && (value==\'&nbsp;\' || value==\'&#160;\' || (value.length===1 && value.charCodeAt(0)===160))) { return "";}\r\n
 \t\treturn !value ? value : String(value).replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, \'"\').replace(/&amp;/g, "&");\t\t\r\n
@@ -102,12 +103,9 @@ $.extend($.jgrid,{\r\n
 \t\t\treturn v;\r\n
 \t\t}\r\n
 \t},\r\n
-\trealType : function (arg) {\r\n
-\t\treturn Object.prototype.toString.call(arg).slice(8, -1);\r\n
-\t},\r\n
 \tstripPref : function (pref, id) {\r\n
-\t\tvar obj = this.realType( pref );\r\n
-\t\tif( obj == "String" || obj =="Number") {\r\n
+\t\tvar obj = $.type( pref );\r\n
+\t\tif( obj == "string" || obj =="number") {\r\n
 \t\t\tpref =  String(pref);\r\n
 \t\t\tid = pref !== "" ? String(id).replace(String(pref), "") : id;\r\n
 \t\t}\r\n
@@ -133,30 +131,39 @@ $.extend($.jgrid,{\r\n
 \t\tif (js.substr(0,2) == "/*") { js = js.substr(2,js.length-4); }\r\n
 \t\tif(!js) { js = "{}"; }\r\n
 \t\treturn ($.jgrid.useJSON===true && typeof (JSON) === \'object\' && typeof (JSON.parse) === \'function\') ?\r\n
-\t\t    JSON.parse(js) :\r\n
-\t\t    eval(\'(\' + js + \')\');\r\n
+\t\t\tJSON.parse(js) :\r\n
+\t\t\teval(\'(\' + js + \')\');\r\n
 \t},\r\n
 \tparseDate : function(format, date) {\r\n
 \t\tvar tsp = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},k,hl,dM, regdate = /[\\\\\\/:_;.,\\t\\T\\s-]/;\r\n
 \t\tif(date && date !== null && date !== undefined){\r\n
 \t\t\tdate = $.trim(date);\r\n
 \t\t\tdate = date.split(regdate);\r\n
+\t\t\tif ($.jgrid.formatter.date.masks[format] !== undefined) {\r\n
+\t\t\t\tformat = $.jgrid.formatter.date.masks[format];\r\n
+\t\t\t}\r\n
 \t\t\tformat = format.split(regdate);\r\n
 \t\t\tvar dfmt  = $.jgrid.formatter.date.monthNames;\r\n
 \t\t\tvar afmt  = $.jgrid.formatter.date.AmPm;\r\n
 \t\t\tvar h12to24 = function(ampm, h){\r\n
 \t\t\t\tif (ampm === 0){ if (h === 12) { h = 0;} }\r\n
-\t\t\t\t          else { if (h !== 12) { h += 12; } }\r\n
+\t\t\t\telse { if (h !== 12) { h += 12; } }\r\n
 \t\t\t\treturn h;\r\n
 \t\t\t};\r\n
 \t\t\tfor(k=0,hl=format.length;k<hl;k++){\r\n
 \t\t\t\tif(format[k] == \'M\') {\r\n
 \t\t\t\t\tdM = $.inArray(date[k],dfmt);\r\n
-\t\t\t\t\tif(dM !== -1 && dM < 12){date[k] = dM+1;}\r\n
+\t\t\t\t\tif(dM !== -1 && dM < 12){\r\n
+\t\t\t\t\t\tdate[k] = dM+1;\r\n
+\t\t\t\t\t\ttsp.m = date[k];\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(format[k] == \'F\') {\r\n
 \t\t\t\t\tdM = $.inArray(date[k],dfmt);\r\n
-\t\t\t\t\tif(dM !== -1 && dM > 11){date[k] = dM+1-12;}\r\n
+\t\t\t\t\tif(dM !== -1 && dM > 11){\r\n
+\t\t\t\t\t\tdate[k] = dM+1-12;\r\n
+\t\t\t\t\t\ttsp.m = date[k];\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(format[k] == \'a\') {\r\n
 \t\t\t\t\tdM = $.inArray(date[k],afmt);\r\n
@@ -172,6 +179,9 @@ $.extend($.jgrid,{\r\n
 \t\t\t\t\t\ttsp.h = h12to24(date[k], tsp.h);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
+\t\t\t\tif (format[k] === \'g\') {\r\n
+\t\t\t\t\ttsp.h = parseInt(date[k], 10);\r\n
+\t\t\t\t}\r\n
 \t\t\t\tif(date[k] !== undefined) {\r\n
 \t\t\t\t\ttsp[format[k].toLowerCase()] = parseInt(date[k],10);\r\n
 \t\t\t\t}\r\n
@@ -180,6 +190,8 @@ $.extend($.jgrid,{\r\n
 \t\t\tvar ty = tsp.y;\r\n
 \t\t\tif (ty >= 70 && ty <= 99) {tsp.y = 1900+tsp.y;}\r\n
 \t\t\telse if (ty >=0 && ty <=69) {tsp.y= 2000+tsp.y;}\r\n
+\t\t\tif(tsp.j !== undefined) { tsp.d = tsp.j; }\r\n
+\t\t\tif(tsp.n !== undefined) { tsp.m = parseInt(tsp.n,10)-1; }\r\n
 \t\t}\r\n
 \t\treturn new Date(tsp.y, tsp.m, tsp.d, tsp.h, tsp.i, tsp.s, tsp.u);\r\n
 \t},\r\n
@@ -203,7 +215,7 @@ $.extend($.jgrid,{\r\n
 \t\t\t\ti = prm.length;\r\n
 \t\t\t\tif( i ) {\r\n
 \t\t\t\t\tret = obj;\r\n
-\t\t\t\t    while (ret && i--) {\r\n
+\t\t\t\t\twhile (ret && i--) {\r\n
 \t\t\t\t\t\tp = prm.shift();\r\n
 \t\t\t\t\t\tret = ret[p];\r\n
 \t\t\t\t\t}\r\n
@@ -227,11 +239,19 @@ $.extend($.jgrid,{\r\n
 \t\t\treturn ret.length > 0 ? $(ret).text() : undefined;\r\n
 \t\t}\r\n
 \t},\r\n
+\tcellWidth : function () {\r\n
+\t\tvar $testDiv = $("<div class=\'ui-jqgrid\' style=\'left:10000px\'><table class=\'ui-jqgrid-btable\' style=\'width:5px;\'><tr class=\'jqgrow\'><td style=\'width:5px;\'></td></tr></table></div>"),\r\n
+\t\ttestCell = $testDiv.appendTo("body")\r\n
+\t\t\t.find("td")\r\n
+\t\t\t.width();\r\n
+\t\t$testDiv.remove();\r\n
+\t\treturn testCell !== 5;\r\n
+\t},\r\n
 \tajaxOptions: {},\r\n
-\tfrom : function(source,initalQuery){\r\n
+\tfrom : function(source){\r\n
 \t\t// Original Author Hugo Bonacci\r\n
 \t\t// License MIT http://jlinq.codeplex.com/license\r\n
-\t\tvar queryObject=function(d,q){\r\n
+\t\tvar QueryObject=function(d,q){\r\n
 \t\tif(typeof(d)=="string"){\r\n
 \t\t\td=$.data(d);\r\n
 \t\t}\r\n
@@ -290,11 +310,8 @@ $.extend($.jgrid,{\r\n
 \t\t\tif(_trim){\r\n
 \t\t\t\tphrase=$.trim(phrase);\r\n
 \t\t\t}\r\n
-\t\t\tif(!_usecase){\r\n
-\t\t\t\tphrase=phrase.toLowerCase();\r\n
-\t\t\t}\r\n
 \t\t\tphrase=phrase.toString().replace(/\\\\/g,\'\\\\\\\\\').replace(/\\"/g,\'\\\\"\');\r\n
-\t\t\treturn phrase;\r\n
+\t\t\treturn _usecase ? phrase : phrase.toLowerCase();\r\n
 \t\t};\r\n
 \t\tthis._funcLoop=function(func){\r\n
 \t\t\tvar results=[];\r\n
@@ -347,6 +364,7 @@ $.extend($.jgrid,{\r\n
 \t\t\treturn(self._compare(a,b,1)===0);\r\n
 \t\t};\r\n
 \t\tthis._compare=function(a,b,d){\r\n
+\t\t\tvar toString = Object.prototype.toString;\r\n
 \t\t\tif( d === undefined) { d = 1; }\r\n
 \t\t\tif(a===undefined) { a = null; }\r\n
 \t\t\tif(b===undefined) { b = null; }\r\n
@@ -359,6 +377,11 @@ $.extend($.jgrid,{\r\n
 \t\t\tif(a!==null&&b===null){\r\n
 \t\t\t\treturn -1;\r\n
 \t\t\t}\r\n
+\t\t\tif (toString.call(a) === \'[object Date]\' && toString.call(b) === \'[object Date]\') {\r\n
+\t\t\t\tif (a < b) { return -d; }\r\n
+\t\t\t\tif (a > b) { return d; }\r\n
+\t\t\t\treturn 0;\r\n
+\t\t\t}\r\n
 \t\t\tif(!_usecase && typeof(a) !== "number" && typeof(b) !== "number" ) {\r\n
 \t\t\t\ta=String(a).toLowerCase();\r\n
 \t\t\t\tb=String(b).toLowerCase();\r\n
@@ -396,22 +419,22 @@ $.extend($.jgrid,{\r\n
 \r\n
 \t\t\tif(type === undefined ) { type = "text"; }\r\n
 \t\t\tif (type == \'float\' || type== \'number\' || type== \'currency\' || type== \'numeric\') {\r\n
-\t\t\t\tfindSortKey = function($cell, a) {\r\n
+\t\t\t\tfindSortKey = function($cell) {\r\n
 \t\t\t\t\tvar key = parseFloat( String($cell).replace(_stripNum, \'\'));\r\n
 \t\t\t\t\treturn isNaN(key) ? 0.00 : key;\r\n
 \t\t\t\t};\r\n
 \t\t\t} else if (type==\'int\' || type==\'integer\') {\r\n
-\t\t\t\tfindSortKey = function($cell, a) {\r\n
+\t\t\t\tfindSortKey = function($cell) {\r\n
 \t\t\t\t\treturn $cell ? parseFloat(String($cell).replace(_stripNum, \'\')) : 0;\r\n
 \t\t\t\t};\r\n
 \t\t\t} else if(type == \'date\' || type == \'datetime\') {\r\n
-\t\t\t\tfindSortKey = function($cell, a) {\r\n
+\t\t\t\tfindSortKey = function($cell) {\r\n
 \t\t\t\t\treturn $.jgrid.parseDate(dfmt,$cell).getTime();\r\n
 \t\t\t\t};\r\n
 \t\t\t} else if($.isFunction(type)) {\r\n
 \t\t\t\tfindSortKey = type;\r\n
 \t\t\t} else {\r\n
-\t\t\t\tfindSortKey = function($cell, a) {\r\n
+\t\t\t\tfindSortKey = function($cell) {\r\n
 \t\t\t\t\tif(!$cell) {$cell ="";}\r\n
 \t\t\t\t\treturn $.trim(String($cell).toUpperCase());\r\n
 \t\t\t\t};\r\n
@@ -502,7 +525,7 @@ $.extend($.jgrid,{\r\n
 \t\t\t}\r\n
 \t\t\treturn _data;\r\n
 \t\t};\r\n
-\t\tthis.hasMatch=function(f){\r\n
+\t\tthis.hasMatch=function(){\r\n
 \t\t\tif(!self._hasData()) { return false; }\r\n
 \t\t\tself.execute();\r\n
 \t\t\treturn _data.length>0;\r\n
@@ -663,7 +686,7 @@ $.extend($.jgrid,{\r\n
 \t\t};\r\n
 \t\treturn self;\r\n
 \t\t};\r\n
-\treturn new queryObject(source,null);\r\n
+\treturn new QueryObject(source,null);\r\n
 \t},\r\n
 \textend : function(methods) {\r\n
 \t\t$.extend($.fn.jqGrid,methods);\r\n
@@ -785,12 +808,12 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tdata : [],\r\n
 \t\t\t_index : {},\r\n
 \t\t\tgrouping : false,\r\n
-\t\t\tgroupingView : {groupField:[],groupOrder:[], groupText:[],groupColumnShow:[],groupSummary:[], showSummaryOnHide: false, sortitems:[], sortnames:[], groupDataSorted : false, summary:[],summaryval:[], plusicon: \'ui-icon-circlesmall-plus\', minusicon: \'ui-icon-circlesmall-minus\'},\r\n
+\t\t\tgroupingView : {groupField:[],groupOrder:[], groupText:[],groupColumnShow:[],groupSummary:[], showSummaryOnHide: false, sortitems:[], sortnames:[], summary:[],summaryval:[], plusicon: \'ui-icon-circlesmall-plus\', minusicon: \'ui-icon-circlesmall-minus\'},\r\n
 \t\t\tignoreCase : false,\r\n
 \t\t\tcmTemplate : {},\r\n
 \t\t\tidPrefix : ""\r\n
 \t\t}, $.jgrid.defaults, pin || {});\r\n
-\t\tvar grid={\r\n
+\t\tvar ts= this, grid={\r\n
 \t\t\theaders:[],\r\n
 \t\t\tcols:[],\r\n
 \t\t\tfooters: [],\r\n
@@ -799,6 +822,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tthis.hDiv.style.cursor = "col-resize";\r\n
 \t\t\t\tthis.curGbox = $("#rs_m"+$.jgrid.jqID(p.id),"#gbox_"+$.jgrid.jqID(p.id));\r\n
 \t\t\t\tthis.curGbox.css({display:"block",left:y[0],top:y[1],height:y[2]});\r\n
+\t\t\t\t$(ts).triggerHandler("jqGridResizeStart", [x, i]);\r\n
 \t\t\t\tif($.isFunction(p.resizeStart)) { p.resizeStart.call(this,x,i); }\r\n
 \t\t\t\tdocument.onselectstart=function(){return false;};\r\n
 \t\t\t},\r\n
@@ -853,6 +877,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\t\tthis.sDiv.scrollLeft = this.bDiv.scrollLeft;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridResizeStop", [nw, idx]);\r\n
 \t\t\t\t\tif($.isFunction(p.resizeStop)) { p.resizeStop.call(this,nw,idx); }\r\n
 \t\t\t\t}\r\n
 \t\t\t\tthis.curGbox = null;\r\n
@@ -881,7 +906,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tvar tbot = ttop + table.height();\r\n
 \t\t\t\tvar div = rh * rn;\r\n
 \t\t\t\tvar page, npage, empty;\r\n
-\t\t\t    if ( tbot < dh && ttop <= 0 &&\r\n
+\t\t\t\tif ( tbot < dh && ttop <= 0 &&\r\n
 \t\t\t\t\t(p.lastpage===undefined||parseInt((tbot + scrollTop + div - 1) / div,10) <= p.lastpage))\r\n
 \t\t\t\t{\r\n
 \t\t\t\t\tnpage = parseInt((dh - tbot + div - 1) / div,10);\r\n
@@ -907,7 +932,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\tp.page = page;\r\n
 \t\t\t\t\t\tif (empty) {\r\n
 \t\t\t\t\t\t\tgrid.selectionPreserver(table[0]);\r\n
-\t\t\t\t\t\t\tgrid.emptyRows(grid.bDiv,false, false);\r\n
+\t\t\t\t\t\t\tgrid.emptyRows.call(table[0], false, false);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tgrid.populate(npage);\r\n
 \t\t\t\t\t}\r\n
@@ -930,39 +955,43 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tif( e ) { e.stopPropagation(); }\r\n
 \t\t\t},\r\n
 \t\t\tselectionPreserver : function(ts) {\r\n
-\t\t\t\tvar p = ts.p;\r\n
-\t\t\t\tvar sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;\r\n
-\t\t\t\tvar left = ts.grid.bDiv.scrollLeft;\r\n
-\t\t\t\tvar complete = p.gridComplete;\r\n
-\t\t\t\tp.gridComplete = function() {\r\n
+\t\t\t\tvar p = ts.p,\r\n
+\t\t\t\tsr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,\r\n
+\t\t\t\tleft = ts.grid.bDiv.scrollLeft,\r\n
+\t\t\t\trestoreSelection = function() {\r\n
+\t\t\t\t\tvar i;\r\n
 \t\t\t\t\tp.selrow = null;\r\n
 \t\t\t\t\tp.selarrrow = [];\r\n
 \t\t\t\t\tif(p.multiselect && sra && sra.length>0) {\r\n
-\t\t\t\t\t\tfor(var i=0;i<sra.length;i++){\r\n
+\t\t\t\t\t\tfor(i=0;i<sra.length;i++){\r\n
 \t\t\t\t\t\t\tif (sra[i] != sr) {\r\n
-\t\t\t\t\t\t\t\t$(ts).jqGrid("setSelection",sra[i],false);\r\n
+\t\t\t\t\t\t\t\t$(ts).jqGrid("setSelection",sra[i],false, null);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif (sr) {\r\n
-\t\t\t\t\t\t$(ts).jqGrid("setSelection",sr,false);\r\n
+\t\t\t\t\t\t$(ts).jqGrid("setSelection",sr,false,null);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tts.grid.bDiv.scrollLeft = left;\r\n
-\t\t\t\t\tp.gridComplete = complete;\r\n
-\t\t\t\t\tif (p.gridComplete) {\r\n
-\t\t\t\t\t\tcomplete();\r\n
-\t\t\t\t\t}\r\n
+\t\t\t\t\t$(ts).unbind(\'.selectionPreserver\', restoreSelection);\r\n
 \t\t\t\t};\r\n
+\t\t\t\t$(ts).bind(\'jqGridGridComplete.selectionPreserver\', restoreSelection);\t\t\t\t\r\n
 \t\t\t}\r\n
 \t\t};\r\n
 \t\tif(this.tagName.toUpperCase()!=\'TABLE\') {\r\n
 \t\t\talert("Element is not a table");\r\n
 \t\t\treturn;\r\n
 \t\t}\r\n
+\t\tif(document.documentMode !== undefined ) { // IE only\r\n
+\t\t\tif(document.documentMode <= 5) {\r\n
+\t\t\t\talert("Grid can not be used in this (\'quirks\') mode!");\r\n
+\t\t\t\treturn;\r\n
+\t\t\t}\r\n
+\t\t}\r\n
 \t\t$(this).empty().attr("tabindex","1");\r\n
 \t\tthis.p = p ;\r\n
 \t\tthis.p.useProp = !!$.fn.prop;\r\n
-\t\tvar i, dir,ts;\r\n
+\t\tvar i, dir;\r\n
 \t\tif(this.p.colNames.length === 0) {\r\n
 \t\t\tfor (i=0;i<this.p.colModel.length;i++){\r\n
 \t\t\t\tthis.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;\r\n
@@ -973,9 +1002,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\treturn;\r\n
 \t\t}\r\n
 \t\tvar gv = $("<div class=\'ui-jqgrid-view\'></div>"), ii,\r\n
-\t\tisMSIE = $.browser.msie ? true:false,\r\n
-\t\tisSafari = $.browser.webkit || $.browser.safari ? true : false;\r\n
-\t\tts = this;\r\n
+\t\tisMSIE = $.browser.msie ? true:false;\r\n
 \t\tts.p.direction = $.trim(ts.p.direction.toLowerCase());\r\n
 \t\tif($.inArray(ts.p.direction,["ltr","rtl"]) == -1) { ts.p.direction = "ltr"; }\r\n
 \t\tdir = ts.p.direction;\r\n
@@ -1038,7 +1065,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tif($.isFunction( cm.formatter ) ) {\r\n
 \t\t\t\t\tv = cm.formatter.call(ts,cellval,opts,rwdat,_act);\r\n
 \t\t\t\t} else if($.fmatter){\r\n
-\t\t\t\t\tv = $.fn.fmatter(cm.formatter, cellval,opts, rwdat, _act);\r\n
+\t\t\t\t\tv = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);\r\n
 \t\t\t\t} else {\r\n
 \t\t\t\t\tv = cellVal(cellval);\r\n
 \t\t\t\t}\r\n
@@ -1053,8 +1080,8 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tprp = formatCol( pos,irow, v, srvr, rowId, true);\r\n
 \t\t\treturn "<td role=\\"gridcell\\" "+prp+">"+v+"</td>";\r\n
 \t\t},\r\n
-\t\taddMulti = function(rowid,pos,irow){\r\n
-\t\t\tvar\tv = "<input role=\\"checkbox\\" type=\\"checkbox\\""+" id=\\"jqg_"+ts.p.id+"_"+rowid+"\\" class=\\"cbox\\" name=\\"jqg_"+ts.p.id+"_"+rowid+"\\"/>",\r\n
+\t\taddMulti = function(rowid,pos,irow,checked){\r\n
+\t\t\tvar\tv = "<input role=\\"checkbox\\" type=\\"checkbox\\""+" id=\\"jqg_"+ts.p.id+"_"+rowid+"\\" class=\\"cbox\\" name=\\"jqg_"+ts.p.id+"_"+rowid+"\\"" + ((checked) ? "checked=\\"checked\\"" : "")+"/>",\r\n
 \t\t\tprp = formatCol( pos,irow,\'\',null, rowid, true);\r\n
 \t\t\treturn "<td role=\\"gridcell\\" "+prp+">"+v+"</td>";\r\n
 \t\t},\r\n
@@ -1086,20 +1113,23 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t}\r\n
 \t\t\treturn order;\r\n
 \t\t},\r\n
-\t\temptyRows = function (parent, scroll, locdata) {\r\n
-\t\t\tif(ts.p.deepempty) {$("#"+$.jgrid.jqID(ts.p.id)+" tbody:first tr:gt(0)").remove();}\r\n
-\t\t\telse {\r\n
-\t\t\t\tvar trf = $("#"+$.jgrid.jqID(ts.p.id)+" tbody:first tr:first")[0];\r\n
-\t\t\t\t$("#"+$.jgrid.jqID(ts.p.id)+" tbody:first").empty().append(trf);\r\n
-\t\t\t}\r\n
-\t\t\tif (scroll && ts.p.scroll) {\r\n
-\t\t\t\t$(">div:first", parent).css({height:"auto"}).children("div:first").css({height:0,display:"none"});\r\n
-\t\t\t\tparent.scrollTop = 0;\r\n
+\t\temptyRows = function (scroll, locdata) {\r\n
+\t\t\tvar firstrow;\r\n
+\t\t\tif (this.p.deepempty) {\r\n
+\t\t\t\t$(this.rows).slice(1).remove();\r\n
+\t\t\t} else {\r\n
+\t\t\t\tfirstrow = this.rows.length > 0 ? this.rows[0] : null;\r\n
+\t\t\t\t$(this.firstChild).empty().append(firstrow);\r\n
 \t\t\t}\r\n
-\t\t\tif(locdata === true) {\r\n
-\t\t\t\tif(ts.p.treeGrid === true ) {\r\n
-\t\t\t\tts.p.data = []; ts.p._index = {};\r\n
+\t\t\tif (scroll && this.p.scroll) {\r\n
+\t\t\t\t$(this.grid.bDiv.firstChild).css({height: "auto"});\r\n
+\t\t\t\t$(this.grid.bDiv.firstChild.firstChild).css({height: 0, display: "none"});\r\n
+\t\t\t\tif (this.grid.bDiv.scrollTop !== 0) {\r\n
+\t\t\t\t\tthis.grid.bDiv.scrollTop = 0;\r\n
+\t\t\t\t}\r\n
 \t\t\t}\r\n
+\t\t\tif(locdata === true && this.p.treeGrid) {\r\n
+\t\t\t\tthis.p.data = []; this.p._index = {};\r\n
 \t\t\t}\r\n
 \t\t},\r\n
 \t\trefreshIndex = function() {\r\n
@@ -1118,6 +1148,38 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tts.p._index[val] = i;\r\n
 \t\t\t}\r\n
 \t\t},\r\n
+\t\tconstructTr = function(id, hide, altClass, rd, cur, selected) {\r\n
+\t\t\tvar tabindex = \'-1\', restAttr = \'\', attrName, style = hide ? \'display:none;\' : \'\',\r\n
+\t\t\t\tclasses = \'ui-widget-content jqgrow ui-row-\' + ts.p.direction + altClass + ((selected) ? \' ui-state-highlight\' : \'\'),\r\n
+\t\t\t\trowAttrObj = $.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur) : {};\r\n
+\t\t\tif(!$.isEmptyObject( rowAttrObj )) {\r\n
+\t\t\t\tif (rowAttrObj.hasOwnProperty("id")) {\r\n
+\t\t\t\t\tid = rowAttrObj.id;\r\n
+\t\t\t\t\tdelete rowAttrObj.id;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif (rowAttrObj.hasOwnProperty("tabindex")) {\r\n
+\t\t\t\t\ttabindex = rowAttrObj.tabindex;\r\n
+\t\t\t\t\tdelete rowAttrObj.tabindex;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif (rowAttrObj.hasOwnProperty("style")) {\r\n
+\t\t\t\t\tstyle += rowAttrObj.style;\r\n
+\t\t\t\t\tdelete rowAttrObj.style;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif (rowAttrObj.hasOwnProperty("class")) {\r\n
+\t\t\t\t\tclasses += \' \' + rowAttrObj[\'class\'];\r\n
+\t\t\t\t\tdelete rowAttrObj[\'class\'];\r\n
+\t\t\t\t}\r\n
+\t\t\t\t// dot\'t allow to change role attribute\r\n
+\t\t\t\ttry { delete rowAttrObj.role; } catch(ra){}\r\n
+\t\t\t\tfor (attrName in rowAttrObj) {\r\n
+\t\t\t\t\tif (rowAttrObj.hasOwnProperty(attrName)) {\r\n
+\t\t\t\t\t\trestAttr += \' \' + attrName + \'=\' + rowAttrObj[attrName];\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t}\r\n
+\t\t\t}\r\n
+\t\t\treturn \'<tr role="row" id="\' + id + \'" tabindex="\' + tabindex + \'" class="\' + classes + \'"\' +\r\n
+\t\t\t\t(style === \'\' ? \'\' : \' style="\' + style + \'"\') + restAttr + \'>\';\r\n
+\t\t},\r\n
 \t\taddXmlData = function (xml,t, rcnt, more, adjust) {\r\n
 \t\t\tvar startReq = new Date(),\r\n
 \t\t\tlocdata = (ts.p.datatype != "local" && ts.p.loadonce) || ts.p.datatype == "xmlstring",\r\n
@@ -1131,14 +1193,14 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tts.p.reccount = 0;\r\n
 \t\t\tif($.isXMLDoc(xml)) {\r\n
 \t\t\t\tif(ts.p.treeANode===-1 && !ts.p.scroll) {\r\n
-\t\t\t\t\temptyRows(t,false, true);\r\n
+\t\t\t\t\temptyRows.call(ts, false, true);\r\n
 \t\t\t\t\trcnt=1;\r\n
 \t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\r\n
 \t\t\t} else { return; }\r\n
-\t\t\tvar i,fpos,ir=0,v,row,gi=0,si=0,ni=0,idn, getId,f=[],F,rd ={}, xmlr,rid, rowData=[], cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1;\r\n
+\t\t\tvar i,fpos,ir=0,v,gi=ts.p.multiselect===true?1:0,si=ts.p.subGrid===true?1:0,ni=ts.p.rownumbers===true?1:0,idn, getId,f=[],F,rd ={}, xmlr,rid, rowData=[], cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1;\r\n
 \t\t\tif(!xmlRd.repeatitems) {f = reader(frd);}\r\n
 \t\t\tif( ts.p.keyIndex===false) {\r\n
-\t\t\t\tidn = xmlRd.id;\r\n
+\t\t\t\tidn = $.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;\r\n
 \t\t\t} else {\r\n
 \t\t\t\tidn = ts.p.keyIndex;\r\n
 \t\t\t}\r\n
@@ -1159,7 +1221,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tgetId = function( trow, k) {return trow.getAttribute(idn.replace(/[\\[\\]]/g,"")) || k;};\r\n
 \t\t\t}\r\n
 \t\t\tts.p.userData = {};\r\n
-\t\t\tts.p.page = $.jgrid.getXmlData( xml,xmlRd.page ) || 0;\r\n
+\t\t\tts.p.page = $.jgrid.getXmlData( xml,xmlRd.page ) || ts.p.page || 0;\r\n
 \t\t\tts.p.lastpage = $.jgrid.getXmlData( xml,xmlRd.total );\r\n
 \t\t\tif(ts.p.lastpage===undefined) { ts.p.lastpage=1; }\r\n
 \t\t\tts.p.records = $.jgrid.getXmlData( xml,xmlRd.records ) || 0;\r\n
@@ -1171,33 +1233,28 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tvar gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);\r\n
 \t\t\tgxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);\r\n
 \t\t\tif (!gxml) { gxml = []; }\r\n
-\t\t\tvar gl = gxml.length, j=0, grpdata={}, rn = parseInt(ts.p.rowNum,10);\r\n
+\t\t\tvar gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10);\r\n
 \t\t\tif (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }\r\n
 \t\t\tif(gxml && gl){\r\n
 \t\t\tvar br=ts.p.scroll?$.jgrid.randId():1,altr;\r\n
 \t\t\tif (adjust) { rn *= adjust+1; }\r\n
-\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow="";\r\n
-\t\t\tif(ts.p.grouping && ts.p.groupingView.groupCollapse === true) {\r\n
-\t\t\t\thiderow = " style=\\"display:none;\\"";\r\n
-\t\t\t}\r\n
+\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow=ts.p.grouping && ts.p.groupingView.groupCollapse === true;\r\n
 \t\t\twhile (j<gl) {\r\n
 \t\t\t\txmlr = gxml[j];\r\n
 \t\t\t\trid = getId(xmlr,br+j);\r\n
 \t\t\t\trid  = ts.p.idPrefix + rid;\r\n
 \t\t\t\taltr = rcnt === 0 ? 0 : rcnt+1;\r\n
 \t\t\t\tcn1 = (altr+j)%2 == 1 ? cn : \'\';\r\n
-\t\t\t\trowData.push( "<tr"+hiderow+" id=\\""+rid+"\\" tabindex=\\"-1\\" role=\\"row\\" class =\\"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\\">" );\r\n
-\t\t\t\tif(ts.p.rownumbers===true) {\r\n
+\t\t\t\tvar iStartTrTag = rowData.length;\r\n
+\t\t\t\trowData.push("");\r\n
+\t\t\t\tif( ni ) {\r\n
 \t\t\t\t\trowData.push( addRowNum(0,j,ts.p.page,ts.p.rowNum) );\r\n
-\t\t\t\t\tni=1;\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(ts.p.multiselect===true) {\r\n
-\t\t\t\t\trowData.push( addMulti(rid,ni,j) );\r\n
-\t\t\t\t\tgi=1;\r\n
+\t\t\t\tif( gi ) {\r\n
+\t\t\t\t\trowData.push( addMulti(rid,ni,j, false) );\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif (ts.p.subGrid===true) {\r\n
+\t\t\t\tif( si ) {\r\n
 \t\t\t\t\trowData.push( $(ts).jqGrid("addSubGridCell",gi+ni,j+rcnt) );\r\n
-\t\t\t\t\tsi= 1;\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(xmlRd.repeatitems){\r\n
 \t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\r\n
@@ -1216,13 +1273,10 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\trowData.push( addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr) );\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
+\t\t\t\trowData[iStartTrTag] = constructTr(rid, hiderow, cn1, rd, xmlr, false);\r\n
 \t\t\t\trowData.push("</tr>");\r\n
 \t\t\t\tif(ts.p.grouping) {\r\n
-\t\t\t\t\tvar grlen = ts.p.groupingView.groupField.length, grpitem = [];\r\n
-\t\t\t\t\tfor(var z=0;z<grlen;z++) {\r\n
-\t\t\t\t\t\tgrpitem.push(rd[ts.p.groupingView.groupField[z]]);\r\n
-\t\t\t\t\t}\r\n
-\t\t\t\t\tgrpdata = $(ts).jqGrid(\'groupingPrepare\',rowData, grpitem, grpdata, rd);\r\n
+\t\t\t\t\tgrpdata = $(ts).jqGrid(\'groupingPrepare\',rowData, grpdata, rd, j);\r\n
 \t\t\t\t\trowData = [];\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(locdata || ts.p.treeGrid === true) {\r\n
@@ -1232,6 +1286,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(ts.p.gridview === false ) {\r\n
 \t\t\t\t\t$("tbody:first",t).append(rowData.join(\'\'));\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridAfterInsertRow", [rid, rd, xmlr]);\r\n
 \t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}\r\n
 \t\t\t\t\trowData=[];\r\n
 \t\t\t\t}\r\n
@@ -1273,7 +1328,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tif(locdata) {\r\n
 \t\t\t\twhile (ir<gl) {\r\n
 \t\t\t\t\txmlr = gxml[ir];\r\n
-\t\t\t\t\trid = getId(xmlr,ir);\r\n
+\t\t\t\t\trid = getId(xmlr,ir+br);\r\n
 \t\t\t\t\trid  = ts.p.idPrefix + rid;\r\n
 \t\t\t\t\tif(xmlRd.repeatitems){\r\n
 \t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\r\n
@@ -1302,7 +1357,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tvar startReq = new Date();\r\n
 \t\t\tif(data) {\r\n
 \t\t\t\tif(ts.p.treeANode === -1 && !ts.p.scroll) {\r\n
-\t\t\t\t\temptyRows(t,false, true);\r\n
+\t\t\t\t\temptyRows.call(ts, false, true);\r\n
 \t\t\t\t\trcnt=1;\r\n
 \t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\r\n
 \t\t\t} else { return; }\r\n
@@ -1318,8 +1373,8 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tdReader =  ts.p.jsonReader;\r\n
 \t\t\t\tfrd=\'json\';\r\n
 \t\t\t}\r\n
-\t\t\tvar ir=0,v,i,j,f=[],F,cur,gi=0,si=0,ni=0,len,drows,idn,rd={}, fpos, idr,rowData=[],cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1,lp;\r\n
-\t\t\tts.p.page = $.jgrid.getAccessor(data,dReader.page) || 0;\r\n
+\t\t\tvar ir=0,v,i,j,f=[],F,cur,gi=ts.p.multiselect?1:0,si=ts.p.subGrid?1:0,ni=ts.p.rownumbers===true?1:0,len,drows,idn,rd={}, fpos, idr,rowData=[],cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1,lp;\r\n
+\t\t\tts.p.page = $.jgrid.getAccessor(data,dReader.page) || ts.p.page || 0;\r\n
 \t\t\tlp = $.jgrid.getAccessor(data,dReader.total);\r\n
 \t\t\tts.p.lastpage = lp === undefined ? 1 : lp;\r\n
 \t\t\tts.p.records = $.jgrid.getAccessor(data,dReader.records) || 0;\r\n
@@ -1328,7 +1383,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tF = f = reader(frd);\r\n
 \t\t\t}\r\n
 \t\t\tif( ts.p.keyIndex===false ) {\r\n
-\t\t\t\tidn = dReader.id;\r\n
+\t\t\t\tidn = $.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; \r\n
 \t\t\t} else {\r\n
 \t\t\t\tidn = ts.p.keyIndex;\r\n
 \t\t\t}\r\n
@@ -1342,12 +1397,12 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tif (!drows) { drows = []; }\r\n
 \t\t\tlen = drows.length; i=0;\r\n
 \t\t\tif (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }\r\n
-\t\t\tvar rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr;\r\n
+\t\t\tvar rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr, selected=false, selr;\r\n
 \t\t\tif (adjust) { rn *= adjust+1; }\r\n
-\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata={}, hiderow="";\r\n
-\t\t\tif(ts.p.grouping && ts.p.groupingView.groupCollapse === true) {\r\n
-\t\t\t\thiderow = " style=\\"display:none;\\"";\r\n
+\t\t\tif(ts.p.datatype === "local" && !ts.p.deselectAfterSort) {\r\n
+\t\t\t\tselected = true;\r\n
 \t\t\t}\r\n
+\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata=[], hiderow=ts.p.grouping && ts.p.groupingView.groupCollapse === true;\r\n
 \t\t\twhile (i<len) {\r\n
 \t\t\t\tcur = drows[i];\r\n
 \t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\r\n
@@ -1364,18 +1419,23 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tidr  = ts.p.idPrefix + idr;\r\n
 \t\t\t\taltr = rcnt === 1 ? 0 : rcnt;\r\n
 \t\t\t\tcn1 = (altr+i)%2 == 1 ? cn : \'\';\r\n
-\t\t\t\trowData.push("<tr"+hiderow+" id=\\""+ idr +"\\" tabindex=\\"-1\\" role=\\"row\\" class= \\"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\\">");\r\n
-\t\t\t\tif(ts.p.rownumbers===true) {\r\n
+\t\t\t\tif( selected) {\r\n
+\t\t\t\t\tif( ts.p.multiselect) {\r\n
+\t\t\t\t\t\tselr = ($.inArray(idr, ts.p.selarrrow) !== -1);\r\n
+\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\tselr = (idr === ts.p.selrow);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t}\r\n
+\t\t\t\tvar iStartTrTag = rowData.length;\r\n
+\t\t\t\trowData.push("");\r\n
+\t\t\t\tif( ni ) {\r\n
 \t\t\t\t\trowData.push( addRowNum(0,i,ts.p.page,ts.p.rowNum) );\r\n
-\t\t\t\t\tni=1;\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(ts.p.multiselect){\r\n
-\t\t\t\t\trowData.push( addMulti(idr,ni,i) );\r\n
-\t\t\t\t\tgi = 1;\r\n
+\t\t\t\tif( gi ){\r\n
+\t\t\t\t\trowData.push( addMulti(idr,ni,i,selr) );\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif (ts.p.subGrid) {\r\n
+\t\t\t\tif( si ) {\r\n
 \t\t\t\t\trowData.push( $(ts).jqGrid("addSubGridCell",gi+ni,i+rcnt) );\r\n
-\t\t\t\t\tsi= 1;\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif (dReader.repeatitems) {\r\n
 \t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell);}\r\n
@@ -1386,13 +1446,10 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\trowData.push( addCell(idr,v,j+gi+si+ni,i+rcnt,cur) );\r\n
 \t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = v;\r\n
 \t\t\t\t}\r\n
+\t\t\t\trowData[iStartTrTag] = constructTr(idr, hiderow, cn1, rd, cur, selr);\r\n
 \t\t\t\trowData.push( "</tr>" );\r\n
 \t\t\t\tif(ts.p.grouping) {\r\n
-\t\t\t\t\tvar grlen = ts.p.groupingView.groupField.length, grpitem = [];\r\n
-\t\t\t\t\tfor(var z=0;z<grlen;z++) {\r\n
-\t\t\t\t\t\tgrpitem.push(rd[ts.p.groupingView.groupField[z]]);\r\n
-\t\t\t\t\t}\r\n
-\t\t\t\t\tgrpdata = $(ts).jqGrid(\'groupingPrepare\',rowData, grpitem, grpdata, rd);\r\n
+\t\t\t\t\tgrpdata = $(ts).jqGrid(\'groupingPrepare\',rowData, grpdata, rd, i);\r\n
 \t\t\t\t\trowData = [];\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(locdata || ts.p.treeGrid===true) {\r\n
@@ -1402,6 +1459,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(ts.p.gridview === false ) {\r\n
 \t\t\t\t\t$("#"+$.jgrid.jqID(ts.p.id)+" tbody:first").append(rowData.join(\'\'));\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridAfterInsertRow", [idr, rd, cur]);\r\n
 \t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}\r\n
 \t\t\t\t\trowData=[];//ari=0;\r\n
 \t\t\t\t}\r\n
@@ -1480,8 +1538,8 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tif(!$.isArray(ts.p.data)) {\r\n
 \t\t\t\treturn;\r\n
 \t\t\t}\r\n
-\t\t\tvar grpview = ts.p.grouping ? ts.p.groupingView : false;\r\n
-\t\t\t$.each(ts.p.colModel,function(i,v){\r\n
+\t\t\tvar grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin;\r\n
+\t\t\t$.each(ts.p.colModel,function(){\r\n
 \t\t\t\tsorttype = this.sorttype || "text";\r\n
 \t\t\t\tif(sorttype == "date" || sorttype == "datetime") {\r\n
 \t\t\t\t\tif(this.formatter && typeof(this.formatter) === \'string\' && this.formatter == \'date\') {\r\n
@@ -1502,13 +1560,17 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t} else {\r\n
 \t\t\t\t\tcmtypes[this.name] = {"stype": sorttype, "srcfmt":\'\',"newfmt":\'\'};\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(ts.p.grouping && this.name == grpview.groupField[0]) {\r\n
-\t\t\t\t\tvar grindex = this.name;\r\n
-\t\t\t\t\tif (typeof this.index != \'undefined\') {\r\n
-\t\t\t\t\t\tgrindex = this.index;\r\n
+\t\t\t\tif(ts.p.grouping ) {\r\n
+\t\t\t\t\tfor(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {\r\n
+\t\t\t\t\t\tif( this.name == grpview.groupField[gin]) {\r\n
+\t\t\t\t\t\t\tvar grindex = this.name;\r\n
+\t\t\t\t\t\t\tif (typeof this.index != \'undefined\') {\r\n
+\t\t\t\t\t\t\t\tgrindex = this.index;\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\tgrtypes[gin] = cmtypes[grindex];\r\n
+\t\t\t\t\t\t\tgrindexes[gin]= grindex;\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\tgrtypes[0] = cmtypes[grindex];\r\n
-\t\t\t\t\tgrindexes.push(grindex);\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(!fndsort && (this.index == ts.p.sortname || this.name == ts.p.sortname)){\r\n
 \t\t\t\t\tst = this.name; // ???\r\n
@@ -1520,21 +1582,21 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\treturn;\r\n
 \t\t\t}\r\n
 \t\t\tvar compareFnMap = {\r\n
-\t\t\t\t\'eq\':function(queryObj, op) {return queryObj.equals;},\r\n
-\t\t\t\t\'ne\':function(queryObj,op) {return queryObj.notEquals;},\r\n
-\t\t\t\t\'lt\':function(queryObj,op) {return queryObj.less;},\r\n
-\t\t\t\t\'le\':function(queryObj,op) {return queryObj.lessOrEquals;},\r\n
-\t\t\t\t\'gt\':function(queryObj,op) {return queryObj.greater;},\r\n
-\t\t\t\t\'ge\':function(queryObj,op) {return queryObj.greaterOrEquals;},\r\n
-\t\t\t\t\'cn\':function(queryObj,op) {return queryObj.contains;},\r\n
+\t\t\t\t\'eq\':function(queryObj) {return queryObj.equals;},\r\n
+\t\t\t\t\'ne\':function(queryObj) {return queryObj.notEquals;},\r\n
+\t\t\t\t\'lt\':function(queryObj) {return queryObj.less;},\r\n
+\t\t\t\t\'le\':function(queryObj) {return queryObj.lessOrEquals;},\r\n
+\t\t\t\t\'gt\':function(queryObj) {return queryObj.greater;},\r\n
+\t\t\t\t\'ge\':function(queryObj) {return queryObj.greaterOrEquals;},\r\n
+\t\t\t\t\'cn\':function(queryObj) {return queryObj.contains;},\r\n
 \t\t\t\t\'nc\':function(queryObj,op) {return op === "OR" ? queryObj.orNot().contains : queryObj.andNot().contains;},\r\n
-\t\t\t\t\'bw\':function(queryObj,op) {return queryObj.startsWith;},\r\n
+\t\t\t\t\'bw\':function(queryObj) {return queryObj.startsWith;},\r\n
 \t\t\t\t\'bn\':function(queryObj,op) {return op === "OR" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},\r\n
 \t\t\t\t\'en\':function(queryObj,op) {return op === "OR" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},\r\n
-\t\t\t\t\'ew\':function(queryObj,op) {return queryObj.endsWith;},\r\n
+\t\t\t\t\'ew\':function(queryObj) {return queryObj.endsWith;},\r\n
 \t\t\t\t\'ni\':function(queryObj,op) {return op === "OR" ? queryObj.orNot().equals : queryObj.andNot().equals;},\r\n
-\t\t\t\t\'in\':function(queryObj,op) {return queryObj.equals;},\r\n
-\t\t\t\t\'nu\':function(queryObj,op) {return queryObj.isNull;},\r\n
+\t\t\t\t\'in\':function(queryObj) {return queryObj.equals;},\r\n
+\t\t\t\t\'nu\':function(queryObj) {return queryObj.isNull;},\r\n
 \t\t\t\t\'nn\':function(queryObj,op) {return op === "OR" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}\r\n
 \r\n
 \t\t\t},\r\n
@@ -1601,8 +1663,9 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif(ts.p.grouping) {\r\n
-\t\t\t\tquery.orderBy(grindexes,grpview.groupOrder[0],grtypes[0].stype, grtypes[0].srcfmt);\r\n
-\t\t\t\tgrpview.groupDataSorted = true;\r\n
+\t\t\t\tfor(gin=0; gin<lengrp;gin++) {\r\n
+\t\t\t\t\tquery.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);\r\n
+\t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif (st && ts.p.sortorder && fndsort) {\r\n
 \t\t\t\tif(ts.p.sortorder.toUpperCase() == "DESC") {\r\n
@@ -1644,7 +1707,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tif (rh) {\r\n
 \t\t\t\t\tvar top = base * rh;\r\n
 \t\t\t\t\tvar height = parseInt(ts.p.records,10) * rh;\r\n
-\t\t\t\t    $(">div:first",ts.grid.bDiv).css({height : height}).children("div:first").css({height:top,display:top?"":"none"});\r\n
+\t\t\t\t\t$(">div:first",ts.grid.bDiv).css({height : height}).children("div:first").css({height:top,display:top?"":"none"});\r\n
 \t\t\t\t}\r\n
 \t\t\t\tts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;\r\n
 \t\t\t}\r\n
@@ -1699,8 +1762,9 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t});\r\n
 \t\t\t}\r\n
 \t\t\tif(dnd && ts.p.jqgdnd) { $(ts).jqGrid(\'gridDnD\',\'updateDnD\');}\r\n
+\t\t\t$(ts).triggerHandler("jqGridGridComplete");\r\n
 \t\t\tif($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}\r\n
-\t\t\tif($.isFunction(ts.p._complete)) {ts.p._complete.call(ts);}\r\n
+\t\t\t$(ts).triggerHandler("jqGridAfterGridComplete");\r\n
 \t\t},\r\n
 \t\tbeginReq = function() {\r\n
 \t\t\tts.grid.hDiv.loading = true;\r\n
@@ -1733,16 +1797,14 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t},\r\n
 \t\tpopulate = function (npage) {\r\n
 \t\t\tif(!ts.grid.hDiv.loading) {\r\n
-\t\t\t\tvar pvis = ts.p.scroll && npage === false;\r\n
-\t\t\t\tvar prm = {}, dt, dstr, pN=ts.p.prmNames;\r\n
+\t\t\t\tvar pvis = ts.p.scroll && npage === false,\r\n
+\t\t\t\tprm = {}, dt, dstr, pN=ts.p.prmNames;\r\n
 \t\t\t\tif(ts.p.page <=0) { ts.p.page = 1; }\r\n
 \t\t\t\tif(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}\r\n
 \t\t\t\tif(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}\r\n
 \t\t\t\tif(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}\r\n
 \t\t\t\tif(ts.p.rowTotal !== null && pN.totalrows !== null) { prm[pN.totalrows]= ts.p.rowTotal; }\r\n
-\t\t\t\tvar lc = ts.p.loadComplete;\r\n
-\t\t\t\tvar lcf = $.isFunction(lc);\r\n
-\t\t\t\tif (!lcf) { lc = null; }\r\n
+\t\t\t\tvar lcf = $.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;\r\n
 \t\t\t\tvar adjust = 0;\r\n
 \t\t\t\tnpage = npage || 1;\r\n
 \t\t\t\tif (npage > 1) {\r\n
@@ -1765,15 +1827,25 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(ts.p.grouping) {\r\n
 \t\t\t\t\t$(ts).jqGrid(\'groupingSetup\');\r\n
-\t\t\t\t\tif(ts.p.groupingView.groupDataSorted === true) {\r\n
-\t\t\t\t\t\tprm[pN.sort] = ts.p.groupingView.groupField[0] +" "+ ts.p.groupingView.groupOrder[0]+", "+prm[pN.sort];\r\n
+\t\t\t\t\tvar grp = ts.p.groupingView, gi, gs="";\r\n
+\t\t\t\t\tfor(gi=0;gi<grp.groupField.length;gi++) {\r\n
+\t\t\t\t\t\tvar index = grp.groupField[gi];\r\n
+\t\t\t\t\t\t$.each(ts.p.colModel, function(cmIndex, cmValue) {\r\n
+\t\t\t\t\t\t\tif (cmValue.name == index && cmValue.index){\r\n
+\t\t\t\t\t\t\t\tindex = cmValue.index;\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t} );\r\n
+\t\t\t\t\t\tgs += index +" "+grp.groupOrder[gi]+", ";\r\n
 \t\t\t\t\t}\r\n
+\t\t\t\t\tprm[pN.sort] = gs + prm[pN.sort];\r\n
 \t\t\t\t}\r\n
 \t\t\t\t$.extend(ts.p.postData,prm);\r\n
 \t\t\t\tvar rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;\r\n
+\t\t\t\tvar bfr = $(ts).triggerHandler("jqGridBeforeRequest");\r\n
+\t\t\t\tif (bfr === false || bfr === \'stop\') { return; }\r\n
 \t\t\t\tif ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id); return;}\r\n
 \t\t\t\telse if($.isFunction(ts.p.beforeRequest)) {\r\n
-\t\t\t\t\tvar bfr = ts.p.beforeRequest.call(ts);\r\n
+\t\t\t\t\tbfr = ts.p.beforeRequest.call(ts);\r\n
 \t\t\t\t\tif(bfr === undefined) { bfr = true; }\r\n
 \t\t\t\t\tif ( bfr === false ) { return; }\r\n
 \t\t\t\t}\r\n
@@ -1791,11 +1863,16 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\tdata: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,\r\n
 \t\t\t\t\t\tsuccess:function(data,st, xhr) {\r\n
 \t\t\t\t\t\t\tif ($.isFunction(ts.p.beforeProcessing)) {\r\n
-\t\t\t\t\t\t\t\t\tts.p.beforeProcessing.call(ts, data, st, xhr);\r\n
+\t\t\t\t\t\t\t\tif (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {\r\n
+\t\t\t\t\t\t\t\t\tendReq();\r\n
+\t\t\t\t\t\t\t\t\treturn;\r\n
+\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif(dt === "xml") { addXmlData(data,ts.grid.bDiv,rcnt,npage>1,adjust); }\r\n
 \t\t\t\t\t\t\telse { addJSONData(data,ts.grid.bDiv,rcnt,npage>1,adjust); }\r\n
+\t\t\t\t\t\t\t$(ts).triggerHandler("jqGridLoadComplete", [data]);\r\n
 \t\t\t\t\t\t\tif(lc) { lc.call(ts,data); }\r\n
+\t\t\t\t\t\t\t$(ts).triggerHandler("jqGridAfterLoadComplete", [data]);\r\n
 \t\t\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\r\n
 \t\t\t\t\t\t\tif( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}\r\n
 \t\t\t\t\t\t\tdata=null;\r\n
@@ -1824,7 +1901,9 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\tbeginReq();\r\n
 \t\t\t\t\tdstr = $.jgrid.stringToDoc(ts.p.datastr);\r\n
 \t\t\t\t\taddXmlData(dstr,ts.grid.bDiv);\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridLoadComplete", [dstr]);\r\n
 \t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridAfterLoadComplete", [dstr]);\r\n
 \t\t\t\t\tts.p.datatype = "local";\r\n
 \t\t\t\t\tts.p.datastr = null;\r\n
 \t\t\t\t\tendReq();\r\n
@@ -1834,7 +1913,9 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\tif(typeof ts.p.datastr == \'string\') { dstr = $.jgrid.parse(ts.p.datastr); }\r\n
 \t\t\t\t\telse { dstr = ts.p.datastr; }\r\n
 \t\t\t\t\taddJSONData(dstr,ts.grid.bDiv);\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridLoadComplete", [dstr]);\r\n
 \t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridAfterLoadComplete", [dstr]);\r\n
 \t\t\t\t\tts.p.datatype = "local";\r\n
 \t\t\t\t\tts.p.datastr = null;\r\n
 \t\t\t\t\tendReq();\r\n
@@ -1845,7 +1926,9 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\tts.p.datatype = "local";\r\n
 \t\t\t\t\tvar req = addLocalData();\r\n
 \t\t\t\t\taddJSONData(req,ts.grid.bDiv,rcnt,npage>1,adjust);\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridLoadComplete", [req]);\r\n
 \t\t\t\t\tif(lc) { lc.call(ts,req); }\r\n
+\t\t\t\t\t$(ts).triggerHandler("jqGridAfterLoadComplete", [req]);\r\n
 \t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\r\n
 \t\t\t\t\tendReq();\r\n
 \t\t\t\tbreak;\r\n
@@ -1918,27 +2001,27 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t$(\'.ui-pg-selbox\',"#"+pgcnt).bind(\'change\',function() {\r\n
 \t\t\t\tts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;\r\n
 \t\t\t\tts.p.rowNum = this.value;\r\n
-\t\t\t\tif(tp) { $(\'.ui-pg-selbox\',ts.p.pager).val(this.value); }\r\n
-\t\t\t\telse if(ts.p.toppager) { $(\'.ui-pg-selbox\',ts.p.toppager).val(this.value); }\r\n
+\t\t\t\tif(ts.p.pager) { $(\'.ui-pg-selbox\',ts.p.pager).val(this.value); }\r\n
+\t\t\t\tif(ts.p.toppager) { $(\'.ui-pg-selbox\',ts.p.toppager).val(this.value); }\r\n
 \t\t\t\tif(!clearVals(\'records\')) { return false; }\r\n
 \t\t\t\tpopulate();\r\n
 \t\t\t\treturn false;\r\n
 \t\t\t});\r\n
 \t\t\tif(ts.p.pgbuttons===true) {\r\n
-\t\t\t$(".ui-pg-button","#"+pgcnt).hover(function(e){\r\n
+\t\t\t$(".ui-pg-button","#"+pgcnt).hover(function(){\r\n
 \t\t\t\tif($(this).hasClass(\'ui-state-disabled\')) {\r\n
 \t\t\t\t\tthis.style.cursor=\'default\';\r\n
 \t\t\t\t} else {\r\n
 \t\t\t\t\t$(this).addClass(\'ui-state-hover\');\r\n
 \t\t\t\t\tthis.style.cursor=\'pointer\';\r\n
 \t\t\t\t}\r\n
-\t\t\t},function(e) {\r\n
+\t\t\t},function() {\r\n
 \t\t\t\tif(!$(this).hasClass(\'ui-state-disabled\')) {\r\n
 \t\t\t\t\t$(this).removeClass(\'ui-state-hover\');\r\n
 \t\t\t\t\tthis.style.cursor= "default";\r\n
 \t\t\t\t}\r\n
 \t\t\t});\r\n
-\t\t\t$("#first"+$.jgrid.jqID(tp)+", #prev"+$.jgrid.jqID(tp)+", #next"+$.jgrid.jqID(tp)+", #last"+$.jgrid.jqID(tp)).click( function(e) {\r\n
+\t\t\t$("#first"+$.jgrid.jqID(tp)+", #prev"+$.jgrid.jqID(tp)+", #next"+$.jgrid.jqID(tp)+", #last"+$.jgrid.jqID(tp)).click( function() {\r\n
 \t\t\t\tvar cp = intNum(ts.p.page,1),\r\n
 \t\t\t\tlast = intNum(ts.p.lastpage,1), selclick = false,\r\n
 \t\t\t\tfp=true, pp=true, np=true,lp=true;\r\n
@@ -2003,6 +2086,10 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tindex = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!\r\n
 \t\t\tts.p.sortname = ts.p.colModel[idxcol].index || index;\r\n
 \t\t\tso = ts.p.sortorder;\r\n
+\t\t\tif ($(ts).triggerHandler("jqGridSortCol", [index, idxcol, so]) === \'stop\') {\r\n
+\t\t\t\tts.p.lastsort = idxcol;\r\n
+\t\t\t\treturn;\r\n
+\t\t\t}\r\n
 \t\t\tif($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts,index,idxcol,so)==\'stop\') {ts.p.lastsort = idxcol; return;}}\r\n
 \t\t\tif(ts.p.datatype == "local") {\r\n
 \t\t\t\tif(ts.p.deselectAfterSort) {$(ts).jqGrid("resetSelection");}\r\n
@@ -2014,7 +2101,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t}\r\n
 \t\t\tif(ts.p.scroll) {\r\n
 \t\t\t\tvar sscroll = ts.grid.bDiv.scrollLeft;\r\n
-\t\t\t\temptyRows(ts.grid.bDiv,true, false);\r\n
+\t\t\t\temptyRows.call(ts, true, false);\r\n
 \t\t\t\tts.grid.hDiv.scrollLeft = sscroll;\r\n
 \t\t\t}\r\n
 \t\t\tif(ts.p.subGrid && ts.p.datatype==\'local\') {\r\n
@@ -2027,9 +2114,9 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tif(ts.p.sortname != index && idxcol) {ts.p.lastsort = idxcol;}\r\n
 \t\t},\r\n
 \t\tsetColWidth = function () {\r\n
-\t\t\tvar initwidth = 0, brd=isSafari? 0: ts.p.cellLayout, vc=0, lvc, scw=ts.p.scrollOffset,cw,hs=false,aw,gw=0,\r\n
+\t\t\tvar initwidth = 0, brd=$.jgrid.cellWidth()? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,\r\n
 \t\t\tcl = 0, cr;\r\n
-\t\t\t$.each(ts.p.colModel, function(i) {\r\n
+\t\t\t$.each(ts.p.colModel, function() {\r\n
 \t\t\t\tif(typeof this.hidden === \'undefined\') {this.hidden=false;}\r\n
 \t\t\t\tthis.widthOrg = cw = intNum(this.width,0);\r\n
 \t\t\t\tif(this.hidden===false){\r\n
@@ -2042,8 +2129,10 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\tcl++;\r\n
 \t\t\t\t}\r\n
 \t\t\t});\r\n
-\t\t\tif(isNaN(ts.p.width)) {ts.p.width = grid.width = initwidth;}\r\n
-\t\t\telse { grid.width = ts.p.width;}\r\n
+\t\t\tif(isNaN(ts.p.width)) {\r\n
+\t\t\t\tts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);\r\n
+\t\t\t}\r\n
+\t\t\tgrid.width = ts.p.width;\r\n
 \t\t\tts.p.tblwidth = initwidth;\r\n
 \t\t\tif(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}\r\n
 \t\t\tif(ts.p.shrinkToFit===true && vc > 0) {\r\n
@@ -2087,7 +2176,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\treturn j-ret;\r\n
 \t\t},\r\n
 \t\tgetOffset = function (iCol) {\r\n
-\t\t\tvar i, ret = {}, brd1 = isSafari ? 0 : ts.p.cellLayout;\r\n
+\t\t\tvar i, ret = {}, brd1 = $.jgrid.cellWidth() ? 0 : ts.p.cellLayout;\r\n
 \t\t\tret[0] =  ret[1] = ret[2] = 0;\r\n
 \t\t\tfor(i=0;i<=iCol;i++){\r\n
 \t\t\t\tif(ts.p.colModel[i].hidden === false ) {\r\n
@@ -2125,7 +2214,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\tif(ts.p.grouping===true) {\r\n
 \t\t\tts.p.scroll = false;\r\n
 \t\t\tts.p.rownumbers = false;\r\n
-\t\t\tts.p.subGrid = false;\r\n
+\t\t\t//ts.p.subGrid = false; expiremental\r\n
 \t\t\tts.p.treeGrid = false;\r\n
 \t\t\tts.p.gridview = true;\r\n
 \t\t}\r\n
@@ -2138,7 +2227,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t}\r\n
 \t\tif(this.p.multiselect) {\r\n
 \t\t\tthis.p.colNames.unshift("<input role=\'checkbox\' id=\'cb_"+this.p.id+"\' class=\'cbox\' type=\'checkbox\'/>");\r\n
-\t\t\tthis.p.colModel.unshift({name:\'cb\',width:isSafari ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:\'center\',fixed:true});\r\n
+\t\t\tthis.p.colModel.unshift({name:\'cb\',width:$.jgrid.cellWidth() ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:\'center\',fixed:true});\r\n
 \t\t}\r\n
 \t\tif(this.p.rownumbers) {\r\n
 \t\t\tthis.p.colNames.unshift("");\r\n
@@ -2223,15 +2312,15 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t$(ts.rows).each(function(i) {\r\n
 \t\t\t\t\t\tif (i>0) {\r\n
 \t\t\t\t\t\t\tif(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(\'ui-state-disabled\')){\r\n
-\t\t\t\t\t\t\t    $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? \'prop\': \'attr\']("checked",true);\r\n
-\t\t\t\t\t\t\t    $(this).addClass("ui-state-highlight").attr("aria-selected","true");  \r\n
-\t\t\t\t\t\t\t    ts.p.selarrrow.push(this.id);\r\n
+\t\t\t\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? \'prop\': \'attr\']("checked",true);\r\n
+\t\t\t\t\t\t\t\t$(this).addClass("ui-state-highlight").attr("aria-selected","true");  \r\n
+\t\t\t\t\t\t\t\tts.p.selarrrow.push(this.id);\r\n
 \t\t\t\t\t\t\t\tts.p.selrow = this.id;\r\n
 \t\t\t\t\t\t\t\tif(froz) {\r\n
 \t\t\t\t\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? \'prop\': \'attr\']("checked",true);\r\n
 \t\t\t\t\t\t\t\t\t$("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass("ui-state-highlight");\r\n
 \t\t\t\t\t\t\t\t}\r\n
-                            }\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t\tchk=true;\r\n
@@ -2254,6 +2343,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\tts.p.selrow = null;\r\n
 \t\t\t\t\tchk=false;\r\n
 \t\t\t\t}\r\n
+\t\t\t\t$(ts).triggerHandler("jqGridSelectAll", [chk ? ts.p.selarrrow : emp, chk]);\r\n
 \t\t\t\tif($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}\r\n
 \t\t\t});\r\n
 \t\t}\r\n
@@ -2346,8 +2436,8 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t$(hb).append(hTable);\r\n
 \t\thTable = null;\r\n
 \t\tif(hg) { $(grid.hDiv).hide(); }\r\n
-        if(ts.p.pager){\r\n
-            // TBD -- escape ts.p.pager here?\r\n
+\t\tif(ts.p.pager){\r\n
+\t\t\t// TBD -- escape ts.p.pager here?\r\n
 \t\t\tif(typeof ts.p.pager == "string") {if(ts.p.pager.substr(0,1) !="#") { ts.p.pager = "#"+ts.p.pager;} }\r\n
 \t\t\telse { ts.p.pager = "#"+ $(ts.p.pager).attr("id");}\r\n
 \t\t\t$(ts.p.pager).css({width: grid.width+"px"}).appendTo(eg).addClass(\'ui-state-default ui-jqgrid-pager ui-corner-bottom\');\r\n
@@ -2365,29 +2455,36 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t$(ptr).removeClass("ui-state-hover");\r\n
 \t\t});\r\n
 \t\t}\r\n
-\t\tvar ri,ci;\r\n
+\t\tvar ri,ci, tdHtml;\r\n
 \t\t$(ts).before(grid.hDiv).click(function(e) {\r\n
 \t\t\ttd = e.target;\r\n
 \t\t\tptr = $(td,ts.rows).closest("tr.jqgrow");\r\n
-\t\t\tif($(ptr).length === 0 || ptr[0].className.indexOf( \'ui-state-disabled\' ) > -1 || $(td,ts).closest("table.ui-jqgrid-btable")[0].id.replace("_frozen","") !== ts.id ) {\r\n
+\t\t\tif($(ptr).length === 0 || ptr[0].className.indexOf( \'ui-state-disabled\' ) > -1 || ($(td,ts).closest("table.ui-jqgrid-btable").attr(\'id\') || \'\').replace("_frozen","") !== ts.id ) {\r\n
 \t\t\t\treturn this;\r\n
 \t\t\t}\r\n
 \t\t\tvar scb = $(td).hasClass("cbox"),\r\n
-\t\t\tcSel = true;\r\n
-\t\t\tif($.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts,ptr[0].id, e); }\r\n
-\t\t\tif (td.tagName == \'A\' || ((td.tagName == \'INPUT\' || td.tagName == \'TEXTAREA\' || td.tagName == \'OPTION\' || td.tagName == \'SELECT\' ) && !scb) ) { return this; }\r\n
+\t\t\tcSel = $(ts).triggerHandler("jqGridBeforeSelectRow", [ptr[0].id, e]);\r\n
+\t\t\tcSel = (cSel === false || cSel === \'stop\') ? false : true;\r\n
+\t\t\tif(cSel && $.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts,ptr[0].id, e); }\r\n
+\t\t\tif (td.tagName == \'A\' || ((td.tagName == \'INPUT\' || td.tagName == \'TEXTAREA\' || td.tagName == \'OPTION\' || td.tagName == \'SELECT\' ) && !scb) ) { return; }\r\n
 \t\t\tif(cSel === true) {\r\n
+\t\t\t\tri = ptr[0].id;\r\n
+\t\t\t\tci = $.jgrid.getCellIndex(td);\r\n
+\t\t\t\ttdHtml = $(td).closest("td,th").html();\r\n
+\t\t\t\t$(ts).triggerHandler("jqGridCellSelect", [ri,ci,tdHtml,e]);\r\n
+\t\t\t\tif($.isFunction(ts.p.onCellSelect)) {\r\n
+\t\t\t\t\tts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);\r\n
+\t\t\t\t}\r\n
 \t\t\t\tif(ts.p.cellEdit === true) {\r\n
 \t\t\t\t\tif(ts.p.multiselect && scb){\r\n
-\t\t\t\t\t\t$(ts).jqGrid("setSelection",ptr[0].id,true);\r\n
+\t\t\t\t\t\t$(ts).jqGrid("setSelection", ri ,true,e);\r\n
 \t\t\t\t\t} else {\r\n
 \t\t\t\t\t\tri = ptr[0].rowIndex;\r\n
-\t\t\t\t\t\tci = $.jgrid.getCellIndex(td);\r\n
 \t\t\t\t\t\ttry {$(ts).jqGrid("editCell",ri,ci,true);} catch (_) {}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t} else if ( !ts.p.multikey ) {\r\n
 \t\t\t\t\tif(ts.p.multiselect && ts.p.multiboxonly) {\r\n
-\t\t\t\t\t\tif(scb){$(ts).jqGrid("setSelection",ptr[0].id,true);}\r\n
+\t\t\t\t\t\tif(scb){$(ts).jqGrid("setSelection",ri,true,e);}\r\n
 \t\t\t\t\t\telse {\r\n
 \t\t\t\t\t\t\tvar frz = ts.p.frozenColumns ? ts.p.id+"_frozen" : "";\r\n
 \t\t\t\t\t\t\t$(ts.p.selarrrow).each(function(i,n){\r\n
@@ -2400,29 +2497,20 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t});\r\n
 \t\t\t\t\t\t\tts.p.selarrrow = [];\r\n
-\t\t\t\t\t\t\t$(ts).jqGrid("setSelection",ptr[0].id,true);\r\n
+\t\t\t\t\t\t\t$(ts).jqGrid("setSelection",ri,true,e);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t$(ts).jqGrid("setSelection",ptr[0].id,true);\r\n
+\t\t\t\t\t\t$(ts).jqGrid("setSelection",ri,true,e);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t} else {\r\n
 \t\t\t\t\tif(e[ts.p.multikey]) {\r\n
-\t\t\t\t\t\t$(ts).jqGrid("setSelection",ptr[0].id,true);\r\n
+\t\t\t\t\t\t$(ts).jqGrid("setSelection",ri,true,e);\r\n
 \t\t\t\t\t} else if(ts.p.multiselect && scb) {\r\n
-\t\t\t\t\t\tscb = $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ptr[0].id).is(":checked");\r\n
-\t\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ptr[0].id)[ts.p.useProp ? \'prop\' : \'attr\']("checked", scb);\r\n
+\t\t\t\t\t\tscb = $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri).is(":checked");\r\n
+\t\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri)[ts.p.useProp ? \'prop\' : \'attr\']("checked", scb);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif($.isFunction(ts.p.onCellSelect)) {\r\n
-\t\t\t\t\tri = ptr[0].id;\r\n
-\t\t\t\t\tci = $.jgrid.getCellIndex(td);\r\n
-\t\t\t\t\tts.p.onCellSelect.call(ts,ri,ci,$(td).html(),e);\r\n
-\t\t\t\t}\r\n
-\t\t\t\t//e.stopPropagation();\r\n
 \t\t\t}\r\n
-\t\t\t//else {\r\n
-\t\t\t\treturn this;\r\n
-\t\t\t//}\r\n
 \t\t}).bind(\'reloadGrid\', function(e,opts) {\r\n
 \t\t\tif(ts.p.treeGrid ===true) {\tts.p.datatype = ts.p.treedatatype;}\r\n
 \t\t\tif (opts && opts.current) {\r\n
@@ -2434,7 +2522,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[];setHeadCheckBox(false);}\r\n
 \t\t\t\tts.p.savedRow = [];\r\n
 \t\t\t}\r\n
-\t\t\tif(ts.p.scroll) {emptyRows(ts.grid.bDiv,true, false);}\r\n
+\t\t\tif(ts.p.scroll) {emptyRows.call(ts, true, false);}\r\n
 \t\t\tif (opts && opts.page) {\r\n
 \t\t\t\tvar page = opts.page;\r\n
 \t\t\t\tif (page > ts.p.lastpage) { page = ts.p.lastpage; }\r\n
@@ -2447,36 +2535,33 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif (ts.grid.prevRowHeight && ts.p.scroll) {\r\n
-                delete ts.p.lastpage;\r\n
+\t\t\t\tdelete ts.p.lastpage;\r\n
 \t\t\t\tts.grid.populateVisible();\r\n
 \t\t\t} else {\r\n
 \t\t\t\tts.grid.populate();\r\n
 \t\t\t}\r\n
+\t\t\tif(ts.p._inlinenav===true) {$(ts).jqGrid(\'showAddEditButtons\');}\r\n
 \t\t\treturn false;\r\n
+\t\t})\r\n
+\t\t.dblclick(function(e) {\r\n
+\t\t\ttd = e.target;\r\n
+\t\t\tptr = $(td,ts.rows).closest("tr.jqgrow");\r\n
+\t\t\tif($(ptr).length === 0 ){return;}\r\n
+\t\t\tri = ptr[0].rowIndex;\r\n
+\t\t\tci = $.jgrid.getCellIndex(td);\r\n
+\t\t\t$(ts).triggerHandler("jqGridDblClickRow", [$(ptr).attr("id"),ri,ci,e]);\r\n
+\t\t\tif ($.isFunction(this.p.ondblClickRow)) { ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e); }\r\n
+\t\t})\r\n
+\t\t.bind(\'contextmenu\', function(e) {\r\n
+\t\t\ttd = e.target;\r\n
+\t\t\tptr = $(td,ts.rows).closest("tr.jqgrow");\r\n
+\t\t\tif($(ptr).length === 0 ){return;}\r\n
+\t\t\tif(!ts.p.multiselect) {\t$(ts).jqGrid("setSelection",ptr[0].id,true,e);\t}\r\n
+\t\t\tri = ptr[0].rowIndex;\r\n
+\t\t\tci = $.jgrid.getCellIndex(td);\r\n
+\t\t\t$(ts).triggerHandler("jqGridRightClickRow", [$(ptr).attr("id"),ri,ci,e]);\r\n
+\t\t\tif ($.isFunction(this.p.onRightClickRow)) { ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e); }\r\n
 \t\t});\r\n
-\t\tif( $.isFunction(this.p.ondblClickRow) ) {\r\n
-\t\t\t$(this).dblclick(function(e) {\r\n
-\t\t\t\ttd = e.target;\r\n
-\t\t\t\tptr = $(td,ts.rows).closest("tr.jqgrow");\r\n
-\t\t\t\tif($(ptr).length === 0 ){return false;}\r\n
-\t\t\t\tri = ptr[0].rowIndex;\r\n
-\t\t\t\tci = $.jgrid.getCellIndex(td);\r\n
-\t\t\t\tts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);\r\n
-\t\t\t\treturn false;\r\n
-\t\t\t});\r\n
-\t\t}\r\n
-\t\tif ($.isFunction(this.p.onRightClickRow)) {\r\n
-\t\t\t$(this).bind(\'contextmenu\', function(e) {\r\n
-\t\t\t\ttd = e.target;\r\n
-\t\t\t\tptr = $(td,ts.rows).closest("tr.jqgrow");\r\n
-\t\t\t\tif($(ptr).length === 0 ){return false;}\r\n
-\t\t\t\tif(!ts.p.multiselect) {\t$(ts).jqGrid("setSelection",ptr[0].id,true);\t}\r\n
-\t\t\t\tri = ptr[0].rowIndex;\r\n
-\t\t\t\tci = $.jgrid.getCellIndex(td);\r\n
-\t\t\t\tts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);\r\n
-\t\t\t\treturn false;\r\n
-\t\t\t});\r\n
-\t\t}\r\n
 \t\tgrid.bDiv = document.createElement("div");\r\n
 \t\tif(isMSIE) { if(String(ts.p.height).toLowerCase() === "auto") { ts.p.height = "100%"; } }\r\n
 \t\t$(grid.bDiv)\r\n
@@ -2486,7 +2571,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t.scroll(grid.scrollGrid);\r\n
 \t\t$("table:first",grid.bDiv).css({width:ts.p.tblwidth+"px"});\r\n
 \t\tif( isMSIE ) {\r\n
-\t\t\tif( $("tbody",this).size() == 2 ) { $("tbody:gt(0)",this).remove();}\r\n
+\t\t\tif( $("tbody",this).length == 2 ) { $("tbody:gt(0)",this).remove();}\r\n
 \t\t\tif( ts.p.multikey) {$(grid.bDiv).bind("selectstart",function(){return false;});}\r\n
 \t\t} else {\r\n
 \t\t\tif( ts.p.multikey) {$(grid.bDiv).bind("mousedown",function(){return false;});}\r\n
@@ -2553,6 +2638,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\t\t\t$("span",self).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");\r\n
 \t\t\t\t\t\t\t\tts.p.gridstate = \'hidden\';\r\n
 \t\t\t\t\t\t\t\tif($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).hide(); }\r\n
+\t\t\t\t\t\t\t\t$(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]);\r\n
 \t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t});\r\n
@@ -2564,6 +2650,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\t\t\t\t\t\tif(hg) {ts.p.datatype = tdt;populate();hg=false;}\r\n
 \t\t\t\t\t\t\t\tts.p.gridstate = \'visible\';\r\n
 \t\t\t\t\t\t\t\tif($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).show(); }\r\n
+\t\t\t\t\t\t\t\t$(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]);\r\n
 \t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t});\r\n
@@ -2578,7 +2665,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\t\tif(grid.resizing){grid.dragMove(e);return false;}\r\n
 \t\t});\r\n
 \t\t$(".ui-jqgrid-labels",grid.hDiv).bind("selectstart", function () { return false; });\r\n
-\t\t$(document).mouseup(function (e) {\r\n
+\t\t$(document).mouseup(function () {\r\n
 \t\t\tif(grid.resizing) {\tgrid.dragEnd(); return false;}\r\n
 \t\t\treturn true;\r\n
 \t\t});\r\n
@@ -2587,6 +2674,7 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\tts.updatepager = updatepager;\r\n
 \t\tts.refreshIndex = refreshIndex;\r\n
 \t\tts.setHeadCheckBox = setHeadCheckBox;\r\n
+\t\tts.constructTr = constructTr;\r\n
 \t\tts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};\r\n
 \t\t$.extend(grid,{populate : populate, emptyRows: emptyRows});\r\n
 \t\tthis.grid = grid;\r\n
@@ -2595,30 +2683,6 @@ $.fn.jqGrid = function( pin ) {\r\n
 \t\tthis.grid.cols = this.rows[0].cells;\r\n
 \r\n
 \t\tpopulate();ts.p.hiddengrid=false;\r\n
-\t\t$(window).unload(function () {\r\n
-\t\t\tts = null
-
-]]></string> </value>
-        </item>
-        <item>
-            <key> <string>next</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="Pdata" module="OFS.Image"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value> <string>;\r\n
-\t\t});\r\n
 \t});\r\n
 };\r\n
 $.jgrid.extend({\r\n
@@ -2630,15 +2694,15 @@ $.jgrid.extend({\r\n
 \t},\r\n
 \tsetGridParam : function (newParams){\r\n
 \t\treturn this.each(function(){\r\n
-\t\t\tif (this.grid \046\046 typeof(newParams) === \'object\') {$.extend(true,this.p,newParams);}\r\n
+\t\t\tif (this.grid && typeof(newParams) === \'object\') {$.extend(true,this.p,newParams);}\r\n
 \t\t});\r\n
 \t},\r\n
 \tgetDataIDs : function () {\r\n
 \t\tvar ids=[], i=0, len, j=0;\r\n
 \t\tthis.each(function(){\r\n
 \t\t\tlen = this.rows.length;\r\n
-\t\t\tif(len \046\046 len\0760){\r\n
-\t\t\t\twhile(i\074len) {\r\n
+\t\t\tif(len && len>0){\r\n
+\t\t\t\twhile(i<len) {\r\n
 \t\t\t\t\tif($(this.rows[i]).hasClass(\'jqgrow\')) {\r\n
 \t\t\t\t\t\tids[j] = this.rows[i].id;\r\n
 \t\t\t\t\t\tj++;\r\n
@@ -2649,28 +2713,28 @@ $.jgrid.extend({\r\n
 \t\t});\r\n
 \t\treturn ids;\r\n
 \t},\r\n
-\tsetSelection : function(selection,onsr) {\r\n
+\tsetSelection : function(selection,onsr, e) {\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tvar $t = this, stat,pt, ner, ia, tpsr, fid;\r\n
 \t\t\tif(selection === undefined) { return; }\r\n
 \t\t\tonsr = onsr === false ? false : true;\r\n
 \t\t\tpt=$t.rows.namedItem(selection+"");\r\n
-\t\t\tif(!pt || !pt.className || pt.className.indexOf( \'ui-state-disabled\' ) \076 -1 ) { return; }\r\n
+\t\t\tif(!pt || !pt.className || pt.className.indexOf( \'ui-state-disabled\' ) > -1 ) { return; }\r\n
 \t\t\tfunction scrGrid(iR){\r\n
 \t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\r\n
 \t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\r\n
-\t\t\t\trpos = $t.rows[iR].offsetTop,\r\n
+\t\t\t\trpos = $($t.rows[iR]).position().top,\r\n
 \t\t\t\trh = $t.rows[iR].clientHeight;\r\n
-\t\t\t\tif(rpos+rh \076= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }\r\n
-\t\t\t\telse if(rpos \074 ch+st) {\r\n
-\t\t\t\t\tif(rpos \074 st) {\r\n
+\t\t\t\tif(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }\r\n
+\t\t\t\telse if(rpos < ch+st) {\r\n
+\t\t\t\t\tif(rpos < st) {\r\n
 \t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = rpos;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif($t.p.scrollrows===true) {\r\n
 \t\t\t\tner = $t.rows.namedItem(selection).rowIndex;\r\n
-\t\t\t\tif(ner \076=0 ){\r\n
+\t\t\t\tif(ner >=0 ){\r\n
 \t\t\t\t\tscrGrid(ner);\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
@@ -2691,7 +2755,8 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tstat = false;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$t.p.selrow = pt.id;\r\n
-\t\t\t\t\tif( $t.p.onSelectRow \046\046 onsr) { $t.p.onSelectRow.call($t, pt.id, stat); }\r\n
+\t\t\t\t\t$($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]);\r\n
+\t\t\t\t\tif( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id, stat, e); }\r\n
 \t\t\t\t}\r\n
 \t\t\t} else {\r\n
 \t\t\t\t//unselect selectall checkbox when deselecting a specific row\r\n
@@ -2701,16 +2766,15 @@ $.jgrid.extend({\r\n
 \t\t\t\tif (  ia === -1 ){\r\n
 \t\t\t\t\tif(pt.className !== "ui-subgrid") { $(pt).addClass("ui-state-highlight").attr("aria-selected","true");}\r\n
 \t\t\t\t\tstat = true;\r\n
-\t\t\t\t\t$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID($t.p.selrow))[$t.p.useProp ? \'prop\': \'attr\']("checked",stat);\r\n
 \t\t\t\t\t$t.p.selarrrow.push($t.p.selrow);\r\n
 \t\t\t\t} else {\r\n
 \t\t\t\t\tif(pt.className !== "ui-subgrid") { $(pt).removeClass("ui-state-highlight").attr("aria-selected","false");}\r\n
 \t\t\t\t\tstat = false;\r\n
-\t\t\t\t\t$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID($t.p.selrow))[$t.p.useProp ? \'prop\': \'attr\']("checked",stat);\r\n
 \t\t\t\t\t$t.p.selarrrow.splice(ia,1);\r\n
 \t\t\t\t\ttpsr = $t.p.selarrrow[0];\r\n
 \t\t\t\t\t$t.p.selrow = (tpsr === undefined) ? null : tpsr;\r\n
 \t\t\t\t}\r\n
+\t\t\t\t$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(pt.id))[$t.p.useProp ? \'prop\': \'attr\']("checked",stat);\r\n
 \t\t\t\tif(fid) {\r\n
 \t\t\t\t\tif(ia === -1) {\r\n
 \t\t\t\t\t\t$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass("ui-state-highlight");\r\n
@@ -2719,24 +2783,31 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid))[$t.p.useProp ? \'prop\': \'attr\']("checked",stat);\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif( $t.p.onSelectRow \046\046 onsr) { $t.p.onSelectRow.call($t, pt.id , stat); }\r\n
+\t\t\t\t$($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]);\r\n
+\t\t\t\tif( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id , stat, e); }\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t},\r\n
 \tresetSelection : function( rowid ){\r\n
 \t\treturn this.each(function(){\r\n
-\t\t\tvar t = this, ind, sr;\r\n
+\t\t\tvar t = this, ind, sr, fid;\r\n
+\t\t\tif( t.p.frozenColumns === true ) {\r\n
+\t\t\t\tfid = t.p.id+"_frozen";\r\n
+\t\t\t}\r\n
 \t\t\tif(typeof(rowid) !== "undefined" ) {\r\n
 \t\t\t\tsr = rowid === t.p.selrow ? t.p.selrow : rowid;\r\n
 \t\t\t\t$("#"+$.jgrid.jqID(t.p.id)+" tbody:first tr#"+$.jgrid.jqID(sr)).removeClass("ui-state-highlight").attr("aria-selected","false");\r\n
+\t\t\t\tif (fid) { $("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid)).removeClass("ui-state-highlight"); }\r\n
 \t\t\t\tif(t.p.multiselect) {\r\n
-\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr))[t.p.useProp ? \'prop\': \'attr\']("checked",false);\r\n
+\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(t.p.id))[t.p.useProp ? \'prop\': \'attr\']("checked",false);\r\n
+\t\t\t\t\tif(fid) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid))[t.p.useProp ? \'prop\': \'attr\']("checked",false); }\r\n
 \t\t\t\t\tt.setHeadCheckBox( false);\r\n
 \t\t\t\t}\r\n
 \t\t\t\tsr = null;\r\n
 \t\t\t} else if(!t.p.multiselect) {\r\n
 \t\t\t\tif(t.p.selrow) {\r\n
 \t\t\t\t\t$("#"+$.jgrid.jqID(t.p.id)+" tbody:first tr#"+$.jgrid.jqID(t.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected","false");\r\n
+\t\t\t\t\tif(fid) { $("#"+$.jgrid.jqID(t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass("ui-state-highlight"); }\r\n
 \t\t\t\t\tt.p.selrow = null;\r\n
 \t\t\t\t}\r\n
 \t\t\t} else {\r\n
@@ -2744,12 +2815,16 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tind = t.rows.namedItem(n);\r\n
 \t\t\t\t\t$(ind).removeClass("ui-state-highlight").attr("aria-selected","false");\r\n
 \t\t\t\t\t$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n))[t.p.useProp ? \'prop\': \'attr\']("checked",false);\r\n
+\t\t\t\t\tif(fid) { \r\n
+\t\t\t\t\t\t$("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid)).removeClass("ui-state-highlight"); \r\n
+\t\t\t\t\t\t$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid))[t.p.useProp ? \'prop\': \'attr\']("checked",false);\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
 \t\t\t\tt.setHeadCheckBox( false );\r\n
 \t\t\t\tt.p.selarrrow = [];\r\n
 \t\t\t}\r\n
 \t\t\tif(t.p.cellEdit === true) {\r\n
-\t\t\t\tif(parseInt(t.p.iCol,10)\076=0  \046\046 parseInt(t.p.iRow,10)\076=0) {\r\n
+\t\t\t\tif(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {\r\n
 \t\t\t\t\t$("td:eq("+t.p.iCol+")",t.rows[t.p.iRow]).removeClass("edit-cell ui-state-highlight");\r\n
 \t\t\t\t\t$(t.rows[t.p.iRow]).removeClass("selected-row ui-state-hover");\r\n
 \t\t\t\t}\r\n
@@ -2770,17 +2845,17 @@ $.jgrid.extend({\r\n
 \t\t\t\tif(!ind) { return res; }\r\n
 \t\t\t\tlen = 2;\r\n
 \t\t\t}\r\n
-\t\t\twhile(j\074len){\r\n
+\t\t\twhile(j<len){\r\n
 \t\t\t\tif(getall) { ind = $t.rows[j]; }\r\n
 \t\t\t\tif( $(ind).hasClass(\'jqgrow\') ) {\r\n
-\t\t\t\t\t$(\'td\',ind).each( function(i) {\r\n
+\t\t\t\t\t$(\'td[role="gridcell"]\',ind).each( function(i) {\r\n
 \t\t\t\t\t\tnm = $t.p.colModel[i].name;\r\n
-\t\t\t\t\t\tif ( nm !== \'cb\' \046\046 nm !== \'subgrid\' \046\046 nm !== \'rn\') {\r\n
-\t\t\t\t\t\t\tif($t.p.treeGrid===true \046\046 nm == $t.p.ExpandColumn) {\r\n
+\t\t\t\t\t\tif ( nm !== \'cb\' && nm !== \'subgrid\' && nm !== \'rn\') {\r\n
+\t\t\t\t\t\t\tif($t.p.treeGrid===true && nm == $t.p.ExpandColumn) {\r\n
 \t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($("span:first",this).html());\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t\tres[nm] = $.unformat(this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);\r\n
+\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);\r\n
 \t\t\t\t\t\t\t\t} catch (e){\r\n
 \t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\r\n
 \t\t\t\t\t\t\t\t}\r\n
@@ -2814,13 +2889,14 @@ $.jgrid.extend({\r\n
 \t\t\t\tif(rowid == $t.p.selrow) {$t.p.selrow=null;}\r\n
 \t\t\t}\r\n
 \t\t\tif($t.p.datatype == \'local\') {\r\n
-\t\t\t\tvar pos = $t.p._index[rowid];\r\n
+\t\t\t\tvar id = $.jgrid.stripPref($t.p.idPrefix, rowid),\r\n
+\t\t\t\tpos = $t.p._index[id];\r\n
 \t\t\t\tif(typeof(pos) != \'undefined\') {\r\n
 \t\t\t\t\t$t.p.data.splice(pos,1);\r\n
 \t\t\t\t\t$t.refreshIndex();\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
-\t\t\tif( $t.p.altRows === true \046\046 success ) {\r\n
+\t\t\tif( $t.p.altRows === true && success ) {\r\n
 \t\t\t\tvar cn = $t.p.altclass;\r\n
 \t\t\t\t$($t.rows).each(function(i){\r\n
 \t\t\t\t\tif(i % 2 ==1) { $(this).addClass(cn); }\r\n
@@ -2842,18 +2918,19 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t$(this.p.colModel).each(function(i){\r\n
 \t\t\t\t\t\tnm = this.name;\r\n
 \t\t\t\t\t\tif( data[nm] !== undefined) {\r\n
-\t\t\t\t\t\t\tlcdata[nm] = this.formatter \046\046 typeof(this.formatter) === \'string\' \046\046 this.formatter == \'date\' ? $.unformat.date(data[nm],this) : data[nm];\r\n
+\t\t\t\t\t\t\tlcdata[nm] = this.formatter && typeof(this.formatter) === \'string\' && this.formatter == \'date\' ? $.unformat.date.call(t,data[nm],this) : data[nm];\r\n
 \t\t\t\t\t\t\tvl = t.formatter( rowid, data[nm], i, data, \'edit\');\r\n
 \t\t\t\t\t\t\ttitle = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};\r\n
-\t\t\t\t\t\t\tif(t.p.treeGrid===true \046\046 nm == t.p.ExpandColumn) {\r\n
-\t\t\t\t\t\t\t\t$("td:eq("+i+") \076 span:first",ind).html(vl).attr(title);\r\n
+\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm == t.p.ExpandColumn) {\r\n
+\t\t\t\t\t\t\t\t$("td:eq("+i+") > span:first",ind).html(vl).attr(title);\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t$("td:eq("+i+")",ind).html(vl).attr(title);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t\tif(t.p.datatype == \'local\') {\r\n
-\t\t\t\t\t\tvar pos = t.p._index[rowid];\r\n
+\t\t\t\t\t\tvar id = $.jgrid.stripPref(t.p.idPrefix, rowid),\r\n
+\t\t\t\t\t\tpos = t.p._index[id];\r\n
 \t\t\t\t\t\tif(t.p.treeGrid) {\r\n
 \t\t\t\t\t\t\tfor(var key in t.p.treeReader ){\r\n
 \t\t\t\t\t\t\t\tif(lcdata.hasOwnProperty(t.p.treeReader[key])) {\r\n
@@ -2872,14 +2949,14 @@ $.jgrid.extend({\r\n
 \t\t\t}\r\n
 \t\t\tif(success) {\r\n
 \t\t\t\tif(cp === \'string\') {$(ind).addClass(cssp);} else if(cp === \'object\') {$(ind).css(cssp);}\r\n
-\t\t\t\tif($.isFunction(t.p._complete)) {t.p._complete.call(t);}\r\n
+\t\t\t\t$(t).triggerHandler("jqGridAfterGridComplete");\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t\treturn success;\r\n
 \t},\r\n
 \taddRowData : function(rowid,rdata,pos,src) {\r\n
 \t\tif(!pos) {pos = "last";}\r\n
-\t\tvar success = false, nm, row, gi, si, ni,sind, i, v, prp="", aradd, cnm, cn, data, cm;\r\n
+\t\tvar success = false, nm, row, gi, si, ni,sind, i, v, prp="", aradd, cnm, cn, data, cm, id;\r\n
 \t\tif(rdata) {\r\n
 \t\t\tif($.isArray(rdata)) {\r\n
 \t\t\t\taradd=true;\r\n
@@ -2907,59 +2984,61 @@ $.jgrid.extend({\r\n
 \t\t\t\tcn = t.p.altclass;\r\n
 \t\t\t\tvar k = 0, cna ="", lcdata = {},\r\n
 \t\t\t\tair = $.isFunction(t.p.afterInsertRow) ? true : false;\r\n
-\t\t\t\twhile(k \074 datalen) {\r\n
+\t\t\t\twhile(k < datalen) {\r\n
 \t\t\t\t\tdata = rdata[k];\r\n
-\t\t\t\t\trow="";\r\n
+\t\t\t\t\trow=[];\r\n
 \t\t\t\t\tif(aradd) {\r\n
 \t\t\t\t\t\ttry {rowid = data[cnm];}\r\n
 \t\t\t\t\t\tcatch (e) {rowid = $.jgrid.randId();}\r\n
 \t\t\t\t\t\tcna = t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? cn : "" : "";\r\n
 \t\t\t\t\t}\r\n
+\t\t\t\t\tid = rowid;\r\n
 \t\t\t\t\trowid  = t.p.idPrefix + rowid;\r\n
 \t\t\t\t\tif(ni){\r\n
 \t\t\t\t\t\tprp = t.formatCol(0,1,\'\',null,rowid, true);\r\n
-\t\t\t\t\t\trow += "\074td role=\\"gridcell\\" aria-describedby=\\""+t.p.id+"_rn\\" class=\\"ui-state-default jqgrid-rownum\\" "+prp+"\0760\074/td\076";\r\n
+\t\t\t\t\t\trow[row.length] = "<td role=\\"gridcell\\" class=\\"ui-state-default jqgrid-rownum\\" "+prp+">0</td>";\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif(gi) {\r\n
-\t\t\t\t\t\tv = "\074input role=\\"checkbox\\" type=\\"checkbox\\""+" id=\\"jqg_"+t.p.id+"_"+rowid+"\\" class=\\"cbox\\"/\076";\r\n
+\t\t\t\t\t\tv = "<input role=\\"checkbox\\" type=\\"checkbox\\""+" id=\\"jqg_"+t.p.id+"_"+rowid+"\\" class=\\"cbox\\"/>";\r\n
 \t\t\t\t\t\tprp = t.formatCol(ni,1,\'\', null, rowid, true);\r\n
-\t\t\t\t\t\trow += "\074td role=\\"gridcell\\" aria-describedby=\\""+t.p.id+"_cb\\" "+prp+"\076"+v+"\074/td\076";\r\n
+\t\t\t\t\t\trow[row.length] = "<td role=\\"gridcell\\" "+prp+">"+v+"</td>";\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif(si) {\r\n
-\t\t\t\t\t\trow += $(t).jqGrid("addSubGridCell",gi+ni,1);\r\n
+\t\t\t\t\t\trow[row.length] = $(t).jqGrid("addSubGridCell",gi+ni,1);\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\tfor(i = gi+si+ni; i \074 t.p.colModel.length;i++){\r\n
+\t\t\t\t\tfor(i = gi+si+ni; i < t.p.colModel.length;i++){\r\n
 \t\t\t\t\t\tcm = t.p.colModel[i];\r\n
 \t\t\t\t\t\tnm = cm.name;\r\n
-\t\t\t\t\t\tlcdata[nm] = cm.formatter \046\046 typeof(cm.formatter) === \'string\' \046\046 cm.formatter == \'date\' ? $.unformat.date(data[nm],cm) : data[nm];\r\n
-\t\t\t\t\t\tv = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data, \'edit\');\r\n
+\t\t\t\t\t\tlcdata[nm] = data[nm];\r\n
+\t\t\t\t\t\tv = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );\r\n
 \t\t\t\t\t\tprp = t.formatCol(i,1,v, data, rowid, true);\r\n
-\t\t\t\t\t\trow += "\074td role=\\"gridcell\\" aria-describedby=\\""+t.p.id+"_"+nm+"\\" "+prp+"\076"+v+"\074/td\076";\r\n
+\t\t\t\t\t\trow[row.length] = "<td role=\\"gridcell\\" "+prp+">"+v+"</td>";\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\trow = "\074tr id=\\""+rowid+"\\" role=\\"row\\" tabindex=\\"-1\\" class=\\"ui-widget-content jqgrow ui-row-"+t.p.direction+" "+cna+"\\"\076" + row+"\074/tr\076";\r\n
+\t\t\t\t\trow.unshift( t.constructTr(rowid, false, cna, lcdata, data, false ) );\r\n
+\t\t\t\t\trow[row.length] = "</tr>";\r\n
 \t\t\t\t\tif(t.rows.length === 0){\r\n
-\t\t\t\t\t\t$("table:first",t.grid.bDiv).append(row);\r\n
+\t\t\t\t\t\t$("table:first",t.grid.bDiv).append(row.join(\'\'));\r\n
 \t\t\t\t\t} else {\r\n
 \t\t\t\t\tswitch (pos) {\r\n
 \t\t\t\t\t\tcase \'last\':\r\n
-\t\t\t\t\t\t\t$(t.rows[t.rows.length-1]).after(row);\r\n
+\t\t\t\t\t\t\t$(t.rows[t.rows.length-1]).after(row.join(\'\'));\r\n
 \t\t\t\t\t\t\tsind = t.rows.length-1;\r\n
 \t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t\tcase \'first\':\r\n
-\t\t\t\t\t\t\t$(t.rows[0]).after(row);\r\n
+\t\t\t\t\t\t\t$(t.rows[0]).after(row.join(\'\'));\r\n
 \t\t\t\t\t\t\tsind = 1;\r\n
 \t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t\tcase \'after\':\r\n
 \t\t\t\t\t\t\tsind = t.rows.namedItem(src);\r\n
 \t\t\t\t\t\t\tif (sind) {\r\n
 \t\t\t\t\t\t\t\tif($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }\r\n
-\t\t\t\t\t\t\t\telse { $(sind).after(row); }\r\n
+\t\t\t\t\t\t\t\telse { $(sind).after(row.join(\'\')); }\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tsind++;\r\n
 \t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t\tcase \'before\':\r\n
 \t\t\t\t\t\t\tsind = t.rows.namedItem(src);\r\n
-\t\t\t\t\t\t\tif(sind) {$(sind).before(row);sind=sind.rowIndex;}\r\n
+\t\t\t\t\t\t\tif(sind) {$(sind).before(row.join(\'\'));sind=sind.rowIndex;}\r\n
 \t\t\t\t\t\t\tsind--;\r\n
 \t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t}\r\n
@@ -2969,16 +3048,17 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tt.p.records++;\r\n
 \t\t\t\t\tt.p.reccount++;\r\n
+\t\t\t\t\t$(t).triggerHandler("jqGridAfterInsertRow", [rowid,data,data]);\r\n
 \t\t\t\t\tif(air) { t.p.afterInsertRow.call(t,rowid,data,data); }\r\n
 \t\t\t\t\tk++;\r\n
 \t\t\t\t\tif(t.p.datatype == \'local\') {\r\n
-\t\t\t\t\t\tlcdata[t.p.localReader.id] = rowid;\r\n
-\t\t\t\t\t\tt.p._index[rowid] = t.p.data.length;\r\n
+\t\t\t\t\t\tlcdata[t.p.localReader.id] = id;\r\n
+\t\t\t\t\t\tt.p._index[id] = t.p.data.length;\r\n
 \t\t\t\t\t\tt.p.data.push(lcdata);\r\n
 \t\t\t\t\t\tlcdata = {};\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif( t.p.altRows === true \046\046 !aradd) {\r\n
+\t\t\t\tif( t.p.altRows === true && !aradd) {\r\n
 \t\t\t\t\tif (pos == "last") {\r\n
 \t\t\t\t\t\tif ((t.rows.length-1)%2 == 1)  {$(t.rows[t.rows.length-1]).addClass(cn);}\r\n
 \t\t\t\t\t} else {\r\n
@@ -3028,32 +3108,40 @@ $.jgrid.extend({\r\n
 \t},\r\n
 \tshowHideCol : function(colname,show) {\r\n
 \t\treturn this.each(function() {\r\n
-\t\t\tvar $t = this, fndh=false, brd=$.browser.webkit||$.browser.safari? 0: $t.p.cellLayout, cw;\r\n
+\t\t\tvar $t = this, fndh=false, brd=$.jgrid.cellWidth()? 0: $t.p.cellLayout, cw;\r\n
 \t\t\tif (!$t.grid ) {return;}\r\n
 \t\t\tif( typeof colname === \'string\') {colname=[colname];}\r\n
 \t\t\tshow = show != "none" ? "" : "none";\r\n
 \t\t\tvar sw = show === "" ? true :false,\r\n
-\t\t\tgh = $t.p.groupHeader \046\046 (typeof $t.p.groupHeader === \'object\' || $.isFunction($t.p.groupHeader) );\r\n
+\t\t\tgh = $t.p.groupHeader && (typeof $t.p.groupHeader === \'object\' || $.isFunction($t.p.groupHeader) );\r\n
 \t\t\tif(gh) { $($t).jqGrid(\'destroyGroupHeader\', false); }\r\n
 \t\t\t$(this.p.colModel).each(function(i) {\r\n
-\t\t\t\tif ($.inArray(this.name,colname) !== -1 \046\046 this.hidden === sw) {\r\n
-\t\t\t\t\tif($t.p.frozenColumns === true \046\046 this.frozen === true) {\r\n
+\t\t\t\tif ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {\r\n
+\t\t\t\t\tif($t.p.frozenColumns === true && this.frozen === true) {\r\n
 \t\t\t\t\t\treturn true;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$("tr",$t.grid.hDiv).each(function(){\r\n
 \t\t\t\t\t\t$(this.cells[i]).css("display", show);\r\n
 \t\t\t\t\t});\r\n
-\t\t\t\t\t$($t.rows).each(function(j){\r\n
-\t\t\t\t\t\t$(this.cells[i]).css("display", show);\r\n
+\t\t\t\t\t$($t.rows).each(function(){\r\n
+\t\t\t\t\t\tif (!$(this).hasClass("jqgroup")) {\r\n
+\t\t\t\t\t\t\t$(this.cells[i]).css("display", show);\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t\tif($t.p.footerrow) { $("tr.footrow td:eq("+i+")", $t.grid.sDiv).css("display", show); }\r\n
-\t\t\t\t\tcw = this.widthOrg? this.widthOrg: parseInt(this.width,10);\r\n
-\t\t\t\t\tif(show === "none") {$t.p.tblwidth -= cw+brd;} else {$t.p.tblwidth += cw+brd;}\r\n
+\t\t\t\t\tcw =  parseInt(this.width,10);\r\n
+\t\t\t\t\tif(show === "none") {\r\n
+\t\t\t\t\t\t$t.p.tblwidth -= cw+brd;\r\n
+\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t$t.p.tblwidth += cw+brd;\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t\tthis.hidden = !sw;\r\n
 \t\t\t\t\tfndh=true;\r\n
+\t\t\t\t\t$($t).triggerHandler("jqGridShowHideCol", [sw,this.name,i]);\r\n
 \t\t\t\t}\r\n
 \t\t\t});\r\n
 \t\t\tif(fndh===true) {\r\n
+\t\t\t\tif($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10);}\r\n
 \t\t\t\t$($t).jqGrid("setGridWidth",$t.p.shrinkToFit === true ? $t.p.tblwidth : $t.p.width );\r\n
 \t\t\t}\r\n
 \t\t\tif( gh )  {\r\n
@@ -3082,7 +3170,7 @@ $.jgrid.extend({\r\n
 \t\t}\r\n
 \t\tvar ts = this.get(0);\r\n
 \t\tfunction resortRows(parent, clobj) {\r\n
-\t\t\t$("\076tr"+(clobj||""), parent).each(function() {\r\n
+\t\t\t$(">tr"+(clobj||""), parent).each(function() {\r\n
 \t\t\t\tvar row = this;\r\n
 \t\t\t\tvar elems = $.makeArray(row.cells);\r\n
 \t\t\t\t$.each(permutation, function() {\r\n
@@ -3096,7 +3184,7 @@ $.jgrid.extend({\r\n
 \t\tresortArray(ts.p.colModel);\r\n
 \t\tresortArray(ts.p.colNames);\r\n
 \t\tresortArray(ts.grid.headers);\r\n
-\t\tresortRows($("thead:first", ts.grid.hDiv), keepHeader \046\046 ":not(.ui-jqgrid-labels)");\r\n
+\t\tresortRows($("thead:first", ts.grid.hDiv), keepHeader && ":not(.ui-jqgrid-labels)");\r\n
 \t\tif (updateCells) {\r\n
 \t\t\tresortRows($("#"+$.jgrid.jqID(ts.p.id)+" tbody:first"), ".jqgfirstrow, tr.jqgrow, tr.jqfoot");\r\n
 \t\t}\r\n
@@ -3112,19 +3200,42 @@ $.jgrid.extend({\r\n
 \t\t}\r\n
 \t\tts.p.lastsort = $.inArray(ts.p.lastsort, permutation);\r\n
 \t\tif(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }\r\n
+\t\t$(ts).triggerHandler("jqGridRemapColumns", [permutation, updateCells, keepHeader]);\r\n
 \t},\r\n
 \tsetGridWidth : function(nwidth, shrink) {\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tif (!this.grid ) {return;}\r\n
 \t\t\tvar $t = this, cw,\r\n
-\t\t\tinitwidth = 0, brd=$.browser.webkit||$.browser.safari? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0,\r\n
+\t\t\tinitwidth = 0, brd=$.jgrid.cellWidth() ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0,\r\n
 \t\t\tcl = 0,cr;\r\n
 \t\t\tif(typeof shrink != \'boolean\') {\r\n
 \t\t\t\tshrink=$t.p.shrinkToFit;\r\n
 \t\t\t}\r\n
 \t\t\tif(isNaN(nwidth)) {return;}\r\n
-\t\t\telse { nwidth = parseInt(nwidth,10); $t.grid.width = $t.p.width = nwidth;}\r\n
-\t\t\t$("#gbox_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");\r\n
+\t\t\tnwidth = parseInt(nwidth,10); \r\n
+\t\t\t$t.grid.width = $t.p.width = nwidth;\r\n
+\t\t\t$("#gbo
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string>x_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");\r\n
 \t\t\t$("#gview_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");\r\n
 \t\t\t$($t.grid.bDiv).css("width",nwidth+"px");\r\n
 \t\t\t$($t.grid.hDiv).css("width",nwidth+"px");\r\n
@@ -3137,9 +3248,9 @@ $.jgrid.extend({\r\n
 \t\t\tif($t.p.footerrow) { $($t.grid.sDiv).css("width",nwidth+"px"); }\r\n
 \t\t\tif(shrink ===false \046\046 $t.p.forceFit === true) {$t.p.forceFit=false;}\r\n
 \t\t\tif(shrink===true) {\r\n
-\t\t\t\t$.each($t.p.colModel, function(i) {\r\n
+\t\t\t\t$.each($t.p.colModel, function() {\r\n
 \t\t\t\t\tif(this.hidden===false){\r\n
-\t\t\t\t\t\tcw = this.widthOrg? this.widthOrg: parseInt(this.width,10);\r\n
+\t\t\t\t\t\tcw = this.widthOrg;\r\n
 \t\t\t\t\t\tinitwidth += cw+brd;\r\n
 \t\t\t\t\t\tif(this.fixed) {\r\n
 \t\t\t\t\t\t\tgw += cw+brd;\r\n
@@ -3162,7 +3273,7 @@ $.jgrid.extend({\r\n
 \t\t\t\tvar cle = $t.grid.cols.length \0760;\r\n
 \t\t\t\t$.each($t.p.colModel, function(i) {\r\n
 \t\t\t\t\tif(this.hidden === false \046\046 !this.fixed){\r\n
-\t\t\t\t\t\tcw = this.widthOrg? this.widthOrg: parseInt(this.width,10);\r\n
+\t\t\t\t\t\tcw = this.widthOrg;\r\n
 \t\t\t\t\t\tcw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));\r\n
 \t\t\t\t\t\tif (cw \074 0) { return; }\r\n
 \t\t\t\t\t\tthis.width =cw;\r\n
@@ -3176,7 +3287,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t});\r\n
 \r\n
 \t\t\t\tif (!lvc) { return; }\r\n
-\t\t\t    \r\n
+\r\n
 \t\t\t\tcr =0;\r\n
 \t\t\t\tif (hs) {\r\n
 \t\t\t\t\tif(nwidth-gw-(initwidth+brd*vc) !== scw){\r\n
@@ -3219,7 +3330,7 @@ $.jgrid.extend({\r\n
 \t\t\tbDiv.css({height: nh+(isNaN(nh)?"":"px")});\r\n
 \t\t\tif($t.p.frozenColumns === true){\r\n
 \t\t\t\t//follow the original set height to use 16, better scrollbar width detection\r\n
-\t\t\t\t$(\'#\'+$t.p.id+"_frozen").parent().height(bDiv.height() - 16); \r\n
+\t\t\t\t$(\'#\'+$.jgrid.jqID($t.p.id)+"_frozen").parent().height(bDiv.height() - 16);\r\n
 \t\t\t}\r\n
 \t\t\t$t.p.height = nh;\r\n
 \t\t\tif ($t.p.scroll) { $t.grid.populateVisible(); }\r\n
@@ -3282,7 +3393,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif($t.p.datatype == "local") {\r\n
 \t\t\t\t\t\t\tvar cm = $t.p.colModel[pos], index;\r\n
-\t\t\t\t\t\t\tnData = cm.formatter \046\046 typeof(cm.formatter) === \'string\' \046\046 cm.formatter == \'date\' ? $.unformat.date(nData,cm) : nData;\r\n
+\t\t\t\t\t\t\tnData = cm.formatter \046\046 typeof(cm.formatter) === \'string\' \046\046 cm.formatter == \'date\' ? $.unformat.date.call($t,nData,cm) : nData;\r\n
 \t\t\t\t\t\t\tindex = $t.p._index[rowid];\r\n
 \t\t\t\t\t\t\tif(typeof index  != "undefined") {\r\n
 \t\t\t\t\t\t\t\t$t.p.data[index][cm.name] = nData;\r\n
@@ -3315,7 +3426,7 @@ $.jgrid.extend({\r\n
 \t\t\t\tvar ind = $t.rows.namedItem(rowid);\r\n
 \t\t\t\tif(ind) {\r\n
 \t\t\t\t\ttry {\r\n
-\t\t\t\t\t\tret = $.unformat($("td:eq("+pos+")",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);\r\n
+\t\t\t\t\t\tret = $.unformat.call($t,$("td:eq("+pos+")",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);\r\n
 \t\t\t\t\t} catch (e){\r\n
 \t\t\t\t\t\tret = $.jgrid.htmlDecode($("td:eq("+pos+")",ind).html());\r\n
 \t\t\t\t\t}\r\n
@@ -3344,20 +3455,16 @@ $.jgrid.extend({\r\n
 \t\t\t\t\twhile(i\074ln){\r\n
 \t\t\t\t\t\tif($($t.rows[i]).hasClass(\'jqgrow\')) {\r\n
 \t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\tval = $.unformat($($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);\r\n
+\t\t\t\t\t\t\t\tval = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);\r\n
 \t\t\t\t\t\t\t} catch (e) {\r\n
 \t\t\t\t\t\t\t\tval = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif(mathopr) {\r\n
 \t\t\t\t\t\t\t\tv = parseFloat(val);\r\n
 \t\t\t\t\t\t\t\tsum += v;\r\n
-\t\t\t\t\t\t\t\tif(i===0) {\r\n
-\t\t\t\t\t\t\t\t\tmin = v;\r\n
-\t\t\t\t\t\t\t\t\tmax = v;\r\n
-\t\t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t\tmin = Math.min(min, v);\r\n
-\t\t\t\t\t\t\t\t\tmax = Math.max(max, v);\r\n
-\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\tif (max === undefined) {max = min = v}\r\n
+\t\t\t\t\t\t\t\tmin = Math.min(min, v);\r\n
+\t\t\t\t\t\t\t\tmax = Math.max(max, v);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\telse if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); }\r\n
 \t\t\t\t\t\t\telse { ret.push( val ); }\r\n
@@ -3438,7 +3545,8 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\tid = r.id;\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t$($t).jqGrid(\'setSelection\', id);\r\n
+\t\t\t\t\t\t\t$($t).jqGrid(\'setSelection\', id, true, event);\r\n
+\t\t\t\t\t\t\tevent.preventDefault();\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t//if key is down arrow\r\n
 \t\t\t\t\t\tif(event.keyCode === 40){\r\n
@@ -3454,48 +3562,49 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\tid = r.id;\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t$($t).jqGrid(\'setSelection\', id);\r\n
+\t\t\t\t\t\t\t$($t).jqGrid(\'setSelection\', id, true, event);\r\n
+\t\t\t\t\t\t\tevent.preventDefault();\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t// left\r\n
 \t\t\t\t\t\tif(event.keyCode === 37 ){\r\n
 \t\t\t\t\t\t\tif($t.p.treeGrid \046\046 $t.p.data[mind][expanded]) {\r\n
 \t\t\t\t\t\t\t\t$(target).find("div.treeclick").trigger(\'click\');\r\n
 \t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t$($t).triggerHandler("jqGridKeyLeft", [$t.p.selrow]);\r\n
 \t\t\t\t\t\t\tif($.isFunction(o.onLeftKey)) {\r\n
 \t\t\t\t\t\t\t\to.onLeftKey.call($t, $t.p.selrow);\r\n
-\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t// right\r\n
 \t\t\t\t\t\tif(event.keyCode === 39 ){\r\n
 \t\t\t\t\t\t\tif($t.p.treeGrid \046\046 !$t.p.data[mind][expanded]) {\r\n
 \t\t\t\t\t\t\t\t$(target).find("div.treeclick").trigger(\'click\');\r\n
 \t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t$($t).triggerHandler("jqGridKeyRight", [$t.p.selrow]);\r\n
 \t\t\t\t\t\t\tif($.isFunction(o.onRightKey)) {\r\n
 \t\t\t\t\t\t\t\to.onRightKey.call($t, $t.p.selrow);\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t//return false;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t//check if enter was pressed on a grid or treegrid node\r\n
 \t\t\t\t\telse if( event.keyCode === 13 ){\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridKeyEnter", [$t.p.selrow]);\r\n
 \t\t\t\t\t\tif($.isFunction(o.onEnter)) {\r\n
 \t\t\t\t\t\t\to.onEnter.call($t, $t.p.selrow);\r\n
 \t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t//return false;\r\n
 \t\t\t\t\t} else if(event.keyCode === 32) {\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridKeySpace", [$t.p.selrow]);\r\n
 \t\t\t\t\t\tif($.isFunction(o.onSpace)) {\r\n
 \t\t\t\t\t\t\to.onSpace.call($t, $t.p.selrow);\r\n
-\t\t\t\t\t    }\r\n
-\t\t\t\t\t\t//return false;\r\n
-\t\t\t\t    }\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t});\r\n
 \t\t});\r\n
 \t},\r\n
 \tunbindKeys : function(){\r\n
 \t\treturn this.each(function(){\r\n
-\t\t\tvar $t = this;\r\n
-\t\t\t$($t).unbind(\'keydown\');\r\n
+\t\t\t$(this).unbind(\'keydown\');\r\n
 \t\t});\r\n
 \t},\r\n
 \tgetLocalRow : function (rowid) {\r\n
@@ -3525,7 +3634,7 @@ $.jgrid.extend({\r\n
  * http://www.gnu.org/licenses/gpl-2.0.html\r\n
 **/\r\n
 /*global jQuery, $ */\r\n
-\r\n
+"use strict";\r\n
 $.jgrid.extend({\r\n
 \tgetColProp : function(colname){\r\n
 \t\tvar ret ={}, $t = this[0];\r\n
@@ -3574,15 +3683,53 @@ $.jgrid.extend({\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t},\r\n
+\tclearBeforeUnload : function () {\r\n
+\t\treturn this.each(function(){\r\n
+\t\t\tvar grid = this.grid;\r\n
+\t\t\tgrid.emptyRows.call(this, true, true); // this work quick enough and reduce the size of memory leaks if we have someone\r\n
+\r\n
+\t\t\t//$(document).unbind("mouseup"); // TODO add namespace\r\n
+\t\t\t$(grid.hDiv).unbind("mousemove"); // TODO add namespace\r\n
+\t\t\t$(this).unbind();\r\n
+\r\n
+\t\t\tgrid.dragEnd = null;\r\n
+\t\t\tgrid.dragMove = null;\r\n
+\t\t\tgrid.dragStart = null;\r\n
+\t\t\tgrid.emptyRows = null;\r\n
+\t\t\tgrid.populate = null;\r\n
+\t\t\tgrid.populateVisible = null;\r\n
+\t\t\tgrid.scrollGrid = null;\r\n
+\t\t\tgrid.selectionPreserver = null;\r\n
+\r\n
+\t\t\tgrid.bDiv = null;\r\n
+\t\t\tgrid.cDiv = null;\r\n
+\t\t\tgrid.hDiv = null;\r\n
+\t\t\tgrid.cols = null;\r\n
+\t\t\tvar i, l = grid.headers.length;\r\n
+\t\t\tfor (i = 0; i \074 l; i++) {\r\n
+\t\t\t\tgrid.headers[i].el = null;\r\n
+\t\t\t}\r\n
+\r\n
+\t\t\tthis.formatCol = null;\r\n
+\t\t\tthis.sortData = null;\r\n
+\t\t\tthis.updatepager = null;\r\n
+\t\t\tthis.refreshIndex = null;\r\n
+\t\t\tthis.setHeadCheckBox = null;\r\n
+\t\t\tthis.constructTr = null;\r\n
+\t\t\tthis.formatter = null;\r\n
+\t\t\tthis.addXmlData = null;\r\n
+\t\t\tthis.addJSONData = null;\r\n
+\t\t});\r\n
+\t},\r\n
 \tGridDestroy : function () {\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tif ( this.grid ) { \r\n
 \t\t\t\tif ( this.p.pager ) { // if not part of grid\r\n
 \t\t\t\t\t$(this.p.pager).remove();\r\n
 \t\t\t\t}\r\n
-\t\t\t\tvar gid = this.id;\r\n
 \t\t\t\ttry {\r\n
-\t\t\t\t\t$("#gbox_"+gid).remove();\r\n
+\t\t\t\t\t$(this).jqGrid(\'clearBeforeUnload\');\r\n
+\t\t\t\t\t$("#gbox_"+$.jgrid.jqID(this.id)).remove();\r\n
 \t\t\t\t} catch (_) {}\r\n
 \t\t\t}\r\n
 \t\t});\r\n
@@ -3597,7 +3744,7 @@ $.jgrid.extend({\r\n
 \t\t\tvar newtable = document.createElement(\'table\');\r\n
 \t\t\t$(newtable).attr({id:defgrid.id});\r\n
 \t\t\tnewtable.className = defgrid.cl;\r\n
-\t\t\tvar gid = this.id;\r\n
+\t\t\tvar gid = $.jgrid.jqID(this.id);\r\n
 \t\t\t$(newtable).removeClass("ui-jqgrid-btable");\r\n
 \t\t\tif( $(this.p.pager).parents("#gbox_"+gid).length === 1 ) {\r\n
 \t\t\t\t$(newtable).insertBefore("#gbox_"+gid).show();\r\n
@@ -3605,15 +3752,16 @@ $.jgrid.extend({\r\n
 \t\t\t} else {\r\n
 \t\t\t\t$(newtable).insertBefore("#gbox_"+gid).show();\r\n
 \t\t\t}\r\n
+\t\t\t$(this).jqGrid(\'clearBeforeUnload\');\r\n
 \t\t\t$("#gbox_"+gid).remove();\r\n
 \t\t});\r\n
 \t},\r\n
     setGridState : function(state) {\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tif ( !this.grid ) {return;}\r\n
-            var $t = this;\r\n
-            if(state == \'hidden\'){\r\n
-\t\t\t\t$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$t.p.id).slideUp("fast");\r\n
+\t\t\tvar $t = this;\r\n
+\t\t\tif(state == \'hidden\'){\r\n
+\t\t\t\t$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideUp("fast");\r\n
 \t\t\t\tif($t.p.pager) {$($t.p.pager).slideUp("fast");}\r\n
 \t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideUp("fast");}\r\n
 \t\t\t\tif($t.p.toolbar[0]===true) {\r\n
@@ -3622,11 +3770,11 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$($t.grid.uDiv).slideUp("fast");\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideUp("fast"); }\r\n
+\t\t\t\tif($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); }\r\n
 \t\t\t\t$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");\r\n
 \t\t\t\t$t.p.gridstate = \'hidden\';\r\n
-            } else if(state==\'visible\') {\r\n
-\t\t\t\t$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$t.p.id).slideDown("fast");\r\n
+\t\t\t} else if(state==\'visible\') {\r\n
+\t\t\t\t$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideDown("fast");\r\n
 \t\t\t\tif($t.p.pager) {$($t.p.pager).slideDown("fast");}\r\n
 \t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideDown("fast");}\r\n
 \t\t\t\tif($t.p.toolbar[0]===true) {\r\n
@@ -3635,7 +3783,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$($t.grid.uDiv).slideDown("fast");\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideDown("fast"); }\r\n
+\t\t\t\tif($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); }\r\n
 \t\t\t\t$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");\r\n
 \t\t\t\t$t.p.gridstate = \'visible\';\r\n
 \t\t\t}\r\n
@@ -3660,7 +3808,7 @@ $.jgrid.extend({\r\n
 \t\t\tif(this.ftoolbar) { return; }\r\n
 \t\t\tvar triggerToolbar = function() {\r\n
 \t\t\t\tvar sdata={}, j=0, v, nm, sopt={},so;\r\n
-\t\t\t\t$.each($t.p.colModel,function(i,n){\r\n
+\t\t\t\t$.each($t.p.colModel,function(){\r\n
 \t\t\t\t\tnm = this.index || this.name;\r\n
 \t\t\t\t\tso  = (this.searchoptions \046\046 this.searchoptions.sopt) ? this.searchoptions.sopt[0] : this.stype==\'select\'?  \'eq\' : p.defaultSearch;\r\n
 \t\t\t\t\tv = $("#gs_"+$.jgrid.jqID(this.name), (this.frozen===true \046\046 $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv).val();\r\n
@@ -3699,32 +3847,32 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tsaveurl = $t.p.url;\r\n
 \t\t\t\t\t$($t).jqGrid("setGridParam",{url:$t.p.searchurl});\r\n
 \t\t\t\t}\r\n
-\t\t\t\tvar bsr = false;\r\n
-\t\t\t\tif($.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\r\n
+\t\t\t\tvar bsr = $($t).triggerHandler("jqGridToolbarBeforeSearch") === \'stop\' ? true : false;\r\n
+\t\t\t\tif(!bsr \046\046 $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\r\n
 \t\t\t\tif(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); }\r\n
 \t\t\t\tif(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}\r\n
-\t\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch();}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridToolbarAfterSearch");\r\n
+\t\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\r\n
 \t\t\t};\r\n
 \t\t\tvar clearToolbar = function(trigger){\r\n
-\t\t\t\tvar sdata={}, v, j=0, nm;\r\n
+\t\t\t\tvar sdata={}, j=0, nm;\r\n
 \t\t\t\ttrigger = (typeof trigger != \'boolean\') ? true : trigger;\r\n
-\t\t\t\t$.each($t.p.colModel,function(i,n){\r\n
-\t\t\t\t\tv = (this.searchoptions \046\046 this.searchoptions.defaultValue) ? this.searchoptions.defaultValue : "";\r\n
+\t\t\t\t$.each($t.p.colModel,function(){\r\n
+\t\t\t\t\tvar v;\r\n
+\t\t\t\t\tif(this.searchoptions \046\046 this.searchoptions.defaultValue !== undefined) { v = this.searchoptions.defaultValue; }\r\n
 \t\t\t\t\tnm = this.index || this.name;\r\n
 \t\t\t\t\tswitch (this.stype) {\r\n
 \t\t\t\t\t\tcase \'select\' :\r\n
-\t\t\t\t\t\t\tvar v1;\r\n
 \t\t\t\t\t\t\t$("#gs_"+$.jgrid.jqID(this.name)+" option",(this.frozen===true \046\046 $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv).each(function (i){\r\n
 \t\t\t\t\t\t\t\tif(i===0) { this.selected = true; }\r\n
-\t\t\t\t\t\t\t\tif ($(this).text() == v) {\r\n
+\t\t\t\t\t\t\t\tif ($(this).val() == v) {\r\n
 \t\t\t\t\t\t\t\t\tthis.selected = true;\r\n
-\t\t\t\t\t\t\t\t\tv1 = $(this).val();\r\n
 \t\t\t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t});\r\n
-\t\t\t\t\t\t\tif (v1) {\r\n
+\t\t\t\t\t\t\tif ( v !== undefined ) {\r\n
 \t\t\t\t\t\t\t\t// post the key and not the text\r\n
-\t\t\t\t\t\t\t\tsdata[nm] = v1;\r\n
+\t\t\t\t\t\t\t\tsdata[nm] = v;\r\n
 \t\t\t\t\t\t\t\tj++;\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\ttry {\r\n
@@ -3734,7 +3882,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t\tcase \'text\':\r\n
 \t\t\t\t\t\t\t$("#gs_"+$.jgrid.jqID(this.name),(this.frozen===true \046\046 $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv).val(v);\r\n
-\t\t\t\t\t\t\tif(v) {\r\n
+\t\t\t\t\t\t\tif(v !== undefined) {\r\n
 \t\t\t\t\t\t\t\tsdata[nm] = v;\r\n
 \t\t\t\t\t\t\t\tj++;\r\n
 \t\t\t\t\t\t\t} else {\r\n
@@ -3770,19 +3918,20 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tsaveurl = $t.p.url;\r\n
 \t\t\t\t\t$($t).jqGrid("setGridParam",{url:$t.p.searchurl});\r\n
 \t\t\t\t}\r\n
-\t\t\t\tvar bcv = false;\r\n
-\t\t\t\tif($.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}\r\n
+\t\t\t\tvar bcv = $($t).triggerHandler("jqGridToolbarBeforeClear") === \'stop\' ? true : false;\r\n
+\t\t\t\tif(!bcv \046\046 $.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}\r\n
 \t\t\t\tif(!bcv) {\r\n
 \t\t\t\t\tif(trigger) {\r\n
 \t\t\t\t\t\t$($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridToolbarAfterClear");\r\n
 \t\t\t\tif($.isFunction(p.afterClear)){p.afterClear();}\r\n
 \t\t\t};\r\n
 \t\t\tvar toggleToolbar = function(){\r\n
 \t\t\t\tvar trow = $("tr.ui-search-toolbar",$t.grid.hDiv),\r\n
-\t\t\t\ttrow2 = $t.p.frozenColumns === true ?  $("tr.ui-search-toolbar",$t.grid.hDiv) : false;\r\n
+\t\t\t\ttrow2 = $t.p.frozenColumns === true ?  $("tr.ui-search-toolbar",$t.grid.fhDiv) : false;\r\n
 \t\t\t\tif(trow.css("display")==\'none\') { \r\n
 \t\t\t\t\ttrow.show(); \r\n
 \t\t\t\t\tif(trow2) {\r\n
@@ -3799,18 +3948,18 @@ $.jgrid.extend({\r\n
 \t\t\tfunction bindEvents(selector, events) {\r\n
 \t\t\t\tvar jElem = $(selector);\r\n
 \t\t\t\tif (jElem[0]) {\r\n
-\t\t\t\t    jQuery.each(events, function() {\r\n
-\t\t\t\t        if (this.data !== undefined) {\r\n
-\t\t\t\t            jElem.bind(this.type, this.data, this.fn);\r\n
-\t\t\t\t        } else {\r\n
-\t\t\t\t            jElem.bind(this.type, this.fn);\r\n
-\t\t\t\t        }\r\n
-\t\t\t\t    });\r\n
+\t\t\t\t\tjQuery.each(events, function() {\r\n
+\t\t\t\t\t\tif (this.data !== undefined) {\r\n
+\t\t\t\t\t\t\tjElem.bind(this.type, this.data, this.fn);\r\n
+\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\tjElem.bind(this.type, this.fn);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tvar tr = $("\074tr class=\'ui-search-toolbar\' role=\'rowheader\'\076\074/tr\076");\r\n
 \t\t\tvar timeoutHnd;\r\n
-\t\t\t$.each($t.p.colModel,function(i,n){\r\n
+\t\t\t$.each($t.p.colModel,function(){\r\n
 \t\t\t\tvar cm=this, thd , th, soptions,surl,self;\r\n
 \t\t\t\tth = $("\074th role=\'columnheader\' class=\'ui-state-default ui-th-column ui-th-"+$t.p.direction+"\'\076\074/th\076");\r\n
 \t\t\t\tthd = $("\074div style=\'width:100%;position:relative;height:100%;padding-right:0.3em;\'\076\074/div\076");\r\n
@@ -3830,14 +3979,14 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t$.ajax($.extend({\r\n
 \t\t\t\t\t\t\t\turl: surl,\r\n
 \t\t\t\t\t\t\t\tdataType: "html",\r\n
-\t\t\t\t\t\t\t\tsuccess: function(res,status) {\r\n
+\t\t\t\t\t\t\t\tsuccess: function(res) {\r\n
 \t\t\t\t\t\t\t\t\tif(soptions.buildSelect !== undefined) {\r\n
 \t\t\t\t\t\t\t\t\t\tvar d = soptions.buildSelect(res);\r\n
 \t\t\t\t\t\t\t\t\t\tif (d) { $(self).append(d); }\r\n
 \t\t\t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t\t\t$(self).append(res);\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\t\tif(soptions.defaultValue) { $("select",self).val(soptions.defaultValue); }\r\n
+\t\t\t\t\t\t\t\t\tif(soptions.defaultValue !== undefined) { $("select",self).val(soptions.defaultValue); }\r\n
 \t\t\t\t\t\t\t\t\t$("select",self).attr({name:cm.index || cm.name, id: "gs_"+cm.name});\r\n
 \t\t\t\t\t\t\t\t\tif(soptions.attr) {$("select",self).attr(soptions.attr);}\r\n
 \t\t\t\t\t\t\t\t\t$("select",self).css({width: "100%"});\r\n
@@ -3845,7 +3994,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\tif(soptions.dataInit !== undefined) { soptions.dataInit($("select",self)[0]); }\r\n
 \t\t\t\t\t\t\t\t\tif(soptions.dataEvents !== undefined) { bindEvents($("select",self)[0],soptions.dataEvents); }\r\n
 \t\t\t\t\t\t\t\t\tif(p.autosearch===true){\r\n
-\t\t\t\t\t\t\t\t\t\t$("select",self).change(function(e){\r\n
+\t\t\t\t\t\t\t\t\t\t$("select",self).change(function(){\r\n
 \t\t\t\t\t\t\t\t\t\t\ttriggerToolbar();\r\n
 \t\t\t\t\t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t\t\t\t\t});\r\n
@@ -3854,11 +4003,15 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {} ));\r\n
 \t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\tvar oSv;\r\n
-\t\t\t\t\t\t\tif(cm.searchoptions \046\046 cm.searchoptions.value) {\r\n
-\t\t\t\t\t\t\t\toSv = cm.searchoptions.value;\r\n
-\t\t\t\t\t\t\t} else if(cm.editoptions \046\046 cm.editoptions.value) {\r\n
-\t\t\t\t\t\t\t\toSv = cm.editoptions.value;\r\n
+\t\t\t\t\t\t\tvar oSv, sep, delim;\r\n
+\t\t\t\t\t\t\tif(cm.searchoptions) {\r\n
+\t\t\t\t\t\t\t\toSv = cm.searchoptions.value === undefined ? "" : cm.searchoptions.value;\r\n
+\t\t\t\t\t\t\t\tsep = cm.searchoptions.separator === undefined ? ":" : cm.searchoptions.separator;\r\n
+\t\t\t\t\t\t\t\tdelim = cm.searchoptions.delimiter === undefined ? ";" : cm.searchoptions.delimiter;\r\n
+\t\t\t\t\t\t\t} else if(cm.editoptions) {\r\n
+\t\t\t\t\t\t\t\toSv = cm.editoptions.value === undefined ? "" : cm.editoptions.value;\r\n
+\t\t\t\t\t\t\t\tsep = cm.editoptions.separator === undefined ? ":" : cm.editoptions.separator;\r\n
+\t\t\t\t\t\t\t\tdelim = cm.editoptions.delimiter === undefined ? ";" : cm.editoptions.delimiter;\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif (oSv) {\t\r\n
 \t\t\t\t\t\t\t\tvar elem = document.createElement("select");\r\n
@@ -3866,9 +4019,9 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t$(elem).attr({name:cm.index || cm.name, id: "gs_"+cm.name});\r\n
 \t\t\t\t\t\t\t\tvar so, sv, ov;\r\n
 \t\t\t\t\t\t\t\tif(typeof oSv === "string") {\r\n
-\t\t\t\t\t\t\t\t\tso = oSv.split(";");\r\n
+\t\t\t\t\t\t\t\t\tso = oSv.split(delim);\r\n
 \t\t\t\t\t\t\t\t\tfor(var k=0; k\074so.length;k++){\r\n
-\t\t\t\t\t\t\t\t\t\tsv = so[k].split(":");\r\n
+\t\t\t\t\t\t\t\t\t\tsv = so[k].split(sep);\r\n
 \t\t\t\t\t\t\t\t\t\tov = document.createElement("option");\r\n
 \t\t\t\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\r\n
 \t\t\t\t\t\t\t\t\t\telem.appendChild(ov);\r\n
@@ -3882,13 +4035,13 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\tif(soptions.defaultValue) { $(elem).val(soptions.defaultValue); }\r\n
+\t\t\t\t\t\t\t\tif(soptions.defaultValue !== undefined) { $(elem).val(soptions.defaultValue); }\r\n
 \t\t\t\t\t\t\t\tif(soptions.attr) {$(elem).attr(soptions.attr);}\r\n
 \t\t\t\t\t\t\t\tif(soptions.dataInit !== undefined) { soptions.dataInit(elem); }\r\n
 \t\t\t\t\t\t\t\tif(soptions.dataEvents !== undefined) { bindEvents(elem, soptions.dataEvents); }\r\n
 \t\t\t\t\t\t\t\t$(thd).append(elem);\r\n
 \t\t\t\t\t\t\t\tif(p.autosearch===true){\r\n
-\t\t\t\t\t\t\t\t\t$(elem).change(function(e){\r\n
+\t\t\t\t\t\t\t\t\t$(elem).change(function(){\r\n
 \t\t\t\t\t\t\t\t\t\ttriggerToolbar();\r\n
 \t\t\t\t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t\t\t\t});\r\n
@@ -3897,7 +4050,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\tcase \'text\':\r\n
-\t\t\t\t\t\tvar df = soptions.defaultValue ? soptions.defaultValue: "";\r\n
+\t\t\t\t\t\tvar df = soptions.defaultValue !== undefined ? soptions.defaultValue: "";\r\n
 \t\t\t\t\t\t$(thd).append("\074input type=\'text\' style=\'width:95%;padding:0px;\' name=\'"+(cm.index || cm.name)+"\' id=\'gs_"+cm.name+"\' value=\'"+df+"\'/\076");\r\n
 \t\t\t\t\t\tif(soptions.attr) {$("input",thd).attr(soptions.attr);}\r\n
 \t\t\t\t\t\tif(soptions.dataInit !== undefined) { soptions.dataInit($("input",thd)[0]); }\r\n
@@ -3956,8 +4109,9 @@ $.jgrid.extend({\r\n
 \t\t{\r\n
 \t\t\tvar $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,\r\n
 \t\t\tthead = $("table.ui-jqgrid-htable thead", grid.hDiv), cm = $t.p.colModel, hc;\r\n
-\t\t\tif(!grid) return;\r\n
+\t\t\tif(!grid) { return; }\r\n
 \r\n
+\t\t\t$(this).unbind(\'.setGroupHeaders\');\r\n
 \t\t\t$tr = $("\074tr\076", {role: "rowheader"}).addClass("ui-jqgrid-labels");\r\n
 \t\t\theaders = grid.headers;\r\n
 \t\t\tfor (i = 0, l = headers.length; i \074 l; i++) {\r\n
@@ -4009,9 +4163,8 @@ $.jgrid.extend({\r\n
 \t\t\t$trLabels = $htable.children("thead").children("tr.ui-jqgrid-labels:last").addClass("jqg-second-row-header"),\r\n
 \t\t\t$thead = $htable.children("thead"),\r\n
 \t\t\t$theadInTable,\r\n
-\t\t\toriginalResizeStop,\r\n
 \t\t\t$firstHeaderRow = $htable.find(".jqg-first-row-header");\r\n
-\t\t\tif($firstHeaderRow.html() === null) {\r\n
+\t\t\tif($firstHeaderRow[0] === undefined) {\r\n
 \t\t\t\t$firstHeaderRow = $(\'\074tr\076\', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto");\r\n
 \t\t\t} else {\r\n
 \t\t\t\t$firstHeaderRow.empty();\r\n
@@ -4119,17 +4272,10 @@ $.jgrid.extend({\r\n
 \t\t\t\t});\r\n
 \t\t\t}\r\n
 \r\n
-\t\t\t// Preserve original resizeStop event if any defined\r\n
-\t\t\tif ($.isFunction(ts.p.resizeStop)) {\r\n
-\t\t\t\toriginalResizeStop = ts.p.resizeStop;\r\n
-\t\t\t}\r\n
 \t\t\t$firstRow = $theadInTable.find("tr.jqg-first-row-header");\r\n
-\t\t\tts.p.resizeStop = function (nw, idx) {\r\n
+\t\t\t$(ts).bind(\'jqGridResizeStop.setGroupHeaders\', function (e, nw, idx) {\r\n
 \t\t\t\t$firstRow.find(\'th\').eq(idx).width(nw);\r\n
-\t\t\t\tif ($.isFunction(originalResizeStop)) {\r\n
-\t\t\t\t\toriginalResizeStop.call(ts, nw, idx);\r\n
-\t\t\t\t}\r\n
-\t\t\t};\r\n
+\t\t\t});\r\n
 \t\t});\t\t\t\t\r\n
 \t},\r\n
 \tsetFrozenColumns : function () {\r\n
@@ -4137,7 +4283,7 @@ $.jgrid.extend({\r\n
 \t\t\tif ( !this.grid ) {return;}\r\n
 \t\t\tvar $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false;\r\n
 \t\t\t// TODO treeGrid and grouping  Support\r\n
-\t\t\tif($t.p.subGrid == true || $t.p.treeGrid === true || $t.p.cellEdit == true || $t.p.sortable || $t.p.scroll || $t.p.grouping )\r\n
+\t\t\tif($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll || $t.p.grouping )\r\n
 \t\t\t{\r\n
 \t\t\t\treturn;\r\n
 \t\t\t}\r\n
@@ -4160,12 +4306,11 @@ $.jgrid.extend({\r\n
 \t\t\tif( maxfrozen\076=0 \046\046 frozen) {\r\n
 \t\t\t\tvar top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,\r\n
 \t\t\t\thth = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).height();\r\n
-\t\t\t\t$t.p.orgEvents = {};\r\n
 \t\t\t\t//headers\r\n
 \t\t\t\tif($t.p.toppager) {\r\n
 \t\t\t\t\ttop = top + $($t.grid.topDiv).outerHeight();\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif($t.p.toolbar[0] == true) {\r\n
+\t\t\t\tif($t.p.toolbar[0] === true) {\r\n
 \t\t\t\t\tif($t.p.toolbar[1] != "bottom") {\r\n
 \t\t\t\t\t\ttop = top + $($t.grid.uDiv).outerHeight();\r\n
 \t\t\t\t\t}\r\n
@@ -4180,7 +4325,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t$("th:gt("+maxfrozen+")",this).remove();\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t\tvar swapfroz = -1, fdel = -1;\r\n
-\t\t\t\t\t$("tr.jqg-second-row-header th", htbl).each(function( i ){\r\n
+\t\t\t\t\t$("tr.jqg-second-row-header th", htbl).each(function(){\r\n
 \t\t\t\t\t\tvar cs= parseInt($(this).attr("colspan"),10);\r\n
 \t\t\t\t\t\tif(cs) {\r\n
 \t\t\t\t\t\t\tswapfroz = swapfroz+cs;\r\n
@@ -4193,7 +4338,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tif(swapfroz !== maxfrozen) {\r\n
 \t\t\t\t\t\tfdel = maxfrozen;\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\t$("tr.jqg-second-row-header", htbl).each(function( i ){\r\n
+\t\t\t\t\t$("tr.jqg-second-row-header", htbl).each(function(){\r\n
 \t\t\t\t\t\t$("th:gt("+fdel+")",this).remove();\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t} else {\r\n
@@ -4207,29 +4352,14 @@ $.jgrid.extend({\r\n
 \t\t\t\t.mousemove(function (e) {\r\n
 \t\t\t\t\tif($t.grid.resizing){ $t.grid.dragMove(e);return false; }\r\n
 \t\t\t\t});\r\n
-\t\t\t\tif ($.isFunction($t.p.resizeStop)) {\r\n
-\t\t\t\t\t$t.p.orgEvents.resizeStop = $t.p.resizeStop;\r\n
-\t\t\t\t}\r\n
-\t\t\t\t$t.p.resizeStop =  function(w, index)\r\n
-\t\t\t\t{\r\n
+\t\t\t\t$($t).bind(\'jqGridResizeStop.setFrozenColumns\', function (e, w, index) {\r\n
 \t\t\t\t\tvar rhth = $(".ui-jqgrid-htable",$t.grid.fhDiv);\r\n
 \t\t\t\t\t$("th:eq("+index+")",rhth).width( w ); \r\n
 \t\t\t\t\tvar btd = $(".ui-jqgrid-btable",$t.grid.fbDiv);\r\n
 \t\t\t\t\t$("tr:first td:eq("+index+")",btd).width( w ); \r\n
-\t\t\t\t\t\r\n
-\t\t\t\t\tif ($.isFunction($t.p.orgEvents.resizeStop)) {\r\n
-\t\t\t\t\t\t$t.p.orgEvents.resizeStop.call($t, w, index);\r\n
-\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t$t.p.orgEvents.resizeStop = null;\r\n
-\t\t\t\t\t}\r\n
-\t\t\t\t};\r\n
+\t\t\t\t});\r\n
 \t\t\t\t// sorting stuff\r\n
-\t\t\t\tif($.isFunction( $t.p.onSortCol)) {\r\n
-\t\t\t\t\t$t.p.orgEvents.onSortCol = $t.p.onSortCol;\r\n
-\t\t\t\t} else {\r\n
-\t\t\t\t\t$t.p.orgEvents.onSortCol = null;\r\n
-\t\t\t\t}\r\n
-\t\t\t\t$t.p.onSortCol = function( index,idxcol,so ){\r\n
+\t\t\t\t$($t).bind(\'jqGridOnSortCol.setFrozenColumns\', function (index, idxcol) {\r\n
 \r\n
 \t\t\t\t\tvar previousSelectedTh = $("tr.ui-jqgrid-labels:last th:eq("+$t.p.lastsort+")",$t.grid.fhDiv), newSelectedTh = $("tr.ui-jqgrid-labels:last th:eq("+idxcol+")",$t.grid.fhDiv);\r\n
 \r\n
@@ -4243,10 +4373,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t$("span.s-ico",newSelectedTh).show();\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\tif(\t$.isFunction($t.p.orgEvents.onSortCol) ) {\r\n
-\t\t\t\t\t\t$t.p.orgEvents.onSortCol.call($t,index,idxcol,so);\r\n
-\t\t\t\t\t}\r\n
-\t\t\t\t};\r\n
+\t\t\t\t});\r\n
 \t\t\t\t\r\n
 \t\t\t\t// data stuff\r\n
 \t\t\t\t//TODO support for setRowData\r\n
@@ -4254,15 +4381,10 @@ $.jgrid.extend({\r\n
 \t\t\t\tjQuery($t.grid.bDiv).scroll(function () {\r\n
 \t\t\t\t\tjQuery($t.grid.fbDiv).scrollTop(jQuery(this).scrollTop());\r\n
 \t\t\t\t});\r\n
-\t\t\t\tif ($.isFunction($t.p._complete)) {\r\n
-\t\t\t\t\t$t.p.orgEvents.complete = $t.p._complete;\r\n
-\t\t\t\t} else {\r\n
-\t\t\t\t\t$t.p.orgEvents.complete = null;\r\n
-\t\t\t\t}\r\n
 \t\t\t\tif($t.p.hoverrows === true) {\r\n
 \t\t\t\t\t$("#"+$.jgrid.jqID($t.p.id)).unbind(\'mouseover\').unbind(\'mouseout\');\r\n
 \t\t\t\t}\r\n
-\t\t\t\t$t.p._complete = function() {\r\n
+\t\t\t\t$($t).bind(\'jqGridAfterGridComplete.setFrozenColumns\', function () {\r\n
 \t\t\t\t\t$("#"+$.jgrid.jqID($t.p.id)+"_frozen").remove();\r\n
 \t\t\t\t\tjQuery($t.grid.fbDiv).height( jQuery($t.grid.bDiv).height()-16);\r\n
 \t\t\t\t\tvar btbl = $("#"+$.jgrid.jqID($t.p.id)).clone(true);\r\n
@@ -4270,12 +4392,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t$("td:gt("+maxfrozen+")",this).remove();\r\n
 \t\t\t\t\t});\r\n
 \r\n
-\t\t\t\t\t$(btbl).width(1).attr("id",$.jgrid.jqID($t.p.id)+"_frozen");\r\n
+\t\t\t\t\t$(btbl).width(1).attr("id",$t.p.id+"_frozen");\r\n
 \t\t\t\t\t$($t.grid.fbDiv).append(btbl);\r\n
 \t\t\t\t\tif($t.p.hoverrows === true) {\r\n
 \t\t\t\t\t\t$("tr.jqgrow", btbl).hover(\r\n
-\t\t\t\t\t\t\tfunction(){ $(this).addClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass("ui-state-hover") },\r\n
-\t\t\t\t\t\t\tfunction(){ $(this).removeClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass("ui-state-hover") }\r\n
+\t\t\t\t\t\t\tfunction(){ $(this).addClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass("ui-state-hover"); },\r\n
+\t\t\t\t\t\t\tfunction(){ $(this).removeClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass("ui-state-hover"); }\r\n
 \t\t\t\t\t\t);\r\n
 \t\t\t\t\t\t$("tr.jqgrow", "#"+$.jgrid.jqID($t.p.id)).hover(\r\n
 \t\t\t\t\t\t\tfunction(){ $(this).addClass("ui-state-hover"); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").addClass("ui-state-hover");},\r\n
@@ -4283,10 +4405,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tbtbl=null;\r\n
-\t\t\t\t\tif($.isFunction($t.p.orgEvents.complete)) {\r\n
-\t\t\t\t\t\t$t.p.orgEvents.complete.call($t);\r\n
-\t\t\t\t\t}\r\n
-\t\t\t\t};\r\n
+\t\t\t\t});\r\n
 \t\t\t\t$t.p.frozenColumns = true;\r\n
 \t\t\t}\r\n
 \t\t});\r\n
@@ -4299,11 +4418,8 @@ $.jgrid.extend({\r\n
 \t\t\t\t$($t.grid.fhDiv).remove();\r\n
 \t\t\t\t$($t.grid.fbDiv).remove();\r\n
 \t\t\t\t$t.grid.fhDiv = null; $t.grid.fbDiv=null;\r\n
-\t\t\t\t$t.p._complete = $t.p.orgEvents.complete;\r\n
-\t\t\t\t$t.p.resizeStop = $t.p.orgEvents.resizeStop;\r\n
-\t\t\t\t$t.p.onSortCol = $t.p.orgEvents.onSortCol;\r\n
-\t\t\t\t$t.p.orgEvents = null;\r\n
-\t\t\t\tif($t.p.hoverrows == true) {\r\n
+\t\t\t\t$(this).unbind(\'.setFrozenColumns\');\r\n
+\t\t\t\tif($t.p.hoverrows === true) {\r\n
 \t\t\t\t\tvar ptr;\r\n
 \t\t\t\t\t$("#"+$.jgrid.jqID($t.p.id)).bind(\'mouseover\',function(e) {\r\n
 \t\t\t\t\t\tptr = $(e.target).closest("tr.jqgrow");\r\n
@@ -4405,39 +4521,39 @@ $.jqDnR={\r\n
 \tdnr:{},\r\n
 \te:0,\r\n
 \tdrag:function(v){\r\n
- \t\tif(M.k == \'d\')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});\r\n
- \t\telse {\r\n
+\t\tif(M.k == \'d\'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}\r\n
+\t\telse {\r\n
 \t\t\tE.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});\r\n
 \t\t\tif(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}\r\n
 \t\t}\r\n
-  \t\treturn false;\r\n
-  \t},\r\n
+\t\treturn false;\r\n
+\t},\r\n
 \tstop:function(){\r\n
 \t\t//E.css(\'opacity\',M.o);\r\n
 \t\t$(document).unbind(\'mousemove\',J.drag).unbind(\'mouseup\',J.stop);\r\n
 \t}\r\n
 };\r\n
-var J=$.jqDnR,M=J.dnr,E=J.e,E1,\r\n
+var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,\r\n
 i=function(e,h,k,aR){\r\n
 \treturn e.each(function(){\r\n
 \t\th=(h)?$(h,e):e;\r\n
- \t\th.bind(\'mousedown\',{e:e,k:k},function(v){\r\n
- \t\t\tvar d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;\r\n
- \t\t\t// attempt utilization of dimensions plugin to fix IE issues\r\n
- \t\t\tif(E.css(\'position\') != \'relative\'){try{E.position(p);}catch(e){}}\r\n
- \t\t\tM={\r\n
- \t\t\t\tX:p.left||f(\'left\')||0,\r\n
- \t\t\t\tY:p.top||f(\'top\')||0,\r\n
- \t\t\t\tW:f(\'width\')||E[0].scrollWidth||0,\r\n
- \t\t\t\tH:f(\'height\')||E[0].scrollHeight||0,\r\n
- \t\t\t\tpX:v.pageX,\r\n
- \t\t\t\tpY:v.pageY,\r\n
- \t\t\t\tk:d.k\r\n
- \t\t\t\t//o:E.css(\'opacity\')\r\n
- \t\t\t};\r\n
+\t\th.bind(\'mousedown\',{e:e,k:k},function(v){\r\n
+\t\t\tvar d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;\r\n
+\t\t\t// attempt utilization of dimensions plugin to fix IE issues\r\n
+\t\t\tif(E.css(\'position\') != \'relative\'){try{E.position(p);}catch(e){}}\r\n
+\t\t\tM={\r\n
+\t\t\t\tX:p.left||f(\'left\')||0,\r\n
+\t\t\t\tY:p.top||f(\'top\')||0,\r\n
+\t\t\t\tW:f(\'width\')||E[0].scrollWidth||0,\r\n
+\t\t\t\tH:f(\'height\')||E[0].scrollHeight||0,\r\n
+\t\t\t\tpX:v.pageX,\r\n
+\t\t\t\tpY:v.pageY,\r\n
+\t\t\t\tk:d.k\r\n
+\t\t\t\t//o:E.css(\'opacity\')\r\n
+\t\t\t};\r\n
 \t\t\t// also resize\r\n
 \t\t\tif(E1 \046\046 d.k != \'d\'){\r\n
- \t\t\t\tM1={\r\n
+\t\t\t\tM1={\r\n
 \t\t\t\t\tX:p.left||f1(\'left\')||0,\r\n
 \t\t\t\t\tY:p.top||f1(\'top\')||0,\r\n
 \t\t\t\t\tW:E1[0].offsetWidth||f1(\'width\')||0,\r\n
@@ -4447,17 +4563,17 @@ i=function(e,h,k,aR){\r\n
 \t\t\t\t\tk:d.k\r\n
 \t\t\t\t};\r\n
 \t\t\t} else {M1 = false;}\t\t\t\r\n
- \t\t\t//E.css({opacity:0.8});\r\n
+\t\t\t//E.css({opacity:0.8});\r\n
 \t\t\tif($("input.hasDatepicker",E[0])[0]) {\r\n
 \t\t\ttry {$("input.hasDatepicker",E[0]).datepicker(\'hide\');}catch (dpe){}\r\n
 \t\t\t}\r\n
- \t\t\t$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\r\n
- \t\t\treturn false;\r\n
- \t\t});\r\n
+\t\t\t$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\r\n
+\t\t\treturn false;\r\n
+\t\t});\r\n
 \t});\r\n
 },\r\n
-f=function(k){return parseInt(E.css(k))||false;};\r\n
-f1=function(k){\treturn parseInt(E1.css(k))||false;};\r\n
+f=function(k){return parseInt(E.css(k),10)||false;},\r\n
+f1=function(k){return parseInt(E1.css(k),10)||false;};\r\n
 })(jQuery);/*\r\n
 \tThe below work is licensed under Creative Commons GNU LGPL License.\r\n
 \r\n
@@ -4548,26 +4664,7 @@ var xmlJsonClass = {\r\n
 \t\t\telse {\r\n
 \t\t\t\tif (v === undefined ) { v = ""; }\r\n
 \t\t\t\tif (v.toString() === "\\"\\"" || v.toString().length === 0) {\r\n
-\t\t\t\t\txml += ind + "\074" + name + "\076__EMPTY_STRING_\074</string> </value>
-        </item>
-        <item>
-            <key> <string>next</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="Pdata" module="OFS.Image"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value> <string>/" + name + "\076";\r\n
+\t\t\t\t\txml += ind + "\074" + name + "\076__EMPTY_STRING_\074/" + name + "\076";\r\n
 \t\t\t\t} \r\n
 \t\t\t\telse {\r\n
 \t\t\t\t\txml += ind + "\074" + name + "\076" + v.toString() + "\074/" + name + "\076";\r\n
@@ -4742,7 +4839,7 @@ var xmlJsonClass = {\r\n
 \t\t\t//}\r\n
 \t\t\t}\r\n
 \t\telse {\r\n
-\t\t\tjson += (name \046\046 ":") +  "\\"" + o.toString()+ "\\"";\r\n
+\t\t\tjson += (name \046\046 ":") +  o.toString();\r\n
 \t\t}\r\n
 \t\treturn json;\r\n
 \t},\r\n
@@ -4831,6 +4928,7 @@ var xmlJsonClass = {\r\n
 **/\r\n
 \r\n
 ;(function($) {\r\n
+"use strict";\t\r\n
 \t$.fmatter = {};\r\n
 \t//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column\r\n
 \t//example {id:1234,}\r\n
@@ -4871,9 +4969,9 @@ var xmlJsonClass = {\r\n
 \t\tvar v=cellval;\r\n
 \t\topts = $.extend({}, $.jgrid.formatter, opts);\r\n
 \r\n
-\t\tif ($.fn.fmatter[formatType]){\r\n
-\t\t\tv = $.fn.fmatter[formatType](cellval, opts, rwd, act);\r\n
-\t\t}\r\n
+\t\ttry {\r\n
+\t\t\tv = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);\r\n
+\t\t} catch(fe){}\r\n
 \t\treturn v;\r\n
 \t};\r\n
 \t$.fmatter.util = {\r\n
@@ -4960,7 +5058,7 @@ var xmlJsonClass = {\r\n
 \t\t\tif( format in opts.masks ) { format = opts.masks[format]; }\r\n
 \t\t\tif( !isNaN( date - 0 ) \046\046 String(format).toLowerCase() == "u") {\r\n
 \t\t\t\t//Unix timestamp\r\n
-\t\t\t    timestamp = new Date( parseFloat(date)*1000 );\r\n
+\t\t\t\ttimestamp = new Date( parseFloat(date)*1000 );\r\n
 \t\t\t} else if(date.constructor === Date) {\r\n
 \t\t\t\ttimestamp = date;\r\n
 \t\t\t\t// Microsoft date format support\r\n
@@ -5081,7 +5179,7 @@ var xmlJsonClass = {\r\n
 \t};\r\n
 \t$.fn.fmatter.checkbox =function(cval, opts) {\r\n
 \t\tvar op = $.extend({},opts.checkbox), ds;\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
 \t\tif(op.disabled===true) {ds = "disabled=\\"disabled\\"";} else {ds="";}\r\n
@@ -5093,10 +5191,29 @@ var xmlJsonClass = {\r\n
 \t$.fn.fmatter.link = function(cellval, opts) {\r\n
 \t\tvar op = {target:opts.target};\r\n
 \t\tvar target = "";\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
-\t\tif(op.target) {target = \'target=\' + op.target;}\r\n
+\t\tif(op.target) {target = \'target=\' + op.targe</string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string>t;}\r\n
 \t\tif(!$.fmatter.isEmpty(cellval)) {\r\n
 \t\t\treturn "\074a "+target+" href=\\"" + cellval + "\\"\076" + cellval + "\074/a\076";\r\n
 \t\t}else {\r\n
@@ -5106,7 +5223,7 @@ var xmlJsonClass = {\r\n
 \t$.fn.fmatter.showlink = function(cellval, opts) {\r\n
 \t\tvar op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName},\r\n
 \t\ttarget = "", idUrl;\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
 \t\tif(op.target) {target = \'target=\' + op.target;}\r\n
@@ -5119,7 +5236,7 @@ var xmlJsonClass = {\r\n
 \t};\r\n
 \t$.fn.fmatter.integer = function(cellval, opts) {\r\n
 \t\tvar op = $.extend({},opts.integer);\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
 \t\tif($.fmatter.isEmpty(cellval)) {\r\n
@@ -5129,7 +5246,7 @@ var xmlJsonClass = {\r\n
 \t};\r\n
 \t$.fn.fmatter.number = function (cellval, opts) {\r\n
 \t\tvar op = $.extend({},opts.number);\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
 \t\tif($.fmatter.isEmpty(cellval)) {\r\n
@@ -5139,7 +5256,7 @@ var xmlJsonClass = {\r\n
 \t};\r\n
 \t$.fn.fmatter.currency = function (cellval, opts) {\r\n
 \t\tvar op = $.extend({},opts.currency);\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
 \t\tif($.fmatter.isEmpty(cellval)) {\r\n
@@ -5149,7 +5266,7 @@ var xmlJsonClass = {\r\n
 \t};\r\n
 \t$.fn.fmatter.date = function (cellval, opts, rwd, act) {\r\n
 \t\tvar op = $.extend({},opts.date);\r\n
-\t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
+\t\tif(opts.colModel !== undefined \046\046 !$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend({},op,opts.colModel.formatoptions);\r\n
 \t\t}\r\n
 \t\tif(!op.reformatAfterEdit \046\046 act==\'edit\'){\r\n
@@ -5160,16 +5277,18 @@ var xmlJsonClass = {\r\n
 \t\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\r\n
 \t\t}\r\n
 \t};\r\n
-\t$.fn.fmatter.select = function (cellval,opts, rwd, act) {\r\n
+\t$.fn.fmatter.select = function (cellval,opts) {\r\n
 \t\t// jqGrid specific\r\n
 \t\tcellval = cellval + "";\r\n
-\t\tvar oSelect = false, ret=[], sep;\r\n
+\t\tvar oSelect = false, ret=[], sep, delim;\r\n
 \t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)){\r\n
 \t\t\toSelect= opts.colModel.formatoptions.value;\r\n
 \t\t\tsep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator;\r\n
+\t\t\tdelim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter;\r\n
 \t\t} else if(!$.fmatter.isUndefined(opts.colModel.editoptions)){\r\n
 \t\t\toSelect= opts.colModel.editoptions.value;\r\n
 \t\t\tsep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator;\r\n
+\t\t\tdelim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter;\r\n
 \t\t}\r\n
 \t\tif (oSelect) {\r\n
 \t\t\tvar\tmsl =  opts.colModel.editoptions.multiple === true ? true : false,\r\n
@@ -5177,14 +5296,14 @@ var xmlJsonClass = {\r\n
 \t\t\tif(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}\r\n
 \t\t\tif ($.fmatter.isString(oSelect)) {\r\n
 \t\t\t\t// mybe here we can use some caching with care ????\r\n
-\t\t\t\tvar so = oSelect.split(";"), j=0;\r\n
+\t\t\t\tvar so = oSelect.split(delim), j=0;\r\n
 \t\t\t\tfor(var i=0; i\074so.length;i++){\r\n
 \t\t\t\t\tsv = so[i].split(sep);\r\n
 \t\t\t\t\tif(sv.length \076 2 ) {\r\n
-\t\t\t\t\t\tsv[1] = jQuery.map(sv,function(n,i){if(i\0760) {return n;}}).join(":");\r\n
+\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i\0760) {return n;}}).join(sep);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif(msl) {\r\n
-\t\t\t\t\t\tif(jQuery.inArray(sv[0],scell)\076-1) {\r\n
+\t\t\t\t\t\tif($.inArray(sv[0],scell)\076-1) {\r\n
 \t\t\t\t\t\t\tret[j] = sv[1];\r\n
 \t\t\t\t\t\t\tj++;\r\n
 \t\t\t\t\t\t}\r\n
@@ -5196,7 +5315,7 @@ var xmlJsonClass = {\r\n
 \t\t\t} else if($.fmatter.isObject(oSelect)) {\r\n
 \t\t\t\t// this is quicker\r\n
 \t\t\t\tif(msl) {\r\n
-\t\t\t\t\tret = jQuery.map(scell, function(n, i){\r\n
+\t\t\t\t\tret = $.map(scell, function(n){\r\n
 \t\t\t\t\t\treturn oSelect[n];\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t} else {\r\n
@@ -5217,6 +5336,8 @@ var xmlJsonClass = {\r\n
 \t\t\tafterRestore: null,\r\n
 \t\t\textraparam: {},\r\n
 \t\t\turl: null,\r\n
+\t\t\trestoreAfterError: true,\r\n
+\t\t\tmtype: "POST",\r\n
 \t\t\tdelOptions: {},\r\n
 \t\t\teditOptions : {}\r\n
 \t\t};\r\n
@@ -5234,12 +5355,12 @@ var xmlJsonClass = {\r\n
 \t\t}\r\n
 \t\tvar $t = $("#"+gid)[0];\r\n
 \t\tvar saverow = function( rowid, res)\t{\r\n
-\t\t\tif(op.afterSave) op.afterSave.call($t, rowid, res);\r\n
+\t\t\tif($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }\r\n
 \t\t\t$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid + ".ui-jqgrid-btable:first").show();\r\n
 \t\t\t$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid+ ".ui-jqgrid-btable:first").hide();\r\n
 \t\t},\r\n
 \t\trestorerow = function( rowid)\t{\r\n
-\t\t\tif(op.afterRestore) op.afterRestore.call($t, rowid);\r\n
+\t\t\tif($.isFunction(op.afterRestore) ) { op.afterRestore.call($t, rowid); }\r\n
 \t\t\t$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid+ ".ui-jqgrid-btable:first").show();\r\n
 \t\t\t$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid+ ".ui-jqgrid-btable:first").hide();\r\n
 \t\t};\r\n
@@ -5248,26 +5369,38 @@ var xmlJsonClass = {\r\n
 \t\t\toper = opers.oper;\r\n
 \t\t\top.extraparam[oper] = opers.addoper;\r\n
 \t\t}\r\n
+\t\tvar actop = {\r\n
+\t\t\tkeys : op.keys,\r\n
+\t\t\toneditfunc: op.onEdit,\r\n
+\t\t\tsuccessfunc: op.onSuccess,\r\n
+\t\t\turl: op.url,\r\n
+\t\t\textraparam: op.extraparam,\r\n
+\t\t\taftersavefunc: saverow,\r\n
+\t\t\terrorfunc: op.onError,\r\n
+\t\t\tafterrestorefunc: restorerow,\r\n
+\t\t\trestoreAfterError: op.restoreAfterError,\r\n
+\t\t\tmtype: op.mtype\r\n
+\t\t};\r\n
 \t\tswitch(act)\r\n
 \t\t{\r\n
 \t\t\tcase \'edit\':\r\n
-\t\t\t\t$(\'#\'+gid).jqGrid(\'editRow\',rid, op.keys, op.onEdit, op.onSuccess, op.url, op.extraparam, saverow, op.onError,restorerow);\r\n
+\t\t\t\t$(\'#\'+gid).jqGrid(\'editRow\', rid, actop);\r\n
 \t\t\t\t$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid+ ".ui-jqgrid-btable:first").hide();\r\n
 \t\t\t\t$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid+ ".ui-jqgrid-btable:first").show();\r\n
-\t\t\t\tif($.isFunction($t.p._complete)) {$t.p._complete.call($t);}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAfterGridComplete");\r\n
 \t\t\t\tbreak;\r\n
 \t\t\tcase \'save\':\r\n
-\t\t\t\tif ( $(\'#\'+gid).jqGrid(\'saveRow\',rid,  op.onSuccess,op.url, op.extraparam, saverow, op.onError,restorerow) ) {\r\n
+\t\t\t\tif ( $(\'#\'+gid).jqGrid(\'saveRow\', rid, actop) ) {\r\n
 \t\t\t\t$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid+ ".ui-jqgrid-btable:first").show();\r\n
 \t\t\t\t$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid+ ".ui-jqgrid-btable:first").hide();\r\n
-\t\t\t\tif($.isFunction($t.p._complete)) {$t.p._complete.call($t);}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAfterGridComplete");\r\n
 \t\t\t\t}\r\n
 \t\t\t\tbreak;\r\n
 \t\t\tcase \'cancel\' :\r\n
 \t\t\t\t$(\'#\'+gid).jqGrid(\'restoreRow\',rid, restorerow);\r\n
 \t\t\t\t$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid+ ".ui-jqgrid-btable:first").show();\r\n
 \t\t\t\t$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid+ ".ui-jqgrid-btable:first").hide();\r\n
-\t\t\t\tif($.isFunction($t.p._complete)) {$t.p._complete.call($t);}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAfterGridComplete");\r\n
 \t\t\t\tbreak;\r\n
 \t\t\tcase \'del\':\r\n
 \t\t\t\t$(\'#\'+gid).jqGrid(\'delGridRow\',rid, op.delOptions);\r\n
@@ -5278,7 +5411,7 @@ var xmlJsonClass = {\r\n
 \t\t\t\tbreak;\r\n
 \t\t}\r\n
 \t};\r\n
-\t$.fn.fmatter.actions = function(cellval,opts, rwd) {\r\n
+\t$.fn.fmatter.actions = function(cellval,opts) {\r\n
 \t\tvar op ={keys:false, editbutton:true, delbutton:true, editformbutton: false};\r\n
 \t\tif(!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\r\n
 \t\t\top = $.extend(op,opts.colModel.formatoptions);\r\n
@@ -5286,9 +5419,9 @@ var xmlJsonClass = {\r\n
 \t\tvar rowid = opts.rowId, str="",ocl;\r\n
 \t\tif(typeof(rowid) ==\'undefined\' || $.fmatter.isEmpty(rowid)) {return "";}\r\n
 \t\tif(op.editformbutton){\r\n
-\t\t\tocl = "onclick=jQuery.fn.fmatter.rowactions(\'"+rowid+"\',\'"+opts.gid+"\',\'formedit\',"+opts.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\'); "\r\n
+\t\t\tocl = "onclick=jQuery.fn.fmatter.rowactions(\'"+rowid+"\',\'"+opts.gid+"\',\'formedit\',"+opts.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\'); ";\r\n
 \t\t\tstr =str+ "\074div title=\'"+$.jgrid.nav.edittitle+"\' style=\'float:left;cursor:pointer;\' class=\'ui-pg-div ui-inline-edit\' "+ocl+"\076\074span class=\'ui-icon ui-icon-pencil\'\076\074/span\076\074/div\076";\r\n
-\t\t} else \tif(op.editbutton){\r\n
+\t\t} else if(op.editbutton){\r\n
 \t\t\tocl = "onclick=jQuery.fn.fmatter.rowactions(\'"+rowid+"\',\'"+opts.gid+"\',\'edit\',"+opts.pos+"); onmouseover=jQuery(this).addClass(\'ui-state-hover\'); onmouseout=jQuery(this).removeClass(\'ui-state-hover\') ";\r\n
 \t\t\tstr =str+ "\074div title=\'"+$.jgrid.nav.edittitle+"\' style=\'float:left;cursor:pointer;\' class=\'ui-pg-div ui-inline-edit\' "+ocl+"\076\074span class=\'ui-icon ui-icon-pencil\'\076\074/span\076\074/div\076";\r\n
 \t\t}\r\n
@@ -5309,7 +5442,7 @@ var xmlJsonClass = {\r\n
 \t\tre = /([\\.\\*\\_\\\'\\(\\)\\{\\}\\+\\?\\\\])/g,\r\n
 \t\tunformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] \046\046 $.fn.fmatter[formatType].unformat);\r\n
 \t\tif(typeof unformatFunc !== \'undefined\' \046\046 $.isFunction(unformatFunc) ) {\r\n
-\t\t\tret = unformatFunc($(cellval).text(), options, cellval);\r\n
+\t\t\tret = unformatFunc.call(this, $(cellval).text(), options, cellval);\r\n
 \t\t} else if(!$.fmatter.isUndefined(formatType) \046\046 $.fmatter.isString(formatType) ) {\r\n
 \t\t\tvar opts = $.jgrid.formatter || {}, stripTag;\r\n
 \t\t\tswitch(formatType) {\r\n
@@ -5329,7 +5462,14 @@ var xmlJsonClass = {\r\n
 \t\t\t\t\top = $.extend({},opts.currency,op);\r\n
 \t\t\t\t\tsep = op.thousandsSeparator.replace(re,"\\\\$1");\r\n
 \t\t\t\t\tstripTag = new RegExp(sep, "g");\r\n
-\t\t\t\t\tret = $(cellval).text().replace(stripTag,\'\').replace(op.decimalSeparator,\'.\').replace(op.prefix,\'\').replace(op.suffix,\'\');\r\n
+\t\t\t\t\tret = $(cellval).text();\r\n
+\t\t\t\t\tif (op.prefix \046\046 op.prefix.length) {\r\n
+\t\t\t\t\t\tret = ret.substr(op.prefix.length);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tif (op.suffix \046\046 op.suffix.length) {\r\n
+\t\t\t\t\t\tret = ret.substr(0, ret.length - op.suffix.length);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tret = ret.replace(stripTag,\'\').replace(op.decimalSeparator,\'.\');\r\n
 \t\t\t\t\tbreak;\r\n
 \t\t\t\tcase \'checkbox\':\r\n
 \t\t\t\t\tvar cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];\r\n
@@ -5352,21 +5492,24 @@ var xmlJsonClass = {\r\n
 \t\tvar ret = [];\r\n
 \t\tvar cell = $(cellval).text();\r\n
 \t\tif(cnt===true) {return cell;}\r\n
-\t\tvar op = $.extend({},options.colModel.editoptions);\r\n
+\t\tvar op = $.extend({}, !$.fmatter.isUndefined(options.colModel.formatoptions) ? options.colModel.formatoptions: options.colModel.editoptions),\r\n
+\t\tsep = op.separator === undefined ? ":" : op.separator,\r\n
+\t\tdelim = op.delimiter === undefined ? ";" : op.delimiter;\r\n
+\t\t\r\n
 \t\tif(op.value){\r\n
 \t\t\tvar oSelect = op.value,\r\n
 \t\t\tmsl =  op.multiple === true ? true : false,\r\n
 \t\t\tscell = [], sv;\r\n
 \t\t\tif(msl) {scell = cell.split(",");scell = $.map(scell,function(n){return $.trim(n);});}\r\n
 \t\t\tif ($.fmatter.isString(oSelect)) {\r\n
-\t\t\t\tvar so = oSelect.split(";"), j=0;\r\n
+\t\t\t\tvar so = oSelect.split(delim), j=0;\r\n
 \t\t\t\tfor(var i=0; i\074so.length;i++){\r\n
-\t\t\t\t\tsv = so[i].split(":");\r\n
+\t\t\t\t\tsv = so[i].split(sep);\r\n
 \t\t\t\t\tif(sv.length \076 2 ) {\r\n
-\t\t\t\t\t\tsv[1] = jQuery.map(sv,function(n,i){if(i\0760) {return n;}}).join(":");\r\n
+\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i\0760) {return n;}}).join(sep);\r\n
 \t\t\t\t\t}\t\t\t\t\t\r\n
 \t\t\t\t\tif(msl) {\r\n
-\t\t\t\t\t\tif(jQuery.inArray(sv[1],scell)\076-1) {\r\n
+\t\t\t\t\t\tif($.inArray(sv[1],scell)\076-1) {\r\n
 \t\t\t\t\t\t\tret[j] = sv[0];\r\n
 \t\t\t\t\t\t\tj++;\r\n
 \t\t\t\t\t\t}\r\n
@@ -5377,7 +5520,7 @@ var xmlJsonClass = {\r\n
 \t\t\t\t}\r\n
 \t\t\t} else if($.fmatter.isObject(oSelect) || $.isArray(oSelect) ){\r\n
 \t\t\t\tif(!msl) {scell[0] =  cell;}\r\n
-\t\t\t\tret = jQuery.map(scell, function(n){\r\n
+\t\t\t\tret = $.map(scell, function(n){\r\n
 \t\t\t\t\tvar rv;\r\n
 \t\t\t\t\t$.each(oSelect, function(i,val){\r\n
 \t\t\t\t\t\tif (val == n) {\r\n
@@ -5399,7 +5542,7 @@ var xmlJsonClass = {\r\n
 \t\t\top = $.extend({},op,opts.formatoptions);\r\n
 \t\t}\t\t\r\n
 \t\tif(!$.fmatter.isEmpty(cellval)) {\r\n
-\t\t\treturn  $.fmatter.util.DateFormat(op.newformat,cellval,op.srcformat,op);\r\n
+\t\t\treturn $.fmatter.util.DateFormat(op.newformat,cellval,op.srcformat,op);\r\n
 \t\t} else {\r\n
 \t\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\r\n
 \t\t}\r\n
@@ -5452,7 +5595,8 @@ $.extend($.jgrid,{\r\n
 \t\t}\r\n
 \t\treturn [curleft,curtop];\r\n
 \t},\r\n
-\tcreateModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {\t\t\r\n
+\tcreateModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {\r\n
+\t\tp = $.extend(true, $.jgrid.jqModal || {}, p);\r\n
 \t\tvar mw  = document.createElement(\'div\'), rtlsup, self = this;\r\n
 \t\tcss = $.extend({}, css || {});\r\n
 \t\trtlsup = $(p.gbox).attr("dir") == "rtl" ? true : false;\r\n
@@ -5491,7 +5635,7 @@ $.extend($.jgrid,{\r\n
 \t\tif ( $.fn.jqm \046\046 p.jqModal === true) {\r\n
 \t\t\tif(p.left ===0 \046\046 p.top===0 \046\046 p.overlay) {\r\n
 \t\t\t\tvar pos = [];\r\n
-\t\t\t\tpos = this.findPos(posSelector);\r\n
+\t\t\t\tpos = $.jgrid.findPos(posSelector);\r\n
 \t\t\t\tp.left = pos[0] + 4;\r\n
 \t\t\t\tp.top = pos[1] + 4;\r\n
 \t\t\t}\r\n
@@ -5501,10 +5645,10 @@ $.extend($.jgrid,{\r\n
 \t\t\tcoord.left = p.left;\r\n
 \t\t\tcoord.top = p.top+"px";\r\n
 \t\t}\r\n
-\t\t$("a.ui-jqdialog-titlebar-close",mh).click(function(e){\r\n
-\t\t\tvar oncm = $("#"+aIDs.themodal).data("onClose") || p.onClose;\r\n
-\t\t\tvar gboxclose = $("#"+aIDs.themodal).data("gbox") || p.gbox;\r\n
-\t\t\tself.hideModal("#"+aIDs.themodal,{gb:gboxclose,jqm:p.jqModal,onClose:oncm});\r\n
+\t\t$("a.ui-jqdialog-titlebar-close",mh).click(function(){\r\n
+\t\t\tvar oncm = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose;\r\n
+\t\t\tvar gboxclose = $("#"+$.jgrid.jqID(aIDs.themodal)).data("gbox") || p.gbox;\r\n
+\t\t\tself.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm});\r\n
 \t\t\treturn false;\r\n
 \t\t});\r\n
 \t\tif (p.width === 0 || !p.width) {p.width = 300;}\r\n
@@ -5539,24 +5683,24 @@ $.extend($.jgrid,{\r\n
 \t\t\t\t$(mw).jqDrag(mh);\r\n
 \t\t\t} else {\r\n
 \t\t\t\ttry {\r\n
-\t\t\t\t\t$(mw).draggable({handle: $("#"+mh.id)});\r\n
+\t\t\t\t\t$(mw).draggable({handle: $("#"+$.jgrid.jqID(mh.id))});\r\n
 \t\t\t\t} catch (e) {}\r\n
 \t\t\t}\r\n
 \t\t}\r\n
 \t\tif(p.resize) {\r\n
 \t\t\tif($.fn.jqResize) {\r\n
 \t\t\t\t$(mw).append("\074div class=\'jqResize ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se\'\076\074/div\076");\r\n
-\t\t\t\t$("#"+aIDs.themodal).jqResize(".jqResize",aIDs.scrollelm ? "#"+aIDs.scrollelm : false);\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(aIDs.themodal)).jqResize(".jqResize",aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false);\r\n
 \t\t\t} else {\r\n
 \t\t\t\ttry {\r\n
-\t\t\t\t\t$(mw).resizable({handles: \'se, sw\',alsoResize: aIDs.scrollelm ? "#"+aIDs.scrollelm : false});\r\n
+\t\t\t\t\t$(mw).resizable({handles: \'se, sw\',alsoResize: aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false});\r\n
 \t\t\t\t} catch (r) {}\r\n
 \t\t\t}\r\n
 \t\t}\r\n
 \t\tif(p.closeOnEscape === true){\r\n
 \t\t\t$(mw).keydown( function( e ) {\r\n
 \t\t\t\tif( e.which == 27 ) {\r\n
-\t\t\t\t\tvar cone = $("#"+aIDs.themodal).data("onClose") || p.onClose;\r\n
+\t\t\t\t\tvar cone = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose;\r\n
 \t\t\t\t\tself.hideModal(this,{gb:p.gbox,jqm:p.jqModal,onClose: cone});\r\n
 \t\t\t\t}\r\n
 \t\t\t});\r\n
@@ -5568,8 +5712,8 @@ $.extend($.jgrid,{\r\n
 \t\t\toverlay: 10,\r\n
 \t\t\tmodal: false,\r\n
 \t\t\toverlayClass : \'ui-widget-overlay\',\r\n
-\t\t\tonShow: this.showModal,\r\n
-\t\t\tonHide: this.closeModal,\r\n
+\t\t\tonShow: $.jgrid.showModal,\r\n
+\t\t\tonHide: $.jgrid.closeModal,\r\n
 \t\t\tgbox: \'\',\r\n
 \t\t\tjqm : true,\r\n
 \t\t\tjqM : true\r\n
@@ -5628,11 +5772,11 @@ $.extend($.jgrid,{\r\n
 \r\n
 \t\ttry {\r\n
 \t\t\tif($("#info_dialog").attr("aria-hidden") == "false") {\r\n
-\t\t\t\tthis.hideModal("#info_dialog",{jqm:jm});\r\n
+\t\t\t\t$.jgrid.hideModal("#info_dialog",{jqm:jm});\r\n
 \t\t\t}\r\n
 \t\t\t$("#info_dialog").remove();\r\n
 \t\t} catch (e){}\r\n
-\t\tthis.createModal({\r\n
+\t\t$.jgrid.createModal({\r\n
 \t\t\tthemodal:\'info_dialog\',\r\n
 \t\t\tmodalhead:\'info_head\',\r\n
 \t\t\tmodalcontent:\'info_content\',\r\n
@@ -5644,10 +5788,10 @@ $.extend($.jgrid,{\r\n
 \t\t// attach onclick after inserting into the dom\r\n
 \t\tif(buttstr) {\r\n
 \t\t\t$.each(mopt.buttons,function(i){\r\n
-\t\t\t\t$("#"+this.id,"#info_id").bind(\'click\',function(){mopt.buttons[i].onClick.call($("#info_dialog")); return false;});\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(this.id),"#info_id").bind(\'click\',function(){mopt.buttons[i].onClick.call($("#info_dialog")); return false;});\r\n
 \t\t\t});\r\n
 \t\t}\r\n
-\t\t$("#closedialog", "#info_id").click(function(e){\r\n
+\t\t$("#closedialog", "#info_id").click(function(){\r\n
 \t\t\tself.hideModal("#info_dialog",{jqm:jm});\r\n
 \t\t\treturn false;\r\n
 \t\t});\r\n
@@ -5656,7 +5800,7 @@ $.extend($.jgrid,{\r\n
 \t\t\tfunction(){$(this).removeClass(\'ui-state-hover\');}\r\n
 \t\t);\r\n
 \t\tif($.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }\r\n
-\t\tthis.viewModal("#info_dialog",{\r\n
+\t\t$.jgrid.viewModal("#info_dialog",{\r\n
 \t\t\tonHide: function(h) {\r\n
 \t\t\t\th.w.hide().remove();\r\n
 \t\t\t\tif(h.o) { h.o.remove(); }\r\n
@@ -5669,10 +5813,10 @@ $.extend($.jgrid,{\r\n
 \t},\r\n
 // Form Functions\r\n
 \tcreateEl : function(eltype,options,vl,autowidth, ajaxso) {\r\n
-\t\tvar elem = "";\r\n
+\t\tvar elem = "", $t = this;\r\n
 \t\tfunction bindEv (el, opt) {\r\n
 \t\t\tif($.isFunction(opt.dataInit)) {\r\n
-\t\t\t\topt.dataInit(el);\r\n
+\t\t\t\topt.dataInit.call($t,el);\r\n
 \t\t\t}\r\n
 \t\t\tif(opt.dataEvents) {\r\n
 \t\t\t\t$.each(opt.dataEvents, function() {\r\n
@@ -5688,7 +5832,7 @@ $.extend($.jgrid,{\r\n
 \t\tfunction setAttributes(elm, atr, exl ) {\r\n
 \t\t\tvar exclude = [\'dataInit\',\'dataEvents\',\'dataUrl\', \'buildSelect\',\'sopt\', \'searchhidden\', \'defaultValue\', \'attr\'];\r\n
 \t\t\tif(typeof(exl) != "undefined" \046\046 $.isArray(exl)) {\r\n
-\t\t\t\texclude = $.extend(exclude, exl);\r\n
+\t\t\t\t$.merge(exclude, exl);\r\n
 \t\t\t}\r\n
 \t\t\t$.each(atr, function(key, value){\r\n
 \t\t\t\tif($.inArray(key, exclude) === -1) {\r\n
@@ -5754,12 +5898,12 @@ $.extend($.jgrid,{\r\n
 \t\t\t\t\t\ttype : "GET",\r\n
 \t\t\t\t\t\tdataType: "html",\r\n
 \t\t\t\t\t\tcontext: {elem:elem, options:options, vl:vl},\r\n
-\t\t\t\t\t\tsuccess: function(data,status){\r\n
+\t\t\t\t\t\tsuccess: function(data){\r\n
 \t\t\t\t\t\t\tvar a,\tovm = [], elem = this.elem, vl = this.vl,\r\n
 \t\t\t\t\t\t\toptions = $.extend({},this.options),\r\n
 \t\t\t\t\t\t\tmsl = options.multiple===true;\r\n
-\t\t\t\t\t\t\tif(typeof(options.buildSelect) != "undefined") {\r\n
-\t\t\t\t\t\t\t\tvar b = options.buildSelect(data);\r\n
+\t\t\t\t\t\t\tif($.isFunction(options.buildSelect)) {\r\n
+\t\t\t\t\t\t\t\tvar b = options.buildSelect.call($t,data);\r\n
 \t\t\t\t\t\t\t\ta = $(b).html();\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\ta = $(data).html();\r\n
@@ -5779,6 +5923,8 @@ $.extend($.jgrid,{\r\n
 \t\t\t\t\t\t\t\tsetTimeout(function(){\r\n
 \t\t\t\t\t\t\t\t\t$("option",elem).each(function(i){\r\n
 \t\t\t\t\t\t\t\t\t\t//if(i===0) { this.selected = ""; }\r\n
+\t\t\t\t\t\t\t\t\t\t// fix IE8/IE7 problem with selecting of the first item on multiple=true\r\n
+\t\t\t\t\t\t\t\t\t\tif (i === 0 \046\046 elem.multiple) { this.selected = false; }\r\n
 \t\t\t\t\t\t\t\t\t\t$(this).attr("role","option");\r\n
 \t\t\t\t\t\t\t\t\t\tif($.inArray($.trim($(this).text()),ovm) \076 -1 || $.inArray($.trim($(this).val()),ovm) \076 -1 ) {\r\n
 \t\t\t\t\t\t\t\t\t\t\tthis.selected= "selected";\r\n
@@ -5799,13 +5945,14 @@ $.extend($.jgrid,{\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif(typeof options.value === \'function\') { options.value = options.value(); }\r\n
 \t\t\t\t\tvar so,sv, ov, \r\n
-\t\t\t\t\tsep = options.separator === undefined ? ":" : options.separator;\r\n
+\t\t\t\t\tsep = options.separator === undefined ? ":" : options.separator,\r\n
+\t\t\t\t\tdelim = options.delimiter === undefined ? ";" : options.delimiter;\r\n
 \t\t\t\t\tif(typeof options.value === \'string\') {\r\n
-\t\t\t\t\t\tso = options.value.split(";");\r\n
+\t\t\t\t\t\tso = options.value.split(delim);\r\n
 \t\t\t\t\t\tfor(i=0; i\074so.length;i++){\r\n
 \t\t\t\t\t\t\tsv = so[i].split(sep);\r\n
 \t\t\t\t\t\t\tif(sv.length \076 2 ) {\r\n
-\t\t\t\t\t\t\t\tsv[1] = $.map(sv,function(n,ii){if(ii\0760) { return n;} }).join(":");\r\n
+\t\t\t\t\t\t\t\tsv[1] = $.map(sv,function(n,ii){if(ii\0760) { return n;} }).join(sep);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tov = document.createElement("option");\r\n
 \t\t\t\t\t\t\tov.setAttribute("role","option");\r\n
@@ -5860,7 +6007,7 @@ $.extend($.jgrid,{\r\n
 \t\t\t\telem = document.createElement("span");\r\n
 \t\t\t\ttry {\r\n
 \t\t\t\t\tif($.isFunction(options.custom_element)) {\r\n
-\t\t\t\t\t\tvar celm = options.custom_element.call(this,vl,options);\r\n
+\t\t\t\t\t\tvar celm = options.custom_element.call($t,vl,options);\r\n
 \t\t\t\t\t\tif(celm) {\r\n
 \t\t\t\t\t\t\tcelm = $(celm).addClass("customelement").attr({id:options.id,name:options.name});\r\n
 \t\t\t\t\t\t\t$(elem).empty().append(celm);\r\n
@@ -5871,9 +6018,9 @@ $.extend($.jgrid,{\r\n
 \t\t\t\t\t\tthrow "e1";\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t} catch (e) {\r\n
-\t\t\t\t\tif (e=="e1") { this.info_dialog($.jgrid.errors.errcap,"function \'custom_element\' "+$.jgrid.edit.msg.nodefined, $.jgrid.edit.bClose);}\r\n
-\t\t\t\t\tif (e=="e2") { this.info_dialog($.jgrid.errors.errcap,"function \'custom_element\' "+$.jgrid.edit.msg.novalue,$.jgrid.edit.bClose);}\r\n
-\t\t\t\t\telse { this.info_dialog($.jgrid.errors.errcap,typeof(e)==="string"?e:e.message,$.jgrid.edit.bClose); }\r\n
+\t\t\t\t\tif (e=="e1") { $.jgrid.info_dialog($.jgrid.errors.errcap,"function \'custom_element\' "+$.jgrid.edit.msg.nodefined, $.jgrid.edit.bClose);}\r\n
+\t\t\t\t\tif (e=="e2") { $.jgrid.info_dialog($.jgrid.errors.errcap,"function \'custom_element\' "+$.jgrid.edit.msg.novalue,$.jgrid.edit.bClose);}\r\n
+\t\t\t\t\telse { $.jgrid.info_dialog($.jgrid.errors.errcap,typeof(e)==="string"?e:e.message,$.jgrid.edit.bClose); }\r\n
 \t\t\t\t}\r\n
 \t\t\tbreak;\r\n
 \t\t}\r\n
@@ -5966,7 +6113,7 @@ $.extend($.jgrid,{\r\n
 \tcheckTime : function(time){\r\n
 \t// checks only hh:ss (and optional am/pm)\r\n
 \t\tvar re = /^(\\d{1,2}):(\\d{2})([ap]m)?$/,regs;\r\n
-\t\tif(!this.isEmpty(time))\r\n
+\t\tif(!$.jgrid.isEmpty(time))\r\n
 \t\t{\r\n
 \t\t\tregs = time.match(re);\r\n
 \t\t\tif(regs) {\r\n
@@ -6006,12 +6153,12 @@ $.extend($.jgrid,{\r\n
 \t\tif(edtrul) {\r\n
 \t\t\tif(!nm) { nm = g.p.colNames[valref]; }\r\n
 \t\t\tif(edtrul.required === true) {\r\n
-\t\t\t\tif( this.isEmpty(val) )  { return [false,nm+": "+$.jgrid.edit.msg.required,""]; }\r\n
+\t\t\t\tif( $.jgrid.isEmpty(val) )  { return [false,nm+": "+$.jgrid.edit.msg.required,""]; }\r\n
 \t\t\t}\r\n
 \t\t\t// force required\r\n
 \t\t\tvar rqfield = edtrul.required === false ? false : true;\r\n
 \t\t\tif(edtrul.number === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
 \t\t\t\t\tif(isNaN(val)) { return [false,nm+": "+$.jgrid.edit.msg.number,""]; }\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
@@ -6023,41 +6170,41 @@ $.extend($.jgrid,{\r\n
 \t\t\t}\r\n
 \t\t\tvar filter;\r\n
 \t\t\tif(edtrul.email === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
 \t\t\t\t// taken from $ Validate plugin\r\n
 \t\t\t\t\tfilter = /^((([a-z]|\\d|[!#\\$%\046\'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%\046\'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\r\n
 \t\t\t\t\tif(!filter.test(val)) {return [false,nm+": "+$.jgrid.edit.msg.email,""];}\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif(edtrul.integer === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
 \t\t\t\t\tif(isNaN(val)) { return [false,nm+": "+$.jgrid.edit.msg.integer,""]; }\r\n
 \t\t\t\t\tif ((val % 1 !== 0) || (val.indexOf(\'.\') != -1)) { return [false,nm+": "+$.jgrid.edit.msg.integer,""];}\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif(edtrul.date === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
 \t\t\t\t\tif(g.p.colModel[valref].formatoptions \046\046 g.p.colModel[valref].formatoptions.newformat) {\r\n
 \t\t\t\t\t\tdft = g.p.colModel[valref].formatoptions.newformat;\r\n
 \t\t\t\t\t} else {\r\n
 \t\t\t\t\t\tdft = g.p.colModel[valref].datefmt || "Y-m-d";\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\tif(!this.checkDate (dft, val)) { return [false,nm+": "+$.jgrid.edit.msg.date+" - "+dft,""]; }\r\n
+\t\t\t\t\tif(!$.jgrid.checkDate (dft, val)) { return [false,nm+": "+$.jgrid.edit.msg.date+" - "+dft,""]; }\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif(edtrul.time === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
-\t\t\t\t\tif(!this.checkTime (val)) { return [false,nm+": "+$.jgrid.edit.msg.date+" - hh:mm (am/pm)",""]; }\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
+\t\t\t\t\tif(!$.jgrid.checkTime (val)) { return [false,nm+": "+$.jgrid.edit.msg.date+" - hh:mm (am/pm)",""]; }\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif(edtrul.url === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
 \t\t\t\t\tfilter = /^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@\046#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i;\r\n
 \t\t\t\t\tif(!filter.test(val)) {return [false,nm+": "+$.jgrid.edit.msg.url,""];}\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif(edtrul.custom === true) {\r\n
-\t\t\t\tif( !(rqfield === false \046\046 this.isEmpty(val)) ) {\r\n
+\t\t\t\tif( !(rqfield === false \046\046 $.jgrid.isEmpty(val)) ) {\r\n
 \t\t\t\t\tif($.isFunction(edtrul.custom_func)) {\r\n
 \t\t\t\t\t\tvar ret = edtrul.custom_func.call(g,val,nm);\r\n
 \t\t\t\t\t\tif($.isArray(ret)) {\r\n
@@ -6152,7 +6299,7 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\tgroupButton : true,\r\n
 \t\truleButtons : true,\r\n
 \t\tdirection : "ltr"\r\n
-\t}, arg || {});\r\n
+\t}, $.jgrid.filter, arg || {});\r\n
 \treturn this.each( function() {\r\n
 \t\tif (this.filter) {return;}\r\n
 \t\tthis.p = p;\r\n
@@ -6445,29 +6592,8 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(!cm) {return;}\r\n
-\t\t\t\tcm.searchoptions.id = $.jgrid.randId()</string> </value>
-        </item>
-        <item>
-            <key> <string>next</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="Pdata" module="OFS.Image"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-;\r\n
-\t\t\t\tif(isIE && cm.inputtype === "text") {\r\n
+\t\t\t\tcm.searchoptions.id = $.jgrid.randId();\r\n
+\t\t\t\tif(isIE \046\046 cm.inputtype === "text") {\r\n
 \t\t\t\t\tif(!cm.searchoptions.size) {\r\n
 \t\t\t\t\t\tcm.searchoptions.size = 10;\r\n
 \t\t\t\t\t}\r\n
@@ -6484,28 +6610,33 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\t\tvar s ="", so = 0;\r\n
 \t\t\t\taoprs = [];\r\n
 \t\t\t\t$.each(that.p.ops, function() { aoprs.push(this.name) });\r\n
-\t\t\t\tfor ( i = 0 ; i < op.length; i++) {\r\n
+\t\t\t\tfor ( i = 0 ; i \074 op.length; i++) {\r\n
 \t\t\t\t\tina = $.inArray(op[i],aoprs);\r\n
 \t\t\t\t\tif(ina !== -1) {\r\n
 \t\t\t\t\t\tif(so===0) {\r\n
 \t\t\t\t\t\t\trule.op = that.p.ops[ina].name;\r\n
 \t\t\t\t\t\t}\r\n
-\t\t\t\t\t\ts += "<option value=\'"+that.p.ops[ina].name+"\'>"+that.p.ops[ina].description+"</option>";\r\n
+\t\t\t\t\t\ts += "\074option value=\'"+that.p.ops[ina].name+"\'\076"+that.p.ops[ina].description+"\074/option\076";\r\n
 \t\t\t\t\t\tso++;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\t$(".selectopts",trpar).empty().append( s );\r\n
 \t\t\t\t$(".selectopts",trpar)[0].selectedIndex = 0;\r\n
-\t\t\t\tif( $.browser.msie && $.browser.version < 9) {\r\n
+\t\t\t\tif( $.browser.msie \046\046 $.browser.version \074 9) {\r\n
 \t\t\t\t\tvar sw = parseInt($("select.selectopts",trpar)[0].offsetWidth) + 1;\r\n
 \t\t\t\t\t$(".selectopts",trpar).width( sw );\r\n
 \t\t\t\t\t$(".selectopts",trpar).css("width","auto");\r\n
 \t\t\t\t}\r\n
 \t\t\t\t// data\r\n
 \t\t\t\t$(".data",trpar).empty().append( elm );\r\n
-\t\t\t\t$(".input-elm",trpar).bind(\'change\',function() {\r\n
-\t\t\t\t\trule.data = $(this).val();\r\n
-\t\t\t\t\tthat.onchange(); // signals that the filter has changed\r\n
+\t\t\t\t$(".input-elm",trpar).bind(\'change\',function( e ) {\r\n
+\t\t\t\t\tvar tmo = $(this).hasClass("ui-autocomplete-input") ? 200 :0;\r\n
+\t\t\t\t\tsetTimeout(function(){\r\n
+\t\t\t\t\t\tvar elem = e.target;\r\n
+\t\t\t\t\t\trule.data = elem.nodeName.toUpperCase() === "SPAN" \046\046 cm.searchoptions \046\046 $.isFunction(cm.searchoptions.custom_value) ?\r\n
+\t\t\t\t\t\t\tcm.searchoptions.custom_value($(elem).children(".customelement:first"), \'get\') : elem.value;\r\n
+\t\t\t\t\t\tthat.onchange(); // signals that the filter has changed\r\n
+\t\t\t\t\t}, tmo);\r\n
 \t\t\t\t});\r\n
 \t\t\t\tsetTimeout(function(){ //IE, Opera, Chrome\r\n
 \t\t\t\trule.data = $(elm).val();\r\n
@@ -6515,31 +6646,31 @@ $.fn.jqFilter = function( arg ) {\r\n
 \r\n
 \t\t\t// populate drop down with user provided column definitions\r\n
 \t\t\tvar j=0;\r\n
-\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\r\n
+\t\t\tfor (i = 0; i \074 that.p.columns.length; i++) {\r\n
 \t\t\t\t// but show only serchable and serchhidden = true fields\r\n
 \t\t        var searchable = (typeof that.p.columns[i].search === \'undefined\') ?  true: that.p.columns[i].search ,\r\n
 \t\t        hidden = (that.p.columns[i].hidden === true),\r\n
 \t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\r\n
-\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\r\n
+\t\t\t\tif ((ignoreHiding \046\046 searchable) || (searchable \046\046 !hidden)) {\r\n
 \t\t\t\t\tselected = "";\r\n
 \t\t\t\t\tif(rule.field === that.p.columns[i].name) {\r\n
 \t\t\t\t\t\tselected = " selected=\'selected\'";\r\n
 \t\t\t\t\t\tj=i;\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\tstr += "<option value=\'"+that.p.columns[i].name+"\'" +selected+">"+that.p.columns[i].label+"</option>";\r\n
+\t\t\t\t\tstr += "\074option value=\'"+that.p.columns[i].name+"\'" +selected+"\076"+that.p.columns[i].label+"\074/option\076";\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\truleFieldSelect.append( str );\r\n
 \r\n
 \r\n
 \t\t\t// create operator container\r\n
-\t\t\tvar ruleOperatorTd = $("<td class=\'operators\'></td>");\r\n
+\t\t\tvar ruleOperatorTd = $("\074td class=\'operators\'\076\074/td\076");\r\n
 \t\t\ttr.append(ruleOperatorTd);\r\n
 \t\t\tcm = p.columns[j];\r\n
 \t\t\t// create it here so it can be referentiated in the onchange event\r\n
 \t\t\t//var RD = that.createElement(rule, rule.data);\r\n
 \t\t\tcm.searchoptions.id = $.jgrid.randId();\r\n
-\t\t\tif(isIE && cm.inputtype === "text") {\r\n
+\t\t\tif(isIE \046\046 cm.inputtype === "text") {\r\n
 \t\t\t\tif(!cm.searchoptions.size) {\r\n
 \t\t\t\t\tcm.searchoptions.size = 10;\r\n
 \t\t\t\t}\r\n
@@ -6547,7 +6678,7 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\tvar ruleDataInput = $.jgrid.createEl(cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions, true);\r\n
 \r\n
 \t\t\t// dropdown for: choosing operator\r\n
-\t\t\tvar ruleOperatorSelect = $("<select class=\'selectopts\'></select>");\r\n
+\t\t\tvar ruleOperatorSelect = $("\074select class=\'selectopts\'\076\074/select\076");\r\n
 \t\t\truleOperatorTd.append(ruleOperatorSelect);\r\n
 \t\t\truleOperatorSelect.bind(\'change\',function() {\r\n
 \t\t\t\trule.op = $(ruleOperatorSelect).val();\r\n
@@ -6573,16 +6704,16 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\telse {op = that.p.numopts;}\r\n
 \t\t\tstr="";\r\n
 \t\t\t$.each(that.p.ops, function() { aoprs.push(this.name) });\r\n
-\t\t\tfor ( i = 0; i < op.length; i++) {\r\n
+\t\t\tfor ( i = 0; i \074 op.length; i++) {\r\n
 \t\t\t\tina = $.inArray(op[i],aoprs);\r\n
 \t\t\t\tif(ina !== -1) {\r\n
 \t\t\t\t\tselected = rule.op === that.p.ops[ina].name ? " selected=\'selected\'" : "";\r\n
-\t\t\t\t\tstr += "<option value=\'"+that.p.ops[ina].name+"\'"+selected+">"+that.p.ops[ina].description+"</option>";\r\n
+\t\t\t\t\tstr += "\074option value=\'"+that.p.ops[ina].name+"\'"+selected+"\076"+that.p.ops[ina].description+"\074/option\076";\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\truleOperatorSelect.append( str );\r\n
 \t\t\t// create data container\r\n
-\t\t\tvar ruleDataTd = $("<td class=\'data\'></td>");\r\n
+\t\t\tvar ruleDataTd = $("\074td class=\'data\'\076\074/td\076");\r\n
 \t\t\ttr.append(ruleDataTd);\r\n
 \r\n
 \t\t\t// textbox for: data\r\n
@@ -6593,22 +6724,22 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\t$(ruleDataInput)\r\n
 \t\t\t.addClass("input-elm")\r\n
 \t\t\t.bind(\'change\', function() {\r\n
-\t\t\t\trule.data = $(this).val();\r\n
+\t\t\t\trule.data = cm.inputtype === \'custom\' ? cm.searchoptions.custom_value($(this).children(".customelement:first"),\'get\') : $(this).val();\r\n
 \t\t\t\tthat.onchange(); // signals that the filter has changed\r\n
 \t\t\t});\r\n
 \r\n
 \t\t\t// create action container\r\n
-\t\t\tvar ruleDeleteTd = $("<td></td>");\r\n
+\t\t\tvar ruleDeleteTd = $("\074td\076\074/td\076");\r\n
 \t\t\ttr.append(ruleDeleteTd);\r\n
 \r\n
 \t\t\t// create button for: delete rule\r\n
 \t\t\tif(this.p.ruleButtons === true) {\r\n
-\t\t\tvar ruleDeleteInput = $("<input type=\'button\' value=\'-\' title=\'Delete rule\' class=\'delete-rule ui-del\'/>");\r\n
+\t\t\tvar ruleDeleteInput = $("\074input type=\'button\' value=\'-\' title=\'Delete rule\' class=\'delete-rule ui-del\'/\076");\r\n
 \t\t\truleDeleteTd.append(ruleDeleteInput);\r\n
 \t\t\t//$(ruleDeleteInput).html("").height(20).width(30).button({icons: {  primary: "ui-icon-minus", text:false}});\r\n
 \t\t\truleDeleteInput.bind(\'click\',function() {\r\n
 \t\t\t\t// remove rule from group\r\n
-\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\r\n
+\t\t\t\tfor (i = 0; i \074 group.rules.length; i++) {\r\n
 \t\t\t\t\tif (group.rules[i] === rule) {\r\n
 \t\t\t\t\t\tgroup.rules.splice(i, 1);\r\n
 \t\t\t\t\t\tbreak;\r\n
@@ -6627,8 +6758,8 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\tthis.getStringForGroup = function(group) {\r\n
 \t\t\tvar s = "(", index;\r\n
 \t\t\tif (group.groups !== undefined) {\r\n
-\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\r\n
-\t\t\t\t\tif (s.length > 1) {\r\n
+\t\t\t\tfor (index = 0; index \074 group.groups.length; index++) {\r\n
+\t\t\t\t\tif (s.length \076 1) {\r\n
 \t\t\t\t\t\ts += " " + group.groupOp + " ";\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\ttry {\r\n
@@ -6639,8 +6770,8 @@ $.fn.jqFilter = function( arg ) {\r\n
 \r\n
 \t\t\tif (group.rules !== undefined) {\r\n
 \t\t\t\ttry{\r\n
-\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\r\n
-\t\t\t\t\t\tif (s.length > 1) {\r\n
+\t\t\t\t\tfor (index = 0; index \074 group.rules.length; index++) {\r\n
+\t\t\t\t\t\tif (s.length \076 1) {\r\n
 \t\t\t\t\t\t\ts += " " + group.groupOp + " ";\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\ts += this.getStringForRule(group.rules[index]);\r\n
@@ -6659,14 +6790,14 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\tthis.getStringForRule = function(rule) {\r\n
 \t\t\tvar opUF = "",opC="", i, cm, ret, val,\r\n
 \t\t\tnumtypes = [\'int\', \'integer\', \'float\', \'number\', \'currency\']; // jqGrid\r\n
-\t\t\tfor (i = 0; i < this.p.ops.length; i++) {\r\n
+\t\t\tfor (i = 0; i \074 this.p.ops.length; i++) {\r\n
 \t\t\t\tif (this.p.ops[i].name === rule.op) {\r\n
 \t\t\t\t\topUF = this.p.ops[i].operator;\r\n
 \t\t\t\t\topC = this.p.ops[i].name;\r\n
 \t\t\t\t\tbreak;\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
-\t\t\tfor (i=0; i<this.p.columns.length; i++) {\r\n
+\t\t\tfor (i=0; i\074this.p.columns.length; i++) {\r\n
 \t\t\t\tif(this.p.columns[i].name === rule.field) {\r\n
 \t\t\t\t\tcm = this.p.columns[i];\r\n
 \t\t\t\t\tbreak;\r\n
@@ -6704,7 +6835,7 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\tfunction getStringRule(rule) {\r\n
 \t\t\t\tif(that.p.errorcheck) {\r\n
 \t\t\t\t\tvar i, cm;\r\n
-\t\t\t\t\tfor (i=0; i<that.p.columns.length; i++) {\r\n
+\t\t\t\t\tfor (i=0; i\074that.p.columns.length; i++) {\r\n
 \t\t\t\t\t\tif(that.p.columns[i].name === rule.field) {\r\n
 \t\t\t\t\t\t\tcm = that.p.columns[i];\r\n
 \t\t\t\t\t\t\tbreak;\r\n
@@ -6719,13 +6850,13 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\t\tvar s = "(", index;\r\n
 \r\n
 \t\t\t\tif (group.groups !== undefined) {\r\n
-\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\r\n
-\t\t\t\t\t\tif (s.length > 1) {\r\n
+\t\t\t\t\tfor (index = 0; index \074 group.groups.length; index++) {\r\n
+\t\t\t\t\t\tif (s.length \076 1) {\r\n
 \t\t\t\t\t\t\tif (group.groupOp === "OR") {\r\n
 \t\t\t\t\t\t\t\ts += " || ";\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\telse {\r\n
-\t\t\t\t\t\t\t\ts += " && ";\r\n
+\t\t\t\t\t\t\t\ts += " \046\046 ";\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\ts += getStringForGroup(group.groups[index]);\r\n
@@ -6733,13 +6864,13 @@ $.fn.jqFilter = function( arg ) {\r\n
 \t\t\t\t}\r\n
 \r\n
 \t\t\t\tif (group.rules !== undefined) {\r\n
-\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\r\n
-\t\t\t\t\t\tif (s.length > 1) {\r\n
+\t\t\t\t\tfor (index = 0; index \074 group.rules.length; index++) {\r\n
+\t\t\t\t\t\tif (s.length \076 1) {\r\n
 \t\t\t\t\t\t\tif (group.groupOp === "OR") {\r\n
 \t\t\t\t\t\t\t\ts += " || ";\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\telse  {\r\n
-\t\t\t\t\t\t\t\ts += " && ";\r\n
+\t\t\t\t\t\t\t\ts += " \046\046 ";\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\ts += getStringRule(group.rules[index]);\r\n
@@ -6840,14 +6971,16 @@ $.jgrid.extend({\r\n
 \t\t\tsValue:\'searchString\',\r\n
 \t\t\tsOper: \'searchOper\',\r\n
 \t\t\tsFilter: \'filters\',\r\n
-            loadDefaults: true, // this options activates loading of default filters from grid\'s postData for Multipe Search only.\r\n
+\t\t\tloadDefaults: true, // this options activates loading of default filters from grid\'s postData for Multipe Search only.\r\n
 \t\t\tbeforeShowSearch: null,\r\n
 \t\t\tafterShowSearch : null,\r\n
 \t\t\tonInitializeSearch: null,\r\n
 \t\t\tafterRedraw : null,\r\n
+\t\t\tafterChange: null,\r\n
 \t\t\tcloseAfterSearch : false,\r\n
 \t\t\tcloseAfterReset: false,\r\n
 \t\t\tcloseOnEscape : false,\r\n
+\t\t\tsearchOnEnter : false,\r\n
 \t\t\tmultipleSearch : false,\r\n
 \t\t\tmultipleGroup : false,\r\n
 \t\t\t//cloneSearchRowOnAdd: true,\r\n
@@ -6876,8 +7009,8 @@ $.jgrid.extend({\r\n
 \t\t\ttmplFilters : null,\r\n
 \t\t\t// translations - later in lang file\r\n
 \t\t\ttmplLabel : \' Template: \',\r\n
-            showOnLoad: false,\r\n
-            layer: null\r\n
+\t\t\tshowOnLoad: false,\r\n
+\t\t\tlayer: null\r\n
 \t\t}, $.jgrid.search, p || {});\r\n
 \t\treturn this.each(function() {\r\n
 \t\t\tvar $t = this;\r\n
@@ -6890,26 +7023,28 @@ $.jgrid.extend({\r\n
 \t\t\t\tdefaultFilters = $.jgrid.parse( defaultFilters );\r\n
 \t\t\t}\r\n
 \t\t\tif(p.recreateFilter === true) {\r\n
-\t\t\t\t$("#"+IDs.themodal).remove();\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(IDs.themodal)).remove();\r\n
 \t\t\t}\r\n
-\t\t\tfunction showFilter() {\r\n
-\t\t\t\tif($.isFunction(p.beforeShowSearch)) {\r\n
-\t\t\t\t\tshowFrm = p.beforeShowSearch($("#"+fid));\r\n
-\t\t\t\t\tif(typeof(showFrm) === "undefined") {\r\n
-\t\t\t\t\t\tshowFrm = true;\r\n
-\t\t\t\t\t}\r\n
+\t\t\tfunction showFilter(_filter) {\r\n
+\t\t\t\tshowFrm = $($t).triggerHandler("jqGridFilterBeforeShow", [_filter]);\r\n
+\t\t\t\tif(typeof(showFrm) === "undefined") {\r\n
+\t\t\t\t\tshowFrm = true;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif(showFrm \046\046 $.isFunction(p.beforeShowSearch)) {\r\n
+\t\t\t\t\tshowFrm = p.beforeShowSearch.call($t,_filter);\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(showFrm) {\r\n
-\t\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+fid,jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});\r\n
+\t\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(fid),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});\r\n
+\t\t\t\t\t$($t).triggerHandler("jqGridFilterAfterShow", [_filter]);\r\n
 \t\t\t\t\tif($.isFunction(p.afterShowSearch)) {\r\n
-\t\t\t\t\t\tp.afterShowSearch($("#"+fid));\r\n
+\t\t\t\t\t\tp.afterShowSearch.call($t, _filter);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
-\t\t\tif ( $("#"+IDs.themodal).html() !== null ) {\r\n
-\t\t\t\tshowFilter();\r\n
+\t\t\tif ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\r\n
+\t\t\t\tshowFilter($("#fbox_"+$.jgrid.jqID(+$t.p.id)));\r\n
 \t\t\t} else {\r\n
-\t\t\t\tvar fil = $("<div><div id=\'"+fid+"\' class=\'searchFilter\' style=\'overflow:auto\'></div></div>").insertBefore("#gview_"+$t.p.id),\r\n
+\t\t\t\tvar fil = $("\074div\076\074div id=\'"+fid+"\' class=\'searchFilter\' style=\'overflow:auto\'\076\074/div\076\074/div\076").insertBefore("#gview_"+$.jgrid.jqID($t.p.id)),\r\n
 \t\t\t\talign = "left", butleft =""; \r\n
 \t\t\t\tif($t.p.direction == "rtl") {\r\n
 \t\t\t\t\talign = "right";\r\n
@@ -6917,29 +7052,50 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tfil.attr("dir","rtl");\r\n
 \t\t\t\t}\r\n
 \t\t\t\tvar columns = $.extend([],$t.p.colModel),\r\n
-\t\t\t\tbS  ="<a href=\'javascript:void(0)\' id=\'"+fid+"_search\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-right ui-reset\'><span class=\'ui-icon ui-icon-search\'></span>"+p.Find+"</a>",\r\n
-\t\t\t\tbC  ="<a href=\'javascript:void(0)\' id=\'"+fid+"_reset\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-left ui-search\'><span class=\'ui-icon ui-icon-arrowreturnthick-1-w\'></span>"+p.Reset+"</a>",\r\n
+\t\t\t\tbS  ="\074a href=\'javascript:void(0)\' id=\'"+fid+"_search\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-right ui-reset\'\076\074span class=\'ui-icon ui-icon-search\'\076\074/span\076"+p.Find+"\074/a\076",\r\n
+\t\t\t\tbC  ="\074a href=\'javascript:void(0)\' id=\'"+fid+"_reset\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-left ui-search\'\076\074span class=\'ui-icon ui-icon-arrowreturnthick-1-w\'\076\074/span\076"+p.Reset+"\074/a\076",\r\n
 \t\t\t\tbQ = "", tmpl="", colnm, found = false, bt, cmi=-1;\r\n
 \t\t\t\tif(p.showQuery) {\r\n
-\t\t\t\t\tbQ ="<a href=\'javascript:void(0)\' id=\'"+fid+"_query\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-left\'><span class=\'ui-icon ui-icon-comment\'></span>Query</a>";\r\n
-\t\t\t\t}\r\n
-\t\t\t\tif(!p.columns.length) {\r\n
-\t\t\t\t\t$.each(columns, function(i,n){\r\n
-\t\t\t\t\t\tif(!n.label) {\r\n
-\t\t\t\t\t\t\tn.label = $t.p.colNames[i];\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t// find first searchable column and set it if no default filter\r\n
-\t\t\t\t\t\tif(!found) {\r\n
-\t\t\t\t\t\t\tvar searchable = (typeof n.search === \'undefined\') ?  true: n.search ,\r\n
-\t\t\t\t\t\t\thidden = (n.hidden === true),\r\n
-\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\r\n
-\t\t\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\r\n
-\t\t\t\t\t\t\t\tfound = true;\r\n
-\t\t\t\t\t\t\t\tcolnm = n.index || n.name;\r\n
-\t\t\t\t\t\t\t\tcmi =i;\r\n
-\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\t});\r\n
+\t\t\t\t\tbQ ="</string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+<a href=\'javascript:void(0)\' id=\'"+fid+"_query\' class=\'fm-button ui-state-default ui-corner-all fm-button-icon-left\'><span class=\'ui-icon ui-icon-comment\'></span>Query</a>";\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif(!p.columns.length) {\r\n
+\t\t\t\t\t$.each(columns, function(i,n){\r\n
+\t\t\t\t\t\tif(!n.label) {\r\n
+\t\t\t\t\t\t\tn.label = $t.p.colNames[i];\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t// find first searchable column and set it if no default filter\r\n
+\t\t\t\t\t\tif(!found) {\r\n
+\t\t\t\t\t\t\tvar searchable = (typeof n.search === \'undefined\') ?  true: n.search ,\r\n
+\t\t\t\t\t\t\thidden = (n.hidden === true),\r\n
+\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\r\n
+\t\t\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\r\n
+\t\t\t\t\t\t\t\tfound = true;\r\n
+\t\t\t\t\t\t\t\tcolnm = n.index || n.name;\r\n
+\t\t\t\t\t\t\t\tcmi =i;\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t});\r\n
 \t\t\t\t} else {\r\n
 \t\t\t\t\tcolumns = p.columns;\r\n
 \t\t\t\t}\r\n
@@ -6966,7 +7122,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t}\r\n
 \r\n
 \t\t\t\tbt = "<table class=\'EditTable\' style=\'border:0px none;margin-top:5px\' id=\'"+fid+"_2\'><tbody><tr><td colspan=\'2\'><hr class=\'ui-widget-content\' style=\'margin:1px\'/></td></tr><tr><td class=\'EditButton\' style=\'text-align:"+align+"\'>"+bC+tmpl+"</td><td class=\'EditButton\' "+butleft+">"+bQ+bS+"</td></tr></tbody></table>";\r\n
-\r\n
+\t\t\t\tfid = $.jgrid.jqID( fid);\r\n
 \t\t\t\t$("#"+fid).jqFilter({\r\n
 \t\t\t\t\tcolumns : columns,\r\n
 \t\t\t\t\tfilter: p.loadDefaults ? defaultFilters : null,\r\n
@@ -6978,16 +7134,20 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tafterRedraw : p.afterRedraw,\r\n
 \t\t\t\t\t_gridsopt : $.jgrid.search.odata,\r\n
 \t\t\t\t\tajaxSelectOptions: $t.p.ajaxSelectOptions,\r\n
-\t\t\t\t\tonChange : function( sp ) {\r\n
+\t\t\t\t\tgroupOps: p.groupOps,\r\n
+\t\t\t\t\tonChange : function() {\r\n
 \t\t\t\t\t\tif(this.p.showQuery) {\r\n
 \t\t\t\t\t\t\t$(\'.query\',this).html(this.toUserFriendlyString());\r\n
 \t\t\t\t\t\t}\r\n
+\t\t\t\t\t\tif ($.isFunction(p.afterChange)) {\r\n
+\t\t\t\t\t\t\tp.afterChange.call($t, $("#"+fid), p);\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t},\r\n
 \t\t\t\t\tdirection : $t.p.direction\r\n
 \t\t\t\t});\r\n
 \t\t\t\tfil.append( bt );\r\n
 \t\t\t\tif(found && p.tmplFilters && p.tmplFilters.length) {\r\n
-\t\t\t\t\t$(".ui-template", fil).bind(\'change\', function(e){\r\n
+\t\t\t\t\t$(".ui-template", fil).bind(\'change\', function(){\r\n
 \t\t\t\t\t\tvar curtempl = $(this).val();\r\n
 \t\t\t\t\t\tif(curtempl=="default") {\r\n
 \t\t\t\t\t\t\t$("#"+fid).jqFilter(\'addFilter\', defaultFilters);\r\n
@@ -6998,17 +7158,34 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(p.multipleGroup === true) {p.multipleSearch = true;}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridFilterInitialize", [$("#"+fid)]);\r\n
 \t\t\t\tif($.isFunction(p.onInitializeSearch) ) {\r\n
-\t\t\t\t\tp.onInitializeSearch($("#"+fid));\r\n
+\t\t\t\t\tp.onInitializeSearch.call($t, $("#"+fid));\r\n
 \t\t\t\t}\r\n
 \t\t\t\tp.gbox = "#gbox_"+fid;\r\n
 \t\t\t\tif (p.layer) {\r\n
-\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,"#gview_"+$t.p.id,$("#gbox_"+$t.p.id)[0], "#"+p.layer, {position: "relative"});\r\n
+\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], "#"+$.jgrid.jqID(p.layer), {position: "relative"});\r\n
 \t\t\t\t} else {\r\n
-\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,"#gview_"+$t.p.id,$("#gbox_"+$t.p.id)[0]);\r\n
+\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0]);\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif (p.searchOnEnter || p.closeOnEscape) {\r\n
+\t\t\t\t\t$("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {\r\n
+\t\t\t\t\t\tvar $target = $(e.target);\r\n
+\t\t\t\t\t\tif (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER\r\n
+\t\t\t\t\t\t\t\t!$target.hasClass(\'add-group\') && !$target.hasClass(\'add-rule\') &&\r\n
+\t\t\t\t\t\t\t\t!$target.hasClass(\'delete-group\') && !$target.hasClass(\'delete-rule\') &&\r\n
+\t\t\t\t\t\t\t\t(!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) {\r\n
+\t\t\t\t\t\t\t$("#"+fid+"_search").focus().click();\r\n
+\t\t\t\t\t\t\treturn false;\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\tif (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE\r\n
+\t\t\t\t\t\t\t$("#"+$.jgrid.jqID(IDs.modalhead)).find(".ui-jqdialog-titlebar-close").focus().click();\r\n
+\t\t\t\t\t\t\treturn false;\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(bQ) {\r\n
-\t\t\t\t\t$("#"+fid+"_query").bind(\'click\', function(e){\r\n
+\t\t\t\t\t$("#"+fid+"_query").bind(\'click\', function(){\r\n
 \t\t\t\t\t\t$(".queryresult", fil).toggle();\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
@@ -7056,12 +7233,13 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$t.p.search = true;\r\n
 \t\t\t\t\t$.extend($t.p.postData,sdata);\r\n
+\t\t\t\t\t$($t).triggerHandler("jqGridFilterSearch");\r\n
 \t\t\t\t\tif($.isFunction(p.onSearch) ) {\r\n
-\t\t\t\t\t\tp.onSearch();\r\n
+\t\t\t\t\t\tp.onSearch.call($t);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$($t).trigger("reloadGrid",[{page:1}]);\r\n
 \t\t\t\t\tif(p.closeAfterSearch) {\r\n
-\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+$t.p.id,jqm:p.jqModal,onClose: p.onClose});\r\n
+\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
@@ -7079,16 +7257,17 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t$(".ui-template", fil).val("default");\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$.extend($t.p.postData,sdata);\r\n
+\t\t\t\t\t$($t).triggerHandler("jqGridFilterReset");\r\n
 \t\t\t\t\tif($.isFunction(p.onReset) ) {\r\n
-\t\t\t\t\t\tp.onReset();\r\n
+\t\t\t\t\t\tp.onReset.call($t);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\t$($t).trigger("reloadGrid",[{page:1}]);\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\tshowFilter();\r\n
+\t\t\t\tshowFilter($("#"+fid));\r\n
 \t\t\t\t$(".fm-button:not(.ui-state-disabled)",fil).hover(\r\n
-\t\t\t\t   function(){$(this).addClass(\'ui-state-hover\');},\r\n
-\t\t\t\t   function(){$(this).removeClass(\'ui-state-hover\');}\r\n
+\t\t\t\t\tfunction(){$(this).addClass(\'ui-state-hover\');},\r\n
+\t\t\t\t\tfunction(){$(this).removeClass(\'ui-state-hover\');}\r\n
 \t\t\t\t);\r\n
 \t\t\t}\r\n
 \t\t});\r\n
@@ -7144,37 +7323,39 @@ $.jgrid.extend({\r\n
 \t\t\tvar $t = this;\r\n
 \t\t\tif (!$t.grid || !rowid) {return;}\r\n
 \t\t\tvar gID = $t.p.id,\r\n
-\t\t\tfrmgr = "FrmGrid_"+gID,frmtb = "TblGrid_"+gID,\r\n
+\t\t\tfrmgr = "FrmGrid_"+gID, frmtborg = "TblGrid_"+gID, frmtb = "#"+$.jgrid.jqID(frmtborg), \r\n
 \t\t\tIDs = {themodal:\'editmod\'+gID,modalhead:\'edithd\'+gID,modalcontent:\'editcnt\'+gID, scrollelm : frmgr},\r\n
 \t\t\tonBeforeShow = $.isFunction(rp_ge[$t.p.id].beforeShowForm) ? rp_ge[$t.p.id].beforeShowForm : false,\r\n
 \t\t\tonAfterShow = $.isFunction(rp_ge[$t.p.id].afterShowForm) ? rp_ge[$t.p.id].afterShowForm : false,\r\n
 \t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\r\n
 \t\t\tonInitializeForm = $.isFunction(rp_ge[$t.p.id].onInitializeForm) ? rp_ge[$t.p.id].onInitializeForm : false,\r\n
-\t\t\tcopydata = null,\r\n
 \t\t\tshowFrm = true,\r\n
-\t\t\tmaxCols = 1, maxRows=0,\tpostdata, extpost, newData, diff;\r\n
+\t\t\tmaxCols = 1, maxRows=0,\tpostdata, extpost, newData, diff, frmoper;\r\n
+\t\t\tfrmgr = $.jgrid.jqID(frmgr);\r\n
 \t\t\tif (rowid === "new") {\r\n
 \t\t\t\trowid = "_empty";\r\n
+\t\t\t\tfrmoper = "add";\r\n
 \t\t\t\tp.caption=rp_ge[$t.p.id].addCaption;\r\n
 \t\t\t} else {\r\n
 \t\t\t\tp.caption=rp_ge[$t.p.id].editCaption;\r\n
+\t\t\t\tfrmoper = "edit";\r\n
 \t\t\t}\r\n
-\t\t\tif(p.recreateForm===true && $("#"+IDs.themodal).html() !== null) {\r\n
-\t\t\t\t$("#"+IDs.themodal).remove();\r\n
+\t\t\tif(p.recreateForm===true && $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined) {\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(IDs.themodal)).remove();\r\n
 \t\t\t}\r\n
 \t\t\tvar closeovrl = true;\r\n
 \t\t\tif(p.checkOnUpdate && p.jqModal && !p.modal) {\r\n
 \t\t\t\tcloseovrl = false;\r\n
 \t\t\t}\r\n
 \t\t\tfunction getFormData(){\r\n
-\t\t\t\t$("#"+frmtb+" > tbody > tr > td > .FormElement").each(function(i) {\r\n
+\t\t\t\t$(frmtb+" > tbody > tr > td > .FormElement").each(function() {\r\n
 \t\t\t\t\tvar celm = $(".customelement", this);\r\n
 \t\t\t\t\tif (celm.length) {\r\n
 \t\t\t\t\t\tvar  elem = celm[0], nm = $(elem).attr(\'name\');\r\n
-\t\t\t\t\t\t$.each($t.p.colModel, function(i,n){\r\n
+\t\t\t\t\t\t$.each($t.p.colModel, function(){\r\n
 \t\t\t\t\t\t\tif(this.name === nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {\r\n
 \t\t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t\tpostdata[nm] = this.editoptions.custom_value($("#"+$.jgrid.jqID(nm),"#"+frmtb),\'get\');\r\n
+\t\t\t\t\t\t\t\t\tpostdata[nm] = this.editoptions.custom_value.call($t, $("#"+$.jgrid.jqID(nm),frmtb),\'get\');\r\n
 \t\t\t\t\t\t\t\t\tif (postdata[nm] === undefined) {throw "e1";}\r\n
 \t\t\t\t\t\t\t\t} catch (e) {\r\n
 \t\t\t\t\t\t\t\t\tif (e==="e1") {$.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function \'custom_value\' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}\r\n
@@ -7248,7 +7429,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\ttmp = $("td:eq("+i+")",obj.rows[ind]).text();\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t\ttmp =  $.unformat($("td:eq("+i+")",obj.rows[ind]),{rowId:rowid, colModel:this},i);\r\n
+\t\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $("td:eq("+i+")",obj.rows[ind]),{rowId:rowid, colModel:this},i);\r\n
 \t\t\t\t\t\t\t\t} catch (_) {\r\n
 \t\t\t\t\t\t\t\t\ttmp =  (this.edittype && this.edittype == "textarea") ? $("td:eq("+i+")",obj.rows[ind]).text() : $("td:eq("+i+")",obj.rows[ind]).html();\r\n
 \t\t\t\t\t\t\t\t}\r\n
@@ -7260,11 +7441,11 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\r\n
 \t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\r\n
 \t\t\t\t\t\tif(rowid == "_empty" && opt.defaultValue ) {\r\n
-\t\t\t\t\t\t\ttmp = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;\r\n
+\t\t\t\t\t\t\ttmp = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(!this.edittype) {this.edittype = "text";}\r\n
 \t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\r\n
-\t\t\t\t\t\telc = $.jgrid.createEl(this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));\r\n
+\t\t\t\t\t\telc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));\r\n
 \t\t\t\t\t\tif(tmp === "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}\r\n
 \t\t\t\t\t\tif(tmp === "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}\r\n
 \t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {rp_ge[$t.p.id]._savedData[nm] = tmp;}\r\n
@@ -7303,14 +7484,14 @@ $.jgrid.extend({\r\n
 \t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {rp_ge[$t.p.id]._savedData = {};rp_ge[$t.p.id]._savedData[obj.p.id+"_id"]=rowid;}\r\n
 \t\t\t\tvar cm = obj.p.colModel;\r\n
 \t\t\t\tif(rowid == \'_empty\') {\r\n
-\t\t\t\t\t$(cm).each(function(i){\r\n
+\t\t\t\t\t$(cm).each(function(){\r\n
 \t\t\t\t\t\tnm = this.name;\r\n
 \t\t\t\t\t\topt = $.extend({}, this.editoptions || {} );\r\n
 \t\t\t\t\t\tfld = $("#"+$.jgrid.jqID(nm),"#"+fmid);\r\n
 \t\t\t\t\t\tif(fld && fld.length && fld[0] !== null) {\r\n
 \t\t\t\t\t\t\tvl = "";\r\n
 \t\t\t\t\t\t\tif(opt.defaultValue ) {\r\n
-\t\t\t\t\t\t\t\tvl = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;\r\n
+\t\t\t\t\t\t\t\tvl = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\r\n
 \t\t\t\t\t\t\t\tif(fld[0].type==\'checkbox\') {\r\n
 \t\t\t\t\t\t\t\t\tvlc = vl.toLowerCase();\r\n
 \t\t\t\t\t\t\t\t\tif(vlc.search(/(false|0|no|off|undefined)/i)<0 && vlc!=="") {\r\n
@@ -7349,7 +7530,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\ttmp = $(this).text();\r\n
 \t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\ttmp =  $.unformat($(this),{rowId:rowid, colModel:cm[i]},i);\r\n
+\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);\r\n
 \t\t\t\t\t\t\t} catch (_) {\r\n
 \t\t\t\t\t\t\t\ttmp = cm[i].edittype=="textarea" ? $(this).text() : $(this).html();\r\n
 \t\t\t\t\t\t\t}\r\n
@@ -7369,7 +7550,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tcase "select":\r\n
 \t\t\t\t\t\t\t\tvar opv = tmp.split(",");\r\n
 \t\t\t\t\t\t\t\topv = $.map(opv,function(n){return $.trim(n);});\r\n
-\t\t\t\t\t\t\t\t$("#"+nm+" option","#"+fmid).each(function(j){\r\n
+\t\t\t\t\t\t\t\t$("#"+nm+" option","#"+fmid).each(function(){\r\n
 \t\t\t\t\t\t\t\t\tif (!cm[i].editoptions.multiple && ($.trim(tmp) == $.trim($(this).text()) || opv[0] == $.trim($(this).text()) || opv[0] == $.trim($(this).val())) ){\r\n
 \t\t\t\t\t\t\t\t\t\tthis.selected= true;\r\n
 \t\t\t\t\t\t\t\t\t} else if (cm[i].editoptions.multiple){\r\n
@@ -7408,7 +7589,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tcase \'custom\' :\r\n
 \t\t\t\t\t\t\t\ttry {\r\n
 \t\t\t\t\t\t\t\t\tif(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {\r\n
-\t\t\t\t\t\t\t\t\t\tcm[i].editoptions.custom_value($("#"+nm,"#"+fmid),\'set\',tmp);\r\n
+\t\t\t\t\t\t\t\t\t\tcm[i].editoptions.custom_value.call($t, $("#"+nm,"#"+fmid),\'set\',tmp);\r\n
 \t\t\t\t\t\t\t\t\t} else {throw "e1";}\r\n
 \t\t\t\t\t\t\t\t} catch (e) {\r\n
 \t\t\t\t\t\t\t\t\tif (e=="e1") {$.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function \'custom_value\' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose);}\r\n
@@ -7419,7 +7600,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tcnt++;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
-\t\t\t\tif(cnt>0) {$("#id_g","#"+frmtb).val(rowid);}\r\n
+\t\t\t\tif(cnt>0) {$("#id_g",frmtb).val(rowid);}\r\n
 \t\t\t}\r\n
 \t\t\tfunction setNulls() {\r\n
 \t\t\t\t$.each($t.p.colModel, function(i,n){\r\n
@@ -7432,27 +7613,38 @@ $.jgrid.extend({\r\n
 \t\t\t}\r\n
 \t\t\tfunction postIt() {\r\n
 \t\t\t\tvar copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i;\r\n
+\t\t\t\t\r\n
+\t\t\t\tvar retvals = $($t).triggerHandler("jqGridAddEditBeforeCheckValues", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(retvals && typeof(retvals) === \'object\') {postdata = retvals;}\r\n
+\t\t\t\t\r\n
 \t\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {\r\n
-\t\t\t\t\tvar retvals = rp_ge[$t.p.id].beforeCheckValues(postdata,$("#"+frmgr),postdata[$t.p.id+"_id"] == "_empty" ? opers.addoper : opers.editoper);\r\n
+\t\t\t\t\tretvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata,$("#"+frmgr),postdata[$t.p.id+"_id"] == "_empty" ? opers.addoper : opers.editoper);\r\n
 \t\t\t\t\tif(retvals && typeof(retvals) === \'object\') {postdata = retvals;}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tfor( key in postdata ){\r\n
 \t\t\t\t\tif(postdata.hasOwnProperty(key)) {\r\n
-\t\t\t\t\t\tret = $.jgrid.checkValues(postdata[key],key,$t);\r\n
+\t\t\t\t\t\tret = $.jgrid.checkValues.call($t,postdata[key],key,$t);\r\n
 \t\t\t\t\t\tif(ret[0] === false) {break;}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tsetNulls();\r\n
 \t\t\t\tif(ret[0]) {\r\n
-\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit)) { \r\n
-\t\t\t\t\t\t\tonCS = rp_ge[$t.p.id].onclickSubmit(rp_ge[$t.p.id],postdata) || {}; \r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\tif( $.isFunction(rp_ge[$t.p.id].beforeSubmit))  {ret = rp_ge[$t.p.id].beforeSubmit(postdata,$("#"+frmgr));}\r\n
+\t\t\t\t\tonCS = $($t).triggerHandler("jqGridAddEditClickSubmit", [rp_ge[$t.p.id], postdata, frmoper]);\r\n
+\t\t\t\t\tif( onCS === undefined && $.isFunction( rp_ge[$t.p.id].onclickSubmit)) { \r\n
+\t\t\t\t\t\tonCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata) || {}; \r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tret = $($t).triggerHandler("jqGridAddEditBeforeSubmit", [postdata, $("#"+frmgr), frmoper]);\r\n
+\t\t\t\t\tif(ret === undefined) {\r\n
+\t\t\t\t\t\tret = [true,"",""];\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].beforeSubmit))  {\r\n
+\t\t\t\t\t\tret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$("#"+frmgr));\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \r\n
 \t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\r\n
 \t\t\t\t\trp_ge[$t.p.id].processing = true;\r\n
-\t\t\t\t\t$("#sData", "#"+frmtb+"_2").addClass(\'ui-state-active\');\r\n
+\t\t\t\t\t$("#sData", frmtb+"_2").addClass(\'ui-state-active\');\r\n
 \t\t\t\t\toper = opers.oper;\r\n
 \t\t\t\t\tidname = opers.id;\r\n
 \t\t\t\t\t// we add to pos data array the action - the name is oper\r\n
@@ -7473,11 +7665,11 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tfor(i in $t.p.treeReader){\r\n
 \t\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(i)) {\r\n
-\t\t\t\t\t\t\tvar itm = $t.p.treeReader[i];\r\n
-\t\t\t\t\t\t\tif(postdata.hasOwnProperty(itm)) {\r\n
-\t\t\t\t\t\t\t\tif(postdata[oper] == opers.addoper && i === \'parent_id_field\') {continue;}\r\n
-\t\t\t\t\t\t\t\tdelete postdata[itm];\r\n
-\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\tvar itm = $t.p.treeReader[i];\r\n
+\t\t\t\t\t\t\t\tif(postdata.hasOwnProperty(itm)) {\r\n
+\t\t\t\t\t\t\t\t\tif(postdata[oper] == opers.addoper && i === \'parent_id_field\') {continue;}\r\n
+\t\t\t\t\t\t\t\t\tdelete postdata[itm];\r\n
+\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
@@ -7486,29 +7678,34 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tvar ajaxOptions = $.extend({\r\n
 \t\t\t\t\t\turl: rp_ge[$t.p.id].url ? rp_ge[$t.p.id].url : $($t).jqGrid(\'getGridParam\',\'editurl\'),\r\n
 \t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\r\n
-\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData(postdata) :  postdata,\r\n
+\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,\r\n
 \t\t\t\t\t\tcomplete:function(data,Status){\r\n
 \t\t\t\t\t\t\tpostdata[idname] = $t.p.idPrefix + postdata[idname];\r\n
 \t\t\t\t\t\t\tif(Status != "success") {\r\n
-\t\t\t\t\t\t\t    ret[0] = false;\r\n
-\t\t\t\t\t\t\t    if ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\r\n
-\t\t\t\t\t\t\t        ret[1] = rp_ge[$t.p.id].errorTextFormat(data);\r\n
-\t\t\t\t\t\t\t    } else {\r\n
-\t\t\t\t\t\t\t        ret[1] = Status + " Status: \'" + data.statusText + "\'. Error code: " + data.status;\r\n
+\t\t\t\t\t\t\t\tret[0] = false;\r\n
+\t\t\t\t\t\t\t\tret[1] = $($t).triggerHandler("jqGridAddEditErrorTextFormat", [data, frmoper]);\r\n
+\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\r\n
+\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data);\r\n
+\t\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t\tret[1] = Status + " Status: \'" + data.statusText + "\'. Error code: " + data.status;\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t// data is posted successful\r\n
 \t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\r\n
-\t\t\t\t\t\t\t\tif( $.isFunction(rp_ge[$t.p.id].afterSubmit) ) {\r\n
-\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit(data,postdata);\r\n
+\t\t\t\t\t\t\t\tret = $($t).triggerHandler("jqGridAddEditAfterSubmit", [data, postdata, frmoper]);\r\n
+\t\t\t\t\t\t\t\tif(ret === undefined) {\r\n
+\t\t\t\t\t\t\t\t\tret = [true,"",""];\r\n
+\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].afterSubmit) ) {\r\n
+\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata);\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif(ret[0] === false) {\r\n
-\t\t\t\t\t\t\t\t$("#FormError>td","#"+frmtb).html(ret[1]);\r\n
-\t\t\t\t\t\t\t\t$("#FormError","#"+frmtb).show();\r\n
+\t\t\t\t\t\t\t\t$("#FormError>td",frmtb).html(ret[1]);\r\n
+\t\t\t\t\t\t\t\t$("#FormError",frmtb).show();\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t// remove some values if formattaer select or checkbox\r\n
-\t\t\t\t\t\t\t\t$.each($t.p.colModel, function(i,n){\r\n
+\t\t\t\t\t\t\t\t$.each($t.p.colModel, function(){\r\n
 \t\t\t\t\t\t\t\t\tif(extpost[this.name] && this.formatter && this.formatter==\'select\') {\r\n
 \t\t\t\t\t\t\t\t\t\ttry {delete extpost[this.name];} catch (e) {}\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
@@ -7536,7 +7733,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("setSelection",ret[2]);\r\n
 \t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\t\t\t\t} else if (rp_ge[$t.p.id].clearAfterAdd) {\r\n
 \t\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {$($t).trigger("reloadGrid");}\r\n
 \t\t\t\t\t\t\t\t\t\telse {\r\n
@@ -7569,11 +7766,15 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("setRowData", postdata[idname],postdata);\r\n
 \t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});}\r\n
+\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});}\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\r\n
 \t\t\t\t\t\t\t\t\tcopydata = data;\r\n
-\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete(copydata,postdata,$("#"+frmgr));copydata=null;},500);\r\n
+\t\t\t\t\t\t\t\t\tsetTimeout(function(){\r\n
+\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler("jqGridAddEditAfterComplete", [copydata, postdata, $("#"+frmgr), frmoper]);\r\n
+\t\t\t\t\t\t\t\t\t\trp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $("#"+frmgr));\r\n
+\t\t\t\t\t\t\t\t\t\tcopydata=null;\r\n
+\t\t\t\t\t\t\t\t\t},500);\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\r\n
 \t\t\t\t\t\t\t\t$("#"+frmgr).data("disabled",false);\r\n
@@ -7587,7 +7788,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\r\n
-\t\t\t\t\t\t\t$("#sData", "#"+frmtb+"_2").removeClass(\'ui-state-active\');\r\n
+\t\t\t\t\t\t\t$("#sData", frmtb+"_2").removeClass(\'ui-state-active\');\r\n
 \t\t\t\t\t\t\ttry{$(\':input:visible\',"#"+frmgr)[0].focus();} catch (e){}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );\r\n
@@ -7610,10 +7811,10 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\tret[1] = dpret[1] || "Error deleting the selected row!" ;\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\tif(ajaxOptions.data.oper == opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {\r\n
-\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\tif(ajaxOptions.data.oper == opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {\r\n
-\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t} else {\r\n
@@ -7622,8 +7823,8 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(ret[0] === false) {\r\n
-\t\t\t\t\t$("#FormError>td","#"+frmtb).html(ret[1]);\r\n
-\t\t\t\t\t$("#FormError","#"+frmtb).show();\r\n
+\t\t\t\t\t$("#FormError>td",frmtb).html(ret[1]);\r\n
+\t\t\t\t\t$("#FormError",frmtb).show();\r\n
 \t\t\t\t\t// return;\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
@@ -7639,7 +7840,7 @@ $.jgrid.extend({\r\n
 \t\t\t}\r\n
 \t\t\tfunction checkUpdates () {\r\n
 \t\t\t\tvar stat = true;\r\n
-\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
+\t\t\t\t$("#FormError",frmtb).hide();\r\n
 \t\t\t\tif(rp_ge[$t.p.id].checkOnUpdate) {\r\n
 \t\t\t\t\tpostdata = {};extpost={};\r\n
 \t\t\t\t\tgetFormData();\r\n
@@ -7665,79 +7866,83 @@ $.jgrid.extend({\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tfunction updateNav(cr,totr){\r\n
-\t\t\t\tif (cr===0) {$("#pData","#"+frmtb+"_2").addClass(\'ui-state-disabled\');} else {$("#pData","#"+frmtb+"_2").removeClass(\'ui-state-disabled\');}\r\n
-\t\t\t\tif (cr==totr) {$("#nData","#"+frmtb+"_2").addClass(\'ui-state-disabled\');} else {$("#nData","#"+frmtb+"_2").removeClass(\'ui-state-disabled\');}\r\n
+\t\t\t\tif (cr===0) {$("#pData",frmtb+"_2").addClass(\'ui-state-disabled\');} else {$("#pData",frmtb+"_2").removeClass(\'ui-state-disabled\');}\r\n
+\t\t\t\tif (cr==totr) {$("#nData",frmtb+"_2").addClass(\'ui-state-disabled\');} else {$("#nData",frmtb+"_2").removeClass(\'ui-state-disabled\');}\r\n
 \t\t\t}\r\n
 \t\t\tfunction getCurrPos() {\r\n
 \t\t\t\tvar rowsInGrid = $($t).jqGrid("getDataIDs"),\r\n
-\t\t\t\tselrow = $("#id_g","#"+frmtb).val(),\r\n
+\t\t\t\tselrow = $("#id_g",frmtb).val(),\r\n
 \t\t\t\tpos = $.inArray(selrow,rowsInGrid);\r\n
 \t\t\t\treturn [pos,rowsInGrid];\r\n
 \t\t\t}\r\n
 \r\n
-\t\t\tif ( $("#"+IDs.themodal).html() !== null ) {\r\n
-\t\t\t\tif(onBeforeInit) {\r\n
-\t\t\t\t\tshowFrm = onBeforeInit($("#"+frmgr));\r\n
-\t\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
-\t\t\t\t\t\tshowFrm = true;\r\n
-\t\t\t\t\t}\r\n
+\t\t\tif ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\r\n
+\t\t\t\tshowFrm = $($t).triggerHandler("jqGridAddEditBeforeInitData", [$("#"+$.jgrid.jqID(frmgr)), frmoper]);\r\n
+\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
+\t\t\t\t\tshowFrm = true;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif(showFrm && onBeforeInit) {\r\n
+\t\t\t\t\tshowFrm = onBeforeInit.call($t,$("#"+frmgr));\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(showFrm === false) {return;}\r\n
 \t\t\t\trestoreInline();\r\n
-\t\t\t\t$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);\r\n
-\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
+\t\t\t\t$(".ui-jqdialog-title","#"+$.jgrid.jqID(IDs.modalhead)).html(p.caption);\r\n
+\t\t\t\t$("#FormError",frmtb).hide();\r\n
 \t\t\t\tif(rp_ge[$t.p.id].topinfo) {\r\n
-\t\t\t\t\t$(".topinfo","#"+frmtb).html(rp_ge[$t.p.id].topinfo);\r\n
-\t\t\t\t\t$(".tinfo","#"+frmtb).show();\r\n
+\t\t\t\t\t$(".topinfo",frmtb).html(rp_ge[$t.p.id].topinfo);\r\n
+\t\t\t\t\t$(".tinfo",frmtb).show();\r\n
 \t\t\t\t} else {\r\n
-\t\t\t\t\t$(".tinfo","#"+frmtb).hide();\r\n
+\t\t\t\t\t$(".tinfo",frmtb).hide();\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(rp_ge[$t.p.id].bottominfo) {\r\n
-\t\t\t\t\t$(".bottominfo","#"+frmtb+"_2").html(rp_ge[$t.p.id].bottominfo);\r\n
-\t\t\t\t\t$(".binfo","#"+frmtb+"_2").show();\r\n
+\t\t\t\t\t$(".bottominfo",frmtb+"_2").html(rp_ge[$t.p.id].bottominfo);\r\n
+\t\t\t\t\t$(".binfo",frmtb+"_2").show();\r\n
 \t\t\t\t} else {\r\n
-\t\t\t\t\t$(".binfo","#"+frmtb+"_2").hide();\r\n
+\t\t\t\t\t$(".binfo",frmtb+"_2").hide();\r\n
 \t\t\t\t}\r\n
 \t\t\t\t// filldata\r\n
 \t\t\t\tfillData(rowid,$t,frmgr);\r\n
 \t\t\t\t///\r\n
 \t\t\t\tif(rowid=="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {\r\n
-\t\t\t\t\t$("#pData, #nData","#"+frmtb+"_2").hide();\r\n
+\t\t\t\t\t$("#pData, #nData",frmtb+"_2").hide();\r\n
 \t\t\t\t} else {\r\n
-\t\t\t\t\t$("#pData, #nData","#"+frmtb+"_2").show();\r\n
+\t\t\t\t\t$("#pData, #nData",frmtb+"_2").show();\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(rp_ge[$t.p.id].processing===true) {\r\n
 \t\t\t\t\trp_ge[$t.p.id].processing=false;\r\n
-\t\t\t\t\t$("#sData", "#"+frmtb+"_2").removeClass(\'ui-state-active\');\r\n
+\t\t\t\t\t$("#sData", frmtb+"_2").removeClass(\'ui-state-active\');\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif($("#"+frmgr).data("disabled")===true) {\r\n
-\t\t\t\t\t$(".confirm","#"+IDs.themodal).hide();\r\n
+\t\t\t\t\t$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();\r\n
 \t\t\t\t\t$("#"+frmgr).data("disabled",false);\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(onBeforeShow) {onBeforeShow($("#"+frmgr));}\r\n
-\t\t\t\t$("#"+IDs.themodal).data("onClose",rp_ge[$t.p.id].onClose);\r\n
-\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, overlay: p.overlay, modal:p.modal});\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAddEditBeforeShowForm", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(onBeforeShow) { onBeforeShow.call($t, $("#"+frmgr)); }\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(IDs.themodal)).data("onClose",rp_ge[$t.p.id].onClose);\r\n
+\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, jqM: false, overlay: p.overlay, modal:p.modal});\r\n
 \t\t\t\tif(!closeovrl) {\r\n
 \t\t\t\t\t$(".jqmOverlay").click(function(){\r\n
 \t\t\t\t\t\tif(!checkUpdates()) {return false;}\r\n
-\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(onAfterShow) {onAfterShow($("#"+frmgr));}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAddEditAfterShowForm", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(onAfterShow) { onAfterShow.call($t, $("#"+frmgr)); }\r\n
 \t\t\t} else {\r\n
 \t\t\t\tvar dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px",\r\n
 \t\t\t\tfrm = $("<form name=\'FormPost\' id=\'"+frmgr+"\' class=\'FormGrid\' onSubmit=\'return false;\' style=\'width:100%;overflow:auto;position:relative;height:"+dh+";\'></form>").data("disabled",false),\r\n
-\t\t\t\ttbl = $("<table id=\'"+frmtb+"\' class=\'EditTable\' cellspacing=\'0\' cellpadding=\'0\' border=\'0\'><tbody></tbody></table>");\r\n
-\t\t\t\tif(onBeforeInit) {\r\n
-\t\t\t\t\tshowFrm = onBeforeInit($("#"+frmgr));\r\n
-\t\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
-\t\t\t\t\t\tshowFrm = true;\r\n
-\t\t\t\t\t}\r\n
+\t\t\t\ttbl = $("<table id=\'"+frmtborg+"\' class=\'EditTable\' cellspacing=\'0\' cellpadding=\'0\' border=\'0\'><tbody></tbody></table>");\r\n
+\t\t\t\tshowFrm = $($t).triggerHandler("jqGridAddEditBeforeInitData", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
+\t\t\t\t\tshowFrm = true;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif(showFrm && onBeforeInit) {\r\n
+\t\t\t\t\tshowFrm = onBeforeInit.call($t,$("#"+frmgr));\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(showFrm === false) {return;}\r\n
 \t\t\t\trestoreInline();\r\n
-\t\t\t\t$($t.p.colModel).each( function(i) {\r\n
+\t\t\t\t$($t.p.colModel).each( function() {\r\n
 \t\t\t\t\tvar fmto = this.formoptions;\r\n
 \t\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\r\n
 \t\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\r\n
@@ -7762,7 +7967,7 @@ $.jgrid.extend({\r\n
 \t\t\t\tbN = "<a href=\'javascript:void(0)\' id=\'"+bn+"\' class=\'fm-button ui-state-default ui-corner-right\'><span class=\'ui-icon ui-icon-triangle-1-e\'></span></a>",\r\n
 \t\t\t\tbS  ="<a href=\'javascript:void(0)\' id=\'sData\' class=\'fm-button ui-state-default ui-corner-all\'>"+p.bSubmit+"</a>",\r\n
 \t\t\t\tbC  ="<a href=\'javascript:void(0)\' id=\'cData\' class=\'fm-button ui-state-default ui-corner-all\'>"+p.bCancel+"</a>";\r\n
-\t\t\t\tvar bt = "<table border=\'0\' cellspacing=\'0\' cellpadding=\'0\' class=\'EditTable\' id=\'"+frmtb+"_2\'><tbody><tr><td colspan=\'2\'><hr class=\'ui-widget-content\' style=\'margin:1px\'/></td></tr><tr id=\'Act_Buttons\'><td class=\'navButton\'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class=\'EditButton\'>"+bS+bC+"</td></tr>";\r\n
+\t\t\t\tvar bt = "<table border=\'0\' cellspacing=\'0\' cellpadding=\'0\' class=\'EditTable\' id=\'"+frmtborg+"_2\'><tbody><tr><td colspan=\'2\'><hr class=\'ui-widget-content\' style=\'margin:1px\'/></td></tr><tr id=\'Act_Buttons\'><td class=\'navButton\'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class=\'EditButton\'>"+bS+bC+"</td></tr>";\r\n
 \t\t\t\tbt += "<tr style=\'display:none\' class=\'binfo\'><td class=\'bottominfo\' colspan=\'2\'>"+rp_ge[$t.p.id].bottominfo+"</td></tr>";\r\n
 \t\t\t\tbt += "</tbody></table>";\r\n
 \t\t\t\tif(maxRows >  0) {\r\n
@@ -7779,27 +7984,27 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t$(\'tbody\',tbl).append(row);\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
-\t\t\t\tp.gbox = "#gbox_"+gID;\r\n
+\t\t\t\tp.gbox = "#gbox_"+$.jgrid.jqID(gID);\r\n
 \t\t\t\tvar cle = false;\r\n
 \t\t\t\tif(p.closeOnEscape===true){\r\n
 \t\t\t\t\tp.closeOnEscape = false;\r\n
 \t\t\t\t\tcle = true;\r\n
 \t\t\t\t}\r\n
 \t\t\t\tvar tms = $("<span></span>").append(frm).append(bt);\r\n
-\t\t\t\t$.jgrid.createModal(IDs,tms,p,"#gview_"+$t.p.id,$("#gbox_"+$t.p.id)[0]);\r\n
+\t\t\t\t$.jgrid.createModal(IDs,tms,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0]);\r\n
 \t\t\t\tif(rtlb) {\r\n
-\t\t\t\t\t$("#pData, #nData","#"+frmtb+"_2").css("float","right");\r\n
-\t\t\t\t\t$(".EditButton","#"+frmtb+"_2").css("text-align","left");\r\n
+\t\t\t\t\t$("#pData, #nData",frmtb+"_2").css("float","right");\r\n
+\t\t\t\t\t$(".EditButton",frmtb+"_2").css("text-align","left");\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(rp_ge[$t.p.id].topinfo) {$(".tinfo","#"+frmtb).show();}\r\n
-\t\t\t\tif(rp_ge[$t.p.id].bottominfo) {$(".binfo","#"+frmtb+"_2").show();}\r\n
+\t\t\t\tif(rp_ge[$t.p.id].topinfo) {$(".tinfo",frmtb).show();}\r\n
+\t\t\t\tif(rp_ge[$t.p.id].bottominfo) {$(".binfo",frmtb+"_2").show();}\r\n
 \t\t\t\ttms = null;bt=null;\r\n
-\t\t\t\t$("#"+IDs.themodal).keydown( function( e ) {\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {\r\n
 \t\t\t\t\tvar wkey = e.target;\r\n
 \t\t\t\t\tif ($("#"+frmgr).data("disabled")===true ) {return false;}//??\r\n
 \t\t\t\t\tif(rp_ge[$t.p.id].savekey[0] === true && e.which == rp_ge[$t.p.id].savekey[1]) { // save\r\n
 \t\t\t\t\t\tif(wkey.tagName != "TEXTAREA") {\r\n
-\t\t\t\t\t\t\t$("#sData", "#"+frmtb+"_2").trigger("click");\r\n
+\t\t\t\t\t\t\t$("#sData", frmtb+"_2").trigger("click");\r\n
 \t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
@@ -7809,23 +8014,23 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif(rp_ge[$t.p.id].navkeys[0]===true) {\r\n
-\t\t\t\t\t\tif($("#id_g","#"+frmtb).val() == "_empty") {return true;}\r\n
+\t\t\t\t\t\tif($("#id_g",frmtb).val() == "_empty") {return true;}\r\n
 \t\t\t\t\t\tif(e.which == rp_ge[$t.p.id].navkeys[1]){ //up\r\n
-\t\t\t\t\t\t\t$("#pData", "#"+frmtb+"_2").trigger("click");\r\n
+\t\t\t\t\t\t\t$("#pData", frmtb+"_2").trigger("click");\r\n
 \t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(e.which == rp_ge[$t.p.id].navkeys[2]){ //down\r\n
-\t\t\t\t\t\t\t$("#nData", "#"+frmtb+"_2").trigger("click");\r\n
+\t\t\t\t\t\t\t$("#nData", frmtb+"_2").trigger("click");\r\n
 \t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
 \t\t\t\tif(p.checkOnUpdate) {\r\n
-\t\t\t\t\t$("a.ui-jqdialog-titlebar-close span","#"+IDs.themodal).removeClass("jqmClose");\r\n
-\t\t\t\t\t$("a.ui-jqdialog-titlebar-close","#"+IDs.themodal).unbind("click")\r\n
+\t\t\t\t\t$("a.ui-jqdialog-titlebar-close span","#"+$.jgrid.jqID(IDs.themodal)).removeClass("jqmClose");\r\n
+\t\t\t\t\t$("a.ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.themodal)).unbind("click")\r\n
 \t\t\t\t\t.click(function(){\r\n
 \t\t\t\t\t\tif(!checkUpdates()) {return false;}\r\n
-\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
@@ -7833,11 +8038,11 @@ $.jgrid.extend({\r\n
 \t\t\t\tp.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);\r\n
 \t\t\t\t// beforeinitdata after creation of the form\r\n
 \t\t\t\tif(p.saveicon[0]===true) {\r\n
-\t\t\t\t\t$("#sData","#"+frmtb+"_2").addClass(p.saveicon[1] == "right" ? \'fm-button-icon-right\' : \'fm-button-icon-left\')\r\n
+\t\t\t\t\t$("#sData",frmtb+"_2").addClass(p.saveicon[1] == "right" ? \'fm-button-icon-right\' : \'fm-button-icon-left\')\r\n
 \t\t\t\t\t.append("<span class=\'ui-icon "+p.saveicon[2]+"\'></span>");\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(p.closeicon[0]===true) {\r\n
-\t\t\t\t\t$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? \'fm-button-icon-right\' : \'fm-button-icon-left\')\r\n
+\t\t\t\t\t$("#cData",frmtb+"_2").addClass(p.closeicon[1] == "right" ? \'fm-button-icon-right\' : \'fm-button-icon-left\')\r\n
 \t\t\t\t\t.append("<span class=\'ui-icon "+p.closeicon[2]+"\'></span>");\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\r\n
@@ -7849,46 +8054,49 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tii = \'<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\\\'0\\\');" src="javascript:false;"></iframe>\';\r\n
 \t\t\t\t\t} else {ii="";}\r\n
 \t\t\t\t\t$("<div class=\'ui-widget-overlay jqgrid-overlay confirm\' style=\'z-index:"+zI+";display:none;\'>&#160;"+ii+"</div><div class=\'confirm ui-widget-content ui-jqconfirm\' style=\'z-index:"+(zI+1)+"\'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>").insertAfter("#"+frmgr);\r\n
-\t\t\t\t\t$("#sNew","#"+IDs.themodal).click(function(){\r\n
+\t\t\t\t\t$("#sNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){\r\n
 \t\t\t\t\t\tpostIt();\r\n
 \t\t\t\t\t\t$("#"+frmgr).data("disabled",false);\r\n
-\t\t\t\t\t\t$(".confirm","#"+IDs.themodal).hide();\r\n
+\t\t\t\t\t\t$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
-\t\t\t\t\t$("#nNew","#"+IDs.themodal).click(function(){\r\n
-\t\t\t\t\t\t$(".confirm","#"+IDs.themodal).hide();\r\n
+\t\t\t\t\t$("#nNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){\r\n
+\t\t\t\t\t\t$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();\r\n
 \t\t\t\t\t\t$("#"+frmgr).data("disabled",false);\r\n
 \t\t\t\t\t\tsetTimeout(function(){$(":input","#"+frmgr)[0].focus();},0);\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
-\t\t\t\t\t$("#cNew","#"+IDs.themodal).click(function(){\r\n
-\t\t\t\t\t\t$(".confirm","#"+IDs.themodal).hide();\r\n
+\t\t\t\t\t$("#cNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){\r\n
+\t\t\t\t\t\t$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();\r\n
 \t\t\t\t\t\t$("#"+frmgr).data("disabled",false);\r\n
-\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
 \t\t\t\t// here initform - only once\r\n
-\t\t\t\tif(onInitializeForm) {onInitializeForm($("#"+frmgr));}\r\n
-\t\t\t\tif(rowid=="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {$("#pData,#nData","#"+frmtb+"_2").hide();} else {$("#pData,#nData","#"+frmtb+"_2").show();}\r\n
-\t\t\t\tif(onBeforeShow) {onBeforeShow($("#"+frmgr));}\r\n
-\t\t\t\t$("#"+IDs.themodal).data("onClose",rp_ge[$t.p.id].onClose);\r\n
-\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, overlay: p.overlay,modal:p.modal});\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAddEditInitializeForm", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(onInitializeForm) {onInitializeForm.call($t,$("#"+frmgr));}\r\n
+\t\t\t\tif(rowid=="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {$("#pData,#nData",frmtb+"_2").hide();} else {$("#pData,#nData",frmtb+"_2").show();}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAddEditBeforeShowForm", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(onBeforeShow) { onBeforeShow.call($t, $("#"+frmgr));}\r\n
+\t\t\t\t$("#"+$.jgrid.jqID(IDs.themodal)).data("onClose",rp_ge[$t.p.id].onClose);\r\n
+\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, overlay: p.overlay,modal:p.modal});\r\n
 \t\t\t\tif(!closeovrl) {\r\n
 \t\t\t\t\t$(".jqmOverlay").click(function(){\r\n
 \t\t\t\t\t\tif(!checkUpdates()) {return false;}\r\n
-\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(onAfterShow) {onAfterShow($("#"+frmgr));}\r\n
-\t\t\t\t$(".fm-button","#"+IDs.themodal).hover(\r\n
-\t\t\t\t   function(){$(this).addClass(\'ui-state-hover\');},\r\n
-\t\t\t\t   function(){$(this).removeClass(\'ui-state-hover\');}\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAddEditAfterShowForm", [$("#"+frmgr), frmoper]);\r\n
+\t\t\t\tif(onAfterShow) { onAfterShow.call($t, $("#"+frmgr)); }\r\n
+\t\t\t\t$(".fm-button","#"+$.jgrid.jqID(IDs.themodal)).hover(\r\n
+\t\t\t\t\tfunction(){$(this).addClass(\'ui-state-hover\');},\r\n
+\t\t\t\t\tfunction(){$(this).removeClass(\'ui-state-hover\');}\r\n
 \t\t\t\t);\r\n
-\t\t\t\t$("#sData", "#"+frmtb+"_2").click(function(e){\r\n
+\t\t\t\t$("#sData", frmtb+"_2").click(function(){\r\n
 \t\t\t\t\tpostdata = {};extpost={};\r\n
-\t\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
+\t\t\t\t\t$("#FormError",frmtb).hide();\r\n
 \t\t\t\t\t// all depend on ret array\r\n
 \t\t\t\t\t//ret[0] - succes\r\n
 \t\t\t\t\t//ret[1] - msg if not succes\r\n
@@ -7900,7 +8108,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tdiff = compareData(newData,rp_ge[$t.p.id]._savedData);\r\n
 \t\t\t\t\t\tif(diff) {\r\n
 \t\t\t\t\t\t\t$("#"+frmgr).data("disabled",true);\r\n
-\t\t\t\t\t\t\t$(".confirm","#"+IDs.themodal).show();\r\n
+\t\t\t\t\t\t\t$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).show();\r\n
 \t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\tpostIt();\r\n
 \t\t\t\t\t\t}\r\n
@@ -7909,41 +8117,51 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#cData", "#"+frmtb+"_2").click(function(e){\r\n
+\t\t\t\t$("#cData", frmtb+"_2").click(function(){\r\n
 \t\t\t\t\tif(!checkUpdates()) {return false;}\r\n
-\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#nData", "#"+frmtb+"_2").click(function(e){\r\n
+\t\t\t\t$("#nData", frmtb+"_2").click(function(){\r\n
 \t\t\t\t\tif(!checkUpdates()) {return false;}\r\n
-\t\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
+\t\t\t\t\t$("#FormError",frmtb).hide();\r\n
 \t\t\t\t\tvar npos = getCurrPos();\r\n
 \t\t\t\t\tnpos[0] = parseInt(npos[0],10);\r\n
 \t\t\t\t\tif(npos[0] != -1 && npos[1][npos[0]+1]) {\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridAddEditClickPgButtons", [\'next\',$("#"+frmgr),npos[1][npos[0]]]);\r\n
+\t\t\t\t\t\tvar nposret = true;\r\n
 \t\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.onclickPgButtons(\'next\',$("#"+frmgr),npos[1][npos[0]]);\r\n
+\t\t\t\t\t\t\tnposret = p.onclickPgButtons.call($t, \'next\',$("#"+frmgr),npos[1][npos[0]]);\r\n
+\t\t\t\t\t\t\tif( nposret !== undefined && nposret === false ) {return false;}\r\n
 \t\t\t\t\t\t}\r\n
+\t\t\t\t\t\tif( $("#"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass(\'ui-state-disabled\')) {return false;}\r\n
 \t\t\t\t\t\tfillData(npos[1][npos[0]+1],$t,frmgr);\r\n
 \t\t\t\t\t\t$($t).jqGrid("setSelection",npos[1][npos[0]+1]);\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridAddEditAfterClickPgButtons", [\'next\',$("#"+frmgr),npos[1][npos[0]]]);\r\n
 \t\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.afterclickPgButtons(\'next\',$("#"+frmgr),npos[1][npos[0]+1]);\r\n
+\t\t\t\t\t\t\tp.afterclickPgButtons.call($t, \'next\',$("#"+frmgr),npos[1][npos[0]+1]);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tupdateNav(npos[0]+1,npos[1].length-1);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#pData", "#"+frmtb+"_2").click(function(e){\r\n
+\t\t\t\t$("#pData", frmtb+"_2").click(function(){\r\n
 \t\t\t\t\tif(!checkUpdates()) {return false;}\r\n
-\t\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
+\t\t\t\t\t$("#FormError",frmtb).hide();\r\n
 \t\t\t\t\tvar ppos = getCurrPos();\r\n
 \t\t\t\t\tif(ppos[0] != -1 && ppos[1][ppos[0]-1]) {\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridAddEditClickPgButtons", [\'prev\',$("#"+frmgr),ppos[1][ppos[0]]]);\r\n
+\t\t\t\t\t\tvar pposret = true;\r\n
 \t\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.onclickPgButtons(\'prev\',$("#"+frmgr),ppos[1][ppos[0]]);\r\n
+\t\t\t\t\t\t\tpposret = p.onclickPgButtons.call($t, \'prev\',$("#"+frmgr),ppos[1][ppos[0]]);\r\n
+\t\t\t\t\t\t\tif( pposret !== undefined && pposret === false ) {return false;}\r\n
 \t\t\t\t\t\t}\r\n
+\t\t\t\t\t\tif( $("#"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass(\'ui-state-disabled\')) {return false;}\r\n
 \t\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t,frmgr);\r\n
 \t\t\t\t\t\t$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridAddEditAfterClickPgButtons", [\'prev\',$("#"+frmgr),ppos[1][ppos[0]]]);\r\n
 \t\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.afterclickPgButtons(\'prev\',$("#"+frmgr),ppos[1][ppos[0]-1]);\r\n
+\t\t\t\t\t\t\tp.afterclickPgButtons.call($t, \'prev\',$("#"+frmgr),ppos[1][ppos[0]-1]);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tupdateNav(ppos[0]-1,ppos[1].length-1);\r\n
 \t\t\t\t\t}\r\n
@@ -7976,18 +8194,20 @@ $.jgrid.extend({\r\n
 \t\t\tbeforeInitData : null,\r\n
 \t\t\tviewPagerButtons : true\r\n
 \t\t}, $.jgrid.view, p || {});\r\n
+\t\trp_ge[$(this)[0].p.id] = p;\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tvar $t = this;\r\n
 \t\t\tif (!$t.grid || !rowid) {return;}\r\n
 \t\t\tvar gID = $t.p.id,\r\n
-\t\t\tfrmgr = "ViewGrid_"+gID , frmtb = "ViewTbl_"+gID,\r\n
+\t\t\tfrmgr = "ViewGrid_"+$.jgrid.jqID( gID  ), frmtb = "ViewTbl_" + $.jgrid.jqID( gID ),\r\n
+\t\t\tfrmgr_id = "ViewGrid_"+gID, frmtb_id = "ViewTbl_"+gID,\r\n
 \t\t\tIDs = {themodal:\'viewmod\'+gID,modalhead:\'viewhd\'+gID,modalcontent:\'viewcnt\'+gID, scrollelm : frmgr},\r\n
-\t\t\tonBeforeInit = $.isFunction(p.beforeInitData) ? p.beforeInitData : false,\r\n
+\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\r\n
 \t\t\tshowFrm = true,\r\n
 \t\t\tmaxCols = 1, maxRows=0;\r\n
 \t\t\tfunction focusaref(){ //Sfari 3 issues\r\n
-\t\t\t\tif(p.closeOnEscape===true || p.navkeys[0]===true) {\r\n
-\t\t\t\t\tsetTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);\r\n
+\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {\r\n
+\t\t\t\t\tsetTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).focus();},0);\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tfunction createData(rowid,obj,tb,maxcols){\r\n
@@ -7999,7 +8219,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ttmpl += i == 1 ? tdtmpl : tdtmpl2;\r\n
 \t\t\t\t}\r\n
 \t\t\t\t// find max number align rigth with property formatter\r\n
-\t\t\t\t$(obj.p.colModel).each( function(i) {\r\n
+\t\t\t\t$(obj.p.colModel).each( function() {\r\n
 \t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\r\n
 \t\t\t\t\t\thc = false;\r\n
 \t\t\t\t\t} else {\r\n
@@ -8037,8 +8257,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tsetme = this.align === \'right\' && maxw !==0 ? true : false;\r\n
-\t\t\t\t\t\tvar opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),\r\n
-\t\t\t\t\t\tfrmopt = $.extend({},{rowabove:false,rowcontent:\'\'}, this.formoptions || {}),\r\n
+\t\t\t\t\t\tvar frmopt = $.extend({},{rowabove:false,rowcontent:\'\'}, this.formoptions || {}),\r\n
 \t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\r\n
 \t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\r\n
 \t\t\t\t\t\tif(frmopt.rowabove) {\r\n
@@ -8107,32 +8326,32 @@ $.jgrid.extend({\r\n
 \t\t\t\treturn [pos,rowsInGrid];\r\n
 \t\t\t}\r\n
 \r\n
-\t\t\tif ( $("#"+IDs.themodal).html() !== null ) {\r\n
+\t\t\tif ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\r\n
 \t\t\t\tif(onBeforeInit) {\r\n
-\t\t\t\t\tshowFrm = onBeforeInit($("#"+frmgr));\r\n
+\t\t\t\t\tshowFrm = onBeforeInit.call($t,$("#"+frmgr));\r\n
 \t\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
 \t\t\t\t\t\tshowFrm = true;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(showFrm === false) {return;}\r\n
-\t\t\t\t$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);\r\n
+\t\t\t\t$(".ui-jqdialog-title","#"+$.jgrid.jqID(IDs.modalhead)).html(p.caption);\r\n
 \t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
 \t\t\t\tfillData(rowid,$t);\r\n
-\t\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm($("#"+frmgr));}\r\n
-\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, overlay: p.overlay, modal:p.modal});\r\n
+\t\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeShowForm)) {rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+frmgr));}\r\n
+\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, jqM: false, overlay: p.overlay, modal:p.modal});\r\n
 \t\t\t\tfocusaref();\r\n
 \t\t\t} else {\r\n
 \t\t\t\tvar dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";\r\n
-\t\t\t\tvar frm = $("<form name=\'FormPost\' id=\'"+frmgr+"\' class=\'FormGrid\' style=\'width:100%;overflow:auto;position:relative;height:"+dh+";\'></form>"),\r\n
-\t\t\t\ttbl =$("<table id=\'"+frmtb+"\' class=\'EditTable\' cellspacing=\'1\' cellpadding=\'2\' border=\'0\' style=\'table-layout:fixed\'><tbody></tbody></table>");\r\n
+\t\t\t\tvar frm = $("<form name=\'FormPost\' id=\'"+frmgr_id+"\' class=\'FormGrid\' style=\'width:100%;overflow:auto;position:relative;height:"+dh+";\'></form>"),\r\n
+\t\t\t\ttbl =$("<table id=\'"+frmtb_id+"\' class=\'EditTable\' cellspacing=\'1\' cellpadding=\'2\' border=\'0\' style=\'table-layout:fixed\'><tbody></tbody></table>");\r\n
 \t\t\t\tif(onBeforeInit) {\r\n
-\t\t\t\t\tshowFrm = onBeforeInit($("#"+frmgr));\r\n
+\t\t\t\t\tshowFrm = onBeforeInit.call($t,$("#"+frmgr));\r\n
 \t\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
 \t\t\t\t\t\tshowFrm = true;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(showFrm === false) {return;}\r\n
-\t\t\t\t$($t.p.colModel).each( function(i) {\r\n
+\t\t\t\t$($t.p.colModel).each( function() {\r\n
 \t\t\t\t\tvar fmto = this.formoptions;\r\n
 \t\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\r\n
 \t\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\r\n
@@ -8162,14 +8381,9 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t$(\'tbody\',tbl).append(row);\r\n
 \t\t\t\t\t});\r\n
 \t\t\t\t}\r\n
-\t\t\t\tp.gbox = "#gbox_"+gID;\r\n
-\t\t\t\tvar cle = false;\r\n
-\t\t\t\tif(p.closeOnEscape===true){\r\n
-\t\t\t\t\tp.closeOnEscape = false;\r\n
-\t\t\t\t\tcle = true;\r\n
-\t\t\t\t}\r\n
+\t\t\t\tp.gbox = "#gbox_"+$.jgrid.jqID(gID);\r\n
 \t\t\t\tvar bt = $("<span></span>").append(frm).append("<table border=\'0\' class=\'EditTable\' id=\'"+frmtb+"_2\'><tbody><tr id=\'Act_Buttons\'><td class=\'navButton\' width=\'"+p.labelswidth+"\'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class=\'EditButton\'>"+bC+"</td></tr></tbody></table>");\r\n
-\t\t\t\t$.jgrid.createModal(IDs,bt,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);\r\n
+\t\t\t\t$.jgrid.createModal(IDs,bt,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0]);\r\n
 \t\t\t\tif(rtlb) {\r\n
 \t\t\t\t\t$("#pData, #nData","#"+frmtb+"_2").css("float","right");\r\n
 \t\t\t\t\t$(".EditButton","#"+frmtb+"_2").css("text-align","left");\r\n
@@ -8178,7 +8392,7 @@ $.jgrid.extend({\r\n
 \t\t\t\tbt = null;\r\n
 \t\t\t\t$("#"+IDs.themodal).keydown( function( e ) {\r\n
 \t\t\t\t\tif(e.which === 27) {\r\n
-\t\t\t\t\t\tif(cle)\t{$.jgrid.hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose});}\r\n
+\t\t\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose});}\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tif(p.navkeys[0]===true) {\r\n
@@ -8196,70 +8410,47 @@ $.jgrid.extend({\r\n
 \t\t\t\tif(p.closeicon[0]===true) {\r\n
 \t\t\t\t\t$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? \'fm-button-icon-right\' : \'fm-button-icon-left\')\r\n
 \t\t\t\t\t.append("<span class=\'ui-icon "+p.closeicon[2]+"\'></span>");\r\n
-\t\t\t\t}\r
-
-]]></string> </value>
-        </item>
-        <item>
-            <key> <string>next</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="6" aka="AAAAAAAAAAY=">
-    <pickle>
-      <global name="Pdata" module="OFS.Image"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-\n
-\t\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm($("#"+frmgr));}\r\n
-\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, modal:p.modal});\r\n
+\t\t\t\t}\r\n
+\t\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$("#"+frmgr));}\r\n
+\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, modal:p.modal});\r\n
 \t\t\t\t$(".fm-button:not(.ui-state-disabled)","#"+frmtb+"_2").hover(\r\n
-\t\t\t\t   function(){$(this).addClass(\'ui-state-hover\');},\r\n
-\t\t\t\t   function(){$(this).removeClass(\'ui-state-hover\');}\r\n
+\t\t\t\t\tfunction(){$(this).addClass(\'ui-state-hover\');},\r\n
+\t\t\t\t\tfunction(){$(this).removeClass(\'ui-state-hover\');}\r\n
 \t\t\t\t);\r\n
 \t\t\t\tfocusaref();\r\n
-\t\t\t\t$("#cData", "#"+frmtb+"_2").click(function(e){\r\n
-\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});\r\n
+\t\t\t\t$("#cData", "#"+frmtb+"_2").click(function(){\r\n
+\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose});\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#nData", "#"+frmtb+"_2").click(function(e){\r\n
+\t\t\t\t$("#nData", "#"+frmtb+"_2").click(function(){\r\n
 \t\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
 \t\t\t\t\tvar npos = getCurrPos();\r\n
 \t\t\t\t\tnpos[0] = parseInt(npos[0],10);\r\n
 \t\t\t\t\tif(npos[0] != -1 && npos[1][npos[0]+1]) {\r\n
 \t\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.onclickPgButtons(\'next\',$("#"+frmgr),npos[1][npos[0]]);\r\n
+\t\t\t\t\t\t\tp.onclickPgButtons.call($t,\'next\',$("#"+frmgr),npos[1][npos[0]]);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tfillData(npos[1][npos[0]+1],$t);\r\n
 \t\t\t\t\t\t$($t).jqGrid("setSelection",npos[1][npos[0]+1]);\r\n
 \t\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.afterclickPgButtons(\'next\',$("#"+frmgr),npos[1][npos[0]+1]);\r\n
+\t\t\t\t\t\t\tp.afterclickPgButtons.call($t,\'next\',$("#"+frmgr),npos[1][npos[0]+1]);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tupdateNav(npos[0]+1,npos[1].length-1);\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tfocusaref();\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#pData", "#"+frmtb+"_2").click(function(e){\r\n
+\t\t\t\t$("#pData", "#"+frmtb+"_2").click(function(){\r\n
 \t\t\t\t\t$("#FormError","#"+frmtb).hide();\r\n
 \t\t\t\t\tvar ppos = getCurrPos();\r\n
 \t\t\t\t\tif(ppos[0] != -1 && ppos[1][ppos[0]-1]) {\r\n
 \t\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.onclickPgButtons(\'prev\',$("#"+frmgr),ppos[1][ppos[0]]);\r\n
+\t\t\t\t\t\t\tp.onclickPgButtons.call($t,\'prev\',$("#"+frmgr),ppos[1][ppos[0]]);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t);\r\n
 \t\t\t\t\t\t$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);\r\n
 \t\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\r\n
-\t\t\t\t\t\t\tp.afterclickPgButtons(\'prev\',$("#"+frmgr),ppos[1][ppos[0]-1]);\r\n
+\t\t\t\t\t\t\tp.afterclickPgButtons.call($t,\'prev\',$("#"+frmgr),ppos[1][ppos[0]-1]);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tupdateNav(ppos[0]-1,ppos[1].length-1);\r\n
 \t\t\t\t\t}\r\n
@@ -8312,12 +8503,13 @@ $.jgrid.extend({\r\n
 \t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\r\n
 \t\t\tgID = $t.p.id, onCS = {},\r\n
 \t\t\tshowFrm = true,\r\n
-\t\t\tdtbl = "DelTbl_"+gID,postd, idname, opers, oper,\r\n
+\t\t\tdtbl = "DelTbl_"+$.jgrid.jqID(gID),postd, idname, opers, oper,\r\n
+\t\t\tdtbl_id = "DelTbl_" + gID,\r\n
 \t\t\tIDs = {themodal:\'delmod\'+gID,modalhead:\'delhd\'+gID,modalcontent:\'delcnt\'+gID, scrollelm: dtbl};\r\n
 \t\t\tif (jQuery.isArray(rowids)) {rowids = rowids.join();}\r\n
-\t\t\tif ( $("#"+IDs.themodal).html() !== null ) {\r\n
+\t\t\tif ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\r\n
 \t\t\t\tif(onBeforeInit) {\r\n
-\t\t\t\t\tshowFrm = onBeforeInit( $("#"+dtbl));\r\n
+\t\t\t\t\tshowFrm = onBeforeInit.call($t,$("#"+dtbl));\r\n
 \t\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
 \t\t\t\t\t\tshowFrm = true;\r\n
 \t\t\t\t\t}\r\n
@@ -8329,12 +8521,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\trp_ge[$t.p.id].processing=false;\r\n
 \t\t\t\t\t$("#dData", "#"+dtbl).removeClass(\'ui-state-active\');\r\n
 \t\t\t\t}\r\n
-\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm($("#"+dtbl));}\r\n
-\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:rp_ge[$t.p.id].jqModal,jqM: false, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\r\n
-\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm($("#"+dtbl));}\r\n
+\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl));}\r\n
+\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal,jqM: false, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\r\n
+\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$("#"+dtbl));}\r\n
 \t\t\t} else {\r\n
 \t\t\t\tvar dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+"px";\r\n
-\t\t\t\tvar tbl = "<div id=\'"+dtbl+"\' class=\'formdata\' style=\'width:100%;overflow:auto;position:relative;height:"+dh+";\'>";\r\n
+\t\t\t\tvar tbl = "<div id=\'"+dtbl_id+"\' class=\'formdata\' style=\'width:100%;overflow:auto;position:relative;height:"+dh+";\'>";\r\n
 \t\t\t\ttbl += "<table class=\'DelTable\'><tbody>";\r\n
 \t\t\t\t// error data\r\n
 \t\t\t\ttbl += "<tr id=\'DelError\' style=\'display:none\'><td class=\'ui-state-error\'></td></tr>";\r\n
@@ -8345,11 +8537,11 @@ $.jgrid.extend({\r\n
 \t\t\t\tvar bS  = "<a href=\'javascript:void(0)\' id=\'dData\' class=\'fm-button ui-state-default ui-corner-all\'>"+p.bSubmit+"</a>",\r\n
 \t\t\t\tbC  = "<a href=\'javascript:void(0)\' id=\'eData\' class=\'fm-button ui-state-default ui-corner-all\'>"+p.bCancel+"</a>";\r\n
 \t\t\t\ttbl += "<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\' class=\'EditTable\' id=\'"+dtbl+"_2\'><tbody><tr><td><hr class=\'ui-widget-content\' style=\'margin:1px\'/></td></tr><tr><td class=\'DelButton EditButton\'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";\r\n
-\t\t\t\tp.gbox = "#gbox_"+gID;\r\n
-\t\t\t\t$.jgrid.createModal(IDs,tbl,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);\r\n
+\t\t\t\tp.gbox = "#gbox_"+$.jgrid.jqID(gID);\r\n
+\t\t\t\t$.jgrid.createModal(IDs,tbl,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0]);\r\n
 \r\n
 \t\t\t\tif(onBeforeInit) {\r\n
-\t\t\t\t\tshowFrm = onBeforeInit( $("#"+dtbl) );\r\n
+\t\t\t\t\tshowFrm = onBeforeInit.call($t,$("#"+dtbl));\r\n
 \t\t\t\t\tif(typeof(showFrm) == "undefined") {\r\n
 \t\t\t\t\t\tshowFrm = true;\r\n
 \t\t\t\t\t}\r\n
@@ -8357,8 +8549,8 @@ $.jgrid.extend({\r\n
 \t\t\t\tif(showFrm === false) {return;}\r\n
 \r\n
 \t\t\t\t$(".fm-button","#"+dtbl+"_2").hover(\r\n
-\t\t\t\t   function(){$(this).addClass(\'ui-state-hover\');},\r\n
-\t\t\t\t   function(){$(this).removeClass(\'ui-state-hover\');}\r\n
+\t\t\t\t\tfunction(){$(this).addClass(\'ui-state-hover\');},\r\n
+\t\t\t\t\tfunction(){$(this).removeClass(\'ui-state-hover\');}\r\n
 \t\t\t\t);\r\n
 \t\t\t\tp.delicon = $.extend([true,"left","ui-icon-scissors"],rp_ge[$t.p.id].delicon);\r\n
 \t\t\t\tp.cancelicon = $.extend([true,"left","ui-icon-cancel"],rp_ge[$t.p.id].cancelicon);\r\n
@@ -8370,36 +8562,36 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] == "right" ? \'fm-button-icon-right\' : \'fm-button-icon-left\')\r\n
 \t\t\t\t\t.append("<span class=\'ui-icon "+p.cancelicon[2]+"\'></span>");\r\n
 \t\t\t\t}\r\n
-\t\t\t\t$("#dData","#"+dtbl+"_2").click(function(e){\r\n
+\t\t\t\t$("#dData","#"+dtbl+"_2").click(function(){\r\n
 \t\t\t\t\tvar ret=[true,""];onCS = {};\r\n
 \t\t\t\t\tvar postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...\r\n
-\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {onCS = rp_ge[$t.p.id].onclickSubmit(rp_ge[$t.p.id], postdata) || {};}\r\n
-\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].beforeSubmit ) ) {ret = rp_ge[$t.p.id].beforeSubmit(postdata);}\r\n
+\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {onCS = rp_ge[$t.p.id].onclickSubmit.call($t,rp_ge[$t.p.id], postdata) || {};}\r\n
+\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].beforeSubmit ) ) {ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata);}\r\n
 \t\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\r\n
 \t\t\t\t\t\trp_ge[$t.p.id].processing = true;\r\n
-\t\t\t\t\t\t$(this).addClass(\'ui-state-active\');\r\n
 \t\t\t\t\t\topers = $t.p.prmNames;\r\n
 \t\t\t\t\t\tpostd = $.extend({},rp_ge[$t.p.id].delData, onCS);\r\n
 \t\t\t\t\t\toper = opers.oper;\r\n
 \t\t\t\t\t\tpostd[oper] = opers.deloper;\r\n
 \t\t\t\t\t\tidname = opers.id;\r\n
-\t\t\t\t\t\tpostdata = postdata.split(",");\r\n
+\t\t\t\t\t\tpostdata = String(postdata).split(",");\r\n
+\t\t\t\t\t\tif(!postdata.length) { return false; }\r\n
 \t\t\t\t\t\tfor( var pk in postdata) {\r\n
 \t\t\t\t\t\t\tif(postdata.hasOwnProperty(pk)) {\r\n
 \t\t\t\t\t\t\t\tpostdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tpostd[idname] = postdata.join();\r\n
-\t\t\t\t\t\t\r\n
+\t\t\t\t\t\t$(this).addClass(\'ui-state-active\');\r\n
 \t\t\t\t\t\tvar ajaxOptions = $.extend({\r\n
 \t\t\t\t\t\t\turl: rp_ge[$t.p.id].url ? rp_ge[$t.p.id].url : $($t).jqGrid(\'getGridParam\',\'editurl\'),\r\n
 \t\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\r\n
-\t\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData(postd) : postd,\r\n
+\t\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,\r\n
 \t\t\t\t\t\t\tcomplete:function(data,Status){\r\n
 \t\t\t\t\t\t\t\tif(Status != "success") {\r\n
 \t\t\t\t\t\t\t\t\tret[0] = false;\r\n
 \t\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\r\n
-\t\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat(data);\r\n
+\t\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t,data);\r\n
 \t\t\t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t\t\tret[1] = Status + " Status: \'" + data.statusText + "\'. Error code: " + data.status;\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
@@ -8407,7 +8599,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\t// data is posted successful\r\n
 \t\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\r\n
 \t\t\t\t\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].afterSubmit ) ) {\r\n
-\t\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit(data,postd);\r\n
+\t\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t,data,postd);\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\tif(ret[0] === false) {\r\n
@@ -8417,27 +8609,48 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != "local") {\r\n
 \t\t\t\t\t\t\t\t\t\t$($t).trigger("reloadGrid");\r\n
 \t\t\t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t\t\tvar toarr = [];\r\n
-\t\t\t\t\t\t\t\t\t\ttoarr = postdata.split(",");\r\n
 \t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid===true){\r\n
-\t\t\t\t\t\t\t\t\t\t\t\ttry {$($t).jqGrid("delTreeNode",$t.p.idPrefix+toarr[0]);} catch(e){}\r\n
+\t\t\t\t\t\t\t\t\t\t\t\ttry {$($t).jqGrid("delTreeNode",$t.p.idPrefix+postdata[0]);} catch(e){}\r\n
 \t\t\t\t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t\t\t\tfor(var i=0;i<toarr.length;i++) {\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("delRowData",$t.p.idPrefix+ toarr[i]);\r\n
+\t\t\t\t\t\t\t\t\t\t\tfor(var i=0;i<postdata.length;i++) {\r\n
+\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("delRowData",$t.p.idPrefix+ postdata[i]);\r\n
 \t\t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t\t$t.p.selrow = null;\r\n
 \t\t\t\t\t\t\t\t\t\t$t.p.selarrrow = [];\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\r\n
-\t\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete(data,postdata);},500);\r\n
+\t\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete.call($t,data,postdata);},500);\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\r\n
 \t\t\t\t\t\t\t\t$("#dData", "#"+dtbl+"_2").removeClass(\'ui-state-active\');\r\n
-\t\t\t\t\t\t\t\tif(ret[0]) {$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}\r\n
+\t\t\t\t\t\t\t\tif(ret[0]) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}\r\n
 \t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\r\n
+\t
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="6" aka="AAAAAAAAAAY=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\r\n
 \r\n
 \r\n
 \t\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\r\n
@@ -8457,7 +8670,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\tret[0] = false;\r\n
 \t\t\t\t\t\t\t\t\tret[1] = dpret[1] || "Error deleting the selected row!" ;\r\n
 \t\t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\telse {$.ajax(ajaxOptions);}\r\n
@@ -8470,16 +8683,16 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#eData", "#"+dtbl+"_2").click(function(e){\r\n
-\t\t\t\t\t$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
+\t\t\t\t$("#eData", "#"+dtbl+"_2").click(function(){\r\n
+\t\t\t\t\t$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
-\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm($("#"+dtbl));}\r\n
-\t\t\t\t$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\r\n
-\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm($("#"+dtbl));}\r\n
+\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl));}\r\n
+\t\t\t\t$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\r\n
+\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$("#"+dtbl));}\r\n
 \t\t\t}\r\n
 \t\t\tif(rp_ge[$t.p.id].closeOnEscape===true) {\r\n
-\t\t\t\tsetTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);\r\n
+\t\t\t\tsetTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).focus();},0);\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t},\r\n
@@ -8514,7 +8727,7 @@ $.jgrid.extend({\r\n
 \t\t\tvar alertIDs = {themodal:\'alertmod\',modalhead:\'alerthd\',modalcontent:\'alertcnt\'},\r\n
 \t\t\t$t = this, twd, tdw;\r\n
 \t\t\tif(!$t.grid || typeof elem != \'string\') {return;}\r\n
-\t\t\tif ($("#"+alertIDs.themodal).html() === null) {\r\n
+\t\t\tif ($("#"+alertIDs.themodal)[0] === undefined) {\r\n
 \t\t\t\tif(!o.alerttop && !o.alertleft) {\r\n
 \t\t\t\t\tif (typeof window.innerWidth != \'undefined\') {\r\n
 \t\t\t\t\t\to.alertleft = window.innerWidth;\r\n
@@ -8529,7 +8742,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\to.alertleft = o.alertleft/2 - parseInt(o.alertwidth,10)/2;\r\n
 \t\t\t\t\to.alerttop = o.alerttop/2-25;\r\n
 \t\t\t\t}\r\n
-\t\t\t\t$.jgrid.createModal(alertIDs,"<div>"+o.alerttext+"</div><span tabindex=\'0\'><span tabindex=\'-1\' id=\'jqg_alrt\'></span></span>",{gbox:"#gbox_"+$t.p.id,jqModal:true,drag:true,resize:true,caption:o.alertcap,top:o.alerttop,left:o.alertleft,width:o.alertwidth,height: o.alertheight,closeOnEscape:o.closeOnEscape, zIndex: o.alertzIndex},"","",true);\r\n
+\t\t\t\t$.jgrid.createModal(alertIDs,"<div>"+o.alerttext+"</div><span tabindex=\'0\'><span tabindex=\'-1\' id=\'jqg_alrt\'></span></span>",{gbox:"#gbox_"+$.jgrid.jqID($t.p.id),jqModal:true,drag:true,resize:true,caption:o.alertcap,top:o.alerttop,left:o.alertleft,width:o.alertwidth,height: o.alertheight,closeOnEscape:o.closeOnEscape, zIndex: o.alertzIndex},"","",true);\r\n
 \t\t\t}\r\n
 \t\t\tvar clone = 1;\r\n
 \t\t\tif(o.cloneToTop && $t.p.toppager) {clone = 2;}\r\n
@@ -8560,7 +8773,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t.click(function(){\r\n
 \t\t\t\t\t\tif (!$(this).hasClass(\'ui-state-disabled\')) {\r\n
 \t\t\t\t\t\t\tif ($.isFunction( o.addfunc )) {\r\n
-\t\t\t\t\t\t\t\to.addfunc();\r\n
+\t\t\t\t\t\t\t\to.addfunc.call($t);\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t$($t).jqGrid("editGridRow","new",pAdd);\r\n
 \t\t\t\t\t\t\t}\r\n
@@ -8588,12 +8801,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tvar sr = $t.p.selrow;\r\n
 \t\t\t\t\t\t\tif (sr) {\r\n
 \t\t\t\t\t\t\t\tif($.isFunction( o.editfunc ) ) {\r\n
-\t\t\t\t\t\t\t\t\to.editfunc(sr);\r\n
+\t\t\t\t\t\t\t\t\to.editfunc.call($t, sr);\r\n
 \t\t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t\t$($t).jqGrid("editGridRow",sr,pEdit);\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t$.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});\r\n
+\t\t\t\t\t\t\t\t$.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:true});\r\n
 \t\t\t\t\t\t\t\t$("#jqg_alrt").focus();\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
@@ -8620,12 +8833,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tvar sr = $t.p.selrow;\r\n
 \t\t\t\t\t\t\tif (sr) {\r\n
 \t\t\t\t\t\t\t\tif($.isFunction( o.viewfunc ) ) {\r\n
-\t\t\t\t\t\t\t\t\to.viewfunc(sr);\r\n
+\t\t\t\t\t\t\t\t\to.viewfunc.call($t, sr);\r\n
 \t\t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t\t$($t).jqGrid("viewGridRow",sr,pView);\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t$.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});\r\n
+\t\t\t\t\t\t\t\t$.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:true});\r\n
 \t\t\t\t\t\t\t\t$("#jqg_alrt").focus();\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
@@ -8657,13 +8870,13 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\tdr = $t.p.selrow;\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif(dr){\r\n
-\t\t\t\t\t\t\t\tif("function" == typeof o.delfunc){\r\n
-\t\t\t\t\t\t\t\t\to.delfunc(dr);\r\n
+\t\t\t\t\t\t\t\tif($.isFunction( o.delfunc )){\r\n
+\t\t\t\t\t\t\t\t\to.delfunc.call($t, dr);\r\n
 \t\t\t\t\t\t\t\t}else{\r\n
 \t\t\t\t\t\t\t\t\t$($t).jqGrid("delGridRow",dr,pDel);\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t} else  {\r\n
-\t\t\t\t\t\t\t\t$.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});$("#jqg_alrt").focus();\r\n
+\t\t\t\t\t\t\t\t$.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:true});$("#jqg_alrt").focus();\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\treturn false;\r\n
@@ -8687,7 +8900,11 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})\r\n
 \t\t\t\t\t.click(function(){\r\n
 \t\t\t\t\t\tif (!$(this).hasClass(\'ui-state-disabled\')) {\r\n
-\t\t\t\t\t\t\t$($t).jqGrid("searchGrid",pSearch);\r\n
+\t\t\t\t\t\t\tif($.isFunction( o.searchfunc )) {\r\n
+\t\t\t\t\t\t\t\to.searchfunc.call($t, pSearch);\r\n
+\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t$($t).jqGrid("searchGrid",pSearch);\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t}).hover(\r\n
@@ -8711,23 +8928,23 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})\r\n
 \t\t\t\t\t.click(function(){\r\n
 \t\t\t\t\t\tif (!$(this).hasClass(\'ui-state-disabled\')) {\r\n
-\t\t\t\t\t\t\tif($.isFunction(o.beforeRefresh)) {o.beforeRefresh();}\r\n
+\t\t\t\t\t\t\tif($.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}\r\n
 \t\t\t\t\t\t\t$t.p.search = false;\r\n
 \t\t\t\t\t\t\ttry {\r\n
 \t\t\t\t\t\t\t\tvar gID = $t.p.id;\r\n
 \t\t\t\t\t\t\t\t$t.p.postData.filters ="";\r\n
-\t\t\t\t\t\t\t\t$("#fbox_"+gID).jqFilter(\'resetFilter\');\r\n
-\t\t\t\t\t\t\t    if($.isFunction($t.clearToolbar)) {$t.clearToolbar(false);}\r\n
+\t\t\t\t\t\t\t\t$("#fbox_"+$.jgrid.jqID(gID)).jqFilter(\'resetFilter\');\r\n
+\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\r\n
 \t\t\t\t\t\t\t} catch (e) {}\r\n
 \t\t\t\t\t\t\tswitch (o.refreshstate) {\r\n
 \t\t\t\t\t\t\t\tcase \'firstpage\':\r\n
-\t\t\t\t\t\t\t\t    $($t).trigger("reloadGrid", [{page:1}]);\r\n
+\t\t\t\t\t\t\t\t\t$($t).trigger("reloadGrid", [{page:1}]);\r\n
 \t\t\t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t\t\t\tcase \'current\':\r\n
-\t\t\t\t\t\t\t\t    $($t).trigger("reloadGrid", [{current:true}]);\r\n
+\t\t\t\t\t\t\t\t\t$($t).trigger("reloadGrid", [{current:true}]);\r\n
 \t\t\t\t\t\t\t\t\tbreak;\r\n
 \t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\tif($.isFunction(o.afterRefresh)) {o.afterRefresh();}\r\n
+\t\t\t\t\t\t\tif($.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t}).hover(\r\n
@@ -8768,10 +8985,10 @@ $.jgrid.extend({\r\n
 \t\t}, p ||{});\r\n
 \t\treturn this.each(function() {\r\n
 \t\t\tif( !this.grid)  {return;}\r\n
-\t\t\tif( elem.indexOf("#") !== 0) {elem = "#"+elem;}\r\n
+\t\t\tif( typeof elem === "string" && elem.indexOf("#") !== 0) {elem = "#"+$.jgrid.jqID(elem);}\r\n
 \t\t\tvar findnav = $(".navtable",elem)[0], $t = this;\r\n
 \t\t\tif (findnav) {\r\n
-\t\t\t\tif( p.id && $("#"+p.id, findnav).html() !== null )  {return;}\r\n
+\t\t\t\tif( p.id && $("#"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}\r\n
 \t\t\t\tvar tbd = $("<td></td>");\r\n
 \t\t\t\tif(p.buttonicon.toString().toUpperCase() == "NONE") {\r\n
                     $(tbd).addClass(\'ui-pg-button ui-corner-all\').append("<div class=\'ui-pg-div\'>"+p.caption+"</div>");\r\n
@@ -8814,7 +9031,7 @@ $.jgrid.extend({\r\n
 \t\t}, p ||{});\r\n
 \t\treturn this.each(function() {\r\n
 \t\t\tif( !this.grid)  {return;}\r\n
-\t\t\tif( elem.indexOf("#") !== 0) {elem = "#"+elem;}\r\n
+\t\t\tif( typeof elem === "string" && elem.indexOf("#") !== 0) {elem = "#"+$.jgrid.jqID(elem);}\r\n
 \t\t\tvar findnav = $(".navtable",elem)[0];\r\n
 \t\t\tif(findnav) {\r\n
 \t\t\t\tvar sep = "<td class=\'ui-pg-button ui-state-disabled\' style=\'width:4px;\'><span class=\'"+p.sepclass+"\'></span>"+p.sepcontent+"</td>";\r\n
@@ -8881,7 +9098,7 @@ $.jgrid.extend({\r\n
 \t\t// Compatible mode old versions\r\n
 \t\tvar o={}, args = $.makeArray(arguments).slice(1);\r\n
 \r\n
-\t\tif( $.jgrid.realType(args[0]) === "Object" ) {\r\n
+\t\tif( $.type(args[0]) === "object" ) {\r\n
 \t\t\to = args[0];\r\n
 \t\t} else {\r\n
 \t\t\tif (typeof keys !== "undefined") { o.keys = keys; }\r\n
@@ -8924,7 +9141,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tif(treeg) { tmp = $("span:first",this).html();}\r\n
 \t\t\t\t\telse {\r\n
 \t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\ttmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);\r\n
+\t\t\t\t\t\t\ttmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);\r\n
 \t\t\t\t\t\t} catch (_) {\r\n
 \t\t\t\t\t\t\ttmp =  ( cm[i].edittype && cm[i].edittype == \'textarea\' ) ? $(this).text() : $(this).html();\r\n
 \t\t\t\t\t\t}\r\n
@@ -8939,7 +9156,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tvar opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm});\r\n
 \t\t\t\t\t\t\tif(!cm[i].edittype) { cm[i].edittype = "text"; }\r\n
 \t\t\t\t\t\t\tif(tmp == "&nbsp;" || tmp == "&#160;" || (tmp.length==1 && tmp.charCodeAt(0)==160) ) {tmp=\'\';}\r\n
-\t\t\t\t\t\t\tvar elc = $.jgrid.createEl(cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\r\n
+\t\t\t\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\r\n
 \t\t\t\t\t\t\t$(elc).addClass("editable");\r\n
 \t\t\t\t\t\t\tif(treeg) { $("span:first",this).append(elc); }\r\n
 \t\t\t\t\t\t\telse { $(this).append(elc); }\r\n
@@ -8958,17 +9175,29 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tif(o.keys===true) {\r\n
 \t\t\t\t\t\t$(ind).bind("keydown",function(e) {\r\n
 \t\t\t\t\t\t\tif (e.keyCode === 27) {\r\n
-\t\t\t\t\t\t\t\t$($t).jqGrid("restoreRow",rowid, afterrestorefunc);\r\n
+\t\t\t\t\t\t\t\t$($t).jqGrid("restoreRow",rowid, o.afterrestorefunc);\r\n
+\t\t\t\t\t\t\t\tif($t.p._inlinenav) {\r\n
+\t\t\t\t\t\t\t\t\ttry {\r\n
+\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\'showAddEditButtons\');\r\n
+\t\t\t\t\t\t\t\t\t} catch (eer1) {}\r\n
+\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif (e.keyCode === 13) {\r\n
 \t\t\t\t\t\t\t\tvar ta = e.target;\r\n
 \t\t\t\t\t\t\t\tif(ta.tagName == \'TEXTAREA\') { return true; }\r\n
-\t\t\t\t\t\t\t\t$($t).jqGrid("saveRow", rowid, o );\r\n
+\t\t\t\t\t\t\t\tif( $($t).jqGrid("saveRow", rowid, o ) ) {\r\n
+\t\t\t\t\t\t\t\t\tif($t.p._inlinenav) {\r\n
+\t\t\t\t\t\t\t\t\t\ttry {\r\n
+\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\'showAddEditButtons\');\r\n
+\t\t\t\t\t\t\t\t\t\t} catch (eer2) {}\r\n
+\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t});\r\n
 \t\t\t\t\t}\r\n
+\t\t\t\t\t$($t).triggerHandler("jqGridInlineEditRow", [rowid, o]);\r\n
 \t\t\t\t\tif( $.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
@@ -8978,7 +9207,7 @@ $.jgrid.extend({\r\n
 \t\t// Compatible mode old versions\r\n
 \t\tvar args = $.makeArray(arguments).slice(1), o = {};\r\n
 \r\n
-\t\tif( $.jgrid.realType(args[0]) === "Object" ) {\r\n
+\t\tif( $.type(args[0]) === "object" ) {\r\n
 \t\t\to = args[0];\r\n
 \t\t} else {\r\n
 \t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\r\n
@@ -9102,11 +9331,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tif( $t.p.savedRow[k].id == rowid) {fr = k; break;}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\r\n
-\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid,resp); }\r\n
+\t\t\t\t$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);\r\n
+\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid,resp, o); }\r\n
 \t\t\t\tsuccess = true;\r\n
 \t\t\t\t$(ind).unbind("keydown");\r\n
 \t\t\t} else {\r\n
-\t\t\t\t$("#lui_"+$t.p.id).show();\r\n
+\t\t\t\t$("#lui_"+$.jgrid.jqID($t.p.id)).show();\r\n
 \t\t\t\ttmp3 = $.extend({},tmp,tmp3);\r\n
 \t\t\t\ttmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);\r\n
 \t\t\t\t$.ajax($.extend({\r\n
@@ -9115,18 +9345,18 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ttype: o.mtype,\r\n
 \t\t\t\t\tasync : false, //?!?\r\n
 \t\t\t\t\tcomplete: function(res,stat){\r\n
-\t\t\t\t\t\t$("#lui_"+$t.p.id).hide();\r\n
+\t\t\t\t\t\t$("#lui_"+$.jgrid.jqID($t.p.id)).hide();\r\n
 \t\t\t\t\t\tif (stat === "success"){\r\n
 \t\t\t\t\t\t\tvar ret = true, sucret;\r\n
-\t\t\t\t\t\t\tif( $.isFunction(o.successfunc)) { \r\n
-\t\t\t\t\t\t\t\tsucret = o.successfunc.call($t, res);\r\n
-\t\t\t\t\t\t\t\tif($.isArray(sucret)) {\r\n
-\t\t\t\t\t\t\t\t\t// expect array - status, data, rowid\r\n
-\t\t\t\t\t\t\t\t\tret = sucret[0];\r\n
-\t\t\t\t\t\t\t\t\ttmp = sucret[1] ? sucret[1] : tmp;\r\n
-\t\t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t\tret = sucret;\r\n
-\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\tsucret = $($t).triggerHandler("jqGridInlineSuccessSaveRow", [res, rowid, o]);\r\n
+\t\t\t\t\t\t\tif (!$.isArray(sucret)) {sucret = [true, tmp];}\r\n
+\t\t\t\t\t\t\tif (sucret[0] && $.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}\t\t\t\t\t\t\t\r\n
+\t\t\t\t\t\t\tif($.isArray(sucret)) {\r\n
+\t\t\t\t\t\t\t\t// expect array - status, data, rowid\r\n
+\t\t\t\t\t\t\t\tret = sucret[0];\r\n
+\t\t\t\t\t\t\t\ttmp = sucret[1] ? sucret[1] : tmp;\r\n
+\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\tret = sucret;\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif (ret===true) {\r\n
 \t\t\t\t\t\t\t\tif($t.p.autoencode) {\r\n
@@ -9141,12 +9371,14 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\tif( $t.p.savedRow[k].id == rowid) {fr = k; break;}\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\r\n
+\t\t\t\t\t\t\t\t$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, res, tmp, o]);\r\n
 \t\t\t\t\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid,res); }\r\n
 \t\t\t\t\t\t\t\tsuccess = true;\r\n
 \t\t\t\t\t\t\t\t$(ind).unbind("keydown");\r\n
 \t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t$($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, null, o]);\r\n
 \t\t\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\r\n
-\t\t\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat);\r\n
+\t\t\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, null);\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\tif(o.restoreAfterError === true) {\r\n
 \t\t\t\t\t\t\t\t\t$($t).jqGrid("restoreRow",rowid, o.afterrestorefunc);\r\n
@@ -9154,15 +9386,17 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t},\r\n
-\t\t\t\t\terror:function(res,stat){\r\n
-\t\t\t\t\t\t$("#lui_"+$t.p.id).hide();\r\n
+\t\t\t\t\terror:function(res,stat,err){\r\n
+\t\t\t\t\t\t$("#lui_"+$.jgrid.jqID($t.p.id)).hide();\r\n
+\t\t\t\t\t\t$($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, err, o]);\r\n
 \t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\r\n
-\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat);\r\n
+\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, err);\r\n
 \t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\tvar rT = res.responseText || res.statusText;\r\n
 \t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t$.jgrid.info_dialog($.jgrid.errors.errcap,\'<div class="ui-state-error">\'+ res.responseText +\'</div>\', $.jgrid.edit.bClose,{buttonalign:\'right\'});\r\n
+\t\t\t\t\t\t\t\t$.jgrid.info_dialog($.jgrid.errors.errcap,\'<div class="ui-state-error">\'+ rT +\'</div>\', $.jgrid.edit.bClose,{buttonalign:\'right\'});\r\n
 \t\t\t\t\t\t\t} catch(e) {\r\n
-\t\t\t\t\t\t\t\talert(res.responseText);\r\n
+\t\t\t\t\t\t\t\talert(rT);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(o.restoreAfterError === true) {\r\n
@@ -9178,7 +9412,7 @@ $.jgrid.extend({\r\n
 \t\t// Compatible mode old versions\r\n
 \t\tvar args = $.makeArray(arguments).slice(1), o={};\r\n
 \r\n
-\t\tif( $.jgrid.realType(args[0]) === "Object" ) {\r\n
+\t\tif( $.type(args[0]) === "object" ) {\r\n
 \t\t\to = args[0];\r\n
 \t\t} else {\r\n
 \t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\r\n
@@ -9201,8 +9435,8 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t$("input.hasDatepicker","#"+$.jgrid.jqID(ind.id)).datepicker(\'hide\');\r\n
 \t\t\t\t\t} catch (e) {}\r\n
 \t\t\t\t}\r\n
-\t\t\t\t$.each($t.p.colModel, function(i,n){\r\n
-\t\t\t\t\tif(this.editable === true && this.name in $t.p.savedRow[fr] && !$(this).hasClass(\'not-editable-cell\')) {\r\n
+\t\t\t\t$.each($t.p.colModel, function(){\r\n
+\t\t\t\t\tif(this.editable === true && this.name in $t.p.savedRow[fr] ) {\r\n
 \t\t\t\t\t\tares[this.name] = $t.p.savedRow[fr][this.name];\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
@@ -9213,6 +9447,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tsetTimeout(function(){$($t).jqGrid("delRowData",rowid);},0);\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
+\t\t\t$($t).triggerHandler("jqGridInlineAfterRestoreRow", [rowid]);\r\n
 \t\t\tif ($.isFunction(o.afterrestorefunc))\r\n
 \t\t\t{\r\n
 \t\t\t\to.afterrestorefunc.call($t, rowid);\r\n
@@ -9232,7 +9467,7 @@ $.jgrid.extend({\r\n
 \t\t\tif (!this.grid ) { return; }\r\n
 \t\t\tvar $t = this;\r\n
 \t\t\tif(p.useDefValues === true) {\r\n
-\t\t\t\t$($t.p.colModel).each(function(i){\r\n
+\t\t\t\t$($t.p.colModel).each(function(){\r\n
 \t\t\t\t\tif( this.editoptions && this.editoptions.defaultValue ) {\r\n
 \t\t\t\t\t\tvar opt = this.editoptions.defaultValue,\r\n
 \t\t\t\t\t\ttmp = $.isFunction(opt) ? opt.call($t) : opt;\r\n
@@ -9241,6 +9476,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t});\r\n
 \t\t\t}\r\n
 \t\t\t$($t).jqGrid(\'addRowData\', p.rowID, p.initdata, p.position);\r\n
+\t\t\tp.rowID = $t.p.idPrefix + p.rowID;\r\n
 \t\t\t$("#"+$.jgrid.jqID(p.rowID), "#"+$.jgrid.jqID($t.p.id)).addClass("jqgrid-new-row");\r\n
 \t\t\tif(p.useFormatter) {\r\n
 \t\t\t\t$("#"+$.jgrid.jqID(p.rowID)+" .ui-inline-edit", "#"+$.jgrid.jqID($t.p.id)).click();\r\n
@@ -9263,12 +9499,14 @@ $.jgrid.extend({\r\n
 \t\t\tsaveicon:"ui-icon-disk",\r\n
 \t\t\tcancel: true,\r\n
 \t\t\tcancelicon:"ui-icon-cancel",\r\n
-\t\t\taddParams : {useFormatter : false},\r\n
-\t\t\teditParams : {}\r\n
+\t\t\taddParams : {useFormatter : false,rowID : "new_row"},\r\n
+\t\t\teditParams : {},\r\n
+\t\t\trestoreAfterSelect : true\r\n
 \t\t}, $.jgrid.nav, o ||{});\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tif (!this.grid ) { return; }\r\n
-\t\t\tvar $t = this;\r\n
+\t\t\tvar $t = this, onSelect, gID = $.jgrid.jqID($t.p.id);\r\n
+\t\t\t$t.p._inlinenav = true;\r\n
 \t\t\t// detect the formatactions column\r\n
 \t\t\tif(o.addParams.useFormatter === true) {\r\n
 \t\t\t\tvar cm = $t.p.colModel,i;\r\n
@@ -9307,13 +9545,13 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ttitle : o.addtitle,\r\n
 \t\t\t\t\tbuttonicon : o.addicon,\r\n
 \t\t\t\t\tid : $t.p.id+"_iladd",\r\n
-\t\t\t\t\tonClickButton : function ( e ) {\r\n
+\t\t\t\t\tonClickButton : function () {\r\n
 \t\t\t\t\t\t$($t).jqGrid(\'addRow\', o.addParams);\r\n
 \t\t\t\t\t\tif(!o.addParams.useFormatter) {\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilsave").removeClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilcancel").removeClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_iladd").addClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_iledit").addClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_ilsave").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_ilcancel").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_iladd").addClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_iledit").addClass(\'ui-state-disabled\');\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
@@ -9324,16 +9562,16 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ttitle : o.edittitle,\r\n
 \t\t\t\t\tbuttonicon : o.editicon,\r\n
 \t\t\t\t\tid : $t.p.id+"_iledit",\r\n
-\t\t\t\t\tonClickButton : function ( e ) {\r\n
+\t\t\t\t\tonClickButton : function () {\r\n
 \t\t\t\t\t\tvar sr = $($t).jqGrid(\'getGridParam\',\'selrow\');\r\n
 \t\t\t\t\t\tif(sr) {\r\n
 \t\t\t\t\t\t\t$($t).jqGrid(\'editRow\', sr, o.editParams);\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilsave").removeClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilcancel").removeClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_iladd").addClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_iledit").addClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_ilsave").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_ilcancel").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_iladd").addClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$("#"+gID+"_iledit").addClass(\'ui-state-disabled\');\r\n
 \t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+$t.p.id,jqm:true});$("#jqg_alrt").focus();\t\t\t\t\t\t\t\r\n
+\t\t\t\t\t\t\t$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();\t\t\t\t\t\t\t\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
@@ -9344,29 +9582,28 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ttitle : o.savetitle || \'Save row\',\r\n
 \t\t\t\t\tbuttonicon : o.saveicon,\r\n
 \t\t\t\t\tid : $t.p.id+"_ilsave",\r\n
-\t\t\t\t\tonClickButton : function ( e ) {\r\n
+\t\t\t\t\tonClickButton : function () {\r\n
 \t\t\t\t\t\tvar sr = $t.p.savedRow[0].id;\r\n
 \t\t\t\t\t\tif(sr) {\r\n
-\t\t\t\t\t\t\tif($("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID($t.p.id) ).hasClass("jqgrid-new-row")) {\r\n
-\t\t\t\t\t\t\t\tvar opers = $t.p.prmNames,\r\n
-\t\t\t\t\t\t\t\toper = opers.oper;\r\n
-\t\t\t\t\t\t\t\tif(!o.editParams.extraparam) {\r\n
-\t\t\t\t\t\t\t\t\to.editParams.extraparam = {};\r\n
-\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\tvar opers = $t.p.prmNames,\r\n
+\t\t\t\t\t\t\toper = opers.oper;\r\n
+\t\t\t\t\t\t\tif(!o.editParams.extraparam) {\r\n
+\t\t\t\t\t\t\t\to.editParams.extraparam = {};\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\tif($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) {\r\n
 \t\t\t\t\t\t\t\to.editParams.extraparam[oper] = opers.addoper;\r\n
+\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\to.editParams.extraparam[oper] = opers.editoper;\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif( $($t).jqGrid(\'saveRow\', sr, o.editParams) ) {\r\n
-\t\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilsave").addClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilcancel").addClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t\t$("#"+$t.p.id+"_iladd").removeClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t\t$("#"+$t.p.id+"_iledit").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t\t$($t).jqGrid(\'showAddEditButtons\');\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+$t.p.id,jqm:true});$("#jqg_alrt").focus();\t\t\t\t\t\t\t\r\n
+\t\t\t\t\t\t\t$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();\t\t\t\t\t\t\t\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#"+$t.p.id+"_ilsave").addClass(\'ui-state-disabled\');\r\n
+\t\t\t\t$("#"+gID+"_ilsave").addClass(\'ui-state-disabled\');\r\n
 \t\t\t}\r\n
 \t\t\tif(o.cancel) {\r\n
 \t\t\t\t$($t).jqGrid(\'navButtonAdd\', elem,{\r\n
@@ -9374,21 +9611,51 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ttitle : o.canceltitle || \'Cancel row editing\',\r\n
 \t\t\t\t\tbuttonicon : o.cancelicon,\r\n
 \t\t\t\t\tid : $t.p.id+"_ilcancel",\r\n
-\t\t\t\t\tonClickButton : function ( e ) {\r\n
+\t\t\t\t\tonClickButton : function () {\r\n
 \t\t\t\t\t\tvar sr = $t.p.savedRow[0].id;\r\n
 \t\t\t\t\t\tif(sr) {\r\n
 \t\t\t\t\t\t\t$($t).jqGrid(\'restoreRow\', sr, o.editParams);\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilsave").addClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_ilcancel").addClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_iladd").removeClass(\'ui-state-disabled\');\r\n
-\t\t\t\t\t\t\t$("#"+$t.p.id+"_iledit").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t\t\t\t\t$($t).jqGrid(\'showAddEditButtons\');\r\n
 \t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+$t.p.id,jqm:true});$("#jqg_alrt").focus();\t\t\t\t\t\t\t\r\n
+\t\t\t\t\t\t\t$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();\t\t\t\t\t\t\t\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t});\r\n
-\t\t\t\t$("#"+$t.p.id+"_ilcancel").addClass(\'ui-state-disabled\');\r\n
+\t\t\t\t$("#"+gID+"_ilcancel").addClass(\'ui-state-disabled\');\r\n
+\t\t\t}\r\n
+\t\t\tif(o.restoreAfterSelect === true) {\r\n
+\t\t\t\tif($.isFunction($t.p.beforeSelectRow)) {\r\n
+\t\t\t\t\tonSelect = $t.p.beforeSelectRow;\r\n
+\t\t\t\t} else {\r\n
+\t\t\t\t\tonSelect =  false;\r\n
+\t\t\t\t}\r\n
+\t\t\t\t$t.p.beforeSelectRow = function(id, stat) {\r\n
+\t\t\t\t\tvar ret = true;\r\n
+\t\t\t\t\tif($t.p.savedRow.length > 0 && $t.p._inlinenav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {\r\n
+\t\t\t\t\t\tif($t.p.selrow == o.addParams.rowID ) {\r\n
+\t\t\t\t\t\t\t$($t).jqGrid(\'delRowData\', $t.p.selrow);\r\n
+\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t$($t).jqGrid(\'restoreRow\', $t.p.selrow, o.editParams);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t$($t).jqGrid(\'showAddEditButtons\');\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tif(onSelect) {\r\n
+\t\t\t\t\t\tret = onSelect.call($t, id, stat);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\treturn ret;\r\n
+\t\t\t\t};\r\n
 \t\t\t}\r\n
+\r\n
+\t\t});\r\n
+\t},\r\n
+\tshowAddEditButtons : function()  {\r\n
+\t\treturn this.each(function(){\r\n
+\t\t\tif (!this.grid ) { return; }\r\n
+\t\t\tvar gID = $.jgrid.jqID(this.p.id);\r\n
+\t\t\t$("#"+gID+"_ilsave").addClass(\'ui-state-disabled\');\r\n
+\t\t\t$("#"+gID+"_ilcancel").addClass(\'ui-state-disabled\');\r\n
+\t\t\t$("#"+gID+"_iladd").removeClass(\'ui-state-disabled\');\r\n
+\t\t\t$("#"+gID+"_iledit").removeClass(\'ui-state-disabled\');\r\n
 \t\t});\r\n
 \t}\r\n
 //end inline edit\r\n
@@ -9423,6 +9690,7 @@ $.jgrid.extend({\r\n
  * cellurl\r\n
  * ajaxCellOptions\r\n
 * */\r\n
+"use strict";\r\n
 $.jgrid.extend({\r\n
 \teditCell : function (iRow,iCol, ed){\r\n
 \t\treturn this.each(function (){\r\n
@@ -9443,7 +9711,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t// save the cell\r\n
 \t\t\t\t$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);\r\n
 \t\t\t} else {\r\n
-\t\t\t\twindow.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);\r\n
+\t\t\t\twindow.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();},0);\r\n
 \t\t\t}\r\n
 \t\t\tcm = $t.p.colModel[iCol];\r\n
 \t\t\tnm = cm.name;\r\n
@@ -9457,26 +9725,27 @@ $.jgrid.extend({\r\n
 \t\t\t\t$(cc).addClass("edit-cell ui-state-highlight");\r\n
 \t\t\t\t$($t.rows[iRow]).addClass("selected-row ui-state-hover");\r\n
 \t\t\t\ttry {\r\n
-\t\t\t\t\ttmp =  $.unformat(cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);\r\n
+\t\t\t\t\ttmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);\r\n
 \t\t\t\t} catch (_) {\r\n
 \t\t\t\t\ttmp = ( cm.edittype && cm.edittype == \'textarea\' ) ? $(cc).text() : $(cc).html();\r\n
 \t\t\t\t}\r\n
 \t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\r\n
 \t\t\t\tif (!cm.edittype) {cm.edittype = "text";}\r\n
 \t\t\t\t$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});\r\n
-\t\t\t\tif(tmp == "&nbsp;" || tmp == "&#160;" || (tmp.length==1 && tmp.charCodeAt(0)==160) ) {tmp=\'\';}\r\n
+\t\t\t\tif(tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp=\'\';}\r\n
 \t\t\t\tif($.isFunction($t.p.formatCell)) {\r\n
 \t\t\t\t\tvar tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\r\n
 \t\t\t\t\tif(tmp2 !== undefined ) {tmp = tmp2;}\r\n
 \t\t\t\t}\r\n
 \t\t\t\tvar opt = $.extend({}, cm.editoptions || {} ,{id:iRow+"_"+nm,name:nm});\r\n
-\t\t\t\tvar elc = $.jgrid.createEl(cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\r\n
+\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\r\n
+\t\t\t\t$($t).triggerHandler("jqGridBeforeEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\r\n
 \t\t\t\tif ($.isFunction($t.p.beforeEditCell)) {\r\n
 \t\t\t\t\t$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\r\n
 \t\t\t\t}\r\n
 \t\t\t\t$(cc).html("").append(elc).attr("tabindex","0");\r\n
 \t\t\t\twindow.setTimeout(function () { $(elc).focus();},0);\r\n
-\t\t\t\t$("input, select, textarea",cc).bind("keydown",function(e) { \r\n
+\t\t\t\t$("input, select, textarea",cc).bind("keydown",function(e) {\r\n
 \t\t\t\t\tif (e.keyCode === 27) {\r\n
 \t\t\t\t\t\tif($("input.hasDatepicker",cc).length >0) {\r\n
 \t\t\t\t\t\t\tif( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }\r\n
@@ -9485,8 +9754,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t$($t).jqGrid("restoreCell",iRow,iCol);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t} //ESC\r\n
-\t\t\t\t\tif (e.keyCode === 13) {$($t).jqGrid("saveCell",iRow,iCol);}//Enter\r\n
-\t\t\t\t\tif (e.keyCode == 9)  {\r\n
+\t\t\t\t\tif (e.keyCode === 13) {\r\n
+\t\t\t\t\t\t$($t).jqGrid("saveCell",iRow,iCol);\r\n
+\t\t\t\t\t\t// Prevent default action\r\n
+\t\t\t\t\t\treturn false;\r\n
+\t\t\t\t\t} //Enter\r\n
+\t\t\t\t\tif (e.keyCode === 9)  {\r\n
 \t\t\t\t\t\tif(!$t.grid.hDiv.loading ) {\r\n
 \t\t\t\t\t\t\tif (e.shiftKey) {$($t).jqGrid("prevCell",iRow,iCol);} //Shift TAb\r\n
 \t\t\t\t\t\t\telse {$($t).jqGrid("nextCell",iRow,iCol);} //Tab\r\n
@@ -9496,6 +9769,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\te.stopPropagation();\r\n
 \t\t\t\t});\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAfterEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\r\n
 \t\t\t\tif ($.isFunction($t.p.afterEditCell)) {\r\n
 \t\t\t\t\t$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\r\n
 \t\t\t\t}\r\n
@@ -9505,9 +9779,10 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");\r\n
 \t\t\t\t}\r\n
 \t\t\t\tcc.addClass("edit-cell ui-state-highlight");\r\n
-\t\t\t\t$($t.rows[iRow]).addClass("selected-row ui-state-hover"); \r\n
+\t\t\t\t$($t.rows[iRow]).addClass("selected-row ui-state-hover");\r\n
+\t\t\t\ttmp = cc.html().replace(/\\&#160\\;/ig,\'\');\r\n
+\t\t\t\t$($t).triggerHandler("jqGridSelectCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\r\n
 \t\t\t\tif ($.isFunction($t.p.onSelectCell)) {\r\n
-\t\t\t\t\ttmp = cc.html().replace(/\\&#160\\;/ig,\'\');\r\n
 \t\t\t\t\t$t.p.onSelectCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
@@ -9525,8 +9800,8 @@ $.jgrid.extend({\r\n
 \t\t\t\tswitch (cm.edittype) {\r\n
 \t\t\t\t\tcase "select":\r\n
 \t\t\t\t\t\tif(!cm.editoptions.multiple) {\r\n
-\t\t\t\t\t\t\tv = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).val();\r\n
-\t\t\t\t\t\t\tv2 = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).text();\r\n
+\t\t\t\t\t\t\tv = $("#"+iRow+"_"+nmjq+" option:selected",$t.rows[iRow]).val();\r\n
+\t\t\t\t\t\t\tv2 = $("#"+iRow+"_"+nmjq+" option:selected",$t.rows[iRow]).text();\r\n
 \t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\tvar sel = $("#"+iRow+"_"+nmjq,$t.rows[iRow]), selectedText = [];\r\n
 \t\t\t\t\t\t\tv = $(sel).val();\r\n
@@ -9570,13 +9845,15 @@ $.jgrid.extend({\r\n
 \t\t\t\t}\r\n
 \t\t\t\t// The common approach is if nothing changed do not do anything\r\n
 \t\t\t\tif (v2 !== $t.p.savedRow[fr].v){\r\n
+\t\t\t\t\tvar vvv = $($t).triggerHandler("jqGridBeforeSaveCell", [$t.rows[iRow].id, nm, v, iRow, iCol]);\r\n
+\t\t\t\t\tif (vvv) {v = vvv; v2=vvv;}\r\n
 \t\t\t\t\tif ($.isFunction($t.p.beforeSaveCell)) {\r\n
 \t\t\t\t\t\tvar vv = $t.p.beforeSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\r\n
 \t\t\t\t\t\tif (vv) {v = vv; v2=vv;}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tvar cv = $.jgrid.checkValues(v,iCol,$t);\r\n
 \t\t\t\t\tif(cv[0] === true) {\r\n
-\t\t\t\t\t\tvar addpost = {};\r\n
+\t\t\t\t\t\tvar addpost = $($t).triggerHandler("jqGridBeforeSubmitCell", [$t.rows[iRow].id, nm, v, iRow, iCol]) || {};\r\n
 \t\t\t\t\t\tif ($.isFunction($t.p.beforeSubmitCell)) {\r\n
 \t\t\t\t\t\t\taddpost = $t.p.beforeSubmitCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\r\n
 \t\t\t\t\t\t\tif (!addpost) {addpost={};}\r\n
@@ -9594,7 +9871,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.rows[iRow].id);\r\n
 \t\t\t\t\t\t\t\tpostdata[oper] = opers.editoper;\r\n
 \t\t\t\t\t\t\t\tpostdata = $.extend(addpost,postdata);\r\n
-\t\t\t\t\t\t\t\t$("#lui_"+$t.p.id).show();\r\n
+\t\t\t\t\t\t\t\t$("#lui_"+$.jgrid.jqID($t.p.id)).show();\r\n
 \t\t\t\t\t\t\t\t$t.grid.hDiv.loading = true;\r\n
 \t\t\t\t\t\t\t\t$.ajax( $.extend( {\r\n
 \t\t\t\t\t\t\t\t\turl: $t.p.cellurl,\r\n
@@ -9604,38 +9881,32 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t\t\t$("#lui_"+$t.p.id).hide();\r\n
 \t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\r\n
 \t\t\t\t\t\t\t\t\t\tif (stat == \'success\') {\r\n
-\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSubmitCell)) {\r\n
-\t\t\t\t\t\t\t\t\t\t\t\tvar ret = $t.p.afterSubmitCell.call($t, result,postdata.id,nm,v,iRow,iCol);\r\n
-\t\t\t\t\t\t\t\t\t\t\t\tif(ret[0] === true) {\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$(cc).empty();\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$(cc).addClass("dirty-cell");\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$($t.rows[iRow]).addClass("edited");\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog($.jgrid.errors.errcap,ret[1],$.jgrid.edit.bClose);\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("restoreCell",iRow,iCol);\r\n
-\t\t\t\t\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t\t\t\tvar ret = $($t).triggerHandler("jqGridAfterSubmitCell", [$t, result, postdata.id, nm, v, iRow, iCol]) || [true, \'\'];\r\n
+\t\t\t\t\t\t\t\t\t\t\tif (ret[0] === true && $.isFunction($t.p.afterSubmitCell)) {\r\n
+\t\t\t\t\t\t\t\t\t\t\t\tret = $t.p.afterSubmitCell.call($t, result,postdata.id,nm,v,iRow,iCol);\r\n
+\t\t\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t\t\t\tif(ret[0] === true){\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t$(cc).empty();\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t$(cc).addClass("dirty-cell");\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t$($t.rows[iRow]).addClass("edited");\r\n
+\t\t\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler("jqGridAfterSaveCell", [$t.rows[iRow].id, nm, v, iRow, iCol]);\r\n
 \t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\r\n
+\t\t\t\t\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog($.jgrid.errors.errcap,ret[1],$.jgrid.edit.bClose);\r\n
+\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("restoreCell",iRow,iCol);\r\n
 \t\t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t},\r\n
-\t\t\t\t\t\t\t\t\terror:function(res,stat) {\r\n
-\t\t\t\t\t\t\t\t\t\t$("#lui_"+$t.p.id).hide();\r\n
+\t\t\t\t\t\t\t\t\terror:function(res,stat,err) {\r\n
+\t\t\t\t\t\t\t\t\t\t$("#lui_"+$.jgrid.jqID($t.p.id)).hide();\r\n
 \t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\r\n
+\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler("jqGridErrorCell", [res, stat, err]);\r\n
 \t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\r\n
-\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, res,stat);\r\n
+\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, res,stat,err);\r\n
 \t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid("restoreCell",iRow,iCol);\r\n
 \t\t\t\t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog($.jgrid.errors.errcap,res.status+" : "+res.statusText+"<br/>"+stat,$.jgrid.edit.bClose);\r\n
@@ -9655,6 +9926,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t$($t).jqGrid("setCell",$t.rows[iRow].id,iCol, v2, false, false, true);\r\n
 \t\t\t\t\t\t\t$(cc).addClass("dirty-cell");\r\n
 \t\t\t\t\t\t\t$($t.rows[iRow]).addClass("edited");\r\n
+\t\t\t\t\t\t\t$($t).triggerHandler("jqGridAfterSaveCell", [$t.rows[iRow].id, nm, v, iRow, iCol]);\r\n
 \t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\r\n
 \t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\r\n
 \t\t\t\t\t\t\t}\r\n
@@ -9671,9 +9943,9 @@ $.jgrid.extend({\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tif ($.browser.opera) {\r\n
-\t\t\t\t$("#"+$t.p.knv).attr("tabindex","-1").focus();\r\n
+\t\t\t\t$("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();\r\n
 \t\t\t} else {\r\n
-\t\t\t\twindow.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);\r\n
+\t\t\t\twindow.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();},0);\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t},\r\n
@@ -9692,6 +9964,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t}\r\n
 \t\t\t\t$(cc).empty().attr("tabindex","-1");\r\n
 \t\t\t\t$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);\r\n
+\t\t\t\t$($t).triggerHandler("jqGridAfterRestoreCell", [$t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol]);\r\n
 \t\t\t\tif ($.isFunction($t.p.afterRestoreCell)) {\r\n
 \t\t\t\t\t$t.p.afterRestoreCell.call($t, $t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol);\r\n
 \t\t\t\t}\t\t\t\t\r\n
@@ -9744,54 +10017,8 @@ $.jgrid.extend({\r\n
 \t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\r\n
 \t\t\t// trick to process keydown on non input elements\r\n
 \t\t\t$t.p.knv = $t.p.id + "_kn";\r\n
-\t\t\tvar selection = $("<span style=\'width:0px;height:0px;background-color:black;\' tabindex=\'0\'><span tabindex=\'-1\' style=\'width:0px;height:0px;background-color:grey\' id=\'"+$t.p.knv+"\'></span></span>"),\r\n
+\t\t\tvar selection = $("<div style=\'position:absolute;top:-1000000px;width:1px;height:1px;\' tabindex=\'0\'><div tabindex=\'-1\' style=\'width:1px;height:1px;\' id=\'"+$t.p.knv+"\'></div></div>"),\r\n
 \t\t\ti, kdir;\r\n
-\t\t\t$(selection).insertBefore($t.grid.cDiv);\r\n
-\t\t\t$("#"+$t.p.knv)\r\n
-\t\t\t.focus()\r\n
-\t\t\t.keydown(function (e){\r\n
-\t\t\t\tkdir = e.keyCode;\r\n
-\t\t\t\tif($t.p.direction == "rtl") {\r\n
-\t\t\t\t\tif(kdir==37) { kdir = 39;}\r\n
-\t\t\t\t\telse if (kdir==39) { kdir = 37; }\r\n
-\t\t\t\t}\r\n
-\t\t\t\tswitch (kdir) {\r\n
-\t\t\t\t\tcase 38:\r\n
-\t\t\t\t\t\tif ($t.p.iRow-1 >0 ) {\r\n
-\t\t\t\t\t\t\tscrollGrid($t.p.iRow-1,$t.p.iCol,\'vu\');\r\n
-\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false);\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\tbreak;\r\n
-\t\t\t\t\tcase 40 :\r\n
-\t\t\t\t\t\tif ($t.p.iRow+1 <=  $t.rows.length-1) {\r\n
-\t\t\t\t\t\t\tscrollGrid($t.p.iRow+1,$t.p.iCol,\'vd\');\r\n
-\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false);\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\tbreak;\r\n
-\t\t\t\t\tcase 37 :\r\n
-\t\t\t\t\t\tif ($t.p.iCol -1 >=  0) {\r\n
-\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol-1,\'lft\');\r\n
-\t\t\t\t\t\t\tscrollGrid($t.p.iRow, i,\'h\');\r\n
-\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow, i,false);\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\tbreak;\r\n
-\t\t\t\t\tcase 39 :\r\n
-\t\t\t\t\t\tif ($t.p.iCol +1 <=  $t.p.colModel.length-1) {\r\n
-\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol+1,\'rgt\');\r\n
-\t\t\t\t\t\t\tscrollGrid($t.p.iRow,i,\'h\');\r\n
-\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow,i,false);\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\tbreak;\r\n
-\t\t\t\t\tcase 13:\r\n
-\t\t\t\t\t\tif (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {\r\n
-\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true);\r\n
-\t\t\t\t\t\t}\r\n
-\t\t\t\t\tbreak;\r\n
-\t\t\t\t\tdefault :\r\n
-\t\t\t\t\t\treturn true;\r\n
-\t\t\t\t}\r\n
-\t\t\t\treturn false;\r\n
-\t\t\t});\r\n
 \t\t\tfunction scrollGrid(iR, iC, tp){\r\n
 \t\t\t\tif (tp.substr(0,1)==\'v\') {\r\n
 \t\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\r\n
@@ -9843,6 +10070,53 @@ $.jgrid.extend({\r\n
 \t\t\t\t}\r\n
 \t\t\t\treturn ind;\r\n
 \t\t\t}\r\n
+\r\n
+\t\t\t$(selection).insertBefore($t.grid.cDiv);\r\n
+\t\t\t$("#"+$t.p.knv)\r\n
+\t\t\t.focus()\r\n
+\t\t\t.keydown(function (e){\r\n
+\t\t\t\tkdir = e.keyCode;\r\n
+\t\t\t\tif($t.p.direction == "rtl") {\r\n
+\t\t\t\t\tif(kdir===37) { kdir = 39;}\r\n
+\t\t\t\t\telse if (kdir===39) { kdir = 37; }\r\n
+\t\t\t\t}\r\n
+\t\t\t\tswitch (kdir) {\r\n
+\t\t\t\t\tcase 38:\r\n
+\t\t\t\t\t\tif ($t.p.iRow-1 >0 ) {\r\n
+\t\t\t\t\t\t\tscrollGrid($t.p.iRow-1,$t.p.iCol,\'vu\');\r\n
+\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\tbreak;\r\n
+\t\t\t\t\tcase 40 :\r\n
+\t\t\t\t\t\tif ($t.p.iRow+1 <=  $t.rows.length-1) {\r\n
+\t\t\t\t\t\t\tscrollGrid($t.p.iRow+1,$t.p.iCol,\'vd\');\r\n
+\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\tbreak;\r\n
+\t\t\t\t\tcase 37 :\r\n
+\t\t\t\t\t\tif ($t.p.iCol -1 >=  0) {\r\n
+\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol-1,\'lft\');\r\n
+\t\t\t\t\t\t\tscrollGrid($t.p.iRow, i,\'h\');\r\n
+\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow, i,false);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\tbreak;\r\n
+\t\t\t\t\tcase 39 :\r\n
+\t\t\t\t\t\tif ($t.p.iCol +1 <=  $t.p.colModel.length-1) {\r\n
+\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol+1,\'rgt\');\r\n
+\t\t\t\t\t\t\tscrollGrid($t.p.iRow,i,\'h\');\r\n
+\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow,i,false);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\tbreak;\r\n
+\t\t\t\t\tcase 13:\r\n
+\t\t\t\t\t\tif (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {\r\n
+\t\t\t\t\t\t\t$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\tbreak;\r\n
+\t\t\t\t\tdefault :\r\n
+\t\t\t\t\t\treturn true;\r\n
+\t\t\t\t}\r\n
+\t\t\t\treturn false;\r\n
+\t\t\t});\r\n
 \t\t});\r\n
 \t},\r\n
 \tgetChangedCells : function (mthd) {\r\n
@@ -9860,14 +10134,14 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\tif (mthd==\'dirty\') {\r\n
 \t\t\t\t\t\t\t\tif ($(this).hasClass(\'dirty-cell\')) {\r\n
 \t\t\t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat(this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);\r\n
+\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);\r\n
 \t\t\t\t\t\t\t\t\t} catch (e){\r\n
 \t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t\tres[nm] = $.unformat(this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);\r\n
+\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);\r\n
 \t\t\t\t\t\t\t\t} catch (e) {\r\n
 \t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\r\n
 \t\t\t\t\t\t\t\t}\r\n
@@ -9893,6 +10167,7 @@ $.jgrid.extend({\r\n
  * http://www.opensource.org/licenses/mit-license.php\r\n
  * http://www.gnu.org/licenses/gpl-2.0.html\r\n
 **/\r\n
+"use strict";\r\n
 $.jgrid.extend({\r\n
 setSubGrid : function () {\r\n
 \treturn this.each(function (){\r\n
@@ -9966,13 +10241,13 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t\t});\r\n
 \t\t\t}\r\n
 \t\t\tvar pID = $("table:first",ts.grid.bDiv).attr("id")+"_";\r\n
-\t\t\t$("#"+pID+sbid).append(dummy);\r\n
+\t\t\t$("#"+$.jgrid.jqID(pID+sbid)).append(dummy);\r\n
 \t\t\tts.grid.hDiv.loading = false;\r\n
-\t\t\t$("#load_"+ts.p.id).hide();\r\n
+\t\t\t$("#load_"+$.jgrid.jqID(ts.p.id)).hide();\r\n
 \t\t\treturn false;\r\n
 \t\t};\r\n
 \t\tvar subGridJson = function(sjxml, sbid){\r\n
-\t\t\tvar tddiv,result , i,cur, sgmap,j,\r\n
+\t\t\tvar tddiv,result,i,cur, sgmap,j,\r\n
 \t\t\tdummy = $("<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\'><tbody></tbody></table>"),\r\n
 \t\t\ttrdiv = $("<tr></tr>");\r\n
 \t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\r\n
@@ -9984,7 +10259,7 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t$(dummy).append(trdiv);\r\n
 \t\t\tif (sjxml){\r\n
 \t\t\t\tsgmap = ts.p.jsonReader.subgrid;\r\n
-\t\t\t\tresult = sjxml[sgmap.root];\r\n
+\t\t\t\tresult = $.jgrid.getAccessor(sjxml, sgmap.root);\r\n
 \t\t\t\tif ( typeof result !== \'undefined\' ) {\r\n
 \t\t\t\t\tfor (i=0;i<result.length;i++) {\r\n
 \t\t\t\t\t\tcur = result[i];\r\n
@@ -10007,9 +10282,9 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\tvar pID = $("table:first",ts.grid.bDiv).attr("id")+"_";\r\n
-\t\t\t$("#"+pID+sbid).append(dummy);\r\n
+\t\t\t$("#"+$.jgrid.jqID(pID+sbid)).append(dummy);\r\n
 \t\t\tts.grid.hDiv.loading = false;\r\n
-\t\t\t$("#load_"+ts.p.id).hide();\r\n
+\t\t\t$("#load_"+$.jgrid.jqID(ts.p.id)).hide();\r\n
 \t\t\treturn false;\r\n
 \t\t};\r\n
 \t\tvar populatesubgrid = function( rd )\r\n
@@ -10022,7 +10297,7 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\tif(ts.p.subGridModel[0].params) {\r\n
 \t\t\t\tfor(j=0; j < ts.p.subGridModel[0].params.length; j++) {\r\n
 \t\t\t\t\tfor(i=0; i<ts.p.colModel.length; i++) {\r\n
-\t\t\t\t\t\tif(ts.p.colModel[i].name == ts.p.subGridModel[0].params[j]) {\r\n
+\t\t\t\t\t\tif(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {\r\n
 \t\t\t\t\t\t\tdp[ts.p.colModel[i].name]= $("td:eq("+i+")",rd).text().replace(/\\&#160\\;/ig,\'\');\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
@@ -10030,31 +10305,8 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t}\r\n
 \t\t\tif(!ts.grid.hDiv.loading) {\r\n
 \t\t\t\tts.grid.hDiv.loading = true;\r\n
-\t\t\t\t$("#load_"+ts.p.id).show();\r\n
-\t\t\t\tif(!ts.p.subgridtype)
-
-]]></string> </value>
-        </item>
-        <item>
-            <key> <string>next</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="7" aka="AAAAAAAAAAc=">
-    <pickle>
-      <global name="Pdata" module="OFS.Image"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
- { ts.p.subgridtype = ts.p.datatype; }\r\n
+\t\t\t\t$("#load_"+$.jgrid.jqID(ts.p.id)).show();\r\n
+\t\t\t\tif(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }\r\n
 \t\t\t\tif($.isFunction(ts.p.subgridtype)) {\r\n
 \t\t\t\t\tts.p.subgridtype.call(ts, dp);\r\n
 \t\t\t\t} else {\r\n
@@ -10069,7 +10321,7 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t\t\t\tdataType:ts.p.subgridtype,\r\n
 \t\t\t\t\t\tdata: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,\r\n
 \t\t\t\t\t\tcomplete: function(sxml) {\r\n
-\t\t\t\t\t\t\tif(ts.p.subgridtype == "xml") {\r\n
+\t\t\t\t\t\t\tif(ts.p.subgridtype === "xml") {\r\n
 \t\t\t\t\t\t\t\tsubGridXml(sxml.responseXML, sid);\r\n
 \t\t\t\t\t\t\t} else {\r\n
 \t\t\t\t\t\t\t\tsubGridJson($.jgrid.parse(sxml.responseText),sid);\r\n
@@ -10083,8 +10335,8 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\treturn false;\r\n
 \t\t};\r\n
 \t\tvar _id, pID,atd, nhc=0, bfsc, r;\r\n
-\t\t$.each(ts.p.colModel,function(i,v){\r\n
-\t\t\tif(this.hidden === true || this.name == \'rn\' || this.name == \'cb\') {\r\n
+\t\t$.each(ts.p.colModel,function(){\r\n
+\t\t\tif(this.hidden === true || this.name === \'rn\' || this.name === \'cb\') {\r\n
 \t\t\t\tnhc++;\r\n
 \t\t\t}\r\n
 \t\t});\r\n
@@ -10095,7 +10347,7 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t}\r\n
 \t\twhile(i < len) {\r\n
 \t\t\tif($(ts.rows[i]).hasClass(\'jqgrow\')) {\r\n
-\t\t\t\t$(ts.rows[i].cells[pos]).bind(\'click\', function(e) {\r\n
+\t\t\t\t$(ts.rows[i].cells[pos]).bind(\'click\', function() {\r\n
 \t\t\t\t\tvar tr = $(this).parent("tr")[0];\r\n
 \t\t\t\t\tr = tr.nextSibling;\r\n
 \t\t\t\t\tif($(this).hasClass("sgcollapsed")) {\r\n
@@ -10103,12 +10355,14 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t\t\t\t_id = tr.id;\r\n
 \t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$(r).hasClass(\'ui-subgrid\') ) ) {\r\n
 \t\t\t\t\t\t\tatd = pos >=1 ? "<td colspan=\'"+pos+"\'>&#160;</td>":"";\r\n
-\t\t\t\t\t\t\tbfsc =true;\r\n
-\t\t\t\t\t\t\tif($.isFunction(ts.p.subGridBeforeExpand)) {\r\n
+\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler("jqGridSubGridBeforeExpand", [pID + "_" + _id, _id]);\r\n
+\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === \'stop\') ? false : true;\r\n
+\t\t\t\t\t\t\tif(bfsc && $.isFunction(ts.p.subGridBeforeExpand)) {\r\n
 \t\t\t\t\t\t\t\tbfsc = ts.p.subGridBeforeExpand.call(ts, pID+"_"+_id,_id);\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\tif(bfsc === false) {return false;}\r\n
-\t\t\t\t\t\t\t\t$(tr).after( "<tr role=\'row\' class=\'ui-subgrid\'>"+atd+"<td class=\'ui-widget-content subgrid-cell\'><span class=\'ui-icon "+ts.p.subGridOptions.openicon+"\'></span></td><td colspan=\'"+parseInt(ts.p.colNames.length-1-nhc,10)+"\' class=\'ui-widget-content subgrid-data\'><div id="+pID+"_"+_id+" class=\'tablediv\'></div></td></tr>" );\r\n
+\t\t\t\t\t\t\t$(tr).after( "<tr role=\'row\' class=\'ui-subgrid\'>"+atd+"<td class=\'ui-widget-content subgrid-cell\'><span class=\'ui-icon "+ts.p.subGridOptions.openicon+"\'></span></td><td colspan=\'"+parseInt(ts.p.colNames.length-1-nhc,10)+"\' class=\'ui-widget-content subgrid-data\'><div id="+pID+"_"+_id+" class=\'tablediv\'></div></td></tr>" );\r\n
+\t\t\t\t\t\t\t$(ts).triggerHandler("jqGridSubGridRowExpanded", [pID + "_" + _id, _id]);\r\n
 \t\t\t\t\t\t\tif( $.isFunction(ts.p.subGridRowExpanded)) {\r\n
 \t\t\t\t\t\t\t\tts.p.subGridRowExpanded.call(ts, pID+"_"+ _id,_id);\r\n
 \t\t\t\t\t\t\t} else {\r\n
@@ -10122,27 +10376,30 @@ addSubGrid : function( pos, sind ) {\r\n
 \t\t\t\t\t\t\t$(ts).jqGrid(\'setSelection\',_id);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t} else if($(this).hasClass("sgexpanded")) {\r\n
-\t\t\t\t\t\tbfsc = true;\r\n
-\t\t\t\t\t\tif( $.isFunction(ts.p.subGridRowColapsed)) {\r\n
+\t\t\t\t\t\tbfsc = $(ts).triggerHandler("jqGridSubGridRowColapsed", [pID + "_" + _id, _id]);\r\n
+\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === \'stop\') ? false : true;\r\n
+\t\t\t\t\t\tif( bfsc &&  $.isFunction(ts.p.subGridRowColapsed)) {\r\n
 \t\t\t\t\t\t\t_id = tr.id;\r\n
 \t\t\t\t\t\t\tbfsc = ts.p.subGridRowColapsed.call(ts, pID+"_"+_id,_id );\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(bfsc===false) {return false;}\r\n
-\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true) {\r\n
-\t\t\t\t\t\t\t\t$(r).remove(".ui-subgrid");\r\n
-\t\t\t\t\t\t\t} else if($(r).hasClass(\'ui-subgrid\')) { // incase of dynamic deleting\r\n
-\t\t\t\t\t\t\t\t$(r).hide();\r\n
-\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t$(this).html("<a href=\'javascript:void(0);\'><span class=\'ui-icon "+ts.p.subGridOptions.plusicon+"\'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");\r\n
+\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true) {\r\n
+\t\t\t\t\t\t\t$(r).remove(".ui-subgrid");\r\n
+\t\t\t\t\t\t} else if($(r).hasClass(\'ui-subgrid\')) { // incase of dynamic deleting\r\n
+\t\t\t\t\t\t\t$(r).hide();\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t$(this).html("<a href=\'javascript:void(0);\'><span class=\'ui-icon "+ts.p.subGridOptions.plusicon+"\'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\treturn false;\r\n
 \t\t\t\t});\r\n
 \t\t\t}\r\n
-\t\t\tif(ts.p.subGridOptions.expandOnLoad === true) {\r\n
-\t\t\t\t$(ts.rows[i].cells[pos]).trigger(\'click\');\r\n
-\t\t\t\t}\r\n
 \t\t\ti++;\r\n
 \t\t}\r\n
+\t\tif(ts.p.subGridOptions.expandOnLoad === true) {\r\n
+\t\t\t$(ts.rows).filter(\'.jqgrow\').each(function(index,row){\r\n
+\t\t\t\t$(row.cells[0]).click();\r\n
+\t\t\t});\r\n
+\t\t}\r\n
 \t\tts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};\r\n
 \t\tts.subGridJson = function(json,sid) {subGridJson(json,sid);};\r\n
 \t});\r\n
@@ -10210,6 +10467,7 @@ toggleSubGridRow : function(rowid) {\r\n
 \r\n
 /*global document, jQuery, $ */\r\n
 (function($) {\r\n
+"use strict";\r\n
 $.jgrid.extend({\r\n
 \tsetTreeNode : function(i, len){\r\n
 \t\treturn this.each(function(){\r\n
@@ -10231,7 +10489,30 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tlft = parseInt(ldat[$t.p.treeReader.left_field],10);\r\n
 \t\t\t\t\trgt = parseInt(ldat[$t.p.treeReader.right_field],10);\r\n
 \t\t\t\t\t// NS Model\r\n
-\t\t\t\t\t\tldat[isLeaf] = (rgt === lft+1) ? \'true\' : \'false\';\r\n
+\t\t\t\t\t\tldat[isLeaf] = (rgt === lft+1) ? \'
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>next</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="7" aka="AAAAAAAAAAc=">
+    <pickle>
+      <global name="Pdata" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+true\' : \'false\';\r\n
 \t\t\t\t\t\t$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
@@ -10368,11 +10649,11 @@ $.jgrid.extend({\r\n
 \t\t\t\t\ti++;\r\n
 \t\t\t\t\t//\r\n
 \t\t\t\t\tfor(var tkey in $t.p.treeReader) {\r\n
-\t\t\t\t\t\tif($t.p.treeReader[tkey] == nm)\r\n
+\t\t\t\t\t\tif($t.p.treeReader[tkey] == nm) {\r\n
 \t\t\t\t\t\t\tdupcols.push(nm);\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
-\r\n
-\t\t\t}\r\n
 \t\t\t}\r\n
 \t\t\t$.each($t.p.treeReader,function(j,n){\r\n
 \t\t\t\tif(n && $.inArray(n, dupcols) === -1){\r\n
@@ -10390,10 +10671,11 @@ $.jgrid.extend({\r\n
 \t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\r\n
 \t\t\tvar childern = $($t).jqGrid("getNodeChildren",record),\r\n
 \t\t\t//if ($($t).jqGrid("isVisibleNode",record)) {\r\n
-\t\t\texpanded = $t.p.treeReader.expanded_field;\r\n
-\t\t\t$(childern).each(function(i){\r\n
+\t\t\texpanded = $t.p.treeReader.expanded_field,\r\n
+\t\t\trows = $t.rows;\r\n
+\t\t\t$(childern).each(function(){\r\n
 \t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\r\n
-\t\t\t\t$("#"+id,$t.grid.bDiv).css("display","");\r\n
+\t\t\t\t$(rows.namedItem(id)).css("display","");\r\n
 \t\t\t\tif(this[expanded]) {\r\n
 \t\t\t\t\t$($t).jqGrid("expandRow",this);\r\n
 \t\t\t\t}\r\n
@@ -10406,10 +10688,11 @@ $.jgrid.extend({\r\n
 \t\t\tvar $t = this;\r\n
 \t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\r\n
 \t\t\tvar childern = $($t).jqGrid("getNodeChildren",record),\r\n
-\t\t\texpanded = $t.p.treeReader.expanded_field;\r\n
-\t\t\t$(childern).each(function(i){\r\n
+\t\t\texpanded = $t.p.treeReader.expanded_field,\r\n
+\t\t\trows = $t.rows;\r\n
+\t\t\t$(childern).each(function(){\r\n
 \t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\r\n
-\t\t\t\t$("#"+id,$t.grid.bDiv).css("display","none");\r\n
+\t\t\t\t$(rows.namedItem(id)).css("display","none");\r\n
 \t\t\t\tif(this[expanded]){\r\n
 \t\t\t\t\t$($t).jqGrid("collapseRow",this);\r\n
 \t\t\t\t}\r\n
@@ -10425,7 +10708,7 @@ $.jgrid.extend({\r\n
 \t\t\tswitch ($t.p.treeGridModel) {\r\n
 \t\t\t\tcase \'nested\' :\r\n
 \t\t\t\t\tvar level = $t.p.treeReader.level_field;\r\n
-\t\t\t\t\t$($t.p.data).each(function(i){\r\n
+\t\t\t\t\t$($t.p.data).each(function(){\r\n
 \t\t\t\t\t\tif(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {\r\n
 \t\t\t\t\t\t\tresult.push(this);\r\n
 \t\t\t\t\t\t}\r\n
@@ -10433,7 +10716,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tbreak;\r\n
 \t\t\t\tcase \'adjacency\' :\r\n
 \t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field;\r\n
-\t\t\t\t\t$($t.p.data).each(function(i){\r\n
+\t\t\t\t\t$($t.p.data).each(function(){\r\n
 \t\t\t\t\t\tif(this[parent_id] === null || String(this[parent_id]).toLowerCase() == "null") {\r\n
 \t\t\t\t\t\t\tresult.push(this);\r\n
 \t\t\t\t\t\t}\r\n
@@ -10481,7 +10764,7 @@ $.jgrid.extend({\r\n
 \t\t\t\tcase \'adjacency\' :\r\n
 \t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\r\n
 \t\t\t\t\tdtid = $t.p.localReader.id;\r\n
-\t\t\t\t\t$(this.p.data).each(function(i,val){\r\n
+\t\t\t\t\t$(this.p.data).each(function(){\r\n
 \t\t\t\t\t\tif(this[dtid] == rc[parent_id] ) {\r\n
 \t\t\t\t\t\t\tresult = this;\r\n
 \t\t\t\t\t\t\treturn false;\r\n
@@ -10503,7 +10786,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\trgtc = $t.p.treeReader.right_field,\r\n
 \t\t\t\t\tlevelc = $t.p.treeReader.level_field,\r\n
 \t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\r\n
-\t\t\t\t\t$(this.p.data).each(function(i){\r\n
+\t\t\t\t\t$(this.p.data).each(function(){\r\n
 \t\t\t\t\t\tif(parseInt(this[levelc],10) === level+1 && parseInt(this[lftc],10) > lft && parseInt(this[rgtc],10) < rgt) {\r\n
 \t\t\t\t\t\t\tresult.push(this);\r\n
 \t\t\t\t\t\t}\r\n
@@ -10512,7 +10795,7 @@ $.jgrid.extend({\r\n
 \t\t\t\tcase \'adjacency\' :\r\n
 \t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\r\n
 \t\t\t\t\tdtid = $t.p.localReader.id;\r\n
-\t\t\t\t\t$(this.p.data).each(function(i,val){\r\n
+\t\t\t\t\t$(this.p.data).each(function(){\r\n
 \t\t\t\t\t\tif(this[parent_id] == rc[dtid]) {\r\n
 \t\t\t\t\t\t\tresult.push(this);\r\n
 \t\t\t\t\t\t}\r\n
@@ -10533,7 +10816,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\trgtc = $t.p.treeReader.right_field,\r\n
 \t\t\t\t\tlevelc = $t.p.treeReader.level_field,\r\n
 \t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\r\n
-\t\t\t\t\t$(this.p.data).each(function(i){\r\n
+\t\t\t\t\t$(this.p.data).each(function(){\r\n
 \t\t\t\t\t\tif(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {\r\n
 \t\t\t\t\t\t\tresult.push(this);\r\n
 \t\t\t\t\t\t}\r\n
@@ -10618,12 +10901,12 @@ $.jgrid.extend({\r\n
 \r\n
 \t\t\tif(!rc[expanded]) {\r\n
 \t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id);\r\n
-\t\t\t\tvar rc1 = $("#"+id,this.grid.bDiv)[0];\r\n
+\t\t\t\tvar rc1 = $("#"+$.jgrid.jqID(id),this.grid.bDiv)[0];\r\n
 \t\t\t\tvar position = this.p._index[id];\r\n
 \t\t\t\tif( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) {\r\n
 \t\t\t\t\trc[expanded] = true;\r\n
 \t\t\t\t\t$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");\r\n
-\t\t\t\t} else {\r\n
+\t\t\t\t} else if (!this.grid.hDiv.loading) {\r\n
 \t\t\t\t\trc[expanded] = true;\r\n
 \t\t\t\t\t$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");\r\n
 \t\t\t\t\tthis.p.treeANode = rc1.rowIndex;\r\n
@@ -10651,7 +10934,7 @@ $.jgrid.extend({\r\n
 \t\t\tif(rc[expanded]) {\r\n
 \t\t\t\trc[expanded] = false;\r\n
 \t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id);\r\n
-\t\t\t\tvar rc1 = $("#"+id,this.grid.bDiv)[0];\r\n
+\t\t\t\tvar rc1 = $("#"+$.jgrid.jqID(id),this.grid.bDiv)[0];\r\n
 \t\t\t\t$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");\r\n
 \t\t\t}\r\n
 \t\t});\r\n
@@ -10673,9 +10956,9 @@ $.jgrid.extend({\r\n
 \t\t\t\trecords.push(rec);\r\n
 \t\t\t\t$(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir,st, datefmt);\r\n
 \t\t\t}\r\n
-\t\t\t$.each(records, function(index, row) {\r\n
+\t\t\t$.each(records, function(index) {\r\n
 \t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\r\n
-\t\t\t\t$(\'#\'+$t.p.id+ \' tbody tr:eq(\'+index+\')\').after($(\'tr#\'+id,$t.grid.bDiv));\r\n
+\t\t\t\t$(\'#\'+$.jgrid.jqID($t.p.id)+ \' tbody tr:eq(\'+index+\')\').after($(\'tr#\'+$.jgrid.jqID(id),$t.grid.bDiv));\r\n
 \t\t\t});\r\n
 \t\t\tquery = null;roots=null;records=null;\r\n
 \t\t});\r\n
@@ -10730,15 +11013,19 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t.select();\r\n
 \t\t\t\t\tif(res.length) {\r\n
 \t\t\t\t\t\tfor( key in res) {\r\n
-\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\r\n
-\t\t\t}\r\n
+\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\r\n
+\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tres = $.jgrid.from($t.p.data)\r\n
 \t\t\t\t\t\t.greater(right,myright,{stype:\'integer\'})\r\n
 \t\t\t\t\t\t.select();\r\n
 \t\t\t\t\tif(res.length) {\r\n
 \t\t\t\t\t\tfor( key in res) {\r\n
-\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\r\n
+\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\r\n
+\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
@@ -10753,7 +11040,7 @@ $.jgrid.extend({\r\n
 \t\t\tvar expanded = $t.p.treeReader.expanded_field,\r\n
 \t\t\tisLeaf = $t.p.treeReader.leaf_field,\r\n
 \t\t\tlevel = $t.p.treeReader.level_field,\r\n
-\t\t\ticon = $t.p.treeReader.icon_field,\r\n
+\t\t\t//icon = $t.p.treeReader.icon_field,\r\n
 \t\t\tparent = $t.p.treeReader.parent_id_field,\r\n
 \t\t\tleft = $t.p.treeReader.left_field,\r\n
 \t\t\tright = $t.p.treeReader.right_field,\r\n
@@ -10825,8 +11112,10 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tres = query.select();\r\n
 \t\t\t\t\tif(res.length) {\r\n
 \t\t\t\t\t\tfor( key in res) {\r\n
-\t\t\t\t\t\t\tres[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];\r\n
-\t\t\t\t\t\t\tres[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];\r\n
+\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\r\n
+\t\t\t\t\t\t\t\tres[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];\r\n
+\t\t\t\t\t\t\t\tres[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tdata[left] = maxright;\r\n
@@ -10838,7 +11127,9 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t.select();\r\n
 \t\t\t\t\tif(res.length) {\r\n
 \t\t\t\t\t\tfor( key in res) {\r\n
-\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) +2 ;\r\n
+\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\r\n
+\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) +2 ;\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tres = $.jgrid.from($t.p.data)\r\n
@@ -10846,7 +11137,9 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t.select();\r\n
 \t\t\t\t\tif(res.length) {\r\n
 \t\t\t\t\t\tfor( key in res) {\r\n
-\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) +2 ;\r\n
+\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\r\n
+\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) +2 ;\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t\tdata[left] = maxright+1;\r\n
@@ -10869,6 +11162,29 @@ $.jgrid.extend({\r\n
 })(jQuery);\r\n
 // Grouping module\r\n
 ;(function($){\r\n
+"use strict";\r\n
+$.extend($.jgrid,{\r\n
+\ttemplate : function(format){ //jqgformat\r\n
+\t\tvar args = $.makeArray(arguments).slice(1), j = 1;\r\n
+\t\tif(format===undefined) { format = ""; }\r\n
+\t\treturn format.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\r\n
+\t\t\tif(!isNaN(parseInt(i,10))) {\r\n
+\t\t\t\tj++;\r\n
+\t\t\t\treturn args[parseInt(i,10)];\r\n
+\t\t\t} else {\r\n
+\t\t\t\tvar nmarr = args[ j ],\r\n
+\t\t\t\tk = nmarr.length;\r\n
+\t\t\t\twhile(k--) {\r\n
+\t\t\t\t\tif(i===nmarr[k].nm) {\r\n
+\t\t\t\t\t\treturn nmarr[k].v;\r\n
+\t\t\t\t\t\tbreak;\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t}\r\n
+\t\t\t\tj++;\r\n
+\t\t\t}\r\n
+\t\t});\r\n
+\t}\r\n
+});\r\n
 $.jgrid.extend({\r\n
 \tgroupingSetup : function () {\r\n
 \t\treturn this.each(function (){\r\n
@@ -10878,9 +11194,13 @@ $.jgrid.extend({\r\n
 \t\t\t\tif(!grp.groupField.length) {\r\n
 \t\t\t\t\t$t.p.grouping = false;\r\n
 \t\t\t\t} else {\r\n
-\t\t\t\t\tif ( typeof(grp.visibiltyOnNextGrouping) == \'undefined\') {\r\n
+\t\t\t\t\tif ( typeof(grp.visibiltyOnNextGrouping) === \'undefined\') {\r\n
 \t\t\t\t\t\tgrp.visibiltyOnNextGrouping = [];\r\n
 \t\t\t\t\t}\r\n
+\r\n
+\t\t\t\t\tgrp.lastvalues=[];\r\n
+\t\t\t\t\tgrp.groups =[];\r\n
+\t\t\t\t\tgrp.counters =[];\r\n
 \t\t\t\t\tfor(var i=0;i<grp.groupField.length;i++) {\r\n
 \t\t\t\t\t\tif(!grp.groupOrder[i]) {\r\n
 \t\t\t\t\t\t\tgrp.groupOrder[i] = \'asc\';\r\n
@@ -10888,69 +11208,103 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tif(!grp.groupText[i]) {\r\n
 \t\t\t\t\t\t\tgrp.groupText[i] = \'{0}\';\r\n
 \t\t\t\t\t\t}\r\n
-\t\t\t\t\t\tif( typeof(grp.groupColumnShow[i]) != \'boolean\') {\r\n
+\t\t\t\t\t\tif( typeof(grp.groupColumnShow[i]) !== \'boolean\') {\r\n
 \t\t\t\t\t\t\tgrp.groupColumnShow[i] = true;\r\n
 \t\t\t\t\t\t}\r\n
-\t\t\t\t\t\tif( typeof(grp.groupSummary[i]) != \'boolean\') {\r\n
+\t\t\t\t\t\tif( typeof(grp.groupSummary[i]) !== \'boolean\') {\r\n
 \t\t\t\t\t\t\tgrp.groupSummary[i] = false;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(grp.groupColumnShow[i] === true) {\r\n
 \t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = true;\r\n
 \t\t\t\t\t\t\t$($t).jqGrid(\'showCol\',grp.groupField[i]);\r\n
 \t\t\t\t\t\t} else {\r\n
-\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $("#"+$t.p.id+"_"+grp.groupField[i]).is(":visible");\r\n
+\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id+"_"+grp.groupField[i])).is(":visible");\r\n
 \t\t\t\t\t\t\t$($t).jqGrid(\'hideCol\',grp.groupField[i]);\r\n
 \t\t\t\t\t\t}\r\n
-\t\t\t\t\t\tgrp.sortitems[i] = [];\r\n
-\t\t\t\t\t\tgrp.sortnames[i] = [];\r\n
-\t\t\t\t\t\tgrp.summaryval[i] = [];\r\n
-\t\t\t\t\t\tif(grp.groupSummary[i]) {\r\n
-\t\t\t\t\t\t\tgrp.summary[i] =[];\r\n
-\t\t\t\t\t\t\tvar cm = $t.p.colModel;\r\n
-\t\t\t\t\t\t\tfor(var j=0, cml = cm.length; j < cml; j++) {\r\n
-\t\t\t\t\t\t\t\tif(cm[j].summaryType) {\r\n
-\t\t\t\t\t\t\t\t\tgrp.summary[i].push({nm:cm[j].name,st:cm[j].summaryType, v:\'\'});\r\n
-\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tgrp.summary =[];\r\n
+\t\t\t\t\tvar cm = $t.p.colModel;\r\n
+\t\t\t\t\tfor(var j=0, cml = cm.length; j < cml; j++) {\r\n
+\t\t\t\t\t\tif(cm[j].summaryType) {\r\n
+\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: \'\', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || \'round\'});\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\t$t.p.scroll = false;\r\n
-\t\t\t\t\t$t.p.rownumbers = false;\r\n
-\t\t\t\t\t$t.p.subGrid = false;\r\n
-\t\t\t\t\t$t.p.treeGrid = false;\r\n
-\t\t\t\t\t$t.p.gridview = true;\r\n
 \t\t\t\t}\r\n
 \t\t\t} else {\r\n
 \t\t\t\t$t.p.grouping = false;\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t},\r\n
-\tgroupingPrepare : function (rData, items, gdata, record) {\r\n
+\tgroupingPrepare : function (rData, gdata, record, irow) {\r\n
 \t\tthis.each(function(){\r\n
-\t\t\t// currently only one level\r\n
-\t\t\t// Is this a good idea to do it so!!!!?????\r\n
-\t\t\titems[0]  += "";\r\n
-\t\t\tvar itm = items[0].toString().split(\' \').join(\'\');\r\n
-\t\t\t\r\n
 \t\t\tvar grp = this.p.groupingView, $t= this;\r\n
-\t\t\tif(gdata.hasOwnProperty(itm)) {\r\n
-\t\t\t\tgdata[itm].push(rData);\r\n
-\t\t\t} else {\r\n
-\t\t\t\tgdata[itm] = [];\r\n
-\t\t\t\tgdata[itm].push(rData);\r\n
-\t\t\t\tgrp.sortitems[0].push(itm);\r\n
-\t\t\t\tgrp.sortnames[0].push($.trim(items[0].toString()));\r\n
-\t\t\t\tgrp.summaryval[0][itm] = $.extend(true,[],grp.summary[0]);\r\n
-\t\t\t}\r\n
-\t\t\tif(grp.groupSummary[0]) {\r\n
-\t\t\t\t$.each(grp.summaryval[0][itm],function() {\r\n
-\t\t\t\t\tif ($.isFunction(this.st)) {\r\n
-\t\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\r\n
+\t\t\tvar grlen = grp.groupField.length, \r\n
+\t\t\tfieldName,\r\n
+\t\t\tv,\r\n
+\t\t\tchanged = 0;\r\n
+\t\t\tfor(var i=0;i<grlen;i++) {\r\n
+\t\t\t\tfieldName = grp.groupField[i];\r\n
+\t\t\t\tv = record[fieldName];\r\n
+\t\t\t\tif( v !== undefined ) {\r\n
+\t\t\t\t\tif(irow === 0 ) {\r\n
+\t\t\t\t\t\t// First record always starts a new group\r\n
+\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, startRow: irow, cnt:1, summary : [] } );\r\n
+\t\t\t\t\t\tgrp.lastvalues[i] = v;\r\n
+\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\r\n
+\t\t\t\t\t\t$.each(grp.counters[i].summary,function() {\r\n
+\t\t\t\t\t\t\tif ($.isFunction(this.st)) {\r\n
+\t\t\t\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\r\n
+\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\tthis.v = $($t).jqGrid(\'groupingCalculations.handler\',this.st, this.v, this.nm, this.sr, this.srt, record);\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t});\r\n
+\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\r\n
 \t\t\t\t\t} else {\r\n
-\t\t\t\t\t\tthis.v = $($t).jqGrid(\'groupingCalculations.\'+this.st, this.v, this.nm, record);\r\n
+\t\t\t\t\t\tif( (typeof(v) !== "object" && (grp.lastvalues[i] !== v) ) ) {\r\n
+\t\t\t\t\t\t\t// This record is not in same group as previous one\r\n
+\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, startRow: irow, cnt:1, summary : [] } );\r\n
+\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\r\n
+\t\t\t\t\t\t\tchanged = 1;\r\n
+\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\r\n
+\t\t\t\t\t\t\t$.each(grp.counters[i].summary,function() {\r\n
+\t\t\t\t\t\t\t\tif ($.isFunction(this.st)) {\r\n
+\t\t\t\t\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\r\n
+\t\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t\tthis.v = $($t).jqGrid(\'groupingCalculations.handler\',this.st, this.v, this.nm, this.sr, this.srt, record);\r\n
+\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t});\r\n
+\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\r\n
+\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\tif (changed === 1) {\r\n
+\t\t\t\t\t\t\t\t// This group has changed because an earlier group changed.\r\n
+\t\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, startRow: irow, cnt:1, summary : [] } );\r\n
+\t\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\r\n
+\t\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\r\n
+\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary,function() {\r\n
+\t\t\t\t\t\t\t\t\tif ($.isFunction(this.st)) {\r\n
+\t\t\t\t\t\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\r\n
+\t\t\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t\t\tthis.v = $($t).jqGrid(\'groupingCalculations.handler\',this.st, this.v, this.nm, this.sr, this.srt, record);\r\n
+\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t});\r\n
+\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\r\n
+\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\tgrp.counters[i].cnt += 1;\r\n
+\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;\r\n
+\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary,function() {\r\n
+\t\t\t\t\t\t\t\t\tif ($.isFunction(this.st)) {\r\n
+\t\t\t\t\t\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\r\n
+\t\t\t\t\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\t\t\t\t\tthis.v = $($t).jqGrid(\'groupingCalculations.handler\',this.st, this.v, this.nm, this.sr, this.srt, record);\r\n
+\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t});\r\n
+\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t});\r\n
+\t\t\t\t}\r\n
 \t\t\t}\r\n
+\t\t\tgdata.push( rData );\r\n
 \t\t});\r\n
 \t\treturn gdata;\r\n
 \t},\r\n
@@ -10958,20 +11312,27 @@ $.jgrid.extend({\r\n
 \t\tthis.each(function(){\r\n
 \t\t\tvar $t = this,\r\n
 \t\t\tgrp = $t.p.groupingView,\r\n
-\t\t\tstrpos = hid.lastIndexOf(\'_\'),\r\n
-\t\t\tuid = hid.substring(0,strpos+1),\r\n
-\t\t\tnum = parseInt(hid.substring(strpos+1),10)+1,\r\n
+\t\t\tstrpos = hid.split(\'_\'),\r\n
+\t\t\t//uid = hid.substring(0,strpos+1),\r\n
+\t\t\tnum = parseInt(strpos[strpos.length-2], 10);\r\n
+\t\t\tstrpos.splice(strpos.length-2,2);\r\n
+\t\t\tvar uid = strpos.join("_"),\r\n
 \t\t\tminus = grp.minusicon,\r\n
 \t\t\tplus = grp.plusicon,\r\n
-\t\t\ttar = $("#"+hid),\r\n
+\t\t\ttar = $("#"+$.jgrid.jqID(hid)),\r\n
 \t\t\tr = tar.length ? tar[0].nextSibling : null,\r\n
-\t\t\ttarspan = $("#"+hid+" span."+"tree-wrap-"+$t.p.direction),\r\n
-\t\t\tcollapsed = false;\r\n
+\t\t\ttarspan = $("#"+$.jgrid.jqID(hid)+" span."+"tree-wrap-"+$t.p.direction),\r\n
+\t\t\tcollapsed = false, tspan;\r\n
 \t\t\tif( tarspan.hasClass(minus) ) {\r\n
-\t\t\t\tif(grp.showSummaryOnHide && grp.groupSummary[0]) {\r\n
+\t\t\t\tif(grp.showSummaryOnHide) {\r\n
 \t\t\t\t\tif(r){\r\n
 \t\t\t\t\t\twhile(r) {\r\n
-\t\t\t\t\t\t\tif($(r).hasClass(\'jqfoot\') ) { break; }\r\n
+\t\t\t\t\t\t\tif($(r).hasClass(\'jqfoot\') ) {\r\n
+\t\t\t\t\t\t\t\tvar lv = parseInt($(r).attr("jqfootlevel"),10);\r\n
+\t\t\t\t\t\t\t\tif(  lv <= num) {\r\n
+\t\t\t\t\t\t\t\t\tbreak;\r\n
+\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t$(r).hide();\r\n
 \t\t\t\t\t\t\tr = r.nextSibling;\r\n
 \t\t\t\t\t\t}\r\n
@@ -10979,10 +11340,10 @@ $.jgrid.extend({\r\n
 \t\t\t\t} else  {\r\n
 \t\t\t\t\tif(r){\r\n
 \t\t\t\t\t\twhile(r) {\r\n
-\t\t\t\t\t\t\tif($(r).attr(\'id\') ==uid+String(num) ) { break; }\r\n
+\t\t\t\t\t\t\tif( $(r).hasClass(uid+"_"+String(num) ) || $(r).hasClass(uid+"_"+String(num-1))) { break; }\r\n
 \t\t\t\t\t\t\t$(r).hide();\r\n
 \t\t\t\t\t\t\tr = r.nextSibling;\r\n
-\t\t\t\t}\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\ttarspan.removeClass(minus).addClass(plus);\r\n
@@ -10990,13 +11351,18 @@ $.jgrid.extend({\r\n
 \t\t\t} else {\r\n
 \t\t\t\tif(r){\r\n
 \t\t\t\t\twhile(r) {\r\n
-\t\t\t\t\t\tif($(r).attr(\'id\') ==uid+String(num) ) { break; }\r\n
+\t\t\t\t\t\tif($(r).hasClass(uid+"_"+String(num)) || $(r).hasClass(uid+"_"+String(num-1)) ) { break; }\r\n
 \t\t\t\t\t\t$(r).show();\r\n
+\t\t\t\t\t\ttspan = $(r).find("span."+"tree-wrap-"+$t.p.direction);\r\n
+\t\t\t\t\t\tif( tspan && $(tspan).hasClass(plus) ) {\r\n
+\t\t\t\t\t\t\t$(tspan).removeClass(plus).addClass(minus);\r\n
+\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tr = r.nextSibling;\r\n
 \t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
 \t\t\t\ttarspan.removeClass(plus).addClass(minus);\r\n
 \t\t\t}\r\n
+\t\t\t$($t).triggerHandler("jqGridGroupingClickGroup", [hid , collapsed]);\r\n
 \t\t\tif( $.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }\r\n
 \r\n
 \t\t});\r\n
@@ -11006,76 +11372,100 @@ $.jgrid.extend({\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tvar $t = this,\r\n
 \t\t\tgrp = $t.p.groupingView,\r\n
-\t\t\tstr = "", icon = "", hid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp, ii;\r\n
-\t\t\t//only one level for now\r\n
-\t\t\tif(!grp.groupDataSorted) {\r\n
-\t\t\t\t// ???? TO BE IMPROVED\r\n
-\t\t\t\tgrp.sortitems[0].sort();\r\n
-\t\t\t\tgrp.sortnames[0].sort();\r\n
-\t\t\t\tif(grp.groupOrder[0].toLowerCase() == \'desc\')\r\n
-\t\t\t\t{\r\n
-\t\t\t\t\tgrp.sortitems[0].reverse();\r\n
-\t\t\t\t\tgrp.sortnames[0].reverse();\r\n
-\t\t\t\t}\r\n
-\t\t\t}   \r\n
+\t\t\tstr = "", icon = "", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], ii, len =grp.groupField.length;\r\n
 \t\t\tpmrtl += " tree-wrap-"+$t.p.direction; \r\n
 \t\t\tii = 0;\r\n
-\t\t\twhile(ii < colspans) {\r\n
-\t\t\t\tif($t.p.colModel[ii].name == grp.groupField[0]) {\r\n
-\t\t\t\t\tcp = ii;\r\n
-\t\t\t\t\tbreak;\r\n
+\t\t\t$.each($t.p.colModel, function (i,n){\r\n
+\t\t\t\tfor(var ii=0;ii<len;ii++) {\r\n
+\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\r\n
+\t\t\t\t\t\tcp[ii] = i;\r\n
+\t\t\t\t\t\tbreak;\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t}\r\n
+\t\t\t});\r\n
+\t\t\tvar toEnd = 0;\r\n
+\t\t\tfunction findGroupIdx( ind , offset, grp) {\r\n
+\t\t\t\tif(offset===0) {\r\n
+\t\t\t\t\treturn grp[ind];\r\n
+\t\t\t\t} else {\r\n
+\t\t\t\t\tvar id = grp[ind].idx;\r\n
+\t\t\t\t\tif(id===0) { return grp[ind]; }\r\n
+\t\t\t\t\tfor(var i=ind;i >= 0; i--) {\r\n
+\t\t\t\t\t\tif(grp[i].idx === id-offset) {\r\n
+\t\t\t\t\t\t\treturn grp[i];\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t}\r\n
 \t\t\t\t}\r\n
-\t\t\t\tii++;\r\n
 \t\t\t}\r\n
-\t\t\t$.each(grp.sortitems[0],function(i,n){\r\n
-\t\t\t\thid = $t.p.id+"ghead_"+i;\r\n
-\t\t\t\ticon = "<span style=\'cursor:pointer;\' class=\'ui-icon "+pmrtl+"\' onclick=\\"jQuery(\'#"+$t.p.id+"\').jqGrid(\'groupingToggle\',\'"+hid+"\');return false;\\"></span>";\r\n
+\t\t\tvar sumreverse = $.makeArray(grp.groupSummary);\r\n
+\t\t\tsumreverse.reverse();\r\n
+\t\t\t$.each(grp.groups,function(i,n){\r\n
+\t\t\t\ttoEnd++;\r\n
+\t\t\t\tclid = $t.p.id+"ghead_"+n.idx;\r\n
+\t\t\t\thid = clid+"_"+i;\r\n
+\t\t\t\ticon = "<span style=\'cursor:pointer;\' class=\'ui-icon "+pmrtl+"\' onclick=\\"jQuery(\'#"+$.jgrid.jqID($t.p.id)+"\').jqGrid(\'groupingToggle\',\'"+hid+"\');return false;\\"></span>";\r\n
 \t\t\t\ttry {\r\n
-\t\t\t\t\tgv = $t.formatter(hid, grp.sortnames[0][i], cp, grp.sortitems[0] );\r\n
+\t\t\t\t\tgv = $t.formatter(hid, n.value, cp[n.idx], n.value );\r\n
 \t\t\t\t} catch (egv) {\r\n
-\t\t\t\t\tgv = grp.sortnames[0][i];\r\n
-\t\t\t\t}\r\n
-\t\t\t\tstr += "<tr id=\\""+hid+"\\" role=\\"row\\" class= \\"ui-widget-content jqgroup ui-row-"+$t.p.direction+"\\"><td colspan=\\""+colspans+"\\">"+icon+$.jgrid.format(grp.groupText[0], gv, grdata[n].length)+"</td></tr>";\r\n
-\t\t\t\tfor(var kk=0;kk<grdata[n].length;kk++) {\r\n
-\t\t\t\t\tstr += grdata[n][kk].join(\'\');\r\n
-\t\t\t\t}\r\n
-\t\t\t\tif(grp.groupSummary[0]) {\r\n
-\t\t\t\t\tvar hhdr = "";\r\n
-\t\t\t\t\tif(grp.groupCollapse && !grp.showSummaryOnHide) {\r\n
-\t\t\t\t\t\thhdr = " style=\\"display:none;\\"";\r\n
-\t\t\t\t\t}\r\n
-\t\t\t\t\tstr += "<tr"+hhdr+" role=\\"row\\" class=\\"ui-widget-content jqfoot ui-row-"+$t.p.direction+"\\">";\r\n
-\t\t\t\t\tvar fdata = grp.summaryval[0][n],\r\n
-\t\t\t\t\tcm = $t.p.colModel,\r\n
-\t\t\t\t\tvv, grlen = grdata[n].length;\r\n
-\t\t\t\t\tfor(var k=0; k<colspans;k++) {\r\n
-\t\t\t\t\t\tvar tmpdata = "<td "+$t.formatCol(k,1,\'\')+">&#160;</td>",\r\n
-\t\t\t\t\t\ttplfld = "{0}";\r\n
-\t\t\t\t\t\t$.each(fdata,function(){\r\n
-\t\t\t\t\t\t\tif(this.nm == cm[k].name) {\r\n
-\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\r\n
-\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\r\n
-\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\tif(this.st == \'avg\') {\r\n
-\t\t\t\t\t\t\t\t\tif(this.v && grlen > 0) {\r\n
-\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\r\n
+\t\t\t\t\tgv = n.value;\r\n
+\t\t\t\t}\r\n
+\t\t\t\tstr += "<tr id=\\""+hid+"\\" role=\\"row\\" class= \\"ui-widget-content jqgroup ui-row-"+$t.p.direction+" "+clid+"\\"><td style=\\"padding-left:"+(n.idx * 12) + "px;"+"\\" colspan=\\""+colspans+"\\">"+icon+$.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary)+"</td></tr>";\r\n
+\t\t\t\tvar leaf = len-1 === n.idx; \r\n
+\t\t\t\tif( leaf ) {\r\n
+\t\t\t\t\tvar gg = grp.groups[i+1];\r\n
+\t\t\t\t\tvar end = gg !== undefined ?  grp.groups[i+1].startRow : grdata.length;\r\n
+\t\t\t\t\tfor(var kk=n.startRow;kk<end;kk++) {\r\n
+\t\t\t\t\t\tstr += grdata[kk].join(\'\');\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tvar jj;\r\n
+\t\t\t\t\tif (gg !== undefined) {\r\n
+\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\r\n
+\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\r\n
+\t\t\t\t\t\t\t\tbreak;\r\n
+\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\tfor (var ik = 0; ik < toEnd; ik++) {\r\n
+\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\r\n
+\t\t\t\t\t\tvar hhdr = "";\r\n
+\t\t\t\t\t\tif(grp.groupCollapse && !grp.showSummaryOnHide) {\r\n
+\t\t\t\t\t\t\thhdr = " style=\\"display:none;\\"";\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\tstr += "<tr"+hhdr+" jqfootlevel=\\""+(n.idx-ik)+"\\" role=\\"row\\" class=\\"ui-widget-content jqfoot ui-row-"+$t.p.direction+"\\">";\r\n
+\t\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp.groups),\r\n
+\t\t\t\t\t\tcm = $t.p.colModel,\r\n
+\t\t\t\t\t\tvv, grlen = fdata.cnt;\r\n
+\t\t\t\t\t\tfor(var k=0; k<colspans;k++) {\r\n
+\t\t\t\t\t\t\tvar tmpdata = "<td "+$t.formatCol(k,1,\'\')+">&#160;</td>",\r\n
+\t\t\t\t\t\t\ttplfld = "{0}";\r\n
+\t\t\t\t\t\t\t$.each(fdata.summary,function(){\r\n
+\t\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\r\n
+\t\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\r\n
+\t\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t\tif(typeof(this.st) === \'string\' && this.st.toLowerCase() === \'avg\') {\r\n
+\t\t\t\t\t\t\t\t\t\tif(this.v && grlen > 0) {\r\n
+\t\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\r\n
+\t\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t\ttry {\r\n
+\t\t\t\t\t\t\t\t\t\tvv = $t.formatter(\'\', this.v, k, this);\r\n
+\t\t\t\t\t\t\t\t\t} catch (ef) {\r\n
+\t\t\t\t\t\t\t\t\t\tvv = this.v;\r\n
+\t\t\t\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\t\t\t\ttmpdata= "<td "+$t.formatCol(k,1,\'\')+">"+$.jgrid.format(tplfld,vv)+ "</td>";\r\n
+\t\t\t\t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\ttry {\r\n
-\t\t\t\t\t\t\t\t\tvv = $t.formatter(\'\', this.v, k, this);\r\n
-\t\t\t\t\t\t\t\t} catch (ef) {\r\n
-\t\t\t\t\t\t\t\t\tvv = this.v;\r\n
-\t\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t\t\ttmpdata= "<td "+$t.formatCol(k,1,\'\')+">"+$.jgrid.format(tplfld,vv)+ "</td>";\r\n
-\t\t\t\t\t\t\t\treturn false;\r\n
-\t\t\t\t\t\t\t}\r\n
-\t\t\t\t\t\t});\r\n
-\t\t\t\t\t\tstr += tmpdata;\r\n
+\t\t\t\t\t\t\t});\r\n
+\t\t\t\t\t\t\tstr += tmpdata;\r\n
+\t\t\t\t\t\t}\r\n
+\t\t\t\t\t\tstr += "</tr>";\r\n
 \t\t\t\t\t}\r\n
-\t\t\t\t\tstr += "</tr>";\r\n
+\t\t\t\t\ttoEnd = jj;\r\n
 \t\t\t\t}\r\n
 \t\t\t});\r\n
-\t\t\t$("#"+$t.p.id+" tbody:first").append(str);\r\n
+\t\t\t$("#"+$.jgrid.jqID($t.p.id)+" tbody:first").append(str);\r\n
 \t\t\t// free up memory\r\n
 \t\t\tstr = null;\r\n
 \t\t});\r\n
@@ -11083,14 +11473,14 @@ $.jgrid.extend({\r\n
 \tgroupingGroupBy : function (name, options ) {\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tvar $t = this;\r\n
-\t\t\tif(typeof(name) == "string") {\r\n
+\t\t\tif(typeof(name) === "string") {\r\n
 \t\t\t\tname = [name];\r\n
 \t\t\t}\r\n
 \t\t\tvar grp = $t.p.groupingView;\r\n
 \t\t\t$t.p.grouping = true;\r\n
 \r\n
 \t\t\t//Set default, in case visibilityOnNextGrouping is undefined \r\n
-\t\t\tif (typeof grp.visibiltyOnNextGrouping == "undefined") {\r\n
+\t\t\tif (typeof grp.visibiltyOnNextGrouping === "undefined") {\r\n
 \t\t\t\tgrp.visibiltyOnNextGrouping = [];\r\n
 \t\t\t}\r\n
 \t\t\tvar i;\r\n
@@ -11102,7 +11492,7 @@ $.jgrid.extend({\r\n
 \t\t\t}\r\n
 \t\t\t// set visibility status of current group columns on next grouping\r\n
 \t\t\tfor(i=0;i<name.length;i++) {\r\n
-\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $("#"+$t.p.id+"_"+name[i]).is(":visible");\r\n
+\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(name[i])).is(":visible");\r\n
 \t\t\t}\r\n
 \t\t\t$t.p.groupingView = $.extend($t.p.groupingView, options || {});\r\n
 \t\t\tgrp.groupField = name;\r\n
@@ -11112,53 +11502,79 @@ $.jgrid.extend({\r\n
 \tgroupingRemove : function (current) {\r\n
 \t\treturn this.each(function(){\r\n
 \t\t\tvar $t = this;\r\n
-\t\t\tif(typeof(current) == \'undefined\') {\r\n
+\t\t\tif(typeof(current) === \'undefined\') {\r\n
 \t\t\t\tcurrent = true;\r\n
 \t\t\t}\r\n
 \t\t\t$t.p.grouping = false;\r\n
 \t\t\tif(current===true) {\r\n
-        var grp = $t.p.groupingView;\r\n
-        // show previous hidden groups if they are hidden and weren\'t removed yet\r\n
-        for(var i=0;i<grp.groupField.length;i++) {\r\n
-          if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\r\n
-            $($t).jqGrid(\'showCol\', grp.groupField);\r\n
-          }\r\n
-        }\r\n
-\t\t\t\t$("tr.jqgroup, tr.jqfoot","#"+$t.p.id+" tbody:first").remove();\r\n
-\t\t\t\t$("tr.jqgrow:hidden","#"+$t.p.id+" tbody:first").show();\r\n
+\t\t\t\tvar grp = $t.p.groupingView;\r\n
+\t\t\t\t// show previous hidden groups if they are hidden and weren\'t removed yet\r\n
+\t\t\t\tfor(var i=0;i<grp.groupField.length;i++) {\r\n
+\t\t\t\tif (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\r\n
+\t\t\t\t\t\t$($t).jqGrid(\'showCol\', grp.groupField);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t}\r\n
+\t\t\t\t$("tr.jqgroup, tr.jqfoot","#"+$.jgrid.jqID($t.p.id)+" tbody:first").remove();\r\n
+\t\t\t\t$("tr.jqgrow:hidden","#"+$.jgrid.jqID($t.p.id)+" tbody:first").show();\r\n
 \t\t\t} else {\r\n
 \t\t\t\t$($t).trigger("reloadGrid");\r\n
 \t\t\t}\r\n
 \t\t});\r\n
 \t},\r\n
 \tgroupingCalculations : {\r\n
-\t\t"sum" : function(v, field, rc) {\r\n
-\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\r\n
-\t\t},\r\n
-\t\t"min" : function(v, field, rc) {\r\n
-\t\t\tif(v==="") {\r\n
-\t\t\t\treturn parseFloat(rc[field]||0);\r\n
+\t\thandler: function(fn, v, field, round, roundType, rc) {\r\n
+\t\t\tvar funcs = {\r\n
+\t\t\t\tsum: function() {\r\n
+\t\t\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\r\n
+\t\t\t\t},\r\n
+\r\n
+\t\t\t\tmin: function() {\r\n
+\t\t\t\t\tif(v==="") {\r\n
+\t\t\t\t\t\treturn parseFloat(rc[field]||0);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\treturn Math.min(parseFloat(v),parseFloat(rc[field]||0));\r\n
+\t\t\t\t},\r\n
+\r\n
+\t\t\t\tmax: function() {\r\n
+\t\t\t\t\tif(v==="") {\r\n
+\t\t\t\t\t\treturn parseFloat(rc[field]||0);\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t\treturn Math.max(parseFloat(v),parseFloat(rc[field]||0));\r\n
+\t\t\t\t},\r\n
+\r\n
+\t\t\t\tcount: function() {\r\n
+\t\t\t\t\tif(v==="") {v=0;}\r\n
+\t\t\t\t\tif(rc.hasOwnProperty(field)) {\r\n
+\t\t\t\t\t\treturn v+1;\r\n
+\t\t\t\t\t} else {\r\n
+\t\t\t\t\t\treturn 0;\r\n
+\t\t\t\t\t}\r\n
+\t\t\t\t},\r\n
+\r\n
+\t\t\t\tavg: function() {\r\n
+\t\t\t\t\t// the same as sum, but at end we divide it\r\n
+\t\t\t\t\t// so use sum instead of duplicating the code (?)\r\n
+\t\t\t\t\treturn funcs.sum();\r\n
+\t\t\t\t}\r\n
 \t\t\t}\r\n
-\t\t\treturn Math.min(parseFloat(v),parseFloat(rc[field]||0));\r\n
-\t\t},\r\n
-\t\t"max" : function(v, field, rc) {\r\n
-\t\t\tif(v==="") {\r\n
-\t\t\t\treturn parseFloat(rc[field]||0);\r\n
+\r\n
+\t\t\tif(!funcs[fn]) {\r\n
+\t\t\t\tthrow ("jqGrid Grouping No such method: " + fn);\r\n
 \t\t\t}\r\n
-\t\t\treturn Math.max(parseFloat(v),parseFloat(rc[field]||0));\r\n
-\t\t},\r\n
-\t\t"count" : function(v, field, rc) {\r\n
-\t\t\tif(v==="") {v=0;}\r\n
-\t\t\tif(rc.hasOwnProperty(field)) {\r\n
-\t\t\t\treturn v+1;\r\n
-\t\t\t} else {\r\n
-\t\t\t\treturn 0;\r\n
+\t\t\tvar res = funcs[fn]();\r\n
+\r\n
+\t\t\tif (round != null) {\r\n
+\t\t\t\tif (roundType == \'fixed\')\r\n
+\t\t\t\t\tres = res.toFixed(round);\r\n
+\t\t\t\telse {\r\n
+\t\t\t\t\tvar mul = Math.pow(10, round);\r\n
+\r\n
+\t\t\t\t\tres = Math.round(res * mul) / mul;\r\n
+\t\t\t\t}\r\n
 \t\t\t}\r\n
-\t\t},\r\n
-\t\t"avg" : function(v, field, rc) {\r\n
-\t\t\t// the same as sum, but at end we divide it\r\n
-\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\r\n
-\t\t}\r\n
+\r\n
+\t\t\treturn res;\r\n
+\t\t}\t\r\n
 \t}\r\n
 });\r\n
 })(jQuery);\r\n
@@ -11171,6 +11587,10 @@ $.jgrid.extend({\r\n
  * http://www.opensource.org/licenses/mit-license.php\r\n
  * http://www.gnu.org/licenses/gpl-2.0.html\r\n
 **/ \r\n
+//jsHint options\r\n
+/*global jQuery, $, alert, xmlJsonClass */\r\n
+\r\n
+"use strict";\r\n
     $.jgrid.extend({\r\n
         jqGridImport : function(o) {\r\n
             o = $.extend({\r\n
@@ -11191,7 +11611,7 @@ $.jgrid.extend({\r\n
             }, o || {});\r\n
             return this.each(function(){\r\n
                 var $t = this;\r\n
-                var XmlConvert = function (xml,o) {\r\n
+                var xmlConvert = function (xml,o) {\r\n
                     var cnfg = $(o.xmlGrid.config,xml)[0];\r\n
                     var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1;\r\n
                     if(xmlJsonClass.xml2json && $.jgrid.parse) {\r\n
@@ -11216,9 +11636,15 @@ $.jgrid.extend({\r\n
                         alert("xml2json or parse are not present");\r\n
                     }\r\n
                 };\r\n
-                var JsonConvert = function (jsonstr,o){\r\n
+                var jsonConvert = function (jsonstr,o){\r\n
                     if (jsonstr && typeof jsonstr == \'string\') {\r\n
+\t\t\t\t\t\tvar _jsonparse = false;\r\n
+\t\t\t\t\t\tif($.jgrid.useJSON) {\r\n
+\t\t\t\t\t\t\t$.jgrid.useJSON = false;\r\n
+\t\t\t\t\t\t\t_jsonparse = true;\r\n
+\t\t\t\t\t\t}\r\n
                         var json = $.jgrid.parse(jsonstr);\r\n
+\t\t\t\t\t\tif(_jsonparse) { $.jgrid.useJSON = true; }\r\n
                         var gprm = json[o.jsonGrid.config];\r\n
                         var jdata = json[o.jsonGrid.data];\r\n
                         if(jdata) {\r\n
@@ -11240,7 +11666,8 @@ $.jgrid.extend({\r\n
                             dataType:"xml",\r\n
                             complete: function(xml,stat) {\r\n
                                 if(stat == \'success\') {\r\n
-                                    XmlConvert(xml.responseXML,o);\r\n
+                                    xmlConvert(xml.responseXML,o);\r\n
+                                    $($t).triggerHandler("jqGridImportComplete", [xml, o]);\r\n
                                     if($.isFunction(o.importComplete)) {\r\n
                                         o.importComplete(xml);\r\n
                                     }\r\n
@@ -11254,7 +11681,8 @@ $.jgrid.extend({\r\n
                         if(o.impstring && typeof o.impstring == \'string\') {\r\n
                             var xmld = $.jgrid.stringToDoc(o.impstring);\r\n
                             if(xmld) {\r\n
-                                XmlConvert(xmld,o);\r\n
+                                xmlConvert(xmld,o);\r\n
+                                $($t).triggerHandler("jqGridImportComplete", [xmld, o]);\r\n
                                 if($.isFunction(o.importComplete)) {\r\n
                                     o.importComplete(xmld);\r\n
                                 }\r\n
@@ -11269,20 +11697,22 @@ $.jgrid.extend({\r\n
                             type:o.mtype,\r\n
                             data: o.impData,\r\n
                             dataType:"json",\r\n
-                            complete: function(json,stat) {\r\n
-                                if(stat == \'success\') {\r\n
-                                    JsonConvert(json.responseText,o );\r\n
+                            complete: function(json) {\r\n
+                                try {\r\n
+                                    jsonConvert(json.responseText,o );\r\n
+                                    $($t).triggerHandler("jqGridImportComplete", [json, o]);\r\n
                                     if($.isFunction(o.importComplete)) {\r\n
                                         o.importComplete(json);\r\n
                                     }\r\n
-                                }\r\n
+                                } catch (ee){}\r\n
                                 json=null;\r\n
                             }\r\n
                         }, o.ajaxOptions ));\r\n
                         break;\r\n
                     case \'jsonstring\' :\r\n
                         if(o.impstring && typeof o.impstring == \'string\') {\r\n
-                            JsonConvert(o.impstring,o );\r\n
+                            jsonConvert(o.impstring,o );\r\n
+                            $($t).triggerHandler("jqGridImportComplete", [o.impstring, o]);\r\n
                             if($.isFunction(o.importComplete)) {\r\n
                                 o.importComplete(o.impstring);\r\n
                             }\r\n
@@ -11301,7 +11731,7 @@ $.jgrid.extend({\r\n
             var ret = null;\r\n
             this.each(function () {\r\n
                 if(!this.grid) { return;}\r\n
-                var gprm = $.extend({},$(this).jqGrid("getGridParam"));\r\n
+                var gprm = $.extend(true, {},$(this).jqGrid("getGridParam"));\r\n
                 // we need to check for:\r\n
                 // 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames\r\n
                 if(gprm.rownumbers) {\r\n
@@ -11416,7 +11846,7 @@ $.jgrid.extend({\r\n
 \tsortableColumns : function (tblrow)\r\n
 \t{\r\n
 \t\treturn this.each(function (){\r\n
-\t\t\tvar ts = this, tid= ts.p.id;\r\n
+\t\t\tvar ts = this, tid= $.jgrid.jqID( ts.p.id );\r\n
 \t\t\tfunction start() {ts.p.disableClick = true;}\r\n
 \t\t\tvar sortable_opts = {\r\n
 \t\t\t\t"tolerance" : "pointer",\r\n
@@ -11442,7 +11872,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tcmMap = {}, tid= ts.p.id+"_";\r\n
 \t\t\t\t\t$.each(colModel, function(i) { cmMap[this.name]=i; });\r\n
 \t\t\t\t\tvar permutation = [];\r\n
-\t\t\t\t\tth.each(function(i) {\r\n
+\t\t\t\t\tth.each(function() {\r\n
 \t\t\t\t\t\tvar id = $(">div", this).get(0).id.replace(/^jqgh_/, "").replace(tid,"");\r\n
 \t\t\t\t\t\t\tif (id in cmMap) {\r\n
 \t\t\t\t\t\t\t\tpermutation.push(cmMap[id]);\r\n
@@ -11478,7 +11908,7 @@ $.jgrid.extend({\r\n
 \t},\r\n
     columnChooser : function(opts) {\r\n
         var self = this;\r\n
-\t\tif($("#colchooser_"+self[0].p.id).length ) { return; }\r\n
+\t\tif($("#colchooser_"+$.jgrid.jqID(self[0].p.id)).length ) { return; }\r\n
         var selector = $(\'<div id="colchooser_\'+self[0].p.id+\'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>\');\r\n
         var select = $(\'select\', selector);\r\n
 \t\t\r\n
@@ -11511,7 +11941,9 @@ $.jgrid.extend({\r\n
                "destroy")\r\n
                */\r\n
             "dlog" : "dialog",\r\n
-\r\n
+\t\t\t"dialog_opts" : {\r\n
+\t\t\t\t"minWidth": 470\r\n
+\t\t\t},\r\n
             /* dlog_opts is either an option object to be passed \r\n
                to "dlog", or (more likely) a function that creates\r\n
                the options object.\r\n
@@ -11526,7 +11958,7 @@ $.jgrid.extend({\r\n
                 buttons[opts.bCancel] = function() {\r\n
                     opts.cleanup(true);\r\n
                 };\r\n
-                return {\r\n
+                return $.extend(true, {\r\n
                     "buttons": buttons,\r\n
                     "close": function() {\r\n
                         opts.cleanup(true);\r\n
@@ -11534,12 +11966,12 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t"modal" : opts.modal ? opts.modal : false,\r\n
 \t\t\t\t\t"resizable": opts.resizable ? opts.resizable : true,\r\n
                     "width": opts.width+20\r\n
-                };\r\n
+                }, opts.dialog_opts || {});\r\n
             },\r\n
             /* Function to get the permutation array, and pass it to the\r\n
                "done" function */\r\n
             "apply_perm" : function() {\r\n
-                $(\'option\',select).each(function(i) {\r\n
+                $(\'option\',select).each(function() {\r\n
                     if (this.selected) {\r\n
                         self.jqGrid("showCol", colModel[this.value].name);\r\n
                     } else {\r\n
@@ -11614,7 +12046,7 @@ $.jgrid.extend({\r\n
             }\r\n
 \r\n
             select.append("<option value=\'"+i+"\' "+\r\n
-                          (this.hidden?"":"selected=\'selected\'")+">"+colNames[i]+"</option>");\r\n
+                          (this.hidden?"":"selected=\'selected\'")+">"+jQuery.jgrid.stripHtml(colNames[i])+"</option>");\r\n
         });\r\n
         function call(fn, obj) {\r\n
             if (!fn) { return; }\r\n
@@ -11698,7 +12130,7 @@ $.jgrid.extend({\r\n
 \t\t    $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);\r\n
 \t\t}\r\n
 \t\tvar appender = "<table id=\'jqgrid_dnd\' class=\'ui-jqgrid-dnd\'></table>";\r\n
-\t\tif($("#jqgrid_dnd").html() === null) {\r\n
+\t\tif($("#jqgrid_dnd")[0] === undefined) {\r\n
 \t\t\t$(\'body\').append(appender);\r\n
 \t\t}\r\n
 \r\n
@@ -11734,6 +12166,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\tstop :function(ev,ui) {\r\n
 \t\t\t\t\t\tif(ui.helper.dropped && !opts.dragcopy) {\r\n
 \t\t\t\t\t\t\tvar ids = $(ui.helper).attr("id");\r\n
+\t\t\t\t\t\t\tif(ids === undefined) { ids = $(this).attr("id"); }\r\n
 \t\t\t\t\t\t\t$($t).jqGrid(\'delRowData\',ids );\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t// if we have a empty row inserted from start event try to delete it\r\n
@@ -11751,7 +12184,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tvar tid = $(d).closest("table.ui-jqgrid-btable");\r\n
 \t\t\t\t\t\tif(tid.length > 0 && $.data(tid[0],"dnd") !== undefined) {\r\n
 \t\t\t\t\t\t    var cn = $.data(tid[0],"dnd").connectWith;\r\n
-\t\t\t\t\t\t    return $.inArray(\'#\'+this.id,cn) != -1 ? true : false;\r\n
+\t\t\t\t\t\t    return $.inArray(\'#\'+$.jgrid.jqID(this.id),cn) != -1 ? true : false;\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\treturn false;\r\n
 \t\t\t\t\t},\r\n
@@ -11760,13 +12193,15 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tvar accept = $(ui.draggable).attr("id");\r\n
 \t\t\t\t\t\tvar getdata = ui.draggable.parent().parent().jqGrid(\'getRowData\',accept);\r\n
 \t\t\t\t\t\tif(!opts.dropbyname) {\r\n
-\t\t\t\t\t\t\tvar j =0, tmpdata = {}, dropname;\r\n
-\t\t\t\t\t\t\tvar dropmodel = $("#"+this.id).jqGrid(\'getGridParam\',\'colModel\');\r\n
+\t\t\t\t\t\t\tvar j =0, tmpdata = {}, nm;\r\n
+\t\t\t\t\t\t\tvar dropmodel = $("#"+$.jgrid.jqID(this.id)).jqGrid(\'getGridParam\',\'colModel\');\r\n
 \t\t\t\t\t\t\ttry {\r\n
 \t\t\t\t\t\t\t\tfor (var key in getdata) {\r\n
-\t\t\t\t\t\t\t\t\tif(getdata.hasOwnProperty(key) && dropmodel[j]) {\r\n
-\t\t\t\t\t\t\t\t\t\tdropname = dropmodel[j].name;\r\n
-\t\t\t\t\t\t\t\t\t\ttmpdata[dropname] = getdata[key];\r\n
+\t\t\t\t\t\t\t\t\tnm = dropmodel[j].name;\r\n
+\t\t\t\t\t\t\t\t\tif( !(nm == \'cb\' || nm ==\'rn\' || nm == \'subgrid\' )) {\r\n
+\t\t\t\t\t\t\t\t\t\tif(getdata.hasOwnProperty(key) && dropmodel[j]) {\r\n
+\t\t\t\t\t\t\t\t\t\t\ttmpdata[nm] = getdata[key];\r\n
+\t\t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t\t\tj++;\r\n
 \t\t\t\t\t\t\t\t}\r\n
@@ -11777,7 +12212,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\tif(opts.beforedrop && $.isFunction(opts.beforedrop) ) {\r\n
 \t\t\t\t\t\t\t//parameters to this callback - event, element, data to be inserted, sender, reciever\r\n
 \t\t\t\t\t\t\t// should return object which will be inserted into the reciever\r\n
-\t\t\t\t\t\t\tvar datatoinsert = opts.beforedrop.call(this,ev,ui,getdata,$(\'#\'+$t.id),$(this));\r\n
+\t\t\t\t\t\t\tvar datatoinsert = opts.beforedrop.call(this,ev,ui,getdata,$(\'#\'+$.jgrid.jqID($t.p.id)),$(this));\r\n
 \t\t\t\t\t\t\tif (typeof datatoinsert != "undefined" && datatoinsert !== null && typeof datatoinsert == "object") { getdata = datatoinsert; }\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(ui.helper.dropped) {\r\n
@@ -11791,7 +12226,7 @@ $.jgrid.extend({\r\n
 \t\t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t}\r\n
 \t\t\t\t\t\t\t// NULL is interpreted as undefined while null as object\r\n
-\t\t\t\t\t\t\t$("#"+this.id).jqGrid(\'addRowData\',grid,getdata,opts.droppos);\r\n
+\t\t\t\t\t\t\t$("#"+$.jgrid.jqID(this.id)).jqGrid(\'addRowData\',grid,getdata,opts.droppos);\r\n
 \t\t\t\t\t\t}\r\n
 \t\t\t\t\t\tif(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }\r\n
 \t\t\t\t\t}}, opts.drop_opts || {});\r\n
@@ -11835,7 +12270,7 @@ $.jgrid.extend({\r\n
 \t},\r\n
 \tgridResize : function(opts) {\r\n
 \t\treturn this.each(function(){\r\n
-\t\t\tvar $t = this;\r\n
+\t\t\tvar $t = this, gID = $.jgrid.jqID($t.p.id);\r\n
 \t\t\tif(!$t.grid || !$.fn.resizable) { return; }\r\n
 \t\t\topts = $.extend({}, opts || {});\r\n
 \t\t\tif(opts.alsoResize ) {\r\n
@@ -11851,18 +12286,18 @@ $.jgrid.extend({\r\n
 \t\t\t\topts._stop_ = false;\r\n
 \t\t\t}\r\n
 \t\t\topts.stop = function (ev, ui) {\r\n
-\t\t\t\t$($t).jqGrid(\'setGridParam\',{height:$("#gview_"+$t.p.id+" .ui-jqgrid-bdiv").height()});\r\n
+\t\t\t\t$($t).jqGrid(\'setGridParam\',{height:$("#gview_"+gID+" .ui-jqgrid-bdiv").height()});\r\n
 \t\t\t\t$($t).jqGrid(\'setGridWidth\',ui.size.width,opts.shrinkToFit);\r\n
 \t\t\t\tif(opts._stop_) { opts._stop_.call($t,ev,ui); }\r\n
 \t\t\t};\r\n
 \t\t\tif(opts._alsoResize_) {\r\n
-\t\t\t\tvar optstest = "{\\\'#gview_"+$t.p.id+" .ui-jqgrid-bdiv\\\':true,\'" +opts._alsoResize_+"\':true}";\r\n
+\t\t\t\tvar optstest = "{\\\'#gview_"+gID+" .ui-jqgrid-bdiv\\\':true,\'" +opts._alsoResize_+"\':true}";\r\n
 \t\t\t\topts.alsoResize = eval(\'(\'+optstest+\')\'); // the only way that I found to do this\r\n
 \t\t\t} else {\r\n
-\t\t\t\topts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+$t.p.id);\r\n
+\t\t\t\topts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+gID);\r\n
 \t\t\t}\r\n
 \t\t\tdelete opts._alsoResize_;\r\n
-\t\t\t$("#gbox_"+$t.p.id).resizable(opts);\r\n
+\t\t\t$("#gbox_"+gID).resizable(opts);\r\n
 \t\t});\r\n
 \t}\r\n
 });\r\n
diff --git a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/ui.jqgrid.css.xml b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/ui.jqgrid.css.xml
index f5c0e30f40580061bdf0fc066f1228a32ccb3c3e..0cfd40528576918d9ff742e2e77efa73dcc48134 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/ui.jqgrid.css.xml
+++ b/bt5/erp5_jquery_plugin_jqgrid/PathTemplateItem/portal_skins/erp5_jquery/jquery/plugin/jqgrid/ui.jqgrid.css.xml
@@ -12,7 +12,7 @@
         </item>
         <item>
             <key> <string>_EtagSupport__etag</string> </key>
-            <value> <string>ts30690424.51</string> </value>
+            <value> <string>ts58176310.37</string> </value>
         </item>
         <item>
             <key> <string>__name__</string> </key>
@@ -25,8 +25,8 @@
         <item>
             <key> <string>data</string> </key>
             <value> <string>/*Grid*/\r\n
-.ui-jqgrid {position: relative; font-size:11px;}\r\n
-.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em;}\r\n
+.ui-jqgrid {position: relative;}\r\n
+.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em; font-size:11px;}\r\n
 /* caption*/\r\n
 .ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0px none;border-right: 0px none; border-top: 0px none;}\r\n
 .ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; }\r\n
@@ -66,7 +66,7 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 .ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\r\n
 .ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\r\n
 .ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0px; border: 0px none;}\r\n
-.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none;\tborder:0 none;}\r\n
+.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;}\r\n
 /* footer */\r\n
 .ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0em;padding: 0em; overflow: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}\r\n
 .ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0em;}\r\n
@@ -74,7 +74,7 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 .ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\r\n
 .ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\r\n
 /* Pager*/\r\n
-.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;}\r\n
+.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;font-size:11px;}\r\n
 .ui-jqgrid .ui-pager-control {position: relative;}\r\n
 .ui-jqgrid .ui-pg-table {position: relative; padding-bottom:2px; width:auto; margin: 0em;}\r\n
 .ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:1px;}\r\n
@@ -86,12 +86,15 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 .ui-jqgrid .ui-pg-selbox {font-size:.8em; line-height:18px; display:block; height:18px; margin: 0em;}\r\n
 .ui-jqgrid .ui-separator {height: 18px; border-left: 1px solid #ccc ; border-right: 1px solid #ccc ; margin: 1px; float: right;}\r\n
 .ui-jqgrid .ui-paging-info {font-weight: normal;height:19px; margin-top:3px;margin-right:4px;}\r\n
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}\r\n
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;position:relative;}\r\n
 .ui-jqgrid .ui-jqgrid-pager .ui-pg-button { cursor:pointer; }\r\n
 .ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon {float:left;margin:0 2px;}\r\n
 .ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { margin: 0em;}\r\n
 .ui-jqgrid td textarea {width:auto;height:auto;}\r\n
 .ui-jqgrid .ui-jqgrid-toppager {border-left: 0px none !important;border-right: 0px none !important; border-top: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px !important;white-space: nowrap;overflow: hidden;}\r\n
+.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative;}\r\n
+.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; }\r\n
+.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon {float:left;margin:0 2px;}\r\n
 /*subgrid*/\r\n
 .ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}\r\n
 .ui-jqgrid .ui-subgrid {margin:0em;padding:0em; width:100%;}\r\n
@@ -101,7 +104,7 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 .ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0px 0px 1px 0px;}\r\n
 .ui-jqgrid .ui-th-subgrid {height:20px;}\r\n
 /* loading */\r\n
-.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important;}\r\n
+.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;}\r\n
 .ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}\r\n
 * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+\'px\');height: expression(this.parentNode.offsetHeight+\'px\');}\r\n
 * .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+\'px\');height: expression(this.parentNode.offsetHeight+\'px\');}\r\n
@@ -130,7 +133,7 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 .ui-jqdialog-content input.FormElement {padding:.3em}\r\n
 .ui-jqdialog-content .data-line {padding-top:.1em;border: 0px none;}\r\n
 \r\n
-.ui-jqdialog-content .CaptionTD {text-align: left; vertical-align: middle;border: 0px none; padding: 2px;white-space: nowrap;}\r\n
+.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0px none; padding: 2px;white-space: nowrap;}\r\n
 .ui-jqdialog-content .DataTD {padding: 2px; border: 0px none; vertical-align: top;}\r\n
 .ui-jqdialog-content .form-view-data {white-space:pre}\r\n
 .fm-button { display: inline-block; margin:0 4px 0 0; padding: .4em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }\r\n
@@ -142,6 +145,11 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 /* End Eorm edit */\r\n
 /*.ui-jqgrid .edit-cell {}*/\r\n
 .ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0px none;}\r\n
+/* inline edit actions button*/\r\n
+.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span,\r\n
+.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span {\r\n
+    margin: -1px;\r\n
+}\r\n
 /* Tree Grid */\r\n
 .ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}\r\n
 .ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}\r\n
@@ -159,7 +167,7 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
 .ui-jqgrid .ui-sort-rtl {left:0px;}\r\n
 .ui-jqgrid .tree-wrap-ltr {float: left;}\r\n
 .ui-jqgrid .tree-wrap-rtl {float: right;}\r\n
-.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis; -moz-binding:url(\'ellipsis-xbl.xml#ellipsis\');}\r\n
+.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis;}\r\n
 </string> </value>
         </item>
         <item>
@@ -168,7 +176,7 @@ tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}\r\n
         </item>
         <item>
             <key> <string>size</string> </key>
-            <value> <int>11841</int> </value>
+            <value> <int>12198</int> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
diff --git a/bt5/erp5_jquery_plugin_jqgrid/bt/description b/bt5/erp5_jquery_plugin_jqgrid/bt/description
index e448e7c65db4a0a0db77a6ffc5d8f53e6a69eafb..479d0f77a04b78c24bae98d741beff9ba1f7ec6d 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/bt/description
+++ b/bt5/erp5_jquery_plugin_jqgrid/bt/description
@@ -1 +1,2 @@
-This  Business Template contains only static files of  JQuery's jqGrid Plugin. 
\ No newline at end of file
+This  Business Template contains only static files of  JQuery's jqGrid Plugin 4.4.1.
+* http://www.trirand.com/blog/ 
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_jqgrid/bt/license b/bt5/erp5_jquery_plugin_jqgrid/bt/license
index 3a3e12bcad97e4b3bdd6a8bb499fd23a4bcb0819..e6816b9c6b675e710f6fada261827c20bde2fc18 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/bt/license
+++ b/bt5/erp5_jquery_plugin_jqgrid/bt/license
@@ -1 +1 @@
-GPL
\ No newline at end of file
+MIT/GPL
\ No newline at end of file
diff --git a/bt5/erp5_jquery_plugin_jqgrid/bt/revision b/bt5/erp5_jquery_plugin_jqgrid/bt/revision
index d8263ee9860594d2806b0dfd1bfd17528b0ba2a4..e440e5c842586965a7fb77deda2eca68612b1f53 100644
--- a/bt5/erp5_jquery_plugin_jqgrid/bt/revision
+++ b/bt5/erp5_jquery_plugin_jqgrid/bt/revision
@@ -1 +1 @@
-2
\ No newline at end of file
+3
\ No newline at end of file