﻿(function($) { $.extend({ tablesorterPager: new function() { function updatePageDisplay(c) { var s = $(c.cssPageDisplay, c.container).val((c.page + 1) + c.seperator + c.totalPages) } function setPageSize(a, b) { var c = a.config; c.size = b; c.totalPages = Math.ceil(c.totalRows / c.size); c.pagerPositionSet = false; moveToPage(a); fixPosition(a) } function fixPosition(a) { var c = a.config; if (!c.pagerPositionSet && c.positionFixed) { var c = a.config, o = $(a); if (o.offset) { c.container.css({ top: o.offset().top + o.height() + 'px', position: 'absolute' }) } c.pagerPositionSet = true } } function moveToFirstPage(a) { var c = a.config; c.page = 0; moveToPage(a) } function moveToLastPage(a) { var c = a.config; c.page = (c.totalPages - 1); moveToPage(a) } function moveToNextPage(a) { var c = a.config; c.page++; if (c.page >= (c.totalPages - 1)) { c.page = (c.totalPages - 1) } moveToPage(a) } function moveToPrevPage(a) { var c = a.config; c.page--; if (c.page <= 0) { c.page = 0 } moveToPage(a) } function moveToPage(b) { var c = b.config; if (c.page < 0 || c.page > (c.totalPages - 1)) { c.page = 0 } renderTable(b, c.rowsCopy); j$('table.tablesorter tbody tr').each(function() { var a = j$(this).attr('name'); if (a != null) { j$(this).unbind('click').click(function() { location.href = a + 'order=' + j$('#SortedColumn').attr('value') + '&sortorder=' + j$('#SortDirection').attr('value') }) } }) } function renderTable(a, b) { var c = a.config; var l = b.length; var s = (c.page * c.size); var e = (s + c.size); if (e > b.length) { e = b.length } var d = $(a.tBodies[0]); $.tablesorter.clearTableBody(a); for (var i = s; i < e; i++) { var o = b[i]; var l = o.length; for (var j = 0; j < l; j++) { d[0].appendChild(o[j]) } } fixPosition(a, d); $(a).trigger("applyWidgets"); if (c.page >= c.totalPages) { moveToLastPage(a) } updatePageDisplay(c); j$(".tablesorter tr").hover(function() { if (j$(this).is(".odd")) { j$(this).removeClass("odd"); j$(this).addClass("oddold") } j$(this).find("td").addClass("over") }, function() { if (j$(this).is(".oddold")) { j$(this).addClass("odd"); j$(this).removeClass("oddold") } j$(this).find("td").removeClass("over") }) } this.appender = function(a, b) { var c = a.config; c.rowsCopy = b; c.totalRows = b.length; c.totalPages = Math.ceil(c.totalRows / c.size); renderTable(a, b) }; this.defaults = { size: 6, offset: 0, page: 0, totalRows: 0, totalPages: 0, container: null, cssNext: '.next', cssPrev: '.prev', cssFirst: '.first', cssLast: '.last', cssPageDisplay: '.pagedisplay', cssPageSize: '.pagesize', seperator: "/", positionFixed: true, appender: this.appender }; this.construct = function(b) { return this.each(function() { config = $.extend(this.config, $.tablesorterPager.defaults, b); var a = this, pager = config.container; $(this).trigger("appendCache"); config.size = parseInt($(".pagesize", pager).val()); $(config.cssFirst, pager).click(function() { moveToFirstPage(a); return false }); $(config.cssNext, pager).click(function() { moveToNextPage(a); return false }); $(config.cssPrev, pager).click(function() { moveToPrevPage(a); return false }); $(config.cssLast, pager).click(function() { moveToLastPage(a); return false }); $(config.cssPageSize, pager).change(function() { setPageSize(a, parseInt($(this).val())); return false }) }) } } }); $.fn.extend({ tablesorterPager: $.tablesorterPager.construct }) })(jQuery);