var tool;
var offsetX = 20;
var offsetY = 10;
var toolHendler;
var toolContent;
var box;

function toolOver(handler,content,offX,offY,boxVar)
{
	box = boxVar;
	if(offX) offsetX=offX;
	if(offY) offsetY=offY;
	if(handler) toolHendler=handler;
	if(content) toolContent=content;
	
	if(toolOver.arguments.length < 1) hideToolOver();
	else{
		if(!box){
			tool=document.getElementById('toolOverLayer');
		}else{
			initToolOver();
		}
//		if(!tool) initToolOver();
		showToolOver();
		
		if(toolHendler.onmousemove==null) toolHendler.onmousemove = moveToMouseLoc;
	}
}

function hideToolOver()
{
	if(tool) tool.style.visibility = "hidden";
	box = 0;
}

function showToolOver()
{
	if(!box){
		document.getElementById('infoBoxCont').innerHTML = toolContent;
		tool.style.visibility = 'visible';	
	}else{
		tool.innerHTML = toolContent;
	}
}


function initToolOver()
{
	var newdiv = document.createElement('div');
	newdiv.style.position = 'absolute';
	newdiv.style.zIndex = '5500';
	newdiv.setAttribute('id','toolOverLayer2');
	newdiv.style.visibility = 'hidden';
	document.body.appendChild(newdiv);
	tool = document.getElementById('toolOverLayer2');
}

function moveToMouseLoc(e)
{
	 tool.style.left = findMouseXY(e)[0] + offsetX + 'px';
	 if(!box) tool.style.top = findMouseXY(e)[1]+  offsetY + 'px';
	 else tool.style.top = findMouseXY(e)[1]- tool.clientHeight  + 'px';
	 if(tool.style.visibility != 'visible') setTimeout("setVisible()",200);
return true;
}

function setVisible()
{
	tool.style.visibility = 'visible';	
}

function findMouseXY(e) {
   var posX = 0, posY = 0;
   if( !e ) { e = window.event; } if( !e ) { return [ 0, 0 ]; }
   if( typeof( e.pageX ) == 'number' ) {
      posX = e.pageX; posY = e.pageY;
   } else {
      if( typeof( e.clientX ) == 'number' ) {
         posX = e.clientX; posY = e.clientY;
         if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) && !( window.opera || window.debug || navigator.vendor == 'KDE' ) ) {
               posX += document.body.scrollLeft; posY += document.body.scrollTop;
         }  else {
            if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) && !( window.opera || window.debug || navigator.vendor == 'KDE' ) ) {
               posX += document.documentElement.scrollLeft; posY += document.documentElement.scrollTop;
            }
         }
      }
   }
  
   return [ posX, posY ];
}


