/*
 * Gridbooks
 * July 2011
 *
 * @author	Paul Bazay
 * @email	paul@sajakfarki.com
 */
 
(function($){
// Globals
var dialogSettings = 	{
		width: 470,
		draggable: false,
		resizable: false,
		modal: true
	};

// jQuery Slider
// Basic banner slider that conforms to the site layout
$.fn.slider = function(options) {
	var defaults = {
		width: 960,
		speed: 600,
		delay: 6000
	};
	var settings = $.extend(options, defaults);
	
	var $this = $(this);
	var $nav = $('ul#banner-nav');
	var numSlides = $(this).children().length;
	var currentSlide = 1;
	var loop = 0;
  	$this.children(":first-child").show();
  	
	// Return jQuery object.
	return this.each(function() {
		
		function intervalHandler(evt) {
			if (evt == 'start') {
				loop = window.setInterval(triggerSlide, settings.delay);
			}
			
			if (evt == 'pause') {
				window.clearInterval(loop);
				loop = 0;
			}
		}
		// Kick off
		intervalHandler('start');
		
		// Set the UL width to the width of all the slides
		$this
			.bind('mouseover', function() {
				intervalHandler('pause');
			})
			.bind('mouseout', function() {
				intervalHandler('start');
			});
		
		// Set up the slider nav
		for (i = 0; i < numSlides; i++) {
			var num = $('<li><a href="#">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></li>');
			$nav.append(num);
			if (i) {
				hidePrev( $this.children(":nth-child(" + (i+1) + ")") );
			}
		}
		
		// Bind the nav buttons to animate the slides
		$nav.delegate('a', 'click', function(e) {
			var index = $(this).parent().index();
			var oldSlide = currentSlide;
			currentSlide = index + 1;
			$nav.find('a').removeClass('selected');
			$(this).addClass('selected');
			if (currentSlide!=oldSlide) {
				
				var $oldSlide = $this.children(":nth-child(" + oldSlide + ")");
				var $currentSlide = $this.children(":nth-child(" + currentSlide + ")");
				
				if (oldSlide == numSlides) {
					setOpacity($currentSlide, 10);
					$currentSlide.show();
					$oldSlide.animate({opacity: 0}, defaults.speed, 'easeInOutQuad', function(){hidePrev($oldSlide);});
				} else {
					setOpacity($currentSlide, 0);
					$currentSlide.show();
					$currentSlide.animate({opacity: 1}, defaults.speed, 'easeInOutQuad', function(){hidePrev($oldSlide);});
				}
				
			}
			
			e.preventDefault();
		})
		.hover(
			function() {
				intervalHandler('pause');
			}
		);
		$nav.find('li:first a').click();
		
		// Set an interval, check if we're at the end or loop back
		function triggerSlide() {
			if (currentSlide < numSlides) {	
				$nav.find('li:eq(' + currentSlide + ') a').click();
			} else {
				$nav.find('li:first a').click();
			}
		}
		
		function setOpacity(obj, value) {
			obj.css('opacity', value/10);
			//obj.style.filter = 'alpha(opacity=' + value*10 + ')';
			//alert (obj.attr('id'));
		}
		
		function hidePrev(obj) {
			setOpacity(obj, 0);
			obj.hide();
		}
		
	});
};


// Init
$(function() {
	// Banner slideshow
	$('div#banner-slides').slider();
});
// End.
})(jQuery);
