/*
	Image Cross Fade Redux
	Version 1.0
	Last revision: 02.15.2006
	steve@slayeroffice.com

	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;

var leftImages = new Array(), rightImages = new Array();
var leftCurrent = 0, rightCurrent = 0;

function so_init()
{
	if(!d.getElementById || !d.createElement)return;

	css = d.createElement('link');
	css.setAttribute('href','/templates/portal/css/fade.css');
	css.setAttribute('rel','stylesheet');
	css.setAttribute('type','text/css');
	d.getElementsByTagName('head')[0].appendChild(css);

	leftImages = setupImageArray('left-banner');
	rightImages = setupImageArray('right-banner');

	setTimeout(so_xfade,3000);
}

function setupImageArray(id)
{
	imgs = d.getElementById(id).getElementsByTagName('img');
	imgs[0].style.display = 'block';
	for(var i = 0, numImages = imgs.length; i < numImages; ++i) {
		imgs[i].xOpacity = 0;
	}
	imgs[0].xOpacity = .99;
	return imgs;
}

function so_xfade()
{
	c1Opacity = leftImages[leftCurrent].xOpacity;
	c2Opacity = rightImages[rightCurrent].xOpacity;
	
	n1Index = leftImages[leftCurrent+1]?leftCurrent+1:0;
	n2Index = rightImages[rightCurrent+1]?rightCurrent+1:0;
	n1Opacity = leftImages[n1Index].xOpacity;
	n2Opacity = rightImages[n2Index].xOpacity;

	c1Opacity-=.05;
	c2Opacity-=.05;
	n1Opacity+=.05;
	n2Opacity+=.05;

	leftImages[n1Index].style.display = 'block';
	rightImages[n2Index].style.display = 'block';
	leftImages[leftCurrent].xOpacity = c1Opacity;
	rightImages[rightCurrent].xOpacity = c2Opacity;
	leftImages[n1Index].xOpacity = n1Opacity;
	rightImages[n2Index].xOpacity = n2Opacity;

	setOpacity(leftImages[leftCurrent]);
	setOpacity(rightImages[rightCurrent]);
	setOpacity(leftImages[n1Index]);
	setOpacity(rightImages[n2Index]);

	if(c1Opacity<=0)
	{
		leftImages[leftCurrent].style.display = 'none';
		rightImages[rightCurrent].style.display = 'none';
		leftCurrent = n1Index;
		rightCurrent = n2Index;
		setTimeout(so_xfade,3000);
	}
	else
	{
		setTimeout(so_xfade,50);
	}
/*
	if(c2Opacity<=0)
	{
		rightImages[rightCurrent].style.display = 'none';
		rightCurrent = n2Index;
		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) + ')';
	}
}
