Мог бы эту задачу решить кубик "цикл". предложение о создании такого кубика висит тут, голосуйте: http://tslab.reformal.ru/proj/?ia=521006