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

function init_all_rotators() {
	x1 = rotator_class('rotator1');
	x2 = rotator_class('rotator2');
	x3 = rotator_class('rotator3');
}

function rotator_class(id) {

    // create new class that inherits from Object
    function F() {}
    F.protoype = Object;
    var that = new F();


	// private vars
	var imgs = new Array(), 
	zInterval = null, 
	current = 0, 
	pause = false;
	
	that.init = function ()
	{
		if(!document.getElementById || !document.createElement)return;
	
		css = document.createElement('link');
		css.setAttribute('href','http://www.cancampaign.org/page/-/slideshow2.css');
		css.setAttribute('rel','stylesheet');
		css.setAttribute('type','text/css');
		document.getElementsByTagName('head')[0].appendChild(css);
	
		imgs = document.getElementById(id).getElementsByTagName('img');
		for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;
		imgs[0].style.display = 'block';
		imgs[0].xOpacity = .99;
	
		//setTimeout.call(that, ['so_xfade', 3000]);
		setTimeout(this.so_xfade, 3000);
	}
	
	
	that.so_xfade = function ()
	{
		cOpacity = imgs[current].xOpacity;
		nIndex = imgs[current+1]?current+1:0;
		nOpacity = imgs[nIndex].xOpacity;
	
		cOpacity-=.05;
		nOpacity+=.05;
	
		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;
			setTimeout(that.so_xfade, 3000);
		}
		else
		{
			setTimeout(that.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) + ')';
		}
	}
	
	that.init();
	return that;
	
}
