var gMenuOffsetX = 3;
var gMenuOffsetY = 3;

function containsNode(containerNode, testNode)
{
	 if (testNode) { // test if testNode is object
		 while (testNode.parentNode)
		 {   // alert('while');
			testNode=testNode.parentNode;
			if (testNode == containerNode)
				return true;
		 }  // end of while
	 } // End of if
	return false;
}
// *******************************************************************************************
function doMenu(event, id, pBar) {
var theNode;
var menuX, menuY;
var wEvent=event;
var testPix; var wLeft; var wTop; var wTopBar;
var wTest;
var wId=id;
var wMsg = 'doMenu ' + wEvent + 'Id = ' + wId;
// window.status='doMenu  ' + wEvent + 'ID = ' + wId;
// alert(wMsg);
// get the node that represents the menu
theNode =  document.getElementById(id);
wParentNode =  document.getElementById(pBar);

// in IE, position the menu where user clicked, have to take into account the scroll amount
// of the documents's body because that;s how IE calculates mouse offsets.

// On Netscape, need to include the amount tha win is scrolled
// testPix = obj.getBoundingClientRect().left + Bdy.scrollLeft;  menu.style.pixelLeft
// window.event.clientX amd lclientY is pixels based on mouse from left or top
// The 1st select (if) is the IE

if (typeof(window.event) != "undefined") {
	//  wLeft = window.event.clientX;
	// wLeft = theNode.offsetLeft;
	  wLeft = wParentNode.getBoundingClientRect().left;
	wTop = wParentNode.getBoundingClientRect().top;
	 wTest = 'clientX ' + window.event.clientX + 'scrollLeft = ' + document.documentElement.scrollLeft;
	// wTest = 'the Node = ' + theNode + ' wParentNode = ' + wParentNode;
	//  alert(wLeft);
	// alert(wTest);
	// alert(wTop);
	menuX = wLeft + document.documentElement.scrollLeft;
	menuY = 14 + wTop + document.documentElement.scrollTop;
}
else {
	wTop = wParentNode.offsetTop;
	wLeft = wParentNode.offsetLeft;
	wTest = 'offsetLeft ' + wLeft + 'scrollx = ' + window.scrollX;
	
	// alert(wTest);
	oMenuBar =  document.getElementById('menuBar');
	wTopBar = oMenuBar.offsetTop;
	// alert(wTopBar);
	// menuX = event.clientX + window.scrollX; book example
	// menuY = event.clientY + window.scrollY;
	// menuX = window.scrollX ;
	menuX = wLeft + 76; 
	menuY = wTopBar + wTop + 18;
}


// start the menu underneath the mouse a little bit.
menuX -= gMenuOffsetX;
menuY -= gMenuOffsetY;

// position the menu by setting the style's left and top
// css selectors. Append the "px" designation.
theNode.style.top = menuY + "px";
theNode.style.left = menuX + "px";


// Make the menu visible!
// menu1 =  document.getElementById(menu1);
if (typeof(window.event) != "undefined") {
	 hideMenus();
}
else {
	hideMenus();
}

theNode.style.visibility = "visible";

// set up an onMouseOut handler so the menu will go away
// when the mouse leaves the DIV.
theNode.onmouseout = doMouseOut;

}
// ******************************************************************************************
function doMouseOut(evt) {
var curNode;
var newNode;

// on IE, retrieve the event information from the "this", reference to the element and
// the global window.event property. On Netscape, sue the evt argument provided by browser
	if (typeof(window.event) != "undefined") {  // This is IE
		curNode = this;
		newNode = window.event.toElement;
		// alert('doMouseOut1');
		}
		else   //  This is Mozilla FireFox
		{
		curNode = evt.currentTarget;
		newNode = evt.relatedTarget;
		// alert('doMouseOut2');
	}

	// if mouseout occured in one of child anchor tags, then we don't want menu to go away
	// We want menu to disapperar when onMouseOut is on the DIV element.
	// Here, we check to see if new element is diff from current event target and make sure
	// that the new element is not contained by the DIV tag.
	// if (curNode != newNode && !containsNode(curNode, newNode))

	if (curNode != newNode && !containsNode(curNode, newNode))

	curNode.style.visibility = "hidden";

}
// ******************************************************************************************
function doMenuBar(event) {
var curNode;
var newNode;  var wTest; var wLeft; var wTop; var wTopBar; var wCursorLeft; var wCursorTop;
//  alert('doMenuBar');

	if (typeof(window.event) != "undefined") {
		curNode = this;
		newNode = window.event.toElement;
		wLeft = menuBar.style.pixelLeft;
			wTop = menuBar.getBoundingClientRect().top;
			wLeft = menuBar.getBoundingClientRect().left;
			wCursorLeft = window.event.clientX;
			wCursorTop = window.event.clientY;
			wTest = 'menuBarTop ' + wTop + 'wCursorTop = ' + wCursorTop;
			//wTest = 'menuBarLeft ' + wLeft + 'wCursorLeft = ' + wCursorLeft;
			// alert(wLeft);
			// alert(wTest);
			// alert(wTop);
			 if (wTop > wCursorTop)
				hideMenus();
			// if (wLeft > wCursorLeft)
			//	hideMenus();
			  // alert(wTest);
      //  if (wMenu3 != 'Bar' && wMenu4 !='menu' && wCursorLeft < 140)
      //				hideMenus();
		}
		else
		{ 
		oMenuBar =  document.getElementById('menuBar');
	        wTopBar = oMenuBar.offsetTop;  
	       wCursorTop = event.clientY;
		          // wTest = 'menuBarTop ' + wCursorTop + 'wTopBar = ' + wTopBar;
		          // alert(wTest);
		  if (wTopBar > wCursorTop)
		 		hideMenus();
	} // end of else
} // end of function

function hideMenus() {
	// alert('hideMenus');
	var emsForm = document.MenuForm;
	    var wID=""; var elementNext=""; var wName = ""; var wAlert=""; var wValue="";
     if ( document.getElementById('menu1') ) {
          oMenu1 =  document.getElementById('menu1'); oMenu1.style.visibility = "hidden";
     }
     if ( document.getElementById('menu2') ) {	
	oMenu2 =  document.getElementById('menu2'); oMenu2.style.visibility = "hidden";
     }
     if ( document.getElementById('menu3') ) {
	oMenu3 =  document.getElementById('menu3');oMenu3.style.visibility = "hidden"; 
     }
     if ( document.getElementById('menu4') ) {
	oMenu4 =  document.getElementById('menu4'); oMenu4.style.visibility = "hidden";
     }
     if ( document.getElementById('menu5') ) {
	oMenu5 =  document.getElementById('menu5'); oMenu5.style.visibility = "hidden"; 
     }	 
	
     if ( document.getElementById('menu6') ) {
	          oMenu6 =  document.getElementById('menu6');
	          oMenu6.style.visibility = "hidden";
     }
	if ( document.getElementById('menu7') ) {
		          oMenu7 =  document.getElementById('menu7');
		          oMenu7.style.visibility = "hidden";
     }
     if ( document.getElementById('menu8') ) {
     	          oMenu8 =  document.getElementById('menu8');
     	          oMenu8.style.visibility = "hidden";
     }
     if ( document.getElementById('menu9') ) {
          	          oMenu9 =  document.getElementById('menu9');
          	          oMenu9.style.visibility = "hidden";
     }
     if ( document.getElementById('menu10') ) {
               	          oMenu10 =  document.getElementById('menu10');
               	          oMenu10.style.visibility = "hidden";
     }
}  // Endof Function
// **************************************************************************************
function containsXXXNode(testNode,parentNode) {
	while (testNode.parentNode)
	{
		testNode = testNode.parentNode;
		if (testNode == containerNode)
			return true;
	}
	return false;
}
