/**
 * MooMenu - Unobtrusive button fading for menus. Adapted from MooHover by Constantin Boiangiu
 *
 * @version		1.0.1
 *
 * @license		MIT-style license
 * @author		Walter Moore <walter [at] walter-moore.com>	
 * @copyright	Author
 */

var MooMenu = new Class({
	Implements: [Options],
	options: {
		container: null,
		activeClass: 'active',
		hoverClass: 'hover',
		defaultClass: 'default',
		duration: 300,
		transition: Fx.Transitions.Linear		
	},

	initialize: function(options) {
		this.setOptions(options);
		this.container = $(this.options.container) || document;
		this.start();		
	},
	
	start: function(){
		var buttons = this.container.
					  getElements('a').
					  filter(function(elem,i){
							if(!elem.hasClass('active'))
								return elem;							
					   }.bind(this));
		
		buttons.each(function(element,i){
			element.addClass(this.options.hoverClass);
			element.setStyles({'opacity':0.001,'position':'absolute','top':0,'left':0});
			
			new Element('div',{
				'class':this.options.defaultClass,
				'text':element.get('text')||element.get('value')
			}).injectBefore(element).adopt(element);
			
			var transEffect = new Fx.Morph(element, {duration: this.options.duration, transition: this.options.transition, link: 'chain'});
			
			element.addEvents({
				'mouseover':function(){
					transEffect.cancel();
					transEffect.start({opacity:1});
				},
				'mouseout':function(){
					 transEffect.cancel();
					transEffect.start({opacity:0.001});
				}
			})			
		}.bind(this));
	}
});