$(function()
{
	$('.listingMajorContainer').bind('loadPage', function(e, oe, trigger, options)
	{
		// Stop default events if any.
		if(oe) oe.preventDefault();
		
		$this      = $(trigger) || null;
		$container = $(this);
		
		// Make sure we're not loading anything else first.
		if($container.hasClass('loading'))
			return false;
		
		// Ensure page index value is initialised.
		$container.data('currPageIndex', $container.data('currPageIndex') || 0);
		
		// Evaluate page being loaded.
		$pageNumbers = $container.find('.pagination .numberSet .number');
		$currPager   = $this.parents('.pagination').find('.numberSet .number');
		
		var newPageNotInRange = false;
		var newPageIndex;
		var pageNumberMin = 1;
		var pageNumberMax = $currPager.size() || 0; // Assumes all pagers are the same size.
		var rel = $this.attr("rel");
		
		switch(true)
		{
			case $this == null:
				newPageIndex = 0;
			
			case $this.hasClass('prev'):
				newPageIndex = $container.data('currPageIndex') - 1;
				if(newPageIndex < pageNumberMin - 1)
					newPageNotInRange = true;
				break;
				
			case $this.hasClass('next'):
				newPageIndex = $container.data('currPageIndex') + 1;
				if(newPageIndex > pageNumberMax - 1 && pageNumberMax > 0)
					newPageNotInRange = true;
				break;
				
			case $this.hasClass('number'):
				newPageIndex = $currPager.index($this);
				break;
		}
		
		// Page number not in range.
		if(newPageNotInRange)
			return false;
		
		// Ensure loader height.
		$container.find('.loader').height($container.find('.listingContainer').height());
		
		// Set current page index.
		$container.data('currPageIndex', newPageIndex);
		
		// Flag it as loading.
		$container.addClass('loading');
		$itemContainer = $container.find('.productListings');
		
		//var content = $itemContainer.html();
		
		// Mimic a AJAX request load.
		setTimeout(function()
		{
			var grabCpathVal = $("#categoryPathLand").val();
			$itemContainer.load(rootFolder + "/ajax/get_landing_products.asp",{'values':rel,'p':newPageIndex + 1,'rCategoryTitle':grabCpathVal});
			
			$container.removeClass('loading');
			
			// Set page number as active.
			$newPageNumber = $container.find('.pagination .numberSet .number:nth-child(' + (newPageIndex + 1) + ')');
			$pageNumbers.removeClass('current');
			
			$newPageNumber.addClass('current');
		}, 500);
	});
});
