        var zakr='';    //Название class
        var zzakk='';   //Получаем объект
        /**
         *  Назначает действие для элементов списка.
         *  В начале проверка для кроссбраузерного события, далее получения имени
         *  class элемента на котором произошло событие. Потом определение действия
         *  для дочерних элементов списка.
         *  @param   Event  передаём событие
         */
         function Tree(Event) {
                 if (window.event) zzakk=event.srcElement;
                 else zzakk=Event.target;
                 zakr=zzakk.className;  //Получаем название class
                 if (zakr=="exelem") Rackr(1,(zzakk.childNodes.length-1));      //Для последующих дочерних
                 else if (zakr=="exeexe") Rackr(0,(zzakk.childNodes.length-1)); //Для первых дочерних
         }

        /**
         *  Рекурсивно поэлементно с паузой 50 миллисекунд отображает/скрывает элементы.
         *  В начале идёт проверка на кол-во элементов, далее определяет действие с дочерними элементами.
         *  Проверка отображаем/скрываем список.
         *  @param   pos  определяет первые, либо последующее дочерние элементы.
         *  Принимает значение 0 либо любое другое число.
         *  @param   kol  количество дочерних элементов.
         */
         function Rackr(pos,kol) {
           if (kol>0) {
               if (zzakk.childNodes[kol].className=="colelem") {
                  if (zzakk.childNodes[kol].childNodes.length!=1) zzakk.childNodes[kol].style.color="red";
                  else zzakk.childNodes[kol].style.color="black";
                  zzakk.childNodes[kol].className="exelem";    //Изменяем class
                  zzakk.childNodes[kol].style.position="absolute";  //Устанавливаем возможность изменения позиции
                 //Изменяем позицию элемента по Х
                if (pos==0)
                zzakk.childNodes[kol].style.left=parseInt(document.getElementById("head1").style.left)+5+"px";
                else if (pos!=0)
                zzakk.childNodes[kol].style.left=parseInt(zzakk.style.left)+5+"px";
                zzakk.childNodes[kol].style.position="relative";  //Устанавлиывем закрепление позиции
               }
               else
                if (zzakk.childNodes[kol].className) {
                    zzakk.childNodes[kol].style.color="black";
                    zzakk.childNodes[kol].className="colelem";
                }
                setTimeout("Rackr("+pos+","+(kol-1)+")",50); //Рекурсия с паузой 50 миллисекунд
           }
         }
