/**
 * @author Abdellah
 */
function abTween(trigger, target){
	trigger = $(trigger);
	target = $(target);
	tweenDelay = function(){
		target.set("tween", {}).tween("height", [30, 0])
	};
    trigger.addEvents({
        "mouseenter": function(){
            target.set("tween", {
                duration: 1000,
                transition: Fx.Transitions.Bounce.easeOut
            }).tween("height", [0, 30]);
        },
        "mouseleave": function(){
            //tweenDelay.delay(5000);
            tweenDelay();
        }
    });
}

function abTween2(trigger){
	trigger = $(trigger);
	tweenDelay = function(){
		trigger.set("tween", {}).tween("height", [30, 0])
	};
    trigger.addEvents({
        "mouseenter": function(){
            target.set("tween", {
                duration: 1000,
                transition: Fx.Transitions.Bounce.easeOut
            }).tween("height", [0, 30]);
        },
        "mouseleave": function(){
            //tweenDelay.delay(5000);
            tweenDelay();
        }
    });
}

function abTween3(triggers){
	triggers = $$(triggers);
	var triggersOffH = new Array();
	var triggersOnH = new Array();
	var abFxTriggersOn = new Array();
	triggers.each(function(trigger, i){
		targetHolder = trigger.getElement('.hoverHolder');
		//alert(targetHolder);
		triggersOffH[i] = 0;
		triggersOnH[i] = $type(targetHolder.getElement('ul')) == 'element' ? targetHolder.getElement('ul').getSize().y : 0;
		abFxTriggersOn[i] = new Fx.Morph(targetHolder, {duration: 1000, transition: Fx.Transitions.Bounce.easeOut, link: "cancel"});
		
		if(triggersOnH[i] > triggersOffH[i]) {
			trigger.addEvents({
				"mouseenter": function(){
					abFxTriggersOn[i].start({
						"height": triggersOnH[i] + "px"
					})
				},
				"mouseleave": function(){
					abFxTriggersOn[i].start({
						"height": (triggersOffH[i]-1) + "px"
					})
				}
			});
		}
	});
}

function abTweenAll(triggers, targets) {
	triggers = triggers || $$($('goLocale'));
	targets = targets || $$($('localesList'));
	var h = [];
	
	triggers.each(function(trigger, i){
			h[i] = targets[i].getSize().y;
			targets[i].set("tween", { duration: 'short' }).set('style', 'overflow:hidden');
			targets[i].tween('height', [h, 0]);
			trigger.addEvents({
					'mouseenter': function(e){
						e.stop();
						targets[i].tween('height', [0, h]);
					},
					'mouseleave': function(e){
						e.stop();
						targets[i].tween('height', [h, 0]);
					}
				}
			);
		}
	)
}

function abTweenLocales(triggers, targets){
	var abAccordion = new Fx.Accordion($$('.goLocale'), $$('.localesList'), {
		trigger : 'mouseenter',
		display: -1,
		alwaysHide: true,
		onActive: function(toggler, element){
			toggler.addEvent("mouseleave", function(){ abAccordion.display(-1); })
			toggler.addClass('goLocaleOn');
			$$('.currentLocale').addClass('currentLocaleOn');
		},
		onBackground: function(toggler, element){
			toggler.removeClass('goLocaleOn');
			$$('.currentLocale').removeClass('currentLocaleOn');
		}

	});
}
