/* Footnotes.js, version 2 -- With added functionality for Glossary terms containing nested tags */

window.onload=HookupFuncs;

function HookupFuncs() {
	document.body.onmouseover=document_onmouseover;
	document.body.onmouseout=document_onmouseout;
	document.body.onclick=note_click;
	}

function InsideClass(c) {
	var elem = event.srcElement;
	while ((elem != null) && (elem.tagName != 'BODY')) {
		if (elem.className == c) {
			return elem
			}
	elem = elem.parentElement;
		}
	return null;
	}


function document_onmouseover(){
	var iOffsetX;
	var iOffsetY;
	var oBody = window.document.body;
	var elemdiv;
	var glosselem;
	if (event.srcElement.className == 'fn') {
		event.srcElement.style.color = "green";
		event.srcElement.style.fontWeight = "bold";
		event.srcElement.style.cursor='hand';
		event.srcElement.title = document.all("_" + event.srcElement.id).innerText;
		}
	else {
		elemgloss = InsideClass('gloss');
		if (elemgloss) {
			elemdiv = document.all("_" + elemgloss.id);
			elemdiv.top = 0;
			elemdiv.left = 0;
			elemdiv.style.visibility = "hidden";
			elemdiv.style.display="block";
			if (event.clientX + elemdiv.offsetWidth - 10 > oBody.clientWidth) {
				iOffsetX = oBody.clientWidth + oBody.scrollLeft - elemdiv.offsetWidth - 10;
				}
			else {
				iOffsetX = event.clientX + oBody.scrollLeft - 10;
				}
			if (event.clientY + elemdiv.offsetHeight + 18 > oBody.clientHeight) {
				iOffsetY = event.clientY + oBody.scrollTop - elemdiv.offsetHeight - 10;
				}
			else {
				iOffsetY = event.clientY + oBody.scrollTop + 18;
				}
			elemdiv.style.left = iOffsetX;
			elemdiv.style.top = iOffsetY;
			elemdiv.style.visibility="visible";
			}
		}
	}

function document_onmouseout(){
	var elemgloss
	if (event.srcElement.className == 'fn') {
		event.srcElement.style.color = "";
		event.srcElement.style.fontWeight = "normal";
		event.srcElement.title = "";
		}
	else {
		elemgloss = InsideClass('gloss');
		if (elemgloss) {
			document.all("_" + elemgloss.id).style.visibility="hidden"; 
			}
		}
	}

function note_click() {
	var el = event.srcElement;
	var targetid = "_" + el.id;
	if (el.className == 'fn') {
		if (document.all(targetid).style.display == "inline") {
			document.all(targetid).style.display = "none"; 
				}
		else {
			document.all(targetid).style.display = "inline";
			}
		}
	}


