// Alternate background colors // set equal coumn heights // hide / reveal items.
$(document).ready(function(){

	 $(".alternate:odd").addClass("alternate-odd");
  $(".alternate:even").addClass("alternate-even");
  $(".revealTarget").addClass("hide");
	setInitialSlide();
	slideControl.slideshowStart();
	// these could be set in some slidecontrols object
	
	$('.jump').click(function() {
		if ($(this).hasClass('active')){return false;}
		$('.control.jump.active').removeClass('active');
		$(this).addClass('active');
		slideJump($(this).index());
		slideControl.slideshowStart();
		return false;
	});
});

/* slideshow */
var slideControl = {
	slideInterval:7500,
	scrollAmount:400,
	scrollPad:25,
	timeout:null,
	slideshowStop: function(){
		if (this.timeout)
		clearInterval(this.timeout);
	},
	slideshowStart: function(){
		this.slideshowStop();
		this.timeout = setInterval("autoSlide()", this.slideInterval);
	}
};

// utilities
function getActiveSlide()
{
	var $active = $('.slideshow>.slides>div.slide.active');
	return $active.length?$active: $('.slideshow>.slides>div.slide').eq(0);	
}

function getNextSlide()
{
	var $active = getActiveSlide();
	return $active.next().length?$active.next(): $('.slideshow>.slides>div.slide').eq(0);
}

function getPrevSlide()
{
	var $active = getActiveSlide();
	return $active.prev().length?$active.prev(): $('.slideshow>.slides>div.slide').eq(-0);
}

// setup
function setInitialSlide()
{
	$('.slideshow>.slides>div.slide').hide();
	var activeButton = $('.controls .control.active');
	var $active = getActiveSlide();
	if (activeButton.length == 0)
	{
		$('.controls .control:first').addClass('active');
	}
	$active.show();
	updateControls();
}

// animated slide
function autoSlide() {

	var $activeButton = $('.controls .control.active');
	var $nextButton = $activeButton.next().length? $activeButton.next():$('.controls .control:first');
	var $active = getActiveSlide();
	var $next = getNextSlide();
	$active.addClass('last-active');
	$next.show();
	$nextButton.addClass('active');
	$activeButton.removeClass('active');

	//$active.addClass('last-active').fadeOut(1000);
	$next.addClass('active')
	.fadeIn('slow', function()
		{
			$active.removeClass('active last-active').hide();
		}
	);
	return true;
}

// forced or jumped slide
function slideJump(jumpSlide, slideshowID) {
	
	var $active = getActiveSlide();
	var $jumpTo = $('.slideshow .slide').eq(jumpSlide);
	$active.addClass('last-active').hide();
	$jumpTo.addClass('active').show();
	$active.removeClass('active last-active');
}
function updateControls()
{
	var $activeButton = $('.controls .control').eq(getActiveSlide().index());
	var $prevButton = $activeButton.prev().length? $activeButton.prev(): $('.controls .control').eq(-0);
	var $nextButton = $activeButton.next().length? $activeButton.next(): $('.controls .control').eq(0);
}

