var slideshow_id_array 		= new Array();
var slideshow_select_array	= new Array();


function slideshow(slide_name, start_frame, end_frame, time_delay_ms, time_duration) { 

	slideshow_id_array[slide_name] 		= "";
	time_delay 							= time_delay_ms * 1000;	

	setTimeout(switch_slides(slide_name, start_frame, start_frame, end_frame, time_delay, time_duration), time_delay); 
}

function start_slideshow(slide_name, start_frame, end_frame, time_delay_ms, time_duration) { 
	
	slideshow_id_array[slide_name] 		= "N";
	time_delay 							= time_delay_ms * 1000;

	switch_slides(slide_name, start_frame, start_frame, end_frame, time_delay, time_duration);
}

function switch_slides(slide_name, frame, start_frame, end_frame, time_delay, time_duration) {
	return (function() {
		
		if (slideshow_id_array[slide_name] != "N") {

			Effect.Fade(slide_name + frame , { duration: time_duration, from:1.0, to:0.0 });	

			if (frame == end_frame)		{ frame = start_frame; } 
			else								{ frame = frame + 1; }
			
			Effect.Appear(slide_name + frame, { duration: time_duration, from:0.0, to:1.0 });	
			setTimeout(switch_slides(slide_name, frame, start_frame, end_frame, time_delay, time_duration), time_delay);							
		}
		
		else {

			clear_slideshow_id(slide_name);
			setTimeout(switch_slides(slide_name, start_frame, start_frame, end_frame, time_delay, time_duration), time_delay);
		}
	})
}

function clear_slideshow_id (slide_id) { 

	slideshow_id_array[slide_id] = ""; 
}

function stop_slideshow(slide_id) { 		

	clearTimeout(slide_id);
}

function select_slideshow(slide_name, start_frame, end_frame, time_delay_ms, time_duration) {

	if (slideshow_select_array[slide_name] == "Y") {
		
		slideshow(slide_name, start_frame, end_frame, time_delay_ms, time_duration);
		slideshow_select_array[slide_name] = "";
	}
	
	else { 
	
		start_slideshow(slide_name, start_frame, end_frame, time_delay_ms, time_duration); 
	}
}
