/*
 * menu.js (V.1.0)
 * Implements rollovers on menu buttons.
 * @author : Jean Semere (Baggage Claim)
 *
 * You have no right to use or redistribute this code unless Baggage Claim SARL
 * authorizes you to do so.
 *
 */

Menu = Class.create();
Menu.prototype =
{
	initialize: function(name, selected, options)
	{
		this.name = name;
		options = options || {};
		this.selected = selected;
		this.toggleButton = options.toggleButton || "menuToggleButton";
		this.selectedClass = options.selectedClass || "menuSelected";
		this.rolloverClass = options.rolloverClass || "menuRollover";
		this.rolloutClass = options.rolloutClass || "menuRollout";
		this.elementType = options.elementType || "a";
		
		this.element = $(this.name);
		this.element.setStyle({display: 'none'});
		this.menuOpen = false;
		this.subelements = this.element.getElementsBySelector(this.elementType);
		for (i=0; i<this.subelements.length; i++)
		{
			if (this.subelements[i].id == this.selected)
				this.subelements[i].addClassName(this.selectedClass);
			else
			{
				this.subelements[i].addClassName(this.rolloutClass);
				Event.observe(this.subelements[i], 'mouseover', this.toggleRoll.bindAsEventListener(this), false);
				Event.observe(this.subelements[i], 'mouseout', this.toggleRoll.bindAsEventListener(this), false);
			}	
		}
		Event.observe(this.toggleButton, 'click', this.toggleMenu.bindAsEventListener(this), false);
	},
	
	toggleRoll: function(event)
	{
		subelement = Event.findElement(event, this.elementType);
		subelement.toggleClassName(this.rolloverClass);
		subelement.toggleClassName(this.rolloutClass);
	},
	
	toggleMenu: function(event)
	{
		if (this.menuOpen)
		{
			this.menuOpen = false;
			this.element.setStyle({display: 'none'});
		}
		else
		{
			this.menuOpen = true;
			this.element.setStyle({display: 'block'});
		}
	}
};

