Difficile seguire quel codice.

Lo hai anche postato senza includelo in [ code ] ... [ /code ] (senza spazi), per cui si e` persa la formattazione.

Comunque dovresti provare ad inserire degli alert in punti critici, per verificare cosa analizza.