[
  {
    "path": "README.md",
    "content": "Flexigrid for jQuery v1.1\n==========================\n\nLightweight but rich data grid with re-sizable columns and a scrolling data to match the headers, plus an ability to connect to an XML or JSON data source using Ajax to load the content.\n\nSimilar in concept with the Ext Grid only its pure jQuery love, which makes it light weight and follows the jQuery mantra of running with the least amount of configuration.\n\n## Features\n\n* Resizable columns\n* Resizable height and width\n* Sortable column headers\n* Cool theme\n* Can convert an ordinary table\n* Ability to connect to an ajax data source (XML and JSON)\n* Paging\n* Show/hide columns\n* Toolbar (new)\n* Search (new)\n* Accessible API\n* Resizable Width\n* JSON Support\n* Toolbar\n* Table Toggle Button\n* Show/Hide Columns control have been move to the column headers (try it by mouseovering a header and clicking a black triangle on the right)\n* Fixed paging problem on multiple instances\n* Mootools and Prototype noConflict() compatibility problems fixed\n* New onError event on ajax interaction, (it will pass what the server said in a variable called data), allowing you to handle server problems\n* New $().flexAddData method, allows you to directly add new data to the grid using your own data source.\n* New preProcess API, allows you to modify or process data sent by server before passing it to Flexigrid, allowing you to use your own JSON format for example.\n* Single Rows Select just use { singleSelect: true } in the options\n* Quick Search\n\n## License\n\nCopyright (c) 2008 Paulo P. Marinas (https://github.com/paulopmx/Flexigrid)\nDual licensed under the MIT or GPL Version 2 licenses.\nhttp://jquery.org/license\n \n"
  },
  {
    "path": "css/flexigrid.css",
    "content": "@charset \"UTF-8\";\r\n/* CSS Document */\r\n.flexigrid {\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 11px;\r\n\tline-height: normal;\r\n\tposition: relative;\r\n\tborder: 0px solid #eee;\r\n\toverflow: hidden;\r\n\tcolor: #000;\r\n}\r\n\r\n.flexigrid.hideBody {\r\n\theight: 26px !important;\r\n\tborder-bottom: 1px solid #ccc;\r\n}\r\n\r\n.ie6fullwidthbug {\r\n\tborder-right: 0px solid #ccc;\r\n\tpadding-right: 2px;\r\n}\r\n\r\n.flexigrid div.nDiv {\r\n\tbackground: #eee url(images/line.gif) repeat-y -1px top;\r\n\tborder: 1px solid #ccc;\r\n\tborder-top: 0px;\r\n\toverflow: auto;\r\n\tleft: 0px;\r\n\tposition: absolute;\r\n\tz-index: 999;\r\n\tfloat: left;\r\n}\r\n\r\n.flexigrid div.nDiv table {\r\n\tmargin: 2px;\r\n}\r\n\r\n.flexigrid div.hDivBox {\r\n\tfloat: left;\r\n\tpadding-right: 40px;\r\n}\r\n\r\n.flexigrid div.bDiv table {\r\n\tmargin-bottom: 10px;\r\n}\r\n\r\n.flexigrid div.bDiv table.autoht {\r\n\tborder-bottom: 0px;\r\n\tmargin-bottom: 0px;\r\n}\r\n\r\n.flexigrid div.nDiv td {\r\n\tpadding: 2px 3px;\r\n\tborder: 1px solid #eee;\r\n\tcursor: default;\r\n}\r\n\r\n.flexigrid div.nDiv tr:hover td,.flexigrid div.nDiv tr.ndcolover td {\r\n\tbackground: #d5effc url(images/hl.png) repeat-x top;\r\n\tborder: 1px solid #a8d8eb;\r\n}\r\n\r\n.flexigrid div.nDiv td.ndcol1 {\r\n\tborder-right: 1px solid #ccc;\r\n}\r\n\r\n.flexigrid div.nDiv td.ndcol2 {\r\n\tborder-left: 1px solid #fff;\r\n\tpadding-right: 10px;\r\n}\r\n\r\n.flexigrid div.nDiv tr:hover td.ndcol1,.flexigrid div.nDiv tr.ndcolover td.ndcol1\r\n\t{\r\n\tborder-right: 1px solid #d2e3ec;\r\n}\r\n\r\n.flexigrid div.nDiv tr:hover td.ndcol2,.flexigrid div.nDiv tr.ndcolover td.ndcol2\r\n\t{\r\n\tborder-left: 1px solid #eef8ff;\r\n}\r\n\r\n.flexigrid div.nBtn {\r\n\tposition: absolute;\r\n\theight: 24px;\r\n\twidth: 14px;\r\n\tz-index: 900;\r\n\tbackground: #fafafa url(images/fhbg.gif) repeat-x bottom;\r\n\tborder: 0px solid #ccc;\r\n\tborder-left: 1px solid #ccc;\r\n\ttop: 0px;\r\n\tleft: 0px;\r\n\tmargin-top: 1px;\r\n\tcursor: pointer;\r\n\tdisplay: none;\r\n}\r\n\r\n.flexigrid div.nBtn div {\r\n\theight: 24px;\r\n\twidth: 12px;\r\n\tborder-left: 1px solid #fff;\r\n\tfloat: left;\r\n\tbackground: url(images/ddn.png) no-repeat center;\r\n}\r\n\r\n.flexigrid div.nBtn.srtd {\r\n\tbackground: url(images/wbg.gif) repeat-x 0px -1px;\r\n}\r\n\r\n.flexigrid div.mDiv {\r\n\tbackground: url(images/wbg.gif) repeat-x top;\r\n\tborder: 1px solid #ccc;\r\n\tborder-bottom: 0px;\r\n\tborder-top: 0px;\r\n\tfont-weight: bold;\r\n\tdisplay: block;\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\tposition: relative;\r\n}\r\n\r\n.flexigrid div.mDiv div {\r\n\tpadding: 6px;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle {\r\n\tposition: absolute;\r\n\ttop: 4px;\r\n\tright: 3px;\r\n\tpadding: 0px;\r\n\theight: 16px;\r\n\twidth: 16px;\r\n\toverflow: hidden;\r\n\tborder: 1px solid #ccc;\r\n\tcursor: pointer;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle:hover {\r\n\tbackground-position: left -2px;\r\n\tborder-color: #bbb;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle span {\r\n\tdisplay: block;\r\n\tborder-left: 1px solid #eee;\r\n\tborder-top: 1px solid #fff;\r\n\tborder-bottom: 1px solid #ddd;\r\n\twidth: 14px;\r\n\theight: 14px;\r\n\tbackground: url(images/uup.png) no-repeat center;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle.vsble span {\r\n\tbackground: url(images/ddn.png) no-repeat center;\r\n}\r\n\r\n.flexigrid div.tDiv /*toolbar*/ {\r\n\tbackground: #fafafa url(images/bg.gif) repeat-x top;\r\n\tposition: relative;\r\n\tborder: 1px solid #ccc;\r\n\tborder-bottom: 0px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.tDiv2 {\r\n\tfloat: left;\r\n\tclear: both;\r\n\tpadding: 1px;\r\n}\r\n\r\n.flexigrid div.sDiv /*toolbar*/ {\r\n\tbackground: #fafafa url(images/bg.gif) repeat-x top;\r\n\tposition: relative;\r\n\tborder: 1px solid #ccc;\r\n\tborder-top: 0px;\r\n\toverflow: hidden;\r\n\tdisplay: none;\r\n}\r\n\r\n.flexigrid div.sDiv2 {\r\n\tfloat: left;\r\n\tclear: both;\r\n\tpadding: 5px;\r\n\tpadding-left: 5px;\r\n\twidth: 1024px;\r\n}\r\n\r\n.flexigrid div.sDiv2 input,.flexigrid div.sDiv2 select {\r\n\tvertical-align: middle;\r\n}\r\n\r\n.flexigrid div.btnseparator {\r\n\tfloat: left;\r\n\theight: 22px;\r\n\tborder-left: 1px solid #ccc;\r\n\tborder-right: 1px solid #fff;\r\n\tmargin: 1px;\r\n}\r\n\r\n.flexigrid div.fbutton {\r\n\tfloat: left;\r\n\tdisplay: block;\r\n\tcursor: pointer;\r\n\tpadding: 1px;\r\n}\r\n\r\n.flexigrid div.fbutton div {\r\n\tfloat: left;\r\n\tpadding: 1px 3px;\r\n}\r\n\r\n.flexigrid div.fbutton span {\r\n\tfloat: left;\r\n\tdisplay: block;\r\n\tpadding: 3px;\r\n}\r\n\r\n.flexigrid div.fbutton:hover,.flexigrid div.fbutton.fbOver {\r\n\tpadding: 0px;\r\n\tborder: 1px solid #ccc;\r\n}\r\n\r\n.flexigrid div.fbutton:hover div,.flexigrid div.fbutton.fbOver div {\r\n\tpadding: 0px 2px;\r\n\tborder-left: 1px solid #fff;\r\n\tborder-top: 1px solid #fff;\r\n\tborder-right: 1px solid #eee;\r\n\tborder-bottom: 1px solid #eee;\r\n}\r\n\r\n/* end toolbar*/\r\n.flexigrid div.hDiv {\r\n\tbackground: #fafafa url(images/fhbg.gif) repeat-x bottom;\r\n\tposition: relative;\r\n\tborder: 1px solid #ccc;\r\n\tborder-bottom: 0px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.hDiv table {\r\n\tborder-right: 1px solid #fff;\r\n}\r\n\r\n.flexigrid div.cDrag {\r\n\tfloat: left;\r\n\tposition: absolute;\r\n\tz-index: 2;\r\n\toverflow: visible;\r\n}\r\n\r\n.flexigrid div.cDrag div {\r\n\tfloat: left;\r\n\tbackground: none;\r\n\tdisplay: block;\r\n\tposition: absolute;\r\n\theight: 24px;\r\n\twidth: 5px;\r\n\tcursor: col-resize;\r\n}\r\n\r\n.flexigrid div.cDrag div:hover,.flexigrid div.cDrag div.dragging {\r\n\tbackground: url(images/line.gif) repeat-y 2px center;\r\n}\r\n\r\n.flexigrid div.iDiv {\r\n\tborder: 1px solid #316ac5;\r\n\tposition: absolute;\r\n\toverflow: visible;\r\n\tbackground: none;\r\n}\r\n\r\n.flexigrid div.iDiv input,.flexigrid div.iDiv select,.flexigrid div.iDiv textarea\r\n\t{\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 11px;\r\n}\r\n\r\n.flexigrid div.iDiv input.tb {\r\n\tborder: 0px;\r\n\tpadding: 0px;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tpadding: 0px;\r\n\tbackground: none;\r\n}\r\n\r\n.flexigrid div.bDiv {\r\n\tborder: 1px solid #ccc;\r\n\tborder-top: 0px;\r\n\tbackground: #fff;\r\n\toverflow: auto;\r\n\tposition: relative;\r\n}\r\n\r\n.flexigrid div.bDiv table {\r\n\tborder-bottom: 1px solid #ccc;\r\n}\r\n\r\n.flexigrid div.hGrip {\r\n\tposition: absolute;\r\n\ttop: 0px;\r\n\tright: 0px;\r\n\theight: 5px;\r\n\twidth: 5px;\r\n\tbackground: url(images/line.gif) repeat-x center;\r\n\tmargin-right: 1px;\r\n\tcursor: col-resize;\r\n}\r\n\r\n.flexigrid div.hGrip:hover,.flexigrid div.hGrip.hgOver {\r\n\tborder-right: 1px solid #999;\r\n\tmargin-right: 0px;\r\n}\r\n\r\n.flexigrid div.vGrip {\r\n\theight: 5px;\r\n\toverflow: hidden;\r\n\tposition: relative;\r\n\tbackground: #fafafa url(images/wbg.gif) repeat-x 0px -1px;\r\n\tborder: 1px solid #ccc;\r\n\tborder-top: 0px;\r\n\ttext-align: center;\r\n\tcursor: row-resize;\r\n}\r\n\r\n.flexigrid div.vGrip span {\r\n\tdisplay: block;\r\n\tmargin: 1px auto;\r\n\twidth: 20px;\r\n\theight: 1px;\r\n\toverflow: hidden;\r\n\tborder-top: 1px solid #aaa;\r\n\tborder-bottom: 1px solid #aaa;\r\n\tbackground: none;\r\n}\r\n\r\n.flexigrid div.hDiv th,.flexigrid  div.bDiv td\r\n\t/* common cell properties*/ {\r\n\ttext-align: left;\r\n\tborder-right: 1px solid #ddd;\r\n\tborder-left: 1px solid #fff;\r\n\toverflow: hidden;\r\n\tvertical-align: top !important;\r\n\tpadding-left: 0;\r\n\tpadding-right: 0;\r\n}\r\n\r\n.flexigrid div.hDiv th div,.flexigrid  div.bDiv td  div,div.colCopy div\r\n\t/* common inner cell properties*/ {\r\n\tpadding: 5px;\r\n\tborder-left: 0px solid #fff;\r\n}\r\n\r\n.flexigrid div.hDiv th,div.colCopy {\r\n\tfont-weight: normal;\r\n\theight: 24px;\r\n\tcursor: default;\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n}\r\n\r\ndiv.colCopy {\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 11px;\r\n\tbackground: #fafafa url(images/fhbg.gif) repeat-x bottom;\r\n\tborder: 1px solid #ccc;\r\n\tborder-bottom: 0px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.hDiv th.sorted {\r\n\tbackground: url(images/wbg.gif) repeat-x 0px -1px;\r\n\tborder-bottom: 0px solid #ccc;\r\n}\r\n\r\n.flexigrid div.hDiv th.thOver {\r\n\t\r\n}\r\n\r\n.flexigrid div.hDiv th.thOver div,.flexigrid div.hDiv th.sorted.thOver div\r\n\t{\r\n\tborder-bottom: 1px solid orange;\r\n\tpadding-bottom: 4px;\r\n}\r\n\r\n.flexigrid div.hDiv th.sorted div {\r\n\tborder-bottom: 0px solid #ccc;\r\n\tpadding-bottom: 5px;\r\n}\r\n\r\n.flexigrid div.hDiv th.thMove {\r\n\tbackground: #fff;\r\n\tcolor: #fff;\r\n}\r\n\r\n.flexigrid div.hDiv th.sorted.thMove div {\r\n\tborder-bottom: 1px solid #fff;\r\n\tpadding-bottom: 4px\r\n}\r\n\r\n.flexigrid div.hDiv th.thMove div {\r\n\tbackground: #fff !important;\r\n}\r\n\r\n.flexigrid div.hDiv th div.sdesc {\r\n\tbackground: url(images/dn.png) no-repeat center top;\r\n}\r\n\r\n.flexigrid div.hDiv th div.sasc {\r\n\tbackground: url(images/up.png) no-repeat center top;\r\n}\r\n\r\n.flexigrid div.bDiv td {\r\n\tborder-bottom: 1px solid #fff;\r\n\tvertical-align: top;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.flexigrid div.hDiv th div {\r\n\t\r\n}\r\n\r\n.flexigrid span.cdropleft {\r\n\tdisplay: block;\r\n\tbackground: url(images/prev.gif) no-repeat -4px center;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tposition: relative;\r\n\ttop: -24px;\r\n\tmargin-bottom: -24px;\r\n\tz-index: 3;\r\n}\r\n\r\n.flexigrid div.hDiv span.cdropright {\r\n\tdisplay: block;\r\n\tbackground: url(images/next.gif) no-repeat 12px center;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tfloat: right;\r\n\tposition: relative;\r\n\ttop: -24px;\r\n\tmargin-bottom: -24px;\r\n}\r\n\r\n.flexigrid div.bDiv td div {\r\n\tborder-top: 0px solid #fff;\r\n\tpadding-bottom: 4px;\r\n}\r\n\r\n.flexigrid tr td.sorted {\r\n\tbackground: #f3f3f3;\r\n\tborder-right: 1px solid #ddd;\r\n\tborder-bottom: 1px solid #f3f3f3;\r\n}\r\n\r\n.flexigrid tr td.sorted div {\r\n\t\r\n}\r\n\r\n.flexigrid tr.erow td {\r\n\tbackground: #f7f7f7;\r\n\tborder-bottom: 1px solid #f7f7f7;\r\n}\r\n\r\n.flexigrid tr.erow td.sorted {\r\n\tbackground: #e3e3e3;\r\n\tborder-bottom: 1px solid #e3e3e3;\r\n}\r\n\r\n.flexigrid tr.erow td.sorted div {\r\n\t\r\n}\r\n\r\n.flexigrid div.bDiv tr:hover td,.flexigrid div.bDiv tr:hover td.sorted,.flexigrid div.bDiv tr.trOver td.sorted,.flexigrid div.bDiv tr.trOver td\r\n\t{\r\n\tbackground: #d9ebf5;\r\n\tborder-left: 1px solid #eef8ff;\r\n\tborder-bottom: 1px dotted #a8d8eb;\r\n}\r\n\r\n.flexigrid div.bDiv tr.trSelected:hover td,.flexigrid div.bDiv tr.trSelected:hover td.sorted,.flexigrid div.bDiv tr.trOver.trSelected td.sorted,.flexigrid div.bDiv tr.trOver.trSelected td,.flexigrid tr.trSelected td.sorted,.flexigrid tr.trSelected td\r\n\t{\r\n\tbackground: #d5effc url(images/hl.png) repeat-x top;\r\n\tborder-right: 1px solid #d2e3ec;\r\n\tborder-left: 1px solid #eef8ff;\r\n\tborder-bottom: 1px solid #a8d8eb;\r\n}\r\n\r\n/* novstripe adjustments */\r\n.flexigrid.novstripe .bDiv table {\r\n\tborder-bottom: 1px solid #ccc;\r\n\tborder-right: 1px solid #ccc;\r\n}\r\n\r\n.flexigrid.novstripe  div.bDiv td {\r\n\tborder-right-color: #fff;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr.erow td.sorted {\r\n\tborder-right-color: #e3e3e3;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr td.sorted {\r\n\tborder-right-color: #f3f3f3;\r\n}\r\n\r\n.flexigrid.novstripe  div.bDiv tr.erow td {\r\n\tborder-right-color: #f7f7f7;\r\n\tborder-left-color: #f7f7f7;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr.trSelected:hover td,.flexigrid.novstripe div.bDiv tr.trSelected:hover td.sorted,.flexigrid.novstripe div.bDiv tr.trOver.trSelected td.sorted,.flexigrid.novstripe div.bDiv tr.trOver.trSelected td,.flexigrid.novstripe tr.trSelected td.sorted,.flexigrid.novstripe tr.trSelected td\r\n\t{\r\n\tborder-right: 1px solid #0066FF;\r\n\tborder-left: 1px solid #0066FF;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr.trOver td,.flexigrid.novstripe div.bDiv tr:hover td\r\n\t{\r\n\tborder-left-color: #d9ebf5;\r\n\tborder-right-color: #d9ebf5;\r\n}\r\n\r\n/* end novstripe */\r\n.flexigrid div.pDiv {\r\n\tbackground: url(images/wbg.gif) repeat-x 0 -1px;\r\n\tborder: 1px solid #ccc;\r\n\tborder-top: 0px;\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\tposition: relative;\r\n}\r\n\r\n.flexigrid div.pDiv div.pDiv2 {\r\n\tmargin: 3px;\r\n\tmargin-left: -2px;\r\n\tfloat: left;\r\n\twidth: 1024px;\r\n}\r\n\r\ndiv.pGroup {\r\n\tfloat: left;\r\n\tbackground: none;\r\n\theight: 24px;\r\n\tmargin: 0px 5px;\r\n}\r\n\r\n.flexigrid div.pDiv .pPageStat,.flexigrid div.pDiv .pcontrol {\r\n\tposition: relative;\r\n\ttop: 5px;\r\n\toverflow: visible;\r\n}\r\n\r\n.flexigrid div.pDiv input {\r\n\tvertical-align: text-top;\r\n\tposition: relative;\r\n\ttop: -5px;\r\n\tmargin: 3px;\r\n}\r\n\r\n.flexigrid div.pDiv select {\r\n\tmargin: 3px;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton {\r\n\tfloat: left;\r\n\twidth: 22px;\r\n\theight: 22px;\r\n\tborder: 0px;\r\n\tcursor: pointer;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton:hover,.flexigrid div.pDiv  div.pButton.pBtnOver\r\n\t{\r\n\twidth: 20px;\r\n\theight: 20px;\r\n\tborder: 1px solid #ccc;\r\n\tcursor: pointer;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton span {\r\n\twidth: 20px;\r\n\theight: 20px;\r\n\tdisplay: block;\r\n\tfloat: left;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton:hover span,.flexigrid div.pDiv  div.pButton.pBtnOver span\r\n\t{\r\n\twidth: 19px;\r\n\theight: 19px;\r\n\tborder-top: 1px solid #fff;\r\n\tborder-left: 1px solid #fff;\r\n}\r\n\r\n.flexigrid .pSearch {\r\n\tbackground: url(images/magnifier.png) no-repeat center;\r\n}\r\n\r\n.flexigrid .pFirst {\r\n\tbackground: url(images/first.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pPrev {\r\n\tbackground: url(images/prev.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pNext {\r\n\tbackground: url(images/next.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pLast {\r\n\tbackground: url(images/last.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pReload {\r\n\tbackground: url(images/load.png) no-repeat center;\r\n}\r\n\r\n.flexigrid .pReload.loading {\r\n\tbackground: url(images/load.gif) no-repeat center;\r\n}\r\n\r\n/* ie adjustments */\r\n.flexigrid.ie div.hDiv th div,.flexigrid.ie  div.bDiv td  div,div.colCopy.ie div\r\n\t/* common inner cell properties*/ {\r\n\toverflow: hidden;\r\n}"
  },
  {
    "path": "css/flexigrid.less",
    "content": "@charset \"UTF-8\";\r\n\r\n@basecolor: #fff;\r\n@forecolor: #000;\r\n\r\n@borderlight1: #fff;\r\n@borderlight2: #eee;\r\n@borderlight3: #ddd;\r\n@borderlight4: #ccc;\r\n@borderlight5: #bbb;\r\n@borderlight6: #aaa;\r\n@borderlight7: #f7f7f7;\r\n@borderlight8: #f3f3f3;\r\n@borderlight9: #eef8ff;\r\n@borderlight10: #e3e3e3;\r\n@borderlight11: #d9ebf5;\r\n@borderlight12: #d2e3ec;\r\n@borderlight13: #a8d8eb;\r\n@borderlight14: #999;\r\n@borderlight15: #316ac5;\r\n@borderlight16: #0066FF;\r\n\r\n@back1: #fafafa;\r\n@back2: #f7f7f7;\r\n@back3: #f3f3f3;\r\n@back4: #eee;\r\n@back5: #e3e3e3;\r\n@back6: #d5effc;\r\n\r\n.background-gradient (@start: #000) {\r\n\tbackground: @start;\r\n\tbackground: -moz-linear-gradient(top,  @start 0%, darken(@start,10%) 100%);\r\n\tbackground: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@start), color-stop(100%,darken(@start,10%)));\r\n\tbackground: -webkit-linear-gradient(top,  @start 0%,darken(@start,10%) 100%);\r\n\tbackground: -o-linear-gradient(top,  @start 0%,darken(@start,10%) 100%);\r\n\tbackground: -ms-linear-gradient(top,  @start 0%,darken(@start,10%) 100%);\r\n\tbackground: linear-gradient(to bottom,  @start 0%,darken(@start,10%) 100%);\r\n\tfilter: progid:DXImageTransform.Microsoft.gradient( startColorstr=@start, endColorstr=darken(@start,10%),GradientType=0 );\r\n}\r\n\r\n/* CSS Document */\r\n.flexigrid {\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 11px;\r\n\tline-height: normal;\r\n\tposition: relative;\r\n\tborder: 0px solid @borderlight2;\r\n\toverflow: hidden;\r\n\tcolor: @forecolor;\r\n}\r\n\r\n.flexigrid.hideBody {\r\n\theight: 26px !important;\r\n\tborder-bottom: 1px solid @borderlight4;\r\n}\r\n\r\n.ie6fullwidthbug {\r\n\tborder-right: 0px solid @borderlight4;\r\n\tpadding-right: 2px;\r\n}\r\n\r\n.flexigrid div.nDiv {\r\n\tbackground: @back4 url(images/line.gif) repeat-y -1px top;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-top: 0px;\r\n\toverflow: auto;\r\n\tleft: 0px;\r\n\tposition: absolute;\r\n\tz-index: 999;\r\n\tfloat: left;\r\n}\r\n\r\n.flexigrid div.nDiv table {\r\n\tmargin: 2px;\r\n}\r\n\r\n.flexigrid div.hDivBox {\r\n\tfloat: left;\r\n\tpadding-right: 40px;\r\n}\r\n\r\n.flexigrid div.bDiv table {\r\n\tmargin-bottom: 10px;\r\n}\r\n\r\n.flexigrid div.bDiv table.autoht {\r\n\tborder-bottom: 0px;\r\n\tmargin-bottom: 0px;\r\n}\r\n\r\n.flexigrid div.nDiv td {\r\n\tpadding: 2px 3px;\r\n\tborder: 1px solid @borderlight2;\r\n\tcursor: default;\r\n}\r\n\r\n.flexigrid div.nDiv tr:hover td,.flexigrid div.nDiv tr.ndcolover td {\r\n\tbackground: @back6 url(images/hl.png) repeat-x top;\r\n\tborder: 1px solid @borderlight13;\r\n}\r\n\r\n.flexigrid div.nDiv td.ndcol1 {\r\n\tborder-right: 1px solid @borderlight4;\r\n}\r\n\r\n.flexigrid div.nDiv td.ndcol2 {\r\n\tborder-left: 1px solid @borderlight1;\r\n\tpadding-right: 10px;\r\n}\r\n\r\n.flexigrid div.nDiv tr:hover td.ndcol1,.flexigrid div.nDiv tr.ndcolover td.ndcol1\r\n\t{\r\n\tborder-right: 1px solid @borderlight12;\r\n}\r\n\r\n.flexigrid div.nDiv tr:hover td.ndcol2,.flexigrid div.nDiv tr.ndcolover td.ndcol2\r\n\t{\r\n\tborder-left: 1px solid @borderlight9;\r\n}\r\n\r\n.flexigrid div.nBtn {\r\n\tposition: absolute;\r\n\theight: 24px;\r\n\twidth: 14px;\r\n\tz-index: 900;\r\n\tbackground: @back1 url(images/fhbg.gif) repeat-x bottom;\r\n\t/*.background-gradient(@back1);*/\r\n\tborder: 0px solid @borderlight4;\r\n\tborder-left: 1px solid @borderlight4;\r\n\ttop: 0px;\r\n\tleft: 0px;\r\n\tmargin-top: 1px;\r\n\tcursor: pointer;\r\n\tdisplay: none;\r\n}\r\n\r\n.flexigrid div.nBtn div {\r\n\theight: 24px;\r\n\twidth: 12px;\r\n\tborder-left: 1px solid @borderlight1;\r\n\tfloat: left;\r\n\tbackground: url(images/ddn.png) no-repeat center;\r\n}\r\n\r\n.flexigrid div.nBtn.srtd {\r\n\tbackground: url(images/wbg.gif) repeat-x 0px -1px;\r\n}\r\n\r\n.flexigrid div.mDiv {\r\n\tbackground: url(images/wbg.gif) repeat-x top;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-bottom: 0px;\r\n\tborder-top: 0px;\r\n\tfont-weight: bold;\r\n\tdisplay: block;\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\tposition: relative;\r\n}\r\n\r\n.flexigrid div.mDiv div {\r\n\tpadding: 6px;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle {\r\n\tposition: absolute;\r\n\ttop: 4px;\r\n\tright: 3px;\r\n\tpadding: 0px;\r\n\theight: 16px;\r\n\twidth: 16px;\r\n\toverflow: hidden;\r\n\tborder: 1px solid @borderlight4;\r\n\tcursor: pointer;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle:hover {\r\n\tbackground-position: left -2px;\r\n\tborder-color: @borderlight5;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle span {\r\n\tdisplay: block;\r\n\tborder-left: 1px solid @borderlight2;\r\n\tborder-top: 1px solid @borderlight1;\r\n\tborder-bottom: 1px solid @borderlight3;\r\n\twidth: 14px;\r\n\theight: 14px;\r\n\tbackground: url(images/uup.png) no-repeat center;\r\n}\r\n\r\n.flexigrid div.mDiv div.ptogtitle.vsble span {\r\n\tbackground: url(images/ddn.png) no-repeat center;\r\n}\r\n\r\n.flexigrid div.tDiv /*toolbar*/ {\r\n\tbackground: @back1 url(images/bg.gif) repeat-x top;\r\n\tposition: relative;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-bottom: 0px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.tDiv2 {\r\n\tfloat: left;\r\n\tclear: both;\r\n\tpadding: 1px;\r\n}\r\n\r\n.flexigrid div.sDiv /*toolbar*/ {\r\n\tbackground: @back1 url(images/bg.gif) repeat-x top;\r\n\tposition: relative;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-top: 0px;\r\n\toverflow: hidden;\r\n\tdisplay: none;\r\n}\r\n\r\n.flexigrid div.sDiv2 {\r\n\tfloat: left;\r\n\tclear: both;\r\n\tpadding: 5px;\r\n\tpadding-left: 5px;\r\n\twidth: 1024px;\r\n}\r\n\r\n.flexigrid div.sDiv2 input,.flexigrid div.sDiv2 select {\r\n\tvertical-align: middle;\r\n}\r\n\r\n.flexigrid div.btnseparator {\r\n\tfloat: left;\r\n\theight: 22px;\r\n\tborder-left: 1px solid @borderlight4;\r\n\tborder-right: 1px solid @borderlight1;\r\n\tmargin: 1px;\r\n}\r\n\r\n.flexigrid div.fbutton {\r\n\tfloat: left;\r\n\tdisplay: block;\r\n\tcursor: pointer;\r\n\tpadding: 1px;\r\n}\r\n\r\n.flexigrid div.fbutton div {\r\n\tfloat: left;\r\n\tpadding: 1px 3px;\r\n}\r\n\r\n.flexigrid div.fbutton span {\r\n\tfloat: left;\r\n\tdisplay: block;\r\n\tpadding: 3px;\r\n}\r\n\r\n.flexigrid div.fbutton:hover,.flexigrid div.fbutton.fbOver {\r\n\tpadding: 0px;\r\n\tborder: 1px solid @borderlight4;\r\n}\r\n\r\n.flexigrid div.fbutton:hover div,.flexigrid div.fbutton.fbOver div {\r\n\tpadding: 0px 2px;\r\n\tborder-left: 1px solid @borderlight1;\r\n\tborder-top: 1px solid @borderlight1;\r\n\tborder-right: 1px solid @borderlight2;\r\n\tborder-bottom: 1px solid @borderlight2;\r\n}\r\n\r\n/* end toolbar*/\r\n.flexigrid div.hDiv {\r\n\tbackground: @back1 url(images/fhbg.gif) repeat-x bottom;\r\n\t/*.background-gradient(@back1);*/\r\n\tposition: relative;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-bottom: 0px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.hDiv table {\r\n\tborder-right: 1px solid @borderlight1;\r\n}\r\n\r\n.flexigrid div.cDrag {\r\n\tfloat: left;\r\n\tposition: absolute;\r\n\tz-index: 2;\r\n\toverflow: visible;\r\n}\r\n\r\n.flexigrid div.cDrag div {\r\n\tfloat: left;\r\n\tbackground: none;\r\n\tdisplay: block;\r\n\tposition: absolute;\r\n\theight: 24px;\r\n\twidth: 5px;\r\n\tcursor: col-resize;\r\n}\r\n\r\n.flexigrid div.cDrag div:hover,.flexigrid div.cDrag div.dragging {\r\n\tbackground: url(images/line.gif) repeat-y 2px center;\r\n}\r\n\r\n.flexigrid div.iDiv {\r\n\tborder: 1px solid @borderlight15;\r\n\tposition: absolute;\r\n\toverflow: visible;\r\n\tbackground: none;\r\n}\r\n\r\n.flexigrid div.iDiv input,.flexigrid div.iDiv select,.flexigrid div.iDiv textarea\r\n\t{\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 11px;\r\n}\r\n\r\n.flexigrid div.iDiv input.tb {\r\n\tborder: 0px;\r\n\tpadding: 0px;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tpadding: 0px;\r\n\tbackground: none;\r\n}\r\n\r\n.flexigrid div.bDiv {\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-top: 0px;\r\n\tbackground: @basecolor;\r\n\toverflow: auto;\r\n\tposition: relative;\r\n}\r\n\r\n.flexigrid div.bDiv table {\r\n\tborder-bottom: 1px solid @borderlight4;\r\n}\r\n\r\n.flexigrid div.hGrip {\r\n\tposition: absolute;\r\n\ttop: 0px;\r\n\tright: 0px;\r\n\theight: 5px;\r\n\twidth: 5px;\r\n\tbackground: url(images/line.gif) repeat-x center;\r\n\tmargin-right: 1px;\r\n\tcursor: col-resize;\r\n}\r\n\r\n.flexigrid div.hGrip:hover,.flexigrid div.hGrip.hgOver {\r\n\tborder-right: 1px solid @borderlight14;\r\n\tmargin-right: 0px;\r\n}\r\n\r\n.flexigrid div.vGrip {\r\n\theight: 5px;\r\n\toverflow: hidden;\r\n\tposition: relative;\r\n\tbackground: @back1 url(images/wbg.gif) repeat-x 0px -1px;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-top: 0px;\r\n\ttext-align: center;\r\n\tcursor: row-resize;\r\n}\r\n\r\n.flexigrid div.vGrip span {\r\n\tdisplay: block;\r\n\tmargin: 1px auto;\r\n\twidth: 20px;\r\n\theight: 1px;\r\n\toverflow: hidden;\r\n\tborder-top: 1px solid @borderlight6;\r\n\tborder-bottom: 1px solid @borderlight6;\r\n\tbackground: none;\r\n}\r\n\r\n.flexigrid div.hDiv th,.flexigrid  div.bDiv td\r\n\t/* common cell properties*/ {\r\n\ttext-align: left;\r\n\tborder-right: 1px solid @borderlight3;\r\n\tborder-left: 1px solid @borderlight1;\r\n\toverflow: hidden;\r\n\tvertical-align: top !important;\r\n\tpadding-left: 0;\r\n\tpadding-right: 0;\r\n}\r\n\r\n.flexigrid div.hDiv th div,.flexigrid  div.bDiv td  div,div.colCopy div\r\n\t/* common inner cell properties*/ {\r\n\tpadding: 5px;\r\n\tborder-left: 0px solid @borderlight1;\r\n}\r\n\r\n.flexigrid div.hDiv th,div.colCopy {\r\n\tfont-weight: normal;\r\n\theight: 24px;\r\n\tcursor: default;\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n}\r\n\r\ndiv.colCopy {\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 11px;\r\n\tbackground: @back1 url(images/fhbg.gif) repeat-x bottom;\r\n\t/*.background-gradient(@back1);*/\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-bottom: 0px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.hDiv th.sorted {\r\n\tbackground: url(images/wbg.gif) repeat-x 0px -1px;\r\n\tborder-bottom: 0px solid @borderlight4;\r\n}\r\n\r\n.flexigrid div.hDiv th.thOver {\r\n\t\r\n}\r\n\r\n.flexigrid div.hDiv th.thOver div,.flexigrid div.hDiv th.sorted.thOver div\r\n\t{\r\n\tborder-bottom: 1px solid orange;\r\n\tpadding-bottom: 4px;\r\n}\r\n\r\n.flexigrid div.hDiv th.sorted div {\r\n\tborder-bottom: 0px solid @borderlight4;\r\n\tpadding-bottom: 5px;\r\n}\r\n\r\n.flexigrid div.hDiv th.thMove {\r\n\tbackground: @basecolor;\r\n\tcolor: @basecolor;\r\n}\r\n\r\n.flexigrid div.hDiv th.sorted.thMove div {\r\n\tborder-bottom: 1px solid @borderlight1;\r\n\tpadding-bottom: 4px\r\n}\r\n\r\n.flexigrid div.hDiv th.thMove div {\r\n\tbackground: @basecolor !important;\r\n}\r\n\r\n.flexigrid div.hDiv th div.sdesc {\r\n\tbackground: url(images/dn.png) no-repeat center top;\r\n}\r\n\r\n.flexigrid div.hDiv th div.sasc {\r\n\tbackground: url(images/up.png) no-repeat center top;\r\n}\r\n\r\n.flexigrid div.bDiv td {\r\n\tborder-bottom: 1px solid @borderlight1;\r\n\tvertical-align: top;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.flexigrid div.hDiv th div {\r\n\t\r\n}\r\n\r\n.flexigrid span.cdropleft {\r\n\tdisplay: block;\r\n\tbackground: url(images/prev.gif) no-repeat -4px center;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tposition: relative;\r\n\ttop: -24px;\r\n\tmargin-bottom: -24px;\r\n\tz-index: 3;\r\n}\r\n\r\n.flexigrid div.hDiv span.cdropright {\r\n\tdisplay: block;\r\n\tbackground: url(images/next.gif) no-repeat 12px center;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tfloat: right;\r\n\tposition: relative;\r\n\ttop: -24px;\r\n\tmargin-bottom: -24px;\r\n}\r\n\r\n.flexigrid div.bDiv td div {\r\n\tborder-top: 0px solid @borderlight1;\r\n\tpadding-bottom: 4px;\r\n}\r\n\r\n.flexigrid tr td.sorted {\r\n\tbackground: @back3;\r\n\tborder-right: 1px solid @borderlight3;\r\n\tborder-bottom: 1px solid @borderlight8;\r\n}\r\n\r\n.flexigrid tr td.sorted div {\r\n\t\r\n}\r\n\r\n.flexigrid tr.erow td {\r\n\tbackground: @back2;\r\n\tborder-bottom: 1px solid @borderlight7;\r\n}\r\n\r\n.flexigrid tr.erow td.sorted {\r\n\tbackground: @back5;\r\n\tborder-bottom: 1px solid @borderlight10;\r\n}\r\n\r\n.flexigrid tr.erow td.sorted div {\r\n\t\r\n}\r\n\r\n.flexigrid div.bDiv tr:hover td,.flexigrid div.bDiv tr:hover td.sorted,.flexigrid div.bDiv tr.trOver td.sorted,.flexigrid div.bDiv tr.trOver td\r\n\t{\r\n\tbackground: @borderlight11;\r\n\tborder-left: 1px solid @borderlight9;\r\n\tborder-bottom: 1px dotted @borderlight13;\r\n}\r\n\r\n.flexigrid div.bDiv tr.trSelected:hover td,.flexigrid div.bDiv tr.trSelected:hover td.sorted,.flexigrid div.bDiv tr.trOver.trSelected td.sorted,.flexigrid div.bDiv tr.trOver.trSelected td,.flexigrid tr.trSelected td.sorted,.flexigrid tr.trSelected td\r\n\t{\r\n\tbackground: @back6 url(images/hl.png) repeat-x top;\r\n\tborder-right: 1px solid @borderlight12;\r\n\tborder-left: 1px solid @borderlight9;\r\n\tborder-bottom: 1px solid @borderlight13;\r\n}\r\n\r\n/* novstripe adjustments */\r\n.flexigrid.novstripe .bDiv table {\r\n\tborder-bottom: 1px solid @borderlight4;\r\n\tborder-right: 1px solid @borderlight4;\r\n}\r\n\r\n.flexigrid.novstripe  div.bDiv td {\r\n\tborder-right-color: @borderlight1;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr.erow td.sorted {\r\n\tborder-right-color: @borderlight10;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr td.sorted {\r\n\tborder-right-color: @borderlight8;\r\n}\r\n\r\n.flexigrid.novstripe  div.bDiv tr.erow td {\r\n\tborder-right-color: @borderlight7;\r\n\tborder-left-color: @borderlight7;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr.trSelected:hover td,.flexigrid.novstripe div.bDiv tr.trSelected:hover td.sorted,.flexigrid.novstripe div.bDiv tr.trOver.trSelected td.sorted,.flexigrid.novstripe div.bDiv tr.trOver.trSelected td,.flexigrid.novstripe tr.trSelected td.sorted,.flexigrid.novstripe tr.trSelected td\r\n\t{\r\n\tborder-right: 1px solid @borderlight16;\r\n\tborder-left: 1px solid @borderlight16;\r\n}\r\n\r\n.flexigrid.novstripe div.bDiv tr.trOver td,.flexigrid.novstripe div.bDiv tr:hover td\r\n\t{\r\n\tborder-left-color: @borderlight11;\r\n\tborder-right-color: @borderlight11;\r\n}\r\n\r\n/* end novstripe */\r\n.flexigrid div.pDiv {\r\n\tbackground: url(images/wbg.gif) repeat-x 0 -1px;\r\n\tborder: 1px solid @borderlight4;\r\n\tborder-top: 0px;\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\tposition: relative;\r\n}\r\n\r\n.flexigrid div.pDiv div.pDiv2 {\r\n\tmargin: 3px;\r\n\tmargin-left: -2px;\r\n\tfloat: left;\r\n\twidth: 1024px;\r\n}\r\n\r\ndiv.pGroup {\r\n\tfloat: left;\r\n\tbackground: none;\r\n\theight: 24px;\r\n\tmargin: 0px 5px;\r\n}\r\n\r\n.flexigrid div.pDiv .pPageStat,.flexigrid div.pDiv .pcontrol {\r\n\tposition: relative;\r\n\ttop: 5px;\r\n\toverflow: visible;\r\n}\r\n\r\n.flexigrid div.pDiv input {\r\n\tvertical-align: text-top;\r\n\tposition: relative;\r\n\ttop: -5px;\r\n\tmargin: 3px;\r\n}\r\n\r\n.flexigrid div.pDiv select {\r\n\tmargin: 3px;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton {\r\n\tfloat: left;\r\n\twidth: 22px;\r\n\theight: 22px;\r\n\tborder: 0px;\r\n\tcursor: pointer;\r\n\toverflow: hidden;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton:hover,.flexigrid div.pDiv  div.pButton.pBtnOver\r\n\t{\r\n\twidth: 20px;\r\n\theight: 20px;\r\n\tborder: 1px solid @borderlight4;\r\n\tcursor: pointer;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton span {\r\n\twidth: 20px;\r\n\theight: 20px;\r\n\tdisplay: block;\r\n\tfloat: left;\r\n}\r\n\r\n.flexigrid div.pDiv  div.pButton:hover span,.flexigrid div.pDiv  div.pButton.pBtnOver span\r\n\t{\r\n\twidth: 19px;\r\n\theight: 19px;\r\n\tborder-top: 1px solid @borderlight1;\r\n\tborder-left: 1px solid @borderlight1;\r\n}\r\n\r\n.flexigrid .pSearch {\r\n\tbackground: url(images/magnifier.png) no-repeat center;\r\n}\r\n\r\n.flexigrid .pFirst {\r\n\tbackground: url(images/first.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pPrev {\r\n\tbackground: url(images/prev.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pNext {\r\n\tbackground: url(images/next.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pLast {\r\n\tbackground: url(images/last.gif) no-repeat center;\r\n}\r\n\r\n.flexigrid .pReload {\r\n\tbackground: url(images/load.png) no-repeat center;\r\n}\r\n\r\n.flexigrid .pReload.loading {\r\n\tbackground: url(images/load.gif) no-repeat center;\r\n}\r\n\r\n/* ie adjustments */\r\n.flexigrid.ie div.hDiv th div,.flexigrid.ie  div.bDiv td  div,div.colCopy.ie div\r\n\t/* common inner cell properties*/ {\r\n\toverflow: hidden;\r\n}"
  },
  {
    "path": "css/flexigrid.pack.css",
    "content": "@charset UTF-8;\n.flexigrid{font-family:Arial, Helvetica, sans-serif;font-size:11px;position:relative;border:0 solid #eee;overflow:hidden;color:#000}\n.flexigrid.hideBody{height:26px!important;border-bottom:1px solid #ccc}\n.ie6fullwidthbug{border-right:0 solid #ccc;padding-right:2px}\n.flexigrid div.nDiv{background:#eee url(images/line.gif) repeat-y -1px top;border:1px solid #ccc;border-top:0;overflow:auto;left:0;position:absolute;z-index:999;float:left}\n.flexigrid div.nDiv table{margin:2px}\n.flexigrid div.hDivBox{float:left;padding-right:40px}\n.flexigrid div.bDiv table{margin-bottom:10px;border-bottom:1px solid #ccc}\n.flexigrid div.bDiv table.autoht{border-bottom:0;margin-bottom:0}\n.flexigrid div.nDiv td{border:1px solid #eee;cursor:default;padding:2px 3px}\n.flexigrid div.nDiv tr:hover td,.flexigrid div.nDiv tr.ndcolover td{background:#d5effc url(images/hl.png) repeat-x top;border:1px solid #a8d8eb}\n.flexigrid div.nDiv td.ndcol1{border-right:1px solid #ccc}\n.flexigrid div.nDiv td.ndcol2{border-left:1px solid #fff;padding-right:10px}\n.flexigrid div.nDiv tr:hover td.ndcol1,.flexigrid div.nDiv tr.ndcolover td.ndcol1{border-right:1px solid #d2e3ec}\n.flexigrid div.nDiv tr:hover td.ndcol2,.flexigrid div.nDiv tr.ndcolover td.ndcol2{border-left:1px solid #eef8ff}\n.flexigrid div.nBtn{position:absolute;height:24px;width:14px;z-index:900;background:#fafafa url(images/fhbg.gif) repeat-x bottom;border:0 solid #ccc;border-left:1px solid #ccc;top:0;left:0;margin-top:1px;cursor:pointer;display:none}\n.flexigrid div.nBtn div{height:24px;width:12px;border-left:1px solid #fff;float:left;background:url(images/ddn.png) no-repeat center}\n.flexigrid div.nBtn.srtd{background:url(images/wbg.gif) repeat-x 0 -1px}\n.flexigrid div.mDiv{background:url(images/wbg.gif) repeat-x top;border:1px solid #ccc;border-bottom:0;border-top:0;font-weight:700;display:block;overflow:hidden;white-space:nowrap;position:relative}\n.flexigrid div.mDiv div{white-space:nowrap;padding:6px}\n.flexigrid div.mDiv div.ptogtitle{position:absolute;top:4px;right:3px;height:16px;width:16px;overflow:hidden;border:1px solid #ccc;cursor:pointer;padding:0}\n.flexigrid div.mDiv div.ptogtitle:hover{background-position:left -2px;border-color:#bbb}\n.flexigrid div.mDiv div.ptogtitle span{display:block;border-left:1px solid #eee;border-top:1px solid #fff;border-bottom:1px solid #ddd;width:14px;height:14px;background:url(images/uup.png) no-repeat center}\n.flexigrid div.mDiv div.ptogtitle.vsble span{background:url(images/ddn.png) no-repeat center}\n.flexigrid div.tDiv /*toolbar*/{background:#fafafa url(images/bg.gif) repeat-x top;position:relative;border:1px solid #ccc;border-bottom:0;overflow:hidden}\n.flexigrid div.tDiv2{float:left;clear:both;padding:1px}\n.flexigrid div.sDiv /*toolbar*/{background:#fafafa url(images/bg.gif) repeat-x top;position:relative;border:1px solid #ccc;border-top:0;overflow:hidden;display:none}\n.flexigrid div.sDiv2{float:left;clear:both;width:1024px;padding:5px}\n.flexigrid div.sDiv2 input,.flexigrid div.sDiv2 select{vertical-align:middle}\n.flexigrid div.btnseparator{float:left;height:22px;border-left:1px solid #ccc;border-right:1px solid #fff;margin:1px}\n.flexigrid div.fbutton{float:left;display:block;cursor:pointer;padding:1px}\n.flexigrid div.fbutton div{float:left;padding:1px 3px}\n.flexigrid div.fbutton span{float:left;display:block;padding:3px}\n.flexigrid div.fbutton:hover,.flexigrid div.fbutton.fbOver{border:1px solid #ccc;padding:0}\n.flexigrid div.fbutton:hover div,.flexigrid div.fbutton.fbOver div{border-left:1px solid #fff;border-top:1px solid #fff;border-right:1px solid #eee;border-bottom:1px solid #eee;padding:0 2px}\n.flexigrid div.hDiv{background:#fafafa url(images/fhbg.gif) repeat-x bottom;position:relative;border:1px solid #ccc;border-bottom:0;overflow:hidden}\n.flexigrid div.hDiv table{border-right:1px solid #fff}\n.flexigrid div.cDrag{float:left;position:absolute;z-index:2;overflow:visible}\n.flexigrid div.cDrag div{float:left;background:none;display:block;position:absolute;height:24px;width:5px;cursor:col-resize}\n.flexigrid div.cDrag div:hover,.flexigrid div.cDrag div.dragging{background:url(images/line.gif) repeat-y 2px center}\n.flexigrid div.iDiv{border:1px solid #316ac5;position:absolute;overflow:visible;background:none}\n.flexigrid div.iDiv input,.flexigrid div.iDiv select,.flexigrid div.iDiv textarea{font-family:Arial, Helvetica, sans-serif;font-size:11px}\n.flexigrid div.iDiv input.tb{border:0;width:100%;height:100%;background:none;padding:0}\n.flexigrid div.bDiv{border:1px solid #ccc;border-top:0;background:#fff;overflow:auto;position:relative}\n.flexigrid div.hGrip{position:absolute;top:0;right:0;height:5px;width:5px;background:url(images/line.gif) repeat-x center;margin-right:1px;cursor:col-resize}\n.flexigrid div.hGrip:hover,.flexigrid div.hGrip.hgOver{border-right:1px solid #999;margin-right:0}\n.flexigrid div.vGrip{height:5px;overflow:hidden;position:relative;background:#fafafa url(images/wbg.gif) repeat-x 0 -1px;border:1px solid #ccc;border-top:0;text-align:center;cursor:row-resize}\n.flexigrid div.vGrip span{display:block;width:20px;height:1px;overflow:hidden;border-top:1px solid #aaa;border-bottom:1px solid #aaa;background:none;margin:1px auto}\n.flexigrid div.hDiv th,.flexigrid div.bDiv td\n/* common cell properties*/{text-align:left;border-right:1px solid #ddd;border-left:1px solid #fff;overflow:hidden;vertical-align:top!important;padding-left:0;padding-right:0}\n.flexigrid div.hDiv th div,.flexigrid div.bDiv td div,div.colCopy div\n/* common inner cell properties*/{border-left:0 solid #fff;padding:5px}\n.flexigrid div.hDiv th,div.colCopy{font-weight:400;height:24px;cursor:default;white-space:nowrap;overflow:hidden}\ndiv.colCopy{font-family:Arial, Helvetica, sans-serif;font-size:11px;background:#fafafa url(images/fhbg.gif) repeat-x bottom;border:1px solid #ccc;border-bottom:0;overflow:hidden}\n.flexigrid div.hDiv th.sorted{background:url(images/wbg.gif) repeat-x 0 -1px;border-bottom:0 solid #ccc}\n.flexigrid div.hDiv th.thOver div,.flexigrid div.hDiv th.sorted.thOver div{border-bottom:1px solid orange;padding-bottom:4px}\n.flexigrid div.hDiv th.sorted div{border-bottom:0 solid #ccc;padding-bottom:5px}\n.flexigrid div.hDiv th.thMove{background:#fff;color:#fff}\n.flexigrid div.hDiv th.sorted.thMove div{border-bottom:1px solid #fff;padding-bottom:4px}\n.flexigrid div.hDiv th.thMove div{background:#fff!important}\n.flexigrid div.hDiv th div.sdesc{background:url(images/dn.png) no-repeat center top}\n.flexigrid div.hDiv th div.sasc{background:url(images/up.png) no-repeat center top}\n.flexigrid div.bDiv td{border-bottom:1px solid #fff;vertical-align:top;white-space:nowrap}\n.flexigrid span.cdropleft{display:block;background:url(images/prev.gif) no-repeat -4px center;width:24px;height:24px;position:relative;top:-24px;margin-bottom:-24px;z-index:3}\n.flexigrid div.hDiv span.cdropright{display:block;background:url(images/next.gif) no-repeat 12px center;width:24px;height:24px;float:right;position:relative;top:-24px;margin-bottom:-24px}\n.flexigrid div.bDiv td div{border-top:0 solid #fff;padding-bottom:4px}\n.flexigrid tr td.sorted{background:#f3f3f3;border-right:1px solid #ddd;border-bottom:1px solid #f3f3f3}\n.flexigrid tr.erow td{background:#f7f7f7;border-bottom:1px solid #f7f7f7}\n.flexigrid tr.erow td.sorted{background:#e3e3e3;border-bottom:1px solid #e3e3e3}\n.flexigrid div.bDiv tr:hover td,.flexigrid div.bDiv tr:hover td.sorted,.flexigrid div.bDiv tr.trOver td.sorted,.flexigrid div.bDiv tr.trOver td{background:#d9ebf5;border-left:1px solid #eef8ff;border-bottom:1px dotted #a8d8eb}\n.flexigrid div.bDiv tr.trSelected:hover td,.flexigrid div.bDiv tr.trSelected:hover td.sorted,.flexigrid div.bDiv tr.trOver.trSelected td.sorted,.flexigrid div.bDiv tr.trOver.trSelected td,.flexigrid tr.trSelected td.sorted,.flexigrid tr.trSelected td{background:#d5effc url(images/hl.png) repeat-x top;border-right:1px solid #d2e3ec;border-left:1px solid #eef8ff;border-bottom:1px solid #a8d8eb}\n.flexigrid.novstripe .bDiv table{border-bottom:1px solid #ccc;border-right:1px solid #ccc}\n.flexigrid.novstripe div.bDiv td{border-right-color:#fff}\n.flexigrid.novstripe div.bDiv tr.erow td.sorted{border-right-color:#e3e3e3}\n.flexigrid.novstripe div.bDiv tr td.sorted{border-right-color:#f3f3f3}\n.flexigrid.novstripe div.bDiv tr.erow td{border-right-color:#f7f7f7;border-left-color:#f7f7f7}\n.flexigrid.novstripe div.bDiv tr.trSelected:hover td,.flexigrid.novstripe div.bDiv tr.trSelected:hover td.sorted,.flexigrid.novstripe div.bDiv tr.trOver.trSelected td.sorted,.flexigrid.novstripe div.bDiv tr.trOver.trSelected td,.flexigrid.novstripe tr.trSelected td.sorted,.flexigrid.novstripe tr.trSelected td{border-right:1px solid #06F;border-left:1px solid #06F}\n.flexigrid.novstripe div.bDiv tr.trOver td,.flexigrid.novstripe div.bDiv tr:hover td{border-left-color:#d9ebf5;border-right-color:#d9ebf5}\n.flexigrid div.pDiv{background:url(images/wbg.gif) repeat-x 0 -1px;border:1px solid #ccc;border-top:0;overflow:hidden;white-space:nowrap;position:relative}\n.flexigrid div.pDiv div.pDiv2{float:left;width:1024px;margin:3px 3px 3px -2px}\ndiv.pGroup{float:left;background:none;height:24px;margin:0 5px}\n.flexigrid div.pDiv .pPageStat,.flexigrid div.pDiv .pcontrol{position:relative;top:5px;overflow:visible}\n.flexigrid div.pDiv input{vertical-align:text-top;position:relative;top:-5px}\n.flexigrid div.pDiv div.pButton{float:left;width:22px;height:22px;border:0;cursor:pointer;overflow:hidden}\n.flexigrid div.pDiv div.pButton:hover,.flexigrid div.pDiv div.pButton.pBtnOver{width:20px;height:20px;border:1px solid #ccc;cursor:pointer}\n.flexigrid div.pDiv div.pButton span{width:20px;height:20px;display:block;float:left}\n.flexigrid div.pDiv div.pButton:hover span,.flexigrid div.pDiv div.pButton.pBtnOver span{width:19px;height:19px;border-top:1px solid #fff;border-left:1px solid #fff}\n.flexigrid .pSearch{background:url(images/magnifier.png) no-repeat center}\n.flexigrid .pFirst{background:url(images/first.gif) no-repeat center}\n.flexigrid .pPrev{background:url(images/prev.gif) no-repeat center}\n.flexigrid .pNext{background:url(images/next.gif) no-repeat center}\n.flexigrid .pLast{background:url(images/last.gif) no-repeat center}\n.flexigrid .pReload{background:url(images/load.png) no-repeat center}\n.flexigrid .pReload.loading{background:url(images/load.gif) no-repeat center}\n.flexigrid.ie div.hDiv th div,.flexigrid.ie div.bDiv td div,div.colCopy.ie div\n/* common inner cell properties*/{overflow:hidden}"
  },
  {
    "path": "demo/conflict-test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\" lang=\"fr\">\r\n\t<head>\r\n\t\t<meta http-equiv=\"content-type\" content=\"text/html;charset=UTF-8\" />\r\n\t\t<title>Testing Flexigrid + Prototype</title>\r\n\t\t<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js\"></script>\r\n\t\t<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\"></script>\r\n\t\t<script type=\"text/javascript\">jQuery.noConflict();</script>\r\n\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"../css/flexigrid.css\" media=\"all\" />\r\n\t\t<script type=\"text/javascript\" src=\"../js/flexigrid.js\"></script>\r\n\t</head>\r\n\t<body>\r\n\t\t<table id=\"flexme1\">\r\n\t\t\t<thead>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th width=\"100\">Col 1</th>\r\n\t\t\t\t\t<th width=\"100\">Col 2</th>\r\n\t\t\t\t\t<th width=\"100\">Col 3 is a long header name</th>\r\n\t\t\t\t\t<th width=\"300\">Col 4</th>\r\n\t\t\t\t</tr>\r\n\t\t\t</thead>\r\n\t\t\t<tbody>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>This is data 1 with overflowing content</td>\r\n\t\t\t\t\t<td>This is data 2</td>\r\n\t\t\t\t\t<td>This is data 3</td>\r\n\t\t\t\t\t<td>This is data 4</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>This is data 1</td>\r\n\t\t\t\t\t<td>This is data 2</td>\r\n\t\t\t\t\t<td>This is data 3</td>\r\n\t\t\t\t\t<td>This is data 4</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</tbody>\r\n\t\t</table>\r\n\t\t<script type=\"text/javascript\">\r\n\t\t//<![CDATA[\r\n\t\tjQuery(document).ready(function($) {\r\n\t\t\t$('#flexme1').flexigrid();\r\n\t\t});\r\n\t\t//]]>\r\n\t\t</script>\r\n\t</body>\r\n</html>"
  },
  {
    "path": "demo/countryArray.inc.php",
    "content": "<?php\r\n$rows = array(\r\n\tarray('iso'=>'AF',\r\n\t'name'=>'Afghanistan',\r\n\t'iso3'=>'AFG',\r\n\t'numcode'=>'4',\r\n\t),\r\n\tarray('iso'=>'AL',\r\n\t'name'=>'Albania',\r\n\t'iso3'=>'ALB',\r\n\t'numcode'=>'8',\r\n\t),\r\n\tarray('iso'=>'DZ',\r\n\t'name'=>'Algeria',\r\n\t'iso3'=>'DZA',\r\n\t'numcode'=>'12',\r\n\t),\r\n\tarray('iso'=>'AS',\r\n\t'name'=>'American Samoa',\r\n\t'iso3'=>'ASM',\r\n\t'numcode'=>'16',\r\n\t),\r\n\tarray('iso'=>'AD',\r\n\t'name'=>'Andorra',\r\n\t'iso3'=>'AND',\r\n\t'numcode'=>'20',\r\n\t),\r\n\tarray('iso'=>'AO',\r\n\t'name'=>'Angola',\r\n\t'iso3'=>'AGO',\r\n\t'numcode'=>'24',\r\n\t),\r\n\tarray('iso'=>'AI',\r\n\t'name'=>'Anguilla',\r\n\t'iso3'=>'AIA',\r\n\t'numcode'=>'660',\r\n\t),\r\n\tarray('iso'=>'AQ',\r\n\t'name'=>'Antarctica',\r\n\t'iso3'=>'ART',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'AG',\r\n\t'name'=>'Antigua and Barbuda',\r\n\t'iso3'=>'ATG',\r\n\t'numcode'=>'28',\r\n\t),\r\n\tarray('iso'=>'AR',\r\n\t'name'=>'Argentina',\r\n\t'iso3'=>'ARG',\r\n\t'numcode'=>'32',\r\n\t),\r\n\tarray('iso'=>'AM',\r\n\t'name'=>'Armenia',\r\n\t'iso3'=>'ARM',\r\n\t'numcode'=>'51',\r\n\t),\r\n\tarray('iso'=>'AW',\r\n\t'name'=>'Aruba',\r\n\t'iso3'=>'ABW',\r\n\t'numcode'=>'533',\r\n\t),\r\n\tarray('iso'=>'AU',\r\n\t'name'=>'Australia',\r\n\t'iso3'=>'AUS',\r\n\t'numcode'=>'36',\r\n\t),\r\n\tarray('iso'=>'AT',\r\n\t'name'=>'Austria',\r\n\t'iso3'=>'AUT',\r\n\t'numcode'=>'40',\r\n\t),\r\n\tarray('iso'=>'AZ',\r\n\t'name'=>'Azerbaijan',\r\n\t'iso3'=>'AZE',\r\n\t'numcode'=>'31',\r\n\t),\r\n\tarray('iso'=>'BS',\r\n\t'name'=>'Bahamas',\r\n\t'iso3'=>'BHS',\r\n\t'numcode'=>'44',\r\n\t),\r\n\tarray('iso'=>'BH',\r\n\t'name'=>'Bahrain',\r\n\t'iso3'=>'BHR',\r\n\t'numcode'=>'48',\r\n\t),\r\n\tarray('iso'=>'BD',\r\n\t'name'=>'Bangladesh',\r\n\t'iso3'=>'BGD',\r\n\t'numcode'=>'50',\r\n\t),\r\n\tarray('iso'=>'BB',\r\n\t'name'=>'Barbados',\r\n\t'iso3'=>'BRB',\r\n\t'numcode'=>'52',\r\n\t),\r\n\tarray('iso'=>'BY',\r\n\t'name'=>'Belarus',\r\n\t'iso3'=>'BLR',\r\n\t'numcode'=>'112',\r\n\t),\r\n\tarray('iso'=>'BE',\r\n\t'name'=>'Belgium',\r\n\t'iso3'=>'BEL',\r\n\t'numcode'=>'56',\r\n\t),\r\n\tarray('iso'=>'BZ',\r\n\t'name'=>'Belize',\r\n\t'iso3'=>'BLZ',\r\n\t'numcode'=>'84',\r\n\t),\r\n\tarray('iso'=>'BJ',\r\n\t'name'=>'Benin',\r\n\t'iso3'=>'BEN',\r\n\t'numcode'=>'204',\r\n\t),\r\n\tarray('iso'=>'BM',\r\n\t'name'=>'Bermuda',\r\n\t'iso3'=>'BMU',\r\n\t'numcode'=>'60',\r\n\t),\r\n\tarray('iso'=>'BT',\r\n\t'name'=>'Bhutan',\r\n\t'iso3'=>'BTN',\r\n\t'numcode'=>'64',\r\n\t),\r\n\tarray('iso'=>'BO',\r\n\t'name'=>'Bolivia',\r\n\t'iso3'=>'BOL',\r\n\t'numcode'=>'68',\r\n\t),\r\n\tarray('iso'=>'BA',\r\n\t'name'=>'Bosnia and Herzegovina',\r\n\t'iso3'=>'BIH',\r\n\t'numcode'=>'70',\r\n\t),\r\n\tarray('iso'=>'BW',\r\n\t'name'=>'Botswana',\r\n\t'iso3'=>'BWA',\r\n\t'numcode'=>'72',\r\n\t),\r\n\tarray('iso'=>'BV',\r\n\t'name'=>'Bouvet Island',\r\n\t'iso3'=>'BVT',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'BR',\r\n\t'name'=>'Brazil',\r\n\t'iso3'=>'BRA',\r\n\t'numcode'=>'76',\r\n\t),\r\n\tarray('iso'=>'IO',\r\n\t'name'=>'British Indian Ocean Territory',\r\n\t'iso3'=>'BIO',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'BN',\r\n\t'name'=>'Brunei Darussalam',\r\n\t'iso3'=>'BRN',\r\n\t'numcode'=>'96',\r\n\t),\r\n\tarray('iso'=>'BG',\r\n\t'name'=>'Bulgaria',\r\n\t'iso3'=>'BGR',\r\n\t'numcode'=>'100',\r\n\t),\r\n\tarray('iso'=>'BF',\r\n\t'name'=>'Burkina Faso',\r\n\t'iso3'=>'BFA',\r\n\t'numcode'=>'854',\r\n\t),\r\n\tarray('iso'=>'BI',\r\n\t'name'=>'Burundi',\r\n\t'iso3'=>'BDI',\r\n\t'numcode'=>'108',\r\n\t),\r\n\tarray('iso'=>'KH',\r\n\t'name'=>'Cambodia',\r\n\t'iso3'=>'KHM',\r\n\t'numcode'=>'116',\r\n\t),\r\n\tarray('iso'=>'CM',\r\n\t'name'=>'Cameroon',\r\n\t'iso3'=>'CMR',\r\n\t'numcode'=>'120',\r\n\t),\r\n\tarray('iso'=>'CA',\r\n\t'name'=>'Canada',\r\n\t'iso3'=>'CAN',\r\n\t'numcode'=>'124',\r\n\t),\r\n\tarray('iso'=>'CV',\r\n\t'name'=>'Cape Verde',\r\n\t'iso3'=>'CPV',\r\n\t'numcode'=>'132',\r\n\t),\r\n\tarray('iso'=>'KY',\r\n\t'name'=>'Cayman Islands',\r\n\t'iso3'=>'CYM',\r\n\t'numcode'=>'136',\r\n\t),\r\n\tarray('iso'=>'CF',\r\n\t'name'=>'Central African Republic',\r\n\t'iso3'=>'CAF',\r\n\t'numcode'=>'140',\r\n\t),\r\n\tarray('iso'=>'TD',\r\n\t'name'=>'Chad',\r\n\t'iso3'=>'TCD',\r\n\t'numcode'=>'148',\r\n\t),\r\n\tarray('iso'=>'CL',\r\n\t'name'=>'Chile',\r\n\t'iso3'=>'CHL',\r\n\t'numcode'=>'152',\r\n\t),\r\n\tarray('iso'=>'CN',\r\n\t'name'=>'China',\r\n\t'iso3'=>'CHN',\r\n\t'numcode'=>'156',\r\n\t),\r\n\tarray('iso'=>'CX',\r\n\t'name'=>'Christmas Island',\r\n\t'iso3'=>'CMI',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'CC',\r\n\t'name'=>'Cocos (Keeling) Islands',\r\n\t'iso3'=>'CKI',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'CO',\r\n\t'name'=>'Colombia',\r\n\t'iso3'=>'COL',\r\n\t'numcode'=>'170',\r\n\t),\r\n\tarray('iso'=>'KM',\r\n\t'name'=>'Comoros',\r\n\t'iso3'=>'COM',\r\n\t'numcode'=>'174',\r\n\t),\r\n\tarray('iso'=>'CG',\r\n\t'name'=>'Congo',\r\n\t'iso3'=>'COG',\r\n\t'numcode'=>'178',\r\n\t),\r\n\tarray('iso'=>'CD',\r\n\t'name'=>'Congo, the Democratic Republic of the',\r\n\t'iso3'=>'COD',\r\n\t'numcode'=>'180',\r\n\t),\r\n\tarray('iso'=>'CK',\r\n\t'name'=>'Cook Islands',\r\n\t'iso3'=>'COK',\r\n\t'numcode'=>'184',\r\n\t),\r\n\tarray('iso'=>'CR',\r\n\t'name'=>'Costa Rica',\r\n\t'iso3'=>'CRI',\r\n\t'numcode'=>'188',\r\n\t),\r\n\tarray('iso'=>'CI',\r\n\t'name'=>'Cote D\\'Ivoire',\r\n\t'iso3'=>'CIV',\r\n\t'numcode'=>'384',\r\n\t),\r\n\tarray('iso'=>'HR',\r\n\t'name'=>'Croatia',\r\n\t'iso3'=>'HRV',\r\n\t'numcode'=>'191',\r\n\t),\r\n\tarray('iso'=>'CU',\r\n\t'name'=>'Cuba',\r\n\t'iso3'=>'CUB',\r\n\t'numcode'=>'192',\r\n\t),\r\n\tarray('iso'=>'CY',\r\n\t'name'=>'Cyprus',\r\n\t'iso3'=>'CYP',\r\n\t'numcode'=>'196',\r\n\t),\r\n\tarray('iso'=>'CZ',\r\n\t'name'=>'Czech Republic',\r\n\t'iso3'=>'CZE',\r\n\t'numcode'=>'203',\r\n\t),\r\n\tarray('iso'=>'DK',\r\n\t'name'=>'Denmark',\r\n\t'iso3'=>'DNK',\r\n\t'numcode'=>'208',\r\n\t),\r\n\tarray('iso'=>'DJ',\r\n\t'name'=>'Djibouti',\r\n\t'iso3'=>'DJI',\r\n\t'numcode'=>'262',\r\n\t),\r\n\tarray('iso'=>'DM',\r\n\t'name'=>'Dominica',\r\n\t'iso3'=>'DMA',\r\n\t'numcode'=>'212',\r\n\t),\r\n\tarray('iso'=>'DO',\r\n\t'name'=>'Dominican Republic',\r\n\t'iso3'=>'DOM',\r\n\t'numcode'=>'214',\r\n\t),\r\n\tarray('iso'=>'EC',\r\n\t'name'=>'Ecuador',\r\n\t'iso3'=>'ECU',\r\n\t'numcode'=>'218',\r\n\t),\r\n\tarray('iso'=>'EG',\r\n\t'name'=>'Egypt',\r\n\t'iso3'=>'EGY',\r\n\t'numcode'=>'818',\r\n\t),\r\n\tarray('iso'=>'SV',\r\n\t'name'=>'El Salvador',\r\n\t'iso3'=>'SLV',\r\n\t'numcode'=>'222',\r\n\t),\r\n\tarray('iso'=>'GQ',\r\n\t'name'=>'Equatorial Guinea',\r\n\t'iso3'=>'GNQ',\r\n\t'numcode'=>'226',\r\n\t),\r\n\tarray('iso'=>'ER',\r\n\t'name'=>'Eritrea',\r\n\t'iso3'=>'ERI',\r\n\t'numcode'=>'232',\r\n\t),\r\n\tarray('iso'=>'EE',\r\n\t'name'=>'Estonia',\r\n\t'iso3'=>'EST',\r\n\t'numcode'=>'233',\r\n\t),\r\n\tarray('iso'=>'ET',\r\n\t'name'=>'Ethiopia',\r\n\t'iso3'=>'ETH',\r\n\t'numcode'=>'231',\r\n\t),\r\n\tarray('iso'=>'FK',\r\n\t'name'=>'Falkland Islands (Malvinas)',\r\n\t'iso3'=>'FLK',\r\n\t'numcode'=>'238',\r\n\t),\r\n\tarray('iso'=>'FO',\r\n\t'name'=>'Faroe Islands',\r\n\t'iso3'=>'FRO',\r\n\t'numcode'=>'234',\r\n\t),\r\n\tarray('iso'=>'FJ',\r\n\t'name'=>'Fiji',\r\n\t'iso3'=>'FJI',\r\n\t'numcode'=>'242',\r\n\t),\r\n\tarray('iso'=>'FI',\r\n\t'name'=>'Finland',\r\n\t'iso3'=>'FIN',\r\n\t'numcode'=>'246',\r\n\t),\r\n\tarray('iso'=>'FR',\r\n\t'name'=>'France',\r\n\t'iso3'=>'FRA',\r\n\t'numcode'=>'250',\r\n\t),\r\n\tarray('iso'=>'GF',\r\n\t'name'=>'French Guiana',\r\n\t'iso3'=>'GUF',\r\n\t'numcode'=>'254',\r\n\t),\r\n\tarray('iso'=>'PF',\r\n\t'name'=>'French Polynesia',\r\n\t'iso3'=>'PYF',\r\n\t'numcode'=>'258',\r\n\t),\r\n\tarray('iso'=>'TF',\r\n\t'name'=>'French Southern Territories',\r\n\t'iso3'=>'FST',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'GA',\r\n\t'name'=>'Gabon',\r\n\t'iso3'=>'GAB',\r\n\t'numcode'=>'266',\r\n\t),\r\n\tarray('iso'=>'GM',\r\n\t'name'=>'Gambia',\r\n\t'iso3'=>'GMB',\r\n\t'numcode'=>'270',\r\n\t),\r\n\tarray('iso'=>'GE',\r\n\t'name'=>'Georgia',\r\n\t'iso3'=>'GEO',\r\n\t'numcode'=>'268',\r\n\t),\r\n\tarray('iso'=>'DE',\r\n\t'name'=>'Germany',\r\n\t'iso3'=>'DEU',\r\n\t'numcode'=>'276',\r\n\t),\r\n\tarray('iso'=>'GH',\r\n\t'name'=>'Ghana',\r\n\t'iso3'=>'GHA',\r\n\t'numcode'=>'288',\r\n\t),\r\n\tarray('iso'=>'GI',\r\n\t'name'=>'Gibraltar',\r\n\t'iso3'=>'GIB',\r\n\t'numcode'=>'292',\r\n\t),\r\n\tarray('iso'=>'GR',\r\n\t'name'=>'Greece',\r\n\t'iso3'=>'GRC',\r\n\t'numcode'=>'300',\r\n\t),\r\n\tarray('iso'=>'GL',\r\n\t'name'=>'Greenland',\r\n\t'iso3'=>'GRL',\r\n\t'numcode'=>'304',\r\n\t),\r\n\tarray('iso'=>'GD',\r\n\t'name'=>'Grenada',\r\n\t'iso3'=>'GRD',\r\n\t'numcode'=>'308',\r\n\t),\r\n\tarray('iso'=>'GP',\r\n\t'name'=>'Guadeloupe',\r\n\t'iso3'=>'GLP',\r\n\t'numcode'=>'312',\r\n\t),\r\n\tarray('iso'=>'GU',\r\n\t'name'=>'Guam',\r\n\t'iso3'=>'GUM',\r\n\t'numcode'=>'316',\r\n\t),\r\n\tarray('iso'=>'GT',\r\n\t'name'=>'Guatemala',\r\n\t'iso3'=>'GTM',\r\n\t'numcode'=>'320',\r\n\t),\r\n\tarray('iso'=>'GN',\r\n\t'name'=>'Guinea',\r\n\t'iso3'=>'GIN',\r\n\t'numcode'=>'324',\r\n\t),\r\n\tarray('iso'=>'GW',\r\n\t'name'=>'Guinea-Bissau',\r\n\t'iso3'=>'GNB',\r\n\t'numcode'=>'624',\r\n\t),\r\n\tarray('iso'=>'GY',\r\n\t'name'=>'Guyana',\r\n\t'iso3'=>'GUY',\r\n\t'numcode'=>'328',\r\n\t),\r\n\tarray('iso'=>'HT',\r\n\t'name'=>'Haiti',\r\n\t'iso3'=>'HTI',\r\n\t'numcode'=>'332',\r\n\t),\r\n\tarray('iso'=>'HM',\r\n\t'name'=>'Heard Island and Mcdonald Islands',\r\n\t'iso3'=>'HMI',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'VA',\r\n\t'name'=>'Holy See (Vatican City State)',\r\n\t'iso3'=>'VAT',\r\n\t'numcode'=>'336',\r\n\t),\r\n\tarray('iso'=>'HN',\r\n\t'name'=>'Honduras',\r\n\t'iso3'=>'HND',\r\n\t'numcode'=>'340',\r\n\t),\r\n\tarray('iso'=>'HK',\r\n\t'name'=>'Hong Kong',\r\n\t'iso3'=>'HKG',\r\n\t'numcode'=>'344',\r\n\t),\r\n\tarray('iso'=>'HU',\r\n\t'name'=>'Hungary',\r\n\t'iso3'=>'HUN',\r\n\t'numcode'=>'348',\r\n\t),\r\n\tarray('iso'=>'IS',\r\n\t'name'=>'Iceland',\r\n\t'iso3'=>'ISL',\r\n\t'numcode'=>'352',\r\n\t),\r\n\tarray('iso'=>'IN',\r\n\t'name'=>'India',\r\n\t'iso3'=>'IND',\r\n\t'numcode'=>'356',\r\n\t),\r\n\tarray('iso'=>'ID',\r\n\t'name'=>'Indonesia',\r\n\t'iso3'=>'IDN',\r\n\t'numcode'=>'360',\r\n\t),\r\n\tarray('iso'=>'IR',\r\n\t'name'=>'Iran, Islamic Republic of',\r\n\t'iso3'=>'IRN',\r\n\t'numcode'=>'364',\r\n\t),\r\n\tarray('iso'=>'IQ',\r\n\t'name'=>'Iraq',\r\n\t'iso3'=>'IRQ',\r\n\t'numcode'=>'368',\r\n\t),\r\n\tarray('iso'=>'IE',\r\n\t'name'=>'Ireland',\r\n\t'iso3'=>'IRL',\r\n\t'numcode'=>'372',\r\n\t),\r\n\tarray('iso'=>'IL',\r\n\t'name'=>'Israel',\r\n\t'iso3'=>'ISR',\r\n\t'numcode'=>'376',\r\n\t),\r\n\tarray('iso'=>'IT',\r\n\t'name'=>'Italy',\r\n\t'iso3'=>'ITA',\r\n\t'numcode'=>'380',\r\n\t),\r\n\tarray('iso'=>'JM',\r\n\t'name'=>'Jamaica',\r\n\t'iso3'=>'JAM',\r\n\t'numcode'=>'388',\r\n\t),\r\n\tarray('iso'=>'JP',\r\n\t'name'=>'Japan',\r\n\t'iso3'=>'JPN',\r\n\t'numcode'=>'392',\r\n\t),\r\n\tarray('iso'=>'JO',\r\n\t'name'=>'Jordan',\r\n\t'iso3'=>'JOR',\r\n\t'numcode'=>'400',\r\n\t),\r\n\tarray('iso'=>'KZ',\r\n\t'name'=>'Kazakhstan',\r\n\t'iso3'=>'KAZ',\r\n\t'numcode'=>'398',\r\n\t),\r\n\tarray('iso'=>'KE',\r\n\t'name'=>'Kenya',\r\n\t'iso3'=>'KEN',\r\n\t'numcode'=>'404',\r\n\t),\r\n\tarray('iso'=>'KI',\r\n\t'name'=>'Kiribati',\r\n\t'iso3'=>'KIR',\r\n\t'numcode'=>'296',\r\n\t),\r\n\tarray('iso'=>'KP',\r\n\t'name'=>'Korea, Democratic People\\'s Republic of',\r\n\t'iso3'=>'PRK',\r\n\t'numcode'=>'408',\r\n\t),\r\n\tarray('iso'=>'KR',\r\n\t'name'=>'Korea, Republic of',\r\n\t'iso3'=>'KOR',\r\n\t'numcode'=>'410',\r\n\t),\r\n\tarray('iso'=>'KW',\r\n\t'name'=>'Kuwait',\r\n\t'iso3'=>'KWT',\r\n\t'numcode'=>'414',\r\n\t),\r\n\tarray('iso'=>'KG',\r\n\t'name'=>'Kyrgyzstan',\r\n\t'iso3'=>'KGZ',\r\n\t'numcode'=>'417',\r\n\t),\r\n\tarray('iso'=>'LA',\r\n\t'name'=>'Lao People\\'s Democratic Republic',\r\n\t'iso3'=>'LAO',\r\n\t'numcode'=>'418',\r\n\t),\r\n\tarray('iso'=>'LV',\r\n\t'name'=>'Latvia',\r\n\t'iso3'=>'LVA',\r\n\t'numcode'=>'428',\r\n\t),\r\n\tarray('iso'=>'LB',\r\n\t'name'=>'Lebanon',\r\n\t'iso3'=>'LBN',\r\n\t'numcode'=>'422',\r\n\t),\r\n\tarray('iso'=>'LS',\r\n\t'name'=>'Lesotho',\r\n\t'iso3'=>'LSO',\r\n\t'numcode'=>'426',\r\n\t),\r\n\tarray('iso'=>'LR',\r\n\t'name'=>'Liberia',\r\n\t'iso3'=>'LBR',\r\n\t'numcode'=>'430',\r\n\t),\r\n\tarray('iso'=>'LY',\r\n\t'name'=>'Libyan Arab Jamahiriya',\r\n\t'iso3'=>'LBY',\r\n\t'numcode'=>'434',\r\n\t),\r\n\tarray('iso'=>'LI',\r\n\t'name'=>'Liechtenstein',\r\n\t'iso3'=>'LIE',\r\n\t'numcode'=>'438',\r\n\t),\r\n\tarray('iso'=>'LT',\r\n\t'name'=>'Lithuania',\r\n\t'iso3'=>'LTU',\r\n\t'numcode'=>'440',\r\n\t),\r\n\tarray('iso'=>'LU',\r\n\t'name'=>'Luxembourg',\r\n\t'iso3'=>'LUX',\r\n\t'numcode'=>'442',\r\n\t),\r\n\tarray('iso'=>'MO',\r\n\t'name'=>'Macao',\r\n\t'iso3'=>'MAC',\r\n\t'numcode'=>'446',\r\n\t),\r\n\tarray('iso'=>'MK',\r\n\t'name'=>'Macedonia, the Former Yugoslav Republic of',\r\n\t'iso3'=>'MKD',\r\n\t'numcode'=>'807',\r\n\t),\r\n\tarray('iso'=>'MG',\r\n\t'name'=>'Madagascar',\r\n\t'iso3'=>'MDG',\r\n\t'numcode'=>'450',\r\n\t),\r\n\tarray('iso'=>'MW',\r\n\t'name'=>'Malawi',\r\n\t'iso3'=>'MWI',\r\n\t'numcode'=>'454',\r\n\t),\r\n\tarray('iso'=>'MY',\r\n\t'name'=>'Malaysia',\r\n\t'iso3'=>'MYS',\r\n\t'numcode'=>'458',\r\n\t),\r\n\tarray('iso'=>'MV',\r\n\t'name'=>'Maldives',\r\n\t'iso3'=>'MDV',\r\n\t'numcode'=>'462',\r\n\t),\r\n\tarray('iso'=>'ML',\r\n\t'name'=>'Mali',\r\n\t'iso3'=>'MLI',\r\n\t'numcode'=>'466',\r\n\t),\r\n\tarray('iso'=>'MT',\r\n\t'name'=>'Malta',\r\n\t'iso3'=>'MLT',\r\n\t'numcode'=>'470',\r\n\t),\r\n\tarray('iso'=>'MH',\r\n\t'name'=>'Marshall Islands',\r\n\t'iso3'=>'MHL',\r\n\t'numcode'=>'584',\r\n\t),\r\n\tarray('iso'=>'MQ',\r\n\t'name'=>'Martinique',\r\n\t'iso3'=>'MTQ',\r\n\t'numcode'=>'474',\r\n\t),\r\n\tarray('iso'=>'MR',\r\n\t'name'=>'Mauritania',\r\n\t'iso3'=>'MRT',\r\n\t'numcode'=>'478',\r\n\t),\r\n\tarray('iso'=>'MU',\r\n\t'name'=>'Mauritius',\r\n\t'iso3'=>'MUS',\r\n\t'numcode'=>'480',\r\n\t),\r\n\tarray('iso'=>'YT',\r\n\t'name'=>'Mayotte',\r\n\t'iso3'=>'MAY',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'MX',\r\n\t'name'=>'Mexico',\r\n\t'iso3'=>'MEX',\r\n\t'numcode'=>'484',\r\n\t),\r\n\tarray('iso'=>'FM',\r\n\t'name'=>'Micronesia, Federated States of',\r\n\t'iso3'=>'FSM',\r\n\t'numcode'=>'583',\r\n\t),\r\n\tarray('iso'=>'MD',\r\n\t'name'=>'Moldova, Republic of',\r\n\t'iso3'=>'MDA',\r\n\t'numcode'=>'498',\r\n\t),\r\n\tarray('iso'=>'MC',\r\n\t'name'=>'Monaco',\r\n\t'iso3'=>'MCO',\r\n\t'numcode'=>'492',\r\n\t),\r\n\tarray('iso'=>'MN',\r\n\t'name'=>'Mongolia',\r\n\t'iso3'=>'MNG',\r\n\t'numcode'=>'496',\r\n\t),\r\n\tarray('iso'=>'MS',\r\n\t'name'=>'Montserrat',\r\n\t'iso3'=>'MSR',\r\n\t'numcode'=>'500',\r\n\t),\r\n\tarray('iso'=>'MA',\r\n\t'name'=>'Morocco',\r\n\t'iso3'=>'MAR',\r\n\t'numcode'=>'504',\r\n\t),\r\n\tarray('iso'=>'MZ',\r\n\t'name'=>'Mozambique',\r\n\t'iso3'=>'MOZ',\r\n\t'numcode'=>'508',\r\n\t),\r\n\tarray('iso'=>'MM',\r\n\t'name'=>'Myanmar',\r\n\t'iso3'=>'MMR',\r\n\t'numcode'=>'104',\r\n\t),\r\n\tarray('iso'=>'NA',\r\n\t'name'=>'Namibia',\r\n\t'iso3'=>'NAM',\r\n\t'numcode'=>'516',\r\n\t),\r\n\tarray('iso'=>'NR',\r\n\t'name'=>'Nauru',\r\n\t'iso3'=>'NRU',\r\n\t'numcode'=>'520',\r\n\t),\r\n\tarray('iso'=>'NP',\r\n\t'name'=>'Nepal',\r\n\t'iso3'=>'NPL',\r\n\t'numcode'=>'524',\r\n\t),\r\n\tarray('iso'=>'NL',\r\n\t'name'=>'Netherlands',\r\n\t'iso3'=>'NLD',\r\n\t'numcode'=>'528',\r\n\t),\r\n\tarray('iso'=>'AN',\r\n\t'name'=>'Netherlands Antilles',\r\n\t'iso3'=>'ANT',\r\n\t'numcode'=>'530',\r\n\t),\r\n\tarray('iso'=>'NC',\r\n\t'name'=>'New Caledonia',\r\n\t'iso3'=>'NCL',\r\n\t'numcode'=>'540',\r\n\t),\r\n\tarray('iso'=>'NZ',\r\n\t'name'=>'New Zealand',\r\n\t'iso3'=>'NZL',\r\n\t'numcode'=>'554',\r\n\t),\r\n\tarray('iso'=>'NI',\r\n\t'name'=>'Nicaragua',\r\n\t'iso3'=>'NIC',\r\n\t'numcode'=>'558',\r\n\t),\r\n\tarray('iso'=>'NE',\r\n\t'name'=>'Niger',\r\n\t'iso3'=>'NER',\r\n\t'numcode'=>'562',\r\n\t),\r\n\tarray('iso'=>'NG',\r\n\t'name'=>'Nigeria',\r\n\t'iso3'=>'NGA',\r\n\t'numcode'=>'566',\r\n\t),\r\n\tarray('iso'=>'NU',\r\n\t'name'=>'Niue',\r\n\t'iso3'=>'NIU',\r\n\t'numcode'=>'570',\r\n\t),\r\n\tarray('iso'=>'NF',\r\n\t'name'=>'Norfolk Island',\r\n\t'iso3'=>'NFK',\r\n\t'numcode'=>'574',\r\n\t),\r\n\tarray('iso'=>'MP',\r\n\t'name'=>'Northern Mariana Islands',\r\n\t'iso3'=>'MNP',\r\n\t'numcode'=>'580',\r\n\t),\r\n\tarray('iso'=>'NO',\r\n\t'name'=>'Norway',\r\n\t'iso3'=>'NOR',\r\n\t'numcode'=>'578',\r\n\t),\r\n\tarray('iso'=>'OM',\r\n\t'name'=>'Oman',\r\n\t'iso3'=>'OMN',\r\n\t'numcode'=>'512',\r\n\t),\r\n\tarray('iso'=>'PK',\r\n\t'name'=>'Pakistan',\r\n\t'iso3'=>'PAK',\r\n\t'numcode'=>'586',\r\n\t),\r\n\tarray('iso'=>'PW',\r\n\t'name'=>'Palau',\r\n\t'iso3'=>'PLW',\r\n\t'numcode'=>'585',\r\n\t),\r\n\tarray('iso'=>'PS',\r\n\t'name'=>'Palestinian Territory, Occupied',\r\n\t'iso3'=>'PTO',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'PA',\r\n\t'name'=>'Panama',\r\n\t'iso3'=>'PAN',\r\n\t'numcode'=>'591',\r\n\t),\r\n\tarray('iso'=>'PG',\r\n\t'name'=>'Papua New Guinea',\r\n\t'iso3'=>'PNG',\r\n\t'numcode'=>'598',\r\n\t),\r\n\tarray('iso'=>'PY',\r\n\t'name'=>'Paraguay',\r\n\t'iso3'=>'PRY',\r\n\t'numcode'=>'600',\r\n\t),\r\n\tarray('iso'=>'PE',\r\n\t'name'=>'Peru',\r\n\t'iso3'=>'PER',\r\n\t'numcode'=>'604',\r\n\t),\r\n\tarray('iso'=>'PH',\r\n\t'name'=>'Philippines',\r\n\t'iso3'=>'PHL',\r\n\t'numcode'=>'608',\r\n\t),\r\n\tarray('iso'=>'PN',\r\n\t'name'=>'Pitcairn',\r\n\t'iso3'=>'PCN',\r\n\t'numcode'=>'612',\r\n\t),\r\n\tarray('iso'=>'PL',\r\n\t'name'=>'Poland',\r\n\t'iso3'=>'POL',\r\n\t'numcode'=>'616',\r\n\t),\r\n\tarray('iso'=>'PT',\r\n\t'name'=>'Portugal',\r\n\t'iso3'=>'PRT',\r\n\t'numcode'=>'620',\r\n\t),\r\n\tarray('iso'=>'PR',\r\n\t'name'=>'Puerto Rico',\r\n\t'iso3'=>'PRI',\r\n\t'numcode'=>'630',\r\n\t),\r\n\tarray('iso'=>'QA',\r\n\t'name'=>'Qatar',\r\n\t'iso3'=>'QAT',\r\n\t'numcode'=>'634',\r\n\t),\r\n\tarray('iso'=>'RE',\r\n\t'name'=>'Reunion',\r\n\t'iso3'=>'REU',\r\n\t'numcode'=>'638',\r\n\t),\r\n\tarray('iso'=>'RO',\r\n\t'name'=>'Romania',\r\n\t'iso3'=>'ROM',\r\n\t'numcode'=>'642',\r\n\t),\r\n\tarray('iso'=>'RU',\r\n\t'name'=>'Russian Federation',\r\n\t'iso3'=>'RUS',\r\n\t'numcode'=>'643',\r\n\t),\r\n\tarray('iso'=>'RW',\r\n\t'name'=>'Rwanda',\r\n\t'iso3'=>'RWA',\r\n\t'numcode'=>'646',\r\n\t),\r\n\tarray('iso'=>'SH',\r\n\t'name'=>'Saint Helena',\r\n\t'iso3'=>'SHN',\r\n\t'numcode'=>'654',\r\n\t),\r\n\tarray('iso'=>'KN',\r\n\t'name'=>'Saint Kitts and Nevis',\r\n\t'iso3'=>'KNA',\r\n\t'numcode'=>'659',\r\n\t),\r\n\tarray('iso'=>'LC',\r\n\t'name'=>'Saint Lucia',\r\n\t'iso3'=>'LCA',\r\n\t'numcode'=>'662',\r\n\t),\r\n\tarray('iso'=>'PM',\r\n\t'name'=>'Saint Pierre and Miquelon',\r\n\t'iso3'=>'SPM',\r\n\t'numcode'=>'666',\r\n\t),\r\n\tarray('iso'=>'VC',\r\n\t'name'=>'Saint Vincent and the Grenadines',\r\n\t'iso3'=>'VCT',\r\n\t'numcode'=>'670',\r\n\t),\r\n\tarray('iso'=>'WS',\r\n\t'name'=>'Samoa',\r\n\t'iso3'=>'WSM',\r\n\t'numcode'=>'882',\r\n\t),\r\n\tarray('iso'=>'SM',\r\n\t'name'=>'San Marino',\r\n\t'iso3'=>'SMR',\r\n\t'numcode'=>'674',\r\n\t),\r\n\tarray('iso'=>'ST',\r\n\t'name'=>'Sao Tome and Principe',\r\n\t'iso3'=>'STP',\r\n\t'numcode'=>'678',\r\n\t),\r\n\tarray('iso'=>'SA',\r\n\t'name'=>'Saudi Arabia',\r\n\t'iso3'=>'SAU',\r\n\t'numcode'=>'682',\r\n\t),\r\n\tarray('iso'=>'SN',\r\n\t'name'=>'Senegal',\r\n\t'iso3'=>'SEN',\r\n\t'numcode'=>'686',\r\n\t),\r\n\tarray('iso'=>'CS',\r\n\t'name'=>'Serbia and Montenegro',\r\n\t'iso3'=>'SNM',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'SC',\r\n\t'name'=>'Seychelles',\r\n\t'iso3'=>'SYC',\r\n\t'numcode'=>'690',\r\n\t),\r\n\tarray('iso'=>'SL',\r\n\t'name'=>'Sierra Leone',\r\n\t'iso3'=>'SLE',\r\n\t'numcode'=>'694',\r\n\t),\r\n\tarray('iso'=>'SG',\r\n\t'name'=>'Singapore',\r\n\t'iso3'=>'SGP',\r\n\t'numcode'=>'702',\r\n\t),\r\n\tarray('iso'=>'SK',\r\n\t'name'=>'Slovakia',\r\n\t'iso3'=>'SVK',\r\n\t'numcode'=>'703',\r\n\t),\r\n\tarray('iso'=>'SI',\r\n\t'name'=>'Slovenia',\r\n\t'iso3'=>'SVN',\r\n\t'numcode'=>'705',\r\n\t),\r\n\tarray('iso'=>'SB',\r\n\t'name'=>'Solomon Islands',\r\n\t'iso3'=>'SLB',\r\n\t'numcode'=>'90',\r\n\t),\r\n\tarray('iso'=>'SO',\r\n\t'name'=>'Somalia',\r\n\t'iso3'=>'SOM',\r\n\t'numcode'=>'706',\r\n\t),\r\n\tarray('iso'=>'ZA',\r\n\t'name'=>'South Africa',\r\n\t'iso3'=>'ZAF',\r\n\t'numcode'=>'710',\r\n\t),\r\n\tarray('iso'=>'GS',\r\n\t'name'=>'South Georgia and the South Sandwich Islands',\r\n\t'iso3'=>'SGS',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'ES',\r\n\t'name'=>'Spain',\r\n\t'iso3'=>'ESP',\r\n\t'numcode'=>'724',\r\n\t),\r\n\tarray('iso'=>'LK',\r\n\t'name'=>'Sri Lanka',\r\n\t'iso3'=>'LKA',\r\n\t'numcode'=>'144',\r\n\t),\r\n\tarray('iso'=>'SD',\r\n\t'name'=>'Sudan',\r\n\t'iso3'=>'SDN',\r\n\t'numcode'=>'736',\r\n\t),\r\n\tarray('iso'=>'SR',\r\n\t'name'=>'Suriname',\r\n\t'iso3'=>'SUR',\r\n\t'numcode'=>'740',\r\n\t),\r\n\tarray('iso'=>'SJ',\r\n\t'name'=>'Svalbard and Jan Mayen',\r\n\t'iso3'=>'SJM',\r\n\t'numcode'=>'744',\r\n\t),\r\n\tarray('iso'=>'SZ',\r\n\t'name'=>'Swaziland',\r\n\t'iso3'=>'SWZ',\r\n\t'numcode'=>'748',\r\n\t),\r\n\tarray('iso'=>'SE',\r\n\t'name'=>'Sweden',\r\n\t'iso3'=>'SWE',\r\n\t'numcode'=>'752',\r\n\t),\r\n\tarray('iso'=>'CH',\r\n\t'name'=>'Switzerland',\r\n\t'iso3'=>'CHE',\r\n\t'numcode'=>'756',\r\n\t),\r\n\tarray('iso'=>'SY',\r\n\t'name'=>'Syrian Arab Republic',\r\n\t'iso3'=>'SYR',\r\n\t'numcode'=>'760',\r\n\t),\r\n\tarray('iso'=>'TW',\r\n\t'name'=>'Taiwan, Province of China',\r\n\t'iso3'=>'TWN',\r\n\t'numcode'=>'158',\r\n\t),\r\n\tarray('iso'=>'TJ',\r\n\t'name'=>'Tajikistan',\r\n\t'iso3'=>'TJK',\r\n\t'numcode'=>'762',\r\n\t),\r\n\tarray('iso'=>'TZ',\r\n\t'name'=>'Tanzania, United Republic of',\r\n\t'iso3'=>'TZA',\r\n\t'numcode'=>'834',\r\n\t),\r\n\tarray('iso'=>'TH',\r\n\t'name'=>'Thailand',\r\n\t'iso3'=>'THA',\r\n\t'numcode'=>'764',\r\n\t),\r\n\tarray('iso'=>'TL',\r\n\t'name'=>'Timor-Leste',\r\n\t'iso3'=>'TIM',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'TG',\r\n\t'name'=>'Togo',\r\n\t'iso3'=>'TGO',\r\n\t'numcode'=>'768',\r\n\t),\r\n\tarray('iso'=>'TK',\r\n\t'name'=>'Tokelau',\r\n\t'iso3'=>'TKL',\r\n\t'numcode'=>'772',\r\n\t),\r\n\tarray('iso'=>'TO',\r\n\t'name'=>'Tonga',\r\n\t'iso3'=>'TON',\r\n\t'numcode'=>'776',\r\n\t),\r\n\tarray('iso'=>'TT',\r\n\t'name'=>'Trinidad and Tobago',\r\n\t'iso3'=>'TTO',\r\n\t'numcode'=>'780',\r\n\t),\r\n\tarray('iso'=>'TN',\r\n\t'name'=>'Tunisia',\r\n\t'iso3'=>'TUN',\r\n\t'numcode'=>'788',\r\n\t),\r\n\tarray('iso'=>'TR',\r\n\t'name'=>'Turkey',\r\n\t'iso3'=>'TUR',\r\n\t'numcode'=>'792',\r\n\t),\r\n\tarray('iso'=>'TM',\r\n\t'name'=>'Turkmenistan',\r\n\t'iso3'=>'TKM',\r\n\t'numcode'=>'795',\r\n\t),\r\n\tarray('iso'=>'TC',\r\n\t'name'=>'Turks and Caicos Islands',\r\n\t'iso3'=>'TCA',\r\n\t'numcode'=>'796',\r\n\t),\r\n\tarray('iso'=>'TV',\r\n\t'name'=>'Tuvalu',\r\n\t'iso3'=>'TUV',\r\n\t'numcode'=>'798',\r\n\t),\r\n\tarray('iso'=>'UG',\r\n\t'name'=>'Uganda',\r\n\t'iso3'=>'UGA',\r\n\t'numcode'=>'800',\r\n\t),\r\n\tarray('iso'=>'UA',\r\n\t'name'=>'Ukraine',\r\n\t'iso3'=>'UKR',\r\n\t'numcode'=>'804',\r\n\t),\r\n\tarray('iso'=>'AE',\r\n\t'name'=>'United Arab Emirates',\r\n\t'iso3'=>'ARE',\r\n\t'numcode'=>'784',\r\n\t),\r\n\tarray('iso'=>'GB',\r\n\t'name'=>'United Kingdom',\r\n\t'iso3'=>'GBR',\r\n\t'numcode'=>'826',\r\n\t),\r\n\tarray('iso'=>'US',\r\n\t'name'=>'United States',\r\n\t'iso3'=>'USA',\r\n\t'numcode'=>'840',\r\n\t),\r\n\tarray('iso'=>'UM',\r\n\t'name'=>'United States Minor Outlying Islands',\r\n\t'iso3'=>'USI',\r\n\t'numcode'=>'0',\r\n\t),\r\n\tarray('iso'=>'UY',\r\n\t'name'=>'Uruguay',\r\n\t'iso3'=>'URY',\r\n\t'numcode'=>'858',\r\n\t),\r\n\tarray('iso'=>'UZ',\r\n\t'name'=>'Uzbekistan',\r\n\t'iso3'=>'UZB',\r\n\t'numcode'=>'860',\r\n\t),\r\n\tarray('iso'=>'VU',\r\n\t'name'=>'Vanuatu',\r\n\t'iso3'=>'VUT',\r\n\t'numcode'=>'548',\r\n\t),\r\n\tarray('iso'=>'VE',\r\n\t'name'=>'Venezuela',\r\n\t'iso3'=>'VEN',\r\n\t'numcode'=>'862',\r\n\t),\r\n\tarray('iso'=>'VN',\r\n\t'name'=>'Viet Nam',\r\n\t'iso3'=>'VNM',\r\n\t'numcode'=>'704',\r\n\t),\r\n\tarray('iso'=>'VG',\r\n\t'name'=>'Virgin Islands, British',\r\n\t'iso3'=>'VGB',\r\n\t'numcode'=>'92',\r\n\t),\r\n\tarray('iso'=>'VI',\r\n\t'name'=>'Virgin Islands, U.s.',\r\n\t'iso3'=>'VIR',\r\n\t'numcode'=>'850',\r\n\t),\r\n\tarray('iso'=>'WF',\r\n\t'name'=>'Wallis and Futuna',\r\n\t'iso3'=>'WLF',\r\n\t'numcode'=>'876',\r\n\t),\r\n\tarray('iso'=>'EH',\r\n\t'name'=>'Western Sahara',\r\n\t'iso3'=>'ESH',\r\n\t'numcode'=>'732',\r\n\t),\r\n\tarray('iso'=>'YE',\r\n\t'name'=>'Yemen',\r\n\t'iso3'=>'YEM',\r\n\t'numcode'=>'887',\r\n\t),\r\n\tarray('iso'=>'ZM',\r\n\t'name'=>'Zambia',\r\n\t'iso3'=>'ZMB',\r\n\t'numcode'=>'894',\r\n\t),\r\n\tarray('iso'=>'ZW',\r\n\t'name'=>'Zimbabwe',\r\n\t'iso3'=>'ZWE',\r\n\t'numcode'=>'716',\r\n\t)\r\n);\r\n//Quick hack to add the printable name column\r\nforeach($rows AS $key => $row){\r\n\t$rows[$key]['printable_name'] = $row['name'];\r\n}"
  },
  {
    "path": "demo/example4.php",
    "content": "<?php\n\n    session_start();\n\n    $page = isset($_POST['page']) ? $_POST['page'] : 1;\n    $rp = isset($_POST['rp']) ? $_POST['rp'] : 10;\n    $sortname = isset($_POST['sortname']) ? $_POST['sortname'] : 'name';\n    $sortorder = isset($_POST['sortorder']) ? $_POST['sortorder'] : 'desc';\n    $query = isset($_POST['query']) ? $_POST['query'] : false;\n    $qtype = isset($_POST['qtype']) ? $_POST['qtype'] : false;\n\n\n    if(isset($_GET['Add'])){ // this is for adding records\n\n        $rows = $_SESSION['Example4'];\n        $rows[$_GET['EmpID']] = \n        array(\n            'name'=>$_GET['Name']\n            , 'favorite_color'=>$_GET['FavoriteColor']\n            , 'favorite_pet'=>$_GET['FavoritePet']\n            , 'primary_language'=>$_GET['PrimaryLanguage']\n        );\n        $_SESSION['Example4'] = $rows;\n\n    }\n    elseif(isset($_GET['Edit'])){ // this is for Editing records\n        $rows = $_SESSION['Example4'];\n        \n        unset($rows[trim($_GET['OrgEmpID'])]);  // just delete the original entry and add.\n        \n        $rows[$_GET['EmpID']] = \n        array(\n            'name'=>$_GET['Name']\n            , 'favorite_color'=>$_GET['FavoriteColor']\n            , 'favorite_pet'=>$_GET['FavoritePet']\n            , 'primary_language'=>$_GET['PrimaryLanguage']\n        );\n        $_SESSION['Example4'] = $rows;\n    }\n    elseif(isset($_GET['Delete'])){ // this is for removing records\n        $rows = $_SESSION['Example4'];\n        unset($rows[trim($_GET['Delete'])]);  // to remove the \\n\n        $_SESSION['Example4'] = $rows;\n    }\n    else{\n\n        if(isset($_SESSION['Example4'])){ // get session if there is one\n            $rows = $_SESSION['Example4'];\n        }\n        else{ // create session with some data if there isn't\n            $rows[1] = array('name'=>'Tony',   'favorite_color'=>'green',  'favorite_pet'=>'hamster',   'primary_language'=>'english');\n            $rows[2] = array('name'=>'Mary',   'favorite_color'=>'red',    'favorite_pet'=>'groundhog', 'primary_language'=>'spanish');\n            $rows[3] = array('name'=>'Seth',   'favorite_color'=>'silver', 'favorite_pet'=>'snake',     'primary_language'=>'french');\n            $rows[4] = array('name'=>'Sandra', 'favorite_color'=>'blue',   'favorite_pet'=>'cat',       'primary_language'=>'mandarin');\n            $_SESSION['Example4'] = $rows;\n        }\n\n\n\n        header(\"Content-type: application/json\");\n        $jsonData = array('page'=>$page,'total'=>0,'rows'=>array());\n        foreach($rows AS $rowNum => $row){\n            //If cell's elements have named keys, they must match column names\n            //Only cell's with named keys and matching columns are order independent.\n            $entry = array('id' => $rowNum,\n                'cell'=>array(\n                    'employeeID'       => $rowNum,\n                    'name'             => $row['name'],\n                    'primary_language' => $row['primary_language'],\n                    'favorite_color'   => $row['favorite_color'],\n                    'favorite_pet'     => $row['favorite_pet']\n                )\n            );\n            $jsonData['rows'][] = $entry;\n        }\n        $jsonData['total'] = count($rows);\n        echo json_encode($jsonData);\n\n}"
  },
  {
    "path": "demo/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n    <head>\r\n        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n        <title>Flexigrid</title>\r\n        <link rel=\"stylesheet\" href=\"style.css\" />\r\n        <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/flexigrid.pack.css\" />\r\n        <script type=\"text/javascript\"\r\n            src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\"></script>\r\n        <script type=\"text/javascript\" src=\"../js/flexigrid.pack.js\"></script>\r\n    </head>\r\n    <body>\r\n        <img src=\"images/flash.png\" alt=\"Flexigrid\" width=\"960\" height=\"483\"\r\n            usemap=\"#Map\" style=\"visibility: hidden\"\r\n            onload=\"$(this).css({visibility:'visible',display:'none'}).fadeIn('slow');\"\r\n            title=\"Flexigrid\" border=\"0\" />\r\n        <map name=\"Map\" id=\"Map\">\r\n            <area shape=\"rect\" coords=\"671,29,853,72\" href=\"https://code.google.com/p/flexigrid/downloads/list?q=label:Featured\"\r\n                alt=\"Download\" />\r\n        </map>\r\n\r\n        <h1 class=\"title\" style=\"display: none\">\r\n            <strong>Flexigrid</strong> for jQuery<span\r\n                style=\"font-size: 12px\">by Paulo P. Marinas</span>\r\n        </h1>\r\n\r\n        <div class=\"update\">\r\n            <h2>What is it?</h2>\r\n\r\n            <p>Lightweight but rich data grid with resizable columns and a\r\n                scrolling data to match the headers, plus an ability to connect to an\r\n                xml based data source using Ajax to load the content.</p>\r\n            <p>Similar in concept with the Ext Grid only its pure jQuery love,\r\n                which makes it light weight and follows the jQuery mantra of running\r\n                with the least amount of configuration.</p>\r\n\r\n            <h3>Features</h3>\r\n            <ul>\r\n                <li>Resizable columns</li>\r\n                <li>Resizable height and width</li>\r\n                <li>Sortable column headers</li>\r\n                <li>Cool theme</li>\r\n                <li>Can convert an ordinary table</li>\r\n                <li>Ability to connect to an ajax data source (XML and JSON[new])</li>\r\n                <li>Paging</li>\r\n                <li>Show/hide columns</li>\r\n                <li>Toolbar (new)</li>\r\n                <li>Search (new)</li>\r\n                <li>Accessible API</li>\r\n                <li>Many more</li>\r\n            </ul>\r\n        </div>\r\n\r\n        <div class=\"update\">\r\n            <h2>FAQ</h2>\r\n            <ol>\r\n                <li><div class=\"question\">Where can I get support?</div>\r\n                    <div class=\"answer\">\r\n                        Bugs can be reported \r\n                        <a href=\"http://code.google.com/p/flexigrid/\">http://code.google.com/p/flexigrid/</a>, and\r\n                        our fantastic community support is available at \r\n                        <a href=\"http://groups.google.com/group/flexigrid/\">http://groups.google.com/group/flexigrid/</a>.\r\n                    </div>\r\n                </li>\r\n                <li>\r\n                    <div class=\"question\">What's recently changed and what are the known bugs?</div>\r\n                    <div class=\"answer\">Go to  \r\n                        <a href=\"http://code.google.com/p/flexigrid/issues/list\">\r\n                            http://code.google.com/p/flexigrid/issues/list</a>\r\n                    </div>\r\n                </li>\r\n                <li><div class=\"question\">What browsers does Flexigrid support?</div>\r\n                    <div class=\"answer\">We support browsers IE6, Firefox 3, Opera 9,\r\n                        Safari 3, Chrome 7 and greater.</div>\r\n                </li>\r\n                <li><div class=\"question\">Where can I contribute code or suggest a feature?</div>\r\n                    <div class=\"answer\"><a href=\"http://code.google.com/p/flexigrid/\">http://code.google.com/p/flexigrid/</a></div>\r\n                </li>\r\n                <li><div class=\"question\">Can I use it for personal or commercial projects/modify it/hack it?</div>\r\n                    <div class=\"answer\">Absolutely! Just make sure you adhere to either the <a href=\"http://jquery.org/license\">GPL or MIT licenses</a>.</div>\r\n                </li>\r\n                <li><div class=\"question\">Can I connect this to a form or add Parameters?</div>\r\n                    <div class=\"answer\">Sure, check out our <a href=\"sample.html\">sample code</a> \r\n                        to learn how.</div>\r\n                </li>\r\n            </ol>\r\n        </div>\r\n\r\n        <div class=\"update\">\r\n            <h2>Files you need</h2>\r\n            <ul>\r\n                <li><a href=\"http://www.jquery.com\">jQuery</a></li>\r\n                <li><a href=\"https://code.google.com/p/flexigrid/downloads/list?q=label:Featured\">FlexiGrid Plugin Pack(32K)</a>\r\n                    (includes the js, css, and images)</li>\r\n            </ul>\r\n        </div>\r\n\r\n        <div class=\"update\">\r\n            <h2>How to use</h2>\r\n            <p>Check out the examples below, or \r\n                <a href=\"http://code.google.com/p/flexigrid/source/\">browse the source</a>.</p>\r\n        </div>\r\n\r\n        <h2>Example 1</h2>\r\n        <p>\r\n            The most basic example with the zero configuration, with a table\r\n            converted into flexigrid (<a href=\"#\"\r\n                onclick=\"$(this).parent().next().toggle(); return false;\">Show\r\n                sample code</a>)\r\n        </p>\r\n        <div class=\"code\">\r\n            <pre>$('.flexme').flexigrid();</pre>\r\n        </div>\r\n        <table class=\"flexme1\">\r\n            <thead>\r\n                <tr>\r\n                    <th width=\"100\">Col 1</th>\r\n                    <th width=\"100\">Col 2</th>\r\n                    <th width=\"100\">Col 3 is a long header name</th>\r\n                    <th width=\"300\">Col 4</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>This is data 1 with overflowing content</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n            </tbody>\r\n        </table>\r\n\r\n        <h2>Example 2</h2>\r\n        <p>\r\n            Table converted into flexigrid with height, and width set to auto,\r\n            stripes remove. (<a href=\"#\"\r\n                onclick=\"$(this).parent().next().toggle(); return false;\">Show\r\n                sample code</a>)\r\n        </p>\r\n        <div class=\"code\">\r\n            <pre>$('.flexme2').flexigrid({height:'auto',striped:false});</pre>\r\n        </div>\r\n        <table class=\"flexme2\">\r\n            <thead>\r\n                <tr>\r\n                    <th width=\"100\">Col 1</th>\r\n                    <th width=\"100\">Col 2</th>\r\n                    <th width=\"100\">Col 3 is a long header name</th>\r\n                    <th width=\"300\">Col 4</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>This is data 1 with overflowing content</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>This is data 1</td>\r\n                    <td>This is data 2</td>\r\n                    <td>This is data 3</td>\r\n                    <td>This is data 4</td>\r\n                </tr>\r\n            </tbody>\r\n        </table>\r\n\r\n        <h2>Example 3</h2>\r\n        <p>\r\n            Flexigrid with dynamic data, paging, search, toolbar, and connected to an XML file.\r\n            (<a href=\"#\" onclick=\"$(this).parent().next().toggle(); return false;\">Show sample code</a>)\r\n        </p>\r\n        <div class=\"code\">\r\n            <pre>\r\n            $(\".flexme3\").flexigrid({\r\n                url : 'post-xml.php',\r\n                dataType : 'xml',\r\n                colModel : [ {\r\n                    display : 'ISO',\r\n                    name : 'iso',\r\n                    width : 40,\r\n                    sortable : true,\r\n                    align : 'center'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        width : 180,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'Printable Name',\r\n                        name : 'printable_name',\r\n                        width : 120,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'ISO3',\r\n                        name : 'iso3',\r\n                        width : 130,\r\n                        sortable : true,\r\n                        align : 'left',\r\n                        hide : true\r\n                    }, {\r\n                        display : 'Number Code',\r\n                        name : 'numcode',\r\n                        width : 80,\r\n                        sortable : true,\r\n                        align : 'right'\r\n                } ],\r\n                buttons : [ {\r\n                    name : 'Add',\r\n                    bclass : 'add',\r\n                    onpress : test\r\n                    }, {\r\n                        name : 'Delete',\r\n                        bclass : 'delete',\r\n                        onpress : test\r\n                    }, {\r\n                        separator : true\r\n                } ],\r\n                searchitems : [ {\r\n                    display : 'ISO',\r\n                    name : 'iso'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        isdefault : true\r\n                } ],\r\n                sortname : \"iso\",\r\n                sortorder : \"asc\",\r\n                usepager : true,\r\n                title : 'Countries',\r\n                useRp : true,\r\n                rp : 15,\r\n                showTableToggleBtn : true,\r\n                width : 700,\r\n                height : 200\r\n            });      \r\n\r\n            function test(com, grid) {\r\n                if (com == 'Delete') {\r\n                    confirm('Delete ' + $('.trSelected', grid).length + ' items?')\r\n                } else if (com == 'Add') {\r\n                    alert('Add New Item');\r\n                }\r\n            }\r\n            </pre>\r\n        </div>\r\n        <table class=\"flexme3\" style=\"display: none\"></table>\r\n\r\n\r\n        <h2>Example 4</h2>\r\n        <p>\r\n            Flexigrid with dynamic data, paging, search, toolbar, and connected to a php-session based JSON file.\r\n            (<a href=\"#\" onclick=\"$(this).parent().next().toggle(); return false;\">Show sample code</a>)\r\n        </p>\r\n        <div class=\"code\">\r\n            <pre>\r\n            $(\".flexme4\").flexigrid({\r\n                url : 'example4.php',\r\n                dataType : 'json',\r\n                colModel : [ {\r\n                    display : 'EmployeeID',\r\n                    name : 'employeeID',\r\n                    width : 90,\r\n                    sortable : true,\r\n                    align : 'center'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        width : 120,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'Primary Language',\r\n                        name : 'primary_language',\r\n                        width : 120,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'Favorite Color',\r\n                        name : 'favorite_color',\r\n                        width : 80,\r\n                        sortable : true,\r\n                        align : 'left',\r\n                        hide : true\r\n                    }, {\r\n                        display : 'Favorite Animal',\r\n                        name : 'favorite_pet',\r\n                        width : 80,\r\n                        sortable : true,\r\n                        align : 'right'\r\n                } ],\r\n                buttons : [ {\r\n                    name : 'Add',\r\n                    bclass : 'add',\r\n                    onpress : Example4\r\n                    }\r\n                    ,\r\n                    {\r\n                        name : 'Edit',\r\n                        bclass : 'edit',\r\n                        onpress : Example4\r\n                    }\r\n                    ,\r\n                    {\r\n                        name : 'Delete',\r\n                        bclass : 'delete',\r\n                        onpress : Example4\r\n                    }\r\n                    ,\r\n                    {\r\n                        separator : true\r\n                    } \r\n                ],\r\n                searchitems : [ {\r\n                    display : 'EmployeeID',\r\n                    name : 'employeeID'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        isdefault : true\r\n                } ],\r\n                sortname : \"iso\",\r\n                sortorder : \"asc\",\r\n                usepager : true,\r\n                title : 'Employees',\r\n                useRp : true,\r\n                rp : 15,\r\n                showTableToggleBtn : true,\r\n                width : 750,\r\n                height : 200\r\n            });\r\n\r\n            function Example4(com, grid) {\r\n                if (com == 'Delete') {\r\n                    var conf = confirm('Delete ' + $('.trSelected', grid).length + ' items?')\r\n                    if(conf){\r\n                        $.each($('.trSelected', grid),\r\n                            function(key, value){\r\n                                $.get('example4.php', { Delete: value.firstChild.innerText}\r\n                                    , function(){\r\n                                        // when ajax returns (callback), update the grid to refresh the data\r\n                                        $(\".flexme4\").flexReload();\r\n                                });\r\n                        });    \r\n                    }\r\n                }\r\n                else if (com == 'Edit') {\r\n                    var conf = confirm('Edit ' + $('.trSelected', grid).length + ' items?')\r\n                    if(conf){\r\n                        $.each($('.trSelected', grid),\r\n                            function(key, value){\r\n                                // collect the data\r\n                                var OrgEmpID = value.children[0].innerText; // in case we're changing the key\r\n                                var EmpID = prompt(\"Please enter the New Employee ID\",value.children[0].innerText);\r\n                                var Name = prompt(\"Please enter the Employee Name\",value.children[1].innerText);\r\n                                var PrimaryLanguage = prompt(\"Please enter the Employee's Primary Language\",value.children[2].innerText);\r\n                                var FavoriteColor = prompt(\"Please enter the Employee's Favorite Color\",value.children[3].innerText);\r\n                                var FavoriteAnimal = prompt(\"Please enter the Employee's Favorite Animal\",value.children[4].innerText);\r\n\r\n                                // call the ajax to save the data to the session\r\n                                $.get('example4.php', \r\n                                    { Edit: true\r\n                                        , OrgEmpID: OrgEmpID\r\n                                        , EmpID: EmpID\r\n                                        , Name: Name\r\n                                        , PrimaryLanguage: PrimaryLanguage\r\n                                        , FavoriteColor: FavoriteColor\r\n                                        , FavoritePet: FavoriteAnimal  }\r\n                                    , function(){\r\n                                        // when ajax returns (callback), update the grid to refresh the data\r\n                                        $(\".flexme4\").flexReload();\r\n                                });\r\n                        });    \r\n                    }\r\n                }\r\n                else if (com == 'Add') {\r\n                    // collect the data\r\n                    var EmpID = prompt(\"Please enter the Employee ID\",\"5\");\r\n                    var Name = prompt(\"Please enter the Employee Name\",\"Mark\");\r\n                    var PrimaryLanguage = prompt(\"Please enter the Employee's Primary Language\",\"php\");\r\n                    var FavoriteColor = prompt(\"Please enter the Employee's Favorite Color\",\"Tan\");\r\n                    var FavoriteAnimal = prompt(\"Please enter the Employee's Favorite Animal\",\"Dog\");\r\n\r\n                    // call the ajax to save the data to the session\r\n                    $.get('example4.php', { Add: true, EmpID: EmpID, Name: Name, PrimaryLanguage: PrimaryLanguage, FavoriteColor: FavoriteColor, FavoritePet: FavoriteAnimal  }\r\n                        , function(){\r\n                            // when ajax returns (callback), update the grid to refresh the data\r\n                            $(\".flexme4\").flexReload();\r\n                    });\r\n                }\r\n            }\r\n            </pre>\r\n        </div>\r\n        <table class=\"flexme4\" style=\"display: none\"></table>\r\n\r\n\r\n\r\n\r\n        <script type=\"text/javascript\">\r\n            $('.flexme1').flexigrid();\r\n            $('.flexme2').flexigrid({\r\n                height : 'auto',\r\n                striped : false\r\n            });\r\n\r\n            $(\".flexme3\").flexigrid({\r\n                url : 'post-xml.php',\r\n                dataType : 'xml',\r\n                colModel : [ {\r\n                    display : 'ISO',\r\n                    name : 'iso',\r\n                    width : 40,\r\n                    sortable : true,\r\n                    align : 'center'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        width : 180,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'Printable Name',\r\n                        name : 'printable_name',\r\n                        width : 120,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'ISO3',\r\n                        name : 'iso3',\r\n                        width : 130,\r\n                        sortable : true,\r\n                        align : 'left',\r\n                        hide : true\r\n                    }, {\r\n                        display : 'Number Code',\r\n                        name : 'numcode',\r\n                        width : 80,\r\n                        sortable : true,\r\n                        align : 'right'\r\n                } ],\r\n                buttons : [ {\r\n                    name : 'Add',\r\n                    bclass : 'add',\r\n                    onpress : test\r\n                    }, {\r\n                        name : 'Delete',\r\n                        bclass : 'delete',\r\n                        onpress : test\r\n                    }, {\r\n                        separator : true\r\n                } ],\r\n                searchitems : [ {\r\n                    display : 'ISO',\r\n                    name : 'iso'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        isdefault : true\r\n                } ],\r\n                sortname : \"iso\",\r\n                sortorder : \"asc\",\r\n                usepager : true,\r\n                title : 'Countries',\r\n                useRp : true,\r\n                rp : 15,\r\n                showTableToggleBtn : true,\r\n                width : 700,\r\n                height : 200\r\n            });      \r\n\r\n            function test(com, grid) {\r\n                if (com == 'Delete') {\r\n                    confirm('Delete ' + $('.trSelected', grid).length + ' items?')\r\n                } else if (com == 'Add') {\r\n                    alert('Add New Item');\r\n                }\r\n            }\r\n\r\n            $(\".flexme4\").flexigrid({\r\n                url : 'example4.php',\r\n                dataType : 'json',\r\n                colModel : [ {\r\n                    display : 'EmployeeID',\r\n                    name : 'employeeID',\r\n                    width : 90,\r\n                    sortable : true,\r\n                    align : 'center'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        width : 120,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'Primary Language',\r\n                        name : 'primary_language',\r\n                        width : 120,\r\n                        sortable : true,\r\n                        align : 'left'\r\n                    }, {\r\n                        display : 'Favorite Color',\r\n                        name : 'favorite_color',\r\n                        width : 80,\r\n                        sortable : true,\r\n                        align : 'left',\r\n                        hide : true\r\n                    }, {\r\n                        display : 'Favorite Animal',\r\n                        name : 'favorite_pet',\r\n                        width : 80,\r\n                        sortable : true,\r\n                        align : 'right'\r\n                } ],\r\n                buttons : [ {\r\n                    name : 'Add',\r\n                    bclass : 'add',\r\n                    onpress : Example4\r\n                    }\r\n                    ,\r\n                    {\r\n                        name : 'Edit',\r\n                        bclass : 'edit',\r\n                        onpress : Example4\r\n                    }\r\n                    ,\r\n                    {\r\n                        name : 'Delete',\r\n                        bclass : 'delete',\r\n                        onpress : Example4\r\n                    }\r\n                    ,\r\n                    {\r\n                        separator : true\r\n                    } \r\n                ],\r\n                searchitems : [ {\r\n                    display : 'EmployeeID',\r\n                    name : 'employeeID'\r\n                    }, {\r\n                        display : 'Name',\r\n                        name : 'name',\r\n                        isdefault : true\r\n                } ],\r\n                sortname : \"iso\",\r\n                sortorder : \"asc\",\r\n                usepager : true,\r\n                title : 'Employees',\r\n                useRp : true,\r\n                rp : 15,\r\n                showTableToggleBtn : true,\r\n                width : 750,\r\n                height : 200\r\n            });\r\n\r\n            function Example4(com, grid) {\r\n                if (com == 'Delete') {\r\n                    var conf = confirm('Delete ' + $('.trSelected', grid).length + ' items?')\r\n                    if(conf){\r\n                        $.each($('.trSelected', grid),\r\n                            function(key, value){\r\n                                $.get('example4.php', { Delete: value.firstChild.innerText}\r\n                                    , function(){\r\n                                        // when ajax returns (callback), update the grid to refresh the data\r\n                                        $(\".flexme4\").flexReload();\r\n                                });\r\n                        });    \r\n                    }\r\n                }\r\n                else if (com == 'Edit') {\r\n                    var conf = confirm('Edit ' + $('.trSelected', grid).length + ' items?')\r\n                    if(conf){\r\n                        $.each($('.trSelected', grid),\r\n                            function(key, value){\r\n                                // collect the data\r\n                                var OrgEmpID = value.children[0].innerText; // in case we're changing the key\r\n                                var EmpID = prompt(\"Please enter the New Employee ID\",value.children[0].innerText);\r\n                                var Name = prompt(\"Please enter the Employee Name\",value.children[1].innerText);\r\n                                var PrimaryLanguage = prompt(\"Please enter the Employee's Primary Language\",value.children[2].innerText);\r\n                                var FavoriteColor = prompt(\"Please enter the Employee's Favorite Color\",value.children[3].innerText);\r\n                                var FavoriteAnimal = prompt(\"Please enter the Employee's Favorite Animal\",value.children[4].innerText);\r\n\r\n                                // call the ajax to save the data to the session\r\n                                $.get('example4.php', \r\n                                    { Edit: true\r\n                                        , OrgEmpID: OrgEmpID\r\n                                        , EmpID: EmpID\r\n                                        , Name: Name\r\n                                        , PrimaryLanguage: PrimaryLanguage\r\n                                        , FavoriteColor: FavoriteColor\r\n                                        , FavoritePet: FavoriteAnimal  }\r\n                                    , function(){\r\n                                        // when ajax returns (callback), update the grid to refresh the data\r\n                                        $(\".flexme4\").flexReload();\r\n                                });\r\n                        });    \r\n                    }\r\n                }\r\n                else if (com == 'Add') {\r\n                    // collect the data\r\n                    var EmpID = prompt(\"Please enter the Employee ID\",\"5\");\r\n                    var Name = prompt(\"Please enter the Employee Name\",\"Mark\");\r\n                    var PrimaryLanguage = prompt(\"Please enter the Employee's Primary Language\",\"php\");\r\n                    var FavoriteColor = prompt(\"Please enter the Employee's Favorite Color\",\"Tan\");\r\n                    var FavoriteAnimal = prompt(\"Please enter the Employee's Favorite Animal\",\"Dog\");\r\n\r\n                    // call the ajax to save the data to the session\r\n                    $.get('example4.php', { Add: true, EmpID: EmpID, Name: Name, PrimaryLanguage: PrimaryLanguage, FavoriteColor: FavoriteColor, FavoritePet: FavoriteAnimal  }\r\n                        , function(){\r\n                            // when ajax returns (callback), update the grid to refresh the data\r\n                            $(\".flexme4\").flexReload();\r\n                    });\r\n                }\r\n            }\r\n        </script>\r\n    </body>\r\n</html>"
  },
  {
    "path": "demo/old-format.json",
    "content": "{\"page\":1,\"total\":239,\"rows\":[{\"id\":\"ZW\",\"cell\":[\"ZW\",\"Zimbabwe\",\"Zimbabwe\",\"ZWE\",\"716\"]},{\"id\":\"ZM\",\"cell\":[\"ZM\",\"Zambia\",\"Zambia\",\"ZMB\",\"894\"]},{\"id\":\"YE\",\"cell\":[\"YE\",\"Yemen\",\"Yemen\",\"YEM\",\"887\"]},{\"id\":\"EH\",\"cell\":[\"EH\",\"Western Sahara\",\"Western Sahara\",\"ESH\",\"732\"]},{\"id\":\"WF\",\"cell\":[\"WF\",\"Wallis and Futuna\",\"Wallis and Futuna\",\"WLF\",\"876\"]},{\"id\":\"VI\",\"cell\":[\"VI\",\"Virgin Islands, U.s.\",\"Virgin Islands, U.s.\",\"VIR\",\"850\"]},{\"id\":\"VG\",\"cell\":[\"VG\",\"Virgin Islands, British\",\"Virgin Islands, British\",\"VGB\",\"92\"]},{\"id\":\"VN\",\"cell\":[\"VN\",\"Viet Nam\",\"Viet Nam\",\"VNM\",\"704\"]},{\"id\":\"VE\",\"cell\":[\"VE\",\"Venezuela\",\"Venezuela\",\"VEN\",\"862\"]},{\"id\":\"VU\",\"cell\":[\"VU\",\"Vanuatu\",\"Vanuatu\",\"VUT\",\"548\"]}]}"
  },
  {
    "path": "demo/post-json.php",
    "content": "<?php\r\n$page = isset($_POST['page']) ? $_POST['page'] : 1;\r\n$rp = isset($_POST['rp']) ? $_POST['rp'] : 10;\r\n$sortname = isset($_POST['sortname']) ? $_POST['sortname'] : 'name';\r\n$sortorder = isset($_POST['sortorder']) ? $_POST['sortorder'] : 'desc';\r\n$query = isset($_POST['query']) ? $_POST['query'] : false;\r\n$qtype = isset($_POST['qtype']) ? $_POST['qtype'] : false;\r\n\r\n/* -- To use the SQL, remove this block\r\n$usingSQL = true;\r\nfunction runSQL($rsql) {\r\n\r\n\t$db['default']['hostname'] = \"localhost\";\r\n\t$db['default']['username'] = '';\r\n\t$db['default']['password'] = \"\";\r\n\t$db['default']['database'] = \"\";\r\n\r\n\t$db['live']['hostname'] = 'localhost';\r\n\t$db['live']['username'] = '';\r\n\t$db['live']['password'] = '';\r\n\t$db['live']['database'] = '';\r\n\r\n\t$active_group = 'default';\r\n\r\n\t$base_url = \"http://\".$_SERVER['HTTP_HOST'];\r\n\t$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']),\"\",$_SERVER['SCRIPT_NAME']);\r\n\r\n\t$connect = mysql_connect($db[$active_group]['hostname'],$db[$active_group]['username'],$db[$active_group]['password']) or die (\"Error: could not connect to database\");\r\n\t$db = mysql_select_db($db[$active_group]['database']);\r\n\r\n\t$result = mysql_query($rsql) or die ($rsql);\r\n\treturn $result;\r\n\tmysql_close($connect);\r\n}\r\n\r\nfunction countRec($fname,$tname) {\r\n\t$sql = \"SELECT count($fname) FROM $tname \";\r\n\t$result = runSQL($sql);\r\n\twhile ($row = mysql_fetch_array($result)) {\r\n\t\treturn $row[0];\r\n\t}\r\n}\r\n\r\n$sort = \"ORDER BY $sortname $sortorder\";\r\n$start = (($page-1) * $rp);\r\n\r\n$limit = \"LIMIT $start, $rp\";\r\n\r\n$where = \"\";\r\nif ($query) $where = \" WHERE $qtype LIKE '%\".mysql_real_escape_string($query).\"%' \";\r\n\r\n$sql = \"SELECT iso,name,printable_name,iso3,numcode FROM country $where $sort $limit\";\r\n$result = runSQL($sql);\r\n\r\n$total = countRec(\"iso\",\"country $where\");\r\n*/\r\nif(!isset($usingSQL)){\r\n\tinclude dirname(__FILE__).'/countryArray.inc.php';\r\n\tif($qtype && $query){\r\n\t\t$query = strtolower(trim($query));\r\n\t\tforeach($rows AS $key => $row){\r\n\t\t\tif(strpos(strtolower($row[$qtype]),$query) === false){\r\n\t\t\t\tunset($rows[$key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t//Make PHP handle the sorting\r\n\t$sortArray = array();\r\n\tforeach($rows AS $key => $row){\r\n\t\t$sortArray[$key] = $row[$sortname];\r\n\t}\r\n\t$sortMethod = SORT_ASC;\r\n\tif($sortorder == 'desc'){\r\n\t\t$sortMethod = SORT_DESC;\r\n\t}\r\n\tarray_multisort($sortArray, $sortMethod, $rows);\r\n\t$total = count($rows);\r\n\t$rows = array_slice($rows,($page-1)*$rp,$rp);\r\n}\r\nheader(\"Content-type: application/json\");\r\n$jsonData = array('page'=>$page,'total'=>$total,'rows'=>array());\r\nforeach($rows AS $row){\r\n\t//If cell's elements have named keys, they must match column names\r\n\t//Only cell's with named keys and matching columns are order independent.\r\n\t$entry = array('id'=>$row['iso'],\r\n\t\t'cell'=>array(\r\n\t\t\t'name'=>$row['name'],\r\n\t\t\t'iso'=>$row['iso'],\r\n\t\t\t'printable_name'=>$row['printable_name'],\r\n\t\t\t'iso3'=>$row['iso3'],\r\n\t\t\t'numcode'=>$row['numcode']\r\n\t\t),\r\n\t);\r\n\t$jsonData['rows'][] = $entry;\r\n}\r\necho json_encode($jsonData);"
  },
  {
    "path": "demo/post-xml.php",
    "content": "<?php\r\n$page = isset($_POST['page']) ? $_POST['page'] : 1;\r\n$rp = isset($_POST['rp']) ? $_POST['rp'] : 10;\r\n$sortname = isset($_POST['sortname']) ? $_POST['sortname'] : 'name';\r\n$sortorder = isset($_POST['sortorder']) ? $_POST['sortorder'] : 'desc';\r\n$query = isset($_POST['query']) ? $_POST['query'] : false;\r\n$qtype = isset($_POST['qtype']) ? $_POST['qtype'] : false;\r\n\r\n/* -- To use the SQL, remove this block\r\n$usingSQL = true;\r\nfunction runSQL($rsql) {\r\n\r\n\t$db['default']['hostname'] = \"localhost\";\r\n\t$db['default']['username'] = '';\r\n\t$db['default']['password'] = \"\";\r\n\t$db['default']['database'] = \"\";\r\n\r\n\t$db['live']['hostname'] = 'localhost';\r\n\t$db['live']['username'] = '';\r\n\t$db['live']['password'] = '';\r\n\t$db['live']['database'] = '';\r\n\r\n\t$active_group = 'default';\r\n\r\n\t$base_url = \"http://\".$_SERVER['HTTP_HOST'];\r\n\t$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']),\"\",$_SERVER['SCRIPT_NAME']);\r\n\r\n\t$connect = mysql_connect($db[$active_group]['hostname'],$db[$active_group]['username'],$db[$active_group]['password']) or die (\"Error: could not connect to database\");\r\n\t$db = mysql_select_db($db[$active_group]['database']);\r\n\r\n\t$result = mysql_query($rsql) or die ('test');\r\n\treturn $result;\r\n\tmysql_close($connect);\r\n}\r\n\r\nfunction countRec($fname,$tname) {\r\n\t$sql = \"SELECT count($fname) FROM $tname \";\r\n\t$result = runSQL($sql);\r\n\twhile ($row = mysql_fetch_array($result)) {\r\n\t\treturn $row[0];\r\n\t}\r\n}\r\n$page = $_POST['page'];\r\n$rp = $_POST['rp'];\r\n$sortname = $_POST['sortname'];\r\n$sortorder = $_POST['sortorder'];\r\n\r\nif (!$sortname) $sortname = 'name';\r\nif (!$sortorder) $sortorder = 'desc';\r\n\r\n$sort = \"ORDER BY $sortname $sortorder\";\r\n\r\nif (!$page) $page = 1;\r\nif (!$rp) $rp = 10;\r\n\r\n$start = (($page-1) * $rp);\r\n\r\n$limit = \"LIMIT $start, $rp\";\r\n$where = \"\";\r\nif ($query) $where = \" WHERE $qtype LIKE '%\".mysql_real_escape_string($query).\"%' \";\r\n\r\n$sql = \"SELECT iso,name,printable_name,iso3,numcode FROM country $where $sort $limit\";\r\n$result = runSQL($sql);\r\n\r\n$total = countRec('iso','country');\r\n$rows = array();\r\nwhile ($row = mysql_fetch_array($result)) {\r\n\t$rows[] = $row;\r\n}\r\n*/\r\nif(!isset($usingSQL)){\r\n\tinclude dirname(__FILE__).'/countryArray.inc.php';\r\n\tif($qtype && $query){\r\n\t\t$query = strtolower(trim($query));\r\n\t\tforeach($rows AS $key => $row){\r\n\t\t\tif(strpos(strtolower($row[$qtype]),$query) === false){\r\n\t\t\t\tunset($rows[$key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t//Make PHP handle the sorting\r\n\t$sortArray = array();\r\n\tforeach($rows AS $key => $row){\r\n\t\t$sortArray[$key] = $row[$sortname];\r\n\t}\r\n\t$sortMethod = SORT_ASC;\r\n\tif($sortorder == 'desc'){\r\n\t\t$sortMethod = SORT_DESC;\r\n\t}\r\n\tarray_multisort($sortArray, $sortMethod, $rows);\r\n\t$total = count($rows);\r\n\t$rows = array_slice($rows,($page-1)*$rp,$rp);\r\n}\r\n\r\nheader(\"Content-type: text/xml\");\r\n$xml = \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\\n\";\r\n$xml .= \"<rows>\";\r\n$xml .= \"<page>$page</page>\";\r\n$xml .= \"<total>$total</total>\";\r\nforeach($rows AS $row){\r\n\t$xml .= \"<row id='\".$row['iso'].\"'>\";\r\n\t$xml .= \"<cell><![CDATA[\".$row['iso'].\"]]></cell>\";\r\n\t$xml .= \"<cell><![CDATA[\".utf8_encode($row['name']).\"]]></cell>\";\r\n\t//$xml .= \"<cell><![CDATA[\".print_r($_POST,true).\"]]></cell>\";\r\n\t$xml .= \"<cell><![CDATA[\".utf8_encode($row['printable_name']).\"]]></cell>\";\r\n\t$xml .= \"<cell><![CDATA[\".utf8_encode($row['iso3']).\"]]></cell>\";\r\n\t$xml .= \"<cell><![CDATA[\".utf8_encode($row['numcode']).\"]]></cell>\";\r\n\t$xml .= \"</row>\";\r\n}\r\n\r\n$xml .= \"</rows>\";\r\necho $xml;"
  },
  {
    "path": "demo/sample.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<title>Flexigrid</title>\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"../css/flexigrid.css\">\r\n<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\"></script>\r\n<script type=\"text/javascript\" src=\"../js/flexigrid.js\"></script>\r\n</head>\r\n<body>\r\n<p>This is a sample implementation attached to a form, to add additional parameters.</p>\r\n\r\n<form id=\"sform\">\r\n\t<p>\r\n\tThe values you entered will be place in name column for demo's sake.<br />\r\n\tValue 1 : <input type=\"text\" name=\"val1\" value=\"\" autocomplete=\"off\" /><br />\r\n    Value 2 : Is a hidden input with value 3<input type=\"hidden\" name=\"val2\" value=\"3\" /><br />\r\n    Value 3 : \r\n    <select name=\"val3\">\r\n    \t<option value=\"1\">One</option>\r\n        <option value=\"2\">Two</option>\r\n        <option value=\"3\">Three</option>\r\n        <option value=\"4\">Four</option>\r\n        <option value=\"5\">Five</option>\r\n    </select><br />\r\n    Value 4 : <input type=\"checkbox\" name=\"val4\" id=\"val4\" value=\"4\" /><label for=\"val4\">This will pass a value 4 if checked</label>\r\n    </p>\r\n    <p>\r\n\t    <input type=\"submit\" value=\"Submit\" />\r\n    </p>\r\n</form>\r\n\r\n<table id=\"flex1\" style=\"display:none\"></table>\r\n<script type=\"text/javascript\">\r\n$(\"#flex1\").flexigrid({\r\n\turl: 'post2.php',\r\n\tdataType: 'json',\r\n\tcolModel : [\r\n\t\t{display: 'ISO', name : 'iso', width : 40, sortable : true, align: 'center'},\r\n\t\t{display: 'Name', name : 'name', width : 180, sortable : true, align: 'left'},\r\n\t\t{display: 'Printable Name', name : 'printable_name', width : 120, sortable : true, align: 'left'},\r\n\t\t{display: 'ISO3', name : 'iso3', width : 130, sortable : true, align: 'left', hide: true},\r\n\t\t{display: 'Number Code', name : 'numcode', width : 80, sortable : true, align: 'right'}\r\n\t\t],\r\n\tsearchitems : [\r\n\t\t{display: 'ISO', name : 'iso'},\r\n\t\t{display: 'Name', name : 'name', isdefault: true}\r\n\t\t],\r\n\tsortname: \"iso\",\r\n\tsortorder: \"asc\",\r\n\tusepager: true,\r\n\ttitle: 'Countries',\r\n\tuseRp: true,\r\n\trp: 15,\r\n\tshowTableToggleBtn: true,\r\n\twidth: 700,\r\n\tonSubmit: addFormData,\r\n\theight: 200\r\n});\r\n\r\n//This function adds paramaters to the post of flexigrid. You can add a verification as well by return to false if you don't want flexigrid to submit\t\t\t\r\nfunction addFormData(){\r\n\t//passing a form object to serializeArray will get the valid data from all the objects, but, if the you pass a non-form object, you have to specify the input elements that the data will come from\r\n\tvar dt = $('#sform').serializeArray();\r\n\t$(\"#flex1\").flexOptions({params: dt});\r\n\treturn true;\r\n}\r\n\t\r\n$('#sform').submit(function (){\r\n\t$('#flex1').flexOptions({newp: 1}).flexReload();\r\n\treturn false;\r\n});\r\n</script>\r\n</body>\r\n</html>"
  },
  {
    "path": "demo/style.css",
    "content": "@charset \"utf-8\";\r\n/* http://meyerweb.com/eric/tools/css/reset/ \r\n   v2.0 | 20110126\r\n   License: none (public domain)\r\n*/\r\n\r\nhtml, body, div, span, applet, object, iframe,\r\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\r\na, abbr, acronym, address, big, cite, code,\r\ndel, dfn, em, img, ins, kbd, q, s, samp,\r\nsmall, strike, strong, sub, sup, tt, var,\r\nb, u, i, center,\r\ndl, dt, dd, ol, ul, li,\r\nfieldset, form, label, legend,\r\ntable, caption, tbody, tfoot, thead, tr, th, td,\r\narticle, aside, canvas, details, embed, \r\nfigure, figcaption, footer, header, hgroup, \r\nmenu, nav, output, ruby, section, summary,\r\ntime, mark, audio, video {\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tborder: 0;\r\n\tfont-size: 100%;\r\n\tfont: inherit;\r\n\tvertical-align: baseline;\r\n}\r\n/* HTML5 display-role reset for older browsers */\r\narticle, aside, details, figcaption, figure, \r\nfooter, header, hgroup, menu, nav, section {\r\n\tdisplay: block;\r\n}\r\nbody {\r\n\tline-height: 1;\r\n}\r\nol, ul {\r\n\tlist-style: none;\r\n}\r\nblockquote, q {\r\n\tquotes: none;\r\n}\r\nblockquote:before, blockquote:after,\r\nq:before, q:after {\r\n\tcontent: '';\r\n\tcontent: none;\r\n}\r\ntable {\r\n\tborder-collapse: collapse;\r\n\tborder-spacing: 0;\r\n}\r\n\r\n/* CSS Document */\r\nbody {\r\n\tbackground: #333;\r\n\twidth: 960px;\r\n\tmargin: 0px;\r\n\tpadding: 20px;\r\n\tfont-family: Arial, Helvetica, sans-serif;\r\n\tfont-size: 12px;\r\n\tcolor: #eee;\r\n}\r\n\r\nul li {\r\n\tbackground: url(images/accept.png) no-repeat left;\r\n\tlist-style: none;\r\n\tpadding: 3px 3px 3px 20px;\r\n\tmargin-left:10px;\r\n}\r\n\r\nul, ol {\r\n\tmargin-bottom:10px;\r\n}\r\nol li {\r\n\tlist-style: none;\r\n\tpadding: 10px 10px 5px;\r\n}\r\nol li div.question {\r\n\tfont-weight:bold;\r\n\tcolor:#ccc;\r\n\tmargin-bottom:2px;\r\n}\r\n\r\na {\r\n\ttext-decoration: none;\r\n\tcolor: #0066FF;\r\n}\r\n\r\nh1 {\r\n\tfont-size: 26px;\r\n\tfont-weight: normal;\r\n\tmargin: 0px;\r\n\tcolor: #0099FF;\r\n}\r\n\r\nh2 {\r\n\tfont-size:15px;\r\n\tfont-weight:bold;\r\n\tmargin:15px 0 5px;\t\r\n}\r\n\r\n.code {\r\n\tbackground: #555;\r\n\tpadding: 10px;\r\n\tmargin-bottom: 10px;\r\n\tdisplay: none;\r\n\tcolor: #eee;\r\n}\r\n\r\n.title {\r\n\tbackground: #0099FF;\r\n\tcolor: #fff;\r\n\tpadding: 10px;\r\n}\r\n\r\n.bborder {\r\n\tbackground: #eee;\r\n\tborder: 0px solid #ccc;\r\n\tpadding: 3px;\r\n}\r\n\r\n.update {\r\n\tborder: 1px solid #777;\r\n\toverflow: hidden;\r\n\tmargin-top:20px;\r\n}\r\n\r\n.update h3 {\r\n\tmargin:5px 0 5px 10px;\r\n\tfont-weight:bold;\r\n\tfont-size:1.1em;\t\r\n}\r\n.update.fh {\r\n\theight: auto;\r\n}\r\n\r\n.update p {\r\n\tmargin: 10px;\r\n}\r\n\r\n.update h2 {\r\n\tcursor: pointer;\r\n\tdisplay: block;\r\n\tpadding: 5px;\r\n\tcolor: #fff;\r\n\tposition: relative;\r\n\ttext-transform: uppercase;\r\n\tfont-size: 12px;\r\n\tletter-spacing: 2px;\r\n\tborder-left: 0px solid #06f;\r\n\tborder-bottom: 2px solid #0066FF;\r\n\tfont-weight:bold;\r\n\tmargin:0 0 3px;\r\n}\r\n\r\n.flexigrid div.fbutton .add {\r\n\tbackground: url(images/add.png) no-repeat center left;\r\n}\r\n\r\n.flexigrid div.fbutton .delete {\r\n    background: url(images/close.png) no-repeat center left;\r\n}\r\n\r\n.flexigrid div.fbutton .edit {\r\n\tbackground: url(images/edit.png) no-repeat center left;\r\n}"
  },
  {
    "path": "js/flexigrid.js",
    "content": "/*\r\n * Flexigrid for jQuery -  v1.1\r\n *\r\n * Copyright (c) 2008 Paulo P. Marinas (code.google.com/p/flexigrid/)\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n * http://jquery.org/license\r\n *\r\n */\r\n(function ($) {\r\n\t/*\r\n\t * jQuery 1.9 support. browser object has been removed in 1.9 \r\n\t */\r\n\tvar browser = $.browser\r\n\t\r\n\tif (!browser) {\r\n\t\tfunction uaMatch( ua ) {\r\n\t\t\tua = ua.toLowerCase();\r\n\r\n\t\t\tvar match = /(chrome)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n\t\t\t\t/(webkit)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n\t\t\t\t/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n\t\t\t\t/(msie) ([\\w.]+)/.exec( ua ) ||\r\n\t\t\t\tua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec( ua ) ||\r\n\t\t\t\t[];\r\n\r\n\t\t\treturn {\r\n\t\t\t\tbrowser: match[ 1 ] || \"\",\r\n\t\t\t\tversion: match[ 2 ] || \"0\"\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tvar matched = uaMatch( navigator.userAgent );\r\n\t\tbrowser = {};\r\n\r\n\t\tif ( matched.browser ) {\r\n\t\t\tbrowser[ matched.browser ] = true;\r\n\t\t\tbrowser.version = matched.version;\r\n\t\t}\r\n\r\n\t\t// Chrome is Webkit, but Webkit is also Safari.\r\n\t\tif ( browser.chrome ) {\r\n\t\t\tbrowser.webkit = true;\r\n\t\t} else if ( browser.webkit ) {\r\n\t\t\tbrowser.safari = true;\r\n\t\t}\r\n\t}\r\n\t\r\n    /*!\r\n     * START code from jQuery UI\r\n     *\r\n     * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\r\n     * Dual licensed under the MIT or GPL Version 2 licenses.\r\n     * http://jquery.org/license\r\n     *\r\n     * http://docs.jquery.com/UI\r\n     */\r\n     \r\n    if(typeof $.support.selectstart != 'function') {\r\n        $.support.selectstart = \"onselectstart\" in document.createElement(\"div\");\r\n    }\r\n    \r\n    if(typeof $.fn.disableSelection != 'function') {\r\n        $.fn.disableSelection = function() {\r\n            return this.bind( ( $.support.selectstart ? \"selectstart\" : \"mousedown\" ) +\r\n                \".ui-disableSelection\", function( event ) {\r\n                event.preventDefault();\r\n            });\r\n        };\r\n    }\r\n    \r\n    /* END code from jQuery UI */\r\n    \r\n\t$.addFlex = function (t, p) {\r\n\t\tif (t.grid) return false; //return if already exist\r\n\t\tp = $.extend({ //apply default properties\r\n\t\t\theight: 200, //default height\r\n\t\t\twidth: 'auto', //auto width\r\n\t\t\tstriped: true, //apply odd even stripes\r\n\t\t\tnovstripe: false,\r\n\t\t\tminwidth: 30, //min width of columns\r\n\t\t\tminheight: 80, //min height of columns\r\n\t\t\tresizable: true, //allow table resizing\r\n\t\t\turl: false, //URL if using data from AJAX\r\n\t\t\tmethod: 'POST', //data sending method\r\n\t\t\tdataType: 'xml', //type of data for AJAX, either xml or json\r\n\t\t\terrormsg: 'Connection Error',\r\n\t\t\tusepager: false,\r\n\t\t\tnowrap: true,\r\n\t\t\tpage: 1, //current page\r\n\t\t\ttotal: 1, //total pages\r\n\t\t\tuseRp: true, //use the results per page select box\r\n\t\t\trp: 15, //results per page\r\n\t\t\trpOptions: [10, 15, 20, 30, 50], //allowed per-page values\r\n\t\t\ttitle: false,\r\n\t\t\tidProperty: 'id',\r\n\t\t\tpagestat: 'Displaying {from} to {to} of {total} items',\r\n\t\t\tpagetext: 'Page',\r\n\t\t\toutof: 'of',\r\n\t\t\tfindtext: 'Find',\r\n\t\t\tparams: [], //allow optional parameters to be passed around\r\n\t\t\tprocmsg: 'Processing, please wait ...',\r\n\t\t\tquery: '',\r\n\t\t\tqtype: '',\r\n\t\t\tnomsg: 'No items',\r\n\t\t\tminColToggle: 1, //minimum allowed column to be hidden\r\n\t\t\tshowToggleBtn: true, //show or hide column toggle popup\r\n\t\t\thideOnSubmit: true,\r\n\t\t\tautoload: true,\r\n\t\t\tblockOpacity: 0.5,\r\n\t\t\tpreProcess: false,\r\n\t\t\taddTitleToCell: false, // add a title attr to cells with truncated contents\r\n\t\t\tdblClickResize: false, //auto resize column by double clicking\r\n\t\t\tonDragCol: false,\r\n\t\t\tonToggleCol: false,\r\n\t\t\tonChangeSort: false,\r\n\t\t\tonDoubleClick: false,\r\n\t\t\tonSuccess: false,\r\n\t\t\tonError: false,\r\n\t\t\tonSubmit: false, //using a custom populate function\r\n            __mw: { //extendable middleware function holding object\r\n                datacol: function(p, col, val) { //middleware for formatting data columns\r\n                    var _col = (typeof p.datacol[col] == 'function') ? p.datacol[col](val) : val; //format column using function\r\n                    if(typeof p.datacol['*'] == 'function') { //if wildcard function exists\r\n                        return p.datacol['*'](_col); //run wildcard function\r\n                    } else {\r\n                        return _col; //return column without wildcard\r\n                    }\r\n                }\r\n            },\r\n            getGridClass: function(g) { //get the grid class, always returns g\r\n                return g;\r\n            },\r\n            datacol: {}, //datacol middleware object 'colkey': function(colval) {}\r\n            colResize: true, //from: http://stackoverflow.com/a/10615589\r\n            colMove: true\r\n\t\t}, p);\r\n\t\t$(t).show() //show if hidden\r\n\t\t\t.attr({\r\n\t\t\t\tcellPadding: 0,\r\n\t\t\t\tcellSpacing: 0,\r\n\t\t\t\tborder: 0\r\n\t\t\t}) //remove padding and spacing\r\n\t\t\t.removeAttr('width'); //remove width properties\r\n\t\t//create grid class\r\n\t\tvar g = {\r\n\t\t\thset: {},\r\n\t\t\trePosDrag: function () {\r\n\t\t\t\tvar cdleft = 0 - this.hDiv.scrollLeft;\r\n\t\t\t\tif (this.hDiv.scrollLeft > 0) cdleft -= Math.floor(p.cgwidth / 2);\r\n\t\t\t\t$(g.cDrag).css({\r\n\t\t\t\t\ttop: g.hDiv.offsetTop + 1\r\n\t\t\t\t});\r\n\t\t\t\tvar cdpad = this.cdpad;\r\n\t\t\t\tvar cdcounter=0;\r\n\t\t\t\t$('div', g.cDrag).hide();\r\n\t\t\t\t$('thead tr:first th:visible', this.hDiv).each(function () {\r\n\t\t\t\t\tvar n = $('thead tr:first th:visible', g.hDiv).index(this);\r\n\t\t\t\t\tvar cdpos = parseInt($('div', this).width());\r\n\t\t\t\t\tif (cdleft == 0) cdleft -= Math.floor(p.cgwidth / 2);\r\n\t\t\t\t\tcdpos = cdpos + cdleft + cdpad;\r\n\t\t\t\t\tif (isNaN(cdpos)) {\r\n\t\t\t\t\t\tcdpos = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$('div:eq(' + n + ')', g.cDrag).css({\r\n\t\t\t\t\t\t'left': (!(browser.mozilla) ? cdpos - cdcounter : cdpos) + 'px'\r\n\t\t\t\t\t}).show();\r\n\t\t\t\t\tcdleft = cdpos;\r\n\t\t\t\t\tcdcounter++;\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tfixHeight: function (newH) {\r\n\t\t\t\tnewH = false;\r\n\t\t\t\tif (!newH) newH = $(g.bDiv).height();\r\n\t\t\t\tvar hdHeight = $(this.hDiv).height();\r\n\t\t\t\t$('div', this.cDrag).each(\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t$(this).height(newH + hdHeight);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\tvar nd = parseInt($(g.nDiv).height(), 10);\r\n\t\t\t\tif (nd > newH) $(g.nDiv).height(newH).width(200);\r\n\t\t\t\telse $(g.nDiv).height('auto').width('auto');\r\n\t\t\t\t$(g.block).css({\r\n\t\t\t\t\theight: newH,\r\n\t\t\t\t\tmarginBottom: (newH * -1)\r\n\t\t\t\t});\r\n\t\t\t\tvar hrH = g.bDiv.offsetTop + newH;\r\n\t\t\t\tif (p.height != 'auto' && p.resizable) hrH = g.vDiv.offsetTop;\r\n\t\t\t\t$(g.rDiv).css({\r\n\t\t\t\t\theight: hrH\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tdragStart: function (dragtype, e, obj) { //default drag function start\r\n                if (dragtype == 'colresize' && p.colResize === true) {//column resize\r\n\t\t\t\t\t$(g.nDiv).hide();\r\n\t\t\t\t\t$(g.nBtn).hide();\r\n\t\t\t\t\tvar n = $('div', this.cDrag).index(obj);\r\n\t\t\t\t\tvar ow = $('th:visible div:eq(' + n + ')', this.hDiv).width();\r\n\t\t\t\t\t$(obj).addClass('dragging').siblings().hide();\r\n\t\t\t\t\t$(obj).prev().addClass('dragging').show();\r\n\t\t\t\t\tthis.colresize = {\r\n\t\t\t\t\t\tstartX: e.pageX,\r\n\t\t\t\t\t\tol: parseInt(obj.style.left, 10),\r\n\t\t\t\t\t\tow: ow,\r\n\t\t\t\t\t\tn: n\r\n\t\t\t\t\t};\r\n\t\t\t\t\t$('body').css('cursor', 'col-resize');\r\n\t\t\t\t} else if (dragtype == 'vresize') {//table resize\r\n\t\t\t\t\tvar hgo = false;\r\n\t\t\t\t\t$('body').css('cursor', 'row-resize');\r\n\t\t\t\t\tif (obj) {\r\n\t\t\t\t\t\thgo = true;\r\n\t\t\t\t\t\t$('body').css('cursor', 'col-resize');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.vresize = {\r\n\t\t\t\t\t\th: p.height,\r\n\t\t\t\t\t\tsy: e.pageY,\r\n\t\t\t\t\t\tw: p.width,\r\n\t\t\t\t\t\tsx: e.pageX,\r\n\t\t\t\t\t\thgo: hgo\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (dragtype == 'colMove') {//column header drag\r\n                    $(e.target).disableSelection(); //disable selecting the column header\r\n                    if((p.colMove === true)) {\r\n                        $(g.nDiv).hide();\r\n                        $(g.nBtn).hide();\r\n                        this.hset = $(this.hDiv).offset();\r\n                        this.hset.right = this.hset.left + $('table', this.hDiv).width();\r\n                        this.hset.bottom = this.hset.top + $('table', this.hDiv).height();\r\n                        this.dcol = obj;\r\n                        this.dcoln = $('th', this.hDiv).index(obj);\r\n                        this.colCopy = document.createElement(\"div\");\r\n                        this.colCopy.className = \"colCopy\";\r\n                        this.colCopy.innerHTML = obj.innerHTML;\r\n                        if (browser.msie) {\r\n                            this.colCopy.className = \"colCopy ie\";\r\n                        }\r\n                        $(this.colCopy).css({\r\n                            position: 'absolute',\r\n                            'float': 'left',\r\n                            display: 'none',\r\n                            textAlign: obj.align\r\n                        });\r\n                        $('body').append(this.colCopy);\r\n                        $(this.cDrag).hide();\r\n                    }\r\n\t\t\t\t}\r\n\t\t\t\t$('body').noSelect();\r\n\t\t\t},\r\n\t\t\tdragMove: function (e) {\r\n\t\t\t\tif (this.colresize) {//column resize\r\n\t\t\t\t\tvar n = this.colresize.n;\r\n\t\t\t\t\tvar diff = e.pageX - this.colresize.startX;\r\n\t\t\t\t\tvar nleft = this.colresize.ol + diff;\r\n\t\t\t\t\tvar nw = this.colresize.ow + diff;\r\n\t\t\t\t\tif (nw > p.minwidth) {\r\n\t\t\t\t\t\t$('div:eq(' + n + ')', this.cDrag).css('left', nleft);\r\n\t\t\t\t\t\tthis.colresize.nw = nw;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (this.vresize) {//table resize\r\n\t\t\t\t\tvar v = this.vresize;\r\n\t\t\t\t\tvar y = e.pageY;\r\n\t\t\t\t\tvar diff = y - v.sy;\r\n\t\t\t\t\tif (!p.defwidth) p.defwidth = p.width;\r\n\t\t\t\t\tif (p.width != 'auto' && !p.nohresize && v.hgo) {\r\n\t\t\t\t\t\tvar x = e.pageX;\r\n\t\t\t\t\t\tvar xdiff = x - v.sx;\r\n\t\t\t\t\t\tvar newW = v.w + xdiff;\r\n\t\t\t\t\t\tif (newW > p.defwidth) {\r\n\t\t\t\t\t\t\tthis.gDiv.style.width = newW + 'px';\r\n\t\t\t\t\t\t\tp.width = newW;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar newH = v.h + diff;\r\n\t\t\t\t\tif ((newH > p.minheight || p.height < p.minheight) && !v.hgo) {\r\n\t\t\t\t\t\tthis.bDiv.style.height = newH + 'px';\r\n\t\t\t\t\t\tp.height = newH;\r\n\t\t\t\t\t\tthis.fixHeight(newH);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tv = null;\r\n\t\t\t\t} else if (this.colCopy) {\r\n\t\t\t\t\t$(this.dcol).addClass('thMove').removeClass('thOver');\r\n\t\t\t\t\tif (e.pageX > this.hset.right || e.pageX < this.hset.left || e.pageY > this.hset.bottom || e.pageY < this.hset.top) {\r\n\t\t\t\t\t\t//this.dragEnd();\r\n\t\t\t\t\t\t$('body').css('cursor', 'move');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$('body').css('cursor', 'pointer');\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(this.colCopy).css({\r\n\t\t\t\t\t\ttop: e.pageY + 10,\r\n\t\t\t\t\t\tleft: e.pageX + 20,\r\n\t\t\t\t\t\tdisplay: 'block'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdragEnd: function () {\r\n\t\t\t\tif (this.colresize) {\r\n\t\t\t\t\tvar n = this.colresize.n;\r\n\t\t\t\t\tvar nw = this.colresize.nw;\r\n\t\t\t\t\t$('th:visible div:eq(' + n + ')', this.hDiv).css('width', nw);\r\n\t\t\t\t\t$('tr', this.bDiv).each(\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\tvar $tdDiv = $('td:visible div:eq(' + n + ')', this);\r\n\t\t\t\t\t\t\t$tdDiv.css('width', nw);\r\n\t\t\t\t\t\t\tg.addTitleToCell($tdDiv);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\r\n\t\t\t\t\t$('div:eq(' + n + ')', this.cDrag).siblings().show();\r\n\t\t\t\t\t$('.dragging', this.cDrag).removeClass('dragging');\r\n\t\t\t\t\tthis.rePosDrag();\r\n\t\t\t\t\tthis.fixHeight();\r\n\t\t\t\t\tthis.colresize = false;\r\n\t\t\t\t\tif ($.cookies) {\r\n\t\t\t\t\t\tvar name = p.colModel[n].name;\t\t// Store the widths in the cookies\r\n\t\t\t\t\t\t$.cookie('flexiwidths/'+name, nw);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (this.vresize) {\r\n\t\t\t\t\tthis.vresize = false;\r\n\t\t\t\t} else if (this.colCopy) {\r\n\t\t\t\t\t$(this.colCopy).remove();\r\n\t\t\t\t\tif (this.dcolt !== null) {\r\n\t\t\t\t\t\tif (this.dcoln > this.dcolt) $('th:eq(' + this.dcolt + ')', this.hDiv).before(this.dcol);\r\n\t\t\t\t\t\telse $('th:eq(' + this.dcolt + ')', this.hDiv).after(this.dcol);\r\n\t\t\t\t\t\tthis.switchCol(this.dcoln, this.dcolt);\r\n\t\t\t\t\t\t$(this.cdropleft).remove();\r\n\t\t\t\t\t\t$(this.cdropright).remove();\r\n\t\t\t\t\t\tthis.rePosDrag();\r\n\t\t\t\t\t\tif (p.onDragCol) {\r\n\t\t\t\t\t\t\tp.onDragCol(this.dcoln, this.dcolt);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.dcol = null;\r\n\t\t\t\t\tthis.hset = null;\r\n\t\t\t\t\tthis.dcoln = null;\r\n\t\t\t\t\tthis.dcolt = null;\r\n\t\t\t\t\tthis.colCopy = null;\r\n\t\t\t\t\t$('.thMove', this.hDiv).removeClass('thMove');\r\n\t\t\t\t\t$(this.cDrag).show();\r\n\t\t\t\t}\r\n\t\t\t\t$('body').css('cursor', 'default');\r\n\t\t\t\t$('body').noSelect(false);\r\n\t\t\t},\r\n\t\t\ttoggleCol: function (cid, visible) {\r\n\t\t\t\tvar ncol = $(\"th[axis='col\" + cid + \"']\", this.hDiv)[0];\r\n\t\t\t\tvar n = $('thead th', g.hDiv).index(ncol);\r\n\t\t\t\tvar cb = $('input[value=' + cid + ']', g.nDiv)[0];\r\n\t\t\t\tif (visible == null) {\r\n\t\t\t\t\tvisible = ncol.hidden;\r\n\t\t\t\t}\r\n\t\t\t\tif ($('input:checked', g.nDiv).length < p.minColToggle && !visible) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (visible) {\r\n\t\t\t\t\tncol.hidden = false;\r\n\t\t\t\t\t$(ncol).show();\r\n\t\t\t\t\tcb.checked = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tncol.hidden = true;\r\n\t\t\t\t\t$(ncol).hide();\r\n\t\t\t\t\tcb.checked = false;\r\n\t\t\t\t}\r\n\t\t\t\t$('tbody tr', t).each(\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\tif (visible) {\r\n\t\t\t\t\t\t\t$('td:eq(' + n + ')', this).show();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$('td:eq(' + n + ')', this).hide();\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\tthis.rePosDrag();\r\n\t\t\t\tif (p.onToggleCol) {\r\n\t\t\t\t\tp.onToggleCol(cid, visible);\r\n\t\t\t\t}\r\n\t\t\t\treturn visible;\r\n\t\t\t},\r\n\t\t\tswitchCol: function (cdrag, cdrop) { //switch columns\r\n\t\t\t\t$('tbody tr', t).each(\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\tif (cdrag > cdrop) $('td:eq(' + cdrop + ')', this).before($('td:eq(' + cdrag + ')', this));\r\n\t\t\t\t\t\telse $('td:eq(' + cdrop + ')', this).after($('td:eq(' + cdrag + ')', this));\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\t//switch order in nDiv\r\n\t\t\t\tif (cdrag > cdrop) {\r\n\t\t\t\t\t$('tr:eq(' + cdrop + ')', this.nDiv).before($('tr:eq(' + cdrag + ')', this.nDiv));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$('tr:eq(' + cdrop + ')', this.nDiv).after($('tr:eq(' + cdrag + ')', this.nDiv));\r\n\t\t\t\t}\r\n\t\t\t\tif (browser.msie && browser.version < 7.0) {\r\n\t\t\t\t\t$('tr:eq(' + cdrop + ') input', this.nDiv)[0].checked = true;\r\n\t\t\t\t}\r\n\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\r\n\t\t\t},\r\n\t\t\tscroll: function () {\r\n\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\r\n\t\t\t\tthis.rePosDrag();\r\n\t\t\t},\r\n\t\t\taddData: function (data) { //parse data\r\n\t\t\t\tif (p.dataType == 'json') {\r\n\t\t\t\t\tdata = $.extend({rows: [], page: 0, total: 0}, data);\r\n\t\t\t\t}\r\n\t\t\t\tif (p.preProcess) {\r\n\t\t\t\t\tdata = p.preProcess(data);\r\n\t\t\t\t}\r\n\t\t\t\t$('.pReload', this.pDiv).removeClass('loading');\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (!data) {\r\n\t\t\t\t\t$('.pPageStat', this.pDiv).html(p.errormsg);\r\n                    if (p.onSuccess) p.onSuccess(this);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (p.dataType == 'xml') {\r\n\t\t\t\t\tp.total = +$('rows total', data).text();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tp.total = data.total;\r\n\t\t\t\t}\r\n\t\t\t\tif (p.total === 0) {\r\n\t\t\t\t\t$('tr, a, td, div', t).unbind();\r\n\t\t\t\t\t$(t).empty();\r\n\t\t\t\t\tp.pages = 1;\r\n\t\t\t\t\tp.page = 1;\r\n\t\t\t\t\tthis.buildpager();\r\n\t\t\t\t\t$('.pPageStat', this.pDiv).html(p.nomsg);\r\n                    if (p.onSuccess) p.onSuccess(this);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tp.pages = Math.ceil(p.total / p.rp);\r\n\t\t\t\tif (p.dataType == 'xml') {\r\n\t\t\t\t\tp.page = +$('rows page', data).text();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tp.page = data.page;\r\n\t\t\t\t}\r\n\t\t\t\tthis.buildpager();\r\n\t\t\t\t//build new body\r\n\t\t\t\tvar tbody = document.createElement('tbody');\r\n\t\t\t\tif (p.dataType == 'json') {\r\n\t\t\t\t\t$.each(data.rows, function (i, row) {\r\n\t\t\t\t\t\tvar tr = document.createElement('tr');\r\n\t\t\t\t\t\tvar jtr = $(tr);\r\n\t\t\t\t\t\tif (row.name) tr.name = row.name;\r\n\t\t\t\t\t\tif (row.color) {\r\n\t\t\t\t\t\t\tjtr.css('background',row.color);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (i % 2 && p.striped) tr.className = 'erow';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (row[p.idProperty]) {\r\n\t\t\t\t\t\t\ttr.id = 'row' + row[p.idProperty];\r\n\t\t\t\t\t\t\tjtr.attr('data-id', row[p.idProperty]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$('thead tr:first th', g.hDiv).each( //add cell\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\tvar td = document.createElement('td');\r\n\t\t\t\t\t\t\t\tvar idx = $(this).attr('axis').substr(3);\r\n\t\t\t\t\t\t\t\ttd.align = this.align;\r\n\t\t\t\t\t\t\t\t// If each row is the object itself (no 'cell' key)\r\n\t\t\t\t\t\t\t\tif (typeof row.cell == 'undefined') {\r\n\t\t\t\t\t\t\t\t\ttd.innerHTML = row[p.colModel[idx].name];\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t// If the json elements aren't named (which is typical), use numeric order\r\n                                    var iHTML = '';\r\n                                    if (typeof row.cell[idx] != \"undefined\") {\r\n                                        iHTML = (row.cell[idx] !== null) ? row.cell[idx] : ''; //null-check for Opera-browser\r\n                                    } else {\r\n                                        iHTML = row.cell[p.colModel[idx].name];\r\n                                    }\r\n                                    td.innerHTML = p.__mw.datacol(p, $(this).attr('abbr'), iHTML); //use middleware datacol to format cols\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// If the content has a <BGCOLOR=nnnnnn> option, decode it.\r\n\t\t\t\t\t\t\t\tvar offs = td.innerHTML.indexOf( '<BGCOLOR=' );\r\n\t\t\t\t\t\t\t\tif( offs >0 ) {\r\n                                    $(td).css('background', text.substr(offs+7,7) );\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t$(td).attr('abbr', $(this).attr('abbr'));\r\n\t\t\t\t\t\t\t\t$(tr).append(td);\r\n\t\t\t\t\t\t\t\ttd = 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\tif ($('thead', this.gDiv).length < 1) {//handle if grid has no headers\r\n\t\t\t\t\t\t\tfor (idx = 0; idx < row.cell.length; idx++) {\r\n\t\t\t\t\t\t\t\tvar td = document.createElement('td');\r\n\t\t\t\t\t\t\t\t// If the json elements aren't named (which is typical), use numeric order\r\n\t\t\t\t\t\t\t\tif (typeof row.cell[idx] != \"undefined\") {\r\n\t\t\t\t\t\t\t\t\ttd.innerHTML = (row.cell[idx] != null) ? row.cell[idx] : '';//null-check for Opera-browser\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttd.innerHTML = row.cell[p.colModel[idx].name];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t$(tr).append(td);\r\n\t\t\t\t\t\t\t\ttd = 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\t$(tbody).append(tr);\r\n\t\t\t\t\t\ttr = null;\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (p.dataType == 'xml') {\r\n\t\t\t\t\tvar i = 1;\r\n\t\t\t\t\t$(\"rows row\", data).each(function () {\r\n\t\t\t\t\t\ti++;\r\n\t\t\t\t\t\tvar tr = document.createElement('tr');\r\n\t\t\t\t\t\tif ($(this).attr('name')) tr.name = $(this).attr('name');\r\n\t\t\t\t\t\tif ($(this).attr('color')) {\r\n\t\t\t\t\t\t\t$(tr).css('background',$(this).attr('id'));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (i % 2 && p.striped) tr.className = 'erow';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar nid = $(this).attr('id');\r\n\t\t\t\t\t\tif (nid) {\r\n\t\t\t\t\t\t\ttr.id = 'row' + nid;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnid = null;\r\n\t\t\t\t\t\tvar robj = this;\r\n\t\t\t\t\t\t$('thead tr:first th', g.hDiv).each(function () {\r\n\t\t\t\t\t\t\tvar td = document.createElement('td');\r\n\t\t\t\t\t\t\tvar idx = $(this).attr('axis').substr(3);\r\n\t\t\t\t\t\t\ttd.align = this.align;\r\n\r\n\t\t\t\t\t\t\tvar text = $(\"cell:eq(\" + idx + \")\", robj).text();\r\n\t\t\t\t\t\t\tvar offs = text.indexOf( '<BGCOLOR=' );\r\n\t\t\t\t\t\t\tif( offs >0 ) {\r\n\t\t\t\t\t\t\t\t$(td).css('background',\t text.substr(offs+7,7) );\r\n\t\t\t\t\t\t\t}\r\n                            td.innerHTML = p.__mw.datacol(p, $(this).attr('abbr'), text); //use middleware datacol to format cols\r\n\t\t\t\t\t\t\t$(td).attr('abbr', $(this).attr('abbr'));\r\n\t\t\t\t\t\t\t$(tr).append(td);\r\n\t\t\t\t\t\t\ttd = null;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif ($('thead', this.gDiv).length < 1) {//handle if grid has no headers\r\n\t\t\t\t\t\t\t$('cell', this).each(function () {\r\n\t\t\t\t\t\t\t\tvar td = document.createElement('td');\r\n\t\t\t\t\t\t\t\ttd.innerHTML = $(this).text();\r\n\t\t\t\t\t\t\t\t$(tr).append(td);\r\n\t\t\t\t\t\t\t\ttd = 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\t$(tbody).append(tr);\r\n\t\t\t\t\t\ttr = null;\r\n\t\t\t\t\t\trobj = null;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t$('tr', t).unbind();\r\n\t\t\t\t$(t).empty();\r\n\t\t\t\t$(t).append(tbody);\r\n\t\t\t\tthis.addCellProp();\r\n\t\t\t\tthis.addRowProp();\r\n\t\t\t\tthis.rePosDrag();\r\n\t\t\t\ttbody = null;\r\n\t\t\t\tdata = null;\r\n\t\t\t\ti = null;\r\n\t\t\t\tif (p.onSuccess) {\r\n\t\t\t\t\tp.onSuccess(this);\r\n\t\t\t\t}\r\n\t\t\t\tif (p.hideOnSubmit) {\r\n\t\t\t\t\t$(g.block).remove();\r\n\t\t\t\t}\r\n\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\r\n\t\t\t\tif (browser.opera) {\r\n\t\t\t\t\t$(t).css('visibility', 'visible');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tchangeSort: function (th) { //change sortorder\r\n\t\t\t\tif (this.loading) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\t$(g.nDiv).hide();\r\n\t\t\t\t$(g.nBtn).hide();\r\n\t\t\t\tif (p.sortname == $(th).attr('abbr')) {\r\n\t\t\t\t\tif (p.sortorder == 'asc') {\r\n\t\t\t\t\t\tp.sortorder = 'desc';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tp.sortorder = 'asc';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$(th).addClass('sorted').siblings().removeClass('sorted');\r\n\t\t\t\t$('.sdesc', this.hDiv).removeClass('sdesc');\r\n\t\t\t\t$('.sasc', this.hDiv).removeClass('sasc');\r\n\t\t\t\t$('div', th).addClass('s' + p.sortorder);\r\n\t\t\t\tp.sortname = $(th).attr('abbr');\r\n\t\t\t\tif (p.onChangeSort) {\r\n\t\t\t\t\tp.onChangeSort(p.sortname, p.sortorder);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.populate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbuildpager: function () { //rebuild pager based on new properties\r\n\t\t\t\t$('.pcontrol input', this.pDiv).val(p.page);\r\n\t\t\t\t$('.pcontrol span', this.pDiv).html(p.pages);\r\n\t\t\t\tvar r1 = p.total == 0 ? 0 : (p.page - 1) * p.rp + 1;\r\n\t\t\t\tvar r2 = r1 + p.rp - 1;\r\n\t\t\t\tif (p.total < r2) {\r\n\t\t\t\t\tr2 = p.total;\r\n\t\t\t\t}\r\n\t\t\t\tvar stat = p.pagestat;\r\n\t\t\t\tstat = stat.replace(/{from}/, r1);\r\n\t\t\t\tstat = stat.replace(/{to}/, r2);\r\n\t\t\t\tstat = stat.replace(/{total}/, p.total);\r\n\t\t\t\t$('.pPageStat', this.pDiv).html(stat);\r\n\t\t\t},\r\n\t\t\tpopulate: function () { //get latest data\r\n\t\t\t\tif (this.loading) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\tif (p.onSubmit) {\r\n\t\t\t\t\tvar gh = p.onSubmit();\r\n\t\t\t\t\tif (!gh) {\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\tthis.loading = true;\r\n\t\t\t\tif (!p.url) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\t$('.pPageStat', this.pDiv).html(p.procmsg);\r\n\t\t\t\t$('.pReload', this.pDiv).addClass('loading');\r\n\t\t\t\t$(g.block).css({\r\n\t\t\t\t\ttop: g.bDiv.offsetTop\r\n\t\t\t\t});\r\n\t\t\t\tif (p.hideOnSubmit) {\r\n\t\t\t\t\t$(this.gDiv).prepend(g.block);\r\n\t\t\t\t}\r\n\t\t\t\tif (browser.opera) {\r\n\t\t\t\t\t$(t).css('visibility', 'hidden');\r\n\t\t\t\t}\r\n\t\t\t\tif (!p.newp) {\r\n\t\t\t\t\tp.newp = 1;\r\n\t\t\t\t}\r\n\t\t\t\tif (p.page > p.pages) {\r\n\t\t\t\t\tp.page = p.pages;\r\n\t\t\t\t}\r\n\t\t\t\tvar param = [{\r\n\t\t\t\t\tname: 'page',\r\n\t\t\t\t\tvalue: p.newp\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: 'rp',\r\n\t\t\t\t\tvalue: p.rp\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: 'sortname',\r\n\t\t\t\t\tvalue: p.sortname\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: 'sortorder',\r\n\t\t\t\t\tvalue: p.sortorder\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: 'query',\r\n\t\t\t\t\tvalue: p.query\r\n\t\t\t\t}, {\r\n\t\t\t\t\tname: 'qtype',\r\n\t\t\t\t\tvalue: p.qtype\r\n\t\t\t\t}];\r\n\t\t\t\tif (p.params.length) {\r\n\t\t\t\t\tfor (var pi = 0; pi < p.params.length; pi++) {\r\n\t\t\t\t\t\tparam[param.length] = p.params[pi];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: p.method,\r\n\t\t\t\t\turl: p.url,\r\n\t\t\t\t\tdata: param,\r\n\t\t\t\t\tdataType: p.dataType,\r\n\t\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\t\tg.addData(data);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: function (XMLHttpRequest, textStatus, errorThrown) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tif (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown);\r\n\t\t\t\t\t\t} catch (e) {}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tdoSearch: function () {\r\n\t\t\t\tp.query = $('input[name=q]', g.sDiv).val();\r\n\t\t\t\tp.qtype = $('select[name=qtype]', g.sDiv).val();\r\n\t\t\t\tp.newp = 1;\r\n\t\t\t\tthis.populate();\r\n\t\t\t},\r\n\t\t\tchangePage: function (ctype) { //change page\r\n\t\t\t\tif (this.loading) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\tswitch (ctype) {\r\n\t\t\t\t\tcase 'first':\r\n\t\t\t\t\t\tp.newp = 1;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'prev':\r\n\t\t\t\t\t\tif (p.page > 1) {\r\n\t\t\t\t\t\t\tp.newp = parseInt(p.page, 10) - 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'next':\r\n\t\t\t\t\t\tif (p.page < p.pages) {\r\n\t\t\t\t\t\t\tp.newp = parseInt(p.page, 10) + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'last':\r\n\t\t\t\t\t\tp.newp = p.pages;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'input':\r\n\t\t\t\t\t\tvar nv = parseInt($('.pcontrol input', this.pDiv).val(), 10);\r\n\t\t\t\t\t\tif (isNaN(nv)) {\r\n\t\t\t\t\t\t\tnv = 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (nv < 1) {\r\n\t\t\t\t\t\t\tnv = 1;\r\n\t\t\t\t\t\t} else if (nv > p.pages) {\r\n\t\t\t\t\t\t\tnv = p.pages;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$('.pcontrol input', this.pDiv).val(nv);\r\n\t\t\t\t\t\tp.newp = nv;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif (p.newp == p.page) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (p.onChangePage) {\r\n\t\t\t\t\tp.onChangePage(p.newp);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.populate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\taddCellProp: function () {\r\n\t\t\t\t$('tbody tr td', g.bDiv).each(function () {\r\n\t\t\t\t\tvar tdDiv = document.createElement('div');\r\n\t\t\t\t\tvar n = $('td', $(this).parent()).index(this);\r\n\t\t\t\t\tvar pth = $('th:eq(' + n + ')', g.hDiv).get(0);\r\n\t\t\t\t\tif (pth != null) {\r\n\t\t\t\t\t\tif (p.sortname == $(pth).attr('abbr') && p.sortname) {\r\n\t\t\t\t\t\t\tthis.className = 'sorted';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$(tdDiv).css({\r\n\t\t\t\t\t\t\ttextAlign: pth.align,\r\n\t\t\t\t\t\t\twidth: $('div:first', pth)[0].style.width\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (pth.hidden) {\r\n\t\t\t\t\t\t\t$(this).css('display', 'none');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (p.nowrap == false) {\r\n\t\t\t\t\t\t$(tdDiv).css('white-space', 'normal');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.innerHTML == '') {\r\n\t\t\t\t\t\tthis.innerHTML = '&nbsp;';\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttdDiv.innerHTML = this.innerHTML;\r\n\t\t\t\t\tvar prnt = $(this).parent()[0];\r\n\t\t\t\t\tvar pid = false;\r\n\t\t\t\t\tif (prnt.id) {\r\n\t\t\t\t\t\tpid = prnt.id.substr(3);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (pth != null) {\r\n\t\t\t\t\t\tif (pth.process) pth.process(tdDiv, pid);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(this).empty().append(tdDiv).removeAttr('width'); //wrap content\r\n\t\t\t\t\tg.addTitleToCell(tdDiv);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tgetCellDim: function (obj) {// get cell prop for editable event\r\n\t\t\t\tvar ht = parseInt($(obj).height(), 10);\r\n\t\t\t\tvar pht = parseInt($(obj).parent().height(), 10);\r\n\t\t\t\tvar wt = parseInt(obj.style.width, 10);\r\n\t\t\t\tvar pwt = parseInt($(obj).parent().width(), 10);\r\n\t\t\t\tvar top = obj.offsetParent.offsetTop;\r\n\t\t\t\tvar left = obj.offsetParent.offsetLeft;\r\n\t\t\t\tvar pdl = parseInt($(obj).css('paddingLeft'), 10);\r\n\t\t\t\tvar pdt = parseInt($(obj).css('paddingTop'), 10);\r\n\t\t\t\treturn {\r\n\t\t\t\t\tht: ht,\r\n\t\t\t\t\twt: wt,\r\n\t\t\t\t\ttop: top,\r\n\t\t\t\t\tleft: left,\r\n\t\t\t\t\tpdl: pdl,\r\n\t\t\t\t\tpdt: pdt,\r\n\t\t\t\t\tpht: pht,\r\n\t\t\t\t\tpwt: pwt\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\taddRowProp: function () {\r\n\t\t\t\t$('tbody tr', g.bDiv).on('click', function (e) {\r\n\t\t\t\t\tvar obj = (e.target || e.srcElement);\r\n\t\t\t\t\tif (obj.href || obj.type) return true;\r\n\t\t\t\t\tif (e.ctrlKey || e.metaKey) {\r\n\t\t\t\t\t\t// mousedown already took care of this case\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(this).toggleClass('trSelected');\r\n\t\t\t\t\tif (p.singleSelect && ! g.multisel) {\r\n\t\t\t\t\t\t$(this).siblings().removeClass('trSelected');\r\n\t\t\t\t\t}\r\n\t\t\t\t}).on('mousedown', function (e) {\r\n\t\t\t\t\tif (e.shiftKey) {\r\n\t\t\t\t\t\t$(this).toggleClass('trSelected');\r\n\t\t\t\t\t\tg.multisel = true;\r\n\t\t\t\t\t\tthis.focus();\r\n\t\t\t\t\t\t$(g.gDiv).noSelect();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (e.ctrlKey || e.metaKey) {\r\n\t\t\t\t\t\t$(this).toggleClass('trSelected');\r\n\t\t\t\t\t\tg.multisel = true;\r\n\t\t\t\t\t\tthis.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}).on('mouseup', function (e) {\r\n\t\t\t\t\tif (g.multisel && ! (e.ctrlKey || e.metaKey)) {\r\n\t\t\t\t\t\tg.multisel = false;\r\n\t\t\t\t\t\t$(g.gDiv).noSelect(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}).on('dblclick', function () {\r\n\t\t\t\t\tif (p.onDoubleClick) {\r\n\t\t\t\t\t\tp.onDoubleClick(this, g, p);\r\n\t\t\t\t\t}\r\n\t\t\t\t}).hover(function (e) {\r\n\t\t\t\t\tif (g.multisel && e.shiftKey) {\r\n\t\t\t\t\t\t$(this).toggleClass('trSelected');\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {});\r\n\t\t\t\tif (browser.msie && browser.version < 7.0) {\r\n\t\t\t\t\t$(this).hover(function () {\r\n\t\t\t\t\t\t$(this).addClass('trOver');\r\n\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t$(this).removeClass('trOver');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tcombo_flag: true,\r\n\t\t\tcombo_resetIndex: function(selObj)\r\n\t\t\t{\r\n\t\t\t\tif(this.combo_flag) {\r\n\t\t\t\t\tselObj.selectedIndex = 0;\r\n\t\t\t\t}\r\n\t\t\t\tthis.combo_flag = true;\r\n\t\t\t},\r\n\t\t\tcombo_doSelectAction: function(selObj)\r\n\t\t\t{\r\n\t\t\t\teval( selObj.options[selObj.selectedIndex].value );\r\n\t\t\t\tselObj.selectedIndex = 0;\r\n\t\t\t\tthis.combo_flag = false;\r\n\t\t\t},\r\n\t\t\t//Add title attribute to div if cell contents is truncated\r\n\t\t\taddTitleToCell: function(tdDiv) {\r\n\t\t\t\tif(p.addTitleToCell) {\r\n\t\t\t\t\tvar $span = $('<span />').css('display', 'none'),\r\n\t\t\t\t\t\t$div = (tdDiv instanceof jQuery) ? tdDiv : $(tdDiv),\r\n\t\t\t\t\t\tdiv_w = $div.outerWidth(),\r\n\t\t\t\t\t\tspan_w = 0;\r\n\r\n\t\t\t\t\t$('body').children(':first').before($span);\r\n\t\t\t\t\t$span.html($div.html());\r\n\t\t\t\t\t$span.css('font-size', '' + $div.css('font-size'));\r\n\t\t\t\t\t$span.css('padding-left', '' + $div.css('padding-left'));\r\n\t\t\t\t\tspan_w = $span.innerWidth();\r\n\t\t\t\t\t$span.remove();\r\n\r\n\t\t\t\t\tif(span_w > div_w) {\r\n\t\t\t\t\t\t$div.attr('title', $div.text());\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$div.removeAttr('title');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tautoResizeColumn: function (obj) {\r\n\t\t\t\tif(!p.dblClickResize) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar n = $('div', this.cDrag).index(obj),\r\n\t\t\t\t\t$th = $('th:visible div:eq(' + n + ')', this.hDiv),\r\n\t\t\t\t\tol = parseInt(obj.style.left, 10),\r\n\t\t\t\t\tow = $th.width(),\r\n\t\t\t\t\tnw = 0,\r\n\t\t\t\t\tnl = 0,\r\n\t\t\t\t\t$span = $('<span />');\r\n\t\t\t\t$('body').children(':first').before($span);\r\n\t\t\t\t$span.html($th.html());\r\n\t\t\t\t$span.css('font-size', '' + $th.css('font-size'));\r\n\t\t\t\t$span.css('padding-left', '' + $th.css('padding-left'));\r\n\t\t\t\t$span.css('padding-right', '' + $th.css('padding-right'));\r\n\t\t\t\tnw = $span.width();\r\n\t\t\t\t$('tr', this.bDiv).each(function () {\r\n\t\t\t\t\tvar $tdDiv = $('td:visible div:eq(' + n + ')', this),\r\n\t\t\t\t\t\tspanW = 0;\r\n\t\t\t\t\t$span.html($tdDiv.html());\r\n\t\t\t\t\t$span.css('font-size', '' + $tdDiv.css('font-size'));\r\n\t\t\t\t\t$span.css('padding-left', '' + $tdDiv.css('padding-left'));\r\n\t\t\t\t\t$span.css('padding-right', '' + $tdDiv.css('padding-right'));\r\n\t\t\t\t\tspanW = $span.width();\r\n\t\t\t\t\tnw = (spanW > nw) ? spanW : nw;\r\n\t\t\t\t});\r\n\t\t\t\t$span.remove();\r\n\t\t\t\tnw = (p.minWidth > nw) ? p.minWidth : nw;\r\n\t\t\t\tnl = ol + (nw - ow);\r\n\t\t\t\t$('div:eq(' + n + ')', this.cDrag).css('left', nl);\r\n\t\t\t\tthis.colresize = {\r\n\t\t\t\t\tnw: nw,\r\n\t\t\t\t\tn: n\r\n\t\t\t\t};\r\n\t\t\t\tg.dragEnd();\r\n\t\t\t},\r\n\t\t\tpager: 0\r\n\t\t};\r\n        \r\n        g = p.getGridClass(g); //get the grid class\r\n        \r\n\t\tif (p.colModel) { //create model if any\r\n\t\t\tthead = document.createElement('thead');\r\n\t\t\tvar tr = document.createElement('tr');\r\n\t\t\tfor (var i = 0; i < p.colModel.length; i++) {\r\n\t\t\t\tvar cm = p.colModel[i];\r\n\t\t\t\tvar th = document.createElement('th');\r\n\t\t\t\t$(th).attr('axis', 'col' + i);\r\n\t\t\t\tif( cm ) {\t// only use cm if its defined\r\n\t\t\t\t\tif ($.cookies) {\r\n\t\t\t\t\t\tvar cookie_width = 'flexiwidths/'+cm.name;\t\t// Re-Store the widths in the cookies\r\n\t\t\t\t\t\tif( $.cookie(cookie_width) != undefined ) {\r\n\t\t\t\t\t\t\tcm.width = $.cookie(cookie_width);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( cm.display != undefined ) {\r\n\t\t\t\t\t\tth.innerHTML = cm.display;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (cm.name && cm.sortable) {\r\n\t\t\t\t\t\t$(th).attr('abbr', cm.name);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (cm.align) {\r\n\t\t\t\t\t\tth.align = cm.align;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (cm.width) {\r\n\t\t\t\t\t\t$(th).attr('width', cm.width);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($(cm).attr('hide')) {\r\n\t\t\t\t\t\tth.hidden = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (cm.process) {\r\n\t\t\t\t\t\tth.process = cm.process;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tth.innerHTML = \"\";\r\n\t\t\t\t\t$(th).attr('width',30);\r\n\t\t\t\t}\r\n\t\t\t\t$(tr).append(th);\r\n\t\t\t}\r\n\t\t\t$(thead).append(tr);\r\n\t\t\t$(t).prepend(thead);\r\n\t\t} // end if p.colmodel\r\n\t\t//init divs\r\n\t\tg.gDiv = document.createElement('div'); //create global container\r\n\t\tg.mDiv = document.createElement('div'); //create title container\r\n\t\tg.hDiv = document.createElement('div'); //create header container\r\n\t\tg.bDiv = document.createElement('div'); //create body container\r\n\t\tg.vDiv = document.createElement('div'); //create grip\r\n\t\tg.rDiv = document.createElement('div'); //create horizontal resizer\r\n\t\tg.cDrag = document.createElement('div'); //create column drag\r\n\t\tg.block = document.createElement('div'); //creat blocker\r\n\t\tg.nDiv = document.createElement('div'); //create column show/hide popup\r\n\t\tg.nBtn = document.createElement('div'); //create column show/hide button\r\n\t\tg.iDiv = document.createElement('div'); //create editable layer\r\n\t\tg.tDiv = document.createElement('div'); //create toolbar\r\n\t\tg.sDiv = document.createElement('div');\r\n\t\tg.pDiv = document.createElement('div'); //create pager container\r\n        \r\n        if(p.colResize === false) { //don't display column drag if we are not using it\r\n            $(g.cDrag).css('display', 'none');\r\n        }\r\n        \r\n\t\tif (!p.usepager) {\r\n\t\t\tg.pDiv.style.display = 'none';\r\n\t\t}\r\n\t\tg.hTable = document.createElement('table');\r\n\t\tg.gDiv.className = 'flexigrid';\r\n\t\tif (p.width != 'auto') {\r\n\t\t\tg.gDiv.style.width = p.width + (isNaN(p.width) ? '' : 'px');\r\n\t\t} \r\n\t\t//add conditional classes\r\n\t\tif (browser.msie) {\r\n\t\t\t$(g.gDiv).addClass('ie');\r\n\t\t}\r\n\t\tif (p.novstripe) {\r\n\t\t\t$(g.gDiv).addClass('novstripe');\r\n\t\t}\r\n\t\t$(t).before(g.gDiv);\r\n\t\t$(g.gDiv).append(t);\r\n\t\t//set toolbar\r\n\t\tif (p.buttons) {\r\n\t\t\tg.tDiv.className = 'tDiv';\r\n\t\t\tvar tDiv2 = document.createElement('div');\r\n\t\t\ttDiv2.className = 'tDiv2';\r\n\t\t\tfor (var i = 0; i < p.buttons.length; i++) {\r\n\t\t\t\tvar btn = p.buttons[i];\r\n\t\t\t\tif (!btn.separator) {\r\n\t\t\t\t\tvar btnDiv = document.createElement('div');\r\n\t\t\t\t\tbtnDiv.className = 'fbutton';\r\n\t\t\t\t\tbtnDiv.innerHTML = (\"<div><span>\") + (btn.hidename ? \"&nbsp;\" : btn.name) + (\"</span></div>\");\r\n\t\t\t\t\tif (btn.bclass) $('span', btnDiv).addClass(btn.bclass).css({\r\n\t\t\t\t\t\tpaddingLeft: 20\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (btn.bimage) // if bimage defined, use its string as an image url for this buttons style (RS)\r\n\t\t\t\t\t\t$('span',btnDiv).css( 'background', 'url('+btn.bimage+') no-repeat center left' );\r\n\t\t\t\t\t\t$('span',btnDiv).css( 'paddingLeft', 20 );\r\n\r\n\t\t\t\t\tif (btn.tooltip) // add title if exists (RS)\r\n\t\t\t\t\t\t$('span',btnDiv)[0].title = btn.tooltip;\r\n\r\n\t\t\t\t\tbtnDiv.onpress = btn.onpress;\r\n\t\t\t\t\tbtnDiv.name = btn.name;\r\n\t\t\t\t\tif (btn.id) {\r\n\t\t\t\t\t\tbtnDiv.id = btn.id;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (btn.onpress) {\r\n\t\t\t\t\t\t$(btnDiv).click(function () {\r\n\t\t\t\t\t\t\tthis.onpress(this.id || this.name, g.gDiv);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(tDiv2).append(btnDiv);\r\n\t\t\t\t\tif (browser.msie && browser.version < 7.0) {\r\n\t\t\t\t\t\t$(btnDiv).hover(function () {\r\n\t\t\t\t\t\t\t$(this).addClass('fbOver');\r\n\t\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t\t$(this).removeClass('fbOver');\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\t$(tDiv2).append(\"<div class='btnseparator'></div>\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$(g.tDiv).append(tDiv2);\r\n\t\t\t$(g.tDiv).append(\"<div style='clear:both'></div>\");\r\n\t\t\t$(g.gDiv).prepend(g.tDiv);\r\n\t\t}\r\n\t\tg.hDiv.className = 'hDiv';\r\n\r\n\t\t// Define a combo button set with custom action'ed calls when clicked.\r\n\t\tif( p.combobuttons && $(g.tDiv2) )\r\n\t\t{\r\n\t\t\tvar btnDiv = document.createElement('div');\r\n\t\t\tbtnDiv.className = 'fbutton';\r\n\r\n\t\t\tvar tSelect = document.createElement('select');\r\n\t\t\t$(tSelect).change( function () { g.combo_doSelectAction( tSelect ) } );\r\n\t\t\t$(tSelect).click( function () { g.combo_resetIndex( tSelect) } );\r\n\t\t\ttSelect.className = 'cselect';\r\n\t\t\t$(btnDiv).append(tSelect);\r\n\r\n\t\t\tfor (i=0;i<p.combobuttons.length;i++)\r\n\t\t\t{\r\n\t\t\t\tvar btn = p.combobuttons[i];\r\n\t\t\t\tif (!btn.separator)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar btnOpt = document.createElement('option');\r\n\t\t\t\t\tbtnOpt.innerHTML = btn.name;\r\n\r\n\t\t\t\t\tif (btn.bclass)\r\n\t\t\t\t\t\t$(btnOpt)\r\n\t\t\t\t\t\t.addClass(btn.bclass)\r\n\t\t\t\t\t\t.css({paddingLeft:20})\r\n\t\t\t\t\t\t;\r\n\t\t\t\t\tif (btn.bimage)  // if bimage defined, use its string as an image url for this buttons style (RS)\r\n\t\t\t\t\t\t$(btnOpt).css( 'background', 'url('+btn.bimage+') no-repeat center left' );\r\n\t\t\t\t\t\t$(btnOpt).css( 'paddingLeft', 20 );\r\n\r\n\t\t\t\t\tif (btn.tooltip) // add title if exists (RS)\r\n\t\t\t\t\t\t$(btnOpt)[0].title = btn.tooltip;\r\n\r\n\t\t\t\t\tif (btn.onpress)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbtnOpt.value = btn.onpress;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(tSelect).append(btnOpt);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$('.tDiv2').append(btnDiv);\r\n\t\t}\r\n\r\n\r\n\t\t$(t).before(g.hDiv);\r\n\t\tg.hTable.cellPadding = 0;\r\n\t\tg.hTable.cellSpacing = 0;\r\n\t\t$(g.hDiv).append('<div class=\"hDivBox\"></div>');\r\n\t\t$('div', g.hDiv).append(g.hTable);\r\n\t\tvar thead = $(\"thead:first\", t).get(0);\r\n\t\tif (thead) $(g.hTable).append(thead);\r\n\t\tthead = null;\r\n\t\tif (!p.colmodel) var ci = 0;\r\n\t\t$('thead tr:first th', g.hDiv).each(function () {\r\n\t\t\tvar thdiv = document.createElement('div');\r\n\t\t\tif ($(this).attr('abbr')) {\r\n\t\t\t\t$(this).click(function (e) {\r\n\t\t\t\t\tif (!$(this).hasClass('thOver')) return false;\r\n\t\t\t\t\tvar obj = (e.target || e.srcElement);\r\n\t\t\t\t\tif (obj.href || obj.type) return true;\r\n\t\t\t\t\tg.changeSort(this);\r\n\t\t\t\t});\r\n\t\t\t\tif ($(this).attr('abbr') == p.sortname) {\r\n\t\t\t\t\tthis.className = 'sorted';\r\n\t\t\t\t\tthdiv.className = 's' + p.sortorder;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.hidden) {\r\n\t\t\t\t$(this).hide();\r\n\t\t\t}\r\n\t\t\tif (!p.colmodel) {\r\n\t\t\t\t$(this).attr('axis', 'col' + ci++);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t// if there isn't a default width, then the column headers don't match\r\n\t\t\t// i'm sure there is a better way, but this at least stops it failing\r\n\t\t\tif (this.width == '') {\r\n\t\t\t\tthis.width = 100;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$(thdiv).css({\r\n\t\t\t\ttextAlign: this.align,\r\n\t\t\t\twidth: this.width + 'px'\r\n\t\t\t});\r\n\t\t\tthdiv.innerHTML = this.innerHTML;\r\n\t\t\t$(this).empty().append(thdiv).removeAttr('width').mousedown(function (e) {\r\n\t\t\t\tg.dragStart('colMove', e, this);\r\n\t\t\t}).hover(function () {\r\n\t\t\t\tif (!g.colresize && !$(this).hasClass('thMove') && !g.colCopy) {\r\n\t\t\t\t\t$(this).addClass('thOver');\r\n\t\t\t\t}\r\n\t\t\t\tif ($(this).attr('abbr') != p.sortname && !g.colCopy && !g.colresize && $(this).attr('abbr')) {\r\n\t\t\t\t\t$('div', this).addClass('s' + p.sortorder);\r\n\t\t\t\t} else if ($(this).attr('abbr') == p.sortname && !g.colCopy && !g.colresize && $(this).attr('abbr')) {\r\n\t\t\t\t\tvar no = (p.sortorder == 'asc') ? 'desc' : 'asc';\r\n\t\t\t\t\t$('div', this).removeClass('s' + p.sortorder).addClass('s' + no);\r\n\t\t\t\t}\r\n\t\t\t\tif (g.colCopy) {\r\n\t\t\t\t\tvar n = $('th', g.hDiv).index(this);\r\n\t\t\t\t\tif (n == g.dcoln) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (n < g.dcoln) {\r\n\t\t\t\t\t\t$(this).append(g.cdropleft);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(this).append(g.cdropright);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tg.dcolt = n;\r\n\t\t\t\t} else if (!g.colresize) {\r\n\t\t\t\t\tvar nv = $('th:visible', g.hDiv).index(this);\r\n\t\t\t\t\tvar onl = parseInt($('div:eq(' + nv + ')', g.cDrag).css('left'), 10);\r\n\t\t\t\t\tvar nw = jQuery(g.nBtn).outerWidth();\r\n\t\t\t\t\tvar nl = onl - nw + Math.floor(p.cgwidth / 2);\r\n\t\t\t\t\t$(g.nDiv).hide();\r\n\t\t\t\t\t$(g.nBtn).hide();\r\n\t\t\t\t\t$(g.nBtn).css({\r\n\t\t\t\t\t\t'left': nl,\r\n\t\t\t\t\t\ttop: g.hDiv.offsetTop\r\n\t\t\t\t\t}).show();\r\n\t\t\t\t\tvar ndw = parseInt($(g.nDiv).width(), 10);\r\n\t\t\t\t\t$(g.nDiv).css({\r\n\t\t\t\t\t\ttop: g.bDiv.offsetTop\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif ((nl + ndw) > $(g.gDiv).width()) {\r\n\t\t\t\t\t\t$(g.nDiv).css('left', onl - ndw + 1);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(g.nDiv).css('left', nl);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($(this).hasClass('sorted')) {\r\n\t\t\t\t\t\t$(g.nBtn).addClass('srtd');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(g.nBtn).removeClass('srtd');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\t$(this).removeClass('thOver');\r\n\t\t\t\tif ($(this).attr('abbr') != p.sortname) {\r\n\t\t\t\t\t$('div', this).removeClass('s' + p.sortorder);\r\n\t\t\t\t} else if ($(this).attr('abbr') == p.sortname) {\r\n\t\t\t\t\tvar no = (p.sortorder == 'asc') ? 'desc' : 'asc';\r\n\t\t\t\t\t$('div', this).addClass('s' + p.sortorder).removeClass('s' + no);\r\n\t\t\t\t}\r\n\t\t\t\tif (g.colCopy) {\r\n\t\t\t\t\t$(g.cdropleft).remove();\r\n\t\t\t\t\t$(g.cdropright).remove();\r\n\t\t\t\t\tg.dcolt = null;\r\n\t\t\t\t}\r\n\t\t\t}); //wrap content\r\n\t\t});\r\n\t\t//set bDiv\r\n\t\tg.bDiv.className = 'bDiv';\r\n\t\t$(t).before(g.bDiv);\r\n\t\t$(g.bDiv).css({\r\n\t\t\theight: (p.height == 'auto') ? 'auto' : p.height + \"px\"\r\n\t\t}).scroll(function (e) {\r\n\t\t\tg.scroll()\r\n\t\t}).append(t);\r\n\t\tif (p.height == 'auto') {\r\n\t\t\t$('table', g.bDiv).addClass('autoht');\r\n\t\t}\r\n\t\t//add td & row properties\r\n\t\tg.addCellProp();\r\n\t\tg.addRowProp();\r\n        //set cDrag only if we are using it\r\n        if (p.colResize === true) {\r\n            var cdcol = $('thead tr:first th:first', g.hDiv).get(0);\r\n            if(cdcol !== null) {\r\n                g.cDrag.className = 'cDrag';\r\n                g.cdpad = 0;\r\n                g.cdpad += (isNaN(parseInt($('div', cdcol).css('borderLeftWidth'), 10)) ? 0 : parseInt($('div', cdcol).css('borderLeftWidth'), 10));\r\n                g.cdpad += (isNaN(parseInt($('div', cdcol).css('borderRightWidth'), 10)) ? 0 : parseInt($('div', cdcol).css('borderRightWidth'), 10));\r\n                g.cdpad += (isNaN(parseInt($('div', cdcol).css('paddingLeft'), 10)) ? 0 : parseInt($('div', cdcol).css('paddingLeft'), 10));\r\n                g.cdpad += (isNaN(parseInt($('div', cdcol).css('paddingRight'), 10)) ? 0 : parseInt($('div', cdcol).css('paddingRight'), 10));\r\n                g.cdpad += (isNaN(parseInt($(cdcol).css('borderLeftWidth'), 10)) ? 0 : parseInt($(cdcol).css('borderLeftWidth'), 10));\r\n                g.cdpad += (isNaN(parseInt($(cdcol).css('borderRightWidth'), 10)) ? 0 : parseInt($(cdcol).css('borderRightWidth'), 10));\r\n                g.cdpad += (isNaN(parseInt($(cdcol).css('paddingLeft'), 10)) ? 0 : parseInt($(cdcol).css('paddingLeft'), 10));\r\n                g.cdpad += (isNaN(parseInt($(cdcol).css('paddingRight'), 10)) ? 0 : parseInt($(cdcol).css('paddingRight'), 10));\r\n                $(g.bDiv).before(g.cDrag);\r\n                var cdheight = $(g.bDiv).height();\r\n                var hdheight = $(g.hDiv).height();\r\n                $(g.cDrag).css({\r\n                    top: -hdheight + 'px'\r\n                });\r\n                $('thead tr:first th', g.hDiv).each(function() {\r\n                    var cgDiv = document.createElement('div');\r\n                    $(g.cDrag).append(cgDiv);\r\n                    if (!p.cgwidth) {\r\n                        p.cgwidth = $(cgDiv).width();\r\n                    }\r\n                    $(cgDiv).css({\r\n                        height: cdheight + hdheight\r\n                    }).mousedown(function(e) {\r\n                        g.dragStart('colresize', e, this);\r\n                    }).dblclick(function(e) {\r\n                        g.autoResizeColumn(this);\r\n                    });\r\n                    if (browser.msie && browser.version < 7.0) {\r\n                        g.fixHeight($(g.gDiv).height());\r\n                        $(cgDiv).hover(function() {\r\n                            g.fixHeight();\r\n                            $(this).addClass('dragging');\r\n                        }, function() {\r\n                            if(!g.colresize) {\r\n                                $(this).removeClass('dragging');\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n            }\r\n        }\r\n\t\t//add strip\r\n\t\tif (p.striped) {\r\n\t\t\t$('tbody tr:odd', g.bDiv).addClass('erow');\r\n\t\t}\r\n\t\tif (p.resizable && p.height != 'auto') {\r\n\t\t\tg.vDiv.className = 'vGrip';\r\n\t\t\t$(g.vDiv).mousedown(function (e) {\r\n\t\t\t\tg.dragStart('vresize', e);\r\n\t\t\t}).html('<span></span>');\r\n\t\t\t$(g.bDiv).after(g.vDiv);\r\n\t\t}\r\n\t\tif (p.resizable && p.width != 'auto' && !p.nohresize) {\r\n\t\t\tg.rDiv.className = 'hGrip';\r\n\t\t\t$(g.rDiv).mousedown(function (e) {\r\n\t\t\t\tg.dragStart('vresize', e, true);\r\n\t\t\t}).html('<span></span>').css('height', $(g.gDiv).height());\r\n\t\t\tif (browser.msie && browser.version < 7.0) {\r\n\t\t\t\t$(g.rDiv).hover(function () {\r\n\t\t\t\t\t$(this).addClass('hgOver');\r\n\t\t\t\t}, function () {\r\n\t\t\t\t\t$(this).removeClass('hgOver');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t$(g.gDiv).append(g.rDiv);\r\n\t\t}\r\n\t\t// add pager\r\n\t\tif (p.usepager) {\r\n\t\t\tg.pDiv.className = 'pDiv';\r\n\t\t\tg.pDiv.innerHTML = '<div class=\"pDiv2\"></div>';\r\n\t\t\t$(g.bDiv).after(g.pDiv);\r\n\t\t\tvar html = ' <div class=\"pGroup\"> <div class=\"pFirst pButton\"><span></span></div><div class=\"pPrev pButton\"><span></span></div> </div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"><span class=\"pcontrol\">' + p.pagetext + ' <input type=\"text\" size=\"4\" value=\"1\" /> ' + p.outof + ' <span> 1 </span></span></div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"> <div class=\"pNext pButton\"><span></span></div><div class=\"pLast pButton\"><span></span></div> </div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"> <div class=\"pReload pButton\"><span></span></div> </div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"><span class=\"pPageStat\"></span></div>';\r\n\t\t\t$('div', g.pDiv).html(html);\r\n\t\t\t$('.pReload', g.pDiv).click(function () {\r\n\t\t\t\tg.populate();\r\n\t\t\t});\r\n\t\t\t$('.pFirst', g.pDiv).click(function () {\r\n\t\t\t\tg.changePage('first');\r\n\t\t\t});\r\n\t\t\t$('.pPrev', g.pDiv).click(function () {\r\n\t\t\t\tg.changePage('prev');\r\n\t\t\t});\r\n\t\t\t$('.pNext', g.pDiv).click(function () {\r\n\t\t\t\tg.changePage('next');\r\n\t\t\t});\r\n\t\t\t$('.pLast', g.pDiv).click(function () {\r\n\t\t\t\tg.changePage('last');\r\n\t\t\t});\r\n\t\t\t$('.pcontrol input', g.pDiv).keydown(function (e) {\r\n\t\t\t\tif (e.keyCode == 13) { \r\n                    g.changePage('input');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (browser.msie && browser.version < 7) $('.pButton', g.pDiv).hover(function () {\r\n\t\t\t\t$(this).addClass('pBtnOver');\r\n\t\t\t}, function () {\r\n\t\t\t\t$(this).removeClass('pBtnOver');\r\n\t\t\t});\r\n\t\t\tif (p.useRp) {\r\n\t\t\t\tvar opt = '',\r\n\t\t\t\t\tsel = '';\r\n\t\t\t\tfor (var nx = 0; nx < p.rpOptions.length; nx++) {\r\n\t\t\t\t\tif (p.rp == p.rpOptions[nx]) sel = 'selected=\"selected\"';\r\n\t\t\t\t\telse sel = '';\r\n\t\t\t\t\topt += \"<option value='\" + p.rpOptions[nx] + \"' \" + sel + \" >\" + p.rpOptions[nx] + \"&nbsp;&nbsp;</option>\";\r\n\t\t\t\t}\r\n\t\t\t\t$('.pDiv2', g.pDiv).prepend(\"<div class='pGroup'><select name='rp'>\" + opt + \"</select></div> <div class='btnseparator'></div>\");\r\n\t\t\t\t$('select', g.pDiv).change(function () {\r\n\t\t\t\t\tif (p.onRpChange) {\r\n\t\t\t\t\t\tp.onRpChange(+this.value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tp.newp = 1;\r\n\t\t\t\t\t\tp.rp = +this.value;\r\n\t\t\t\t\t\tg.populate();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t//add search button\r\n\t\t\tif (p.searchitems) {\r\n\t\t\t\t$('.pDiv2', g.pDiv).prepend(\"<div class='pGroup'> <div class='pSearch pButton'><span></span></div> </div>  <div class='btnseparator'></div>\");\r\n\t\t\t\t$('.pSearch', g.pDiv).click(function () {\r\n\t\t\t\t\t$(g.sDiv).slideToggle('fast', function () {\r\n\t\t\t\t\t\t$('.sDiv:visible input:first', g.gDiv).trigger('focus');\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\t//add search box\r\n\t\t\t\tg.sDiv.className = 'sDiv';\r\n\t\t\t\tvar sitems = p.searchitems;\r\n\t\t\t\tvar sopt = '', sel = '';\r\n\t\t\t\tfor (var s = 0; s < sitems.length; s++) {\r\n\t\t\t\t\tif (p.qtype === '' && sitems[s].isdefault === true) {\r\n\t\t\t\t\t\tp.qtype = sitems[s].name;\r\n\t\t\t\t\t\tsel = 'selected=\"selected\"';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsel = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsopt += \"<option value='\" + sitems[s].name + \"' \" + sel + \" >\" + sitems[s].display + \"&nbsp;&nbsp;</option>\";\r\n\t\t\t\t}\r\n\t\t\t\tif (p.qtype === '') {\r\n\t\t\t\t\tp.qtype = sitems[0].name;\r\n\t\t\t\t}\r\n\t\t\t\t$(g.sDiv).append(\"<div class='sDiv2'>\" + p.findtext +\r\n\t\t\t\t\t\t\" <input type='text' value='\" + p.query +\"' size='30' name='q' class='qsbox' /> \"+\r\n\t\t\t\t\t\t\" <select name='qtype'>\" + sopt + \"</select></div>\");\r\n\t\t\t\t//Split into separate selectors because of bug in jQuery 1.3.2\r\n\t\t\t\t$('input[name=q]', g.sDiv).keydown(function (e) {\r\n\t\t\t\t\tif (e.keyCode == 13) {\r\n\t\t\t\t\t\tg.doSearch();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t$('select[name=qtype]', g.sDiv).keydown(function (e) {\r\n\t\t\t\t\tif (e.keyCode == 13) {\r\n\t\t\t\t\t\tg.doSearch();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t$('input[value=Clear]', g.sDiv).click(function () {\r\n\t\t\t\t\t$('input[name=q]', g.sDiv).val('');\r\n\t\t\t\t\tp.query = '';\r\n\t\t\t\t\tg.doSearch();\r\n\t\t\t\t});\r\n\t\t\t\t$(g.bDiv).after(g.sDiv);\r\n\t\t\t}\r\n\t\t}\r\n\t\t$(g.pDiv, g.sDiv).append(\"<div style='clear:both'></div>\");\r\n\t\t// add title\r\n\t\tif (p.title) {\r\n\t\t\tg.mDiv.className = 'mDiv';\r\n\t\t\tg.mDiv.innerHTML = '<div class=\"ftitle\">' + p.title + '</div>';\r\n\t\t\t$(g.gDiv).prepend(g.mDiv);\r\n\t\t\tif (p.showTableToggleBtn) {\r\n\t\t\t\t$(g.mDiv).append('<div class=\"ptogtitle\" title=\"Minimize/Maximize Table\"><span></span></div>');\r\n\t\t\t\t$('div.ptogtitle', g.mDiv).click(function () {\r\n\t\t\t\t\t$(g.gDiv).toggleClass('hideBody');\r\n\t\t\t\t\t$(this).toggleClass('vsble');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\t//setup cdrops\r\n\t\tg.cdropleft = document.createElement('span');\r\n\t\tg.cdropleft.className = 'cdropleft';\r\n\t\tg.cdropright = document.createElement('span');\r\n\t\tg.cdropright.className = 'cdropright';\r\n\t\t//add block\r\n\t\tg.block.className = 'gBlock';\r\n\t\tvar gh = $(g.bDiv).height();\r\n\t\tvar gtop = g.bDiv.offsetTop;\r\n\t\t$(g.block).css({\r\n\t\t\twidth: g.bDiv.style.width,\r\n\t\t\theight: gh,\r\n\t\t\tbackground: 'white',\r\n\t\t\tposition: 'relative',\r\n\t\t\tmarginBottom: (gh * -1),\r\n\t\t\tzIndex: 1,\r\n\t\t\ttop: gtop,\r\n\t\t\tleft: '0px'\r\n\t\t});\r\n\t\t$(g.block).fadeTo(0, p.blockOpacity);\r\n\t\t// add column control\r\n\t\tif ($('th', g.hDiv).length) {\r\n\t\t\tg.nDiv.className = 'nDiv';\r\n\t\t\tg.nDiv.innerHTML = \"<table cellpadding='0' cellspacing='0'><tbody></tbody></table>\";\r\n\t\t\t$(g.nDiv).css({\r\n\t\t\t\tmarginBottom: (gh * -1),\r\n\t\t\t\tdisplay: 'none',\r\n\t\t\t\ttop: gtop\r\n\t\t\t}).noSelect();\r\n\t\t\tvar cn = 0;\r\n\t\t\t$('th div', g.hDiv).each(function () {\r\n\t\t\t\tvar kcol = $(\"th[axis='col\" + cn + \"']\", g.hDiv)[0];\r\n\t\t\t\tvar chk = 'checked=\"checked\"';\r\n\t\t\t\tif (kcol.style.display == 'none') {\r\n\t\t\t\t\tchk = '';\r\n\t\t\t\t}\r\n\t\t\t\t$('tbody', g.nDiv).append('<tr><td class=\"ndcol1\"><input type=\"checkbox\" ' + chk + ' class=\"togCol\" value=\"' + cn + '\" /></td><td class=\"ndcol2\">' + this.innerHTML + '</td></tr>');\r\n\t\t\t\tcn++;\r\n\t\t\t});\r\n\t\t\tif (browser.msie && browser.version < 7.0) $('tr', g.nDiv).hover(function () {\r\n\t\t\t\t$(this).addClass('ndcolover');\r\n\t\t\t}, function () {\r\n\t\t\t\t$(this).removeClass('ndcolover');\r\n\t\t\t});\r\n\t\t\t$('td.ndcol2', g.nDiv).click(function () {\r\n\t\t\t\tif ($('input:checked', g.nDiv).length <= p.minColToggle && $(this).prev().find('input')[0].checked) return false;\r\n\t\t\t\treturn g.toggleCol($(this).prev().find('input').val());\r\n\t\t\t});\r\n\t\t\t$('input.togCol', g.nDiv).click(function () {\r\n\t\t\t\tif ($('input:checked', g.nDiv).length < p.minColToggle && this.checked === false) return false;\r\n\t\t\t\t$(this).parent().next().trigger('click');\r\n\t\t\t});\r\n\t\t\t$(g.gDiv).prepend(g.nDiv);\r\n\t\t\t$(g.nBtn).addClass('nBtn')\r\n\t\t\t\t.html('<div></div>')\r\n\t\t\t\t.attr('title', 'Hide/Show Columns')\r\n\t\t\t\t.click(function () {\r\n\t\t\t\t\t$(g.nDiv).toggle();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\tif (p.showToggleBtn) {\r\n\t\t\t\t$(g.gDiv).prepend(g.nBtn);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// add date edit layer\r\n\t\t$(g.iDiv).addClass('iDiv').css({\r\n\t\t\tdisplay: 'none'\r\n\t\t});\r\n\t\t$(g.bDiv).append(g.iDiv);\r\n\t\t// add flexigrid events\r\n\t\t$(g.bDiv).hover(function () {\r\n\t\t\t$(g.nDiv).hide();\r\n\t\t\t$(g.nBtn).hide();\r\n\t\t}, function () {\r\n\t\t\tif (g.multisel) {\r\n\t\t\t\tg.multisel = false;\r\n\t\t\t}\r\n\t\t});\r\n\t\t$(g.gDiv).hover(function () {}, function () {\r\n\t\t\t$(g.nDiv).hide();\r\n\t\t\t$(g.nBtn).hide();\r\n\t\t});\r\n\t\t//add document events\r\n\t\t$(document).mousemove(function (e) {\r\n\t\t\tg.dragMove(e);\r\n\t\t}).mouseup(function (e) {\r\n\t\t\tg.dragEnd();\r\n\t\t}).hover(function () {}, function () {\r\n\t\t\tg.dragEnd();\r\n\t\t});\r\n\t\t//browser adjustments\r\n\t\tif (browser.msie && browser.version < 7.0) {\r\n\t\t\t$('.hDiv,.bDiv,.mDiv,.pDiv,.vGrip,.tDiv, .sDiv', g.gDiv).css({\r\n\t\t\t\twidth: '100%'\r\n\t\t\t});\r\n\t\t\t$(g.gDiv).addClass('ie6');\r\n\t\t\tif (p.width != 'auto') {\r\n\t\t\t\t$(g.gDiv).addClass('ie6fullwidthbug');\r\n\t\t\t}\r\n\t\t}\r\n\t\tg.rePosDrag();\r\n\t\tg.fixHeight();\r\n\t\t//make grid functions accessible\r\n\t\tt.p = p;\r\n\t\tt.grid = g;\r\n\t\t// load data\r\n\t\tif (p.url && p.autoload) {\r\n\t\t\tg.populate();\r\n\t\t}\r\n\t\treturn t;\r\n\t};\r\n\tvar docloaded = false;\r\n\t$(document).ready(function () {\r\n\t\tdocloaded = true;\r\n\t});\r\n\t$.fn.flexigrid = function (p) {\r\n\t\treturn this.each(function () {\r\n\t\t\tif (!docloaded) {\r\n\t\t\t\t$(this).hide();\r\n\t\t\t\tvar t = this;\r\n\t\t\t\t$(document).ready(function () {\r\n\t\t\t\t\t$.addFlex(t, p);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t$.addFlex(this, p);\r\n\t\t\t}\r\n\t\t});\r\n\t}; //end flexigrid\r\n\t$.fn.flexReload = function (p) { // function to reload grid\r\n\t\treturn this.each(function () {\r\n\t\t\tif (this.grid && this.p.url) this.grid.populate();\r\n\t\t});\r\n\t}; //end flexReload\r\n\t$.fn.flexOptions = function (p) { //function to update general options\r\n\t\treturn this.each(function () {\r\n\t\t\tif (this.grid) $.extend(this.p, p);\r\n\t\t});\r\n\t}; //end flexOptions\r\n\t$.fn.flexToggleCol = function (cid, visible) { // function to reload grid\r\n\t\treturn this.each(function () {\r\n\t\t\tif (this.grid) this.grid.toggleCol(cid, visible);\r\n\t\t});\r\n\t}; //end flexToggleCol\r\n\t$.fn.flexAddData = function (data) { // function to add data to grid\r\n\t\treturn this.each(function () {\r\n\t\t\tif (this.grid) this.grid.addData(data);\r\n\t\t});\r\n\t};\r\n\t$.fn.noSelect = function (p) { //no select plugin by me :-)\r\n\t\tvar prevent = (p === null) ? true : p;\r\n\t\tif (prevent) {\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\tif (browser.msie || browser.safari) $(this).bind('selectstart', function () {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t\telse if (browser.mozilla) {\r\n\t\t\t\t\t$(this).css('MozUserSelect', 'none');\r\n\t\t\t\t\t$('body').trigger('focus');\r\n\t\t\t\t} else if (browser.opera) $(this).bind('mousedown', function () {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t\telse $(this).attr('unselectable', 'on');\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\tif (browser.msie || browser.safari) $(this).unbind('selectstart');\r\n\t\t\t\telse if (browser.mozilla) $(this).css('MozUserSelect', 'inherit');\r\n\t\t\t\telse if (browser.opera) $(this).unbind('mousedown');\r\n\t\t\t\telse $(this).removeAttr('unselectable', 'on');\r\n\t\t\t});\r\n\t\t}\r\n\t}; //end noSelect\r\n\t$.fn.flexSearch = function(p) { // function to search grid\r\n\t\treturn this.each( function() { if (this.grid&&this.p.searchitems) this.grid.doSearch(); });\r\n\t}; //end flexSearch\r\n\t$.fn.selectedRows = function (p) { // Returns the selected rows as an array, taken and adapted from http://stackoverflow.com/questions/11868404/flexigrid-get-selected-row-columns-values\r\n\t\tvar arReturn = [];\r\n\t\tvar arRow = [];\r\n\t\tvar selector = $(this.selector + ' .trSelected');\r\n\r\n\r\n\t\t$(selector).each(function (i, row) {\r\n\t\t\tarRow = [];\r\n\t\t\tvar idr = $(row).data('id');\r\n\t\t\t$.each(row.cells, function (c, cell) {\r\n\t\t\t\tvar col = cell.abbr;\r\n\t\t\t\tvar val = cell.firstChild.innerHTML;\r\n\t\t\t\tif (val == '&nbsp;') val = '';      // Trim the content\r\n        \t\t        var idx = cell.cellIndex;                \r\n\r\n\t\t\t\tarRow.push({\r\n\t\t\t\t\tColumn: col,        // Column identifier\r\n\t\t\t\t\tValue: val,         // Column value\r\n\t\t\t\t\tCellIndex: idx,     // Cell index\r\n\t\t\t\t\tRowIdentifier: idr  // Identifier of this row element\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tarReturn.push(arRow);\r\n\t\t});\r\n\t\treturn arReturn;\r\n\t};\r\n})(jQuery);\r\n"
  },
  {
    "path": "js/flexigrid.pack.js",
    "content": "(function($){var browser=$.browser;if(!browser){function uaMatch(e){e=e.toLowerCase();var t=/(chrome)[ \\/]([\\w.]+)/.exec(e)||/(webkit)[ \\/]([\\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(e)||/(msie) ([\\w.]+)/.exec(e)||e.indexOf(\"compatible\")<0&&/(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(e)||[];return{browser:t[1]||\"\",version:t[2]||\"0\"}}var matched=uaMatch(navigator.userAgent);browser={};if(matched.browser){browser[matched.browser]=true;browser.version=matched.version}if(browser.chrome){browser.webkit=true}else if(browser.webkit){browser.safari=true}}if(typeof $.support.selectstart!=\"function\"){$.support.selectstart=\"onselectstart\"in document.createElement(\"div\")}if(typeof $.fn.disableSelection!=\"function\"){$.fn.disableSelection=function(){return this.bind(($.support.selectstart?\"selectstart\":\"mousedown\")+\".ui-disableSelection\",function(e){e.preventDefault()})}}$.addFlex=function(t,p){if(t.grid)return false;p=$.extend({height:200,width:\"auto\",striped:true,novstripe:false,minwidth:30,minheight:80,resizable:true,url:false,method:\"POST\",dataType:\"xml\",errormsg:\"Connection Error\",usepager:false,nowrap:true,page:1,total:1,useRp:true,rp:15,rpOptions:[10,20,30,50,100],title:false,idProperty:\"id\",pagestat:\"Displaying {from} to {to} of {total} items\",pagetext:\"Page\",outof:\"of\",findtext:\"Find\",params:[],procmsg:\"Processing, please wait ...\",query:\"\",qtype:\"\",nomsg:\"No items\",minColToggle:1,showToggleBtn:true,hideOnSubmit:true,autoload:true,blockOpacity:.5,preProcess:false,addTitleToCell:false,dblClickResize:false,onDragCol:false,onToggleCol:false,onChangeSort:false,onDoubleClick:false,onSuccess:false,onError:false,onSubmit:false,__mw:{datacol:function(e,t,n){var r=typeof e.datacol[t]==\"function\"?e.datacol[t](n):n;if(typeof e.datacol[\"*\"]==\"function\"){return e.datacol[\"*\"](r)}else{return r}}},getGridClass:function(e){return e},datacol:{},colResize:true,colMove:true},p);$(t).show().attr({cellPadding:0,cellSpacing:0,border:0}).removeAttr(\"width\");var g={hset:{},rePosDrag:function(){var e=0-this.hDiv.scrollLeft;if(this.hDiv.scrollLeft>0)e-=Math.floor(p.cgwidth/2);$(g.cDrag).css({top:g.hDiv.offsetTop+1});var t=this.cdpad;var n=0;$(\"div\",g.cDrag).hide();$(\"thead tr:first th:visible\",this.hDiv).each(function(){var r=$(\"thead tr:first th:visible\",g.hDiv).index(this);var i=parseInt($(\"div\",this).width());if(e==0)e-=Math.floor(p.cgwidth/2);i=i+e+t;if(isNaN(i)){i=0}$(\"div:eq(\"+r+\")\",g.cDrag).css({left:(!browser.mozilla?i-n:i)+\"px\"}).show();e=i;n++})},fixHeight:function(e){e=false;if(!e)e=$(g.bDiv).height();var t=$(this.hDiv).height();$(\"div\",this.cDrag).each(function(){$(this).height(e+t)});var n=parseInt($(g.nDiv).height(),10);if(n>e)$(g.nDiv).height(e).width(200);else $(g.nDiv).height(\"auto\").width(\"auto\");$(g.block).css({height:e,marginBottom:e*-1});var r=g.bDiv.offsetTop+e;if(p.height!=\"auto\"&&p.resizable)r=g.vDiv.offsetTop;$(g.rDiv).css({height:r})},dragStart:function(e,t,n){if(e==\"colresize\"&&p.colResize===true){$(g.nDiv).hide();$(g.nBtn).hide();var r=$(\"div\",this.cDrag).index(n);var i=$(\"th:visible div:eq(\"+r+\")\",this.hDiv).width();$(n).addClass(\"dragging\").siblings().hide();$(n).prev().addClass(\"dragging\").show();this.colresize={startX:t.pageX,ol:parseInt(n.style.left,10),ow:i,n:r};$(\"body\").css(\"cursor\",\"col-resize\")}else if(e==\"vresize\"){var s=false;$(\"body\").css(\"cursor\",\"row-resize\");if(n){s=true;$(\"body\").css(\"cursor\",\"col-resize\")}this.vresize={h:p.height,sy:t.pageY,w:p.width,sx:t.pageX,hgo:s}}else if(e==\"colMove\"){$(t.target).disableSelection();if(p.colMove===true){$(g.nDiv).hide();$(g.nBtn).hide();this.hset=$(this.hDiv).offset();this.hset.right=this.hset.left+$(\"table\",this.hDiv).width();this.hset.bottom=this.hset.top+$(\"table\",this.hDiv).height();this.dcol=n;this.dcoln=$(\"th\",this.hDiv).index(n);this.colCopy=document.createElement(\"div\");this.colCopy.className=\"colCopy\";this.colCopy.innerHTML=n.innerHTML;if(browser.msie){this.colCopy.className=\"colCopy ie\"}$(this.colCopy).css({position:\"absolute\",\"float\":\"left\",display:\"none\",textAlign:n.align});$(\"body\").append(this.colCopy);$(this.cDrag).hide()}}$(\"body\").noSelect()},dragMove:function(e){if(this.colresize){var t=this.colresize.n;var n=e.pageX-this.colresize.startX;var r=this.colresize.ol+n;var i=this.colresize.ow+n;if(i>p.minwidth){$(\"div:eq(\"+t+\")\",this.cDrag).css(\"left\",r);this.colresize.nw=i}}else if(this.vresize){var s=this.vresize;var o=e.pageY;var n=o-s.sy;if(!p.defwidth)p.defwidth=p.width;if(p.width!=\"auto\"&&!p.nohresize&&s.hgo){var u=e.pageX;var a=u-s.sx;var f=s.w+a;if(f>p.defwidth){this.gDiv.style.width=f+\"px\";p.width=f}}var l=s.h+n;if((l>p.minheight||p.height<p.minheight)&&!s.hgo){this.bDiv.style.height=l+\"px\";p.height=l;this.fixHeight(l)}s=null}else if(this.colCopy){$(this.dcol).addClass(\"thMove\").removeClass(\"thOver\");if(e.pageX>this.hset.right||e.pageX<this.hset.left||e.pageY>this.hset.bottom||e.pageY<this.hset.top){$(\"body\").css(\"cursor\",\"move\")}else{$(\"body\").css(\"cursor\",\"pointer\")}$(this.colCopy).css({top:e.pageY+10,left:e.pageX+20,display:\"block\"})}},dragEnd:function(){if(this.colresize){var e=this.colresize.n;var t=this.colresize.nw;$(\"th:visible div:eq(\"+e+\")\",this.hDiv).css(\"width\",t);$(\"tr\",this.bDiv).each(function(){var n=$(\"td:visible div:eq(\"+e+\")\",this);n.css(\"width\",t);g.addTitleToCell(n)});this.hDiv.scrollLeft=this.bDiv.scrollLeft;$(\"div:eq(\"+e+\")\",this.cDrag).siblings().show();$(\".dragging\",this.cDrag).removeClass(\"dragging\");this.rePosDrag();this.fixHeight();this.colresize=false;if($.cookies){var n=p.colModel[e].name;$.cookie(\"flexiwidths/\"+n,t)}}else if(this.vresize){this.vresize=false}else if(this.colCopy){$(this.colCopy).remove();if(this.dcolt!==null){if(this.dcoln>this.dcolt)$(\"th:eq(\"+this.dcolt+\")\",this.hDiv).before(this.dcol);else $(\"th:eq(\"+this.dcolt+\")\",this.hDiv).after(this.dcol);this.switchCol(this.dcoln,this.dcolt);$(this.cdropleft).remove();$(this.cdropright).remove();this.rePosDrag();if(p.onDragCol){p.onDragCol(this.dcoln,this.dcolt)}}this.dcol=null;this.hset=null;this.dcoln=null;this.dcolt=null;this.colCopy=null;$(\".thMove\",this.hDiv).removeClass(\"thMove\");$(this.cDrag).show()}$(\"body\").css(\"cursor\",\"default\");$(\"body\").noSelect(false)},toggleCol:function(e,n){var r=$(\"th[axis='col\"+e+\"']\",this.hDiv)[0];var i=$(\"thead th\",g.hDiv).index(r);var s=$(\"input[value=\"+e+\"]\",g.nDiv)[0];if(n==null){n=r.hidden}if($(\"input:checked\",g.nDiv).length<p.minColToggle&&!n){return false}if(n){r.hidden=false;$(r).show();s.checked=true}else{r.hidden=true;$(r).hide();s.checked=false}$(\"tbody tr\",t).each(function(){if(n){$(\"td:eq(\"+i+\")\",this).show()}else{$(\"td:eq(\"+i+\")\",this).hide()}});this.rePosDrag();if(p.onToggleCol){p.onToggleCol(e,n)}return n},switchCol:function(e,n){$(\"tbody tr\",t).each(function(){if(e>n)$(\"td:eq(\"+n+\")\",this).before($(\"td:eq(\"+e+\")\",this));else $(\"td:eq(\"+n+\")\",this).after($(\"td:eq(\"+e+\")\",this))});if(e>n){$(\"tr:eq(\"+n+\")\",this.nDiv).before($(\"tr:eq(\"+e+\")\",this.nDiv))}else{$(\"tr:eq(\"+n+\")\",this.nDiv).after($(\"tr:eq(\"+e+\")\",this.nDiv))}if(browser.msie&&browser.version<7){$(\"tr:eq(\"+n+\") input\",this.nDiv)[0].checked=true}this.hDiv.scrollLeft=this.bDiv.scrollLeft},scroll:function(){this.hDiv.scrollLeft=this.bDiv.scrollLeft;this.rePosDrag()},addData:function(e){if(p.dataType==\"json\"){e=$.extend({rows:[],page:0,total:0},e)}if(p.preProcess){e=p.preProcess(e)}$(\".pReload\",this.pDiv).removeClass(\"loading\");this.loading=false;if(!e){$(\".pPageStat\",this.pDiv).html(p.errormsg);if(p.onSuccess)p.onSuccess(this);return false}if(p.dataType==\"xml\"){p.total=+$(\"rows total\",e).text()}else{p.total=e.total}if(p.total===0){$(\"tr, a, td, div\",t).unbind();$(t).empty();p.pages=1;p.page=1;this.buildpager();$(\".pPageStat\",this.pDiv).html(p.nomsg);if(p.onSuccess)p.onSuccess(this);return false}p.pages=Math.ceil(p.total/p.rp);if(p.dataType==\"xml\"){p.page=+$(\"rows page\",e).text()}else{p.page=e.page}this.buildpager();var n=document.createElement(\"tbody\");if(p.dataType==\"json\"){$.each(e.rows,function(e,t){var r=document.createElement(\"tr\");var i=$(r);if(t.name)r.name=t.name;if(t.color){i.css(\"background\",t.color)}else{if(e%2&&p.striped)r.className=\"erow\"}if(t[p.idProperty]){r.id=\"row\"+t[p.idProperty];i.attr(\"data-id\",t[p.idProperty])}$(\"thead tr:first th\",g.hDiv).each(function(){var e=document.createElement(\"td\");var n=$(this).attr(\"axis\").substr(3);e.align=this.align;if(typeof t.cell==\"undefined\"){e.innerHTML=t[p.colModel[n].name]}else{var i=\"\";if(typeof t.cell[n]!=\"undefined\"){i=t.cell[n]!==null?t.cell[n]:\"\"}else{i=t.cell[p.colModel[n].name]}e.innerHTML=p.__mw.datacol(p,$(this).attr(\"abbr\"),i)}var s=e.innerHTML.indexOf(\"<BGCOLOR=\");if(s>0){$(e).css(\"background\",text.substr(s+7,7))}$(e).attr(\"abbr\",$(this).attr(\"abbr\"));$(r).append(e);e=null});if($(\"thead\",this.gDiv).length<1){for(idx=0;idx<t.cell.length;idx++){var s=document.createElement(\"td\");if(typeof t.cell[idx]!=\"undefined\"){s.innerHTML=t.cell[idx]!=null?t.cell[idx]:\"\"}else{s.innerHTML=t.cell[p.colModel[idx].name]}$(r).append(s);s=null}}$(n).append(r);r=null})}else if(p.dataType==\"xml\"){var r=1;$(\"rows row\",e).each(function(){r++;var e=document.createElement(\"tr\");if($(this).attr(\"name\"))e.name=$(this).attr(\"name\");if($(this).attr(\"color\")){$(e).css(\"background\",$(this).attr(\"id\"))}else{if(r%2&&p.striped)e.className=\"erow\"}var t=$(this).attr(\"id\");if(t){e.id=\"row\"+t}t=null;var s=this;$(\"thead tr:first th\",g.hDiv).each(function(){var t=document.createElement(\"td\");var n=$(this).attr(\"axis\").substr(3);t.align=this.align;var r=$(\"cell:eq(\"+n+\")\",s).text();var i=r.indexOf(\"<BGCOLOR=\");if(i>0){$(t).css(\"background\",r.substr(i+7,7))}t.innerHTML=p.__mw.datacol(p,$(this).attr(\"abbr\"),r);$(t).attr(\"abbr\",$(this).attr(\"abbr\"));$(e).append(t);t=null});if($(\"thead\",this.gDiv).length<1){$(\"cell\",this).each(function(){var t=document.createElement(\"td\");t.innerHTML=$(this).text();$(e).append(t);t=null})}$(n).append(e);e=null;s=null})}$(\"tr\",t).unbind();$(t).empty();$(t).append(n);this.addCellProp();this.addRowProp();this.rePosDrag();n=null;e=null;r=null;if(p.onSuccess){p.onSuccess(this)}if(p.hideOnSubmit){$(g.block).remove()}this.hDiv.scrollLeft=this.bDiv.scrollLeft;if(browser.opera){$(t).css(\"visibility\",\"visible\")}},changeSort:function(e){if(this.loading){return true}$(g.nDiv).hide();$(g.nBtn).hide();if(p.sortname==$(e).attr(\"abbr\")){if(p.sortorder==\"asc\"){p.sortorder=\"desc\"}else{p.sortorder=\"asc\"}}$(e).addClass(\"sorted\").siblings().removeClass(\"sorted\");$(\".sdesc\",this.hDiv).removeClass(\"sdesc\");$(\".sasc\",this.hDiv).removeClass(\"sasc\");$(\"div\",e).addClass(\"s\"+p.sortorder);p.sortname=$(e).attr(\"abbr\");if(p.onChangeSort){p.onChangeSort(p.sortname,p.sortorder)}else{this.populate()}},buildpager:function(){$(\".pcontrol input\",this.pDiv).val(p.page);$(\".pcontrol span\",this.pDiv).html(p.pages);var e=(p.page-1)*p.rp+1;var t=e+p.rp-1;if(p.total<t){t=p.total}var n=p.pagestat;n=n.replace(/{from}/,e);n=n.replace(/{to}/,t);n=n.replace(/{total}/,p.total);$(\".pPageStat\",this.pDiv).html(n)},populate:function(){if(this.loading){return true}if(p.onSubmit){var e=p.onSubmit();if(!e){return false}}this.loading=true;if(!p.url){return false}$(\".pPageStat\",this.pDiv).html(p.procmsg);$(\".pReload\",this.pDiv).addClass(\"loading\");$(g.block).css({top:g.bDiv.offsetTop});if(p.hideOnSubmit){$(this.gDiv).prepend(g.block)}if(browser.opera){$(t).css(\"visibility\",\"hidden\")}if(!p.newp){p.newp=1}if(p.page>p.pages){p.page=p.pages}var n=[{name:\"page\",value:p.newp},{name:\"rp\",value:p.rp},{name:\"sortname\",value:p.sortname},{name:\"sortorder\",value:p.sortorder},{name:\"query\",value:p.query},{name:\"qtype\",value:p.qtype}];if(p.params.length){for(var r=0;r<p.params.length;r++){n[n.length]=p.params[r]}}$.ajax({type:p.method,url:p.url,data:n,dataType:p.dataType,success:function(e){g.addData(e)},error:function(e,t,n){try{if(p.onError)p.onError(e,t,n)}catch(r){}}})},doSearch:function(){p.query=$(\"input[name=q]\",g.sDiv).val();p.qtype=$(\"select[name=qtype]\",g.sDiv).val();p.newp=1;this.populate()},changePage:function(e){if(this.loading){return true}switch(e){case\"first\":p.newp=1;break;case\"prev\":if(p.page>1){p.newp=parseInt(p.page,10)-1}break;case\"next\":if(p.page<p.pages){p.newp=parseInt(p.page,10)+1}break;case\"last\":p.newp=p.pages;break;case\"input\":var t=parseInt($(\".pcontrol input\",this.pDiv).val(),10);if(isNaN(t)){t=1}if(t<1){t=1}else if(t>p.pages){t=p.pages}$(\".pcontrol input\",this.pDiv).val(t);p.newp=t;break}if(p.newp==p.page){return false}if(p.onChangePage){p.onChangePage(p.newp)}else{this.populate()}},addCellProp:function(){$(\"tbody tr td\",g.bDiv).each(function(){var e=document.createElement(\"div\");var t=$(\"td\",$(this).parent()).index(this);var n=$(\"th:eq(\"+t+\")\",g.hDiv).get(0);if(n!=null){if(p.sortname==$(n).attr(\"abbr\")&&p.sortname){this.className=\"sorted\"}$(e).css({textAlign:n.align,width:$(\"div:first\",n)[0].style.width});if(n.hidden){$(this).css(\"display\",\"none\")}}if(p.nowrap==false){$(e).css(\"white-space\",\"normal\")}if(this.innerHTML==\"\"){this.innerHTML=\" \"}e.innerHTML=this.innerHTML;var r=$(this).parent()[0];var i=false;if(r.id){i=r.id.substr(3)}if(n!=null){if(n.process)n.process(e,i)}$(this).empty().append(e).removeAttr(\"width\");g.addTitleToCell(e)})},getCellDim:function(e){var t=parseInt($(e).height(),10);var n=parseInt($(e).parent().height(),10);var r=parseInt(e.style.width,10);var i=parseInt($(e).parent().width(),10);var s=e.offsetParent.offsetTop;var o=e.offsetParent.offsetLeft;var u=parseInt($(e).css(\"paddingLeft\"),10);var a=parseInt($(e).css(\"paddingTop\"),10);return{ht:t,wt:r,top:s,left:o,pdl:u,pdt:a,pht:n,pwt:i}},addRowProp:function(){$(\"tbody tr\",g.bDiv).on(\"click\",function(e){var t=e.target||e.srcElement;if(t.href||t.type)return true;if(e.ctrlKey||e.metaKey){return}$(this).toggleClass(\"trSelected\");if(p.singleSelect&&!g.multisel){$(this).siblings().removeClass(\"trSelected\")}}).on(\"mousedown\",function(e){if(e.shiftKey){$(this).toggleClass(\"trSelected\");g.multisel=true;this.focus();$(g.gDiv).noSelect()}if(e.ctrlKey||e.metaKey){$(this).toggleClass(\"trSelected\");g.multisel=true;this.focus()}}).on(\"mouseup\",function(e){if(g.multisel&&!(e.ctrlKey||e.metaKey)){g.multisel=false;$(g.gDiv).noSelect(false)}}).on(\"dblclick\",function(){$(this).addClass(\"trSelected\");if(p.onDoubleClick){p.onDoubleClick(this,g,p)}}).hover(function(e){if(g.multisel&&e.shiftKey){$(this).toggleClass(\"trSelected\")}},function(){});if(browser.msie&&browser.version<7){$(this).hover(function(){$(this).addClass(\"trOver\")},function(){$(this).removeClass(\"trOver\")})}},combo_flag:true,combo_resetIndex:function(e){if(this.combo_flag){e.selectedIndex=0}this.combo_flag=true},combo_doSelectAction:function(selObj){eval(selObj.options[selObj.selectedIndex].value);selObj.selectedIndex=0;this.combo_flag=false},addTitleToCell:function(e){if(p.addTitleToCell){var t=$(\"<span />\").css(\"display\",\"none\"),n=e instanceof jQuery?e:$(e),r=n.outerWidth(),i=0;$(\"body\").children(\":first\").before(t);t.html(n.html());t.css(\"font-size\",\"\"+n.css(\"font-size\"));t.css(\"padding-left\",\"\"+n.css(\"padding-left\"));i=t.innerWidth();t.remove();if(i>r){n.attr(\"title\",n.text())}else{n.removeAttr(\"title\")}}},autoResizeColumn:function(e){if(!p.dblClickResize){return}var t=$(\"div\",this.cDrag).index(e),n=$(\"th:visible div:eq(\"+t+\")\",this.hDiv),r=parseInt(e.style.left,10),i=n.width(),s=0,o=0,u=$(\"<span />\");$(\"body\").children(\":first\").before(u);u.html(n.html());u.css(\"font-size\",\"\"+n.css(\"font-size\"));u.css(\"padding-left\",\"\"+n.css(\"padding-left\"));u.css(\"padding-right\",\"\"+n.css(\"padding-right\"));s=u.width();$(\"tr\",this.bDiv).each(function(){var e=$(\"td:visible div:eq(\"+t+\")\",this),n=0;u.html(e.html());u.css(\"font-size\",\"\"+e.css(\"font-size\"));u.css(\"padding-left\",\"\"+e.css(\"padding-left\"));u.css(\"padding-right\",\"\"+e.css(\"padding-right\"));n=u.width();s=n>s?n:s});u.remove();s=p.minWidth>s?p.minWidth:s;o=r+(s-i);$(\"div:eq(\"+t+\")\",this.cDrag).css(\"left\",o);this.colresize={nw:s,n:t};g.dragEnd()},pager:0};g=p.getGridClass(g);if(p.colModel){thead=document.createElement(\"thead\");var tr=document.createElement(\"tr\");for(var i=0;i<p.colModel.length;i++){var cm=p.colModel[i];var th=document.createElement(\"th\");$(th).attr(\"axis\",\"col\"+i);if(cm){if($.cookies){var cookie_width=\"flexiwidths/\"+cm.name;if($.cookie(cookie_width)!=undefined){cm.width=$.cookie(cookie_width)}}if(cm.display!=undefined){th.innerHTML=cm.display}if(cm.name&&cm.sortable){$(th).attr(\"abbr\",cm.name)}if(cm.align){th.align=cm.align}if(cm.width){$(th).attr(\"width\",cm.width)}if($(cm).attr(\"hide\")){th.hidden=true}if(cm.process){th.process=cm.process}}else{th.innerHTML=\"\";$(th).attr(\"width\",30)}$(tr).append(th)}$(thead).append(tr);$(t).prepend(thead)}g.gDiv=document.createElement(\"div\");g.mDiv=document.createElement(\"div\");g.hDiv=document.createElement(\"div\");g.bDiv=document.createElement(\"div\");g.vDiv=document.createElement(\"div\");g.rDiv=document.createElement(\"div\");g.cDrag=document.createElement(\"div\");g.block=document.createElement(\"div\");g.nDiv=document.createElement(\"div\");g.nBtn=document.createElement(\"div\");g.iDiv=document.createElement(\"div\");g.tDiv=document.createElement(\"div\");g.sDiv=document.createElement(\"div\");g.pDiv=document.createElement(\"div\");if(p.colResize===false){$(g.cDrag).css(\"display\",\"none\")}if(!p.usepager){g.pDiv.style.display=\"none\"}g.hTable=document.createElement(\"table\");g.gDiv.className=\"flexigrid\";if(p.width!=\"auto\"){g.gDiv.style.width=p.width+(isNaN(p.width)?\"\":\"px\")}if(browser.msie){$(g.gDiv).addClass(\"ie\")}if(p.novstripe){$(g.gDiv).addClass(\"novstripe\")}$(t).before(g.gDiv);$(g.gDiv).append(t);if(p.buttons){g.tDiv.className=\"tDiv\";var tDiv2=document.createElement(\"div\");tDiv2.className=\"tDiv2\";for(var i=0;i<p.buttons.length;i++){var btn=p.buttons[i];if(!btn.separator){var btnDiv=document.createElement(\"div\");btnDiv.className=\"fbutton\";btnDiv.innerHTML=\"<div><span>\"+(btn.hidename?\" \":btn.name)+\"</span></div>\";if(btn.bclass)$(\"span\",btnDiv).addClass(btn.bclass).css({paddingLeft:20});if(btn.bimage)$(\"span\",btnDiv).css(\"background\",\"url(\"+btn.bimage+\") no-repeat center left\");$(\"span\",btnDiv).css(\"paddingLeft\",20);if(btn.tooltip)$(\"span\",btnDiv)[0].title=btn.tooltip;btnDiv.onpress=btn.onpress;btnDiv.name=btn.name;if(btn.id){btnDiv.id=btn.id}if(btn.onpress){$(btnDiv).click(function(){this.onpress(this.id||this.name,g.gDiv)})}$(tDiv2).append(btnDiv);if(browser.msie&&browser.version<7){$(btnDiv).hover(function(){$(this).addClass(\"fbOver\")},function(){$(this).removeClass(\"fbOver\")})}}else{$(tDiv2).append(\"<div class='btnseparator'></div>\")}}$(g.tDiv).append(tDiv2);$(g.tDiv).append(\"<div style='clear:both'></div>\");$(g.gDiv).prepend(g.tDiv)}g.hDiv.className=\"hDiv\";if(p.combobuttons&&$(g.tDiv2)){var btnDiv=document.createElement(\"div\");btnDiv.className=\"fbutton\";var tSelect=document.createElement(\"select\");$(tSelect).change(function(){g.combo_doSelectAction(tSelect)});$(tSelect).click(function(){g.combo_resetIndex(tSelect)});tSelect.className=\"cselect\";$(btnDiv).append(tSelect);for(i=0;i<p.combobuttons.length;i++){var btn=p.combobuttons[i];if(!btn.separator){var btnOpt=document.createElement(\"option\");btnOpt.innerHTML=btn.name;if(btn.bclass)$(btnOpt).addClass(btn.bclass).css({paddingLeft:20});if(btn.bimage)$(btnOpt).css(\"background\",\"url(\"+btn.bimage+\") no-repeat center left\");$(btnOpt).css(\"paddingLeft\",20);if(btn.tooltip)$(btnOpt)[0].title=btn.tooltip;if(btn.onpress){btnOpt.value=btn.onpress}$(tSelect).append(btnOpt)}}$(\".tDiv2\").append(btnDiv)}$(t).before(g.hDiv);g.hTable.cellPadding=0;g.hTable.cellSpacing=0;$(g.hDiv).append('<div class=\"hDivBox\"></div>');$(\"div\",g.hDiv).append(g.hTable);var thead=$(\"thead:first\",t).get(0);if(thead)$(g.hTable).append(thead);thead=null;if(!p.colmodel)var ci=0;$(\"thead tr:first th\",g.hDiv).each(function(){var e=document.createElement(\"div\");if($(this).attr(\"abbr\")){$(this).click(function(e){if(!$(this).hasClass(\"thOver\"))return false;var t=e.target||e.srcElement;if(t.href||t.type)return true;g.changeSort(this)});if($(this).attr(\"abbr\")==p.sortname){this.className=\"sorted\";e.className=\"s\"+p.sortorder}}if(this.hidden){$(this).hide()}if(!p.colmodel){$(this).attr(\"axis\",\"col\"+ci++)}if(this.width==\"\"){this.width=100}$(e).css({textAlign:this.align,width:this.width+\"px\"});e.innerHTML=this.innerHTML;$(this).empty().append(e).removeAttr(\"width\").mousedown(function(e){g.dragStart(\"colMove\",e,this)}).hover(function(){if(!g.colresize&&!$(this).hasClass(\"thMove\")&&!g.colCopy){$(this).addClass(\"thOver\")}if($(this).attr(\"abbr\")!=p.sortname&&!g.colCopy&&!g.colresize&&$(this).attr(\"abbr\")){$(\"div\",this).addClass(\"s\"+p.sortorder)}else if($(this).attr(\"abbr\")==p.sortname&&!g.colCopy&&!g.colresize&&$(this).attr(\"abbr\")){var e=p.sortorder==\"asc\"?\"desc\":\"asc\";$(\"div\",this).removeClass(\"s\"+p.sortorder).addClass(\"s\"+e)}if(g.colCopy){var t=$(\"th\",g.hDiv).index(this);if(t==g.dcoln){return false}if(t<g.dcoln){$(this).append(g.cdropleft)}else{$(this).append(g.cdropright)}g.dcolt=t}else if(!g.colresize){var n=$(\"th:visible\",g.hDiv).index(this);var r=parseInt($(\"div:eq(\"+n+\")\",g.cDrag).css(\"left\"),10);var i=jQuery(g.nBtn).outerWidth();var s=r-i+Math.floor(p.cgwidth/2);$(g.nDiv).hide();$(g.nBtn).hide();$(g.nBtn).css({left:s,top:g.hDiv.offsetTop}).show();var o=parseInt($(g.nDiv).width(),10);$(g.nDiv).css({top:g.bDiv.offsetTop});if(s+o>$(g.gDiv).width()){$(g.nDiv).css(\"left\",r-o+1)}else{$(g.nDiv).css(\"left\",s)}if($(this).hasClass(\"sorted\")){$(g.nBtn).addClass(\"srtd\")}else{$(g.nBtn).removeClass(\"srtd\")}}},function(){$(this).removeClass(\"thOver\");if($(this).attr(\"abbr\")!=p.sortname){$(\"div\",this).removeClass(\"s\"+p.sortorder)}else if($(this).attr(\"abbr\")==p.sortname){var e=p.sortorder==\"asc\"?\"desc\":\"asc\";$(\"div\",this).addClass(\"s\"+p.sortorder).removeClass(\"s\"+e)}if(g.colCopy){$(g.cdropleft).remove();$(g.cdropright).remove();g.dcolt=null}})});g.bDiv.className=\"bDiv\";$(t).before(g.bDiv);$(g.bDiv).css({height:p.height==\"auto\"?\"auto\":p.height+\"px\"}).scroll(function(e){g.scroll()}).append(t);if(p.height==\"auto\"){$(\"table\",g.bDiv).addClass(\"autoht\")}g.addCellProp();g.addRowProp();if(p.colResize===true){var cdcol=$(\"thead tr:first th:first\",g.hDiv).get(0);if(cdcol!==null){g.cDrag.className=\"cDrag\";g.cdpad=0;g.cdpad+=isNaN(parseInt($(\"div\",cdcol).css(\"borderLeftWidth\"),10))?0:parseInt($(\"div\",cdcol).css(\"borderLeftWidth\"),10);g.cdpad+=isNaN(parseInt($(\"div\",cdcol).css(\"borderRightWidth\"),10))?0:parseInt($(\"div\",cdcol).css(\"borderRightWidth\"),10);g.cdpad+=isNaN(parseInt($(\"div\",cdcol).css(\"paddingLeft\"),10))?0:parseInt($(\"div\",cdcol).css(\"paddingLeft\"),10);g.cdpad+=isNaN(parseInt($(\"div\",cdcol).css(\"paddingRight\"),10))?0:parseInt($(\"div\",cdcol).css(\"paddingRight\"),10);g.cdpad+=isNaN(parseInt($(cdcol).css(\"borderLeftWidth\"),10))?0:parseInt($(cdcol).css(\"borderLeftWidth\"),10);g.cdpad+=isNaN(parseInt($(cdcol).css(\"borderRightWidth\"),10))?0:parseInt($(cdcol).css(\"borderRightWidth\"),10);g.cdpad+=isNaN(parseInt($(cdcol).css(\"paddingLeft\"),10))?0:parseInt($(cdcol).css(\"paddingLeft\"),10);g.cdpad+=isNaN(parseInt($(cdcol).css(\"paddingRight\"),10))?0:parseInt($(cdcol).css(\"paddingRight\"),10);$(g.bDiv).before(g.cDrag);var cdheight=$(g.bDiv).height();var hdheight=$(g.hDiv).height();$(g.cDrag).css({top:-hdheight+\"px\"});$(\"thead tr:first th\",g.hDiv).each(function(){var e=document.createElement(\"div\");$(g.cDrag).append(e);if(!p.cgwidth){p.cgwidth=$(e).width()}$(e).css({height:cdheight+hdheight}).mousedown(function(e){g.dragStart(\"colresize\",e,this)}).dblclick(function(e){g.autoResizeColumn(this)});if(browser.msie&&browser.version<7){g.fixHeight($(g.gDiv).height());$(e).hover(function(){g.fixHeight();$(this).addClass(\"dragging\")},function(){if(!g.colresize){$(this).removeClass(\"dragging\")}})}})}}if(p.striped){$(\"tbody tr:odd\",g.bDiv).addClass(\"erow\")}if(p.resizable&&p.height!=\"auto\"){g.vDiv.className=\"vGrip\";$(g.vDiv).mousedown(function(e){g.dragStart(\"vresize\",e)}).html(\"<span></span>\");$(g.bDiv).after(g.vDiv)}if(p.resizable&&p.width!=\"auto\"&&!p.nohresize){g.rDiv.className=\"hGrip\";$(g.rDiv).mousedown(function(e){g.dragStart(\"vresize\",e,true)}).html(\"<span></span>\").css(\"height\",$(g.gDiv).height());if(browser.msie&&browser.version<7){$(g.rDiv).hover(function(){$(this).addClass(\"hgOver\")},function(){$(this).removeClass(\"hgOver\")})}$(g.gDiv).append(g.rDiv)}if(p.usepager){g.pDiv.className=\"pDiv\";g.pDiv.innerHTML='<div class=\"pDiv2\"></div>';$(g.bDiv).after(g.pDiv);var html=' <div class=\"pGroup\"> <div class=\"pFirst pButton\"><span></span></div><div class=\"pPrev pButton\"><span></span></div> </div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"><span class=\"pcontrol\">'+p.pagetext+' <input type=\"text\" size=\"4\" value=\"1\" /> '+p.outof+' <span> 1 </span></span></div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"> <div class=\"pNext pButton\"><span></span></div><div class=\"pLast pButton\"><span></span></div> </div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"> <div class=\"pReload pButton\"><span></span></div> </div> <div class=\"btnseparator\"></div> <div class=\"pGroup\"><span class=\"pPageStat\"></span></div>';$(\"div\",g.pDiv).html(html);$(\".pReload\",g.pDiv).click(function(){g.populate()});$(\".pFirst\",g.pDiv).click(function(){g.changePage(\"first\")});$(\".pPrev\",g.pDiv).click(function(){g.changePage(\"prev\")});$(\".pNext\",g.pDiv).click(function(){g.changePage(\"next\")});$(\".pLast\",g.pDiv).click(function(){g.changePage(\"last\")});$(\".pcontrol input\",g.pDiv).keydown(function(e){if(e.keyCode==13){g.changePage(\"input\")}});if(browser.msie&&browser.version<7)$(\".pButton\",g.pDiv).hover(function(){$(this).addClass(\"pBtnOver\")},function(){$(this).removeClass(\"pBtnOver\")});if(p.useRp){var opt=\"\",sel=\"\";for(var nx=0;nx<p.rpOptions.length;nx++){if(p.rp==p.rpOptions[nx])sel='selected=\"selected\"';else sel=\"\";opt+=\"<option value='\"+p.rpOptions[nx]+\"' \"+sel+\" >\"+p.rpOptions[nx]+\"  </option>\"}$(\".pDiv2\",g.pDiv).prepend(\"<div class='pGroup'><select name='rp'>\"+opt+\"</select></div> <div class='btnseparator'></div>\");$(\"select\",g.pDiv).change(function(){if(p.onRpChange){p.onRpChange(+this.value)}else{p.newp=1;p.rp=+this.value;g.populate()}})}if(p.searchitems){$(\".pDiv2\",g.pDiv).prepend(\"<div class='pGroup'> <div class='pSearch pButton'><span></span></div> </div>  <div class='btnseparator'></div>\");$(\".pSearch\",g.pDiv).click(function(){$(g.sDiv).slideToggle(\"fast\",function(){$(\".sDiv:visible input:first\",g.gDiv).trigger(\"focus\")})});g.sDiv.className=\"sDiv\";var sitems=p.searchitems;var sopt=\"\",sel=\"\";for(var s=0;s<sitems.length;s++){if(p.qtype===\"\"&&sitems[s].isdefault===true){p.qtype=sitems[s].name;sel='selected=\"selected\"'}else{sel=\"\"}sopt+=\"<option value='\"+sitems[s].name+\"' \"+sel+\" >\"+sitems[s].display+\"  </option>\"}if(p.qtype===\"\"){p.qtype=sitems[0].name}$(g.sDiv).append(\"<div class='sDiv2'>\"+p.findtext+\" <input type='text' value='\"+p.query+\"' size='30' name='q' class='qsbox' /> \"+\" <select name='qtype'>\"+sopt+\"</select></div>\");$(\"input[name=q]\",g.sDiv).keydown(function(e){if(e.keyCode==13){g.doSearch()}});$(\"select[name=qtype]\",g.sDiv).keydown(function(e){if(e.keyCode==13){g.doSearch()}});$(\"input[value=Clear]\",g.sDiv).click(function(){$(\"input[name=q]\",g.sDiv).val(\"\");p.query=\"\";g.doSearch()});$(g.bDiv).after(g.sDiv)}}$(g.pDiv,g.sDiv).append(\"<div style='clear:both'></div>\");if(p.title){g.mDiv.className=\"mDiv\";g.mDiv.innerHTML='<div class=\"ftitle\">'+p.title+\"</div>\";$(g.gDiv).prepend(g.mDiv);if(p.showTableToggleBtn){$(g.mDiv).append('<div class=\"ptogtitle\" title=\"Minimize/Maximize Table\"><span></span></div>');$(\"div.ptogtitle\",g.mDiv).click(function(){$(g.gDiv).toggleClass(\"hideBody\");$(this).toggleClass(\"vsble\")})}}g.cdropleft=document.createElement(\"span\");g.cdropleft.className=\"cdropleft\";g.cdropright=document.createElement(\"span\");g.cdropright.className=\"cdropright\";g.block.className=\"gBlock\";var gh=$(g.bDiv).height();var gtop=g.bDiv.offsetTop;$(g.block).css({width:g.bDiv.style.width,height:gh,background:\"white\",position:\"relative\",marginBottom:gh*-1,zIndex:1,top:gtop,left:\"0px\"});$(g.block).fadeTo(0,p.blockOpacity);if($(\"th\",g.hDiv).length){g.nDiv.className=\"nDiv\";g.nDiv.innerHTML=\"<table cellpadding='0' cellspacing='0'><tbody></tbody></table>\";$(g.nDiv).css({marginBottom:gh*-1,display:\"none\",top:gtop}).noSelect();var cn=0;$(\"th div\",g.hDiv).each(function(){var e=$(\"th[axis='col\"+cn+\"']\",g.hDiv)[0];var t='checked=\"checked\"';if(e.style.display==\"none\"){t=\"\"}$(\"tbody\",g.nDiv).append('<tr><td class=\"ndcol1\"><input type=\"checkbox\" '+t+' class=\"togCol\" value=\"'+cn+'\" /></td><td class=\"ndcol2\">'+this.innerHTML+\"</td></tr>\");cn++});if(browser.msie&&browser.version<7)$(\"tr\",g.nDiv).hover(function(){$(this).addClass(\"ndcolover\")},function(){$(this).removeClass(\"ndcolover\")});$(\"td.ndcol2\",g.nDiv).click(function(){if($(\"input:checked\",g.nDiv).length<=p.minColToggle&&$(this).prev().find(\"input\")[0].checked)return false;return g.toggleCol($(this).prev().find(\"input\").val())});$(\"input.togCol\",g.nDiv).click(function(){if($(\"input:checked\",g.nDiv).length<p.minColToggle&&this.checked===false)return false;$(this).parent().next().trigger(\"click\")});$(g.gDiv).prepend(g.nDiv);$(g.nBtn).addClass(\"nBtn\").html(\"<div></div>\").attr(\"title\",\"Hide/Show Columns\").click(function(){$(g.nDiv).toggle();return true});if(p.showToggleBtn){$(g.gDiv).prepend(g.nBtn)}}$(g.iDiv).addClass(\"iDiv\").css({display:\"none\"});$(g.bDiv).append(g.iDiv);$(g.bDiv).hover(function(){$(g.nDiv).hide();$(g.nBtn).hide()},function(){if(g.multisel){g.multisel=false}});$(g.gDiv).hover(function(){},function(){$(g.nDiv).hide();$(g.nBtn).hide()});$(document).mousemove(function(e){g.dragMove(e)}).mouseup(function(e){g.dragEnd()}).hover(function(){},function(){g.dragEnd()});if(browser.msie&&browser.version<7){$(\".hDiv,.bDiv,.mDiv,.pDiv,.vGrip,.tDiv, .sDiv\",g.gDiv).css({width:\"100%\"});$(g.gDiv).addClass(\"ie6\");if(p.width!=\"auto\"){$(g.gDiv).addClass(\"ie6fullwidthbug\")}}g.rePosDrag();g.fixHeight();t.p=p;t.grid=g;if(p.url&&p.autoload){g.populate()}return t};var docloaded=false;$(document).ready(function(){docloaded=true});$.fn.flexigrid=function(e){return this.each(function(){if(!docloaded){$(this).hide();var t=this;$(document).ready(function(){$.addFlex(t,e)})}else{$.addFlex(this,e)}})};$.fn.flexReload=function(e){return this.each(function(){if(this.grid&&this.p.url)this.grid.populate()})};$.fn.flexOptions=function(e){return this.each(function(){if(this.grid)$.extend(this.p,e)})};$.fn.flexToggleCol=function(e,t){return this.each(function(){if(this.grid)this.grid.toggleCol(e,t)})};$.fn.flexAddData=function(e){return this.each(function(){if(this.grid)this.grid.addData(e)})};$.fn.noSelect=function(e){var t=e===null?true:e;if(t){return this.each(function(){if(browser.msie||browser.safari)$(this).bind(\"selectstart\",function(){return false});else if(browser.mozilla){$(this).css(\"MozUserSelect\",\"none\");$(\"body\").trigger(\"focus\")}else if(browser.opera)$(this).bind(\"mousedown\",function(){return false});else $(this).attr(\"unselectable\",\"on\")})}else{return this.each(function(){if(browser.msie||browser.safari)$(this).unbind(\"selectstart\");else if(browser.mozilla)$(this).css(\"MozUserSelect\",\"inherit\");else if(browser.opera)$(this).unbind(\"mousedown\");else $(this).removeAttr(\"unselectable\",\"on\")})}};$.fn.flexSearch=function(e){return this.each(function(){if(this.grid&&this.p.searchitems)this.grid.doSearch()})};$.fn.selectedRows=function(e){var t=[];var n=[];var r=$(this.selector+\" .trSelected\");$(r).each(function(e,r){n=[];var i=$(r).data(\"id\");$.each(r.cells,function(e,t){var r=t.abbr;var s=t.firstChild.innerHTML;if(s==\" \")s=\"\";var o=t.cellIndex;n.push({Column:r,Value:s,CellIndex:o,RowIdentifier:i})});t.push(n)});return t}})(jQuery)\n"
  }
]