/*****
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', initCrossFading, false):window.attachEvent('onload', initCrossFading);

var imgsBannerImage1 = new Array(), imgsBannerImage2 = new Array(), imgsBannerImage3 = new Array(), imgsBannerImage4 = new Array(), imgsBannerImage5 = new Array();
var currentBannerImage1 = 0, currentBannerImage2 = 0, currentBannerImage3 = 0, currentBannerImage4 = 0, currentBannerImage5 = 0;
var totalTimeout = 3000;

function initCrossFading()
{
	if(!document.getElementById || !document.createElement)
		return;

	//using extra functions to handle the arrays doesn't seem to work in any way, so I'm duplicating code.
	imgsBannerImage1 = document.getElementById('bi1').getElementsByTagName('img');
	var i = imgsBannerImage1.length;
	while(--i)
	{
		var j = Math.floor(Math.random() * (i + 1));
		var tempi = imgsBannerImage1[i].src;
		var tempj = imgsBannerImage1[j].src;
		imgsBannerImage1[i].src = tempj;
		imgsBannerImage1[j].src = tempi;
	}
	for(i = 0; i < imgsBannerImage1.length; i++)	//Set opacity of all images, except the first one, to 0
		imgsBannerImage1[i].xOpacity = 0;
	currentBannerImage1 = Math.floor(Math.random() * imgsBannerImage1.length)
	imgsBannerImage1[currentBannerImage1].style.display = 'block';
	imgsBannerImage1[currentBannerImage1].xOpacity = .99;
	
	imgsBannerImage2 = document.getElementById('bi2').getElementsByTagName('img');
	var i = imgsBannerImage2.length;
	while(--i)
	{
		var j = Math.floor(Math.random() * (i + 1));
		var tempi = imgsBannerImage2[i].src;
		var tempj = imgsBannerImage2[j].src;
		imgsBannerImage2[i].src = tempj;
		imgsBannerImage2[j].src = tempi;
	}
	for(i = 0; i < imgsBannerImage2.length; i++)	//Set opacity of all images, except the first one, to 0
		imgsBannerImage2[i].xOpacity = 0;
	currentBannerImage2 = Math.floor(Math.random() * imgsBannerImage2.length)
	imgsBannerImage2[currentBannerImage2].style.display = 'block';
	imgsBannerImage2[currentBannerImage2].xOpacity = .99;
	
	imgsBannerImage3 = document.getElementById('bi3').getElementsByTagName('img');
	var i = imgsBannerImage3.length;
	while(--i)
	{
		var j = Math.floor(Math.random() * (i + 1));
		var tempi = imgsBannerImage3[i].src;
		var tempj = imgsBannerImage3[j].src;
		imgsBannerImage3[i].src = tempj;
		imgsBannerImage3[j].src = tempi;
	}
	for(i = 0; i < imgsBannerImage3.length; i++)	//Set opacity of all images, except the first one, to 0
		imgsBannerImage3[i].xOpacity = 0;
	currentBannerImage3 = Math.floor(Math.random() * imgsBannerImage3.length)
	imgsBannerImage3[currentBannerImage3].style.display = 'block';
	imgsBannerImage3[currentBannerImage3].xOpacity = .99;
	
	imgsBannerImage4 = document.getElementById('bi4').getElementsByTagName('img');
	var i = imgsBannerImage4.length;
	while(--i)
	{
		var j = Math.floor(Math.random() * (i + 1));
		var tempi = imgsBannerImage4[i].src;
		var tempj = imgsBannerImage4[j].src;
		imgsBannerImage4[i].src = tempj;
		imgsBannerImage4[j].src = tempi;
	}
	for(i = 0; i < imgsBannerImage4.length; i++)	//Set opacity of all images, except the first one, to 0
		imgsBannerImage4[i].xOpacity = 0;
	currentBannerImage4 = Math.floor(Math.random() * imgsBannerImage4.length)
	imgsBannerImage4[currentBannerImage4].style.display = 'block';
	imgsBannerImage4[currentBannerImage4].xOpacity = .99;
	
	imgsBannerImage5 = document.getElementById('bi5').getElementsByTagName('img');
	var i = imgsBannerImage5.length;
	while(--i)
	{
		var j = Math.floor(Math.random() * (i + 1));
		var tempi = imgsBannerImage5[i].src;
		var tempj = imgsBannerImage5[j].src;
		imgsBannerImage5[i].src = tempj;
		imgsBannerImage5[j].src = tempi;
	}
	for(i = 0; i < imgsBannerImage5.length; i++)	//Set opacity of all images, except the first one, to 0
		imgsBannerImage5[i].xOpacity = 0;
	currentBannerImage5 = Math.floor(Math.random() * imgsBannerImage5.length)
	imgsBannerImage5[currentBannerImage5].style.display = 'block';
	imgsBannerImage5[currentBannerImage5].xOpacity = .99;
	
	setTimeout(crossFade1, totalTimeout/3);
}

function fisherYates(myArray)
{
  var i = myArray.length;
  if(i == 0)
  	return false;
  while(--i)
  {
     var j = Math.floor(Math.random() * (i + 1));
     var tempi = myArray[i].src;
     var tempj = myArray[j].src;
     myArray[i].src = tempj;
     myArray[j].src = tempi;
   }
}

function crossFade1() { crossFade(1); }
function crossFade2() { crossFade(2); }
function crossFade3() { crossFade(3); }
function crossFade4() { crossFade(4); }
function crossFade5() { crossFade(5); }

function crossFade(number)
{
	imgArray = eval('imgsBannerImage' + number);
	currentImageIndex = eval('currentBannerImage' + number);
	
	cOpacity = imgArray[currentImageIndex].xOpacity;
	nIndex = imgArray[currentImageIndex+1]? currentImageIndex+1 : 0;

	nOpacity = imgArray[nIndex].xOpacity;
	
	cOpacity -= .025; 
	nOpacity += .025;
	
	imgArray[nIndex].style.display = 'block';
	imgArray[currentImageIndex].xOpacity = cOpacity;
	imgArray[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgArray[currentImageIndex]); 
	setOpacity(imgArray[nIndex]);
	
	if(cOpacity<=0)
	{
		imgArray[currentImageIndex].style.display = 'none';
		if(number == 1)
		{
			currentBannerImage1 = nIndex;
			setTimeout(crossFade2, totalTimeout);
		}
		else if(number == 2)
		{
			currentBannerImage2 = nIndex;
			setTimeout(crossFade3, totalTimeout);
		}
		else if(number == 3)
		{
			currentBannerImage3 = nIndex;
			setTimeout(crossFade4, totalTimeout);
		}
		else if(number == 4)
		{
			currentBannerImage4 = nIndex;
			setTimeout(crossFade5, totalTimeout);
		}
		else if(number == 5)
		{
			currentBannerImage5 = nIndex;
			setTimeout(crossFade1, totalTimeout);
		}
	}
	else
	{
		setTimeout(eval('crossFade' + number), 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) + ')';
	}
}