/*****

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


*****/

//alert('Loading xfade2 script');

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 t, playpause=1;

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

	// 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
	// I moved this into the main.css style sheet.
/*	
	css = d.createElement("link");
	css.setAttribute("href","css/xfade2.css");
	css.setAttribute("rel","stylesheet");
	css.setAttribute("type","text/css");
	d.getElementsByTagName("head")[0].appendChild(css);
/* */
	imgs = d.getElementById("imageContainer").getElementsByTagName("img");
//	caps = d.getElementById("imageContainer").getElementsByTagName("h2");
	for(i=1;i<imgs.length;i++)
	{
		imgs[i].xOpacity = 0;
//		caps[i].xOpacity = 0;
	}
	imgs[0].style.display = "block";
	imgs[0].xOpacity = .99;
//	caps[0].style.display = "block";
//	caps[0].xOpacity = .99;
	
	// The second argument is no. of milliseconds between fades.
	// 5000 = 5 sec/image slide show.
	t=setTimeout(so_xfade,3000);
}

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

	nOpacity = imgs[nIndex].xOpacity;

	if (!playpause)
	{
		clearTimeout(t);
		if (cOpacity > nOpacity)
		{
			imgs[current].xOpacity = .99;
			imgs[nIndex].xOpacity = 0;
		}
		else
		{
			imgs[current].xOpacity = 0;
			imgs[nIndex].xOpacity = .99;
//			change_caption(current, nIndex);
		}
		setOpacity(imgs[current]); 
		setOpacity(imgs[nIndex]);
		return;
	}
	
	cOpacity-=.05; 
	nOpacity+=.05;

	// Use the toFixed method since floating point math is notoriously inaccurate
//	if (nOpacity.toFixed(2) == .5) change_caption(current, nIndex);

	imgs[nIndex].style.display = "block";
	imgs[current].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgs[current]); 
	setOpacity(imgs[nIndex]);
	
	if(cOpacity<=0)
	{
		imgs[current].style.display = "none";
		current = nIndex;
		// The second argument is no. of milliseconds between fades.
		// 5000 = 5 sec/image slide show.
		t=setTimeout(so_xfade,3000);
	}
	else
	{
		t=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) + ")";
}

/*
function change_caption(current, nIndex)
{
	caps[current].style.display = "none";
	caps[nIndex].style.display = "block";	
}
/* */	

function play_pause(x)
{
	if (x) playpause=1;
	else playpause=0;
//	playpause = 1-playpause;
//	alert(playpause);
	if (playpause) // Play slideshow
	{
//		alert("PLAY");
//		pp = d.getElementById("playpause");
//		pp.text = 'Pause'; // toggle button to display 'pause'
//		MM_swapImgRestore();
		t=setTimeout(so_xfade,1);
	}
	else // PAUSE slideshow
	{
//		alert("PAUSE");
//		pp = d.getElementById("playpause");
//		pp.text = 'Play'; // toggle button to display 'play'
//		MM_swapImage('playpause', '', 'media/play.gif');
	}
}
/* */