document.observe("dom:loaded", function() {
	loadExtraSlides();
	start_slideshow();
});

function loadSlide(imageSet, slideID) {
	new Ajax.Request('/include/501loadslide.php',
  	{
    	method:'post',
			parameters: {set: imageSet, slide: slideID},
    	onSuccess: function(transport){
				if (transport) {
      		var response = transport.responseText;
				}
				slide = document.getElementById('slideshow'+slideID);
				if (slide) {
					slide.innerHTML = response;
				}
    	}
  	});
}

function start_slideshow() {
	setTimeout(switch_slides(1, 1, getEndFrame(), getDelay()), getDelay());
}

function switch_slides(frame, start_frame, end_frame, delay) {
	return (function() 
		{
			//End frame has been reached.  Hide slides between first and last.  Set timer to fade out last slide.
			if (frame == end_frame) 
			{
				frame = start_frame;
				var slideshowChildren = $('five01slideshow').childElements();
				for (var x = 1; x < slideshowChildren.size() - 3; x++) // - 3 bbecause we are ignoring the last slide and the two input elements.
				{
					if (slideshowChildren[x].hasClassName('slide'))
					{
						slideshowChildren[x].setStyle({ display: 'none' });
					}
				}
				setTimeout("Effect.Fade('slideshow" + (x + 1) + "');", 3000);
			}  
			//Show next frame.  Set timer for following frame.
			else 
			{ 
				frame = frame + 1; 
				setTimeout("Effect.Appear('slideshow" + frame + "');", 3000);
			}
			setTimeout(switch_slides(frame, start_frame, end_frame, delay), (delay * 1000) + 3000);
		}
	);
}

function loadExtraSlides()
{
	$('five01slideshow')
		.childElements()
		.each(function(element, index) {
			if (element.hasClassName('slide'))
			{
				loadSlide(getSet(), index + 1);
			}
		});
}

function getEndFrame()
{
	return $('five01slideshow').childElements().size() - 2; //leave out 2 input fields
}

function getDelay()
{
	return $('five01slideshow-delay').getValue();
}

function getSet()
{
	return $('five01slideshow-set').getValue();
}