function slideShow() {
	
	//Set the opacity of all images to 0
	J('.slideshow a').css({opacity: 0.0});
	
	//Get the first image and display it (set it to full opacity)
	J('.slideshow a:first').css({opacity: 1.0});
	
	//Set the caption background to semi-transparent
	//J('.slideshow .caption').css({opacity: 0.7});

	//Resize the width of the caption according to the image width
	J('.slideshow .caption').css({width: J('.slideshow a').find('img').css('width')});
	
	//Get the caption of the first image from REL attribute and display it
	try{ 
		J('.slideshow .content').html(J('.slideshow a:first').find('img').attr('rel')).animate({opacity: 1}, 400);
	}catch(e){}	
	
	//Call the gallery function to run the slideshow, 6000 = change to next image after 6 seconds

	setInterval('gallery()',6000);
}

function gallery() {
	
	//if no IMGs have the show class, grab the first image
	var current = (J('.slideshow a.show')?  J('.slideshow a.show') : J('.slideshow a:first'));

	//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'))? J('.slideshow a:first') :current.next()) : J('.slideshow a: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}, 1000)
	.removeClass('show');
	
	//Set the opacity to 0 and height to 1px
	J('.slideshow .caption').animate({opacity: 0.0}, { queue:false, duration:0 }).animate({height: '1px'}, { queue:true, duration:50 });	
	
	//Animate the caption, opacity to 0.7 and heigth to 100px, a slide up effect
	J('.slideshow .caption').animate({opacity: 0.85},100 ).animate({height: '60px'},500 );
	
	//Display the content
	J('.slideshow .content').html(caption);
	
	
}
