(function($){$.fn.paginateMe=function(options){debug(this);var defaults={perpage:6,children:'li',leadlinks:3,displaylinks:3,prevClass:"pm_prev",nextClass:"pm_next",nextText:"next",prevText:"prev",buttonClass:"pageMe",disabledClass:"pm_disabled",ellipseClass:"pm_ellipse",currentClass:"pm_here",slider:false,slideClass:"pm_jumpto",slidelabelClass:"pm_jumptolabel",ellipseText:'...',scrolltoTarget:'',scrolltoDuration:0,scrolltoOffset:0};var opts=$.extend(defaults,options);var o=($.meta)?$.extend({},opts,$(this).data()):opts;var parent=$(this);if(o.scrolltoTarget===''){if(parent.attr("id")){o.scrolltoTarget="#"+parent.attr("id")}else{o.scrolltoTarget="."+parent.attr("class")}}var items=$(this).children(o.children);var ellipse='<span class="'+o.ellipseClass+'">'+o.ellipseText+'</span>';var total=items.length;var totalpage=Math.ceil(total/o.perpage);parent.data("page",{current:1});if(totalpage>1){var nav="<br style='clear: both;'/><div id='pm_nav'></div><br style='clear: both;'/>";var prevbtn='<a class="'+o.prevClass+'" href="#nogo_'+o.prevClass+'">'+o.prevText+'</a>';var nextbtn='<a class="'+o.nextClass+'" href="#nogo_'+o.nextClass+'">'+o.nextText+'</a>';var labels=prevbtn+'<span id="pm_nav_links">';for(i=1;i<=totalpage;i++){labels+='<a id="'+o.buttonClass+i+'" class="'+o.buttonClass+'" href="#nogo_'+i+'">'+i+'</a>'}labels+='</span>'+nextbtn;$(this).after(nav);$("#pm_nav").append(labels);if(o.slider&&$.ui){var slider='<br style="clear: both;" />';slider+='<label class="'+o.slidelabelClass+'" for="'+o.slideClass+'">Page 1 of '+totalpage+'</label>';slider+='<br style="clear: both;" />';slider+='<div id="pm_slider" ></div>';$("#pm_nav").after(slider);$("#pm_slider").slider({min:1,max:totalpage,value:1,slide:function(event,ui){var pageval=ui.value;$("."+o.slidelabelClass).text('Page '+pageval+' of '+totalpage)},change:function(event,ui){var newno=(ui.value*o.perpage);items.hide();items.slice((newno-o.perpage),newno).fadeIn('slow');parent.data("page",{current:ui.value});if(ui.value<=1){$("."+o.prevClass).addClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}else if(ui.value>=totalpage){$("."+o.nextClass).addClass(o.disabledClass);$("."+o.prevClass).removeClass(o.disabledClass)}else{$("."+o.prevClass).removeClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}$("."+o.buttonClass).removeClass(o.currentClass);$("#"+o.buttonClass+ui.value).addClass(o.currentClass);shuffleNav(ui.value);if($.scrollTo){$.scrollTo(o.scrolltoTarget,o.scrolltoDuration,{offset:o.scrolltoOffset})}}})}else if(!$.ui&&o.slider===true){alert("Using the Slider requires the jQuery UI be installed...")}var links=$("#pm_nav_links").children();$("."+o.buttonClass+":first").addClass(o.currentClass);items.filter(":gt("+(o.perpage-1)+")").hide();links.hide();var start=links.slice(0,o.leadlinks);var end=links.slice(totalpage-o.leadlinks,totalpage);var middle=links.slice(o.leadlinks,o.leadlinks+o.displaylinks);start.show();middle.show();$("#"+o.buttonClass+(totalpage-o.leadlinks)).before(ellipse);end.show();$("."+o.prevClass).addClass(o.disabledClass);$("."+o.prevClass).bind("click.prev",function(){var onpage=parent.data("page").current;if(onpage>1){onpage=onpage-1;var newno=(onpage*o.perpage);items.hide();items.slice((newno-o.perpage),newno).show();$("."+o.nextClass).removeClass(o.disabledClass);parent.data("page",{current:onpage});if(onpage-1<=1){$("."+o.prevClass).addClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}else if(onpage-1>=totalpage){$("."+o.nextClass).addClass(o.disabledClass);$("."+o.prevClass).removeClass(o.disabledClass)}else{$("."+o.prevClass).removeClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}$("."+o.buttonClass).removeClass(o.currentClass);$("#"+o.buttonClass+onpage).addClass(o.currentClass);shuffleNav(onpage);if(o.slider){$("#pm_slider").slider('value',onpage);$("."+o.slidelabelClass).text('Page '+onpage+' of '+totalpage)}if($.scrollTo){$.scrollTo(o.scrolltoTarget,o.scrolltoDuration,{offset:o.scrolltoOffset})}}return false});$("."+o.nextClass).bind("click.next",function(){var onpage=parent.data("page").current;if(onpage<totalpage){onpage++;var newno=(onpage*o.perpage);items.hide();items.slice((newno-o.perpage),newno).show();parent.data("page",{current:onpage});$("."+o.buttonClass).removeClass(o.currentClass);$("#"+o.buttonClass+onpage).addClass(o.currentClass);if(onpage+1<=1){$("."+o.prevClass).addClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}else if(onpage+1>=totalpage){$("."+o.nextClass).addClass(o.disabledClass);$("."+o.prevClass).removeClass(o.disabledClass)}else{$("."+o.prevClass).removeClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}$("."+o.prevClass).removeClass(o.disabledClass);shuffleNav(onpage);if(o.slider){$("#pm_slider").slider('value',onpage);$("."+o.slidelabelClass).text('Page '+onpage+' of '+totalpage)}if($.scrollTo){$.scrollTo(o.scrolltoTarget,o.scrolltoDuration,{offset:o.scrolltoOffset})}}return false});for(i=1;i<=totalpage;i++){$("#"+o.buttonClass+i).bind("click.button"+i,function(){var newno=($(this).text()*o.perpage);items.hide();items.slice((newno-o.perpage),newno).show();parent.data("page",{current:$(this).text()});if($(this).text()<=1){$("."+o.prevClass).addClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}else if($(this).text()>=totalpage){$("."+o.nextClass).addClass(o.disabledClass);$("."+o.prevClass).removeClass(o.disabledClass)}else{$("."+o.prevClass).removeClass(o.disabledClass);$("."+o.nextClass).removeClass(o.disabledClass)}$("."+o.buttonClass).removeClass(o.currentClass);$(this).addClass(o.currentClass);shuffleNav($(this).text());if(o.slider){$("#pm_slider").slider('value',$(this).text());$("."+o.slidelabelClass).text('Page '+$(this).text()+' of '+totalpage)}if($.scrollTo){$.scrollTo(o.scrolltoTarget,o.scrolltoDuration,{offset:o.scrolltoOffset})}return false})}}function shuffleNav(currentpage){start.hide();middle.hide();end.hide();$('.'+o.ellipseClass).remove();start.show();end.show();var start_n=(+currentpage)-1;var end_n=(+currentpage+(+o.displaylinks)-1);if(start_n<=o.leadlinks){var diff=(+o.leadlinks-start_n);start_n=start_n+diff;end_n=end_n+diff}else{$("#pageMe"+o.leadlinks).after(ellipse)}if(end_n>=(totalpage-o.leadlinks)){start_n=(totalpage-(o.displaylinks+o.leadlinks))}else{$("#pageMe"+(totalpage-o.leadlinks)).before(ellipse)}middle=links.slice(start_n,end_n);middle.show()}};function debug($obj){if(window.console&&window.console.log){window.console.log('paginateMe item count: '+$obj.size())}}})(jQuery);