Detto in poche parole, IE usa un metodo suo (non standard) per accedere agli elementi del document, questo metodo è "document.all". Le vecchie versioni di Netscape usavano un altro metodo non standard, "document.layers".
Se tu scrivi
if (!document.layers&&!document.all)
return
è come se dicessi, "Se questo browser non supporta nè document.all nè document.layers" esci, ed ecco perchè con questa condizione non ti funzionava su Firefox, perché Firefox usa solo il metodo standard e di fatto ormai crossbrowser, che è document.getElementById (non è esattamente al 100% così, ma ai fini di questa discussione è esatto).
Come funziona questo metodo? Per questo ti invito a cercare sul web, troverai un sacco di documentazione. Non prenderla come poca disponibilità, ma questo forum è di supporto ai prodotti Mozilla non alla scrittura html/javascript.
In breve però sappi che se , per esempio, dai l'attributo id="prova" ad un elemento, lo puoi poi individuare dal javascript con document.getElementById("prova").
Nel caso del tuo script, bisognerebbe vedere tutto il codice della pagina per adattarlo ... ma con queste indicazioni sono sicuro che uno "smanettatore" ci riesce
Ciao, Paolo