//-----------------------------------------------------------
//		Basic Pagination for Yahoo! Store - jquery plugin
//		Author: FastPivot (http://www.fastpivot.com)
// 
//		Version: 1.0 (1.4.2010)
//-----------------------------------------------------------

(function($){$.fn.basicPagination=function(options){var defaults={rowsPerPage: 4,colsPerPage: 3,itemCount: 30,currentPage: 1,linkBreak: 12,paginationControlsLocation: "top"};var options=$.extend(defaults, options);return this.each(function(){var selector=$(this);var pageCounter=1;var itemsPerPage=parseInt(options.rowsPerPage*options.colsPerPage);var itemsLow=((options.currentPage-1)*itemsPerPage)+1;var breakNow=options.linkBreak;if(options.itemCount<itemsPerPage){var itemsHigh=options.itemCount;}else{var itemsHigh=options.currentPage*itemsPerPage;}selector.parent().wrap("<div id='paginationContainer'></div>");selector.children().each(function(i){if((i>=(pageCounter-1)*options.rowsPerPage*2)&&(i<(pageCounter*options.rowsPerPage*2)-1)){$(this).addClass("pageNum"+pageCounter);}else{if(i+1==(pageCounter*options.rowsPerPage*2)){$(this).addClass("pageNum0");}else{$(this).addClass("pageNum"+(pageCounter+1));}pageCounter ++;}});/* Display Default Page of Items */selector.children().hide();selector.children(".pageNum"+options.currentPage).show();/* Pagination Controls Area */var paginationControls="<div class='paginationControls'>";/* Display Page Numbers */paginationControls+="<div class='pageLinks'>Page ";for(i=1;i<=pageCounter;i++){paginationControls+="<a";if(i==options.currentPage){paginationControls+=" class='currentPage'";}paginationControls+=" rel='"+i+"' href='#'>"+i+"</a>";if(i!=pageCounter){if((breakNow!=0)&&(i/breakNow==1)){paginationControls+="<br />";breakNow=breakNow+12;}else{paginationControls+="<span class='divider'>|</span>";}}}if(pageCounter>1){paginationControls+="<span class='divider'>|</span><a rel='0' href='#'>View All</a>";}paginationControls+="</div>";/* Display Page Selectors */paginationControls+="<div class='pageSelectors'><span class='prevControl' style='display:none'><a rel='"+(parseInt(options.currentPage)+1)+"' href='#'>Previous</a></span>";paginationControls+="<span class='itemsOf'>Items <b>"+itemsLow+"-"+itemsHigh+"</b> of "+options.itemCount+"</span>";if(pageCounter>1){paginationControls+="<span class='nextControl'><a rel='"+(parseInt(options.currentPage)+1)+"' href='#'>Next</a></span>";}paginationControls+="</div><div class='clear'></div>";paginationControls+="</div>";switch(options.paginationControlsLocation){case "top":selector.parent().before(paginationControls);break;case "both":selector.parent().before(paginationControls);selector.parent().after(paginationControls);break;case "bottom":selector.parent().after(paginationControls);break;default:selector.parent().before(paginationControls);}/* Page Links Behavior */selector.parent().parent().find(".pageLinks a").click(function() {/* Set Selected Page Link */var clickedLink=$(this).attr("rel");options.currentPage=clickedLink;/* Remove Selected Class from Page Link */$("#paginationContainer").find("a.currentPage").removeClass("currentPage");/* Add Selected Class to Current Page Link */$("#paginationContainer").find("a[rel='"+clickedLink+"']").addClass("currentPage");/* Display Selected Page and Modify Page Selectors */selector.children().hide();if(clickedLink==0){/* Viewing ALL Items */for(i=0;i<=pageCounter;i++){selector.find(".pageNum"+i).show();}$("#paginationContainer").find("span.prevControl").hide();$("#paginationContainer").find("span.itemsOf").html("Viewing All Items");$("#paginationContainer").find("span.nextControl").hide();}else{/* Viewing Specific Page */selector.find(".pageNum"+clickedLink).show();/* Display of Previous Link */if(clickedLink==1){/* Hide Link */$("#paginationContainer").find("span.prevControl").hide();}else{/* Show Link */$("#paginationContainer").find("span.prevControl").show();$("#paginationContainer").find("span.prevControl a").attr("rel", (parseInt(options.currentPage)-1));}/* Display of Items Counter */itemsLow=((clickedLink-1)*itemsPerPage)+1;if(clickedLink==pageCounter){itemsHigh=options.itemCount;}else{itemsHigh=clickedLink*itemsPerPage;}$("#paginationContainer").find("span.itemsOf").html("Items <b>"+itemsLow+"-"+itemsHigh+"</b> of "+options.itemCount);/* Display of Next Link */if(clickedLink==pageCounter){/* Hide Link */$("#paginationContainer").find("span.nextControl").hide();}else{/* Show Link */$("#paginationContainer").find("span.nextControl").show();$("#paginationContainer").find("span.nextControl a").attr("rel", (parseInt(options.currentPage)+1));}}return false;});/* Page Selectors Behavior (Previous & Next) */$(".pageSelectors a").click(function(){/* Set Selected Page Link */var clickedSelector=$(this).attr("rel");options.currentPage=clickedSelector;/* Remove Selected Class from Page Link */$(".pageLinks ").find("a.currentPage").removeClass("currentPage");/* Add Selected Class to Current Page Link */$(".pageLinks").find("a[rel='"+clickedSelector+"']").addClass("currentPage");/* Display Selected Page and Modify Page Selectors */selector.children().hide();selector.find(".pageNum"+clickedSelector).show();/* Display of Previous Link */if(clickedSelector==1){/* Hide Link */$("#paginationContainer").find("span.prevControl").hide();}else{/* Show Link */$("#paginationContainer").find("span.prevControl").show();$("#paginationContainer").find("span.prevControl a").attr("rel", (parseInt(options.currentPage)-1));}/* Display of Items Counter */itemsLow=((options.currentPage-1)*itemsPerPage)+1;if(clickedSelector==pageCounter){itemsHigh=options.itemCount;}else{itemsHigh=options.currentPage*itemsPerPage;}$("#paginationContainer").find("span.itemsOf").html("Items <b>"+itemsLow+"-"+itemsHigh+"</b> of "+options.itemCount);/* Display of Next Link */if(clickedSelector==pageCounter){$("#paginationContainer").find("span.nextControl").hide();}else{$("#paginationContainer").find("span.nextControl").show();$("#paginationContainer").find("span.nextControl a").attr("rel", (parseInt(options.currentPage)+1));}return false;});});}})(jQuery);

