Leonid
В квикформах для "сложных полей" ты можешь писать плагины. Остальное, что тебе нужно, там есть. Кроме того, твой код пока не настолько хорош, и, очевидно, познания пока что не настолько глубоки, чтобы твой класс мог соперничать с квикформ. отсюда совет:
если ты пишешь для самообразования/развития - продолжай - в конце концов добьешься результата, и получишь по ходу дела новые знания. Но если ты собираешься использовать это в реальном проекте - имхо, лучше взять готовое решение (тот же квикформ подойдет)