


var posX = 0;
var posY = 0;
var selected_elem = null;
var defaultOffsetX = 30;
var defaultOffsetY = 10;
var offsetX = 0;
var offsetY = 0;
var hoverElem = null;
var hoverTimeout = null;
var noTimeout = false;
var tooltipsON=true;

function load_tooltips(){
  var lks = document.getElementsByTagName("a");
  var rel = "";
  if (lks.length){
     for (var i=0; i<lks.length; i++){
       rel = lks[i].getAttribute("rel");
       if (rel){
         rel = rel.toString();
       }else{
         continue;
       }
       if (rel.indexOf("tooltip") == 0){
          rel = rel.replace("tooltip","");
          rel = rel.replace("[","");
          rel = rel.replace("]","");
          if (rel != "" && rel != null){
              if (rel.indexOf("trimite_") == 0){
                 lks[i].onclick = function(e){
                     posX = getElementLeft(this);
                     posY = getElementTop(this);
                     offsetX = -320;
                     offsetY = -53;
                     hoverElem = this;
                     noTimeout = true;
                     showToolTip();
                 }
                 //lks[i].onmouseout = hideToolTip;
              }else
              if (rel.indexOf("tool_") == 0){
                 lks[i].onclick = function(e){
                     posX = getElementLeft(this);
                     posY = getElementTop(this);
                     offsetX = -320;
                     offsetY = -40;
                     hoverElem = this;
                     noTimeout = true;
                     showToolTip();
                 }
                 lks[i].onmouseout = hideToolTip;
              }else{
                 lks[i].onmouseover = function(e){
                     if (document.all){
                        posX = event.clientX + document.documentElement.scrollLeft;
                        posY = event.clientY + document.documentElement.scrollTop;
                     }else if (e){
                           posX = e.pageX;
                           posY = e.pageY;
                     }
                     hoverElem = this;
                     noTimeout = false;
                     offsetX = defaultOffsetX;
                     offsetY = defaultOffsetY;
                     document.onmousemove = followMouse;
                     hoverTimeout = setInterval(showToolTip,1000);
                 }
                 lks[i].onmouseout = hideToolTip;
              }
          }
       }
     }
  }
}

function hideToolTip(){
  if (typeof hoverTimeout == "number" && hoverTimeout>0){
     clearInterval(hoverTimeout);
  }
  hoverElem = null;
  hoverTimeout = null;
  if (typeof selected_elem == "object" && selected_elem != null){
     with (selected_elem.style){
	  top = "-10000px";
	  left = "-10000px";
     }
  }
  document.onmousemove = null;
  offsetX = defaultOffsetX;
  offsetY = defaultOffsetY;
  noTimeout = false;
  selected_elem = null;
}

/* function error_log(str){
         var a;
         if (a = document.getElementById("error_log")){
            a.value = str+"\n"+a.value;
         }
} */

function showToolTip(){
  if (typeof hoverElem == "object" && hoverElem != null){
    if (noTimeout == false){
        if (typeof hoverTimeout == "number" && hoverTimeout>0){
           clearInterval(hoverTimeout);
        }else return;
    }
    var a;
    var id = hoverElem.getAttribute("rel");
    if (id){
      id = id.replace("tooltip","");
      id = id.replace("[","");
      id = id.replace("]","");
      if (a = document.getElementById(id)){
         selected_elem = a;
         with (selected_elem.style){
    	  top = (posY+offsetY)+"px";
    	  left = (posX+offsetX)+"px";
         }
      }
    }
  }
}


function followMouse(e){
	if (document.all) {
		posX = event.clientX + document.documentElement.scrollLeft;
		posY = event.clientY + document.documentElement.scrollTop;
	} else if (e){
		posX = e.pageX;
		posY = e.pageY;
	}
	if (selected_elem != null){
		with(selected_elem.style){
			top = (posY+offsetY)+"px";
			left = (posX+offsetX)+"px";
		}
	}
}

function getElementLeft(pElt){
  var intX = pElt.offsetLeft;
  while ((pElt = pElt.offsetParent) != null){
    intX += pElt.offsetLeft;
  }
  return intX;
}
function getElementTop(pElt){
  var intY = pElt.offsetTop;
  while((pElt = pElt.offsetParent) != null){
    intY += pElt.offsetTop;
  }
  return intY;
}
function getElementHeight(pElt){
  return pElt.offsetHeight;
}
function getElementWidth(pElt){
  return pElt.offsetWidth;
}