var speed, refreshrate, index, pics, index, stopTime;

var imageIndex = 0;
ie = (document.all) ? true : false;
function preloadimages(imgsrc)
{
	var preloadedimages = new Array();
	for(i=0; i<imgsrc.length; i++)
	{
		var nImage = new Image;
		nImage.src = imgsrc[i];
		preloadedimages.push(nImage);
	}
	return preloadedimages;
}

function getFilter(obj)
{
	if (ie)
		if (obj.filters.alpha)
		{
			return obj.filters.alpha.opacity;
		}
		else
			return 0;
		else
			return (obj.style.MozOpacity - 0) * 100;
}

function setFilter(obj, opac)
{
	if (ie) 
	{
		obj.style.filter = "Alpha(opacity="+opac+")";
	}
	else
	{
		obj.style.MozOpacity = (opac / 100);
	}
}

function fade(id, out)
{
	var currRefreshrate = refreshrate;
	o = out?(1000 / (speed / refreshrate)):((1000 / (speed / refreshrate)) * -1);
	var obj = document.getElementById(id).parentNode.childNodes[imageIndex];
	if (getFilter(obj) > 0)
	{
		if (obj.nextSibling) setFilter(obj.nextSibling, getFilter(obj.nextSibling) - o);
		else setFilter(obj.parentNode.firstChild, getFilter(obj.parentNode.firstChild) - o);
		setFilter(obj, getFilter(obj) + o);
	}
	else
	{
		imageIndex++;
		if (imageIndex >= images.length)
		{
			imageIndex = 0;
		}
		currRefreshrate = stopTime;
	}
	timeout = setTimeout("fade('"+id+"', "+out+");", currRefreshrate);
}

function fadeIt(id, pics, opt)
{
	window.pics = preloadimages(eval(pics));
	var obj = document.getElementById(id);
	for (var i = obj.parentNode.childNodes.length - 1; i >= 0; i = i - 1)
	{
		if (obj.parentNode.childNodes[i].tagName)
		{
			if (obj.parentNode.childNodes[i].tagName.toLowerCase() != "img") obj.parentNode.removeChild(obj.parentNode.childNodes[i]);
			
		}
		else
		{
			 obj.parentNode.removeChild(obj.parentNode.childNodes[i]);
		}
	}
	images = window.pics;
	obj.src = images[0].src;
	obj.style.position = "absolute";
	obj.loaded = true;
	setFilter(obj, 100);
	obj.id = "fader0";
	for (var i = 1; i < window.images.length; i++)
	{
		if (!obj.parentNode.childNodes[i])
		{
			images[i].style.position = "absolute";
			images[i].loaded = true;
			setFilter(images[i], 0);
			images[i].id = "fader"+i;
			obj.parentNode.appendChild(images[i]);
			obj = obj.parentNode.lastChild;
		}
	}
	speed = opt.speed;
	refreshrate = opt.refreshrate;
	stopTime = opt.stopTime;
	index = 1;
	setTimeout("fade('fader0');", stopTime);
}
