/*****

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

*****/

// Butchered by danrashid@gmail.com

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

var slides = new Array(), thisSlide = 0, lastSlide = 0, oldSlide = 0;

function so_init() {
	if (document.getElementById("slides")) {
		slides = document.getElementById("slides").getElementsByTagName("div");
		lastSlide = slides.length - 1;
		for(i = 1; i <= lastSlide; i++) slides[i].xOpacity = 0;
		slides[0].style.display = "block";
		slides[0].xOpacity = 1;
		so_play();
	}
}

function so_play() {
	if (!document.getElementById("slides").getElementsByTagName("h5").length) {
		setTimeout('so_swap(1)',5000);
	}
}

function so_swap(offset) {
	oldSlide = thisSlide;
	thisSlide += offset;
	if(thisSlide > lastSlide) thisSlide = 0;
	if(thisSlide < 0) thisSlide = lastSlide;
	slides[thisSlide].style.display = "block";
	so_xfade();
}

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

function so_xfade() {
	slides[thisSlide].xOpacity += .05; setOpacity(slides[thisSlide]);
	slides[oldSlide].xOpacity -= .05; setOpacity(slides[oldSlide]);
	if (slides[thisSlide].xOpacity < 1) {
		setTimeout('so_xfade()',50);
	} else {
		slides[oldSlide].style.display = "none";
		so_play();
	}
}
