// Written by Ahmad Azarinurazie (aien@pixl8.co.uk).
// Created on December 16th. 2008

iOffsetX = 5;
iOffsetY = 5;

function initTooltipSpan() {
	var aSpan = document.getElementsByTagName("SPAN");
	for (var i=0; i<aSpan.length; i++) {
		if (aSpan[i].className == "tooltip-wrapper") initTooltip(aSpan[i]);
	}
	var bod = document.getElementsByTagName('body')[0];
	var tooltip = document.createElement('div');
	tooltip.id = "preside-glossary-tooltip";
	tooltip.style.display = "none";
	bod.appendChild(tooltip);
}

function initTooltip(obj) {
	obj.onmouseover = function(e) {
		for (var i=0; i<this.childNodes.length; i++) {
			if (this.childNodes[i].className == "tooltip hide") {
				followMouseMove(e, this.childNodes[i], true);
			}
		}
	}
	
	obj.onmouseout = function(e) {
		for (var i=0; i<this.childNodes.length; i++) {
			if (this.childNodes[i].className == "tooltip hide") {
				followMouseMove(e, this.childNodes[i], false);
			}
		}
	}
	
	for (var i=0; i<obj.childNodes.length; i++) {
		if (obj.childNodes[i].className == "tooltip") obj.childNodes[i].className = "tooltip hide";
	}
}

function followMouseMove(e, obj, action) {
	var tooltip = document.getElementById("preside-glossary-tooltip");
	
	if (action) {
		tooltip.innerHTML = obj.innerHTML;
		tooltip.style.display = "";
		
		document.onmousemove = function(e) {
			var posx = 0;
			var posy = 0;
			if (!e) var e = window.event;
			if (e.pageX || e.pageY) {
				posx = e.pageX;
				posy = e.pageY;
			}
			else if (e.clientX || e.clientY) 	{
				posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
				posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
			}
			
			var tooltip = document.getElementById("preside-glossary-tooltip");
			
			tooltip.style.top = (posy+iOffsetY) + "px";
			tooltip.style.left = (posx+iOffsetX) + "px";
		}
	}
	else {
		document.onmousemove = null;
		document.getElementById("preside-glossary-tooltip").style.display = "none";
	}
}
