DropDownMenu = Class.create();

DropDownMenu.prototype = {
    initialize: function(menuStyle) {
        this.menus = $$('.' + menuStyle);
        this.options = new Array();

        this.onMenuClick = this.menuClick.bindAsEventListener(this);  

        for (i = 0; i < this.menus.length; i++)
        {
            this.menus[i].observe('click', this.onMenuClick);
            this.options[i] = $(this.menus[i].id + 'DropDownMenu')
            
            this.options[i].setStyle({
				top: (this.menus[i].offsetTop + this.menus[i].getHeight() + 1) + 'px',
				left: this.menus[i].offsetLeft + 'px'
			}); 
        }
    },


    menuClick: function(e) {
        var selectedMenu = $(e.element().id + 'DropDownMenu');
        if (selectedMenu == null)
        {
            var arr = e.element().ancestors(); 
            var found = false;
            for (i = arr.length - 1; i >= 0; i--)
            {
                for (j = 0; j < this.menus.length; j++)
                {
                    if (this.menus[j].id == arr[i].id)
                    {
                        selectedMenu = $(this.menus[j].id + 'DropDownMenu');
                        found = true;
                        break;
                    }
                }
                if (found) break;
            }
        }
        
        for (i = 0; i < this.options.length; i++)
        {
            var menu = this.options[i];
            if (selectedMenu.id == menu.id)
            {
                if (!menu.hasClassName('opened'))
                {
                    menu.addClassName('opened');
		                    
                }
                else
                {
                    menu.removeClassName('opened');
                }
                Element.toggle(menu);
            }
            else
            {
                if (menu.hasClassName('opened'))
                {
                    menu.removeClassName('opened');
                    Element.hide(menu);
                }
            }
        }
    }
}