Perwoll.Teaser = function() {
    var Event = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    var Anim = YAHOO.util.Anim;
    
    var animatedTeasers        = {};
    
    
    function initializeTeasers()
    {
        var teaserLinks = Dom.getElementsByClassName("teaser-link");
        for(var i = 0; i < teaserLinks.length; i++)
        {
            Event.on(teaserLinks[i], "mouseover", onTeaserOver, teaserLinks[i]);
        }
    }
	
    function onTeaserOver(ea, link) 
    {
        var arrow = Dom.getNextSibling(link);
        var id = (arrow.id) ? arrow.id : Dom.generateId(arrow);
        
        if(animatedTeasers[id])
        {
            return;
        }
        
        // Slight move back animation
        var move = new Anim(arrow, {right : {to : 27}}, .2, YAHOO.util.Easing.easeOut);
        move.onComplete.subscribe(function() {
            
            // Fade out + Move out animation, comes after move back
            var fadeOut = new Anim(arrow, {opacity : {to : 0}, right: {to: 3}}, .5, YAHOO.util.Easing.easeOut);
            fadeOut.onComplete.subscribe(function() {
                
                // Fade in  + Move in animation, comes after fade out
                var fadeIn = new Anim(arrow, {opacity : {to : 1}, right: {from: 27, to: 16}}, 1, YAHOO.util.Easing.elasticOut);
                fadeIn.onComplete.subscribe(function() {
                    animatedTeasers[id] = false;
                });
                fadeIn.animate();
                
            });
            fadeOut.animate();
        });
        move.animate();
        animatedTeasers[id] = true;     
    }
    
    
    initializeTeasers();
    
    
    return {};
    
}();
