﻿(function($){$.fn.pager=function(options){var opts=$.extend({},$.fn.pager.defaults,options);if(options.pagecount>1){return this.each(function(){$(this).empty().append(renderpager(parseInt(options.pagenumber),parseInt(options.pagecount),options.buttonClickCallback,parseInt(options.limit)));});}};function renderpager(pagenumber,pagecount,buttonClickCallback,limit){var $pager=$('<ul class="pages"></ul>');$pager.append(renderButton('Primeiro',pagenumber,pagecount,buttonClickCallback,1)).append(renderButton('Anterior',pagenumber,pagecount,buttonClickCallback,pagenumber-1));var startPoint=1;var endPoint=limit;var mediunPoint=Math.floor(endPoint/2);if(pagenumber>mediunPoint){startPoint=pagenumber-mediunPoint;endPoint=pagenumber+mediunPoint;}
if(endPoint>=pagecount){startPoint=pagecount-limit+1;endPoint=pagecount;}
if(startPoint<1){startPoint=1;}
for(var page=startPoint;page<=endPoint;page++){var currentButton=$('<li class="page-number">'+(page)+'</li>');page==pagenumber?currentButton.addClass('pgCurrent'):currentButton.click(function(){buttonClickCallback(this.firstChild.data);});currentButton.appendTo($pager);}
$pager.append(renderButton('Próximo',pagenumber,pagecount,buttonClickCallback,pagenumber+1)).append(renderButton('Último',pagenumber,pagecount,buttonClickCallback,pagecount));return $pager;}
function renderButton(buttonLabel,pagenumber,pagecount,buttonClickCallback,destPage){var $Button=$('<li class="pgNext">'+buttonLabel+'</li>');if(destPage==pagenumber||destPage<1||destPage>pagecount){$Button.addClass('pgEmpty');}else{$Button.click(function(){buttonClickCallback(destPage);});}
return $Button;}})(jQuery);
