Dieser Spass hat mich eben 5h gekostet, nun bleibt der Code halt direkt im Html :)
Die Schlussfolgerung ist phänomenal. ;)
Aber Du hast natürlich in den 5h eine Sache nicht gemacht:
DU HAST DAS PROBLEM UNZUREICHEND ISOLIERT
.
Du hättest natürlich den Code, der in ausgelagerter Form nicht läuft, reduzieren müssen um herauszufinden, wann etwas nicht funzt (nicht etwa was nicht funzt - das wäre Step 2).
5h sind eine Menge Zeit und da könnte man eine Menge Code durchsuchen, vorgeschlagene Vorgehensweise (vgl. mit dem binären Suchen - http://de.wikipedia.org/wiki/Binäres_Suchen):
Code möglichst halbieren und ausführen lassen, den nichtfunzenden Teil wieder halbieren und so weiter. Nach max. 10 Schritten hast Du die Stelle, die nicht funzt (und in Zeile 575 den genannten Fehler verursacht, eine fehlende Klammerung darf vermutet werden).
Die fehlende (möglichst systematische) Problemisolierung ist einer der hier meistgenannten Fehler, wenn nicht die Nummer 1.