/* 
 * JQuery Quick Pagination
 * Version 1.0.1
 * Quick and dirty pagination for pretty much any set of elements on the page.
 * Author: Mark Perkins
 * Author email: mark@allmarkedup.com
 * For full documentation and more go to http://projects.allmarkedup.com/jquery_quick_paginate/
 * LICENCE:
 * Released under a MIT Licence. See licence.txt that should have been supplied with this file,
 * or visit http://projects.allmarkedup.com/jquery_quick_paginate/licence.txt
 */

var shortlistPage = 1;
jQuery.fn.shortlistPaginate = function(settings) {

	settings = jQuery.extend({
		perpage: 10,
		showcounter : true,
		showarrows: false,
		autoscroll: false,
		autoscrollinterval: 3000,
		delayautoslide: 3000,
		prev : "left",
		next : "right",
		pager : ".shortlist_dot_pages",
		currentPage : 1,
		remove: false
	}, settings);

	var cm;
	var total;
	var items = jQuery(this);
	var scrollingid = 0;
	
	var init = function() {
		items.fadeIn(200);
		total = items.size();
		if (items.size() > settings.perpage) {
			items.filter(":gt("+(settings.perpage-1)+")").hide();
			cm = settings.perpage;
			setNav();
		}
		else if (settings.remove && items.size() >= settings.perpage) {
			setNav();
		}
		if (settings.autoscroll){
			launch_atoscroll();
		}
	};
	
	var launch_atoscroll = function() {
		$(function(){
			window.setTimeout(function(){
				scrollingid = window.setInterval(function(){
					goPage(cm/settings.perpage + 1);
				}, settings.autoscrollinterval);
			}, settings.delayautoslide);
		});
	}
	
	var goPage = function(pagenum) {
		if (!isNaN(pagenum)) {
			var pages = Math.ceil(total / settings.perpage);
			pagenum = parseInt(pagenum, 10);
			if ( pagenum < 1) {
				pagenum = pages;
			}
			else if ( pagenum > pages) {
				pagenum = 1;
			}
			var nm = (pagenum) * settings.perpage;
			items.hide();
			items.slice( nm - settings.perpage, nm).fadeIn(300);
			cm = nm;
			
			if (settings.showcounter || settings.showarrows) {
				setPagination(cm/settings.perpage);
			}
		}
		else {
			if (pagenum == "prev") {
				goPage(cm/settings.perpage - 1);
			}
			else if (pagenum == "next") {
				goPage(cm/settings.perpage + 1);
			}
		}
		
	}
	
	var setPagination = function(currentItem) {
		var cnt="";
		var pages = Math.ceil(total / settings.perpage);
		if (pages > 1) {
			if (settings.showcounter) {
				for ( i = 0; i < pages; i++) {
					cnt += "<a rel='"+(i+1)+"' href='javascript:void(0);' "+ (i == currentItem-1 ? "class='active'" : "") + "><img src='/img/clear.gif' width='14' height='14' alt='' title='' /></a>";
				}
			}
			if (settings.showarrows) {
				cnt = "<a rel='prev' class='" + settings.prev + (currentItem == 1 ?" qp_disabled":"") + "' href='javascript:void(0);'></a>" + cnt;
				cnt += "<a rel='next' class='" + settings.next + (currentItem == pages ?" qp_disabled":"") +"' href='javascript:void(0);'></a>";
			} 
		}
		shortlistPage = currentItem;
		settings.pager.html(cnt);
		settings.pager.find('a').each(function( intIndex ){
			$(this).click(function() {
				// Stop autoscroll
				if (settings.autoscroll){
					window.clearInterval(scrollingid);
				}
				goPage($(this).attr('rel'));
				return false;
			});
		});
		
	}
	
	var setArrows = function() {
		
	}
	
	var setNav = function() {
		if (settings.showcounter || settings.showarrows) {
			while (Math.ceil(total / settings.perpage) < settings.currentPage) {
				settings.currentPage--;
			}
			goPage(settings.currentPage);
		}		
	};
	
	init(); // run the function
};

