	// -------------------------------------------------------------
	// Client-side global variables
	// -------------------------------------------------------------

	var eOpenMenu;
	var eOpenFont;
	var sOpenClass = "";
	var eOpenTD;
	
	
	var iChunk = 0;
	var iChunkStep = 10;
//	var iChunkDelay = 15;
	var iChunkDelay = 10;
	var sMenuPos = "right";   // values: "right", "below"
	var sMenuStyle = "diagonal";	// values: "down", "across", "diagonal"

/* ----------------------------------------------------------------
   main function, doMenu, that hides any open pop-up menus, determines 
   which menu DIV to access, and starts its display 
	---------------------------------------------------------------- */

	function DoMenu(eSrc, strDate) 
	{
		if (!(gbLoaded)) {
			return;
		}	
		window.event.cancelBubble = true;
		var sID = eSrc.id.replace("Title","Menu");
		if (eSrc.className == "clsCalendar") {
			sID = sID.slice(0, sID.indexOf("Menu") + 4);
//			window.alert("sID = " + sID);
		}	

		// ----------------------------------------------------------
		// If we have a menu open, close it
		// ----------------------------------------------------------

		if (typeof(eOpenMenu) == "object") 
		{
			if (eOpenMenu.id == sID)
			{
				return false;
			}
			HideMenu();
 		}

		// ----------------------------------------------------------
		// If the cursor is over a menu title
		// ----------------------------------------------------------

		if (eSrc.className == "clsMenuRight" ||
			 eSrc.className == "clsMenuDown" ||
			 eSrc.className == "clsCalendar") {
		// ----------------------------------------------------------
		// Get Menu associated with the Menu Title and display it
		// ----------------------------------------------------------
			var i = sID.indexOf("Menu",0);
			var s = sID.slice(0,i);
			var eTable = document.all[s + "Table"];
			var eParent = document.all[s + "Parent"];
//			var eGrand = document.all[s + "Parent"];

			if (!(typeof(eParent) == "object")) {
				eParent = eTable.parentElement;
//				window.alert("Top = " + eParent.offsetTop + " Width = " + 
//									eParent.offsetWidth + " Visiblity = " + eParent.style.visibility);
//				window.alert("ID = " + eParent.id);
//				eParent.style.visibility = "hidden";
//				eParent.color = "#FF0000";

			}

			if (eSrc.className == "clsMenuDown") { 
				var eRow = document.all[s + "Row"];
			}
			if (eSrc.className == "clsMenuRight") { 
				var eRow = document.all[eSrc.id.replace("Title","Row")];
				eOpenFont = document.all[eSrc.id.replace("Title","Font")];
			}		
			if (eSrc.className == "clsCalendar") {
//				if (eSrc.id.slice(10, 13) == "001") {
// 					if (!(Calendar(strDate))) {
//					if (!(PopCalendar("0320000429371317"))) {
//						return;
//					}
//				}
//				else {	
//					if (!(Calendar(eSrc.href))) {
//					if (!(PopCalendar(strDate))) {
//						return;
//					}	
//				}	
//				window.alert(c.replace("Title","Row"));
				if (!(PopCalendar(strDate))) {
					return;
				}	
				var c = eSrc.id.slice(0, eSrc.id.indexOf("Title", 0) + 8);
				var eRow = document.all[c.replace("Title","Row")];
			}


			sOpenClass = eSrc.className;
			if (sOpenClass != "clsCalendar"){
				eOpenTD = eSrc;
			}
			else {
				c = eSrc.id.slice(0, eSrc.id.indexOf("Title", 0) + 10);
				eOpenTD = document.all[c.replace("Title","TD")];
//				eOpenTD = document.all[eSrc.id.replace("Title","TD")];
			}
			
			
			eOpenMenu = document.all[sID];

			if (typeof(eOpenMenu) == "object") 
			{
				eOpenMenu.style.position = "absolute";
				if (sOpenClass == "clsMenuRight") 
				{
					eOpenFont.color = "#000080";
					eSrc.height -= 3;
					eSrc.parentElement.height = eSrc.height;
					eSrc.style.pixelHeight = eSrc.height;
					eSrc.parentElement.style.pixelHeight = eSrc.height;
// window.alert("Height 7 " + eSrc.parentElement.height);
//					eSrc.style.borderBottomStyle = "solid";
//					eSrc.style.borderBottomColor = "#000000";
//					eSrc.style.borderLeftStyle = "solid";
//					eSrc.style.borderLeftColor = "#FFFFFF";
//					eSrc.style.borderTopStyle = "solid";
//					eSrc.style.borderTopColor = "#FFFFFF";
				}
				iChunk = iChunkStep;

				// ----------------------------------------------------------
				// Set the right and top offsets based on sMenuPos
				// ----------------------------------------------------------

				eOpenMenu.style.clip = "rect(0 0 0 0)";
				eOpenMenu.style.display = "block";
				eOpenMenu.style.visibility = "visible";

				if (eSrc.className == "clsMenuRight")
				{
					eOpenMenu.style.left = eTable.offsetLeft + eSrc.clientWidth;
					eOpenMenu.style.top = eTable.offsetTop + eRow.offsetTop + eParent.offsetTop;
				}
				if (eSrc.className == "clsMenuDown")
				{
					i = 0;
//					if (typeof(eGrand) == "object") { 
//						i = eGrand.offsetTop;
					if (typeof(eParent) == "object") { 
						i = eParent.offsetTop;
					}	
					eOpenMenu.style.left = eSrc.offsetLeft + eParent.offsetLeft;
					eOpenMenu.style.top = eTable.offsetTop + eRow.offsetTop + 
													eRow.clientHeight + i;
				}
				if (eSrc.className == "clsCalendar")
				{
//					window.alert(eOpenTD.offsetLeft + "," + eParent.offsetLeft + "," +
//									 eOpenMenu.offsetWidth + "," + eOpenTD.offsetWidth);
					eOpenMenu.style.left = eOpenTD.offsetLeft + eParent.offsetLeft -
													 eOpenMenu.offsetWidth + eOpenTD.offsetWidth;
					eOpenMenu.style.top = eTable.offsetTop + eRow.offsetTop - eOpenMenu.offsetHeight;
				}

				// ----------------------------------------------------------
				// Zero out the Menu size and start the ShowMenu process
				// ----------------------------------------------------------

//				eOpenMenu.style.clip = "rect(0 0 0 0)";
//				eOpenMenu.style.display = "block";
//				eOpenMenu.style.visibility = "visible";

//				window.alert(eOpenMenu.offsetWidth);
//					window.alert("Well?");

				return window.setTimeout("ShowMenu(" + eOpenMenu.id + ")", iChunkDelay);
			}
		}
	}

	// ----------------------------------------------------------
	// Function to hide sub-menu 
	// ----------------------------------------------------------

	function HideMenu() {
		eOpenMenu.style.visibility = "hidden";
		if (sOpenClass == "clsCalendar") {
			for (intDay = 1; intDay <= 6; intDay++) {
				document.all["mnuCLTR" + intDay].style.display = "none";
				document.all["mnuCLTR" + intDay].style.visibility = "hidden";
			}
		}	
		if (sOpenClass == "clsMenuRight") 
		{
			eOpenFont.color= "#FFFFFF";
//			eOpenTD.style.borderBottomColor = "#6699CC";
//			eOpenTD.style.borderLeftColor = "#6699CC";
//			eOpenTD.style.borderTopColor = "#6699CC";
			var intI = parseInt(eOpenTD.height);
			intI += 3;
			eOpenTD.height = intI;
// window.alert("Height 4 " + eOpenTD.height);
			eOpenTD.style.borderBottomStyle = "none";
			eOpenTD.style.borderLeftStyle = "none";
			eOpenTD.style.borderTopStyle = "none";
		}
		eOpenMenu = "";
	}

	// ----------------------------------------------------------
	// Function which returns the appropriate menu diplay animation
	// ----------------------------------------------------------

	function GetShowStyle() {
//		window.alert("rect(" + iChunk + "% 100% 100% " + iChunk + "%)");		
		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)";
		if ("diagonal" == sMenuStyle){
			if (sOpenClass == "clsCalendar"){
				return "rect(" + (100 - iChunk) + "% 100% 100% " + (100 - iChunk) + "%)";
			}
			else {
				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 (iChunk < 100) {
			window.setTimeout("ShowMenu(" + eMenu.id + ")", iChunkDelay);
		}
		iChunk += iChunkStep;
	}

	// ----------------------------------------------------------
	// Function to check onmouseout for a menu
	// ----------------------------------------------------------

	function CheckMenu() {
		if (!(gbLoaded)) {
			return;
		}	
		if (typeof(eOpenMenu) == "object") {
		   if (window.event.toElement == null || sOpenClass == "clsCalendar") {
				HideMenu();
				return;
			}	
			if (!(window.event.toElement.className == sOpenClass)) {
				if (!eOpenMenu.contains(window.event.toElement)) {
					HideMenu();	
				}	
			} 
		} 
	}

	// ----------------------------------------------------------
	// Function to check onmouseout for a sub-menu
	// ----------------------------------------------------------

	function CheckSubMenu() {
		if (!(gbLoaded)) {
			return;
		}	
		if (typeof(eOpenMenu) == "object") {
		   if (window.event.toElement == null) {
				HideMenu();
				return;
			}	
			if (!(eOpenMenu.contains(window.event.toElement))) {
				if (!(window.event.toElement.className == sOpenClass)) {
					HideMenu();
				}
			}
		}
	}

	function DoDate(eSrc) { 
		if (!(gbLoaded)) {
			return;
		}	
		eSrc.style.color="red";
	}
	
	function CheckDate(eSrc) { 
		if (!(gbLoaded)) {
			return;
		}	
		eSrc.style.color="navy";
	}