/*
+-------------------------------------------
*   PhpInk - Content Manager System
*   ========================================
*   by Szabo Viktor
*   (c) 2008 SourComp
*   Web: http://www.webaction.hu
*   Email: admin@sour.hu
*   ========================================
*   Filename: tooltip.js
*   Created on: 2008 augusztus 13. 23:06:54
+-------------------------------------------
*   CHANGELOG
*   =========
*   - 
*   - 
+-------------------------------------------
*   TODO    o (done)  - (planed)    x (failed)
*   =========   
*   -
*   -
*/

function tooltip(evt,innerTEXT,cls,type) {

  var target = (evt.target)?evt.target:evt.srcElement;
  var posX;
  var posY;
  var sX;
  var sY;
  
  var tooltip = document.getElementById('tooltip');
  if(!tooltip) {
    render(innerTEXT);
    var tooltip = document.getElementById('tooltip'); 
  }
  
  if (document.documentElement && document.documentElement.scrollTop) {
    sY = document.documentElement.scrollTop;
    sX = document.documentElement.scrollLeft;
  }
  else if (document.body.scrollTop) {
    sY = document.body.scrollTop;
    sX = document.body.scrollLeft;
  }
  
  switch(type) {
           
    case 'rb':
      posX = findPosX(target)+target.offsetWidth;
      posY = findPosY(target)+target.offsetHeight;
      break;
      
    case 'tc':
      posX = findPosX(target)+(target.offsetWidth/2)-(tooltip.offsetWidth/2);
      posY = findPosY(target)-(tooltip.offsetHeight);
      break;
      
    default:
      posX = evt.clientX + sX + 20;
      posY = evt.clientY + sY + 20;
  }
  
  if(cls) {
    tooltip.style.cssText = 'position:absolute;top:'+(posY)+';left:'+posX;
    tooltip.className = cls;
  }
  else
    tooltip.style.cssText = 'font:bold 11px Tahoma;text-align:center;position:absolute;top:'+(posY)+';left:'+posX+';';
    
  target.onmouseout = function() {remove_tooltip()};
  
}

function render(innerTEXT) {
  var tooltipContainer = document.createElement('div');
  tooltipContainer.id = 'tooltip';
  tooltipContainer.style.cssText = tooltipContainer.style.cssText+'display:none;';
  var tooltipInner = document.createElement('div');
  tooltipInner.className = 'tooltipInner';
  tooltipInner.innerHTML = innerTEXT;
  var tooltipInnerBorder = document.createElement('div');
  tooltipInnerBorder.className = 'tooltipInnerBorder';
  var space = document.createElement('div');
  space.style.cssText = 'clear:both';
  var lt = document.createElement('div');
  lt.className = 'lt';
  var rt = document.createElement('div');
  rt.className = 'rt';
  var lb = document.createElement('div');
  lb.className = 'lb';
  var rb = document.createElement('div');
  rb.className = 'rb';
  
  document.body.appendChild(tooltipContainer);    
  tooltipContainer.appendChild(rt);
  rt.appendChild(lt);
  tooltipContainer.appendChild(tooltipInnerBorder);
  tooltipInnerBorder.appendChild(tooltipInner);
  tooltipContainer.appendChild(lb);
  tooltipContainer.appendChild(rb);
  tooltipContainer.appendChild(space);

}

function remove_tooltip() {
  var tooltip = document.getElementById('tooltip');
  if(tooltip)
    document.body.removeChild(tooltip);
}

function findPosX(obj) {
  var curleft = 0;
  if(obj.offsetParent)
      while(1) 
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj) {
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}