Ad un'occhiata veloce del codice, non vedo errori.

Se spieghi meglio, forse troviamo l'inghippo.
Ad esempio quale esattamente e` l'errore?
Oppure cosa fa e cosa non fa?
Gli alert previsti li vedi?