Debspain:
Ya que estas usando style para acceder a las propiedades de tus capas, supongo que estás probando en IE. PUes internet explorer, no te devuelve el valor numérico del ancho del objeto con "capas[i].style.width", sino una cadena con la forma "50px" por ejemplo.
Entonces, tu problema se soluciona usando la función
parseInt:
Código:
var capas=document.getElementsByTagName("div");
var num_capas = capas.length
for (i=0; i<num_capas; i++){
capas[i].style.left= (parent.document.all.mapa.width -
parseInt(capas[i].style.width))/2;
}
Espero que te sirva.
Saludos.