var Tooltips =
{
  init: function()
	{
		var catlinks = Core.getElementsByClass("categories");
		
		for (var j = 0; j < catlinks.length; j++)
		{
	    var links = catlinks[j].getElementsByTagName("a");
    
	    for (var i = 0; i < links.length; i++)
	    {
	      var title = links[i].getAttribute("title");
      
	      if (title && title.length > 0)
	      {
	        Core.addEventListener(links[i], "mouseover", Tooltips.showTipListener);
	        Core.addEventListener(links[i], "focus", Tooltips.showTipListener);
	        Core.addEventListener(links[i], "mouseout", Tooltips.hideTipListener);
	        Core.addEventListener(links[i], "blur", Tooltips.hideTipListener);
	      }
	    }
		}
	},

  showTip: function(link)
  {
    Tooltips.hideTip(link);

    var tip = document.createElement("span");
    tip.className = "tooltip";
    var tipText = document.createTextNode(link.title);
    tip.appendChild(tipText);
    link.appendChild(tip);
    
    link._tooltip = tip;
    link.title = "";
    
    // Fix for Safari2/Opera9 repaint issue
    document.documentElement.style.position = "relative";
  },
  
  hideTip: function(link)
  {
    if (link._tooltip)
    {
      link.title = link._tooltip.childNodes[0].nodeValue;      
      link.removeChild(link._tooltip);
      link._tooltip = null;
      
      // Fix for Safari2/Opera9 repaint issue
      document.documentElement.style.position = "static";
    }
  },

  showTipListener: function(event)
  {
    Tooltips.showTip(this);
    Core.preventDefault(event);
  },
  
  hideTipListener: function(event)
  {
    Tooltips.hideTip(this);
  }
};

Core.start(Tooltips);
