// JavaScript Document
// Slideshow 0.1
// by Leo Gerber, diewebdesigner.com
// using Prototype and Sriptaculous


// Time to wait before each cycle
myStartDelay = 1000;
//Time to wait between fading
myDelay = 2.0;
// Fading Time
myFadeTime = 2.0;
// Should preloading start on execution (false) or on window.load (true)
startOnLoad = true;
//
// Counters, don't touch
cnt = 0;
myLoaded = 0;
//
// Preload Images
function preloadImages() {
	pics = new Array();
	// Change to imagepaths for Slideshow
	pics[0] = "gfx/2007/benjamin_01.jpg";
	pics[1] = "gfx/2007/benjamin_02.jpg";
	pics[2] = "gfx/2007/benjamin_03.jpg";
	pics[3] = "gfx/2007/benjamin_04.jpg";
	
	pl = pics.length;
	preloadImg = Array(pl);
	for (i=0; i<pl; i++) {
		preloadImg[i] = new Image();
		new Event.observe(preloadImg[i], 'load', imgLoaded, false);
		preloadImg[i].src = pics[i];
	}
}

// Check if all images are loaded
function imgLoaded() {
	myLoaded++;
	if(myLoaded == pl) {
		initMyImgFade();
	}
}

// Setup DOM nodes and start slideshow
function initMyImgFade() {
	cnt = 1;
	imgcontainer = $('slideContainer');
	image1cont = $('slideImage');
	tmpImg2cont = Builder.node('div', {id:'slideImage2', style:'position:relative; z-index:5'});
	imgcontainer.appendChild(tmpImg2cont);
	image2cont = $('slideImage2');
	tmpImg2 = Builder.node('img', {id:'img2', src:''});
	tmpImg2.src = preloadImg[1].src;
	image2cont.appendChild(tmpImg2);
	image1 = $('img1');
	image1.src = preloadImg[0].src;
	image2 = $('img2');
	setTimeout("startSlideshow();", myStartDelay);
}

function startSlideshow() {
	for (i=0; i<pl; i++) {
		new Effect.Opacity(image1, {duration:myFadeTime, from:1.0, to:0.0, afterFinish:changeImg1, queue: {position:'end', scope:'imgfade'}});
		new Effect.Opacity(image1, {duration:0.5, from:0.0, to:1.0, delay:myDelay, afterFinish:changeImg2, queue: {position:'end', scope:'imgfade'}});
	}
}

function reStart() {
	setTimeout("startSlideshow();", myStartDelay);
}

function changeImg1(obj) {
	image1.src = preloadImg[cnt].src;
}

function changeImg2(obj) {
	cnt++;
	if(cnt == pl) {
		cnt = 0;
		image2.src = preloadImg[cnt].src;
		reStart();
	} else {
		image2.src = preloadImg[cnt].src;
	}
}
if(startOnLoad == true) {
	Event.observe(window, 'load', preloadImages, false);
} else {
	preloadImages();
}