///////////////////////////////////////////////////////////////////////
// file: sladefider.js                                               //
// description: SladeFider                                           //
// author: David Faber                                               //
// company: Active Webdezign Ltd ( http://webdezign.co.uk )          //
///////////////////////////////////////////////////////////////////////


//---------------------------------------------------------------------
//initialize the sladefider and start it after one timeperiod
var no_el = 0;
var paused = false;
var i = 0;
var time = 7000;
var speed = 1000;
var t;
var ft;

function sladefider( options ) {
	
	if( options != null ) {
		time = (options.time == null ) ? options.time : 7000;
		speed = (options.speed == null ) ? options.speed : 1000;
	}
	
	$("#pause").click(function() {
		pauseSF();
		return false;
	});
	
	no_el = $( ".sladefider" ).length/2;
	$( ".sladefider" ).hide();

	$( "#1" ).show();
	$( "#img1" ).show();
	
	if( !paused ) {
		ft = setTimeout( "runEffect()" , time );
	}
}


//---------------------------------------------------------------------
//does basically everything
function runEffect(){
	i++;
	var slideO = "#img"+i;
	var slideI = "#img"+(i+1);
	var fadeO = "#"+i;
	var fadeI = "#"+(i+1);
	
	if(i == no_el) {
	  i=0;
	  var slideI = "#img"+(i+1);
	  var fadeI = "#"+(i+1);
	}
	
	$( slideO ).hide( 'slide' , {direction: "left" } , speed );
	$( slideI ).show( 'slide' , {direction: "right" } , speed );
	
	$( fadeO ).fadeOut( speed/2 );
	setTimeout(function() {
	  $( fadeI ).fadeIn( speed/2 , callback() );
	} , 500 );
};


//---------------------------------------------------------------------
//callback function to bring a hidden box back
function callback(){
	if( !paused ) {
		t = setTimeout( "runEffect()" , time );
	}
};

//---------------------------------------------------------------------
//pauses the whole thing
function pauseSF() {
	$("#play").removeClass();
	$("#pause").addClass("current");
	paused = true;
	clearTimeout(t);
	clearTimeout(ft);
	
	$( "#play" ).click( function() { 
		restartSF();
		return false;
	});
}


//---------------------------------------------------------------------
//pauses the whole thing
function restartSF() {
	runEffect();
	paused = false;
	$("#play").addClass("current");
	$("#pause").removeClass();
	$("#play").unbind();
}
