//AUTORUN...
$(document).ready(function() {
	//ddPager
	ddPager.Run();
		
});

var ddPager = {
	options: {
		areaSelector: '#GALLERY',
		itemsSelector: 'li',
		quantity: 3,
		step: 1,
		prevSelector: '#PAGE-LEFT',
		nextSelector: '#PAGE-RIGHT',
		prevCSS: 'page-previous',
		nextCSS: 'page-next',
		speed: 400
	},
	area: null,
	next: null,
	prev: null,
	items:  new Array(),
	index: 0,
	
	Run: function() {
		//setup the navigation items
		ddPager.next = $(ddPager.options.nextSelector);
		ddPager.prev = $(ddPager.options.prevSelector);
		
		//get the items
		ddPager.area = $(ddPager.options.areaSelector);
		ddPager.items = $(ddPager.options.itemsSelector, ddPager.area);
		
		//show first and hide the rest
		ddPager._setupItems();

		var faded = 0.6;
		var fast = "fast";
		ddPager.prev
			.click(function() { 
								if ($(this).hasClass(ddPager.options.prevCSS)) { 
									ddPager._scrollTo(ddPager.index - ddPager.options.step); 
									return false; 
								} 
			})
			.hover( function() { $(this).fadeTo(fast,1); }, 
					function() { $(this).fadeTo(fast,faded); }
				)
			.fadeTo(fast,faded);	
		ddPager.next
			.click(function() { 
								if ($(this).hasClass(ddPager.options.nextCSS)) { 
									ddPager._scrollTo(ddPager.index + ddPager.options.step); 
									return false; 
								} 
			})
			.hover( function() { $(this).fadeTo(fast,1); }, 
					function() { $(this).fadeTo(fast,faded); }
				)
			.fadeTo(fast,faded);	
		ddPager._resetNav();
			
	},
	_setupItems: function() {
		var index = 0;
		var minIndex = ddPager.index;
		var maxIndex = ddPager.index + ddPager.options.quantity - 1;
		ddPager.items.removeClass('last')
			.each(function() {					   
				if (index >= minIndex && index <= maxIndex) {
					$(this).show();
					if (index == maxIndex) { $(this).addClass('last'); }
				} else {
					$(this).hide();
				}
				index++;				
			});					
	},
	_resetNav: function() {
		if (ddPager.index == 0) {
			ddPager.prev.removeClass(ddPager.options.prevCSS);
		} else {
			ddPager.prev.addClass(ddPager.options.prevCSS);
		}
		
		if (ddPager.index >= ddPager.items.length - ddPager.options.quantity) {
			ddPager.next.removeClass(ddPager.options.nextCSS);
		} else {
			ddPager.next.addClass(ddPager.options.nextCSS);
		}
						
	},
	_scrollTo: function(newIndex) {
		try {
			if (newIndex < 0) { newIndex = 0; }
			else if (newIndex >= ddPager.items.length) { newIndex = ddPager.items.length - 1; }
			
			ddPager.index = newIndex;
			ddPager._setupItems();
			
			//reset the navigation items
			ddPager._resetNav();
		} catch (err) {
			alert(err);	
		}		
	}
};

