Долго пытался разобраться в вашей программе, потом бросил и написал свою, как я это вижу. Попробуйте может вам подойдёт.
Правила форума