Io invece credo che il problema sia proprio che devi dare il nome delle variabili diverse...

In un js la variabile li, la chiami ugualmente, nell'altro invece la chiami lo.

Perchè quando il browser carica i js, non capisce a quale variabile deve fare riferimento..

oppure puoi fare in una diversa maniera... provo:


/* SCRIPT */
function closeSub(menu) {
for (var i=0; i<menu.childNodes.length; i++)
if (menu.childNodes[i].nodeName.toLowerCase()=="li") {
li = menu.childNodes[i];
li.onmouseover = li.onactivate = li.onfocus = function() { if (this.subMenu) this.subMenu.className = this.subMenu.className.replace(/subMenu-off/g,"subMenu-on") };
li.onmouseout = li.ondeactivate = li.onblur = function() { if (this.subMenu) closeSub(this.subMenu) };
for (j=0; j<li.childNodes.length; j++)
if (li.childNodes[j].nodeName.toLowerCase()=="ul" || li.childNodes[j].nodeName.toLowerCase()=="ol") closeSub(li.subMenu = li.childNodes[j]);
}
menu.className = menu.className.replace(/\s?subMenu-on/g,"")+" subMenu-off";
}
/* ON LOAD */
window.onload = function(e) {
if(tags_ = document.getElementsByTagName('ul'))
for(i=0; i<tags_.length; i++) {
if (tags_[i].className=="menuNavigazione") closeSub(tags_[i]);
else (tags_[i].className=="menuNavigazioned") closeSub(tags_[i]);

}
if(tags_ = document.getElementsByTagName('ol'))
for(i=0; i<tags_.length; i++) {
if (tags_[i].className=="menuNavigazione") closeSub(tags_[i]);
else (tags_[i].className=="menuNavigazioned") closeSub(tags_[i]);

}
}