Also war noch ein mini Fehler drin, zumindest kommt jetzt kein Fehler mehr.
Wegen den Online, es ist richtig, dass wenn man eine Weile keine Seite mehr aufruft, man als offline angezeigt wird, und das ist ja auch vollkommen richtig so.
Um das zu umgehen, könntest du in einem versteckten iframe eine Seite (von deiner Seite) öffnen, die aller 10 Minuten neu geladen wird, so bleibt man online, wenn die Seite noch im Browser geöffnet ist.
Lege dazu eine Datei contents/refresh.php mit Inhalt
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Refresh</title>
<meta http-equiv="refresh" content="600; URL=index.php?refresh">
</head>
<body>
</body>
</html>
an.
Bei deinem Chat, einer extra Box oder direkt der index.htm kannst du dann das versteckte iframe einfügen
<iframe style="display:none;" src="index.php?refresh"></iframe>