/**
 * Simple Tooltip Object v.1.0
 *
 * @author Bobo Wieland, bobo@plucera.se 
 * @copyright (C) 2007-2008, Plucera AB, http://www.plucera.se
 */
var Tip = {
 
   box : null,
   
   fadeInInterval : null,
   fadeOutInterval : null,
   
   init : function() {      
      this.box = document.createElement("div");
      this.box.id = "tooltip";
      this.box.style.opacity = 0;
      this.box.style.filter = "alpha(opacity=0)";
      this.box.style.display = "none";
      document.getElementsByTagName("body").item(0).appendChild(this.box);
   },   
   
   show : function(_lmnt, _tip) {
   
      if (!this.box) { this.init(); }
      
      var curleft = curtop = 0;
      if (_lmnt.offsetParent) {
         curleft = _lmnt.offsetLeft
         curtop = _lmnt.offsetTop
         while (_lmnt = _lmnt.offsetParent) {
            curleft += _lmnt.offsetLeft
            curtop += _lmnt.offsetTop
         }
      }
      this.box.style.left = Math.max((curleft - 215),5) + "px";
      this.box.style.top = (curtop + 20) + "px";
      this.box.innerHTML = _tip;
      clearInterval(this.fadeOutInterval);
      this.box.style.display = "block";
      this.fadeInInterval = setInterval(function() {
         if (parseFloat(Tip.box.style.opacity) >= 0.9) {
            Tip.box.style.opacity = 0.9;
            Tip.box.style.filter = "alpha(opacity=90)";
            clearInterval(Tip.fadeInInterval);
         }
         else {
            var fract = parseFloat(Tip.box.style.opacity) + 0.1;
            Tip.box.style.opacity = fract;
            Tip.box.style.filter = "alpha(opacity=" + (fract*100) + ")";
         }
      },50);      
   },
   
   hide : function() {
   
      if (!this.box) { this.init(); }
      
      clearInterval(this.fadeInInterval);
      this.fadeOutInterval = setInterval(function() {
         if (parseFloat(Tip.box.style.opacity) <= 0) {
            Tip.box.style.opacity = 0;
            Tip.box.style.filter = "alpha(opacity=0)";
            Tip.box.style.display = "none";
            Tip.box.innerHTML = "";
            clearInterval(Tip.fadeOutInterval);
         }
         else {
            var fract = parseFloat(Tip.box.style.opacity) - 0.1;
            Tip.box.style.opacity = fract;
            Tip.box.style.filter = "alpha(opacity=" + (fract*100) + ")";
         }
      },50);
   }
}