// JavaScript Document
// JavaScript slideshow
var slides = new Array
	(
	"images/slideshow/slide1.jpg",
	"images/slideshow/slide2.jpg",
	"images/slideshow/slide3.jpg",
	"images/slideshow/slide4.jpg",
	"images/slideshow/slide5.jpg",
	"images/slideshow/slide6.jpg"
	);
// Current slide
var currentSlideNo = 0;	// First Slide
var slideShowTimer = false;
var fadeEvery = 4;	// Fade images every n seconds
var nextImg = new Image();		// will hold next image preloaded
var nextSlideNo = 1;	// index of slide to preload
var preloadComplete = false;
var slideUp = 0;

function showSlides()
{
	if (!slides.length || slides.length < 2) return false; // do nothing for an empty slide show or one containg one slide
	if (!slideShowTimer && document.createElement && document.getElementById && document.appendChild) {
			// first run so setup second image for fade between and set run fadeEvery seconds
			var img1 = document.createElement('img');
			//img1.width = $('slideimg0').width;	// dont copy as images can be different sizes
			//img1.height = $('slideimg0').height;	// dont copy as images can be different sizes
			img1.zindex = $('slideimg0').zindex;
			img1.position = $('slideimg0').position;
			img1.top = $('slideimg0').top;
			img1.left = $('slideimg0').left;
			img1.src = slides[nextSlideNo];
			img1.alt = $('slideimg0').alt;
			img1.style.display = 'none';
			img1.id = 'slideimg1';
			if (img1.useMap) {
				img1.useMap = $('slideimg0').useMap;
			}
			var slideshow = document.getElementById('slideshow');
			slideshow.appendChild(img1);
			slideShowTimer = setInterval("showSlides()",fadeEvery*1000);
			Event.observe(window, 'unload', function (e) {clearInterval(slideShowTimer);});
			nextImg = new Image($('slideimg0').width,$('slideimg0').height); // create preload image holder
			if (currentSlideNo+1 < slides.length) {
				// if more than one slide prefetch the next one
				nextSlideNo = currentSlideNo+1;
				nextImg.src = slides[nextSlideNo++];	// preload next image
			}
			return true;
	}
	currentSlideNo++; // next slide
	if (currentSlideNo >= slides.length) {
		// if we've shown them all go back to the start
		currentSlideNo = 0;
	}
	if (nextImg.height) {
		// if we've got image and height info reset it
		nextHeight = nextImg.height;
		nextWidth = nextImg.width;
	}
	if (!preloadComplete) {
		if (nextSlideNo >= slides.length) {
			// dont preload second time around, as no need
			// to enable uncomment below
			//preloadComplete = true;
		} else {
			nextImg.src = slides[nextSlideNo++];	// preload next image
		}
	}
	// Change slide
	slideUp = 1-slideUp;
	slideDown = 1-slideUp;
	new Effect.Fade('slideimg'+slideDown,{to:0, from:1, duration:2});
	$('slideimg'+slideUp).src = slides[currentSlideNo];
	new Effect.Appear('slideimg'+slideUp,{to:1, from:0, duration:2});
}
// Setup repeated call via setInterval
Event.observe(window, 'load', function (e) {showSlides();});
