/* 
 * jquery.event.drag - v 2.2
 * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com
 * Open Source MIT License - http://threedubmedia.com/code/license
 */
(function(a){a.fn.drag=function(j,g,i){var k=typeof j=="string"?j:"",h=a.isFunction(j)?j:a.isFunction(g)?g:null;if(k.indexOf("drag")!==0){k="drag"+k}i=(j==h?g:i)||{};return h?this.bind(k,i,h):this.trigger(k)};var c=a.event,d=c.special,e=d.drag={defaults:{which:1,distance:0,not:":input",handle:null,relative:false,drop:true,click:false},datakey:"dragdata",noBubble:true,add:function(h){var g=a.data(this,e.datakey),i=h.data||{};g.related+=1;a.each(e.defaults,function(k,j){if(i[k]!==undefined){g[k]=i[k]}})},remove:function(){a.data(this,e.datakey).related-=1},setup:function(){if(a.data(this,e.datakey)){return}var g=a.extend({related:0},e.defaults);a.data(this,e.datakey,g);c.add(this,"touchstart mousedown",e.init,g);if(this.attachEvent){this.attachEvent("ondragstart",e.dontstart)}},teardown:function(){var g=a.data(this,e.datakey)||{};if(g.related){return}a.removeData(this,e.datakey);c.remove(this,"touchstart mousedown",e.init);e.textselect(true);if(this.detachEvent){this.detachEvent("ondragstart",e.dontstart)}},init:function(h){if(e.touched){return}var g=h.data,i;if(h.which!=0&&g.which>0&&h.which!=g.which){return}if(a(h.target).is(g.not)){return}if(g.handle&&!a(h.target).closest(g.handle,h.currentTarget).length){return}e.touched=h.type=="touchstart"?this:null;g.propagates=1;g.mousedown=this;g.interactions=[e.interaction(this,g)];g.target=h.target;g.pageX=h.pageX;g.pageY=h.pageY;g.dragging=null;i=e.hijack(h,"draginit",g);if(!g.propagates){return}i=e.flatten(i);if(i&&i.length){g.interactions=[];a.each(i,function(){g.interactions.push(e.interaction(this,g))})}g.propagates=g.interactions.length;if(g.drop!==false&&d.drop){d.drop.handler(h,g)}e.textselect(false);if(e.touched){c.add(e.touched,"touchmove touchend",e.handler,g)}else{c.add(document,"mousemove mouseup",e.handler,g)}if(!e.touched||g.live){return false}},interaction:function(h,g){var i=a(h)[g.relative?"position":"offset"]()||{top:0,left:0};return{drag:h,callback:new e.callback(),droppable:[],offset:i}},handler:function(h){var g=h.data;switch(h.type){case !g.dragging&&"touchmove":h.preventDefault();case !g.dragging&&"mousemove":if(Math.pow(h.pageX-g.pageX,2)+Math.pow(h.pageY-g.pageY,2)<Math.pow(g.distance,2)){break}h.target=g.target;e.hijack(h,"dragstart",g);if(g.propagates){g.dragging=true}case"touchmove":h.preventDefault();case"mousemove":if(g.dragging){e.hijack(h,"drag",g);if(g.propagates){if(g.drop!==false&&d.drop){d.drop.handler(h,g)}break}h.type="mouseup"}case"touchend":case"mouseup":default:if(e.touched){c.remove(e.touched,"touchmove touchend",e.handler)}else{c.remove(document,"mousemove mouseup",e.handler)}if(g.dragging){if(g.drop!==false&&d.drop){d.drop.handler(h,g)}e.hijack(h,"dragend",g)}e.textselect(true);if(g.click===false&&g.dragging){a.data(g.mousedown,"suppress.click",new Date().getTime()+5)}g.dragging=e.touched=false;break}},hijack:function(l,s,j,t,k){if(!j){return}var q={event:l.originalEvent,type:l.type},p=s.indexOf("drop")?"drag":"drop",r,m=t||0,n,g,h,o=!isNaN(t)?t:j.interactions.length;l.type=s;l.originalEvent=null;j.results=[];do{if(n=j.interactions[m]){if(s!=="dragend"&&n.cancelled){continue}h=e.properties(l,j,n);n.results=[];a(k||n[p]||j.droppable).each(function(i,u){h.target=u;l.isPropagationStopped=function(){return false};r=u?c.dispatch.call(u,l,h):null;if(r===false){if(p=="drag"){n.cancelled=true;j.propagates-=1}if(s=="drop"){n[p][i]=null}}else{if(s=="dropinit"){n.droppable.push(e.element(r)||u)}}if(s=="dragstart"){n.proxy=a(e.element(r)||n.drag)[0]}n.results.push(r);delete l.result;if(s!=="dropinit"){return r}});j.results[m]=e.flatten(n.results);if(s=="dropinit"){n.droppable=e.flatten(n.droppable)}if(s=="dragstart"&&!n.cancelled){h.update()}}}while(++m<o);l.type=q.type;l.originalEvent=q.event;return e.flatten(j.results)},properties:function(h,g,i){var j=i.callback;j.drag=i.drag;j.proxy=i.proxy||i.drag;j.startX=g.pageX;j.startY=g.pageY;j.deltaX=h.pageX-g.pageX;j.deltaY=h.pageY-g.pageY;j.originalX=i.offset.left;j.originalY=i.offset.top;j.offsetX=j.originalX+j.deltaX;j.offsetY=j.originalY+j.deltaY;j.drop=e.flatten((i.drop||[]).slice());j.available=e.flatten((i.droppable||[]).slice());return j},element:function(g){if(g&&(g.jquery||g.nodeType==1)){return g}},flatten:function(g){return a.map(g,function(h){return h&&h.jquery?a.makeArray(h):h&&h.length?e.flatten(h):h})},textselect:function(g){a(document)[g?"unbind":"bind"]("selectstart",e.dontstart).css("MozUserSelect",g?"":"none");document.unselectable=g?"off":"on"},dontstart:function(){return false},callback:function(){}};e.callback.prototype={update:function(){if(d.drop&&this.available.length){a.each(this.available,function(g){d.drop.locate(this,g)})}}};var b=c.dispatch;c.dispatch=function(g){if(a.data(this,"suppress."+g.type)-new Date().getTime()>0){a.removeData(this,"suppress."+g.type);return}return b.apply(this,arguments)};var f=c.fixHooks.touchstart=c.fixHooks.touchmove=c.fixHooks.touchend=c.fixHooks.touchcancel={props:"clientX clientY pageX pageY screenX screenY".split(" "),filter:function(g,h){if(h){var i=(h.touches&&h.touches[0])||(h.changedTouches&&h.changedTouches[0])||null;if(i){a.each(f.props,function(j,k){g[k]=i[k]})}}return g}};d.draginit=d.dragstart=d.dragend=e})(jQuery);(function(a){a.extend(true,window,{Slick:{RadiobuttonSelectColumn:b}});function b(o){var d,h=this,e=new Slick.EventHandler(),g={},q,c={cid:null,columnId:"_radio_selector",cssClass:null,toolTip:"Select/Deselect All",width:30},f=a.extend(true,{},c,o);function n(s){d=s;a("div",o.$grid).unbind("keydown");a('div[tabindex="0"]',o.$grid).attr("tabindex","-1");e.subscribe(d.onSelectedRowsChanged,m).subscribe(d.onClick,l);delete window["selectedCeeb_"+f.cid]}function i(){e.unsubscribeAll()}function m(t,s){var x=d.getSelectedRows();var v={},w,u;for(u=0;u<x.length;u++){w=x[u];v[w]=true;if(v[w]!==g[w]){d.invalidateRow(w);delete g[w]}}for(u in g){d.invalidateRow(u)}g=v;d.render()}function l(u,t){var s=a(u.target).closest(".slick-row");s.find(":radio").attr("checked","checked").focus();r(s);window["selectedCeeb_"+f.cid]=d.getData().getItem(t.row)}function k(){return window["selectedCeeb_"+f.cid]}function r(s){a(".selRow").removeClass("selRow");s.addClass("selRow")}function j(){return{id:f.columnId,name:"",toolTip:f.toolTip,field:"sel",width:f.width,resizable:false,sortable:false,cssClass:f.cssClass,formatter:p}}function p(v,s,w,t,u){if(u){return"<span class='sg-sgc'>"+(g[v]?"<input accesskey='c' type='radio' data-id='"+f.cid+"' title='"+u.N.replace("'","&#39;")+"' name='cbOpt_"+f.cid+"' checked='checked'>":"<input accesskey='c' type='radio' data-id='"+f.cid+"' title='"+u.N.replace("'","&#39;")+"' name='cbOpt_"+f.cid+"'>")+"</span>"}return null}a.extend(this,{init:n,destroy:i,getColumnDefinition:j,getSelectedRowData:k})}})(jQuery);(function(a){a.extend(true,window,{Slick:{RowCellSelectionModel:b}});function b(t){var e;var c;var i=[];var j=this;var f=new Slick.EventHandler();var g;var h;var d={selectActiveCell:true,selectActiveRow:true};function s(A){h=a.extend(true,{},d,t);e=A;c=e.getCanvasNode();e.onActiveCellChanged.subscribe(o);f.subscribe(e.onActiveCellChanged,z(o));f.subscribe(e.onClick,z(r))}function k(){e.onActiveCellChanged.unsubscribe(o);f.unsubscribeAll()}function z(A){return function(){if(!g){g=true;A.apply(this,arguments);g=false}}}function u(C){var D=[];for(var A=0;A<C.length;A++){for(var B=C[A].fromRow;B<=C[A].toRow;B++){D.push(B)}}return D}function w(D){var C=[];var B=e.getColumns().length-1;for(var A=0;A<D.length;A++){C.push(new Slick.Range(D[A],0,D[A],B))}return C}function l(A,D){var B,C=[];for(B=A;B<=D;B++){C.push(B)}for(B=D;B<A;B++){C.push(B)}return C}function n(){return u(i)}function y(A){x(w(A))}function r(B){var A=e.getCellFromEvent(B);if(!A||!e.canCellBeActive(A.row,A.cell)){return false}var D=u(i);var C=a.inArray(A.row,D);return false}function v(C){var D=[];for(var A=0;A<C.length;A++){var B=C[A];if(e.canCellBeSelected(B.fromRow,B.fromCell)&&e.canCellBeSelected(B.toRow,B.toCell)){D.push(B)}}return D}function x(A){i=v(A);j.onSelectedRangesChanged.notify(i)}function m(){return i}function p(B,A){if(e.getEditorLock().isActive()){B.stopPropagation();return false}}function q(B,A){x([A.range])}function o(B,A){if(h.selectActiveRow&&data.row!=null){x([new Slick.Range(data.row,0,data.row,e.getColumns().length-1)])}}a.extend(this,{getSelectedRows:n,setSelectedRows:y,getSelectedRanges:m,setSelectedRanges:x,init:s,destroy:k,onSelectedRangesChanged:new Slick.Event()})}})(jQuery);(function(a){a.extend(true,window,{Slick:{Event:c,EventData:d,EventHandler:e,Range:i,NonDataRow:h,Group:f,GroupTotals:g,EditorLock:b,GlobalEditorLock:new b()}});function d(){var k=false;var j=false;this.stopPropagation=function(){k=true};this.isPropagationStopped=function(){return k};this.stopImmediatePropagation=function(){j=true};this.isImmediatePropagationStopped=function(){return j}}function c(){var j=[];this.subscribe=function(k){j.push(k)};this.unsubscribe=function(k){for(var l=j.length-1;l>=0;l--){if(j[l]===k){j.splice(l,1)}}};this.notify=function(k,l,o){l=l||new d();o=o||this;var n;for(var m=0;m<j.length&&!(l.isPropagationStopped()||l.isImmediatePropagationStopped());m++){n=j[m].call(o,l,k)}return n}}function e(){var j=[];this.subscribe=function(k,l){j.push({event:k,handler:l});k.subscribe(l);return this};this.unsubscribe=function(k,l){var m=j.length;while(m--){if(j[m].event===k&&j[m].handler===l){j.splice(m,1);k.unsubscribe(l);return}}return this};this.unsubscribeAll=function(){var k=j.length;while(k--){j[k].event.unsubscribe(j[k].handler)}j=[];return this}}function i(k,j,m,l){if(m===undefined&&l===undefined){m=k;l=j}this.fromRow=Math.min(k,m);this.fromCell=Math.min(j,l);this.toRow=Math.max(k,m);this.toCell=Math.max(j,l);this.isSingleRow=function(){return this.fromRow==this.toRow};this.isSingleCell=function(){return this.fromRow==this.toRow&&this.fromCell==this.toCell};this.contains=function(o,n){return o>=this.fromRow&&o<=this.toRow&&n>=this.fromCell&&n<=this.toCell};this.toString=function(){if(this.isSingleCell()){return"("+this.fromRow+":"+this.fromCell+")"}else{return"("+this.fromRow+":"+this.fromCell+" - "+this.toRow+":"+this.toCell+")"}}}function h(){this.__nonDataRow=true}function f(){this.__group=true;this.level=0;this.count=0;this.value=null;this.title=null;this.collapsed=false;this.totals=null;this.rows=[];this.groups=null;this.groupingKey=null}f.prototype=new h();f.prototype.equals=function(j){return this.value===j.value&&this.count===j.count&&this.collapsed===j.collapsed&&this.title===j.title};function g(){this.__groupTotals=true;this.group=null;this.initialized=false}g.prototype=new h();function b(){var j=null;this.isActive=function(l){return(l?j===l:j!==null)};this.activate=function(l){if(l===j){return}if(j!==null){throw"SlickGrid.EditorLock.activate: an editController is still active, can't activate another editController"}if(!l.commitCurrentEdit){throw"SlickGrid.EditorLock.activate: editController must implement .commitCurrentEdit()"}if(!l.cancelCurrentEdit){throw"SlickGrid.EditorLock.activate: editController must implement .cancelCurrentEdit()"}j=l};this.deactivate=function(l){if(j!==l){throw"SlickGrid.EditorLock.deactivate: specified editController is not the currently active one"}j=null};this.commitCurrentEdit=function(){return(j?j.commitCurrentEdit():true)};this.cancelCurrentEdit=function k(){return(j?j.cancelCurrentEdit():true)}}})(jQuery);if(typeof jQuery==="undefined"){throw"SlickGrid requires jquery module to be loaded"}if(!jQuery.fn.drag){throw"SlickGrid requires jquery.event.drag module to be loaded"}if(typeof Slick==="undefined"){throw"slick.core.js not loaded"}(function($){$.extend(true,window,{Slick:{Grid:SlickGrid}});var scrollbarDimensions;var maxSupportedCssHeight;function SlickGrid(container,data,columns,options){var defaults={explicitInitialization:false,rowHeight:25,defaultColumnWidth:80,enableAddRow:false,leaveSpaceForNewRows:false,editable:false,autoEdit:true,enableCellNavigation:true,enableColumnReorder:true,asyncEditorLoading:false,asyncEditorLoadDelay:100,forceFitColumns:false,enableAsyncPostRender:false,asyncPostRenderDelay:50,autoHeight:false,editorLock:Slick.GlobalEditorLock,showHeaderRow:false,headerRowHeight:25,showTopPanel:false,topPanelHeight:25,formatterFactory:null,editorFactory:null,cellFlashingCssClass:"flashing",selectedCellCssClass:"selected",multiSelect:true,enableTextSelectionOnCells:false,dataItemColumnValueExtractor:null,fullWidthRows:false,multiColumnSort:false,defaultFormatter:defaultFormatter,forceSyncScrolling:false,addNewRowCssClass:"new-row"};var columnDefaults={name:"",resizable:true,sortable:false,minWidth:30,rerenderOnResize:false,headerCssClass:null,defaultSortAsc:true,focusable:true,selectable:true};var th;var h;var ph;var n;var cj;var page=0;var offset=0;var vScrollDir=1;var initialized=false;var $container;var uid="slickgrid_"+Math.round(1000000*Math.random());var self=this;var $focusSink,$focusSink2;var $headerScroller;var $headers;var $headerRow,$headerRowScroller,$headerRowSpacer;var $topPanelScroller;var $topPanel;var $viewport;var $canvas;var $style;var $boundAncestors;var stylesheet,columnCssRulesL,columnCssRulesR;var viewportH,viewportW;var canvasWidth;var viewportHasHScroll,viewportHasVScroll;var headerColumnWidthDiff=0,headerColumnHeightDiff=0,cellWidthDiff=0,cellHeightDiff=0;var absoluteColumnMinWidth;var tabbingDirection=1;var activePosX;var activeRow,activeCell;var activeCellNode=null;var currentEditor=null;var serializedEditorValue;var editController;var rowsCache={};var renderedRows=0;var numVisibleRows;var prevScrollTop=0;var scrollTop=0;var lastRenderedScrollTop=0;var lastRenderedScrollLeft=0;var prevScrollLeft=0;var scrollLeft=0;var selectionModel;var selectedRows=[];var plugins=[];var cellCssClasses={};var columnsById={};var sortColumns=[];var columnPosLeft=[];var columnPosRight=[];var h_editorLoader=null;var h_render=null;var h_postrender=null;var postProcessedRows={};var postProcessToRow=null;var postProcessFromRow=null;var counter_rows_rendered=0;var counter_rows_removed=0;var rowNodeFromLastMouseWheelEvent;var zombieRowNodeFromLastMouseWheelEvent;function init(){$container=$(container);if($container.length<1){throw new Error("SlickGrid requires a valid container, "+container+" does not exist in the DOM.")}maxSupportedCssHeight=maxSupportedCssHeight||getMaxSupportedCssHeight();scrollbarDimensions=scrollbarDimensions||measureScrollbar();options=$.extend({},defaults,options);validateAndEnforceOptions();columnDefaults.width=options.defaultColumnWidth;columnsById={};for(var i=0;i<columns.length;i++){var m=columns[i]=$.extend({},columnDefaults,columns[i]);columnsById[m.id]=i;if(m.minWidth&&m.width<m.minWidth){m.width=m.minWidth}if(m.maxWidth&&m.width>m.maxWidth){m.width=m.maxWidth}}if(options.enableColumnReorder&&!$.fn.sortable){throw new Error("SlickGrid's 'enableColumnReorder = true' option requires jquery-ui.sortable module to be loaded")}editController={commitCurrentEdit:commitCurrentEdit,cancelCurrentEdit:cancelCurrentEdit};$container.empty().css("overflow","hidden").css("outline",0).addClass(uid).addClass("ui-widget");if(!/relative|absolute|fixed/.test($container.css("position"))){$container.css("position","relative")}$focusSink=$("<div tabIndex='0' hideFocus style='position:fixed;width:0;height:0;top:0;left:0;outline:0;'></div>").appendTo($container);$headerScroller=$("<div class='slick-header ui-state-default' style='overflow:hidden;position:relative;' />").appendTo($container);$headers=$("<div class='slick-header-columns' style='left:-1000px' />").appendTo($headerScroller);$headers.width(getHeadersWidth());$headerRowScroller=$("<div class='slick-headerrow ui-state-default' style='overflow:hidden;position:relative;' />").appendTo($container);$headerRow=$("<div class='slick-headerrow-columns' />").appendTo($headerRowScroller);$headerRowSpacer=$("<div style='display:block;height:1px;position:absolute;top:0;left:0;'></div>").css("width",getCanvasWidth()+scrollbarDimensions.width+"px").appendTo($headerRowScroller);$topPanelScroller=$("<div class='slick-top-panel-scroller ui-state-default' style='overflow:hidden;position:relative;' />").appendTo($container);$topPanel=$("<div class='slick-top-panel' style='width:10000px' />").appendTo($topPanelScroller);if(!options.showTopPanel){$topPanelScroller.hide()}if(!options.showHeaderRow){$headerRowScroller.hide()}$viewport=$("<div class='slick-viewport' style='width:100%;overflow:auto;outline:0;position:relative;;'>").appendTo($container);$viewport.css("overflow-y",options.autoHeight?"hidden":"auto");$canvas=$("<div class='grid-canvas' />").appendTo($viewport);$focusSink2=$focusSink.clone().appendTo($container);if(!options.explicitInitialization){finishInitialization()}}function finishInitialization(){if(!initialized){initialized=true;viewportW=parseFloat($.css($container[0],"width",true));measureCellPaddingAndBorder();disableSelection($headers);if(!options.enableTextSelectionOnCells){$viewport.bind("selectstart.ui",function(event){return $(event.target).is("input,textarea")})}updateColumnCaches();createColumnHeaders();setupColumnSort();createCssRules();resizeCanvas();bindAncestorScrollEvents();$container.bind("resize.slickgrid",resizeCanvas);$viewport.bind("scroll",handleScroll);$headerScroller.bind("contextmenu",handleHeaderContextMenu).bind("click",handleHeaderClick).delegate(".slick-header-column","mouseenter",handleHeaderMouseEnter).delegate(".slick-header-column","mouseleave",handleHeaderMouseLeave);$headerRowScroller.bind("scroll",handleHeaderRowScroll);$focusSink.add($focusSink2).bind("keydown",handleKeyDown);$canvas.bind("keydown",handleKeyDown).bind("click",handleClick).bind("dblclick",handleDblClick).bind("contextmenu",handleContextMenu).bind("draginit",handleDragInit).bind("dragstart",{distance:3},handleDragStart).bind("drag",handleDrag).bind("dragend",handleDragEnd).delegate(".slick-cell","mouseenter",handleMouseEnter).delegate(".slick-cell","mouseleave",handleMouseLeave);if(navigator.userAgent.toLowerCase().match(/webkit/)&&navigator.userAgent.toLowerCase().match(/macintosh/)){$canvas.bind("mousewheel",handleMouseWheel)}}}function registerPlugin(plugin){plugins.unshift(plugin);plugin.init(self)}function unregisterPlugin(plugin){for(var i=plugins.length;i>=0;i--){if(plugins[i]===plugin){if(plugins[i].destroy){plugins[i].destroy()}plugins.splice(i,1);break}}}function setSelectionModel(model){if(selectionModel){selectionModel.onSelectedRangesChanged.unsubscribe(handleSelectedRangesChanged);if(selectionModel.destroy){selectionModel.destroy()}}selectionModel=model;if(selectionModel){selectionModel.init(self);selectionModel.onSelectedRangesChanged.subscribe(handleSelectedRangesChanged)}}function getSelectionModel(){return selectionModel}function getCanvasNode(){return $canvas[0]}function measureScrollbar(){var $c=$("<div style='position:absolute; top:-10000px; left:-10000px; width:100px; height:100px; overflow:scroll;'></div>").appendTo("body");var dim={width:$c.width()-$c[0].clientWidth,height:$c.height()-$c[0].clientHeight};$c.remove();return dim}function getHeadersWidth(){var headersWidth=0;for(var i=0,ii=columns.length;i<ii;i++){var width=columns[i].width;headersWidth+=width}headersWidth+=scrollbarDimensions.width;return Math.max(headersWidth,viewportW)+1000}function getCanvasWidth(){var availableWidth=viewportHasVScroll?viewportW-scrollbarDimensions.width:viewportW;var rowWidth=0;var i=columns.length;while(i--){rowWidth+=columns[i].width}return options.fullWidthRows?Math.max(rowWidth,availableWidth):rowWidth}function updateCanvasWidth(forceColumnWidthsUpdate){var oldCanvasWidth=canvasWidth;canvasWidth=getCanvasWidth();if(canvasWidth!=oldCanvasWidth){$canvas.width(canvasWidth);$headerRow.width(canvasWidth);$headers.width(getHeadersWidth());viewportHasHScroll=(canvasWidth>viewportW-scrollbarDimensions.width)}$headerRowSpacer.width(canvasWidth+(viewportHasVScroll?scrollbarDimensions.width:0));if(canvasWidth!=oldCanvasWidth||forceColumnWidthsUpdate){applyColumnWidths()}}function disableSelection($target){if($target&&$target.jquery){$target.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}}function getMaxSupportedCssHeight(){var supportedHeight=1000000;var testUpTo=navigator.userAgent.toLowerCase().match(/firefox/)?6000000:1000000000;var div=$("<div style='display:none' />").appendTo(document.body);while(true){var test=supportedHeight*2;div.css("height",test);if(test>testUpTo||div.height()!==test){break}else{supportedHeight=test}}div.remove();return supportedHeight}function bindAncestorScrollEvents(){var elem=$canvas[0];while((elem=elem.parentNode)!=document.body&&elem!=null){if(elem==$viewport[0]||elem.scrollWidth!=elem.clientWidth||elem.scrollHeight!=elem.clientHeight){var $elem=$(elem);if(!$boundAncestors){$boundAncestors=$elem}else{$boundAncestors=$boundAncestors.add($elem)}$elem.bind("scroll."+uid,handleActiveCellPositionChange)}}}function unbindAncestorScrollEvents(){if(!$boundAncestors){return}$boundAncestors.unbind("scroll."+uid);$boundAncestors=null}function updateColumnHeader(columnId,title,toolTip){if(!initialized){return}var idx=getColumnIndex(columnId);if(idx==null){return}var columnDef=columns[idx];var $header=$headers.children().eq(idx);if($header){if(title!==undefined){columns[idx].name=title}if(toolTip!==undefined){columns[idx].toolTip=toolTip}trigger(self.onBeforeHeaderCellDestroy,{node:$header[0],column:columnDef});$header.attr("title",toolTip||"").children().eq(0).html(title);trigger(self.onHeaderCellRendered,{node:$header[0],column:columnDef})}}function getHeaderRow(){return $headerRow[0]}function getHeaderRowColumn(columnId){var idx=getColumnIndex(columnId);var $header=$headerRow.children().eq(idx);return $header&&$header[0]}function createColumnHeaders(){function onMouseEnter(){$(this).addClass("ui-state-hover")}function onMouseLeave(){$(this).removeClass("ui-state-hover")}$headers.find(".slick-header-column").each(function(){var columnDef=$(this).data("column");if(columnDef){trigger(self.onBeforeHeaderCellDestroy,{node:this,column:columnDef})}});$headers.empty();$headers.width(getHeadersWidth());$headerRow.find(".slick-headerrow-column").each(function(){var columnDef=$(this).data("column");if(columnDef){trigger(self.onBeforeHeaderRowCellDestroy,{node:this,column:columnDef})}});$headerRow.empty();for(var i=0;i<columns.length;i++){var m=columns[i];var header=$("<div class='ui-state-default slick-header-column' />").html("<span class='slick-column-name'>"+m.name+"</span>").width(m.width-headerColumnWidthDiff).attr("id",""+uid+m.id).attr("title",m.toolTip||"").data("column",m).addClass(m.headerCssClass||"").appendTo($headers);if(options.enableColumnReorder||m.sortable){header.on("mouseenter",onMouseEnter).on("mouseleave",onMouseLeave)}if(m.sortable){header.addClass("slick-header-sortable");header.append("<span class='slick-sort-indicator' />")}trigger(self.onHeaderCellRendered,{node:header[0],column:m});if(options.showHeaderRow){var headerRowCell=$("<div class='ui-state-default slick-headerrow-column l"+i+" r"+i+"'></div>").data("column",m).appendTo($headerRow);trigger(self.onHeaderRowCellRendered,{node:headerRowCell[0],column:m})}}setSortColumns(sortColumns);setupColumnResize();if(options.enableColumnReorder){setupColumnReorder()}}function setupColumnSort(){$headers.click(function(e){$(".form-status-tab.jqFormStatus").on("click",function(e){console.log("clicked");e.preventDefault()});e.metaKey=e.metaKey||e.ctrlKey;if($(e.target).hasClass("slick-resizable-handle")){return}var $col=$(e.target).closest(".slick-header-column");if(!$col.length){return}var column=$col.data("column");if(column.sortable){if(!getEditorLock().commitCurrentEdit()){return}var sortOpts=null;var i=0;for(;i<sortColumns.length;i++){if(sortColumns[i].columnId==column.id){sortOpts=sortColumns[i];sortOpts.sortAsc=!sortOpts.sortAsc;break}}if(e.metaKey&&options.multiColumnSort){if(sortOpts){sortColumns.splice(i,1)}}else{if((!e.shiftKey&&!e.metaKey)||!options.multiColumnSort){sortColumns=[]}if(!sortOpts){sortOpts={columnId:column.id,sortAsc:column.defaultSortAsc};sortColumns.push(sortOpts)}else{if(sortColumns.length==0){sortColumns.push(sortOpts)}}}setSortColumns(sortColumns);if(!options.multiColumnSort){trigger(self.onSort,{multiColumnSort:false,sortCol:column,sortAsc:sortOpts.sortAsc},e)}else{trigger(self.onSort,{multiColumnSort:true,sortCols:$.map(sortColumns,function(col){return{sortCol:columns[getColumnIndex(col.columnId)],sortAsc:col.sortAsc}})},e)}}})}function setupColumnReorder(){$headers.filter(":ui-sortable").sortable("destroy");$headers.sortable({containment:"parent",distance:3,axis:"x",cursor:"default",tolerance:"intersection",helper:"clone",placeholder:"slick-sortable-placeholder ui-state-default slick-header-column",start:function(e,ui){ui.placeholder.width(ui.helper.outerWidth()-headerColumnWidthDiff);$(ui.helper).addClass("slick-header-column-active")},beforeStop:function(e,ui){$(ui.helper).removeClass("slick-header-column-active")},stop:function(e){if(!getEditorLock().commitCurrentEdit()){$(this).sortable("cancel");return}var reorderedIds=$headers.sortable("toArray");var reorderedColumns=[];for(var i=0;i<reorderedIds.length;i++){reorderedColumns.push(columns[getColumnIndex(reorderedIds[i].replace(uid,""))])}setColumns(reorderedColumns);trigger(self.onColumnsReordered,{});e.stopPropagation();setupColumnResize()}})}function setupColumnResize(){var $col,j,c,pageX,columnElements,minPageX,maxPageX,firstResizable,lastResizable;columnElements=$headers.children();columnElements.find(".slick-resizable-handle").remove();columnElements.each(function(i,e){if(columns[i].resizable){if(firstResizable===undefined){firstResizable=i}lastResizable=i}});if(firstResizable===undefined){return}columnElements.each(function(i,e){if(i<firstResizable||(options.forceFitColumns&&i>=lastResizable)){return}$col=$(e);$("<div class='slick-resizable-handle' />").appendTo(e).bind("dragstart",function(e,dd){if(!getEditorLock().commitCurrentEdit()){return false}pageX=e.pageX;$(this).parent().addClass("slick-header-column-active");var shrinkLeewayOnRight=null,stretchLeewayOnRight=null;columnElements.each(function(i,e){columns[i].previousWidth=$(e).outerWidth()});if(options.forceFitColumns){shrinkLeewayOnRight=0;stretchLeewayOnRight=0;for(j=i+1;j<columnElements.length;j++){c=columns[j];if(c.resizable){if(stretchLeewayOnRight!==null){if(c.maxWidth){stretchLeewayOnRight+=c.maxWidth-c.previousWidth}else{stretchLeewayOnRight=null}}shrinkLeewayOnRight+=c.previousWidth-Math.max(c.minWidth||0,absoluteColumnMinWidth)}}}var shrinkLeewayOnLeft=0,stretchLeewayOnLeft=0;for(j=0;j<=i;j++){c=columns[j];if(c.resizable){if(stretchLeewayOnLeft!==null){if(c.maxWidth){stretchLeewayOnLeft+=c.maxWidth-c.previousWidth}else{stretchLeewayOnLeft=null}}shrinkLeewayOnLeft+=c.previousWidth-Math.max(c.minWidth||0,absoluteColumnMinWidth)}}if(shrinkLeewayOnRight===null){shrinkLeewayOnRight=100000}if(shrinkLeewayOnLeft===null){shrinkLeewayOnLeft=100000}if(stretchLeewayOnRight===null){stretchLeewayOnRight=100000}if(stretchLeewayOnLeft===null){stretchLeewayOnLeft=100000}maxPageX=pageX+Math.min(shrinkLeewayOnRight,stretchLeewayOnLeft);minPageX=pageX-Math.min(shrinkLeewayOnLeft,stretchLeewayOnRight)}).bind("drag",function(e,dd){var actualMinWidth,d=Math.min(maxPageX,Math.max(minPageX,e.pageX))-pageX,x;if(d<0){x=d;for(j=i;j>=0;j--){c=columns[j];if(c.resizable){actualMinWidth=Math.max(c.minWidth||0,absoluteColumnMinWidth);if(x&&c.previousWidth+x<actualMinWidth){x+=c.previousWidth-actualMinWidth;c.width=actualMinWidth}else{c.width=c.previousWidth+x;x=0}}}if(options.forceFitColumns){x=-d;for(j=i+1;j<columnElements.length;j++){c=columns[j];if(c.resizable){if(x&&c.maxWidth&&(c.maxWidth-c.previousWidth<x)){x-=c.maxWidth-c.previousWidth;c.width=c.maxWidth}else{c.width=c.previousWidth+x;x=0}}}}}else{x=d;for(j=i;j>=0;j--){c=columns[j];if(c.resizable){if(x&&c.maxWidth&&(c.maxWidth-c.previousWidth<x)){x-=c.maxWidth-c.previousWidth;c.width=c.maxWidth}else{c.width=c.previousWidth+x;x=0}}}if(options.forceFitColumns){x=-d;for(j=i+1;j<columnElements.length;j++){c=columns[j];if(c.resizable){actualMinWidth=Math.max(c.minWidth||0,absoluteColumnMinWidth);if(x&&c.previousWidth+x<actualMinWidth){x+=c.previousWidth-actualMinWidth;c.width=actualMinWidth}else{c.width=c.previousWidth+x;x=0}}}}}applyColumnHeaderWidths();if(options.syncColumnCellResize){applyColumnWidths()}}).bind("dragend",function(e,dd){var newWidth;$(this).parent().removeClass("slick-header-column-active");for(j=0;j<columnElements.length;j++){c=columns[j];newWidth=$(columnElements[j]).outerWidth();if(c.previousWidth!==newWidth&&c.rerenderOnResize){invalidateAllRows()}}updateCanvasWidth(true);render();trigger(self.onColumnsResized,{})})})}function getVBoxDelta($el){var p=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var delta=0;$.each(p,function(n,val){delta+=parseFloat($el.css(val))||0});return delta}function measureCellPaddingAndBorder(){var el;var h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var v=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];el=$("<div class='ui-state-default slick-header-column' style='visibility:hidden'>-</div>").appendTo($headers);headerColumnWidthDiff=headerColumnHeightDiff=0;if(el.css("box-sizing")!="border-box"&&el.css("-moz-box-sizing")!="border-box"&&el.css("-webkit-box-sizing")!="border-box"){$.each(h,function(n,val){headerColumnWidthDiff+=parseFloat(el.css(val))||0});$.each(v,function(n,val){headerColumnHeightDiff+=parseFloat(el.css(val))||0})}el.remove();var r=$("<div class='slick-row' />").appendTo($canvas);el=$("<div class='slick-cell' id='' style='visibility:hidden'>-</div>").appendTo(r);cellWidthDiff=cellHeightDiff=0;if(el.css("box-sizing")!="border-box"&&el.css("-moz-box-sizing")!="border-box"&&el.css("-webkit-box-sizing")!="border-box"){$.each(h,function(n,val){cellWidthDiff+=parseFloat(el.css(val))||0});$.each(v,function(n,val){cellHeightDiff+=parseFloat(el.css(val))||0})}r.remove();absoluteColumnMinWidth=Math.max(headerColumnWidthDiff,cellWidthDiff)}function createCssRules(){$style=$("<style type='text/css' rel='stylesheet' />").appendTo($("head"));var rowHeight=(options.rowHeight-cellHeightDiff);var rules=["."+uid+" .slick-header-column { left: 1000px; }","."+uid+" .slick-top-panel { height:"+options.topPanelHeight+"px; }","."+uid+" .slick-headerrow-columns { height:"+options.headerRowHeight+"px; }","."+uid+" .slick-cell { height:"+rowHeight+"px; }","."+uid+" .slick-row { height:"+options.rowHeight+"px; }"];for(var i=0;i<columns.length;i++){rules.push("."+uid+" .l"+i+" { }");rules.push("."+uid+" .r"+i+" { }")}if($style[0].styleSheet){$style[0].styleSheet.cssText=rules.join(" ")}else{$style[0].appendChild(document.createTextNode(rules.join(" ")))}}function getColumnCssRules(idx){if(!stylesheet){var sheets=document.styleSheets;for(var i=0;i<sheets.length;i++){if((sheets[i].ownerNode||sheets[i].owningElement)==$style[0]){stylesheet=sheets[i];break}}if(!stylesheet){throw new Error("Cannot find stylesheet.")}columnCssRulesL=[];columnCssRulesR=[];var cssRules=(stylesheet.cssRules||stylesheet.rules);var matches,columnIdx;for(var i=0;i<cssRules.length;i++){var selector=cssRules[i].selectorText;if(matches=/\.l\d+/.exec(selector)){columnIdx=parseInt(matches[0].substr(2,matches[0].length-2),10);columnCssRulesL[columnIdx]=cssRules[i]}else{if(matches=/\.r\d+/.exec(selector)){columnIdx=parseInt(matches[0].substr(2,matches[0].length-2),10);columnCssRulesR[columnIdx]=cssRules[i]}}}}return{left:columnCssRulesL[idx],right:columnCssRulesR[idx]}}function removeCssRules(){$style.remove();stylesheet=null}function destroy(){getEditorLock().cancelCurrentEdit();trigger(self.onBeforeDestroy,{});var i=plugins.length;while(i--){unregisterPlugin(plugins[i])}if(options.enableColumnReorder){$headers.filter(":ui-sortable").sortable("destroy")}unbindAncestorScrollEvents();$container.unbind(".slickgrid");removeCssRules();$canvas.unbind("draginit dragstart dragend drag");$container.empty().removeClass(uid)}function trigger(evt,args,e){e=e||new Slick.EventData();args=args||{};args.grid=self;return evt.notify(args,e,self)}function getEditorLock(){return options.editorLock}function getEditController(){return editController}function getColumnIndex(id){return columnsById[id]}function autosizeColumns(){var i,c,widths=[],shrinkLeeway=0,total=0,prevTotal,availWidth=viewportHasVScroll?viewportW-scrollbarDimensions.width:viewportW;for(i=0;i<columns.length;i++){c=columns[i];widths.push(c.width);total+=c.width;if(c.resizable){shrinkLeeway+=c.width-Math.max(c.minWidth,absoluteColumnMinWidth)}}prevTotal=total;while(total>availWidth&&shrinkLeeway){var shrinkProportion=(total-availWidth)/shrinkLeeway;for(i=0;i<columns.length&&total>availWidth;i++){c=columns[i];var width=widths[i];if(!c.resizable||width<=c.minWidth||width<=absoluteColumnMinWidth){continue}var absMinWidth=Math.max(c.minWidth,absoluteColumnMinWidth);var shrinkSize=Math.floor(shrinkProportion*(width-absMinWidth))||1;shrinkSize=Math.min(shrinkSize,width-absMinWidth);total-=shrinkSize;shrinkLeeway-=shrinkSize;widths[i]-=shrinkSize}if(prevTotal<=total){break}prevTotal=total}prevTotal=total;while(total<availWidth){var growProportion=availWidth/total;for(i=0;i<columns.length&&total<availWidth;i++){c=columns[i];var currentWidth=widths[i];var growSize;if(!c.resizable||c.maxWidth<=currentWidth){growSize=0}else{growSize=Math.min(Math.floor(growProportion*currentWidth)-currentWidth,(c.maxWidth-currentWidth)||1000000)||1}total+=growSize;widths[i]+=growSize}if(prevTotal>=total){break}prevTotal=total}var reRender=false;for(i=0;i<columns.length;i++){if(columns[i].rerenderOnResize&&columns[i].width!=widths[i]){reRender=true}columns[i].width=widths[i]}applyColumnHeaderWidths();updateCanvasWidth(true);if(reRender){invalidateAllRows();render()}}function applyColumnHeaderWidths(){if(!initialized){return}var h;for(var i=0,headers=$headers.children(),ii=headers.length;i<ii;i++){h=$(headers[i]);if(h.width()!==columns[i].width-headerColumnWidthDiff){h.width(columns[i].width-headerColumnWidthDiff)}}updateColumnCaches()}function applyColumnWidths(){var x=0,w,rule;for(var i=0;i<columns.length;i++){w=columns[i].width;rule=getColumnCssRules(i);rule.left.style.left=x+"px";rule.right.style.right=(canvasWidth-x-w)+"px";x+=columns[i].width}}function setSortColumn(columnId,ascending){setSortColumns([{columnId:columnId,sortAsc:ascending}])}function setSortColumns(cols){sortColumns=cols;var headerColumnEls=$headers.children();headerColumnEls.removeClass("slick-header-column-sorted").find(".slick-sort-indicator").removeClass("slick-sort-indicator-asc slick-sort-indicator-desc");$.each(sortColumns,function(i,col){if(col.sortAsc==null){col.sortAsc=true}var columnIndex=getColumnIndex(col.columnId);if(columnIndex!=null){headerColumnEls.eq(columnIndex).addClass("slick-header-column-sorted").find(".slick-sort-indicator").addClass(col.sortAsc?"slick-sort-indicator-asc":"slick-sort-indicator-desc")}})}function getSortColumns(){return sortColumns}function handleSelectedRangesChanged(e,ranges){selectedRows=[];var hash={};for(var i=0;i<ranges.length;i++){for(var j=ranges[i].fromRow;j<=ranges[i].toRow;j++){if(!hash[j]){selectedRows.push(j);hash[j]={}}for(var k=ranges[i].fromCell;k<=ranges[i].toCell;k++){if(canCellBeSelected(j,k)){hash[j][columns[k].id]=options.selectedCellCssClass}}}}setCellCssStyles(options.selectedCellCssClass,hash);trigger(self.onSelectedRowsChanged,{rows:getSelectedRows()},e)}function getColumns(){return columns}function updateColumnCaches(){columnPosLeft=[];columnPosRight=[];var x=0;for(var i=0,ii=columns.length;i<ii;i++){columnPosLeft[i]=x;columnPosRight[i]=x+columns[i].width;x+=columns[i].width}}function setColumns(columnDefinitions){columns=columnDefinitions;columnsById={};for(var i=0;i<columns.length;i++){var m=columns[i]=$.extend({},columnDefaults,columns[i]);columnsById[m.id]=i;if(m.minWidth&&m.width<m.minWidth){m.width=m.minWidth}if(m.maxWidth&&m.width>m.maxWidth){m.width=m.maxWidth}}updateColumnCaches();if(initialized){invalidateAllRows();createColumnHeaders();removeCssRules();createCssRules();resizeCanvas();applyColumnWidths();handleScroll()}}function getOptions(){return options}function setOptions(args){if(!getEditorLock().commitCurrentEdit()){return}makeActiveCellNormal();if(options.enableAddRow!==args.enableAddRow){invalidateRow(getDataLength())}options=$.extend(options,args);validateAndEnforceOptions();$viewport.css("overflow-y",options.autoHeight?"hidden":"auto");render()}function validateAndEnforceOptions(){if(options.autoHeight){options.leaveSpaceForNewRows=false}}function setData(newData,scrollToTop){data=newData;invalidateAllRows();updateRowCount();if(scrollToTop){scrollTo(0)}}function getData(){return data}function getDataLength(){if(data.getLength){return data.getLength()}else{return data.length}}function getDataLengthIncludingAddNew(){return getDataLength()+(options.enableAddRow?1:0)}function getDataItem(i){if(data.getItem){return data.getItem(i)}else{return data[i]}}function getTopPanel(){return $topPanel[0]}function setTopPanelVisibility(visible){if(options.showTopPanel!=visible){options.showTopPanel=visible;if(visible){$topPanelScroller.slideDown("fast",resizeCanvas)}else{$topPanelScroller.slideUp("fast",resizeCanvas)}}}function setHeaderRowVisibility(visible){if(options.showHeaderRow!=visible){options.showHeaderRow=visible;if(visible){$headerRowScroller.slideDown("fast",resizeCanvas)}else{$headerRowScroller.slideUp("fast",resizeCanvas)}}}function getContainerNode(){return $container.get(0)}function getRowTop(row){return options.rowHeight*row-offset}function getRowFromPosition(y){return Math.floor((y+offset)/options.rowHeight)}function scrollTo(y){y=Math.max(y,0);y=Math.min(y,th-viewportH+(viewportHasHScroll?scrollbarDimensions.height:0));var oldOffset=offset;page=Math.min(n-1,Math.floor(y/ph));offset=Math.round(page*cj);var newScrollTop=y-offset;if(offset!=oldOffset){var range=getVisibleRange(newScrollTop);cleanupRows(range);updateRowPositions()}if(prevScrollTop!=newScrollTop){vScrollDir=(prevScrollTop+oldOffset<newScrollTop+offset)?1:-1;$viewport[0].scrollTop=(lastRenderedScrollTop=scrollTop=prevScrollTop=newScrollTop);trigger(self.onViewportChanged,{})}}function defaultFormatter(row,cell,value,columnDef,dataContext){if(value==null){return""}else{return(value+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}}function getFormatter(row,column){var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);var columnOverrides=rowMetadata&&rowMetadata.columns&&(rowMetadata.columns[column.id]||rowMetadata.columns[getColumnIndex(column.id)]);return(columnOverrides&&columnOverrides.formatter)||(rowMetadata&&rowMetadata.formatter)||column.formatter||(options.formatterFactory&&options.formatterFactory.getFormatter(column))||options.defaultFormatter}function getEditor(row,cell){var column=columns[cell];var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);var columnMetadata=rowMetadata&&rowMetadata.columns;if(columnMetadata&&columnMetadata[column.id]&&columnMetadata[column.id].editor!==undefined){return columnMetadata[column.id].editor}if(columnMetadata&&columnMetadata[cell]&&columnMetadata[cell].editor!==undefined){return columnMetadata[cell].editor}return column.editor||(options.editorFactory&&options.editorFactory.getEditor(column))}function getDataItemValueForColumn(item,columnDef){if(options.dataItemColumnValueExtractor){return options.dataItemColumnValueExtractor(item,columnDef)}return item[columnDef.field]}function appendRowHtml(stringArray,row,range,dataLength){var d=getDataItem(row);var dataLoading=row<dataLength&&!d;var rowCss="slick-row"+(dataLoading?" loading":"")+(row===activeRow?" active":"")+(row%2==1?" odd":" even");if(!d){rowCss+=" "+options.addNewRowCssClass}var metadata=data.getItemMetadata&&data.getItemMetadata(row);if(metadata&&metadata.cssClasses){rowCss+=" "+metadata.cssClasses}stringArray.push("<div class='ui-widget-content "+rowCss+"' style='top:"+getRowTop(row)+"px'>");var colspan,m;for(var i=0,ii=columns.length;i<ii;i++){m=columns[i];colspan=1;if(metadata&&metadata.columns){var columnData=metadata.columns[m.id]||metadata.columns[i];colspan=(columnData&&columnData.colspan)||1;if(colspan==="*"){colspan=ii-i}}if(columnPosRight[Math.min(ii-1,i+colspan-1)]>range.leftPx){if(columnPosLeft[i]>range.rightPx){break}appendCellHtml(stringArray,row,i,colspan,d)}if(colspan>1){i+=(colspan-1)}}stringArray.push("</div>")}function appendCellHtml(stringArray,row,cell,colspan,item){var m=columns[cell];var cellCss="slick-cell l"+cell+" r"+Math.min(columns.length-1,cell+colspan-1)+(m.cssClass?" "+m.cssClass:"");if(row===activeRow&&cell===activeCell){cellCss+=(" active")}for(var key in cellCssClasses){if(cellCssClasses[key][row]&&cellCssClasses[key][row][m.id]){cellCss+=(" "+cellCssClasses[key][row][m.id])}}stringArray.push("<div class='"+cellCss+"'>");if(item){var value=getDataItemValueForColumn(item,m);stringArray.push(getFormatter(row,m)(row,cell,value,m,item))}stringArray.push("</div>");rowsCache[row].cellRenderQueue.push(cell);rowsCache[row].cellColSpans[cell]=colspan}function cleanupRows(rangeToKeep){for(var i in rowsCache){if(((i=parseInt(i,10))!==activeRow)&&(i<rangeToKeep.top||i>rangeToKeep.bottom)){removeRowFromCache(i)}}}function invalidate(){updateRowCount();invalidateAllRows();render()}function invalidateAllRows(){if(currentEditor){makeActiveCellNormal()}for(var row in rowsCache){removeRowFromCache(row)}}function removeRowFromCache(row){var cacheEntry=rowsCache[row];if(!cacheEntry){return}if(rowNodeFromLastMouseWheelEvent==cacheEntry.rowNode){cacheEntry.rowNode.style.display="none";zombieRowNodeFromLastMouseWheelEvent=rowNodeFromLastMouseWheelEvent}else{$canvas[0].removeChild(cacheEntry.rowNode)}delete rowsCache[row];delete postProcessedRows[row];renderedRows--;counter_rows_removed++}function invalidateRows(rows){var i,rl;if(!rows||!rows.length){return}vScrollDir=0;for(i=0,rl=rows.length;i<rl;i++){if(currentEditor&&activeRow===rows[i]){makeActiveCellNormal()}if(rowsCache[rows[i]]){removeRowFromCache(rows[i])}}}function invalidateRow(row){invalidateRows([row])}function updateCell(row,cell){var cellNode=getCellNode(row,cell);if(!cellNode){return}var m=columns[cell],d=getDataItem(row);if(currentEditor&&activeRow===row&&activeCell===cell){currentEditor.loadValue(d)}else{cellNode.innerHTML=d?getFormatter(row,m)(row,cell,getDataItemValueForColumn(d,m),m,d):"";invalidatePostProcessingResults(row)}}function updateRow(row){var cacheEntry=rowsCache[row];if(!cacheEntry){return}ensureCellNodesInRowsCache(row);var d=getDataItem(row);for(var columnIdx in cacheEntry.cellNodesByColumnIdx){if(!cacheEntry.cellNodesByColumnIdx.hasOwnProperty(columnIdx)){continue}columnIdx=columnIdx|0;var m=columns[columnIdx],node=cacheEntry.cellNodesByColumnIdx[columnIdx];if(row===activeRow&&columnIdx===activeCell&&currentEditor){currentEditor.loadValue(d)}else{if(d){node.innerHTML=getFormatter(row,m)(row,columnIdx,getDataItemValueForColumn(d,m),m,d)}else{node.innerHTML=""}}}invalidatePostProcessingResults(row)}function getViewportHeight(){return parseFloat($.css($container[0],"height",true))-parseFloat($.css($container[0],"paddingTop",true))-parseFloat($.css($container[0],"paddingBottom",true))-parseFloat($.css($headerScroller[0],"height"))-getVBoxDelta($headerScroller)-(options.showTopPanel?options.topPanelHeight+getVBoxDelta($topPanelScroller):0)-(options.showHeaderRow?options.headerRowHeight+getVBoxDelta($headerRowScroller):0)}function resizeCanvas(){if(!initialized){return}if(options.autoHeight){viewportH=options.rowHeight*getDataLengthIncludingAddNew()}else{viewportH=getViewportHeight()}numVisibleRows=Math.ceil(viewportH/options.rowHeight);viewportW=parseFloat($.css($container[0],"width",true));if(!options.autoHeight){$viewport.height(viewportH)}if(options.forceFitColumns){autosizeColumns()}updateRowCount();handleScroll();lastRenderedScrollLeft=-1;render()}function updateRowCount(){if(!initialized){return}var dataLengthIncludingAddNew=getDataLengthIncludingAddNew();var numberOfRows=dataLengthIncludingAddNew+(options.leaveSpaceForNewRows?numVisibleRows-1:0);var oldViewportHasVScroll=viewportHasVScroll;viewportHasVScroll=!options.autoHeight&&(numberOfRows*options.rowHeight>viewportH);makeActiveCellNormal();var l=dataLengthIncludingAddNew-1;for(var i in rowsCache){if(i>=l){removeRowFromCache(i)}}if(activeCellNode&&activeRow>l){resetActiveCell()}var oldH=h;th=Math.max(options.rowHeight*numberOfRows,viewportH-scrollbarDimensions.height);if(th<maxSupportedCssHeight){h=ph=th;n=1;cj=0}else{h=maxSupportedCssHeight;ph=h/100;n=Math.floor(th/ph);cj=(th-h)/(n-1)}if(h!==oldH){$canvas.css("height",h);scrollTop=$viewport[0].scrollTop}var oldScrollTopInRange=(scrollTop+offset<=th-viewportH);if(th==0||scrollTop==0){page=offset=0}else{if(oldScrollTopInRange){scrollTo(scrollTop+offset)}else{scrollTo(th-viewportH)}}if(h!=oldH&&options.autoHeight){resizeCanvas()}if(options.forceFitColumns&&oldViewportHasVScroll!=viewportHasVScroll){autosizeColumns()}updateCanvasWidth(false)}function getVisibleRange(viewportTop,viewportLeft){if(viewportTop==null){viewportTop=scrollTop}if(viewportLeft==null){viewportLeft=scrollLeft}return{top:getRowFromPosition(viewportTop),bottom:getRowFromPosition(viewportTop+viewportH)+1,leftPx:viewportLeft,rightPx:viewportLeft+viewportW}}function getRenderedRange(viewportTop,viewportLeft){var range=getVisibleRange(viewportTop,viewportLeft);var buffer=Math.round(viewportH/options.rowHeight);var minBuffer=3;if(vScrollDir==-1){range.top-=buffer;range.bottom+=minBuffer}else{if(vScrollDir==1){range.top-=minBuffer;range.bottom+=buffer}else{range.top-=minBuffer;range.bottom+=minBuffer}}range.top=Math.max(0,range.top);range.bottom=Math.min(getDataLengthIncludingAddNew()-1,range.bottom);range.leftPx-=viewportW;range.rightPx+=viewportW;range.leftPx=Math.max(0,range.leftPx);range.rightPx=Math.min(canvasWidth,range.rightPx);return range}function ensureCellNodesInRowsCache(row){var cacheEntry=rowsCache[row];if(cacheEntry){if(cacheEntry.cellRenderQueue.length){var lastChild=cacheEntry.rowNode.lastChild;while(cacheEntry.cellRenderQueue.length){var columnIdx=cacheEntry.cellRenderQueue.pop();cacheEntry.cellNodesByColumnIdx[columnIdx]=lastChild;lastChild=lastChild.previousSibling}}}}function cleanUpCells(range,row){var totalCellsRemoved=0;var cacheEntry=rowsCache[row];var cellsToRemove=[];for(var i in cacheEntry.cellNodesByColumnIdx){if(!cacheEntry.cellNodesByColumnIdx.hasOwnProperty(i)){continue}i=i|0;var colspan=cacheEntry.cellColSpans[i];if(columnPosLeft[i]>range.rightPx||columnPosRight[Math.min(columns.length-1,i+colspan-1)]<range.leftPx){if(!(row==activeRow&&i==activeCell)){cellsToRemove.push(i)}}}var cellToRemove;while((cellToRemove=cellsToRemove.pop())!=null){cacheEntry.rowNode.removeChild(cacheEntry.cellNodesByColumnIdx[cellToRemove]);delete cacheEntry.cellColSpans[cellToRemove];delete cacheEntry.cellNodesByColumnIdx[cellToRemove];if(postProcessedRows[row]){delete postProcessedRows[row][cellToRemove]}totalCellsRemoved++}}function cleanUpAndRenderCells(range){var cacheEntry;var stringArray=[];var processedRows=[];var cellsAdded;var totalCellsAdded=0;var colspan;for(var row=range.top,btm=range.bottom;row<=btm;row++){cacheEntry=rowsCache[row];if(!cacheEntry){continue}ensureCellNodesInRowsCache(row);cleanUpCells(range,row);cellsAdded=0;var metadata=data.getItemMetadata&&data.getItemMetadata(row);metadata=metadata&&metadata.columns;var d=getDataItem(row);for(var i=0,ii=columns.length;i<ii;i++){if(columnPosLeft[i]>range.rightPx){break}if((colspan=cacheEntry.cellColSpans[i])!=null){i+=(colspan>1?colspan-1:0);continue}colspan=1;if(metadata){var columnData=metadata[columns[i].id]||metadata[i];colspan=(columnData&&columnData.colspan)||1;if(colspan==="*"){colspan=ii-i}}if(columnPosRight[Math.min(ii-1,i+colspan-1)]>range.leftPx){appendCellHtml(stringArray,row,i,colspan,d);cellsAdded++}i+=(colspan>1?colspan-1:0)}if(cellsAdded){totalCellsAdded+=cellsAdded;processedRows.push(row)}}if(!stringArray.length){return}var x=document.createElement("div");x.innerHTML=stringArray.join("");var processedRow;var node;while((processedRow=processedRows.pop())!=null){cacheEntry=rowsCache[processedRow];var columnIdx;while((columnIdx=cacheEntry.cellRenderQueue.pop())!=null){node=x.lastChild;cacheEntry.rowNode.appendChild(node);cacheEntry.cellNodesByColumnIdx[columnIdx]=node}}}function renderRows(range){var parentNode=$canvas[0],stringArray=[],rows=[],needToReselectCell=false,dataLength=getDataLength();for(var i=range.top,ii=range.bottom;i<=ii;i++){if(rowsCache[i]){continue}renderedRows++;rows.push(i);rowsCache[i]={rowNode:null,cellColSpans:[],cellNodesByColumnIdx:[],cellRenderQueue:[]};appendRowHtml(stringArray,i,range,dataLength);if(activeCellNode&&activeRow===i){needToReselectCell=true}counter_rows_rendered++}if(!rows.length){return}var x=document.createElement("div");x.innerHTML=stringArray.join("");for(var i=0,ii=rows.length;i<ii;i++){rowsCache[rows[i]].rowNode=parentNode.appendChild(x.firstChild)}if(needToReselectCell){activeCellNode=getCellNode(activeRow,activeCell)}}function startPostProcessing(){if(!options.enableAsyncPostRender){return}clearTimeout(h_postrender);h_postrender=setTimeout(asyncPostProcessRows,options.asyncPostRenderDelay)}function invalidatePostProcessingResults(row){delete postProcessedRows[row];postProcessFromRow=Math.min(postProcessFromRow,row);postProcessToRow=Math.max(postProcessToRow,row);startPostProcessing()}function updateRowPositions(){for(var row in rowsCache){rowsCache[row].rowNode.style.top=getRowTop(row)+"px"}}function render(){if(!initialized){return}var visible=getVisibleRange();var rendered=getRenderedRange();cleanupRows(rendered);if(lastRenderedScrollLeft!=scrollLeft){cleanUpAndRenderCells(rendered)}renderRows(rendered);postProcessFromRow=visible.top;postProcessToRow=Math.min(getDataLengthIncludingAddNew()-1,visible.bottom);startPostProcessing();lastRenderedScrollTop=scrollTop;lastRenderedScrollLeft=scrollLeft;h_render=null}function handleHeaderRowScroll(){var scrollLeft=$headerRowScroller[0].scrollLeft;if(scrollLeft!=$viewport[0].scrollLeft){$viewport[0].scrollLeft=scrollLeft}}function handleScroll(){scrollTop=$viewport[0].scrollTop;scrollLeft=$viewport[0].scrollLeft;var vScrollDist=Math.abs(scrollTop-prevScrollTop);var hScrollDist=Math.abs(scrollLeft-prevScrollLeft);if(hScrollDist){prevScrollLeft=scrollLeft;$headerScroller[0].scrollLeft=scrollLeft;$topPanelScroller[0].scrollLeft=scrollLeft;$headerRowScroller[0].scrollLeft=scrollLeft}if(vScrollDist){vScrollDir=prevScrollTop<scrollTop?1:-1;prevScrollTop=scrollTop;if(vScrollDist<viewportH){scrollTo(scrollTop+offset)}else{var oldOffset=offset;if(h==viewportH){page=0}else{page=Math.min(n-1,Math.floor(scrollTop*((th-viewportH)/(h-viewportH))*(1/ph)))}offset=Math.round(page*cj);if(oldOffset!=offset){invalidateAllRows()}}}if(hScrollDist||vScrollDist){if(h_render){clearTimeout(h_render)}if(Math.abs(lastRenderedScrollTop-scrollTop)>20||Math.abs(lastRenderedScrollLeft-scrollLeft)>20){if(options.forceSyncScrolling||(Math.abs(lastRenderedScrollTop-scrollTop)<viewportH&&Math.abs(lastRenderedScrollLeft-scrollLeft)<viewportW)){render()}else{h_render=setTimeout(render,50)}trigger(self.onViewportChanged,{})}}trigger(self.onScroll,{scrollLeft:scrollLeft,scrollTop:scrollTop})}function asyncPostProcessRows(){var dataLength=getDataLength();while(postProcessFromRow<=postProcessToRow){var row=(vScrollDir>=0)?postProcessFromRow++:postProcessToRow--;var cacheEntry=rowsCache[row];if(!cacheEntry||row>=dataLength){continue}if(!postProcessedRows[row]){postProcessedRows[row]={}}ensureCellNodesInRowsCache(row);for(var columnIdx in cacheEntry.cellNodesByColumnIdx){if(!cacheEntry.cellNodesByColumnIdx.hasOwnProperty(columnIdx)){continue}columnIdx=columnIdx|0;var m=columns[columnIdx];if(m.asyncPostRender&&!postProcessedRows[row][columnIdx]){var node=cacheEntry.cellNodesByColumnIdx[columnIdx];if(node){m.asyncPostRender(node,row,getDataItem(row),m)}postProcessedRows[row][columnIdx]=true}}h_postrender=setTimeout(asyncPostProcessRows,options.asyncPostRenderDelay);return}}function updateCellCssStylesOnRenderedRows(addedHash,removedHash){var node,columnId,addedRowHash,removedRowHash;for(var row in rowsCache){removedRowHash=removedHash&&removedHash[row];addedRowHash=addedHash&&addedHash[row];if(removedRowHash){for(columnId in removedRowHash){if(!addedRowHash||removedRowHash[columnId]!=addedRowHash[columnId]){node=getCellNode(row,getColumnIndex(columnId));if(node){$(node).removeClass(removedRowHash[columnId])}}}}if(addedRowHash){for(columnId in addedRowHash){if(!removedRowHash||removedRowHash[columnId]!=addedRowHash[columnId]){node=getCellNode(row,getColumnIndex(columnId));if(node){$(node).addClass(addedRowHash[columnId])}}}}}}function addCellCssStyles(key,hash){if(cellCssClasses[key]){throw"addCellCssStyles: cell CSS hash with key '"+key+"' already exists."}cellCssClasses[key]=hash;updateCellCssStylesOnRenderedRows(hash,null);trigger(self.onCellCssStylesChanged,{key:key,hash:hash})}function removeCellCssStyles(key){if(!cellCssClasses[key]){return}updateCellCssStylesOnRenderedRows(null,cellCssClasses[key]);delete cellCssClasses[key];trigger(self.onCellCssStylesChanged,{key:key,hash:null})}function setCellCssStyles(key,hash){var prevHash=cellCssClasses[key];cellCssClasses[key]=hash;updateCellCssStylesOnRenderedRows(hash,prevHash);trigger(self.onCellCssStylesChanged,{key:key,hash:hash})}function getCellCssStyles(key){return cellCssClasses[key]}function flashCell(row,cell,speed){speed=speed||100;if(rowsCache[row]){var $cell=$(getCellNode(row,cell));function toggleCellClass(times){if(!times){return}setTimeout(function(){$cell.queue(function(){$cell.toggleClass(options.cellFlashingCssClass).dequeue();toggleCellClass(times-1)})},speed)}toggleCellClass(4)}}function handleMouseWheel(e){var rowNode=$(e.target).closest(".slick-row")[0];if(rowNode!=rowNodeFromLastMouseWheelEvent){if(zombieRowNodeFromLastMouseWheelEvent&&zombieRowNodeFromLastMouseWheelEvent!=rowNode){$canvas[0].removeChild(zombieRowNodeFromLastMouseWheelEvent);zombieRowNodeFromLastMouseWheelEvent=null}rowNodeFromLastMouseWheelEvent=rowNode}}function handleDragInit(e,dd){var cell=getCellFromEvent(e);if(!cell||!cellExists(cell.row,cell.cell)){return false}var retval=trigger(self.onDragInit,dd,e);if(e.isImmediatePropagationStopped()){return retval}return false}function handleDragStart(e,dd){var cell=getCellFromEvent(e);if(!cell||!cellExists(cell.row,cell.cell)){return false}var retval=trigger(self.onDragStart,dd,e);if(e.isImmediatePropagationStopped()){return retval}return false}function handleDrag(e,dd){return trigger(self.onDrag,dd,e)}function handleDragEnd(e,dd){trigger(self.onDragEnd,dd,e)}function handleKeyDown(e){trigger(self.onKeyDown,{row:activeRow,cell:activeCell},e);var handled=e.isImmediatePropagationStopped();if(!handled){if(!e.shiftKey&&!e.altKey&&!e.ctrlKey){if(e.which==27){if(!getEditorLock().isActive()){return}cancelEditAndSetFocus()}else{if(e.which==34){navigatePageDown();handled=true}else{if(e.which==33){navigatePageUp();handled=true}else{if(e.which==37){handled=navigateLeft()}else{if(e.which==39){handled=navigateRight()}else{if(e.which==38){handled=navigateUp()}else{if(e.which==40){handled=navigateDown()}else{if(e.which==9){handled=navigateNext()}else{if(e.which==13){if(options.editable){if(currentEditor){if(activeRow===getDataLength()){navigateDown()}else{commitEditAndSetFocus()}}else{if(getEditorLock().commitCurrentEdit()){makeActiveCellEditable()}}}handled=true}}}}}}}}}}else{if(e.which==9&&e.shiftKey&&!e.ctrlKey&&!e.altKey){handled=navigatePrev()}}}if(handled){e.stopPropagation();e.preventDefault();try{e.originalEvent.keyCode=0}catch(error){}}}function handleClick(e){if(!currentEditor){if(e.target!=document.activeElement||$(e.target).hasClass("slick-cell")){setFocus()}}var cell=getCellFromEvent(e);if(!cell||(currentEditor!==null&&activeRow==cell.row&&activeCell==cell.cell)){return}trigger(self.onClick,{row:cell.row,cell:cell.cell},e);if(e.isImmediatePropagationStopped()){return}if((activeCell!=cell.cell||activeRow!=cell.row)&&canCellBeActive(cell.row,cell.cell)){if(!getEditorLock().isActive()||getEditorLock().commitCurrentEdit()){scrollRowIntoView(cell.row,false);setActiveCellInternal(getCellNode(cell.row,cell.cell))}}}function handleContextMenu(e){var $cell=$(e.target).closest(".slick-cell",$canvas);if($cell.length===0){return}if(activeCellNode===$cell[0]&&currentEditor!==null){return}trigger(self.onContextMenu,{},e)}function handleDblClick(e){var cell=getCellFromEvent(e);if(!cell||(currentEditor!==null&&activeRow==cell.row&&activeCell==cell.cell)){return}trigger(self.onDblClick,{row:cell.row,cell:cell.cell},e);if(e.isImmediatePropagationStopped()){return}if(options.editable){gotoCell(cell.row,cell.cell,true)}}function handleHeaderMouseEnter(e){trigger(self.onHeaderMouseEnter,{column:$(this).data("column")},e)}function handleHeaderMouseLeave(e){trigger(self.onHeaderMouseLeave,{column:$(this).data("column")},e)}function handleHeaderContextMenu(e){var $header=$(e.target).closest(".slick-header-column",".slick-header-columns");var column=$header&&$header.data("column");trigger(self.onHeaderContextMenu,{column:column},e)}function handleHeaderClick(e){var $header=$(e.target).closest(".slick-header-column",".slick-header-columns");var column=$header&&$header.data("column");if(column){trigger(self.onHeaderClick,{column:column},e)}}function handleMouseEnter(e){trigger(self.onMouseEnter,{},e)}function handleMouseLeave(e){trigger(self.onMouseLeave,{},e)}function cellExists(row,cell){return !(row<0||row>=getDataLength()||cell<0||cell>=columns.length)}function getCellFromPoint(x,y){var row=getRowFromPosition(y);var cell=0;var w=0;for(var i=0;i<columns.length&&w<x;i++){w+=columns[i].width;cell++}if(cell<0){cell=0}return{row:row,cell:cell-1}}function getCellFromNode(cellNode){var cls=/l\d+/.exec(cellNode.className);if(!cls){throw"getCellFromNode: cannot get cell - "+cellNode.className}return parseInt(cls[0].substr(1,cls[0].length-1),10)}function getRowFromNode(rowNode){for(var row in rowsCache){if(rowsCache[row].rowNode===rowNode){return row|0}}return null}function getCellFromEvent(e){var $cell=$(e.target).closest(".slick-cell",$canvas);if(!$cell.length){return null}var row=getRowFromNode($cell[0].parentNode);var cell=getCellFromNode($cell[0]);if(row==null||cell==null){return null}else{return{row:row,cell:cell}}}function getCellNodeBox(row,cell){if(!cellExists(row,cell)){return null}var y1=getRowTop(row);var y2=y1+options.rowHeight-1;var x1=0;for(var i=0;i<cell;i++){x1+=columns[i].width}var x2=x1+columns[cell].width;return{top:y1,left:x1,bottom:y2,right:x2}}function resetActiveCell(){setActiveCellInternal(null,false)}function setFocus(){if(tabbingDirection==-1){$focusSink[0].focus()}else{$focusSink2[0].focus()}}function scrollCellIntoView(row,cell,doPaging){scrollRowIntoView(row,doPaging);var colspan=getColspan(row,cell);var left=columnPosLeft[cell],right=columnPosRight[cell+(colspan>1?colspan-1:0)],scrollRight=scrollLeft+viewportW;if(left<scrollLeft){$viewport.scrollLeft(left);handleScroll();render()}else{if(right>scrollRight){$viewport.scrollLeft(Math.min(left,right-$viewport[0].clientWidth));handleScroll();render()}}}function setActiveCellInternal(newCell,opt_editMode){if(activeCellNode!==null){makeActiveCellNormal();$(activeCellNode).removeClass("active");if(rowsCache[activeRow]){$(rowsCache[activeRow].rowNode).removeClass("active")}}var activeCellChanged=(activeCellNode!==newCell);activeCellNode=newCell;if(activeCellNode!=null){activeRow=getRowFromNode(activeCellNode.parentNode);activeCell=activePosX=getCellFromNode(activeCellNode);if(opt_editMode==null){opt_editMode=(activeRow==getDataLength())||options.autoEdit}$(activeCellNode).addClass("active");$(rowsCache[activeRow].rowNode).addClass("active");if(options.editable&&opt_editMode&&isCellPotentiallyEditable(activeRow,activeCell)){clearTimeout(h_editorLoader);if(options.asyncEditorLoading){h_editorLoader=setTimeout(function(){makeActiveCellEditable()},options.asyncEditorLoadDelay)}else{makeActiveCellEditable()}}}else{activeRow=activeCell=null}if(activeCellChanged){trigger(self.onActiveCellChanged,getActiveCell())}}function clearTextSelection(){if(document.selection&&document.selection.empty){try{document.selection.empty()}catch(e){}}else{if(window.getSelection){var sel=window.getSelection();if(sel&&sel.removeAllRanges){sel.removeAllRanges()}}}}function isCellPotentiallyEditable(row,cell){var dataLength=getDataLength();if(row<dataLength&&!getDataItem(row)){return false}if(columns[cell].cannotTriggerInsert&&row>=dataLength){return false}if(!getEditor(row,cell)){return false}return true}function makeActiveCellNormal(){if(!currentEditor){return}trigger(self.onBeforeCellEditorDestroy,{editor:currentEditor});currentEditor.destroy();currentEditor=null;if(activeCellNode){var d=getDataItem(activeRow);$(activeCellNode).removeClass("editable invalid");if(d){var column=columns[activeCell];var formatter=getFormatter(activeRow,column);activeCellNode.innerHTML=formatter(activeRow,activeCell,getDataItemValueForColumn(d,column),column,d);invalidatePostProcessingResults(activeRow)}}if(shd.isBrowserIe()){clearTextSelection()}getEditorLock().deactivate(editController)}function makeActiveCellEditable(editor){if(!activeCellNode){return}if(!options.editable){throw"Grid : makeActiveCellEditable : should never get called when options.editable is false"}clearTimeout(h_editorLoader);if(!isCellPotentiallyEditable(activeRow,activeCell)){return}var columnDef=columns[activeCell];var item=getDataItem(activeRow);if(trigger(self.onBeforeEditCell,{row:activeRow,cell:activeCell,item:item,column:columnDef})===false){setFocus();return}getEditorLock().activate(editController);$(activeCellNode).addClass("editable");if(!editor){activeCellNode.innerHTML=""}currentEditor=new (editor||getEditor(activeRow,activeCell))({grid:self,gridPosition:absBox($container[0]),position:absBox(activeCellNode),container:activeCellNode,column:columnDef,item:item||{},commitChanges:commitEditAndSetFocus,cancelChanges:cancelEditAndSetFocus});if(item){currentEditor.loadValue(item)}serializedEditorValue=currentEditor.serializeValue();if(currentEditor.position){handleActiveCellPositionChange()}}function commitEditAndSetFocus(){if(getEditorLock().commitCurrentEdit()){setFocus();if(options.autoEdit){navigateDown()}}}function cancelEditAndSetFocus(){if(getEditorLock().cancelCurrentEdit()){setFocus()}}function absBox(elem){var box={top:elem.offsetTop,left:elem.offsetLeft,bottom:0,right:0,width:$(elem).outerWidth(),height:$(elem).outerHeight(),visible:true};box.bottom=box.top+box.height;box.right=box.left+box.width;var offsetParent=elem.offsetParent;while((elem=elem.parentNode)!=document.body){if(box.visible&&elem.scrollHeight!=elem.offsetHeight&&$(elem).css("overflowY")!="visible"){box.visible=box.bottom>elem.scrollTop&&box.top<elem.scrollTop+elem.clientHeight}if(box.visible&&elem.scrollWidth!=elem.offsetWidth&&$(elem).css("overflowX")!="visible"){box.visible=box.right>elem.scrollLeft&&box.left<elem.scrollLeft+elem.clientWidth}box.left-=elem.scrollLeft;box.top-=elem.scrollTop;if(elem===offsetParent){box.left+=elem.offsetLeft;box.top+=elem.offsetTop;offsetParent=elem.offsetParent}box.bottom=box.top+box.height;box.right=box.left+box.width}return box}function getActiveCellPosition(){return absBox(activeCellNode)}function getGridPosition(){return absBox($container[0])}function handleActiveCellPositionChange(){if(!activeCellNode){return}trigger(self.onActiveCellPositionChanged,{});if(currentEditor){var cellBox=getActiveCellPosition();if(currentEditor.show&&currentEditor.hide){if(!cellBox.visible){currentEditor.hide()}else{currentEditor.show()}}if(currentEditor.position){currentEditor.position(cellBox)}}}function getCellEditor(){return currentEditor}function getActiveCell(){if(!activeCellNode){return null}else{return{row:activeRow,cell:activeCell}}}function getActiveCellNode(){return activeCellNode}function scrollRowIntoView(row,doPaging){var rowAtTop=row*options.rowHeight;var rowAtBottom=(row+1)*options.rowHeight-viewportH+(viewportHasHScroll?scrollbarDimensions.height:0);if((row+1)*options.rowHeight>scrollTop+viewportH+offset){scrollTo(doPaging?rowAtTop:rowAtBottom);render()}else{if(row*options.rowHeight<scrollTop+offset){scrollTo(doPaging?rowAtBottom:rowAtTop);render()}}}function scrollRowToTop(row){scrollTo(row*options.rowHeight);render()}function scrollPage(dir){var deltaRows=dir*numVisibleRows;scrollTo((getRowFromPosition(scrollTop)+deltaRows)*options.rowHeight);render();if(options.enableCellNavigation&&activeRow!=null){var row=activeRow+deltaRows;var dataLengthIncludingAddNew=getDataLengthIncludingAddNew();if(row>=dataLengthIncludingAddNew){row=dataLengthIncludingAddNew-1}if(row<0){row=0}var cell=0,prevCell=null;var prevActivePosX=activePosX;while(cell<=activePosX){if(canCellBeActive(row,cell)){prevCell=cell}cell+=getColspan(row,cell)}if(prevCell!==null){setActiveCellInternal(getCellNode(row,prevCell));activePosX=prevActivePosX}else{resetActiveCell()}}}function navigatePageDown(){scrollPage(1)}function navigatePageUp(){scrollPage(-1)}function getColspan(row,cell){var metadata=data.getItemMetadata&&data.getItemMetadata(row);if(!metadata||!metadata.columns){return 1}var columnData=metadata.columns[columns[cell].id]||metadata.columns[cell];var colspan=(columnData&&columnData.colspan);if(colspan==="*"){colspan=columns.length-cell}else{colspan=colspan||1}return colspan}function findFirstFocusableCell(row){var cell=0;while(cell<columns.length){if(canCellBeActive(row,cell)){return cell}cell+=getColspan(row,cell)}return null}function findLastFocusableCell(row){var cell=0;var lastFocusableCell=null;while(cell<columns.length){if(canCellBeActive(row,cell)){lastFocusableCell=cell}cell+=getColspan(row,cell)}return lastFocusableCell}function gotoRight(row,cell,posX){if(cell>=columns.length){return null}do{cell+=getColspan(row,cell)}while(cell<columns.length&&!canCellBeActive(row,cell));if(cell<columns.length){return{row:row,cell:cell,posX:cell}}return null}function gotoLeft(row,cell,posX){if(cell<=0){return null}var firstFocusableCell=findFirstFocusableCell(row);if(firstFocusableCell===null||firstFocusableCell>=cell){return null}var prev={row:row,cell:firstFocusableCell,posX:firstFocusableCell};var pos;while(true){pos=gotoRight(prev.row,prev.cell,prev.posX);if(!pos){return null}if(pos.cell>=cell){return prev}prev=pos}}function gotoDown(row,cell,posX){var prevCell;var dataLengthIncludingAddNew=getDataLengthIncludingAddNew();while(true){if(++row>=dataLengthIncludingAddNew){return null}prevCell=cell=0;while(cell<=posX){prevCell=cell;cell+=getColspan(row,cell)}if(canCellBeActive(row,prevCell)){return{row:row,cell:prevCell,posX:posX}}}}function gotoUp(row,cell,posX){var prevCell;while(true){if(--row<0){return null}prevCell=cell=0;while(cell<=posX){prevCell=cell;cell+=getColspan(row,cell)}if(canCellBeActive(row,prevCell)){return{row:row,cell:prevCell,posX:posX}}}}function gotoNext(row,cell,posX){if(row==null&&cell==null){row=cell=posX=0;if(canCellBeActive(row,cell)){return{row:row,cell:cell,posX:cell}}}var pos=gotoRight(row,cell,posX);if(pos){return pos}var firstFocusableCell=null;var dataLengthIncludingAddNew=getDataLengthIncludingAddNew();while(++row<dataLengthIncludingAddNew){firstFocusableCell=findFirstFocusableCell(row);if(firstFocusableCell!==null){return{row:row,cell:firstFocusableCell,posX:firstFocusableCell}}}return null}function gotoPrev(row,cell,posX){if(row==null&&cell==null){row=getDataLengthIncludingAddNew()-1;cell=posX=columns.length-1;if(canCellBeActive(row,cell)){return{row:row,cell:cell,posX:cell}}}var pos;var lastSelectableCell;while(!pos){pos=gotoLeft(row,cell,posX);if(pos){break}if(--row<0){return null}cell=0;lastSelectableCell=findLastFocusableCell(row);if(lastSelectableCell!==null){pos={row:row,cell:lastSelectableCell,posX:lastSelectableCell}}}return pos}function navigateRight(){return navigate("right")}function navigateLeft(){return navigate("left")}function navigateDown(){return navigate("down")}function navigateUp(){return navigate("up")}function navigateNext(){return navigate("next")}function navigatePrev(){return navigate("prev")}function navigate(dir){if(!options.enableCellNavigation){return false}if(!activeCellNode&&dir!="prev"&&dir!="next"){return false}if(!getEditorLock().commitCurrentEdit()){return true}setFocus();var tabbingDirections={up:-1,down:1,left:-1,right:1,prev:-1,next:1};tabbingDirection=tabbingDirections[dir];var stepFunctions={up:gotoUp,down:gotoDown,left:gotoLeft,right:gotoRight,prev:gotoPrev,next:gotoNext};var stepFn=stepFunctions[dir];var pos=stepFn(activeRow,activeCell,activePosX);if(pos){var isAddNewRow=(pos.row==getDataLength());scrollCellIntoView(pos.row,pos.cell,!isAddNewRow);setActiveCellInternal(getCellNode(pos.row,pos.cell));activePosX=pos.posX;return true}else{setActiveCellInternal(getCellNode(activeRow,activeCell));return false}}function getCellNode(row,cell){if(rowsCache[row]){ensureCellNodesInRowsCache(row);return rowsCache[row].cellNodesByColumnIdx[cell]}return null}function setActiveCell(row,cell){if(!initialized){return}if(row>getDataLength()||row<0||cell>=columns.length||cell<0){return}if(!options.enableCellNavigation){return}scrollCellIntoView(row,cell,false);setActiveCellInternal(getCellNode(row,cell),false)}function canCellBeActive(row,cell){if(!options.enableCellNavigation||row>=getDataLengthIncludingAddNew()||row<0||cell>=columns.length||cell<0){return false}var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);if(rowMetadata&&typeof rowMetadata.focusable==="boolean"){return rowMetadata.focusable}var columnMetadata=rowMetadata&&rowMetadata.columns;if(columnMetadata&&columnMetadata[columns[cell].id]&&typeof columnMetadata[columns[cell].id].focusable==="boolean"){return columnMetadata[columns[cell].id].focusable}if(columnMetadata&&columnMetadata[cell]&&typeof columnMetadata[cell].focusable==="boolean"){return columnMetadata[cell].focusable}return columns[cell].focusable}function canCellBeSelected(row,cell){if(row>=getDataLength()||row<0||cell>=columns.length||cell<0){return false}var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);if(rowMetadata&&typeof rowMetadata.selectable==="boolean"){return rowMetadata.selectable}var columnMetadata=rowMetadata&&rowMetadata.columns&&(rowMetadata.columns[columns[cell].id]||rowMetadata.columns[cell]);if(columnMetadata&&typeof columnMetadata.selectable==="boolean"){return columnMetadata.selectable}return columns[cell].selectable}function gotoCell(row,cell,forceEdit){if(!initialized){return}if(!canCellBeActive(row,cell)){return}if(!getEditorLock().commitCurrentEdit()){return}scrollCellIntoView(row,cell,false);var newCell=getCellNode(row,cell);setActiveCellInternal(newCell,forceEdit||(row===getDataLength())||options.autoEdit);if(!currentEditor){setFocus()}}function commitCurrentEdit(){var item=getDataItem(activeRow);var column=columns[activeCell];if(currentEditor){if(currentEditor.isValueChanged()){var validationResults=currentEditor.validate();if(validationResults.valid){if(activeRow<getDataLength()){var editCommand={row:activeRow,cell:activeCell,editor:currentEditor,serializedValue:currentEditor.serializeValue(),prevSerializedValue:serializedEditorValue,execute:function(){this.editor.applyValue(item,this.serializedValue);updateRow(this.row);trigger(self.onCellChange,{row:activeRow,cell:activeCell,item:item})},undo:function(){this.editor.applyValue(item,this.prevSerializedValue);updateRow(this.row);trigger(self.onCellChange,{row:activeRow,cell:activeCell,item:item})}};if(options.editCommandHandler){makeActiveCellNormal();options.editCommandHandler(item,column,editCommand)}else{editCommand.execute();makeActiveCellNormal()}}else{var newItem={};currentEditor.applyValue(newItem,currentEditor.serializeValue());makeActiveCellNormal();trigger(self.onAddNewRow,{item:newItem,column:column})}return !getEditorLock().isActive()}else{$(activeCellNode).removeClass("invalid");$(activeCellNode).width();$(activeCellNode).addClass("invalid");trigger(self.onValidationError,{editor:currentEditor,cellNode:activeCellNode,validationResults:validationResults,row:activeRow,cell:activeCell,column:column});currentEditor.focus();return false}}makeActiveCellNormal()}return true}function cancelCurrentEdit(){makeActiveCellNormal();return true}function rowsToRanges(rows){var ranges=[];var lastCell=columns.length-1;for(var i=0;i<rows.length;i++){ranges.push(new Slick.Range(rows[i],0,rows[i],lastCell))}return ranges}function getSelectedRows(){if(!selectionModel){throw"Selection model is not set"}return selectedRows}function setSelectedRows(rows){if(!selectionModel){throw"Selection model is not set"}selectionModel.setSelectedRanges(rowsToRanges(rows))}this.debug=function(){var s="";s+=("\ncounter_rows_rendered:  "+counter_rows_rendered);s+=("\ncounter_rows_removed:  "+counter_rows_removed);s+=("\nrenderedRows:  "+renderedRows);s+=("\nnumVisibleRows:  "+numVisibleRows);s+=("\nmaxSupportedCssHeight:  "+maxSupportedCssHeight);s+=("\nn(umber of pages):  "+n);s+=("\n(current) page:  "+page);s+=("\npage height (ph):  "+ph);s+=("\nvScrollDir:  "+vScrollDir);alert(s)};this.eval=function(expr){return eval(expr)};$.extend(this,{slickGridVersion:"2.1",onScroll:new Slick.Event(),onSort:new Slick.Event(),onHeaderMouseEnter:new Slick.Event(),onHeaderMouseLeave:new Slick.Event(),onHeaderContextMenu:new Slick.Event(),onHeaderClick:new Slick.Event(),onHeaderCellRendered:new Slick.Event(),onBeforeHeaderCellDestroy:new Slick.Event(),onHeaderRowCellRendered:new Slick.Event(),onBeforeHeaderRowCellDestroy:new Slick.Event(),onMouseEnter:new Slick.Event(),onMouseLeave:new Slick.Event(),onClick:new Slick.Event(),onDblClick:new Slick.Event(),onContextMenu:new Slick.Event(),onKeyDown:new Slick.Event(),onAddNewRow:new Slick.Event(),onValidationError:new Slick.Event(),onViewportChanged:new Slick.Event(),onColumnsReordered:new Slick.Event(),onColumnsResized:new Slick.Event(),onCellChange:new Slick.Event(),onBeforeEditCell:new Slick.Event(),onBeforeCellEditorDestroy:new Slick.Event(),onBeforeDestroy:new Slick.Event(),onActiveCellChanged:new Slick.Event(),onActiveCellPositionChanged:new Slick.Event(),onDragInit:new Slick.Event(),onDragStart:new Slick.Event(),onDrag:new Slick.Event(),onDragEnd:new Slick.Event(),onSelectedRowsChanged:new Slick.Event(),onCellCssStylesChanged:new Slick.Event(),registerPlugin:registerPlugin,unregisterPlugin:unregisterPlugin,getColumns:getColumns,setColumns:setColumns,getColumnIndex:getColumnIndex,updateColumnHeader:updateColumnHeader,setSortColumn:setSortColumn,setSortColumns:setSortColumns,getSortColumns:getSortColumns,autosizeColumns:autosizeColumns,getOptions:getOptions,setOptions:setOptions,getData:getData,getDataLength:getDataLength,getDataItem:getDataItem,setData:setData,getSelectionModel:getSelectionModel,setSelectionModel:setSelectionModel,getSelectedRows:getSelectedRows,setSelectedRows:setSelectedRows,getContainerNode:getContainerNode,render:render,invalidate:invalidate,invalidateRow:invalidateRow,invalidateRows:invalidateRows,invalidateAllRows:invalidateAllRows,updateCell:updateCell,updateRow:updateRow,getViewport:getVisibleRange,getRenderedRange:getRenderedRange,resizeCanvas:resizeCanvas,updateRowCount:updateRowCount,scrollRowIntoView:scrollRowIntoView,scrollRowToTop:scrollRowToTop,scrollCellIntoView:scrollCellIntoView,getCanvasNode:getCanvasNode,focus:setFocus,getCellFromPoint:getCellFromPoint,getCellFromEvent:getCellFromEvent,getActiveCell:getActiveCell,setActiveCell:setActiveCell,getActiveCellNode:getActiveCellNode,getActiveCellPosition:getActiveCellPosition,resetActiveCell:resetActiveCell,editActiveCell:makeActiveCellEditable,getCellEditor:getCellEditor,getCellNode:getCellNode,getCellNodeBox:getCellNodeBox,canCellBeSelected:canCellBeSelected,canCellBeActive:canCellBeActive,navigatePrev:navigatePrev,navigateNext:navigateNext,navigateUp:navigateUp,navigateDown:navigateDown,navigateLeft:navigateLeft,navigateRight:navigateRight,navigatePageUp:navigatePageUp,navigatePageDown:navigatePageDown,gotoCell:gotoCell,getTopPanel:getTopPanel,setTopPanelVisibility:setTopPanelVisibility,setHeaderRowVisibility:setHeaderRowVisibility,getHeaderRow:getHeaderRow,getHeaderRowColumn:getHeaderRowColumn,getGridPosition:getGridPosition,flashCell:flashCell,addCellCssStyles:addCellCssStyles,setCellCssStyles:setCellCssStyles,removeCellCssStyles:removeCellCssStyles,getCellCssStyles:getCellCssStyles,init:finishInitialization,destroy:destroy,getEditorLock:getEditorLock,getEditController:getEditController});init()}}(jQuery));(function(a){a.extend(true,window,{Slick:{Data:{DataView:c,Aggregators:{Avg:b,Min:e,Max:d,Sum:f}}}});function c(al){var aw=this;var s={groupItemMetadataProvider:null,inlineFilters:false};var ac="id";var af=[];var au=[];var ad={};var av=null;var E=null;var aO=null;var aH=false;var aF=true;var D;var aG;var ar={};var ao={};var F;var H=[];var o;var p;var G=[];var Z={getter:null,formatter:null,comparer:function(aR,aS){return aR.value-aS.value},predefinedValues:[],aggregators:[],aggregateEmpty:false,aggregateCollapsed:false,aggregateChildGroups:false,collapsed:false,displayTotalsRow:true,lazyTotalsCalculation:false};var aa=[];var ab=[];var aK=[];var Y=":|:";var an=0;var am=0;var aL=0;var aj=new Slick.Event();var ak=new Slick.Event();var ai=new Slick.Event();al=a.extend(true,{},s,al);function j(){aH=true}function u(){aH=false;aq()}function aD(aR){ar=aR}function az(aR){F=aR}function aP(aU){aU=aU||0;var aS;for(var aR=aU,aT=af.length;aR<aT;aR++){aS=af[aR][ac];if(aS===undefined){throw"Each data element must implement a unique 'id' property"}ad[aS]=aR}}function v(){var aS;for(var aR=0,aT=af.length;aR<aT;aR++){aS=af[aR][ac];if(aS===undefined||ad[aS]!==aR){throw"Each data element must implement a unique 'id' property"}}}function S(){return af}function aB(aR,aS){if(aS!==undefined){ac=aS}af=H=aR;ad={};aP();v();aq()}function aC(aR){if(aR.pageSize!=undefined){an=aR.pageSize;am=an?Math.min(am,Math.max(0,Math.ceil(aL/an)-1)):0}if(aR.pageNum!=undefined){am=Math.min(aR.pageNum,Math.max(0,Math.ceil(aL/an)-1))}ai.notify(U(),null,aw);aq()}function U(){var aR=an?Math.max(1,Math.ceil(aL/an)):1;return{pageSize:an,pageNum:am,totalRows:aL,totalPages:aR}}function aE(aS,aR){aF=aR;aG=aS;D=null;if(aR===false){af.reverse()}af.sort(aS);if(aR===false){af.reverse()}ad={};aP();aq()}function C(aS,aR){aF=aR;D=aS;aG=null;var aT=Object.prototype.toString;Object.prototype.toString=(typeof aS=="function")?aS:function(){return this[aS]};if(aR===false){af.reverse()}af.sort();Object.prototype.toString=aT;if(aR===false){af.reverse()}ad={};aP();aq()}function at(){if(aG){aE(aG,aF)}else{if(D){C(D,aF)}}}function ay(aR){E=aR;if(al.inlineFilters){o=q();p=r()}aq()}function L(){return aa}function aA(aS){if(!al.groupItemMetadataProvider){al.groupItemMetadataProvider=new Slick.Data.GroupItemMetadataProvider()}ab=[];aK=[];aS=aS||[];aa=(aS instanceof Array)?aS:[aS];for(var aT=0;aT<aa.length;aT++){var aR=aa[aT]=a.extend(true,{},Z,aa[aT]);aR.getterIsAFn=typeof aR.getter==="function";aR.compiledAccumulators=[];var aU=aR.aggregators.length;while(aU--){aR.compiledAccumulators[aU]=n(aR.aggregators[aU])}aK[aT]={}}aq()}function X(aT,aS,aR){if(aT==null){aA([]);return}aA({getter:aT,formatter:aS,comparer:aR})}function ax(aR,aS){if(!aa.length){throw new Error("At least one grouping must be specified before calling setAggregators().")}aa[0].aggregators=aR;aa[0].aggregateCollapsed=aS;aA(aa)}function Q(aR){return af[aR]}function N(aR){return ad[aR]}function w(){if(!av){av={};for(var aR=0,aS=au.length;aR<aS;aR++){av[au[aR][ac]]=aR}}}function V(aR){w();return av[aR]}function P(aR){return af[ad[aR]]}function ag(aS){var aV=[];w();for(var aR=0,aT=aS.length;aR<aT;aR++){var aU=av[aS[aR]];if(aU!=null){aV[aV.length]=aU}}return aV}function ah(aU){var aS=[];for(var aR=0,aT=aU.length;aR<aT;aR++){if(aU[aR]<au.length){aS[aS.length]=au[aU[aR]][ac]}}return aS}function aQ(aR,aS){if(ad[aR]===undefined||aR!==aS[ac]){throw"Invalid or non-matching id"}af[ad[aR]]=aS;if(!aO){aO={}}aO[aR]=true;aq()}function ae(aR,aS){af.splice(aR,0,aS);aP(aR);aq()}function h(aR){af.push(aR);aP(af.length-1);aq()}function t(aR){var aS=ad[aR];if(aS===undefined){throw"Invalid id"}delete ad[aR];af.splice(aS,1);aP(aS);aq()}function T(){return au.length}function O(aS){var aT=au[aS];if(aT&&aT.__group&&aT.totals&&!aT.totals.initialized){var aR=aa[aT.level];if(!aR.displayTotalsRow){k(aT.totals);aT.title=aR.formatter?aR.formatter(aT):aT.value}}else{if(aT&&aT.__groupTotals&&!aT.initialized){k(aT)}}return aT}function R(aR){var aS=au[aR];if(aS===undefined){return null}if(aS.__group){return al.groupItemMetadataProvider.getGroupRowMetadata(aS)}if(aS.__groupTotals){return al.groupItemMetadataProvider.getTotalsRowMetadata(aS)}return null}function y(aT,aR){if(aT==null){for(var aS=0;aS<aa.length;aS++){aK[aS]={};aa[aS].collapsed=aR}}else{aK[aT]={};aa[aT].collapsed=aR}aq()}function l(aR){y(aR,true)}function x(aR){y(aR,false)}function z(aT,aS,aR){aK[aT][aS]=aa[aT].collapsed^aR;aq()}function m(aT){var aS=Array.prototype.slice.call(arguments);var aR=aS[0];if(aS.length==1&&aR.indexOf(Y)!=-1){z(aR.split(Y).length-1,aR,true)}else{z(aS.length-1,aS.join(Y),true)}}function A(aT){var aS=Array.prototype.slice.call(arguments);var aR=aS[0];if(aS.length==1&&aR.indexOf(Y)!=-1){z(aR.split(Y).length-1,aR,false)}else{z(aS.length-1,aS.join(Y),false)}}function M(){return ab}function B(a0,aY){var aS;var a1;var aT=[];var aU={};var aZ;var aX=aY?aY.level+1:0;var aR=aa[aX];for(var aV=0,aW=aR.predefinedValues.length;aV<aW;aV++){a1=aR.predefinedValues[aV];aS=aU[a1];if(!aS){aS=new Slick.Group();aS.value=a1;aS.level=aX;aS.groupingKey=(aY?aY.groupingKey+Y:"")+a1;aT[aT.length]=aS;aU[a1]=aS}}for(var aV=0,aW=a0.length;aV<aW;aV++){aZ=a0[aV];a1=aR.getterIsAFn?aR.getter(aZ):aZ[aR.getter];aS=aU[a1];if(!aS){aS=new Slick.Group();aS.value=a1;aS.level=aX;aS.groupingKey=(aY?aY.groupingKey+Y:"")+a1;aT[aT.length]=aS;aU[a1]=aS}aS.rows[aS.count++]=aZ}if(aX<aa.length-1){for(var aV=0;aV<aT.length;aV++){aS=aT[aV];aS.groups=B(aS.rows,aS)}}aT.sort(aa[aX].comparer);return aT}function k(aX){var aT=aX.group;var aS=aa[aT.level];var aW=(aT.level==aa.length);var aR,aV=aS.aggregators.length;if(!aW&&aS.aggregateChildGroups){var aU=aT.groups.length;while(aU--){if(!aT.groups[aU].initialized){k(aT.groups[aU])}}}while(aV--){aR=aS.aggregators[aV];aR.init();if(!aW&&aS.aggregateChildGroups){aS.compiledAccumulators[aV].call(aR,aT.groups)}else{aS.compiledAccumulators[aV].call(aR,aT.rows)}aR.storeResult(aX)}aX.initialized=true}function g(aS){var aR=aa[aS.level];var aT=new Slick.GroupTotals();aT.group=aS;aS.totals=aT;if(!aR.lazyTotalsCalculation){k(aT)}}function i(aU,aW){aW=aW||0;var aS=aa[aW];var aT=aS.collapsed;var aX=aK[aW];var aV=aU.length,aR;while(aV--){aR=aU[aV];if(aR.collapsed&&!aS.aggregateCollapsed){continue}if(aR.groups){i(aR.groups,aW+1)}if(aS.aggregators.length&&(aS.aggregateEmpty||aR.rows.length||(aR.groups&&aR.groups.length))){g(aR)}aR.collapsed=aT^aX[aR.groupingKey];aR.title=aS.formatter?aS.formatter(aR):aR.value}}function I(aV,a0){a0=a0||0;var aS=aa[a0];var aU=[],a1,aT=0,aR;for(var aW=0,aZ=aV.length;aW<aZ;aW++){aR=aV[aW];aU[aT++]=aR;if(!aR.collapsed){a1=aR.groups?I(aR.groups,a0+1):aR.rows;for(var aX=0,aY=a1.length;aX<aY;aX++){aU[aT++]=a1[aX]}}if(aR.totals&&aS.displayTotalsRow&&(!aR.collapsed||aS.aggregateCollapsed)){aU[aT++]=aR.totals}}return aU}function K(aR){var aS=/^function[^(]*\(([^)]*)\)\s*{([\s\S]*)}$/;var aT=aR.toString().match(aS);return{params:aT[1].split(","),body:aT[2]}}function n(aS){var aR=K(aS.accumulate);var aT=new Function("_items","for (var "+aR.params[0]+", _i=0, _il=_items.length; _i<_il; _i++) {"+aR.params[0]+" = _items[_i]; "+aR.body+"}");aT.displayName=aT.name="compiledAccumulatorLoop";return aT}function q(){var aS=K(E);var aR=aS.body.replace(/return false\s*([;}]|$)/gi,"{ continue _coreloop; }$1").replace(/return true\s*([;}]|$)/gi,"{ _retval[_idx++] = $item$; continue _coreloop; }$1").replace(/return ([^;}]+?)\s*([;}]|$)/gi,"{ if ($1) { _retval[_idx++] = $item$; }; continue _coreloop; }$2");var aU=["var _retval = [], _idx = 0; ","var $item$, $args$ = _args; ","_coreloop: ","for (var _i = 0, _il = _items.length; _i < _il; _i++) { ","$item$ = _items[_i]; ","$filter$; ","} ","return _retval; "].join("");aU=aU.replace(/\$filter\$/gi,aR);aU=aU.replace(/\$item\$/gi,aS.params[0]);aU=aU.replace(/\$args\$/gi,aS.params[1]);var aT=new Function("_items,_args",aU);aT.displayName=aT.name="compiledFilter";return aT}function r(){var aS=K(E);var aR=aS.body.replace(/return false\s*([;}]|$)/gi,"{ continue _coreloop; }$1").replace(/return true\s*([;}]|$)/gi,"{ _cache[_i] = true;_retval[_idx++] = $item$; continue _coreloop; }$1").replace(/return ([^;}]+?)\s*([;}]|$)/gi,"{ if ((_cache[_i] = $1)) { _retval[_idx++] = $item$; }; continue _coreloop; }$2");var aU=["var _retval = [], _idx = 0; ","var $item$, $args$ = _args; ","_coreloop: ","for (var _i = 0, _il = _items.length; _i < _il; _i++) { ","$item$ = _items[_i]; ","if (_cache[_i]) { ","_retval[_idx++] = $item$; ","continue _coreloop; ","} ","$filter$; ","} ","return _retval; "].join("");aU=aU.replace(/\$filter\$/gi,aR);aU=aU.replace(/\$item\$/gi,aS.params[0]);aU=aU.replace(/\$args\$/gi,aS.params[1]);var aT=new Function("_items,_args,_cache",aU);aT.displayName=aT.name="compiledFilterWithCaching";return aT}function aM(aV,aR){var aW=[],aT=0;for(var aS=0,aU=aV.length;aS<aU;aS++){if(E(aV[aS],aR)){aW[aT++]=aV[aS]}}return aW}function aN(aX,aR,aS){var aY=[],aU=0,aW;for(var aT=0,aV=aX.length;aT<aV;aT++){aW=aX[aT];if(aS[aT]){aY[aU++]=aW}else{if(E(aW,aR)){aY[aU++]=aW;aS[aT]=true}}}return aY}function J(aT){if(E){var aR=al.inlineFilters?o:aM;var aS=al.inlineFilters?p:aN;if(ar.isFilterNarrowing){H=aR(H,F)}else{if(ar.isFilterExpanding){H=aS(aT,F,G)}else{if(!ar.isFilterUnchanged){H=aR(aT,F)}}}}else{H=an?aT:aT.concat()}var aU;if(an){if(H.length<am*an){am=Math.floor(H.length/an)}aU=H.slice(an*am,an*am+an)}else{aU=H}return{totalRows:H.length,rows:aU}}function W(aZ,aW){var aV,aX,aS,aR=[];var aT=0,a0=aW.length;if(ar&&ar.ignoreDiffsBefore){aT=Math.max(0,Math.min(aW.length,ar.ignoreDiffsBefore))}if(ar&&ar.ignoreDiffsAfter){a0=Math.min(aW.length,Math.max(0,ar.ignoreDiffsAfter))}for(var aU=aT,aY=aZ.length;aU<a0;aU++){if(aU>=aY){aR[aR.length]=aU}else{aV=aW[aU];aX=aZ[aU];if((aa.length&&(aS=(aV.__nonDataRow)||(aX.__nonDataRow))&&aV.__group!==aX.__group||aV.__group&&!aV.equals(aX))||(aS&&(aV.__groupTotals||aX.__groupTotals))||aV[ac]!=aX[ac]||(aO&&aO[aV[ac]])){aR[aR.length]=aU}}}return aR}function ap(aR){av=null;if(ar.isFilterNarrowing!=ao.isFilterNarrowing||ar.isFilterExpanding!=ao.isFilterExpanding){G=[]}var aT=J(aR);aL=aT.totalRows;var aU=aT.rows;ab=[];if(aa.length){ab=B(aU);if(ab.length){i(ab);aU=I(ab)}}var aS=W(au,aU);au=aU;return aS}function aq(){if(aH){return}var aR=au.length;var aT=aL;var aS=ap(af,E);if(an&&aL<am*an){am=Math.max(0,Math.ceil(aL/an)-1);aS=ap(af,E)}aO=null;ao=ar;ar={};if(aT!=aL){ai.notify(U(),null,aw)}if(aR!=au.length){aj.notify({previous:aR,current:au.length},null,aw)}if(aS.length>0){ak.notify({rows:aS},null,aw)}}function aJ(aR,aU,aV){var aX=this;var aS;var aW=aX.mapRowsToIds(aR.getSelectedRows());var aT=new Slick.Event();function aY(a0){if(aW.join(",")==a0.join(",")){return}aW=a0;aT.notify({grid:aR,ids:aW},new Slick.EventData(),aX)}function aZ(){if(aW.length>0){aS=true;var a0=aX.mapIdsToRows(aW);if(!aU){aY(aX.mapRowsToIds(a0))}aR.setSelectedRows(a0);aS=false}}aR.onSelectedRowsChanged.subscribe(function(a1,a0){if(aS){return}var a3=aX.mapRowsToIds(aR.getSelectedRows());if(!aV||!aR.getOptions().multiSelect){aY(a3)}else{var a2=a.grep(aW,function(a4){return aX.getRowById(a4)===undefined});aY(a2.concat(a3))}});this.onRowsChanged.subscribe(aZ);this.onRowCountChanged.subscribe(aZ);return aT}function aI(aR,aU){var aS;var aT;aV(aR.getCellCssStyles(aU));function aV(aX){aS={};for(var aZ in aX){var aY=au[aZ][ac];aS[aY]=aX[aZ]}}function aW(){if(aS){aT=true;w();var aY={};for(var aX in aS){var aZ=av[aX];if(aZ!=undefined){aY[aZ]=aS[aX]}}aR.setCellCssStyles(aU,aY);aT=false}}aR.onCellCssStylesChanged.subscribe(function(aY,aX){if(aT){return}if(aU!=aX.key){return}if(aX.hash){aV(aX.hash)}});this.onRowsChanged.subscribe(aW);this.onRowCountChanged.subscribe(aW)}a.extend(this,{beginUpdate:j,endUpdate:u,setPagingOptions:aC,getPagingInfo:U,getItems:S,setItems:aB,setFilter:ay,sort:aE,fastSort:C,reSort:at,setGrouping:aA,getGrouping:L,groupBy:X,setAggregators:ax,collapseAllGroups:l,expandAllGroups:x,collapseGroup:m,expandGroup:A,getGroups:M,getIdxById:N,getRowById:V,getItemById:P,getItemByIdx:Q,mapRowsToIds:ah,mapIdsToRows:ag,setRefreshHints:aD,setFilterArgs:az,refresh:aq,updateItem:aQ,insertItem:ae,addItem:h,deleteItem:t,syncGridSelection:aJ,syncGridCellCssStyles:aI,getLength:T,getItem:O,getItemMetadata:R,onRowCountChanged:aj,onRowsChanged:ak,onPagingInfoChanged:ai})}function b(g){this.field_=g;this.init=function(){this.count_=0;this.nonNullCount_=0;this.sum_=0};this.accumulate=function(h){var i=h[this.field_];this.count_++;if(i!=null&&i!==""&&i!==NaN){this.nonNullCount_++;this.sum_+=parseFloat(i)}};this.storeResult=function(h){if(!h.avg){h.avg={}}if(this.nonNullCount_!=0){h.avg[this.field_]=this.sum_/this.nonNullCount_}}}function e(g){this.field_=g;this.init=function(){this.min_=null};this.accumulate=function(h){var i=h[this.field_];if(i!=null&&i!==""&&i!==NaN){if(this.min_==null||i<this.min_){this.min_=i}}};this.storeResult=function(h){if(!h.min){h.min={}}h.min[this.field_]=this.min_}}function d(g){this.field_=g;this.init=function(){this.max_=null};this.accumulate=function(h){var i=h[this.field_];if(i!=null&&i!==""&&i!==NaN){if(this.max_==null||i>this.max_){this.max_=i}}};this.storeResult=function(h){if(!h.max){h.max={}}h.max[this.field_]=this.max_}}function f(g){this.field_=g;this.init=function(){this.sum_=null};this.accumulate=function(h){var i=h[this.field_];if(i!=null&&i!==""&&i!==NaN){this.sum_+=parseFloat(i)}};this.storeResult=function(h){if(!h.sum){h.sum={}}h.sum[this.field_]=this.sum_}}})(jQuery);(function(a){a.fn.extend({grid:function(o){var l={cid:null,data:null,columns:[],grid:null,sortCol:null,sortDir:1,searchCriteria:[],searchCriteriaContainer:null},j={autoEdit:false,topPanelHeight:25,rowHeight:48},c=a(this),b=a(".ceebSlickGrid",c),i="#"+b.prop("id"),f=[],m,e,h,p;a.extend(l,o);a.extend(j,l.grid);if(i&&l.data&&l.cid){function k(t,r){if(r.sc.length===0){return true}if(t.isFooter){return true}else{for(var s in r.sc){if(l.searchCriteria.length>0){if(!a.isArray(r.sc)){throw"Given search criteria should be in array format"}if(r.sc[s].byField){if(!t.isFooter){var u=r.sc[s].srchStr.toLowerCase().replace(/_/g,"");var v=t[r.sc[s].byField]?t[r.sc[s].byField].toLowerCase():"";if(u!=""&&v.indexOf(u)==-1){return false}}}}}}return true}function d(r,s){var t=r[l.sortCol],u=r.isFooter,v=s[l.sortCol],w=s.isFooter;if(u&&w){return(u.id>w.id?1:-1)}else{if(u){return 1}else{if(w){return -1}else{return(t==v?0:(t>v?1:-1))}}}}if(l.columns&&l.columns.length>0&&l.columns[0].isRadioButton){m=new Slick.RadiobuttonSelectColumn({cssClass:"slick-cell-radiobuttonsel",cid:l.cid});l.columns[0]=m.getColumnDefinition({$grid:a(i)})}e=new Slick.Data.DataView();function n(r){return function(t){var s=this.getItem(t);if(!s.isFooter){return{cssClasses:"sg-data",columns:{duration:{colspan:3}}}}else{return{cssClasses:"sg-ftr",columns:{1:{colspan:"*"}}}}}}e.getItemMetadata=n(e.getItemMetadata);h=new Slick.Grid(i,e,l.columns,j);h.setSelectionModel(new Slick.RowCellSelectionModel({selectActiveRow:false}));h.registerPlugin(m);e.onRowCountChanged.subscribe(function(s,r){h.updateRowCount();h.render()});e.onRowsChanged.subscribe(function(s,r){h.invalidateRows(r.rows);h.render()});h.onSort.subscribe(function(s,r){l.sortDir=r.sortAsc?1:-1;l.sortCol=(r.sortCol.sortField)?r.sortCol.sortField:r.sortCol.field;e.sort(d,r.sortAsc)});function g(r){r.stopPropagation();r.preventDefault();Slick.GlobalEditorLock.cancelCurrentEdit();l.searchCriteria=[];if(r.which==27){this.value=""}a(".jqSC",l.searchCriteriaContainer).each(function(){var w=this.getAttribute("type"),t=this.getAttribute("srchField"),x;if(t){if(w&&w==="radio"){if(this.checked){x=this.value}}else{if(this.value!=""){var v=this.getAttribute("mappingField");x=this.value;if(v){var s=ca4shared[v];for(var u in s){if(s[u][0].indexOf(x)>=0){x=s[u][1];break}}}}}if(x){l.searchCriteria.push({srchStr:x,byField:t})}}});q()}function q(){if(l.searchCriteria.length>0){e.setFilterArgs({sc:l.searchCriteria});e.refresh()}if(l.sortCol&&l.sortDir){h.setSortColumn(l.sortCol,l.sortDir);e.sort(d,l.sortDir)}}e.beginUpdate();e.setItems(l.data);e.setFilterArgs({sc:l.searchCriteria});e.setFilter(k);e.endUpdate();g(document.createEvent("Event"));e.syncGridSelection(h,true);b.unbind(".grid").bind({"filter.grid":function(r){if(p){clearTimeout(p)}p=setTimeout(function(){delete window["selectedCeeb_"+l.cid];h.resetActiveCell();a('input:radio[name="cbOpt_'+l.cid+'"]').prop("checked",false);g(r)},250)},"sort.grid":function(s,r){l.sortCol=r;h.setSortColumn("N",true);e.reSort()},"radiofocus.grid":function(r){c.find(".slick-row input").bind({"focus.grid":function(s){s.stopPropagation();a(".slick-row input").unbind("focus");a(this).trigger("click")}})}}).trigger("radiofocus");c.find(".slick-viewport").attr("tabindex","-1")}}})})(jQuery);(function(a){function b(i,p,c){var g;var d;var e;var f="<span>&nbsp;&nbsp;&nbsp;</span>";function q(){i.onPagingInfoChanged.subscribe(function(u,v){t(v)});h();t(i.getPagingInfo())}function j(){var u=!Slick.GlobalEditorLock.commitCurrentEdit();var w=i.getPagingInfo();var v=w.totalPages-1;return{canGotoFirst:!u&&w.pageSize!=0&&w.pageNum>0,canGotoLast:!u&&w.pageSize!=0&&w.pageNum!=v,canGotoPrev:!u&&w.pageSize!=0&&w.pageNum>0,canGotoNext:!u&&w.pageSize!=0&&w.pageNum<v,pagingInfo:w}}function s(u){i.setRefreshHints({isFilterUnchanged:true});i.setPagingOptions({pageSize:u});r()}function r(){if(e!=null){e.empty();var w=i.getPagingInfo().totalPages;for(var v=0;v<w;v++){a(f).appendTo(e);var u=a("<a href='#'>"+(v+1)+"</a>").appendTo(e);u.click(n)}}}function n(u){var v=parseInt(a(u.target).text());if(!isNaN(v)&&v>0){i.setPagingOptions({pageNum:(v-1)})}}function k(){if(j().canGotoFirst){i.setPagingOptions({pageNum:0})}}function l(){var u=j();if(u.canGotoLast){i.setPagingOptions({pageNum:u.pagingInfo.totalPages-1})}}function o(){var u=j();if(u.canGotoPrev){i.setPagingOptions({pageNum:u.pagingInfo.pageNum-1})}}function m(){var u=j();if(u.canGotoNext){i.setPagingOptions({pageNum:u.pagingInfo.pageNum+1})}}function h(){c.empty();d=a("<div id='slickNav' style='width:100%; word-wrap:break-word;' />").appendTo(c);var u=a("<a href='#'>&lt;&lt;</a>").appendTo(d);u.click(k);a(f).appendTo(d);var x=a("<a href='#'>&lt;</a>").appendTo(d);x.click(o);e=a("<span></span>").appendTo(d);a(f).appendTo(d);var w=a("<a href='#'>&gt;</a>").appendTo(d);w.click(m);a(f).appendTo(d);var v=a("<a href='#'>&gt;&gt;</a>").appendTo(d);v.click(l);var y=a("<select id='slickItemsPerPage'><option value='10'>10</option><option value='25'>25</option><option value='50'>50</option><option value='100'>100</option><option value='0'>All</option></select>").appendTo(c);a("<span>&nbsp;Items per page</span>").appendTo(c);y.change(function(z){var A=parseInt(a(z.target).attr("value"));if(!isNaN(A)){if(A>=0){s(A)}else{var B=p.getViewport();s(B.bottom-B.top)}if(A>0){d.show()}else{d.hide()}}});setTimeout(function(){a("#slickNav span > a").eq(0).addClass("active")},0)}function t(u){var v=j();a("#slickNav span > a").removeClass("active").eq(v.pagingInfo.pageNum).addClass("active")}q()}a.extend(true,window,{Slick:{Controls:{Ca4Pager:b}}})})(jQuery);