$(function () {
	function changeSlide (newSlide) {
		// change the currSlide value
		currSlide = newSlide;
		
		// make sure the currSlide value is not too low or high.
		if (currSlide > maxSlide) currSlide = 0;
		else if (currSlide < 0) currSlide = maxSlide;
		
		// animate the slide reel
		$slideReel.animate ({
			top: currSlide * -300
		}, 600, 'swing', function () {
			// update the selected item in the list.
			$slideshow.find ('li.selected').removeClass ('selected');
			$slideshow.find ('li:nth-child(' + (currSlide + 1)+ ')').addClass ('selected');
			
			// set new timeout if active
			if (activeSlideshow) slideTimeout = setTimeout (nextSlide, 5000);
		});
	}
	
	function nextSlide () {
		changeSlide (currSlide + 1);
	}
	
	// define some variables / DOM references.
	var activeSlideshow = true,
	currSlide = 0,
	slideTimeout,
	$slideshow = $('#featured'),
	$slideReel = $slideshow.find ('#slides'),
	maxSlide = $slideReel.children().length - 1;
	
	// Add click handlers to menu items to jump directly to that slide.
	$slideshow.find ('ul.menu li a').click (function () {
		clearTimeout (slideTimeout);
		changeSlide ($(this).parent().index());
		return false;
	});
	
	// start the animation
	slideTimeout = setTimeout (nextSlide, 5000);
});
