var PulldownMenus = {
    closeDelay: 50,
    closeTimer: new Object(), 

    ShowDropDownMenu: function(sourceElem, menuElemID) {
	    // Clear the close timeout
	    if (PulldownMenus.closeTimer[menuElemID]) clearTimeout(PulldownMenus.closeTimer[menuElemID]);
	    // Reset the menu first, just to be safe
	    PulldownMenus.HideDropDownMenu(sourceElem, menuElemID);
    	
	    var menuElem = Get(menuElemID);

	    // Position the menu
	    menuElem.style.left = (findPosX(sourceElem) - 7) + "px";
	    menuElem.style.top  = (findPosY(sourceElem) + sourceElem.offsetHeight) + "px";
    	
	    // Show the menu
	    menuElem.style.display = "block";
	    menuElem.style.zIndex = 10000;
	    
	    // Highlight the active link
	    sourceElem.className = "HasOpenPulldownMenu";
    	
	    menuElem = null;
    }, 

    HideDropDownMenu: function(sourceElem, menuElemID) {
	    // Clear the close timeout
	    clearTimeout(PulldownMenus.closeTimer[menuElemID]);

	    // Hide the menu
	    Get(menuElemID).style.display = "none";
	    
	    // Un-highlight the active link
	    sourceElem.className = "HasClosedPulldownMenu";
    }, 

    CloseDropDownMenu: function(sourceElem, menuElemID) {
	    PulldownMenus.closeTimer[menuElemID] = setTimeout(function() { PulldownMenus.HideDropDownMenu(sourceElem, menuElemID); }, PulldownMenus.closeDelay);
    }, 

    MouseOverMenu: function(menuElemID) {
	    // Clear the close timeout
	    clearTimeout(PulldownMenus.closeTimer[menuElemID]);
    }
};