var Menu = new Class({
	initialize: function(manager, list, position, element){
		this.manager = manager;
		this.list = list;
		this.position = position;
		this.classname = '.titleColor' + this.position;
		this.element = element;
		this.header = new MenuHeader(this.manager, this, this.element.getFirst());
		this.step = 200;		
		this.height = this.element.getSize().y;
		this.focus = false;
		this.items = new Array();
		var spans = this.element.getElements('span');
		this.element.set('tween', {
			'duration': this.step * spans.length,
			'link': 'cancel',
			transition: 'sine:in'
		});
		for(var s = 0; s < spans.length; s++){
			this.items.push(new MenuItem(this.manager, this, spans[s]));
		}
	},
	
	get: function(index){
		return this.items[index];
	},
	
	getByPosition: function(position){
		for(var m = 0; m < this.items.length; m++){
			if(this.get(m).position == position){
				return this.get(m); 
			}
		}
		return null;
	},
	
	toggle: function(){		
		this.focus ? this.hide() : this.show() ;
	},
	
	show: function(){
		this.list.hideAll();
		this.element.tween('height', this.height);
		this.focus = true;
	},
	
	hide: function(){		
		this.element.tween('height', 20);
		this.focus = false;
	},
	
	setup: function(){
		this.header.setup();
		for(var i = 0; i < this.items.length; i++){
			this.get(i).setup();
		}
		this.element.setStyle('height', 20);
		this.element.store('menu', this);		
	}
});
