
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function initSlideshow() {
	curtain = $("slideshow");
	
	// lift the curtain!
	if (curtain) {
		curtain.style.visibility = "visible";		
	
		slides = $("slideshow").getElementsByTagName("div");
	
		numSlides = slides.length;
	
		largestHeight = 0;
	
		for (i=0; i < numSlides; i++) {
			slides[i].style.zIndex = numSlides - i;
		
			var thisHeight;
		
			if (slides[i].getSize)
				thisHeight = slides[i].getSize().size.y;
			else
				thisHeight = slides[i].offsetHeight;
		
			if (thisHeight > largestHeight)
				largestHeight = thisHeight;
		}
	
		for (i=0; i < numSlides; i++) {
			slides[i].style.height = largestHeight + "px";
		}
	
		window.setTimeout("fadeToNext()", 5000);
	}
}

function fadeToNext() {
	/* First of all, determine the image with the highest z-index.
	 */
	
	slides = $("slideshow").getElementsByTagName("div");
	numSlides = slides.length;
	maxZ = topImg = secondImg = -1;
	
	for (i=0; i < numSlides; i++) {
		thisZ = parseInt(slides[i].style.zIndex);
		if (thisZ > maxZ) {
			maxZ = thisZ;
			secondImg = topImg;
			topImg = i;
		}
	}
	
	var fade = new Fx.Style(slides[topImg], 'opacity', {duration: 1500});
	
	fade.addEvent('onComplete', function() {
		slides[topImg].style.zIndex = 0;
		
		this.set(1); 	// reset opacity/visibility/filter(opacity) to default
		
		for (i=0; i < numSlides; i++) {
			slides[i].style.zIndex = parseInt(slides[i].style.zIndex) + 1;
		}
	});
	
	fade.start(0);
	
	window.setTimeout("fadeToNext()", 5000);
}

addLoadEvent(initSlideshow);
