(function(a){a.PaginationCalculator=function(b,c){this.maxentries=b;this.opts=c};a.extend(a.PaginationCalculator.prototype,{numPages:function(){return Math.ceil(this.maxentries/this.opts.items_per_page)},getInterval:function(f){var d=Math.ceil(this.opts.num_display_entries/2);var e=this.numPages();var c=e-this.opts.num_display_entries;var g=f>d?Math.max(Math.min(f-d,c),0):0;var b=f>d?Math.min(f+d,e):Math.min(this.opts.num_display_entries,e);return{start:g,end:b}}});a.PaginationRenderers={};a.PaginationRenderers.defaultRenderer=function(b,c){this.maxentries=b;this.opts=c;this.pc=new a.PaginationCalculator(b,c)};a.extend(a.PaginationRenderers.defaultRenderer.prototype,{createLink:function(b,e,d){var f,c=this.pc.numPages();b=b<0?0:(b<c?b:c-1);d=a.extend({text:b+1,classes:""},d||{});if(b==e){f=a("<span class='current'>"+d.text+"</span>")}else{f=a("<a>"+d.text+"</a>").attr("href",this.opts.link_to.replace(/__id__/,b))}if(d.classes){f.addClass(d.classes)}f.data("page_id",b);return f},appendRange:function(c,e,f,b){var d;for(d=f;d<b;d++){this.createLink(d,e).appendTo(c)}},getLinks:function(h,e){var f,b,c=this.pc.getInterval(h),g=this.pc.numPages(),d=a("<div class='pagination'></div>");if(this.opts.prev_text&&(h>0||this.opts.prev_show_always)){d.append(this.createLink(h-1,h,{text:this.opts.prev_text,classes:"prev"}))}if(c.start>0&&this.opts.num_edge_entries>0){b=Math.min(this.opts.num_edge_entries,c.start);this.appendRange(d,h,0,b);if(this.opts.num_edge_entries<c.start&&this.opts.ellipse_text){jQuery("<span>"+this.opts.ellipse_text+"</span>").appendTo(d)}}this.appendRange(d,h,c.start,c.end);if(c.end<g&&this.opts.num_edge_entries>0){if(g-this.opts.num_edge_entries>c.end&&this.opts.ellipse_text){jQuery("<span>"+this.opts.ellipse_text+"</span>").appendTo(d)}f=Math.max(g-this.opts.num_edge_entries,c.end);this.appendRange(d,h,f,g)}if(this.opts.next_text&&(h<g-1||this.opts.next_show_always)){d.append(this.createLink(h+1,h,{text:this.opts.next_text,classes:"next"}))}a("a",d).click(e);return d}});a.fn.pagination=function(b,e){e=jQuery.extend({items_per_page:10,num_display_entries:10,current_page:0,num_edge_entries:0,link_to:"#",prev_text:"Prev",next_text:"Next",ellipse_text:"...",prev_show_always:true,next_show_always:true,renderer:"defaultRenderer",callback:function(){return false}},e||{});var g=this,f,d,h;function c(i){var j,k=a(i.target).data("page_id");g.data("current_page",k);j=f.getLinks(k,c);g.empty();j.appendTo(g);var l=e.callback(k,g);if(!l){if(i.stopPropagation){i.stopPropagation()}else{i.cancelBubble=true}}return l}h=e.current_page;g.data("current_page",h);b=(!b||b<0)?1:b;e.items_per_page=(!e.items_per_page||e.items_per_page<0)?1:e.items_per_page;if(!a.PaginationRenderers[e.renderer]){throw new ReferenceError("Pagination renderer '"+e.renderer+"' was not found in jQuery.PaginationRenderers object.")}f=new a.PaginationRenderers[e.renderer](b,e);g.each(function(){this.selectPage=function(i){c(i)};this.prevPage=function(){var i=g.data("current_page");if(i>0){c(i-1);return true}else{return false}};this.nextPage=function(){var i=g.data("current_page");if(i<numPages()-1){c(i+1);return true}else{return false}}});d=f.getLinks(h,c);g.empty();d.appendTo(g);e.callback(h,g)}})(jQuery);
