NB.LinkTooltips = function() {
    var Event = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    var Anim = YAHOO.util.Anim;
    
    var tooltip = Dom.get("tooltip");
    
    var tooltipExpandBdAnim    = null;
    var tooltipFadeInAnim      = null;
    var tooltipExpandAnim      = null;
    var tooltipCollapseAnim    = null;
    var tooltipHideAnim        = null;
    var tooltipFadeOutAnim     = null;
    var tooltipTimoutId        = 0;
    var tooltipActLink         = null;
    var animatedTeasers        = {};
    
    function initializeTooltips() 
    {   
        var links = document.getElementsByTagName("a");
        for(var i = 0; i < links.length; i++)
        {
            if(links[i].title && links[i].title.length > 0)
            {
                var ea = {
                    obj : links[i],
                    title : links[i].title.replace("|", "<br />")
                };
                
                links[i].title = "";
                
                Event.on(links[i], "mouseover", showLinkTitle, ea);
                Event.on(links[i], "mouseout", hideLinkTitle, ea);
            }
        }
    }
    
    
    
    
    function hideLinkTitle(e, ea)
    {
        var t = Event.getTarget(e);
        if(t.nodeName.toLowerCase() != "img")
        {
            return;
        }
		
		var bd = tooltip.firstChild.nextSibling.firstChild;
        
        tooltipTimoutId = setTimeout(function() {
            tooltipExpandBdAnim.stop();
            tooltipFadeInAnim.stop();
            tooltipExpandAnim.stop();
            
            tooltipHideAnim = new Anim(bd, {height: {to: 0}}, 1, YAHOO.util.Easing.elasticIn);
            tooltipHideAnim.onComplete.subscribe(function() {
                Dom.setStyle(tooltip, "visibility", "hidden");
            });
            tooltipHideAnim.animate();
            
            var height = bd.firstChild.offsetHeight + 5;
            var newTop = parseInt(Dom.getStyle(tooltip, "top").replace("", ""), 10) - height;
            
            //tooltipCollapseBdAnim = new Anim(tooltip, {top: {to: newTop}}, 1, YAHOO.util.Easing.elasticIn);
            //tooltipCollapseBdAnim.animate();
            
            
            setTimeout(function() {
              tooltipFadeOutAnim = new Anim(bd.firstChild, {opacity : {from: 1, to: 0}}, .5, YAHOO.util.Easing.easeOut);
              tooltipFadeOutAnim.animate();
            }, 500);
            
        }, 600);
    }
    
   
    function showLinkTitle(e, ea)
    {
        var t = Event.getTarget(e);
        if(t.nodeName.toLowerCase() != "a")
        {
            return;
        }
        

        if(tooltipTimoutId)
        {
            clearTimeout(tooltipTimoutId);
            tooltipTimoutId = 0;
        }
        
        if(tooltipExpandAnim && tooltipExpandAnim.isAnimated())
        {
            if(tooltipActLink == ea.obj)
            {
               return;
            }
            else
            {
               tooltipExpandBdAnim.stop();
               tooltipFadeInAnim.stop();
               tooltipExpandAnim.stop();
            }
        }
        
        if(tooltipHideAnim && tooltipHideAnim.isAnimated())
        {
            tooltipHideAnim.stop();
            tooltipFadeOutAnim.stop();          
        }
        
        var element = ea.obj;		
		
        var elementPos = Dom.getXY(element);
        elementPos[0] += (element.offsetWidth - tooltip.offsetWidth) / 2;
        elementPos[1] -= 26;
            
        Dom.setXY(tooltip, elementPos);
        Dom.setStyle(tooltip, "visibility", "visible");
            
        var bd = tooltip.firstChild.nextSibling.firstChild;
        Dom.setStyle(bd, "height", 0);
        bd.firstChild.innerHTML = ea.title;
        
        var height = bd.firstChild.offsetHeight + 5;
            
        var newTop = parseInt(Dom.getStyle(tooltip, "top").replace("", ""), 10) - height;
        
        
        
        tooltipExpandBdAnim = new Anim(bd, {height: {to: height}}, 1, YAHOO.util.Easing.elasticOut);
        tooltipExpandBdAnim.animate();
            
        tooltipFadeInAnim = new Anim(bd.firstChild, {opacity : {from: 0, to: 1}}, .5, YAHOO.util.Easing.easeOut);
        tooltipFadeInAnim.animate();
        
        tooltipExpandAnim = new Anim(tooltip, {top: {to: newTop}}, 1, YAHOO.util.Easing.elasticOut);
        tooltipExpandAnim.animate();
        
        tooltipActLink = ea.obj;
    }
    
    initializeTooltips();
    
    return {};
    
}();
