// XMLHttpRequest object
function getXHR() {
	var xhr = false;
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xhr = false;
			}
		}
	}
	return xhr;
}

function showTooltips() {
	if (!document.getElementsByTagName || (document.getElementsByTagName("a")).length == 1) {
		return false;
	}

	var links = document.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++) {
		if ((links[i].href).indexOf("link.cp2?t=Glossary&i=") > -1) {
			var tooltip = document.getElementById("tooltip");
			links[i].style.cursor = "help";
			links[i].style.color = "#1f3173";
			links[i].onmouseover = function (e) {
				window.hoverElement = null;
				var eventObj = !e ? window.event : e;
				var target;
				if (eventObj.target) {
					target = eventObj.target;
				} else if (eventObj.srcElement) {
					target = eventObj.srcElement;
				}
				if (target.nodeType == 3) target = target.parentNode;
				if (target.tagName.toUpperCase() == 'A') {
					window.hoverElement = target;
				}
				if (window.hoverElement == null || window.hoverElement.href == null) {
					return;
				}
				var href = window.hoverElement.href;
				var uid = (href.indexOf("&i=") > -1) ? href.substring(href.indexOf("&i=") + 3, href.length) : href.substring(href.indexOf("&uid=") + 5, href.indexOf("&", href.indexOf("&uid=") + 1));
				document.onmouseover = function () {
					tooltip.style.display = "none";
				}
				var lang = ((window.location.href).split('//')[1]).split('/')[1];
				var XHRequest = getXHR();
				XHRequest.open("GET", "/" + lang + "/getTooltip.cp2?uid=" + uid, true);
				XHRequest.onreadystatechange = function() {
					if (XHRequest.readyState == 4) {
						if (XHRequest.status == 200) {
							tooltip.innerHTML = XHRequest.responseText;
							tooltip.style.display = (tooltip.style.display == "none") ? "block" : "none";
							var objPosition = findPos(window.hoverElement);
							tooltip.style.left = objPosition[0] + 5 + "px";
							tooltip.style.top = objPosition[1] + 15 + "px";
						} else {
							tooltip.innerHTML = "";
							tooltip.style.display = "none";
						}
					}
				}
				XHRequest.send(null);
				window.XHRequest = XHRequest;
			}
			links[i].onmouseout = function () {
				window.hoverElement = null;
				tooltip.style.display = "none";
				tooltip.style.left = "0";
				tooltip.style.top = "0";
			}
			links[i].onclick = function () {
				return false;
			}
		}
	}
}

function findPos(obj) {
	if (null != obj) {
		var curleft, curtop;
		curleft = curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	} else {
		return false;
	}
}

showTooltips();