(function($){$.extend({tablesorterPager:new function(){function updatePageDisplay(c){var s=$(c.cssPageDisplay,c.container).val((c.page+1)+c.seperator+c.totalPages);}
function setPageSize(table,size){var c=table.config;c.size=size;c.totalPages=Math.ceil(c.totalRows/c.size);moveToPage(table);fixPosition(table);}
function fixPosition(table){var c=table.config,o=$(table);if(o.offset){c.container.css({top:o.offset().top+o.height()+'px',});}
c.pagerPositionSet=true;}
function moveToFirstPage(table){var c=table.config;c.page=0;moveToPage(table);}
function moveToLastPage(table){var c=table.config;c.page=(c.totalPages-1);moveToPage(table);}
function moveToNextPage(table){var c=table.config;c.page++;if(c.page>=(c.totalPages-1)){c.page=(c.totalPages-1);}
moveToPage(table);}
function moveToPrevPage(table){var c=table.config;c.page--;if(c.page<=0){c.page=0;}
moveToPage(table);}
function moveToPage(table){var c=table.config;if(c.page<0||c.page>(c.totalPages-1)){c.page=0;}
renderTable(table,c.rowsCopy);}
function renderTable(table,rows){var c=table.config;var l=rows.length;var s=(c.page*c.size);var e=(s+c.size);if(e>rows.length){e=rows.length;}
var tableBody=$('tbody:first',table).empty();for(var i=s;i<e;i++){tableBody.append(rows[i]);}
if(!c.pagerPositionSet&&c.positionFixed)fixPosition(table,tableBody);updatePageDisplay(c);}
this.appender=function(table,rows){var c=table.config;c.rowsCopy=rows;c.totalRows=rows.length;c.totalPages=Math.ceil(c.totalRows/c.size);renderTable(table,rows);};this.defaults={size:20,offset:0,page:0,totalRows:0,totalPages:0,container:null,cssNext:'.next',cssPrev:'.prev',cssFirst:'.first',cssLast:'.last',cssPageDisplay:'.pagedisplay',cssPageSize:'.pagesize',seperator:" of ",positionFixed:true,appender:this.appender};this.construct=function(settings){return this.each(function(){config=$.extend(this.config,$.tablesorterPager.defaults,settings);var table=this,pager=config.container;$(this).trigger("appendCache");config.size=parseInt($(".pagesize",pager).val());$(config.cssFirst,pager).click(function(){moveToFirstPage(table);return false;});$(config.cssNext,pager).click(function(){moveToNextPage(table);return false;});$(config.cssPrev,pager).click(function(){moveToPrevPage(table);return false;});$(config.cssLast,pager).click(function(){moveToLastPage(table);return false;});$(config.cssPageSize,pager).change(function(){setPageSize(table,parseInt($(this).val()));return false;});});};}});$.fn.extend({tablesorterPager:$.tablesorterPager.construct});})(jQuery);
