var divSelectedMenu;
var timer;

// Force the background image cache for IE6 and lower, to avoid background image
// flickering
try {
 document.execCommand('BackgroundImageCache', false, true);
} catch (e ) {}

function hideMenu(intCategoryId)
{
    var strMenuId = "submenu_" + intCategoryId
    var divSubMenu = document.getElementById(strMenuId);
    
    if (divSubMenu != null)
    {
        // Set a timeout to set the layer invisible, so that when moved onto the
	    // div the timer can be reset.
	    timer = setTimeout("document.getElementById('" + strMenuId + "').style.visibility = 'hidden';", 200);
    }
}

function hideLastMenu()
{
	if (divSelectedMenu != null)
	{
	    // Set a timeout to set the layer invisible, so that when moved onto the
	    // div the timer can be reset.
	    timer = setTimeout("if(divSelectedMenu){divSelectedMenu.style.visibility = 'hidden';}", 200);
	}
}

function showMenu(intCategoryId)
{

    var divSubMenu = document.getElementById("submenu_" + intCategoryId);
    if (divSubMenu != null)
    {
        // only redisplay if a new submenu is shown
        if (divSelectedMenu != divSubMenu)
        {
            if (divSelectedMenu != null)
            {
                divSelectedMenu.style.visibility = 'hidden';
            }
        
            divSelectedMenu = divSubMenu;
                        
	        var x = 0;
	        var y = 0;
	        var left;
	        var top;

	        var tableCell = document.getElementById("ctl00_td_" + intCategoryId);	
	        var width;
    	
	        left = calculateOffset(tableCell) - 1;
	        top = calculateOffsetTop(tableCell) + tableCell.offsetHeight + 4;

            divSubMenu.style.left = left + 'px';
	        divSubMenu.style.top = top + 'px';
    	
	        divSubMenu.style.visibility = 'visible';
    	    
	        divSubMenu.onmouseover = clearTimer;
	        divSubMenu.onmouseout = hideLastMenu;
	    }
	    else
	    {
	        clearTimer();
	        divSubMenu.style.visibility = 'visible';
	    }
	}
}

function clearTimer()
{
    if (timer)
    {
        clearTimeout(timer);
    }
}

function calculateOffset(objItem)
{
	var totalOffset = 0;
	var lastOffset = 0;

	if (document.getElementById)
	{
		var item = objItem;
		do
		{
			if (item.tagName != 'BODY')
			{
				lastOffset = item.offsetLeft;
				totalOffset += lastOffset;
				item = eval('item.offsetParent');
			}
			else
			{
				//totalOffset -= lastOffset;
				item = null;
			}

		} while (item != null);
	}
	else if (document.all)
	{
		var item = eval('objItem');
		do
		{
			if (item.tagName != 'BODY')
			{
				lastOffset = eval('item.offsetLeft');
				totalOffset += lastOffset;
				item = eval('item.offsetParent');
			}
			else
			{
				totalOffset -= lastOffset;
				item = null;
			}
		} while (item != null);
	}

	
	return totalOffset;
}

function calculateOffsetTop(objItem)
{
	var totalOffset = 0;
	var lastOffset = 0;

	if (document.getElementById)
	{
		var item = objItem;
		do
		{
			if (item.tagName != 'BODY')
			{
				lastOffset = item.offsetTop;
				totalOffset += lastOffset;
				item = eval('item.offsetParent');
			}
			else
			{
				//totalOffset -= lastOffset;
				item = null;
			}

		} while (item != null);
	}
	else if (document.all)
	{
		var item = eval('objItem');
		do
		{
			if (item.tagName != 'BODY')
			{
				lastOffset = eval('item.offsetTop');
				totalOffset += lastOffset;
				item = eval('item.offsetParent');
			}
			else
			{
				//totalOffset -= lastOffset;
				item = null;
			}
		} while (item != null);
	}

	
	return totalOffset;
}
