﻿
var fadeInfos = new Object();
var fadeInterval;

function FadeInfo(imgName)
{
	this.opacity = 0;
	this.fadeIn = false;			
	this.fadeOut = false;	
}

function getFadeInfo(imgName)
{
	var fadeInfo = fadeInfos[imgName];
	if (fadeInfo == null)
	{
		fadeInfo = new FadeInfo(imgName);
		fadeInfos[imgName] = fadeInfo;					
	}
	return fadeInfo;
}

function overArea(imageId) 
{
	var fadeInfo = getFadeInfo(imageId);
	fadeInfo.fadeIn = true;
	fadeInfo.fadeOut = false;
	if (fadeInterval == null)
		fadeInterval	= setInterval('executeFades()', 50);
}

function outArea(imageId) 
{
	var fadeInfo = getFadeInfo(imageId);
	fadeInfo.fadeIn = false;
	fadeInfo.fadeOut = true;
	if (fadeInterval == null)
		fadeInterval	= setInterval('executeFades()', 50);
}

function executeFades()
{
	var fadesLeft = false;
	for (var imgName in fadeInfos)
	{
		var fadeInfo = fadeInfos[imgName];
		if (fadeInfo.fadeIn)
		{
			fadeInfo.opacity += 7;
			if (fadeInfo.opacity >= 30)
			{
				fadeInfo.opacity = 30;
				fadeInfo.fadeIn = false;
			}
			else
				fadesLeft = true;
		}
		else if (fadeInfo.fadeOut)
		{
			fadeInfo.opacity -= 3;
			if (fadeInfo.opacity <= 0)
			{
				fadeInfo.opacity = 0;
				delete fadeInfos[imgName];
			}
			else
				fadesLeft = true;
		}		
		setOpacity(document.images[imgName], fadeInfo.opacity);
	}
	if (!fadesLeft)
	{
		clearInterval(fadeInterval);
		fadeInterval = null;
	}
}

function setImageSrc(image, src,cssClass) 
{
	image.src = src;
	image.className = cssClass;
}

function setOpacity(obj, opacity) 
{
	if (obj)
	{
		var style = obj.style;
		style.opacity = (opacity / 100);
		style.MozOpacity = (opacity / 100);
		style.KhtmlOpacity = (opacity / 100);
		style.filter = 'alpha(opacity=' + opacity + ')';
	}
}