  IE4 = (document.all) ? 1 : 0;
  NS4 = (document.layers) ? 1 : 0;
  var NS6 = 0;
  if(navigator.appName.indexOf("Netscape") != -1){if (navigator.userAgent.indexOf("Gecko") != -1) {NS6=1}}
  var Active = new Object;

function makeElementVisible(el) {
  if (NS4) {
    el.visibility = "show";
  } else {
    el.style.visibility = "visible";
  }
}

function showMenuItem(id) {
 hideAllItems();
 Active[id]=1;
 var ix;
 var yshift = 24;
 if (NS4) {
   ix = document.layers[id];
 } else {
  if (IE4) {
    ix = document.all[id];
  }
  if (NS6) {
    ix=document.getElementById(id);
    var anc = document.getElementById('a_'+id);
    yshift = anc.clientHeight;
    if(yshift==0) { yshift = anc.parentNode.clientHeight; }
  }
 }
 var coord = getAnchorPosition("a_"+id);
 if ( ix ) {
   ix.style.left=coord.x + 'px';
   ix.style.top=(coord.y+yshift) + 'px';
   makeElementVisible(ix);
 }
 return false;
}

function hideAllItems() {
  for (var id in Active) {
    hideMenuItem(id);
  }
}

function hideMenuItem(id) {
 if (Active[id]==1) {return false}
 if (NS4) {
  var ix=document.layers[id];
  if (ix && ix.visibility != "hide") {
   ix.visibility = "hide";
  }
 }
 else if (IE4) {
  var ix=document.all[id];
  if (ix && ix.style.visibility != "hidden") {
   ix.style.visibility = "hidden";
  }
 }
 else if (NS6) {
  var ix=document.getElementById(id);
  if (ix && ix.style.visibility != "hidden") {
   ix.style.visibility = "hidden";
  }
 }
}

function keep (id) {
 Active[id]=1;
 return false;
}

function off (id) {
 Active[id]=0;
 setTimeout('hideMenuItem("'+id+'")', 1000);
 return false;
}

function getAnchorPosition(anchorname) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(o);
		y=AnchorPosition_getPageOffsetTop(o);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
