Non sto a modificare il tuo codice che è parecchio incasinato (e direi anche obsoleto, l'uso di eval per convertire in numero non si può proprio vedere), quindi ti faccio un esempio.
Mettiamo che la variabile imgArray contega tutte le immagini:
for(i=0;i<imgArray.length;i++){
imgArray[i].onload = centraImmagine.bind(this, i);
}
Cosi facendo la funzione centraImmagine verrà richiamata solo quando l'immagine è stata completamente caricata. Nella funzione centraImmagine dovrai centrare quella singola immagine passata in input, quindi sarà qualcosa del genere:
function centraImmagini(index){
var posimg;
var posdiv;
posimg=document.getElementById("img"+index);
posimg.style.top="0px";
if (posimg.className=="imgoriz"){
posdiv=document.getElementById("divimg"+index);
posimg.style.top=(posdiv.offsetHeight-posimg.offsetHeight)/2+'px';
}
}

Rispondi quotando