.
Sin esto mi funcion no funcionaria ,no la inclui en el copy/paste, fue un error:
newwindow=new Array(),nwin;
Siguiendo el hilo.
Claro ,lo que quieres es poder llamar a cualquier ventana desde cualquier ventana ,y no solamente desde la ventana padre, tanto llamarlas si ya estan abiertas ,como abrirlas si no lo estan.
Creo que se puede hacer si la ventana padre es la primera en abrirse, y si incluyes en cada ventana hija una orden dirigida a la funcion que esta en la ventana padre, de esta forma:
parent.abre(nombre)