function fitUnderlay (oElement, oLay)
{
	var oNodes = oElement.getElementsByTagName("UL")[0].childNodes;
	
	// Find height
	var height = 0;
	for (i=0; i<oNodes.length; i++)
		if (oNodes[i].tagName=="LI") height += oNodes[i].offsetHeight;
		
	// Find width (just use the first)
	var width = oNodes[0].offsetWidth;
	
	// Find left and right (absolute)
	var left = 0;
	var top = 0;
	var oTemp = oNodes[0];
	
	while (oTemp != null) {
	 	left += oTemp.offsetLeft;
	 	oTemp = oTemp.offsetParent;
	}
	oTemp = oNodes[0];
	while (oTemp != null) {
	 	top += oTemp.offsetTop;
	 	oTemp = oTemp.offsetParent;
	}	
	
	oLay.style.height = height + "px";
	oLay.style.width = width + "px";
	oLay.style.left = left + "px";
	oLay.style.top = top + "px";
	oLay.attachedMenu = oElement;
}

function removeUnderlay (oLay)
{
  oLay.style.height = "0px";
  oLay.attachedMenu = null;
}

//if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.indexOf("7.")==-1) {
if (navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.indexOf("6.")==-1 && navigator.appVersion.indexOf("8.")==-1)) {
  
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
	  
			this.className+=" sfhover";
			
			if (this.isMenu) {			
				// Do we need to refocus the underlay?
				var ulay = document.getElementById("underlay" + (this.subLevel+''));
				if (ulay.attachedMenu != this) fitUnderlay(this, ulay);
			}
			else if (this.subLevel < 3) {
				// Remove overlay for this level
				var ulay = document.getElementById("underlay" + ((this.subLevel)+''));
				if (ulay.attachedMenu != null) removeUnderlay(ulay);	
			}
			
		}
				
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			
		if (this.subLevel==0) {
			  for (i=0; i<3; i++)
			  	removeUnderlay(document.getElementById("underlay" + (i+'')));
		}
					
		}
		
		sfEls[i].subLevel=0;
		sfEls[i].isMenu = (sfEls[i].getElementsByTagName("UL").length > 0);

		var oElement = sfEls[i];		
	
		// Classify list's sub level	
		do
		{
		    if (oElement.id == "nav") break;
		    else if (oElement.tagName == "UL") sfEls[i].subLevel++;
				
			if (oElement.parentNode) oElement = oElement.parentNode;
			else oElement=null;
				
		} while (oElement!=null);

	
	}
			
	// Create underlays
	for (i=0; i<3; i++) {
		oUnderlay = document.createElement("IFRAME");
		oUnderlay.id = "underlay" + (i + '');
		oUnderlay.style.position = "absolute"; 
		oUnderlay.style.border = "0px";
		oUnderlay.style.top = "0px";
		oUnderlay.style.left = "0px";
		oUnderlay.style.width = "0px";
		oUnderlay.style.height = "0px";
		oUnderlay.attachedMenu = null;
			
		document.body.appendChild(oUnderlay);
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

} // end if (IE6)