/*****

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


*****/


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

var d=document, imgs = new Array(), zInterval = null, current=0, pause=false, src_current = '', new_imgs = new Array();

function so_init() {
	if(!d.getElementById || !d.createElement)return;
	
	imgs = d.getElementById("imageContainer").getElementsByTagName("img");
	for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;
	imgs[0].style.display = "block";
	imgs[0].xOpacity = .99;
	
	if(src_current.length)
		setTimeout(so_xfade,1);
	else
		setTimeout(so_xfade,6500);
}

function so_xfade() {
	cOpacity = imgs[current].xOpacity;
	nIndex = imgs[current+1]?current+1:0;

	nOpacity = imgs[nIndex].xOpacity;
	
	cOpacity-=.05;
	nOpacity+=.05;
	
	imgs[nIndex].style.display = "block";
	imgs[current].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgs[current]);
	setOpacity(imgs[nIndex]);
	
	var change_now = false;
	
	if(d.getElementById("async.newbanners").getElementsByTagName("img").length && d.getElementById("async.newbanners").getElementsByTagName("img")[0].alt != "loading_image")
		change_now = true;
	else
		change_now = false;
	
	if(cOpacity<=0) 
	{	
		imgs[current].style.display = "none";		
		current = nIndex;
		
		if(src_current.length && current == 1)
		{
			d.getElementById("imageContainer").removeChild(imgs[0]);
			src_current = '';
			current = 0;
		}
		
		if(change_now)
			setTimeout(clear_images,1);
		else
			setTimeout(so_xfade,5000);
	} 
	else 
	if(imgs.length==1 && change_now )
		setTimeout(clear_images,1);
	else
		setTimeout(so_xfade,50);	
	
	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) + ")";
	}
	
}

//  For this site

function clear_images ()
{
	var n = imgs.length, i=0;
	
	if(d.getElementById("async.newbanners").getElementsByTagName("img")[0].alt != "loading_image")
	{	
		src_current = imgs[current].src;
		current = 0;
		
		while(imgs.length!=1)
		{		
			if(imgs[i].src!=src_current)
				d.getElementById("imageContainer").removeChild(imgs[i]);
			else
				i++;
		}
		
		add_images();
	}
	else
		setTimeout(so_xfade,50);
}

function add_images ()
{
	var n = new_imgs.length, i = 0;
	
	new_imgs = d.getElementById("async.newbanners").getElementsByTagName("img");
	
	while(new_imgs.length>0)
		d.getElementById("imageContainer").appendChild(new_imgs[i]);
	
	setTimeout(so_init,4950);
}