var PulldownMenus = {
    closeDelay: 100,
    closeTimer: new Object(), 

    ShowDropDownMenu: function(sourceElem, menuElemID) {
	    // Reset the menu first, just to be safe
	    PulldownMenus.HideDropDownMenu(sourceElem, menuElemID);
    	
	    var menuElem = Get(menuElemID);

	    // Position the menu
	    menuElem.style.left = (Pliner.Util.Display.FindXPosition(sourceElem) - Pliner.Util.Display.FindXPosition(Get("DivMenuContainer")) - 15) + "px";
	    menuElem.style.top  = (Pliner.Util.Display.FindYPosition(sourceElem) + sourceElem.offsetHeight - Pliner.Util.Display.FindYPosition(Get("DivMenuContainer")) - 8) + "px";
    	
	    // Show the menu
	    menuElem.style.display = "block";
	    menuElem.style.zIndex = 10000;
    	
	    menuElem = null;
    }, 

    HideDropDownMenu: function(sourceElem, menuElemID) {
	    // Clear the close timeout
	    if (PulldownMenus.closeTimer[menuElemID])
	        clearTimeout(PulldownMenus.closeTimer[menuElemID]);

	    // Hide the menu
	    Get(menuElemID).style.display = "none";
    }, 

    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]);
    }
};