/**
 * 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: 'MooTrans', 
		defaultClass: 'defaultOver',   
		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});
			//  element.set('morph', {link: 'chain'});  
			 
			new Element('div',{
				'class':this.options.defaultClass,
				'id':'d_' + element.id // , 	'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.durationSlow = this.options.duration/2;
			element.addEvents({
				'mouseover':function(){
					transEffect.cancel();
					transEffect.start({opacity:1});
				}, 
				'mouseout':function(){ 
					transEffect.cancel();  
					transEffect.start({opacity:0.001, duration:1800});      
				}
			})			
		}.bind(this));
	}
});