// sfhover.js
// Based on suckerfish: http://www.htmldog.com/articles/suckerfish/.

// attachEvent is a non-standard MSIE-only extension
if (window.attachEvent)
{

	// function sfHover replaces missing support in MSIE
	// for CSS :hover on elements other than A.

	function sfHover()
	{
		var navElement = document.getElementById("nav");
		if (navElement)
		{
			var sfEls = navElement.getElementsByTagName("LI");
			if (sfEls.length)
			{
				var C_CLASS = "sfHover";
				var strClass = " " + C_CLASS;
				var reClass = new RegExp(" " + C_CLASS + "\\b");

				var fnMouseOver = function() { this.className += strClass; };
				var fnMouseOut = function() { this.className = this.className.replace(reClass, ""); };

				for (i = 0; i < sfEls.length; ++i)
				{
					sfEls[i].onmouseover = fnMouseOver;
					sfEls[i].onmouseout = fnMouseOut;
				}
				sfEls = null;
			}
			navElement = null;
		}
	}

	function sfHoverCleanup()
	{
		var navElement = document.getElementById("nav");
		if (navElement)
		{
			var sfEls = navElement.getElementsByTagName("LI");
			if (sfEls.length)
			{
				for (i = 0; i < sfEls.length; ++i)
				{
					sfEls[i].onmouseover = null;
					sfEls[i].onmouseout = null;
				}
				sfEls = null;
			}
			navElement = null;
		}

		window.detachEvent("onunload", sfHoverCleanup);
	}

	window.attachEvent("onload", sfHover);
	window.attachEvent("onunload", sfHoverCleanup);
}
