CSAct[/*CMP*/ 'GLOSSOFF'] = new Array(CSShowHide,/*CMP*/ 'gloss',0);
CSAct[/*CMP*/ 'GLOSSON'] = new Array(CSShowHide,/*CMP*/ 'gloss',1);

// Set up glossary items
function setGlossaryItems()
{
	if (document.getElementsByTagName);
	{
		var ancs = document.getElementsByTagName("a"); 
		for (var i=0; i < ancs.length; i++)
		{ 
			var anc = ancs[i]; 
			if ((anc.getAttribute("href") != "") && (anc.getAttribute("rel") != null) && (anc.getAttribute("rel") != ""))
			{
				anc.onmouseover = function(event) { showGlossary(this.rel, event); return true; };
				anc.onmousemove = function(event) { positionGlossary(event); return true; };
				anc.onmouseout = function() { hideGlossary(this.rel); };
				anc.onfocus = function(event) { showGlossary(this.rel, event); return true; };
				anc.onblur = function() { hideGlossary(this.rel); };
				anc.onclick = function() { return false; };
				anc.setAttribute("href", "#");
			}
		} 
	}

	return true;
}

function showGlossary(key, evt) {

	if (key == "") return;
	
	if (!evt) evt = window.event;

	var elem;
	if (IsIE())
	{
		elem = document.getElementById(key);
	}
	else
	{
		elem = CSFindElement(key, 0);
	}
	
	if (elem)
	{		
		// Show Div
		CSAction(new Array(/*CMP*/'GLOSSON'));
	
		// Show item
		elem.style.display = "block"
	
		// Position popup
		positionGlossary(evt);
	}

	return true;
}

function hideGlossary(key) {

	if (key == "") return;

	var elem;

	if (IsIE())
	{
		elem = document.getElementById(key);
	}
	else
	{
		elem = CSFindElement(key, 0);
	}

	if (elem)
	{
		// Hide Div
		CSAction(new Array(/*CMP*/'GLOSSOFF'));

	// Hide Item
		elem.style.display = "none"
	}

	return true;
}

function positionGlossary(evt) {

	var elem;

	if (!evt)
		 evt = new xEvent(window.event);
	else
		evt = new xEvent(evt);
	
	var wele = xGetElementById("wrapper");

	
	elem = xGetElementById("gloss");
		

	if (elem)
	{	
		if(xClientHeight() > (evt.pageY -  xScrollTop()) + xHeight(elem))			
		{
			elem.style.top = parseInt(evt.pageY - xPageY(wele) + 130) + 'px';
		}
		else
		{
			elem.style.top = parseInt(evt.pageY - xPageY(wele) + 90 - xHeight(elem)) + 'px';
		}
		
		if ((evt.pageX + xWidth(elem)) < xPageX(wele) +  xWidth(wele))
		{
			elem.style.left = parseInt(evt.pageX - xPageX(wele)) + 'px';
		}
		else
		{
			elem.style.left = parseInt(evt.pageX - xPageX(wele) - xWidth(elem))+'px';
		}
	}
}
