﻿var fadeTimePerInterval = 30;
var fadeAmmountPerInterval = 20;
var cancelTime = 50;

function mainNavOver(element)
{
	var fadeElement = element.firstChild;
	if (fadeElement.opacity == null)
		fadeElement.opacity = 100;
	if (fadeElement.fadeInterval)
		window.clearInterval(fadeElement.fadeInterval);
	if (fadeElement.cancelTimeout)
		window.clearTimeout(fadeElement.cancelTimeout);
	
	fadeElement.fadeInterval = window.setInterval(function()
	{
		fadeElement.opacity -= fadeAmmountPerInterval;
		if (fadeElement.opacity < 0) fadeElement.opacity = 0;
		fadeElement.style.opacity = fadeElement.opacity / 100;
		fadeElement.style.filter = "alpha(opacity=" + fadeElement.opacity + ")";
		if (fadeElement.opacity == 0)
		{
			window.clearInterval(fadeElement.fadeInterval);
			
			var menuItems = mainNavItems[element.id];
			if (menuItems && menuItems.length > 0 && !element.menuDiv)
			{
				var menuDiv = document.createElement("DIV");
				menuDiv.className = "mainNavMenu";
				var menuDivHTML = "";
				for (var i=0, menuItem; menuItem = menuItems[i]; i++)
				{
					var extraStyle = (i == 0 ? "style='border-top: none;'" : "");
					menuDivHTML += "<a href='" + menuItem[1] + "' " + extraStyle + "><div></div>" + menuItem[0] + "</a>";
				}
				menuDiv.innerHTML = menuDivHTML;
				menuDiv.zIndex = 1000;
				var elementPos = getElementPos(element);
				if (document.all)
				{
					elementPos.x += 6;
					elementPos.y += 6;
				}
				menuDiv.style.left = elementPos.x + "px";
				menuDiv.style.top = elementPos.y + element.offsetHeight + "px";
				menuDiv.onmouseover = function()
				{
					if (fadeElement.cancelTimeout)
						window.clearTimeout(fadeElement.cancelTimeout);
				}
				menuDiv.onmouseout = element.onmouseout;
				element.menuDiv = menuDiv;
				document.body.appendChild(menuDiv);
			}
		}
	}, fadeTimePerInterval);
	
	element.onmouseout = function()
	{
		fadeElement.cancelTimeout = setTimeout(function()
		{
			if (fadeElement.fadeInterval)
				window.clearInterval(fadeElement.fadeInterval);
			fadeElement.fadeInterval = window.setInterval(function()
			{
				fadeElement.opacity += fadeAmmountPerInterval;
				if (fadeElement.opacity > 100) fadeElement.opacity = 100;
				fadeElement.style.opacity = fadeElement.opacity / 100;
				fadeElement.style.filter = "alpha(opacity=" + fadeElement.opacity + ")";
				if (fadeElement.opacity == 100)
					window.clearInterval(fadeElement.fadeInterval);
			}, fadeTimePerInterval);
			
			if (element.menuDiv)
			{
				element.menuDiv.parentNode.removeChild(element.menuDiv);
				element.menuDiv = null;
			}
		}, cancelTime);
	}
}

function getElementPos(element)
{
    var elementPos = {x:0, y:0};
    while (element.offsetParent)
    {
        elementPos.x += element.offsetLeft;
        elementPos.y += element.offsetTop;
        element = element.offsetParent;
    }
    return elementPos;
}

function buildSideNav(category)
{
	var menuItems = mainNavItems[category];
	if (menuItems && menuItems.length > 0)
	{
		for (var i=0, menuItem; menuItem = menuItems[i]; i++)
			document.write("<a href='" + menuItem[1] + "'><div></div>" + menuItem[0] + "</a>");
	}
}
