Думаю, все проще. В базе с сообщениями есть отдельное поле, в которое пишется флаг при его первой загрузке. Потом этот флаг проверяется, что и дает информацию о прочтении.
spacenear, смысл этих функций - исключить возможность XSS. Если обработать ими входящие данные, то возможность вливания внешнего скрипта практически исключается. Ну, если у вас в коде нет никаких eval.
При предварительном подключении скрипта с функцией через тег <script> функция должна определяться и исполняться при вызове из любого обработчика.
Если скрипт подключается асинхронно, нужно определять его загрузку.