/**
 * 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: {
		keepActive: false,	
		container: null,
		className: 'MooTrans',
		defaultClass: 'default',
		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});
			
			if(this.options.keepActive){
				element.addEvents({
					'mouseover':function(){
						element.getParent('ul.ws-imgnav').getElements('a.MooCounterButton').each(
							function(el){
								
								if(el != element){
									el.setStyles({'opacity':0.001,'position':'absolute','top':0,'left':0});	
								} else {
									//alert(i);
								}
							}
						);
						
						transEffect.cancel();
						transEffect.start({opacity:1});
					}
				})	
			} else {
				element.addEvents({
					'mouseover':function(){
						transEffect.cancel();
						transEffect.start({opacity:1});
					},
					'mouseout':function(){
						transEffect.cancel();
						transEffect.start({opacity:0.001});
					}
				})	
			}
		}.bind(this));
	}
});