//-------------------------------------------------
// Quick Pager jquery plugin
// Created by dan and emanuel @geckonm.com
// www.geckonewmedia.com
//
// v1.1
// 18/09/09 * bug fix by John V - http://blog.geekyjohn.com/
//-------------------------------------------------

(function($) {

$.fn.quickPager = function(options) {

var defaults = {
pageSize: 6,
currentPage: 1,
holder: null,
pagerLocation: "after"
};

var options = $.extend(defaults, options);


return this.each(function() {


var selector = $(this);
var pageCounter = 1;

selector.wrap("<div class='simplePagerContainer'></div>");

selector.children().each(function(i){

if(i < pageCounter*options.pageSize && i >= (pageCounter-1)*options.pageSize) {
$(this).addClass("simplePagerPage"+pageCounter);
}
else {
$(this).addClass("simplePagerPage"+(pageCounter+1));
pageCounter ++;
}

});

// show/hide the appropriate regions
selector.children().hide();
selector.children(".simplePagerPage"+options.currentPage).show();

if(pageCounter <= 1) {
return;
}

//Build pager navigation
var pageNav = "<div class='pagerNavContainer'><ul class='simplePagerNav' style='width:"+pageCounter*32+"px;'>";
for (i=1;i<=pageCounter;i++){
if (i==options.currentPage) {
pageNav += "<li class='currentPage simplePageNav"+i+"'><a rel='"+i+"' href='#'>"+i+"</a></li>";
}
else {
pageNav += "<li class='simplePageNav"+i+"'><a rel='"+i+"' href='#'>"+i+"</a></li>";
}
}
pageNav += "</ul></div>";

if(!options.holder) {
switch(options.pagerLocation)
{
case "before":
selector.before(pageNav);
break;
case "both":
selector.before(pageNav);
selector.after(pageNav);
break;
default:
selector.after(pageNav);
}
}
else {
$(options.holder).append(pageNav);
}

//pager navigation behaviour
selector.parent().find(".simplePagerNav a").click(function() {

//grab the REL attribute
var clickedLink = $(this).attr("rel");
options.currentPage = clickedLink;

if(options.holder) {
$(this).parent("li").parent("ul").parent(options.holder).find("li.currentPage").removeClass("currentPage");
$(this).parent("li").parent("ul").parent(options.holder).find("a[rel='"+clickedLink+"']").parent("li").addClass("currentPage");
}
else {
//remove current current (!) page
$(this).parent("li").parent("ul").parent(".simplePagerContainer").find("li.currentPage").removeClass("currentPage");
//Add current page highlighting
$(this).parent("li").parent("ul").parent(".simplePagerContainer").find("a[rel='"+clickedLink+"']").parent("li").addClass("currentPage");
}

//hide and show relevant links
selector.children().hide();
selector.find(".simplePagerPage"+clickedLink).show();

return false;
});
});
}


})(jQuery);
