beh il post e' abb lunghetto e sinceramente nn ho letto il codice cmq in linea di max(codice a parte)
QUando mando un messaggio lo salvi su db OK
Lato client devi fare un js che con window.setTimeout( funzione , intervallo_in_millisecondi) invia una ajax request ad uno script php che controlla i messagi per il richiedente.
A sto punto se ci sono nuovi messaggi li invii e, lato client nella funzione di callback dell'ajax, ti gestisci il tutto, per cui se ci sono messaggi si apre il popup oppure se e' gia' aperto ne modifichi il contenuto.
Per sta roba ti sconsiglio il popup che e' macchinoso da gestire usa piuttosto un pannello interno alla pagina e refreshalo con lajax