/**
 * MooHover - Anchor and form input modification
 *
 * @version		1.0.1
 *
 * @license		MIT-style license
 * @author		Constantin Boiangiu <constantin [at] php-help.ro>
 * @copyright	Author
 */

var MooHover = new Class({
	Implements: [Options],
	options: {
		container: null,
		className: '',
		defaultClass: '',
		duration: 400,
		transition: Fx.Transitions.Sine.easeOut		
	},

	initialize: function(options) {
		this.setOptions(options);
		this.container = $(this.options.container) || document;
		this.start();		
	},
	
	start: function(){
		var buttons = this.container.
					  getElements('.'+this.options.className).
					  filter(function(elem,i){
							if(elem.rel!=='selected')
								return elem;							
					   }.bind(this));
		
		buttons.each(function(element,i){
			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});
			
			element.addEvents({
				'mouseover':function(){
					transEffect.cancel();
					transEffect.start({opacity:1});
				},
				'mouseout':function(){
					transEffect.cancel();
					transEffect.start({opacity:0.001});
				}
			})			
		}.bind(this));
	}
});

