var originalSelection;
var currentSelection;

function initNavStat()
{
  // store the original selection, defined by the id "sel"
  if (document.getElementById("sel"))
  {
		originalSelection = document.getElementById("sel");
		currentSelection  = originalSelection;
	}
  
  // set event handler changeSelection onmousemove for all nav items
  var menu = document.getElementById("menu");
  var navitems = menu.getElementsByTagName("a");
  for (var i=0; i < navitems.length; ++i)
  {
		if (navitems[i].nodeType == 1)
		{
			navitems[i].onmouseover = changeSelection;
		}
  }

  // set event handler restore Selection onmouseout for id "menu" item
  menu.onmouseout = restoreSelection;
}

function changeSelection(e)
{
	if (!e) e = window.event;
	
	if (currentSelection)
		currentSelection.id = "";
	currentSelection    = e.srcElement ? e.srcElement : e.target;
	currentSelection.id = "sel";
}

function restoreSelection(e)
{

	// this snippet is from http://www.webmasterworld.com/javascript/3752159.htm
	// and makes the actions further down only be executed when the mouse is moved
	// genuinely outside the element (i.e. not into child elements)
	if (!e) e = window.event;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;

	while (reltg.tagName != 'BODY')
	{
		if (reltg.id == this.id){return;}
		reltg = reltg.parentNode;
	}


	
	currentSelection.id  = "";
	currentSelection     = originalSelection;
	originalSelection.id = "sel";
}
