strano, a me funziona sia con firefox che con IE che con opera....

forse sbagli nel chiamare la funzione...
prova ad usare questo file e dimmi se ti funziona
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<
head>
 <
title></title>
 <
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
 <
script type="text/javascript">
  function 
chiudi(cosa){
      if (
cosa instanceof RegExp){
         var 
collezioneDiv=document.getElementsByTagName('div');
         for(var 
i=0,unDiv;unDiv=collezioneDiv[i];i++){
            if(
unDiv.id.match(cosa)) unDiv.style.display='none';
         }
         return;
      }
      
document.getElementById(cosa).style.display='none';
   }
 
</script>
</head>
<body>

<div id="co">ciao</div>

<div id="ciccio1">ciccio1</div>
<div id="ciccio2">ciccio2</div>
<div id="ciccio3">ciccio3</div>
<div id="ciccio10">ciccio10</div>
<div id="ciccio5">ciccio5</div>




<!-- ops,queste due righe non le considerare, stavo facendo esperimenti..
<span onclick="chiudi()">chiudi tutti</span>

<span onclick="chiudi('ciccio1')">chiudi</span>
 -->
<span onclick="chiudi('ciccio1')">chiudi solo ciccio1, passando alla funzione l'id del tuo layer-</span>


<span onclick="chiudi(/ciccio[\\d]+/)"> chiudi tutti i div il cui id contiene ciccio con affianco un numero qualunque-</span>


<span onclick="chiudi(/ciccio(1|2|10)/)"> chiudi soltanto i div con id "ciccio1", "ciccio2" e "ciccio10"-</span>

</body>
</html>