/**
 * @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;border-width:0;');
        targets[i].tween('height', [h, 0]);
        trigger.addEvents({
            'mouseenter': function(e){
                e.stop();
                targets[i].tween('height', [0, h]).set('style', 'border-width:1px;');
            },
            'mouseleave': function(e){
                e.stop();
                targets[i].tween('height', [h, 0]).set('style', 'overflow:hidden;border-width:0;');;
            }
        });
    })
}


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