/*
 e24Menu
	- MooTools version required: 1.2.2
	- MooTools components required: 
		Core: Fx.Tween and dependencies

	Changelog:
		- 1.0: First release
*/

/* Copyright: equipo24 S.L.N.E <http://equipo24.com/> - Distributed under MIT License - Keep this message! */

var e24Menu = new Class({

	Implements: [Options],

	options: {
		transition: 'linear',
		duration: 500,
		zindex: 15000, 
		menuItems: []
	},

	initialize: function(options){
		this.setOptions(options);

		$each(this.options.menuItems, function(menu, link) {
			var linkEl = $(link);
			var menuEl = $(menu);

			var linkcoords = linkEl.getCoordinates();
			var menusize = menuEl.getSize();

			menuEl.setStyles({
				'z-index': this.options.zindex,
				'position': 'absolute',
				'left': (linkcoords.left) + 'px',
				'top': linkcoords.bottom + 'px',
				'height': '0px',
				'opacity': 0,
				'visibility': 'hidden'
			});
			
			linkEl.addEvents({
				'mouseenter' :  function(e) {
					menuEl.set('morph', {transition: this.options.transition, duration: this.options.duration, complete: function() {  }});				
					menuEl.morph({'opacity': 1, 'height': menusize.y + 'px'});
				}.bind(this),
				'mouseleave' :  function(e) {
					if ($(e.relatedTarget) !== menuEl) {
						menuEl.set('morph', {complete: function() {  }});				
						menuEl.morph({'opacity': 0, 'height': 0});					
					}	
				}.bind(this)
			});
			
			menuEl.addEvents({
				'mouseleave' :  function(e) {
					if ($(e.relatedTarget) !== linkEl) {
						menuEl.set('morph', {complete: function() {  }});				
						menuEl.morph({'opacity': 0, 'height': 0});					
					}	
				}.bind(this)
			});
			
		}.bind(this));
	}
});

