function TooltipInit(id)
{
	var links, i, h;
	
	if (document.getElementById && document.getElementsByTagName)
	{
		var b = document.getElementsByTagName("body");
		
		h = document.createElement("span");
		h.id = "btc";
		h.rev = false;
		h.setAttribute("id", "btc");
		h.style.position = "absolute";
		
		if (b.length > 0)
		{
			b[0].appendChild(h);
		}
		
		links = id != null ? document.getElementById(id) : document;
		links = links != null ? links.getElementsByTagName("area") : document.getElementsByTagName("area");
	
		for (i = 0; i < links.length; i++)
		{
			TooltipLink(links[i]);
		}
	}
}

function TooltipLink(el)
{
	var tooltip, tooltipTop, tooltipBtm, tooltipLnk;

	tooltip = document.createElement("span");
	tooltip.rev = el.className == "reverse";
	tooltip.className = "tooltip" + (tooltip.rev ? "2" : "1");
	tooltip.style.display = "block";
	tooltip.style.overflow = "hidden";
	
	tooltipTop = tooltip.appendChild(document.createElement("span"));
	tooltipTop.className = "top";
	tooltipTop.style.display = "block";
	tooltipTop.appendChild(document.createTextNode(el.getAttribute("title")));

	tooltipTop = tooltip.appendChild(document.createElement("span"));
	tooltipTop.className = "btm";
	tooltipTop.style.display = "block";

	el.onmousemove = TooltipMove;
	el.onmouseout = TooltipHide;
	el.onmouseover = TooltipShow;
	el.removeAttribute("title");
	el.tooltip = tooltip;
}

function TooltipHide(e)
{
	var btc = document.getElementById("btc");
	
	if (btc && btc.childNodes.length > 0)
	{
		btc.removeChild(btc.firstChild);
	}
}

function TooltipMove(e)
{
	var btc = document.getElementById("btc"), posx = 0, posy = 0;

	if (btc)
	{
		var offx = btc.rev ? -140 : -12.5;
		var offy = 25;
		
		if (e==null) e = window.event;
	
		if (e.pageX || e.pageY)
		{
			posx = e.pageX;
			posy = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			if(document.documentElement.scrollTop)
			{
				posx = e.clientX + document.documentElement.scrollLeft;
				posy = e.clientY + document.documentElement.scrollTop;
			}
			else
			{
				posx = e.clientX + document.body.scrollLeft;
				posy = e.clientY + document.body.scrollTop;
			}
		}
	
		btc.style.left = (posx + offx) + "px";
		btc.style.top = (posy + offy) + "px";
	}
}


function TooltipShow(e)
{
	var btc = document.getElementById("btc");
	
	if (btc)
	{
		btc.appendChild(this.tooltip);
		btc.rev = this.tooltip.rev;
	}
	
	TooltipMove(e);
}

if (window.addEventListener) window.addEventListener("load", TooltipInit, false);
else if (window.attachEvent) window.attachEvent("onload", TooltipInit);