// JavaScript Document

var BottomMenu = Class.create(
{
	active: false,
	
	element: null,
	
	dom: {},
	
	control: null, // BottomControl object
	
	items: [],
	
	initialize: function( element, control )
	{
		this.element = $( element );
		this.control = control;
		
		this.initOther();
		this.initEvents();
	},
	
	initEvents: function()
	{
		this.element.observe( "click", this.handleClick.bind( this ) );
		document.observe( "click", this.handleOffClick.bind( this ) );
	},
	
	initOther: function()
	{
		this.dom.items = this.element.getElementsByClassName( "bottom-menu-item" );
		
		for( var i = 0; i < this.dom.items.length; i++ )
			this.items.push( new BottomMenuItem( this.dom.items[i], this ) );
	},
	
	activate: function()
	{
		this.element.addClassName( "menu-active" );
		this.control.getElement().addClassName( "control-active" );
		this.active = true;
	},
	
	deactivate: function()
	{
		this.element.removeClassName( "menu-active" );
		this.control.getElement().removeClassName( "control-active" );
		this.active = false;
	},
	
	isActive: function()
	{
		return this.active;
	},
	
	toggle: function()
	{
		if( this.isActive() )
			this.deactivate();
		else
			this.activate();
	},
	
	/**
	 * Event Handlers
	 */
	
	handleClick: function( e )
	{
		Event.stop( e );
	},
	
	handleOffClick: function( e )
	{
		this.deactivate();
	}
});