Dal menu file, non riesci a visualizzare il codice? Non ci sono frame nella pag.!!

Comunque provo a modificare la struttura della funzione (non i dettagli)
codice:
function zoom(img,w,h) {
  var image1="immagini\/"+img;

  var dim = "height="+h+",width="+w;
  var src="[img]+image1+[/img]";

  var x3421 = window.open('','',dim);
  x3421.document.write('<html>\n\n<head>');
  x3421.document.write('<title>:: Prova ::</title>');
  x3421.document.write('<style>body{margin-left:0; margin-top:0;}</style>');
  x3421.document.write('</head>\n<body onload="self.resizeTo(document.images[0].width, document.images[0].height+30);">');
  x3421.document.write(src)
  x3421.document.write('</body>'

}
Come vedi ho inserito il resize all'interno della popup (all'evento onload), per semplificare il codice; ho quindi eliminato il loop di attesa. Ho anche corretto il codice dalla popup, che conteneva tag innestati in modo errato.
Ho usato il vettore images[] per accedere all'immagine, perche` accedere tramite il nome mi richiedeva una apice in piu` (e questo complicava molto il codice).

Nota che l'accesso alle immagini in JS si fa con:

document.images[0]
document.images['nomeimm']
(la tua era sintassi proprietaria)