			var timer;
			/*
			if (document.layers) { // Netscape
			    document.captureEvents(Event.MOUSEMOVE);
			    document.onmousemove = captureMousePosition;
			} else if (document.all) { // Internet Explorer
			    document.onmousemove = captureMousePosition;
			} else if (document.getElementById) { // Netcsape 6
			    document.onmousemove = captureMousePosition;
			}*/
						
			// Global variables
			xMousePos = 0; // Horizontal position of the mouse on the screen
			yMousePos = 0; // Vertical position of the mouse on the screen
			xMousePosMax = 0; // Width of the page
			yMousePosMax = 0; // Height of the page
			
			
			function togglesubmenu(menuid, count)
			{
				if (menuid == 0)
				{
					timer = window.setTimeout("delayhide('" + count + "')", 250);	
				}
				else
				{
					clearTimeout(timer);
					for (i=1; i<count; i++)
					{				
						var div=document.getElementById('submenu' + i);
						
						if (i == menuid)
						{
							div.style.visibility = "visible";		
						}
						else
						{
							div.style.visibility = "hidden";
						}
					}
				}
			}
			function delayhide(count)
			{
				for (i=1; i<count; i++)
				{				
					var div=document.getElementById('submenu' + i);

					div.style.visibility = "hidden";
				}
				clearTimeout(timer);

			}
			function findPosX(obj)
			{
				var curleft = 0;
				if (obj.offsetParent)
				{
					while (obj.offsetParent)
					{
						curleft += obj.offsetLeft
						obj = obj.offsetParent;
					}
				}
				else if (obj.x)
					curleft += obj.x;
				return curleft;
			}		
			
			function findPosY(obj)
			{
				var curtop = 0;
				if (obj.offsetParent)
				{
					while (obj.offsetParent)
					{
						curtop += obj.offsetTop
						obj = obj.offsetParent;
					}
				}
				else if (obj.y)
					curtop += obj.y;
				return curtop;
			}	
			

			
			function captureMousePosition(e) {
			    if (document.layers) {
			        // When the page scrolls in Netscape, the event's mouse position
			        // reflects the absolute position on the screen. innerHight/Width
			        // is the position from the top/left of the screen that the user is
			        // looking at. pageX/YOffset is the amount that the user has 
			        // scrolled into the page. So the values will be in relation to
			        // each other as the total offsets into the page, no matter if
			        // the user has scrolled or not.
			        xMousePos = e.pageX;
			        yMousePos = e.pageY;
			        xMousePosMax = window.innerWidth+window.pageXOffset;
			        yMousePosMax = window.innerHeight+window.pageYOffset;
			    } else if (document.all) {
			        // When the page scrolls in IE, the event's mouse position 
			        // reflects the position from the top/left of the screen the 
			        // user is looking at. scrollLeft/Top is the amount the user
			        // has scrolled into the page. clientWidth/Height is the height/
			        // width of the current page the user is looking at. So, to be
			        // consistent with Netscape (above), add the scroll offsets to
			        // both so we end up with an absolute value on the page, no 
			        // matter if the user has scrolled or not.
			        xMousePos = window.event.x+document.body.scrollLeft;
			        yMousePos = window.event.y+document.body.scrollTop;
			        xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
			        yMousePosMax = document.body.clientHeight+document.body.scrollTop;
			    } else if (document.getElementById) {
			        // Netscape 6 behaves the same as Netscape 4 in this regard 
			        xMousePos = e.pageX;
			        yMousePos = e.pageY;
			        xMousePosMax = window.innerWidth+window.pageXOffset;
			        yMousePosMax = window.innerHeight+window.pageYOffset;
			    }
			}			
			
			function verifymousepos(menuitemname, count)
			{
				menuitem = document.getElementById(menuitemname);
				
				var menushow = false;
				//find out if there are any menu displaying
				for ( i=1; i<count; i++)
				{
					divitem=document.getElementById("submenu" + i);
					if (divitem.style.visibility == "visible")
					{
						menushow = true;
						break;
					}					
				}
				
				//find out the menu item dimension
				miw=menuitem.scrollWidth;
				mih=30;
				
				//here we get the menu item boundry
				milx=findPosX(menuitem);
				mily=findPosY(menuitem);
				
				mirx=milx + miw - 10;
				miry=mily + mih;	
				
				//find out the layer dimention
				diw=divitem.offsetWidth;
				dih=divitem.offsetHeight;
				
				//here we get the menu item boundry
				dilx=findPosX(divitem);
				dily=findPosY(divitem);
				

					dirx=dilx + diw - 10;
					diry=dily + dih - 10;

				
				/*alert("dirx: " + dirx + "\r\n" +
					"diry: " + diry + "\r\n" +
					"mousex: " + xMousePos  + "\r\n" +
					"mousey: " + yMousePos);*/
				
//debugger;
				//now check if the mouse position is within the range of menu item or div item. If neither, turn off the menu
				var inrange = false;
				
				//capture mouse position
				
				
				//menu item range check
				if (((xMousePos > (milx + 10))&&(xMousePos <mirx))&&((yMousePos > (mily + 10)) && (yMousePos <miry -10)))
					inrange = true;
					
				//layer range check, when there are menus showing

				if (((xMousePos > (dilx + 18))&&(xMousePos <dirx))&&((yMousePos > (dily)) && (yMousePos <diry)))
					inrange = true;	

					
				if (inrange == false)
				{
					done = true;
					togglesubmenu(0, count );
				}			
			}			

