infatti, dicevo che potrebbe esservi anche altro

quando fai questo controllo
codice:
			while(src = src.parentNode) {
				if(src==menu){trovato=true;}
			}
l' src valutato nell' if e' gia' il parentNode di src,
ma c'e' anche il caso in cui src sia gia' menu, quindi appare come se l' onmouseout sia diretto fuori dal div perche' "menu" e' gia' il target dell' onmouseout e ovviamente non puo' trovarsi trai padri

ti butto giu quello che intendo per capirne la logica, poi decidi tu come implementarlo meglio
codice:
		function obj(e){
			if(!e)e=window.event;
			var src=e.relatedTarget?e.relatedTarget:e.toElement;
			var trovato=(src==menu)?true:false;
			while(src = src.parentNode) {
				if(src==menu){trovato=true;}
			}
			if(!trovato)	menu.style.display = 'none';
				
		}
ciao