/*****

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_initAlternate,false):window.attachEvent("onload",so_initAlternate);

var d=document, imgsAlternate = new Array(), zIntervalAlternate = null, currentAlternate=0, pauseAlternate=false;
var afbStartAlternate;
var try_initAlternate = 0;
var sNoImg = '/images/shownoimg.gif';
var sHttpNoImg = location.protocol + '//' + location.host + sNoImg;

function so_initAlternate()
{
	if (!d.getElementById || !d.createElement)
	{
	
		// in de timing kennelijk iets 'mis'
		try_initAlternate += 1;
	
		if (try_initAlternate < 10) setTimeout(so_initAlternate,1000);
		
		return;
	}
/*	
	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);
*/	

	// Verschil zit 'm in imageContainerHome vers imageContainer
	if (d.getElementById("imageContainer_projecten_home"))
	{
		imgsAlternate = d.getElementById("imageContainer_projecten_home").getElementsByTagName("img");
	}
	else
	{
		return;
	}
	if (!imgsAlternate)
	{
		// ? iets mis met de pagina
		try_initAlternate += 1;
		setTimeout(so_initAlternate,1000);
		
		return;
	}
  
	var randStart= afbStartAlternate - 1; //wordt in template 66 gevuld
	
	// for sure..
	if (isNaN(randStart)) randStart = 0;
	if (randStart < 0) randStart = 0; 
	
	for(i=0;i<imgsAlternate.length;i++) imgsAlternate[i].xOpacity = 0;
	
	// bepaal de image om mee te starten
	// begin bij de afbStartAlternate - 1 (deze is vast of random bepaald)
	var iCntNoImg = 0;
	
	while (((imgsAlternate[randStart].src==sHttpNoImg) || (imgsAlternate[randStart].src==sNoImg)) && (iCntNoImg < 20))
	{
		
		// imgsAlternate[x+1]; als deze bestaat... anders de 0-de 	
		iCntNoImg += 1;
		randStart = imgsAlternate[randStart+1]?randStart+1:0;
		
	}

	// gevonden
	imgsAlternate[randStart].style.display = "block";
	imgsAlternate[randStart].xOpacity = .99;	
	currentAlternate=randStart;
	setTimeout(so_xfadeAlternate,5000);  // hier stond 000  dus ...
} 

function so_xfadeAlternate()
{
	// de volgende image ...

	// neem de xOpacity over van het actuele plaatje (currentAlternate)
	cOpacity = imgsAlternate[currentAlternate].xOpacity;

	// het volgende plaatje: x+1 of 0
	nIndex = imgsAlternate[currentAlternate+1]?currentAlternate+1:0;
	
	var iCntNoImg = 0;
	
	while (((imgsAlternate[nIndex].src==sHttpNoImg) || (imgsAlternate[nIndex].src==sNoImg)) && (iCntNoImg < 20))
	{
		// het volgende plaatje zoeken indien shownoimg.gif
		iCntNoImg += 1;
		nIndex = imgsAlternate[nIndex+1]?nIndex+1:0;
	}
	
	if (iCntNoImg == 20)
	{
		// gewoon de volgende noimg pakken
		nIndex = imgsAlternate[currentAlternate+1]?currentAlternate+1:0;
	}
  
	// (next)
	nOpacity = imgsAlternate[nIndex].xOpacity;
	
	cOpacity-=.02; // afnemen
	nOpacity+=.02; // toenemen
	
	imgsAlternate[nIndex].style.display = "block"; // display de nieuwe
	imgsAlternate[currentAlternate].xOpacity = cOpacity;
	imgsAlternate[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgsAlternate[currentAlternate]); 
	setOpacity(imgsAlternate[nIndex]);
	
	if (cOpacity<=0)
	{
		imgsAlternate[currentAlternate].style.display = "none";
		
		// nieuw plaatje
		currentAlternate = nIndex;
		setTimeout(so_xfadeAlternate,1000);
	}
	else
	{
		// huidig plaatje
		setTimeout(so_xfadeAlternate,50);
	}
		
	function setOpacity(obj)
	{
		if(obj.xOpacity>.99)
		{
			obj.xOpacity = .99;
			return;
		}
		
		// misschien loopt die fout bij -0...
		if(obj.xOpacity<0)
		{
			return;
		}
		
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
	}
	
}

