var intervalID;

$(document).ready(function() {		
	
	//Execute the slideShow
	slideShow();
	
	$('a.next').bind('click', function() { stopInterval(); gallery('next'); return false; });
	$('a.prev').bind('click', function() { stopInterval(); gallery('prev'); return false; });

});

function slideShow() {

	//Set the opacity of all images to 0
	$('#gallery li').css({opacity: 0.0});
	
	//Get the first image and display it (set it to full opacity)
	$('#gallery li:first').css({opacity: 1.0});
	
	//Set the caption background to semi-transparent
	$('#gallery .caption').css({opacity: 0.7});

	//Resize the width of the caption according to the image width
	$('#gallery .caption').css({width: $('#gallery ul').css('width')});
	
	//Get the caption of the first image from REL attribute and display it
	$('#gallery .content').html($('#gallery li:first img').attr('rel'))
	.animate({opacity: 0.7}, 400);
	
	//Call the gallery function to run the slideshow, 6000 = change to next image after 6 seconds
	gallery('next');
	
}

function gallery( task ) {
	
	//if no IMGs have the show class, grab the first image
	var current = ($('#gallery li.show')?  $('#gallery li.show') : $('#gallery li:first'));
	
	if(task == 'next') {	
		//Get next image, if it reached the end of the slideshow, rotate it back to the first image
		var next = ((current.next().length) ? ((current.next().hasClass('caption'))? $('#gallery li:first') :current.next()) : $('#gallery li:first'));	
		
		//Get next image caption
		var caption = next.find('img').attr('rel');	
		
		//Set the fade in effect for the next image, show class has higher z-index
		next.css({opacity: 0.0})
		.addClass('show')
		.animate({opacity: 1.0}, 1000);
	
		//Hide the current image
		current.animate({opacity: 0.0}, 800)
		.removeClass('show');

	}else if(task == 'prev') {	
		//Get next image, if it reached the end of the slideshow, rotate it back to the first image
		var prev = ((current.prev().length) ? ((current.prev().hasClass('caption'))? $('#gallery li:last') :current.prev()) : $('#gallery li:last'));	
		
		//Get next image caption
		var caption = prev.find('img').attr('rel');	
		
		//Set the fade in effect for the next image, show class has higher z-index
		prev.css({opacity: 0.0})
		.addClass('show')
		.animate({opacity: 1.0}, 800);
	
		//Hide the current image
		current.animate({opacity: 0.0}, 800)
		.removeClass('show');
	}
		
	//Set the opacity to 0 and height to 1px
	$('#gallery .caption').animate({opacity: 0.0}, { queue:false, duration:0 }).animate({height: '1px', bottom: '0px'},0)
	
	//Animate the caption, opacity to 0.7 and heigth to 100px, a slide up effect
	$('#gallery .caption').animate({opacity: 0.7},100 ).animate({height: '60px', bottom: '20px'},500)/*.animate({bottom: '20px'},200)*/;
	
	//Display the content
	$('#gallery .content').html(caption);
	
	intervalID = setTimeout('gallery("next")', 6000);
	
}

function stopInterval() {
	clearTimeout(intervalID);
}