/*****

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


*****/



var d=document, imgs = new Array(), animationSpeed=50, firstInterval = 500, zInterval = 3000, pause=true;

function so_init() {

	if(!d.getElementById || !d.createElement)return;
	if(imgs != null && imgs.length > 0) {
		fadeImageContainerName = "fadeImageContainer"+(imgs.length+1);
	} else {
		fadeImageContainerName = "fadeImageContainer1";
	}

	// DON'T FORGET TO GRAB THIS FILE AND PLACE IT ON YOUR SERVER IN THE SAME DIRECTORY AS THE JAVASCRIPT!
	// http://slayeroffice.com/code/imageCrossFade/xfade2.css
	css = d.createElement("link");
	css.setAttribute("href","xfade2.css");
	css.setAttribute("rel","stylesheet");
	css.setAttribute("type","text/css");
	d.getElementsByTagName("head")[0].appendChild(css);
	imgs.push( d.getElementById(fadeImageContainerName).getElementsByTagName("img") );
	var lastImgs = imgs.length-1;
	
	for( i = 1; i<imgs[lastImgs].length; i++) {
		imgs[lastImgs][i].xOpacity = 0;
	}	
	imgs[lastImgs][0].style.display = "block";
	imgs[lastImgs][0].xOpacity = .99;

	if(d.getElementById("fadeImageContainer"+(imgs.length+1)) != null) {
		setTimeout(so_init, 100);
	}
	setTimeout("so_xfade(0, "+lastImgs+")", firstInterval+(imgs.length*500));
	
}

function so_xfade(current, imgsElement) {

	cOpacity = imgs[imgsElement][current].xOpacity;
	nIndex = imgs[imgsElement][current+1]?current+1:0;
	nOpacity = imgs[imgsElement][nIndex].xOpacity;
			
	cOpacity-=.05; 
	nOpacity+=.05;
			
	imgs[imgsElement][nIndex].style.display = "block";
	imgs[imgsElement][current].xOpacity = cOpacity;
	imgs[imgsElement][nIndex].xOpacity = nOpacity;
			
	setOpacity(imgs[imgsElement][current]); 
	setOpacity(imgs[imgsElement][nIndex]);
		
	if(cOpacity<=0) {
		imgs[imgsElement][current].style.display = "none";
		current = nIndex;
		setTimeout("so_xfade("+current+", "+imgsElement+")", zInterval);
	} else {
		setTimeout("so_xfade("+current+", "+imgsElement+")", animationSpeed);
	}
}


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) + ")";
}
