var activeObj;
<!-- change the value of 'nummenus' to the number of menues you have -->
var nummenus=4;

function show(layerID) {
	hide();
	activeObj=NN4?document.layers[layerID]:NN6?document.getElementById(layerID).style:document.all[layerID].style;
	activeObj.visibility='visible';
}

function trigger(evt) { 
	if(!activeObj) return; 
	var X=NN4||NN6?evt.pageX:event.x;
	var Y=NN4||NN6?evt.pageY:event.y;
	if(NN4) { 
		if((X<activeObj.left||(X>activeObj.left+activeObj.clip.width))
		|| (Y<(activeObj.top - 20)||(Y>activeObj.top+activeObj.clip.height-5))){
			hide();
			activeObj=null;
			return;
		}
	} else {
		if((X<parseInt(activeObj.left)-document.body.scrollLeft||(X>parseInt(activeObj.left)+parseInt(activeObj.width)-document.body.scrollLeft))
		|| ((Y<parseInt(activeObj.top)-document.body.scrollTop -20)||(Y>parseInt(activeObj.top)+parseInt(activeObj.height)-document.body.scrollTop + 35))) {
			hide();
			activeObj=null; 
			return;
		}
	}
}

function hide() {
	for(i=1;i<=nummenus;i++) { 
		if(NN4) eval("document.layers.menu"+i+".visibility='hide'");
		else if(NN6) eval("document.getElementById('menu"+i+"').style.visibility='hidden'");
		else eval("document.all.menu"+i+".style.visibility='hidden'");
	}
}