
		function xstooltip_findPosX(obj) 
		{
		  var curleft = 0;
		  if (obj.offsetParent) 
		  {
			while (obj.offsetParent) 
				{
					curleft += obj.offsetLeft
					obj = obj.offsetParent;
				}
			}
			else if (obj.x)
				curleft += obj.x;
			return curleft;
		}
		
		function xstooltip_findPosY(obj) 
		{
			var curtop = 0;
			if (obj.offsetParent) 
			{
				while (obj.offsetParent) 
				{
					curtop += obj.offsetTop
					obj = obj.offsetParent;
				}
			}
			else if (obj.y)
				curtop += obj.y;
			return curtop;
		}
		
		function xstooltip_show(tooltipId, parentId, posX, posY)
		{
			it = document.getElementById(tooltipId);
			
			if ((it.style.top == '' || it.style.top == 0) 
				&& (it.style.left == '' || it.style.left == 0))
			{
				// need to fixate default size (MSIE problem)
				it.style.width = it.offsetWidth + 'px';
				it.style.height = it.offsetHeight + 'px';
				
				img = document.getElementById(parentId); 
			
				// if tooltip is too wide, shift left to be within parent 
				if (posX + it.offsetWidth > img.offsetWidth) posX = img.offsetWidth - it.offsetWidth;
				if (posX < 0 ) posX = 0; 
				
				x = xstooltip_findPosX(img) + posX;
				y = xstooltip_findPosY(img) + posY;
				
				it.style.top = y + 'px';
				it.style.left = x + 'px';
			}
			
			it.style.visibility = 'visible'; 
		}
		
		function xstooltip_hide(id)
		{
			it = document.getElementById(id); 
			it.style.visibility = 'hidden'; 
		}// JavaScript Document