/*! Widget: Pager - updated 5/17/2015 (v2.22.0) */
/* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
/*jshint browser:true, jquery:true, unused:false */
!function(e){"use strict";var a,t=e.tablesorter;t.addWidget({id:"pager",priority:55,options:{pager_output:"{startRow} to {endRow} of {totalRows} rows",pager_updateArrows:!0,pager_startPage:0,pager_pageReset:0,pager_size:10,pager_maxOptionSize:20,pager_savePages:!0,pager_storageKey:"tablesorter-pager",pager_fixedHeight:!1,pager_countChildRows:!1,pager_removeRows:!1,pager_ajaxUrl:null,pager_customAjaxUrl:function(e,a){return a},pager_ajaxObject:{dataType:"json"},pager_processAjaxOnInit:!0,pager_ajaxProcessing:function(){return[0,[],null]},pager_css:{container:"tablesorter-pager",errorRow:"tablesorter-errorRow",disabled:"disabled"},pager_selectors:{container:".pager",first:".first",prev:".prev",next:".next",last:".last",gotoPage:".gotoPage",pageDisplay:".pagedisplay",pageSize:".pagesize"}},init:function(e){a.init(e)},format:function(e,t){return t.pager&&t.pager.initialized?void a.moveToPage(e,t.pager,!1):a.initComplete(e,t)},remove:function(e,t,i,r){a.destroyPager(e,t,r)}}),a=t.pager={init:function(i){if(!i.hasInitialized||!i.config.pager.initialized){var r,s=i.config,o=s.widgetOptions,g=o.pager_selectors,n=s.pager=e.extend({totalPages:0,filteredRows:0,filteredPages:0,currentFilters:[],page:o.pager_startPage,startRow:0,endRow:0,ajaxCounter:0,$size:null,last:{},setSize:o.pager_size,setPage:o.pager_startPage,events:"filterInit filterStart filterEnd sortEnd disable enable destroy updateComplete pageSize pageSet pageAndSize pagerUpdate refreshComplete "},s.pager);n.isInitializing||(n.isInitializing=!0,s.debug&&t.log("Pager: Initializing"),n.size=e.data(i,"pagerLastSize")||o.pager_size,n.$container=e(g.container).addClass(o.pager_css.container).show(),n.$goto=n.$container.find(g.gotoPage),n.$size=n.$container.find(g.pageSize),n.totalRows=s.$tbodies.eq(0).children("tr").not(o.pager_countChildRows?"":"."+s.cssChildRow).length,n.oldAjaxSuccess=n.oldAjaxSuccess||o.pager_ajaxObject.success,s.appender=a.appender,n.initializing=!0,o.pager_savePages&&t.storage&&(r=t.storage(i,o.pager_storageKey)||{},n.page=(isNaN(r.page)?n.page:r.page)||n.setPage||0,n.size=(isNaN(r.size)?n.size:r.size)||n.setSize||10,e.data(i,"pagerLastSize",n.size)),n.regexRows=new RegExp("("+(o.filter_filteredRow||"filtered")+"|"+s.selectorRemove.slice(1)+"|"+s.cssChildRow+")"),n.initialized=!1,s.$table.trigger("pagerBeforeInitialized",s),a.enablePager(i,s,!1),n.ajaxObject=o.pager_ajaxObject,n.ajaxObject.url=o.pager_ajaxUrl,"string"==typeof o.pager_ajaxUrl?(n.ajax=!0,o.filter_serversideFiltering=!0,s.serverSideSorting=!0,a.moveToPage(i,n)):(n.ajax=!1,s.$table.trigger("appendCache",[{},!0])))}},initComplete:function(e,i){var r=i.pager;a.bindEvents(e,i),a.setPageSize(e,0,i),r.ajax||a.hideRowsSetup(e,i),r.initialized=!0,r.initializing=!1,r.isInitializing=!1,i.debug&&t.log("Pager: Triggering pagerInitialized"),i.$table.trigger("pagerInitialized",i),i.widgetOptions.filter_initialized&&t.hasWidget(e,"filter")||a.updatePageDisplay(e,i,!r.ajax)},bindEvents:function(i,r){var s,o,g=r.pager,n=r.widgetOptions,l=n.pager_selectors;r.$table.off(e.trim(g.events.split(" ").join(".pager "))).on("filterInit.pager filterStart.pager",function(a,t){g.currentFilters=e.isArray(t)?t:r.$table.data("lastSearch"),"filterStart"===a.type&&n.pager_pageReset!==!1&&(r.lastCombinedFilter||"")!==(g.currentFilters||[]).join("")&&(g.page=n.pager_pageReset)}).on("filterEnd.pager sortEnd.pager",function(){g.currentFilters=r.$table.data("lastSearch"),(g.initialized||g.initializing)&&(r.delayInit&&r.rowsCopy&&0===r.rowsCopy.length&&a.updateCache(i),a.updatePageDisplay(i,r,!1),r.$table.trigger("applyWidgets"))}).on("disable.pager",function(e){e.stopPropagation(),a.showAllRows(i,r)}).on("enable.pager",function(e){e.stopPropagation(),a.enablePager(i,r,!0)}).on("destroy.pager",function(e,t){e.stopPropagation(),a.destroyPager(i,r,t)}).on("updateComplete.pager",function(e,t,i){if(e.stopPropagation(),t&&!i&&!g.ajax){var s=r.$tbodies.eq(0).children("tr").not(r.selectorRemove);g.totalRows=s.length-(n.pager_countChildRows?0:s.filter("."+r.cssChildRow).length),g.totalPages=Math.ceil(g.totalRows/g.size),s.length&&r.rowsCopy&&0===r.rowsCopy.length&&a.updateCache(t),g.page>=g.totalPages&&a.moveToLastPage(t,g),a.hideRows(t,r),a.changeHeight(t,r),a.updatePageDisplay(t,r,!1),r.$table.trigger("applyWidgets"),a.updatePageDisplay(t,r)}}).on("pageSize.pager refreshComplete.pager",function(e,t){e.stopPropagation(),a.setPageSize(i,parseInt(t,10)||g.setSize||10,r),a.hideRows(i,r),a.updatePageDisplay(i,r,!1)}).on("pageSet.pager pagerUpdate.pager",function(e,t){e.stopPropagation(),"pagerUpdate"===e.type&&(t="undefined"==typeof t?g.page+1:t,g.last.page=!0),g.page=(parseInt(t,10)||1)-1,a.moveToPage(i,g,!0),a.updatePageDisplay(i,r,!1)}).on("pageAndSize.pager",function(e,t,s){e.stopPropagation(),g.page=(parseInt(t,10)||1)-1,a.setPageSize(i,parseInt(s,10)||g.setSize||10,r),a.moveToPage(i,g,!0),a.hideRows(i,r),a.updatePageDisplay(i,r,!1)}),s=[l.first,l.prev,l.next,l.last],o=["moveToFirstPage","moveToPrevPage","moveToNextPage","moveToLastPage"],r.debug&&!g.$container.length&&t.log("Pager: >> Container not found"),g.$container.find(s.join(",")).attr("tabindex",0).off("click.pager").on("click.pager",function(t){t.stopPropagation();var r,l=e(this),p=s.length;if(!l.hasClass(n.pager_css.disabled))for(r=0;p>r;r++)if(l.is(s[r])){a[o[r]](i,g);break}}),g.$goto.length?g.$goto.off("change.pager").on("change.pager",function(){g.page=e(this).val()-1,a.moveToPage(i,g,!0),a.updatePageDisplay(i,r,!1)}):r.debug&&t.log("Pager: >> Goto selector not found"),g.$size.length?(g.$size.find("option").removeAttr("selected"),g.$size.off("change.pager").on("change.pager",function(){return g.$size.val(e(this).val()),e(this).hasClass(n.pager_css.disabled)||(a.setPageSize(i,parseInt(e(this).val(),10),r),a.changeHeight(i,r)),!1})):r.debug&&t.log("Pager: >> Size selector not found")},pagerArrows:function(e,a){var t=e.pager,i=!!a,r=i||0===t.page,s=Math.min(t.totalPages,t.filteredPages),o=i||t.page===s-1||0===s,g=e.widgetOptions,n=g.pager_selectors;g.pager_updateArrows&&(t.$container.find(n.first+","+n.prev).toggleClass(g.pager_css.disabled,r).attr("aria-disabled",r),t.$container.find(n.next+","+n.last).toggleClass(g.pager_css.disabled,o).attr("aria-disabled",o))},calcFilters:function(a,t){var i,r,s,o=t.widgetOptions,g=t.pager,n=t.$table.hasClass("hasFilters");if(n&&!o.pager_ajaxUrl)if(e.isEmptyObject(t.cache))g.filteredRows=g.totalRows=t.$tbodies.eq(0).children("tr").not(o.pager_countChildRows?"":"."+t.cssChildRow).length;else for(g.filteredRows=0,i=t.cache[0].normalized,s=i.length,r=0;s>r;r++)g.filteredRows+=g.regexRows.test(i[r][t.columns].$row[0].className)?0:1;else n||(g.filteredRows=g.totalRows)},updatePageDisplay:function(i,r,s){if(!r.pager.initializing){var o,g,n,l,p,d,c=r.widgetOptions,f=r.pager,h=f.size||f.setSize||10;if(c.pager_countChildRows&&g.push(r.cssChildRow),f.$size.add(f.$goto).removeClass(c.pager_css.disabled).removeAttr("disabled").attr("aria-disabled","false"),f.totalPages=Math.ceil(f.totalRows/h),r.totalRows=f.totalRows,a.calcFilters(i,r),r.filteredRows=f.filteredRows,f.filteredPages=Math.ceil(f.filteredRows/h)||0,Math.min(f.totalPages,f.filteredPages)>=0){if(g=f.size*f.page>f.filteredRows&&s,f.page=g?c.pager_pageReset||0:f.page,f.startRow=g?f.size*f.page+1:0===f.filteredRows?0:f.size*f.page+1,f.endRow=Math.min(f.filteredRows,f.totalRows,f.size*(f.page+1)),n=f.$container.find(c.pager_selectors.pageDisplay),o=(f.ajaxData&&f.ajaxData.output?f.ajaxData.output||c.pager_output:c.pager_output).replace(/\{page([\-+]\d+)?\}/gi,function(e,a){return f.totalPages?f.page+(a?parseInt(a,10):1):0}).replace(/\{\w+(\s*:\s*\w+)?\}/gi,function(e){var a,t,i=e.replace(/[{}\s]/g,""),r=i.split(":"),s=f.ajaxData,o=/(rows?|pages?)$/i.test(i)?0:"";return/(startRow|page)/.test(r[0])&&"input"===r[1]?(a=(""+("page"===r[0]?f.totalPages:f.totalRows)).length,t="page"===r[0]?f.page+1:f.startRow,''):r.length>1&&s&&s[r[0]]?s[r[0]][r[1]]:f[i]||(s?s[i]:o)||o}),f.$goto.length){for(g="",l=a.buildPageSelect(f,r),d=l.length,p=0;d>p;p++)g+='";f.$goto.html(g).val(f.page+1)}n.length&&(n["INPUT"===n[0].nodeName?"val":"html"](o),n.find(".ts-startRow, .ts-page").off("change.pager").on("change.pager",function(){var a=e(this).val(),t=e(this).hasClass("ts-startRow")?Math.floor(a/f.size)+1:a;r.$table.trigger("pageSet.pager",[t])}))}a.pagerArrows(r),a.fixHeight(i,r),f.initialized&&s!==!1&&(r.debug&&t.log("Pager: Triggering pagerComplete"),r.$table.trigger("pagerComplete",r),c.pager_savePages&&t.storage&&t.storage(i,c.pager_storageKey,{page:f.page,size:f.size}))}},buildPageSelect:function(a,t){var i,r,s,o,g,n,l=t.widgetOptions,p=Math.min(a.totalPages,a.filteredPages)||1,d=5*Math.ceil(p/l.pager_maxOptionSize/5),c=p>l.pager_maxOptionSize,f=a.page+1,h=d,u=p-d,w=[1],z=c?d:1;for(i=z;p>=i;)w.push(i),i+=c?d:1;if(w.push(p),c){for(s=[],r=Math.max(Math.floor(l.pager_maxOptionSize/d)-1,5),h=f-r,1>h&&(h=1),u=f+r,u>p&&(u=p),i=h;u>=i;i++)s.push(i);w=e.grep(w,function(a,t){return e.inArray(a,w)===t}),g=w.length,n=s.length,g-n>d/2&&g+n>l.pager_maxOptionSize&&(o=Math.floor(g/2)-Math.floor(n/2),Array.prototype.splice.apply(w,[o,n])),w=w.concat(s)}return w=e.grep(w,function(a,t){return e.inArray(a,w)===t}).sort(function(e,a){return e-a})},fixHeight:function(a,t){var i,r,s=t.pager,o=t.widgetOptions,g=t.$tbodies.eq(0);g.find("tr.pagerSavedHeightSpacer").remove(),o.pager_fixedHeight&&!s.isDisabled&&(r=e.data(a,"pagerSavedHeight"),r&&(i=r-g.height(),i>5&&e.data(a,"pagerLastSize")===s.size&&g.children("tr:visible").length