Du kollar aldrig i ditt script vad lagret har för aktuell status. Du bara växlar mellan visible/hidden, oavsett vilket lager det är och vad det redan är. Sedan kan IE returnera true (beroende på version) både på document.all och document.getElementById eftersom den stödjer båda DOM'erna. Detta anhjälps enkelt med "else if" istället för if. Till sist använder Netscape 4 show/hide istället för visible/hidden. Lade även till en "return false" i onClick eftersom du inte behöver använda länken i <a> :)
<script language="Javascript">
function hideShow(id){
if(document.all){document.all("lager"+id+"").style.visibility=(document.all("lager"+id+"").style.visibility=="visible")?"hidden":"visible";}
else if(document.getElementById){document.getElementById("lager"+id+"").style.visibility=(document.getElementById("lager"+id+"").style.visibility=="visible")?"hidden":"visible";}
else if(document.layers){document.layers["lager"+id+""].visibility=(document.layers["lager"+id+""].visibility=="show")?"hide":"show";}
}
</script>
<div id="lager1" style="visibility:hidden;">Testar1</div>
<div id="lager2" style="visibility:hidden;">Testar2</div>
<div id="lager3" style="visibility:hidden;">Testar3</div>
<a href="#" onClick="hideShow('1');return false;">Test1</a>
<a href="#" onClick="hideShow('2');return false;">Test2</a>
<a href="#" onClick="hideShow('3');return false;">Test3</a>
