/* glossary.js */

var x = 0, y = 0;

function fillGlossary(term, evt) {
	var url = "index.cfm?fuseaction=home.glossaryAjax&term=" + term;
	
	x = 0;
	y = 0;

	try {
		x = window.event.clientX + document.documentElement.scrollLeft;
		y = window.event.clientY + document.documentElement.scrollTop;
	} catch (e) {
		x = evt.pageX;
		y = evt.pageY;
	}
	
	if(x < 0){x = 0;}
	if(y < 0){y = 0;}  

	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	req.open("GET", url, true);
	req.onreadystatechange = fillGlossaryCallback;
	req.send(null);
}

function fillGlossaryCallback() {
	if (req.readyState == 4 && req.status == 200) {
		var resp = req.responseXML.getElementsByTagName("div")[0];
		var obj = document.getElementById("glossaryDiv");

		obj.innerHTML = getXMLNodeSerialisation(resp);

		obj.style.display = "block";

		x -= 50;
		y -= (obj.clientHeight + 35);

		obj.style.left = x + "px";
		obj.style.top = y + "px";
	}
}

function getXMLNodeSerialisation(xmlNode) {
	var text = "Unable to find glossary term.";

	try {
		var serializer = new XMLSerializer();
		text = serializer.serializeToString(xmlNode);
	} catch (e) {
		try {
			text = xmlNode.xml;
		} catch (e) {
			text = "Unable to find glossary term.";
		}
	}

	return text;
}

function hideGlossary() {
	var obj = document.getElementById("glossaryDiv");

	obj.style.display = "none";
}