/*
 * menuDropdown.js - implements an dropdown menu based on a HTML list
 * Author: Dave Lindquist (http://www.gazingus.org)
 */

var currentMenu = null;

if (!document.getElementById)
    document.getElementById = function() { return null; }

function initializeMenu(menuId, actuatorId) {
    var menu = document.getElementById(menuId);
    var actuator = document.getElementById(actuatorId);

    if (menu == null || actuator == null) return;

    //if (window.opera) return; // I'm too tired
/*
    actuator.onmouseover = function() {
        if (currentMenu) {
            currentMenu.style.visibility = "hidden";
            this.showMenu();
        }
    }
*/  

  actuator.onmouseover = function() {
        if (currentMenu == null) {
            this.showMenu();
        }
        else {
            if (currentMenu != menu) {
              currentMenu.style.visibility = "hidden";
              currentMenu = null;
              this.showMenu();
            }
            else {
              currentMenu.style.visibility = "hidden";
              currentMenu = null;
            }
        }

        return false;
    }


    actuator.onclick = function() {
        currentMenu = null;
	location.href = this.href;
/*
        if (currentMenu == null) {
            this.showMenu();
        }
        else {
            currentMenu.style.visibility = "hidden";
            currentMenu = null;
        }

        return false;
*/
    }

    menu.onmouseleave = function() {
            currentMenu.style.visibility = "hidden";
            currentMenu = null;
	}

    actuator.showMenu = function() {  
        menu.style.left = this.offsetLeft + 
				this.offsetParent.offsetLeft +
				this.offsetParent.offsetParent.offsetLeft + 
				this.offsetParent.offsetParent.offsetParent.offsetLeft - 1 + 
				"px";
        menu.style.top = this.offsetTop + 
				this.offsetParent.offsetTop +
				this.offsetParent.offsetParent.offsetTop + 
				this.offsetParent.offsetParent.offsetParent.offsetTop + 
				this.offsetHeight + 2 + "px";
        menu.style.visibility = "visible";
        currentMenu = menu;
    }
}
