// JavaScript Document

var currentFeatured = 1;
var totalFeatured = 0;
var prevFeatured = null;
var canMove = true;
var LEFTEDGE = 132;
var diamondTarget = null;
var diamondTimeout = null;

function movement_complete()
{
	canMove = true;
	//if( prevFeatured != null )
		//$('#featured-'+prevFeatured).css('display','none');
}

function featured_right( next )
{	
	if( !canMove || currentFeatured == null || totalFeatured == null || next == currentFeatured )
		return false;
	
	//-animate
	nextFeatured = currentFeatured < totalFeatured? currentFeatured + 1 : 1;
	canMove = false;
	$('#featured-'+nextFeatured+'-wrapper').css('z-index',4);
	$('#featured-'+nextFeatured).css({ marginLeft: 960 });
	$('#featured-'+currentFeatured).animate({ marginLeft: -960 });
	$('#featured-'+currentFeatured+'-wrapper').css('z-index',1);
	$('#featured-'+nextFeatured).animate({ marginLeft: LEFTEDGE }, null, null, movement_complete );
	$('#fp'+currentFeatured).attr({ src:'/wp-content/themes/esf/images/featured/featured-position-off.png' });
	$('#fp'+nextFeatured).attr({ src: '/wp-content/themes/esf/images/featured/featured-position-on.png' });
	prevFeatured = currentFeatured;
	currentFeatured = nextFeatured;
}
function featured_left( next )
{
	//console.log( next );
	if( !canMove || currentFeatured == null || totalFeatured == null || next == currentFeatured )
		return false;
	
	//-animate
	nextFeatured = currentFeatured > 1? currentFeatured - 1 : totalFeatured;
	canMove = false;
	$('#featured-'+nextFeatured+'-wrapper').css('z-index',4);
	$('#featured-'+nextFeatured).css({ marginLeft: -960 });
	$('#featured-'+currentFeatured).animate({ marginLeft: 960 });
	$('#featured-'+currentFeatured+'-wrapper').css('z-index',1);
	$('#featured-'+nextFeatured).animate({ marginLeft: LEFTEDGE }, null, null, movement_complete );
	$('#fp'+currentFeatured).attr({ src:'/wp-content/themes/esf/images/featured/featured-position-off.png' });
	$('#fp'+nextFeatured).attr({ src: '/wp-content/themes/esf/images/featured/featured-position-on.png' });
	prevFeatured = currentFeatured;
	currentFeatured = nextFeatured;
}

$(document).ready(function()
{
	//-add position/get total
	count = 0;
	$('#home-featured').children().each(function()
	{
		if( this.id.match('feature') )
			count++;
	});
	totalFeatured = count;
	//console.log( count );
	$('#position').css({ width:((count+1)*14) });
	for( i=1; i<=count; i++ )
	{
		$(document.createElement('img')).attr({ src:'/wp-content/themes/esf/images/featured/featured-position-off.png', id:'fp'+i }).appendTo($('#position'));
		$('#fp'+i).click( function(){diamond_hit(parseInt(this.id.substr(2)));} );
	}
	$('#fp1').attr({ src: '/wp-content/themes/esf/images/featured/featured-position-on.png' });
	
	function reset_timeouts()
	{
		clearTimeout( featured_runtime );
		clearTimeout( diamond_advance );
	}
	
	function todigress( time )
	{
		if( !time || time < 8000 )
			time = 8000;
		reset_timeouts();
		featured_left();
		featured_runtime = setTimeout( toadvance, time );
	}
	function toadvance( time )
	{
		if( !time || time < 8000 )
			time = 8000;
		reset_timeouts();
		featured_right();
		featured_runtime = setTimeout( toadvance, time );
	}
	
	function diamond_advance()
	{
		reset_timeouts();
		if( diamondTarget == null || currentFeatured == diamondTarget )
			featured_runtime = setTimeout( toadvance, 15000 );
		else
		{
			if( currentFeatured < diamondTarget )
				featured_right();
			else
				featured_left();
			diamondTimeout = setTimeout( diamond_advance, 100 );
		}
	}
	function diamond_hit( id )
	{
		//console.log( 'hit diamond ' + id + ', currentFeatured: ' + currentFeatured + ', typeof id: ' + typeof(id) );
		if( id === null || typeof(id) != 'number' || currentFeatured === null )
			return false;
			
		diamondTarget = id;
		diamondTimeout = setTimeout( diamond_advance, 100 );
	}
	
	//-left click
	$('#left').click( function(){todigress(15000);} );
	//-right click
	$('#right').click( function(){toadvance(15000);} );
	
	//-init slideshow
	var featured_runtime;
	featured_runtime = setTimeout( toadvance, 8000 );
});

