/*****

Image Cross Fade Redux
Version 1.5
Last revision: 10.03.2006
steve@slayeroffice.com

Please leave this notice intact. 

Rewrite of old code found here: http://slayeroffice.com/code/imageCrossFade/index.html

Rewritten by Kesher

*****/

window.addEventListener ? window.addEventListener("load", so_init, false) : window.attachEvent("onload", so_init);

var d = document, imgs = new Array(), current = new Array(), src = new Array(), i, f;

function so_init()
{
	if( ! d.getElementById || ! d.createElement )
		return;
	
	for (i = 0; d.getElementById('imageContainer' + i) != null; i++)
	{
		current[i] = 0;
		imgs[i] = new Array();
		f = function(e) {
							if (!e)
								var e = window.event;
							if (e.target)
								dest = e.target.src;
							else if (e.srcElement)
								dest = e.srcElement.src;
							return popitup('/index.php/pages/show/?src=' + dest, 'imagen', 200, 200, 0);
						};
						
		imgs[i] = d.getElementById("imageContainer" + i).getElementsByTagName("img");
		for(j = 0; j < imgs[i].length; j++)
		{
			imgs[i][j].xOpacity = 0;
		}
		imgs[i][0].style.display = "block";
		imgs[i][0].style.visibility = "visible";
		imgs[i][0].xOpacity = .99;
		
		c = d.getElementById('imageContainer' + i);
		c.addEventListener ? c.addEventListener("click", f, false) : c.attachEvent("onclick", f);
	}
	
	if (d.getElementById('imageContainer0') != null)
		setTimeout(so_xfade, 100);
}

function so_xfade()
{
	for (i = 0; d.getElementById('imageContainer' + i) != null; i++)
	{
		cOpacity = imgs[i][current[i]].xOpacity;
		nIndex = imgs[i][current[i]+1] ? current[i]+1 : 1;
		while ( ! imgs[i][nIndex].complete );
		nOpacity = imgs[i][nIndex].xOpacity;
		
		cOpacity -= .05; 
		nOpacity += .05;
		
		imgs[i][nIndex].style.display = "block";
		imgs[i][nIndex].style.visibility = "visible";
		imgs[i][current[i]].xOpacity = cOpacity;
		imgs[i][nIndex].xOpacity = nOpacity;
		
		setOpacity(imgs[i][current[i]]); 
		setOpacity(imgs[i][nIndex]);
		
		if(cOpacity <= 0)
		{
			imgs[i][current[i]].style.display = "none";
			imgs[i][current[i]].style.visibility = "hidden";
			
			current[i] = nIndex;
		}
	}

	if(cOpacity <= 0)
		setTimeout(so_xfade, 3000);
	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) + ")";
	}
}