Beh ... e io non ho capito qual e' il tuo problema ...
La tua spiegazione non e' per nulla chiara.
E non credo di avere il tempo (e la voglia) di studiare tutto il codice per capire qual e' il problema ...
Forse dovresti essere un momentino piu' chiaro nella spiegazione ...