(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.floor(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+(this.opts.num_display_entries%2),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,f,g,b,e){var d;for(d=g;d<b;d++){this.createLink(d,f,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,{classes:"sp"});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,{classes:"ep"})}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(i,b){b=jQuery.extend({items_per_page:10,num_display_entries:11,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}},b||{});var c=this,f,k,e;function d(m){var n,l=a(m.target).data("page_id"),o=g(l);if(!o){m.stopPropagation()}return o}function g(l){c.data("current_page",l);k=f.getLinks(l,d);c.empty();k.appendTo(c);var m=b.callback(l,c);return m}e=b.current_page;c.data("current_page",e);i=(!i||i<0)?1:i;b.items_per_page=(!b.items_per_page||b.items_per_page<0)?1:b.items_per_page;if(!a.PaginationRenderers[b.renderer]){throw new ReferenceError("Pagination renderer '"+b.renderer+"' was not found in jQuery.PaginationRenderers object.")}f=new a.PaginationRenderers[b.renderer](i,b);var h=new a.PaginationCalculator(i,b);var j=h.numPages();c.bind("setPage",{numPages:j},function(m,l){if(l>=0&&l<m.data.numPages){g(l);return false}});c.bind("prevPage",function(l){var m=a(this).data("current_page");if(m>0){g(m-1)}return false});c.bind("nextPage",{numPages:j},function(l){var m=a(this).data("current_page");if(m<l.data.numPages-1){g(m+1)}return false});k=f.getLinks(e,d);c.empty();k.appendTo(c);b.callback(e,c)}})(jQuery);
