function Animate(idx) 
{
	FadeIn(idx, 0);	
}

function WriteImages() 
{
	// create
	s = "";
	for (i = 0; i < imageCount; i++)
	{
		z = (i == 0) ? 1 : (i - 1) * -1; // set appropriate z-index
		s += "<div id=\"slide_" + i + "\" style=\"position: absolute; top: 0px; left: 50px; z-index: " + z + "; padding: 0px; width: " + width + "px; height:  " + height + "px;\"><img src=\"" + imageSource[i] + "\" alt=\"" + altText + "\" width=\"" + width + "\" height=\"" + height + "\" /></div>";
	}
	
	Write(container, s);	
	
	// change opacity to 0 
	for (i = 0; i < imageCount; i++)
	{
		ChangeOpacity("slide_" + i, 0); 
	}
}

function ChangeOpacity(sID, iOpacity) 
{
	document.getElementById(sID).style.opacity = iOpacity / 100;
	document.getElementById(sID).style.filter = "alpha(opacity=" + iOpacity + ")";
	document.getElementById(sID).style.zoom = 1;
}

function FadeIn(idx, i) 
{
	if (i <= 100) 
	{
		ChangeOpacity("slide_" + idx, i);
		i++;
		var fadeInRecursionCall = "FadeIn(" + idx + ", " + i + ")";
		var fadeInTimer = setTimeout(fadeInRecursionCall, Math.round(i / speed));		
		if (i == 100)
		{
			clearTimeout(fadeInTimer);
			var outTimer = setTimeout("FadeOut(" + idx + ", 100)", slideInterval);
		}
	}
}

function FadeOut(idx, i) 
{
	if (i >= 0) 
	{
		ChangeOpacity("slide_" + idx, i);
		i--;
		var fadeOutRecursionCall = "FadeOut(" + idx + ", " + i + ")";
		var fadeOutTimer = setTimeout(fadeOutRecursionCall, Math.round(i / speed));		
		if (i == 0) 
		{
			clearTimeout(fadeOutTimer);
			Animate(IncrementIndex(idx)) 
		}
	}
}

function DetermineTimerOffset()
{
	offset = 0;
	for (i = 0; i <= 100; i++)
	{	
		offset += Math.round(i / speed)
	}
	return offset;
}

function IncrementIndex(idx) 
{
	idx = (idx == imageCount - 1) ? 0 : idx + 1;
	return idx;
}