Öhm, ich weiß ja nicht, aber dass du da den Fehler nicht findest, wundert mich eigentlich gar nicht.
Versuch das ganze mal etwas effizienter zu schreiben. Sprich versuch mal ein paar globale Variablen los zu werden. Wie man den Rest verpessern könnte, weiß ich jetzt auch nicht, dazu müßte ich den Code erstmal analysieren, aber ohne weitere Erklärungen, was er machen soll etwas schwiereig.