
/* FUNCTION: start_slideshow(prefix, start_frame, end_frame, delay [,fadeduration])
 * 
 * SAMPLE USAGE
 * 
 *  <div id="slideshow_1" class="slide">Happy</div>
	<div id="slideshow_2" class="slide" style="display: none">Halloween</div>
	<div id="slideshow_3" class="slide" style="display: none">To</div>
	<div id="slideshow_4" class="slide" style="display: none">You</div>
	<div id="slideshow_5" class="slide" style="display: none">!</div>
	
	<script type="text/javascript">
		start_slideshow('slideshow_', 1, 5, 2000, 750);
	</script>
 * 
 */


function start_slideshow(prefix, start_frame, end_frame, delay, fadeduration) {
    if (!window.slideshows){
		window.slideshows = {};
	}
	if (typeof window.slideshows[prefix] != 'undefined') {
		window.clearTimeout(window.slideshows[prefix]);
	}
	window.slideshows[prefix] = setTimeout(switch_slides(prefix, start_frame,start_frame,end_frame, delay, fadeduration), delay);
}

function end_slideshow(prefix) {
	if (!window.slideshows){
		window.slideshows = {};
	}
	if (typeof window.slideshows[prefix] != 'undefined') {
		window.clearTimeout(window.slideshows[prefix]);
	}
}

function switch_slides(prefix, frame, start_frame, end_frame, delay, fadeduration) {
    if (typeof(fadeduration) == 'undefined') {
    	/* Default fade duration */
    	var _fadeduration = 0.75;
    } else {
    	/* convert milliseconds to seconds (scriptaculous needs this) */
    	var _fadeduration = fadeduration/1000;
    }
    return (function() {
        Effect.Fade(prefix + frame, {duration:_fadeduration});
        if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
        setTimeout("Effect.Appear('" + prefix + frame + "', {duration:"+_fadeduration+"});", fadeduration*0.5);
        window.slideshows[prefix] = setTimeout(switch_slides(prefix, frame, start_frame, end_frame, delay, fadeduration), delay);
    })
}