Не могу понять, где ошибка. Правильное решение куда короче и изящнее, не спорю. Но мне тупо интересно теперь, почему мое решение не принимает валидатор.