//-------------------------------------------------
//		Quick Pager jquery plugin
//		by dan & emanuel @geckonm.com
//		www.geckonewmedia.com
// 
//		v1.1
//-------------------------------------------------

(function($) {
	    
	$.fn.quickPager = function(options) {
	
		var defaults = {
			pageSize: 10,
			currentPage: 1,
			pagerLocation: "after"
		};
		
		var options = $.extend(defaults, options);
		
		
		return this.each(function() {
	
						
			var selector = $(this);	
			var pageCounter = 1;
			
			//is this a hack? seems hacky. pretty sure it's a hack 8^)
			var randomNess = Math.floor(Math.random()*10000001);
			selector.attr("rel","simple_"+randomNess);
			
			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) {
				
				//Build pager navigation
				var pageNav = "<ul class='simplePagerNav' rel='simple_"+randomNess+"'>";	
				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>";
				

					switch(options.pagerLocation)
					{
					case "before":
						selector.before(pageNav);
					break;
					case "both":
						selector.before(pageNav);
						selector.after(pageNav);
					break;
					default:
						selector.after(pageNav);
					}

				
				
				//pager navigation behaviour
				$(".simplePagerNav a").live("click", function() {
					var randomRel = $(this).parent("li").parent("ul").attr("rel");															  
					//grab the REL attribute 
					var clickedLink = $(this).attr("rel");
					options.currentPage = clickedLink;
					

						//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
					if(selector.attr("rel")==randomRel) {
						selector.children().hide();			
						selector.find(".simplePagerPage"+clickedLink).show();			 
					}
					return false;
				});
				
			}
			
			
			
		
		});
			  
	}
	

})(jQuery);
