SetEventListener(window, 'load', RunFader);

function RunFader(evt)
{
	var divtag = 'fader';
	var el = document.getElementById(divtag);
	
	var divs = el.getElementsByTagName('div');
	crossFadeInit(divs, 20, 2000, 5000, divtag, {loop:true});
	
}


//----------------------------------------------------------------------------
function crossFadeInit(divs, n, tms, pms, tag, opts)
{
	for (var i = 0; i < divs.length; i++) {
		fadeEl(divs[i], 0);
		divs[i].style.zIndex = 0;
	}
	
	if (window.XFtimeout)
		window.clearTimeout(window.XFtimeout);

	if(typeof opts != 'undefined' && 'loop' in opts && opts.loop)
	{
		var dn = divs.length;
		for (var i = 0; i < dn; i++)
		{
			var j = (i+1) % dn;
			crossFade(divs[i], divs[j], n, tms, pms, tag+i, tag+j);
		}
	}
	else
	{
		for (var i = 0; i < divs.length-1; i++)
		{
			crossFade(divs[i], divs[i+1], n, tms, pms, tag+i, tag+(i+1));
		}
	}
	
	fadeEl(divs[0], 1);
	divs[0].style.zIndex = 5;
	window.XFtimeout = window.setTimeout("window.XFfunc['" + tag + "0']();", pms);
}

		
//----------------------------------------------------------------------------
function crossFade(ela, elb, n, tms, pms, tag, nexttag)
{
	var nmax = n;
	var na = n;
	var nb = 0;
	if (!window.XFfunc)
		window.XFfunc = new Array;
	n++;	
	window.XFfunc[tag] = function ()
	{
		fadeEl(ela, na/nmax);
		fadeEl(elb, nb/nmax);
		
		na--;
		nb++;
		
		if (n > 0)
		{
			n--;
			window.XFtimeout = window.setTimeout("window.XFfunc['" + tag + "']();", tms/nmax);
// 			if (n < (nmax / 2)) {
// 				elb.style.zIndex = 5;
// 				ela.style.zIndex = 0;
// 			}			
		}
		else if(window.XFfunc[nexttag])
		{
			n = nmax;
			na = n;
			nb = 0;
			window.XFtimeout = window.setTimeout("window.XFfunc['" + nexttag + "']();", pms);
			elb.style.zIndex = 5;
			ela.style.zIndex = 0;
		}
	}
}


//----------------------------------------------------------------------------
function fadeEl(el, n)
{
	if (el)
	{
		el.style.opacity = n;	
		el.style.filter = 'alpha(opacity=' + (n * 100) + ')';
	}
}

