var MenuItemOpacityTimerInterval = 10;
var MenuItemOpacityLow = 35;
var MenuItemOpacityHigh = 100;

function MenuItemMouseOver(MenuItem)
{
	var ImgArray = MenuItem.getElementsByTagName("img");

	for (var i=0; i < ImgArray.length; i++)
	{
		var MenuItemImage = ImgArray[i];
		
		ElementFadeClear(MenuItemImage);
		ElementFadeStart(MenuItemImage, MenuItemOpacityLow, MenuItemOpacityHigh, MenuItemOpacityTimerInterval);
	}
}

function MenuItemMouseOut(MenuItem)
{
	var ImgArray = MenuItem.getElementsByTagName("img");

	for (var i=0; i < ImgArray.length; i++)
	{
		var MenuItemImage = ImgArray[i];
		ElementFadeClear(MenuItemImage);
		ElementFadeStart(MenuItemImage, MenuItemOpacityHigh, MenuItemOpacityLow, MenuItemOpacityTimerInterval);
	}
}

function ElementFadeStart(element, start, stop, delay, step) 
{
    start = typeof element.opacity == 'undefined' ? start : element.opacity;
    element.startOpacity = start;
    element.opacity = start;
    element.stopOpacity = stop;
    element.step = step || (start < stop ? 1 : -1);
    element.delay = typeof delay == 'undefined' ? 10 : delay;
    element.tid = setTimeout(function() {ElementFade(element);}, delay);  
}

function ElementFade(element) 
{
	element.opacity += element.step;

	if ((element.step > 0) && (element.opacity > element.stopOpacity))
 	{
    	element.opacity = element.stopOpacity;
    }
  	else if ((element.step < 0) && (element.opacity < element.stopOpacity))
  	{
    	element.opacity = element.stopOpacity;
    }

	ChangeOpacity(element.opacity, element);
  
  	if ((element.step > 0) && (element.opacity >= element.stopOpacity)) 
  	{
    	clearTimeout(element.tid);
    }
  	else if ((element.step < 0) && (element.opacity <= element.stopOpacity))
    {
    	clearTimeout(element.tid);
    }
  	else
  	{
	    element.tid = setTimeout(function() {ElementFade(element);}, element.delay);  
    }
}

function ElementFadeClear(element) 
{
  	if (element.tid)
  	{
    	clearTimeout(element.tid);
    }
}