// settings
var slideshowElement = 'slideshow';
var slideshowSpeed = 1000; 	// speed of the animation in miliseconds
var slideshowDelay = 5000; 	// time between two images in miliseconds
var slideshowStartFrame = 0	// frame to start with

// vars
var slideshowItems, slideshowEndFrame, slideshowTimer;
window.aniSlideshow = new Array();

function iniSlideshow() {
	
	clearTimeout(slideshowTimer);
	
	slideshowItems = $$('#'+slideshowElement+' li');
	
	if (slideshowItems.length != 0) {
		
		slideshowEndFrame = slideshowItems.length-1;
	
		for (var i=0, j=slideshowEndFrame; i<=j; i+=1) {
			slideshowItems[i].setStyle({
				opacity: 0.0
			});
		
			window.aniSlideshow[i] = new Animator({
				duration: slideshowSpeed
			}).addSubject(new NumericalStyleSubject(
				slideshowItems[i], 'opacity', 0, 1)
			);
		}
	
		$(slideshowElement).setStyle({
			display: 'block'
		});
	
		startSlideshow(slideshowStartFrame);
	
	}
}

function startSlideshow(frame) {
	window.aniSlideshow[frame].seekTo(1);
	slideshowTimer = window.setTimeout('runSlideshow('+(slideshowStartFrame+1)+')', slideshowDelay);
}

function runSlideshow(frame) {
		
	if (frame == slideshowStartFrame) { 
		var hideFrame = slideshowEndFrame;
	} else {
		var hideFrame = frame-1;
	}
	
	window.aniSlideshow[frame].seekTo(1);
	window.aniSlideshow[hideFrame].seekTo(0);
	
	if (frame == slideshowEndFrame) { 
		frame = slideshowStartFrame;
	} else {
		frame+=1;
	}
	
	slideshowTimer = window.setTimeout('runSlideshow('+frame+')', slideshowDelay);
}

Event.observe(window, 'load', iniSlideshow, false);