Toma, a ver que te parece esta solución
Código:
<script type="text/javascript">
<!--
/**
* Variable que guardará el id de la capa activa
*/
var activeLayer = "undefined";
/**
* Variable que guardará el navegador que es
*/
var browserType;
if(document.layers){
browserType = "nn4"
}
if(document.all){
browserType = "ie"
}
if(window.navigator.userAgent.toLowerCase().match("gecko")){
browserType= "gecko"
}
/**
* Función que muestra la capa que se le pasa en el parámetro
*
* @param what {string} mandatory Parámetro con el ID de la capa a tratar
*/
function show(what){
var poppedLayer;
if (browserType == "gecko" ){
poppedLayer = document.getElementById(what);
} else if (browserType == "ie"){
poppedLayer = document.all[what];
}else{
poppedLayer = document.layers[what];
}
poppedLayer.style.display = "inline";
hide(activeLayer);
activeLayer = what;
}
/**
* Función que oculta la capa que se le pasa en el parámetro
*
* @param what {string} mandatory Parámetro con el ID de la capa a tratar
*/
function hide(what) {
var poppedLayer;
if(what != "undefined"){
if (browserType == "gecko" ){
poppedLayer = document.getElementById(what);
} else if (browserType == "ie"){
poppedLayer = document.all[what];
}else{
poppedLayer = document.layers[what];
}
poppedLayer.style.display = "none";
}
}
//-->
</script>
Simplemente hacemos que "recuerde" que tiene una capa activa y que ha de ocultarla al mostrar otra.
Un saludo