﻿/* MENU */

var timeout	= 100;
var closetimer	= 0;
var menuitem = null;
var submenuitem = null;
var oldcolor = null;

function cancelClosetime() {
	if(closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function hideMenu() {
	closetimer = window.setTimeout(closeMenu, timeout);
}

function showMenu(element, submenu) {

	cancelClosetime();

	if(menuitem && menuitem != element) closeMenu();

	menuitem = document.getElementById(element);
	submenuitem = document.getElementById(submenu);
	
	pos = getElementPosition(menuitem);
	if (oldcolor == null) oldcolor = menuitem.style.backgroundColor;
	menuitem.style.backgroundColor = "orange";
	submenuitem.style.left = pos.x + "px";
	submenuitem.style.top = (pos.y + pos.height) + "px";
	submenuitem.style.display = "block";
	
}

function closeMenu() {
	if(menuitem) {		
		submenuitem.style.display = "none";
		menuitem.style.backgroundColor = "";
		oldcolor = null;
		submenuitem = null;
		menuitem = null;
	}
}

function getElementPosition(element) {
    var result = new Object();
    result.x = 0;
    result.y = 0;
    result.width = 0;
    result.height = 0;
    if (element.offsetParent) {
        result.x = element.offsetLeft;
        result.y = element.offsetTop;
        var parent = element.offsetParent;
        while (parent) {
            result.x += parent.offsetLeft;
            result.y += parent.offsetTop;
            var parentTagName = parent.tagName.toLowerCase();
            if (parentTagName != "table" &&
                parentTagName != "body" && 
                parentTagName != "html" && 
                parentTagName != "div" && 
                parent.clientTop && 
                parent.clientLeft) {
                result.x += parent.clientLeft;
                result.y += parent.clientTop;
            }
            parent = parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x = element.left;
        result.y = element.top;
    }
    else {
        if (element.x) {
            result.x = element.x;
        }
        if (element.y) {
            result.y = element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width = element.offsetWidth;
        result.height = element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
        result.width = element.style.pixelWidth;
        result.height = element.style.pixelHeight;
    }
    return result;
}

function addEvent(elementObject, eventName, functionObject) {
	if (typeof elementObject == "string")
		elementObject = document.getElementById(elementObject);
	if(document.addEventListener)
		elementObject.addEventListener(eventName, functionObject, false);
	else if(document.attachEvent)
		elementObject.attachEvent("on" + eventName, functionObject);
}

function onwindowload() {
	try {
	nav = document.getElementById("nav");
	menu = nav.getElementsByTagName("ul")[0];
	for(i = 0; i < menu.childNodes.length; i++) {
		elem = menu.childNodes[i]; 
		if (elem.tagName == "li" || elem.tagName == "LI") {
			submenu = elem.getElementsByTagName("ul");
			if (submenu.length > 0) {
				id1 = "menu" + i;
				id2 = "submenu" + i;
				elem.id = id1;

				div = document.createElement("div");
				div.id = id2;
				div.className = "submenu";
				div.appendChild(submenu[0]);
				document.body.appendChild(div);

				addEvent(elem, "mouseover", function() { showMenu(id1, id2); });
				addEvent(div, "mouseover", function() { showMenu(id1, id2); });
				addEvent(elem, "mouseout", function() { hideMenu(); });
				addEvent(div, "mouseout", function() { hideMenu(); });			
			}
		}
	}
	} catch(e) {}
}



addEvent(window, "load", onwindowload);