var showdelay	= 70;	// delay to ignore transients (mouseover-mouseout)
var hidedelay	= 500;	// delay until hide after mouseout
var timeout	= 5000;		// timeout if no activity after initial top link mouseover
var mx		= -1;		// set for each menu
var my		= -1;		// set once by first menu called
var menuholdID			// timer until menu re-hidden
var currmenu = "x";		// currently displayed menu; "x" means none are visible
var mydiv

var whoami = navigator.userAgent + '';
var obj;

// NS4 = ( document.layers) ? true : false;
// IE4 = ( document.all && !document.getElementById) ? true : false;
// IE5 = ( document.all &&  document.getElementById) ? true : false;
// NS6 = (!document.all &&  document.getElementById) ? true : false;


function hold() {
	clearTimeout(menuholdID);
}

function drop() {
	clearTimeout(menuholdID);
	menuholdID = setTimeout("hidemenus()", hidedelay);
}

function hidemenus() {
	clearTimeout(menuholdID);

	if (currmenu != "x") {
		if (!document.all && document.getElementById) {		// NS6
			myobj = "div" + currmenu;
			obj = document.getElementById(myobj);
			obj.style.visibility = "hidden";
		} else if (whoami.indexOf('MSIE')==-1) {
			obj = eval("document.div"+currmenu);			// current drop menu
			obj.visibility = 'hidden';
		} else {
			obj = eval("document.all.div"+currmenu+".style");	// current drop menu
			obj.visibility = 'hidden';
		}
	currmenu = "x";	// mark currmenu as "all hidden"
	}
}

function showmenu(event,mythis,x,y) {
	clearTimeout(menuholdID);
	mydiv = mythis;
	if(isNaN(mx))
	{
		mx = -1;
		my = -1;
	}

	if (mydiv != currmenu) {
		if (!document.all && document.getElementById) {		// NS6
			mx = event.pageX - 20;
			mx = ((mx < 10) ? 10 : mx);
			if (my == -1) {		// once  "my"  is set we use it for both
				my = ((event.pageY < 20) ? 20 : event.pageY);
			}

			if (!isNaN(x)) {
				mx = x;
			}
			
			if (!isNaN(y)) {
				my = y;
			}
			
			myobj = "div" + mydiv;
			obj = document.getElementById(myobj);
			obj.style.left = mx;
			obj.style.top  = my;
			menuholdID = setTimeout("nowshow()", showdelay);
		} else if (1==2 && whoami.indexOf('MSIE')==-1) {
			mx = event.pageX - 20;
			mx = ((mx < 10) ? 10 : mx);
			if (my == -1) {		// once  "my"  is set we use it for both
				my = ((event.pageY < 20) ? 20 : event.pageY);
			}

			if (!isNaN(x)) {
				mx = x;
			}
			
			if (!isNaN(y)) {
				my = y;
			}
			obj = eval("document.div"+mydiv);
			obj.pageX = mx;				// ** edit makeMenus AND css **
			
			obj.pageY = my + 10 ;
			menuholdID = setTimeout("nowshow()", showdelay);

		} else {
			if (isNaN(x)) {
				mx = window.event.clientX - 20;
				mx = ((mx < 10) ? 10 : mx);
			} else {
				mx = x;
			}
			
			if (isNaN(y)) {
				if (my == -1) {		// once  "my"  is set we use it for both
					my = ((window.event.clientY < 20) ? 20 : window.event.clientY);
				}
			} else { my = y; }
			
		   obj = eval("document.all.div"+mydiv+".style");
		   obj.pixelLeft = mx;
			
			obj.pixelTop  = my
		   menuholdID = setTimeout("nowshow()", showdelay);

		} // NS or IE

	} // mydiv != currmenu
} // showmenu


function nowshow() {
	clearTimeout(menuholdID);

	if (!document.all && document.getElementById) {			// NS6
		obj.style.visibility = 'visible';
	} else {
		obj.visibility = 'visible';
	}
	if (currmenu != "x") {
		if (!document.all && document.getElementById) {		// NS6
			myobj = "div" + currmenu
			obj = document.getElementById(myobj);
			obj.style.visibility = 'hidden';
		} else if (whoami.indexOf('MSIE')==-1) {
			obj.visibility = 'visible';
			obj = eval("document.div"+currmenu);
			obj.visibility = 'hidden';
		} else {
			obj.visibility = 'visible';
			obj = eval("document.all.div"+currmenu+".style");
			obj.visibility = 'hidden';
		}
	}

	currmenu = mydiv;
	menuholdID = setTimeout("hidemenus()", timeout);  // default timeout on drop menus if there's no movement/change
}
// ***************************************************
//var isW3C = true;
//if (whoami.indexOf('MSIE')==-1) isW3C = false;
var isW3C = (document.getElementById) ? true : false 

function getRealLeftDomObject(domObject)
 {
 var x = 0;

 if(isW3C)
  {
  			
  x = domObject.offsetLeft;
  ele  =  domObject.offsetParent;

  while (ele!=null) 
   {
   x += ele.offsetLeft;
   ele = ele.offsetParent;
   }
  }
 else
  {
  x += domObject.x;
  }

	//159 is the width of the side menu
 return (x + 155);
 }
 
 function getRealTopDomObject(domObject)
 {

 var x = 0;

 if(isW3C)
  {
  x = domObject.offsetTop;
  ele  =  domObject.offsetParent;

  while (ele!=null) 
   {
   x += ele.offsetTop;
   ele = ele.offsetParent;
   }
  }
 else
  {
  /* netscape4.x */
  
  x += domObject.y;
  }
 return x;
 }


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		alert(1);
		while (obj.offsetParent)
		{
			alert(obj.id);
			
			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;
}


