Yerf!
popup.innerHTML += popupContent;
Kann einer das erklären?
Lass dir mal den Inhalt von innerHTML anzeigen, ob dort ein onclick-Attribut auftaucht (ich schätze nein). Durch die Zuweisung auf innerHTML werden wohl *alle* Childs neu gebaut, womit deine frühere Zuweisung des Event-Handlers verloren geht.
Gruß,
Harlequin