dsg.fn.storeFinderPagination = (function( sListElement, iDisplayedElement ){
	var $aElements			= $j("."+sListElement+" li");
	var $iDisplayedElement	= parseInt(iDisplayedElement);
	var $aLinks				= $j(".store-locator-pagination p a");
	var $oPrevButton		= $j(".store-locator-pagination .back");
	var $oNextButton		= $j(".store-locator-pagination .next");
	var $iCurrentPage		= 0;
	var $iPageTotal			= parseInt($j("#pages-total").html());
	
	// Show first elements
	showElements(0, $iDisplayedElement);
	
	// Prev button
	$oPrevButton.click(function(e){
		e.preventDefault();
		
		if ($iCurrentPage > 0)
		{
			--$iCurrentPage;
			
			showElements($iCurrentPage * $iDisplayedElement, $iDisplayedElement);
			
			setActiveElement($iCurrentPage);
		}
	});
	
	// Next button
	$oNextButton.click(function(e){
		e.preventDefault();
		
		if ($iCurrentPage < $iPageTotal - 1)
		{
			++$iCurrentPage;
			
			showElements($iCurrentPage * $iDisplayedElement, $iDisplayedElement);
			
			setActiveElement($iCurrentPage);
		}
	});
	
	// Create links
	$aLinks.click(function(e){
		e.preventDefault();
		
		var $this = $j(this);
		var iPosition = parseInt($this.attr('rel').slice(5));
		
		$iCurrentPage = iPosition;
		showElements(iPosition * $iDisplayedElement, $iDisplayedElement);
		
		setActiveElement($iCurrentPage);
	});
	
	// Sets active element
	function setActiveElement( iNumber )
	{
		$aLinks.removeClass("active");
		$j($aLinks[iNumber]).addClass("active");
		$j($aLinks[iNumber + Math.ceil($aElements.length / $iDisplayedElement)]).addClass("active");
		
		$j(".current-page").html(iNumber + 1);
	}
	
	// Hide and show elements
	function showElements( iStartOffset, iLength )
	{
		for ( var i = 0, iMax = $aElements.length; i < iMax; ++i )
		{
			if (i >= iStartOffset && i < iStartOffset + iLength)
			{
				$j($aElements[i]).show();
			}
			else
			{
				$j($aElements[i]).hide();
			}
		}
	};
});
