/*****
 * Image Cross Fade Redux
 * Version 1.0
 * Last revision: 02.15.2006
 * steve@slayeroffice.com
 *
 * Please leave this notice intact. 
 *
 * Rewrite of old code found here:
 *	http://slayeroffice.com/code/imageCrossFade/index.html
*****/

/*
 * Local adaptation: moved the CSS out of here, variable timings, ...
 */

window.addEventListener ? window.addEventListener("load", so_init, false) : window.attachEvent("onload", so_init);

var imgs		= new Array();
var currentImage	= 0;

var slideSpeed		= 3000;
var xfadeSpeed		= 75;

function so_init() {
	var	i;

	if ( !document.getElementById )
		return;

	imgs = document.getElementById('xfadeSlides').getElementsByTagName('img');
	for ( i = 1 ; i < imgs.length ; i++ )
		imgs[i].xOpacity = 0;

	imgs[0].style.display	= "block";
	imgs[0].xOpacity	= .99;

	setTimeout(so_xfade, slideSpeed);
}

function so_xfade() {
	var cOpacity	= imgs[currentImage].xOpacity;
	var nIndex	= imgs[currentImage + 1] ? currentImage + 1 : 0; /* next image in loop */
	var nOpacity	= imgs[nIndex].xOpacity;

	cOpacity -= .05; 
	nOpacity += .05;

	imgs[nIndex].style.display	= "block";
	imgs[currentImage].xOpacity	= cOpacity;
	imgs[nIndex].xOpacity		= nOpacity;

	setOpacity(imgs[currentImage]); 
	setOpacity(imgs[nIndex]);

	if ( cOpacity <= 0 ) {
		imgs[currentImage].style.display = "none";
		currentImage = nIndex;
		setTimeout(so_xfade, slideSpeed);
	} else {
		setTimeout(so_xfade, xfadeSpeed);
	}

	function setOpacity(obj) {
		if ( obj.xOpacity > .99 ) {
			obj.xOpacity = .99;
			return;
		}
		obj.style.opacity	= obj.xOpacity;
		obj.style.MozOpacity	= obj.xOpacity;
		obj.style.filter	= "alpha(opacity=" + (obj.xOpacity*100) + ")";
	}
}

