Sono riuscito a ricereare lo stesso effetto senza usare il document.all, ora aspetto di fare i test su safari.
Comunque quel div è il nome del div che contiene il menu da visualizzare.

Se a qualcuno dovesse servire ho fatto così:

function mostra(menu){
var c = document.getElementsByTagName("body")[0].getElementsByTagName("div");
var numerocampi=c.length, numeromenu=menu.substr(menu.indexOf("_")-1,1);

for(i=0;i<=numerocampi;i++) {
if(typeof c[i]!='undefined') {
cid=c[i].id.toString();
if(cid!="" && typeof document.getElementById(cid)!='undefined' && cid.indexOf("menu")!=-1) {
numero=cid.substr(cid.indexOf("_")-1,1);
if(numero+1>=numeromenu && cid!=menu) document.getElementById(cid).style.display="none";
}
}
}
if(document.getElementById(menu)!==null) {
if(document.getElementById(menu).style.display=="b lock") document.getElementById(menu).style.display="none" ;
else document.getElementById(menu).style.display="block ";
}
}