No entiendo por qué te has complicado tanto con el código:
En tu función CambiarImagen tienes 3 argumentos: capa,nombreImagen y objetoImagen.
-capa denomina la capa (en realidad no sé qué efecto tiene ésto, salvo ensuciar el código HTML y javascript. Deberías ponerle un ID al tag IMG que va cambiando su SRC).
-nombreImagen da el atributo NAME de la imagen (que no sería necesario con todo lo anterior implementado).
-objetoImagen se supone que es el nombre de la variable donde se ha cargado la imagen (y tiene en su SRC la ruta de la imagen a colocar).
No sé yo.. pero me parece muy complicado. Ademas todas esas comprobaciones de document.layers y tal.. no creo que sean necesarias.
¿Qué te parece ésto?
Código PHP:
<img id="imgQueCambia" src="imagenes/Marquesina.jpg"> <br/>
<a href="#" onclick="return CambiarImagen('imagen1');" class="Estilo1"><img src="prev/Silverado001.jpg"></a>
<a href="#" onclick="return CambiarImagen('imagen2');" class="Estilo1"><img src="prev/Silverado002.jpg"></a>
<a href="#" onclick="return CambiarImagen('imagen3');" class="Estilo1"><img src="prev/Silverado003.jpg"></a>
<a href="#" onclick="return CambiarImagen('imagen4');" class="Estilo1"><img src="prev/Silverado004.jpg"></a>
<script language="JavaScript">
function PreCarga (objetoImagen, rutaImagen) {
window[objetoImagen] = new Image();
window[objetoImagen].src = rutaImagen;
}
function CambiarImagen (objetoImagen) {
var imgQueCambia = document.getElementById("imgQueCambia");
imgQueCambia.src = window[objetoImagen].src;
alert(imgQueCambia.src);
return false;
}
PreCarga ('imagen1','imagenes/Silvarado001.jpg');
PreCarga ('imagen2','imagenes/Silvarado002.jpg');
PreCarga ('imagen3','imagenes/Silvarado003.jpg');
PreCarga ('imagen4','imagenes/Silvarado004.jpg');
</script>
Por cierto acostumbrate a poner las funciones js en un evento, en el HREF no es estándar, el protocolo javascript
: no está demasiado extendido...
¿Lo ves así mas sencillo?
Si no entiendes algo, por favor, pregúntalo.
Saludos.