var fadeCnt = 0;
var fadingIn = false;
var fadingOut = false;

function fadeIn(element, interval, maxOpacity)
{	
 	fadingIn = true;
 	
 	if (interval == 0)
 	{
 		setOpacity(element, maxOpacity);
 		fadingIn = false;
 		return;
 	}
 		
 	if (interval == null)
 		interval = 10;
 	
 	if (maxOpacity == null)
 		maxOpacity = 1;
 		
 	var curOpacity = getOpacity(element);
 	//window.status = fadeCnt + "current opacity " + curOpacity;
 	curOpacity += 0.10;
 	if (curOpacity  < maxOpacity && !fadingOut)
 	{
		setOpacity(element, curOpacity);		
		toggleVisibility(element, true);
		window.setTimeout("fadeIn(document.getElementById('" + element.id + "')," + interval + ", " + maxOpacity + ")", interval);
	}
	else
	{
	 	setOpacity(element, maxOpacity);
		fadingIn = false;
	}
		
 	fadeCnt++;
}

function fadeOut(element, interval, minOpacity)
{
 	if (interval==0)
 	{
		setOpacity(element, minOpacity);
		if (minOpacity <= 0)
			toggleVisibility(element, false);
		fadingOut = false;
		return;
	}
	
 	fadingOut = true;
 	if (interval == null)
 		interval = 10;

	if (minOpacity == null)	
		minOpacity = 0;
		
 	var curOpacity = getOpacity(element);
 	curOpacity -= 0.15;
 	if (curOpacity  > minOpacity && !fadingIn)
 	{
		setOpacity(element, curOpacity);
		window.setTimeout("fadeOut(document.getElementById('" + element.id + "')," + interval + ", " + minOpacity + ")", interval);
	}		
	else
	{
		setOpacity(element, minOpacity);
		if (minOpacity <= 0)
			toggleVisibility(element, false);
		fadingOut = false;
	}
		
 	fadeCnt--;
}

function getOpacity(element)
{
	if (document.all)	
	{
		//presume ie
		var curOp = element.style.opacity;
		if (isNaN(curOp))
			if (element.style.display=="none")
				curOp = 0.01;
			else
				curOp = 1;
				
		return  curOp * 1.0;
	}
	else
	{
		return element.style.MozOpacity * 1.0;
	}	
}

function setOpacity(element, value)
{
	if (document.all)	
	{
		//presume ie
		element.style.opacity = value;
		element.style.filter = "alpha(opacity=" + value * 100 + ")";
	}
	else
	{
		element.style.MozOpacity = value;
	}
}

function toggleVisibility(element, visible)
{
	if (element.style.visibility.length > 0)
	{
		element.style.visibility = (visible) ? 'visible' : 'hidden';
	}
	else
	{
		element.style.display = (visible) ? ""	: "none";
	}
}


