
	// --------------------------
	// CLIENT-SIDE SNIFF
	// --------------------------

	function BrowserData(sUA) {
		var iMSIE = sUA.indexOf("MSIE");
		this.userAgent = sUA;
		this.browser = (-1 != iMSIE) ? "MSIE" : "Other";
		this.majorVer = parseInt(sUA.substring(iMSIE + 5, iMSIE + 6));
		this.getsMenus = ("MSIE" == this.browser && 4 <= this.majorVer);
	}
	var oBD = new BrowserData(navigator.userAgent);


	// -------------------------------------------------------------
	// Client-side global variables
	// -------------------------------------------------------------

	var sOpenMenuID = "";

	var iChunk = 0;
	var iChunkStep = 15;
	var iChunkDelay = 10;

	var iMenuDeltaX = 0;	// optional adjustment to X position of menus (+/-)
	var iMenuDeltaY = 0;	// optional adjustment to Y position of menus (+/-)

	var sMenuPos = "below";   // values: "right", "below"
	var sMenuOrient = "top";   // values: "left", "top"
	var sMenuStyle = "diagonal";	// values: "down", "across", "diagonal"

	//var sMenuTitleFilterOn = "invert";
	//var sMenuTitleFilterOff = " ";
	//var sMenuTitleFilter = "flipV";
	//var sMenuTitleFilter = "alpha(opacity=50)";
	//var sMenuTitleFilter = "glow(color=blue,strength=5)";

/* ----------------------------------------------------------------
   main function, doMenu, that hides any open pop-up menus, determines 
   which menu DIV to access, and starts its display 
	---------------------------------------------------------------- */

	function DoMenu() 
	{
		window.event.cancelBubble = true;
		var eSrc = window.event.srcElement;
		//alert(event.type);

		// ----------------------------------------------------------
		// If we have a menu open, close it if appropriate
		// ----------------------------------------------------------

		if ("object" == typeof(document.all[sOpenMenuID])) {

			// ----------------------------------------------------------
			// If mouse is outside the displayed menu, or if the menu has
			// changed, dismiss the menu.
			// ----------------------------------------------------------

			var eMenu = document.all[sOpenMenuID];
			//alert(event.type + "\nmouseX=" + event.clientX + "\nmouseY=" + event.clientY + "\nmenuX=" + eMenu.style.pixelLeft + "\nmenuY=" + eMenu.style.pixelTop + "\nmenuWidth=" + eMenu.offsetWidth + "\nmenuHeight=" + eMenu.offsetHeight);
			if ( ("clsMenuTitle" == eSrc.className) &&
				 (sOpenMenuID != eSrc.id.replace("imgMenuTitle","divMenu")) ) {
				// drop through, cuz the menu has changed
			}
			else if (
				(event.clientY >= eMenu.style.pixelTop) &&
				(event.clientY <= eMenu.style.pixelTop + eMenu.offsetHeight) &&
				(event.clientX >= eMenu.style.pixelLeft) &&
				(event.clientX <= eMenu.style.pixelLeft + eMenu.offsetWidth)
				) {
				// mouse within existing menu, ignore
				return;
			}
			// Hide the menu and continue
			document.all[sOpenMenuID].style.display = "none";
			// all filters off
			var eImg = document.all[sOpenMenuID.replace("divMenu", "imgMenuTitle")];
			for (var nJ=0; nJ<eImg.filters.length; nJ++) {
				eImg.filters(nJ).enabled = false;
			}
			//document.all[sOpenMenuID.replace("divmenu","imgMenuTitle")].style.filter = sMenuTitleFilterOff;
			sOpenMenuID = "";
		}

		// ----------------------------------------------------------
		// If a menu title (other than that of an open menu) was mouseovered
		// ----------------------------------------------------------

		if ("clsMenuTitle" == eSrc.className) 
		{

		// ----------------------------------------------------------
		// Cancel default link behavior
		// ----------------------------------------------------------

			window.event.returnValue = false;

		// ----------------------------------------------------------
		// Get Menu associated with the Menu Title and make sure it exists
		// If it does, show the Menu
		// ----------------------------------------------------------

			sOpenMenuID = eSrc.id.replace("imgMenuTitle","divMenu")
			if ("object" == typeof(document.all[sOpenMenuID])) 
			{
				// all filters on
				for (var nJ=0; nJ<eSrc.filters.length; nJ++) {
					eSrc.filters(nJ).enabled = true;
				}
				//eSrc.style.filter = sMenuTitleFilterOn;
				var eMenu = document.all[sOpenMenuID];
				iChunk = iChunkStep;

				// ----------------------------------------------------------
				// Get the offset of the parent TR and TABLE for positioning the Menu
				// ----------------------------------------------------------

				var eTD = eSrc.parentElement.parentElement
				var eTR = eSrc.parentElement.parentElement.parentElement
				var eTABLE = eTR.parentElement.parentElement;
				//alert("eTD=" + eTD.tagName + "\neTR=" + eTR.tagName + "\neTABLE=" + eTABLE.tagName);

				// ----------------------------------------------------------
				// Set the right and top offsets based on sMenuPos & sMenuOrient
				// ----------------------------------------------------------

				if ("right" == sMenuPos) 
				{
					if ("left" == sMenuOrient )
					{
						eMenu.style.left = iMenuDeltaX + eTABLE.offsetLeft + eSrc.width;
						eMenu.style.top = iMenuDeltaY + eTABLE.offsetTop + eTR.offsetTop;
					}
					else // "top" == sMenuOrient
					{
						eMenu.style.left = iMenuDeltaX + eTD.offsetLeft + eSrc.width;
						eMenu.style.top = iMenuDeltaY + eTABLE.offsetTop + eTR.offsetTop;
					}
				}
				else // "below" == sMenuPos
				{
					if ("left" == sMenuOrient )
					{
						eMenu.style.left = iMenuDeltaX + eTABLE.offsetLeft + 26;
						eMenu.style.top = iMenuDeltaY + eTABLE.offsetTop + eTR.offsetTop + eSrc.height;
					}
					else // "top" == sMenuOrient
					{
						eMenu.style.left = iMenuDeltaX + eTABLE.offsetLeft + eTD.offsetLeft;
						eMenu.style.top = iMenuDeltaY + eTABLE.offsetTop + eTR.offsetTop + eSrc.height;
					}
				}

				// ----------------------------------------------------------
				// Zero out the Menu size and start the ShowMenu process
				// ----------------------------------------------------------

				eMenu.style.clip = "rect(0 0 0 0)";
				eMenu.style.display = "block";
				return window.setTimeout("ShowMenu(" + eMenu.id + ")", iChunkDelay);
			}
		}
	}

	// ----------------------------------------------------------
	// Function which returns the appropriate menu diplay animation
	// ----------------------------------------------------------

	function GetShowStyle() {
		if ("down" == sMenuStyle) return "rect(0 100% " + iChunk + "% 0)";
		if ("across" == sMenuStyle) return "rect(0 " + iChunk + "% 100% 0)";
		if ("diagonal" == sMenuStyle) return "rect(0 " + iChunk + "% " + iChunk + "% 0)";
		else return "rect(0 100% " + iChunk + "% 0)";
	}

	// ----------------------------------------------------------
	// Function which incrementally displays Menu in appropriate style
	// ----------------------------------------------------------

	function ShowMenu(eMenu) {
		eMenu.style.clip = GetShowStyle();
		if (100 >= iChunk) {
			window.setTimeout("ShowMenu(" + eMenu.id + ")", iChunkDelay);
		}
		iChunk += iChunkStep;
	}

	function DisableFilters() {
		for (var nK=1; nK<=9; nK++) {
			var eImg = document.all["imgMenuTitle" + nK];
			if ("object" == typeof(eImg) && "clsMenuTitle" == eImg.className) {
				// disable all filters				
				for (var nJ=0; nJ<eImg.filters.length; nJ++) {
					eImg.filters(nJ).enabled = false;
				}
			}
		}
	}

	// ----------------------------------------------------------
	// Global document event handlers
	// ----------------------------------------------------------

	if (oBD.getsMenus) {
		//document.onclick = DoMenu;
		document.onmouseover = DoMenu;
		//document.onmouseout = DoMenu;
	}


// ----------------------------------------------------------
// Segment display code (different app!)
// ----------------------------------------------------------


function showIt(name, on) {
  document.all("seg"+name).style.display = (on) ? "block" : "none";
}

var currentSeg;
function showSegment(name) {
  if (currentSeg) {
	  showIt(currentSeg, false);
	}
  showIt(name, true);
  currentSeg = name;
}
