jQuery.fn.quickpaginate = function( settings ) {

	settings = jQuery.extend({
   
		perpage: 6,
		
		pager : null,
		
		showcounter : true,
		
		prev : "qp_next",

		next : "qp_prev",
		
		pagenumber : "qp_pagenumber",
		
		totalnumber : "qp_totalnumber",
		
		counter : "qp_counter"

	}, settings);

	var cm;
	
	var total;
	
	var totalOnPage;
	
	var getTotal;
	
	var last = false;
	
	var first = true;
	
	var prevTrue = false;
	var nextTrue = false;
	var firstTimeNav = true;
	
	var items = jQuery(this);
	
	var nextbut;
	
	var prevbut;
	
	var init = function()
	{
		items.show();
		
		total = items.size();
				
		if ( items.size() > settings.perpage )
		{
			items.filter(":gt("+(settings.perpage-1)+")").hide();
			
			cm = settings.perpage;
			
			totalOnPage = cm;
			setNav(prevTrue, nextTrue);
		}
	};
	
	var goNext = function()
	{
		if ( !last )
		{
			var nm = cm + settings.perpage;
			items.hide();
			
			items.slice( cm, nm ).show();
			cm = nm;
			
			if ( cm >= total  )
			{	
				last = true;
				nextbut.addClass("qp_disabled");
				
			}
			
			if ( settings.showcounter ) settings.pager.find("."+settings.pagenumber).text(cm/settings.perpage);
			
			if( settings.showcounter ){
				updateTotal();
			}
			
			prevbut.removeClass("qp_disabled");
			first = false;	
			
			// SHOW ALL RESULTS
			$('#ViewAllBtn').click(function(event){			
				espnResultsObj.reinit('resultsOffers', 'xml/rm-hosts.xml');			
				
				if ( typeof(selectMarket) == 'undefined' )
				{
				
					selectMarket = '';
				}				
				espnResultsObj.showAllEvents(selectMarket, selectGroup, false);
			});	
		}
		
	};
	
	var goPrev = function()
	{
		
		if ( !first )
		{
			var nm = cm-settings.perpage;
			items.hide();
			
			items.slice( (nm - settings.perpage), nm ).show();
			cm = nm;
			
			if ( cm == settings.perpage  )
			{
				first = true;
				prevbut.addClass("qp_disabled");
			}
			
			if ( settings.showcounter ) settings.pager.find("."+settings.pagenumber).text(cm/settings.perpage); 
			
			if( settings.showcounter ){
				updateTotalDescend();
			}
			
			nextbut.removeClass("qp_disabled");
			last = false;
			
			// SHOW ALL RESULTS
			$('#ViewAllBtn').click(function(event){				
				espnResultsObj.reinit('resultsOffers', 'xml/rm-hosts.xml');
				
				if ( typeof(selectMarket) == 'undefined' )
				{				
					selectMarket = '';
				}
				espnResultsObj.showAllEvents(selectMarket, selectGroup, false);
			});	
		}
						
	};
	var updateTotalDescend = function()
	{		
		totalOnPage	= totalOnPage - settings.perpage;			
		jQuery(settings.pager).empty();
		
		if(totalOnPage < 6){
			totalOnPage = 6;
			prevbut.addClass("qp_disabled");
			prevTrue = true;
		}		
			
		setNav(prevTrue, nextTrue);
	}

	
	var updateTotal = function()
	{
		totalOnPage	= totalOnPage + settings.perpage;
		
		jQuery(settings.pager).empty();			
			
		if(totalOnPage > total){
			totalOnPage = total;
			nextbut.addClass("qp_disabled");
			nextTrue = true;
		}		
		setNav(prevTrue, nextTrue);
	}
	
	var setNav = function(prevTrue, nextTrue)
	{	
		
		if ( settings.pager === null )
		{	
			settings.pager = jQuery('<div class="qc_pager"></div>');
			items.eq( items.size() -1 ).after(settings.pager);
		}
		
		var pagerNav = $('<a class="'+settings.prev+'" href="#">View Previous</a>|<a id="ViewAllBtn">View All</a>|<a class="'+settings.next+'" href="#">View Next</a><div class="clear"></div>');
		
		jQuery(settings.pager).append( pagerNav );
		
		if ( settings.showcounter )
		{			
			var counter = '<br/><span class="'+settings.counter+'">'+ totalOnPage +' <span> of </span>'+ total +' <span style="padding-left:2px;">Radio Matches</span></span>';
			
			/*	What Page you're on & total Number of pages to paginate
				<span class="'+settings.pagenumber+'"></span> 
				<span class="'+settings.totalnumber+'"></span> */
			
			settings.pager.find("."+settings.next).after( counter );
			
			settings.pager.find("."+settings.pagenumber).text( 1 );
			settings.pager.find("."+settings.totalnumber).text( Math.ceil(total / settings.perpage) );
		}		
	
		nextbut = settings.pager.find("."+settings.next);			
		prevbut = settings.pager.find("."+settings.prev);	
		
		if(firstTimeNav){
			prevbut.addClass("qp_disabled");
			prevbut.removeClass("preProfile-over");
			firstTimeNav = false;
		}			
		if(prevTrue){
			prevbut.addClass("qp_disabled");
			//prevTrue = false;
		}
		
		if(nextTrue){
			nextbut.addClass("qp_disabled");
			//nextTrue = false;
		}
						
		nextbut.click(function(){
			goNext();
			$('html, body').animate({scrollTop:0}, 'slow');	
			return false;
		});
		prevbut.click(function(){
			goPrev();
			$('html, body').animate({scrollTop:0}, 'slow');	
			return false;
		});		
		
		$(prevbut).hover(prevredOver, prevredOut);
		$(nextbut).hover(nextredOver, nextredOut);
      		
      	function prevredOver(){
       		if ($(this).hasClass('qp_disabled'))
      		{ 
  			} else{
  				$(this).addClass("preProfile-over");
  			}
      	}
      	
      	function prevredOut(){
			$(this).removeClass("preProfile-over");
      	}
      	
      	
      	function nextredOver(){
       		if ($(this).hasClass('qp_disabled'))
      		{ 
  			} else{
  				$(this).addClass("nextProfile-over");
  			}
      	}
      	
      	function nextredOut(){
      		$(this).removeClass("nextProfile-over");
      	}	
		
	};
	
	init(); // run the function
};
