// Extended Menu
treeTop = 0;
vinterval=1;
//alert('Скрипт запущен')
// Некоторые переменные, которые нужны скрипту
nn = (document.layers)? true : false;
ie = (document.all)? true : false;
openImg = new Image();
openImg.src = "img/arr-open.gif";
closeImg = new Image();
closeImg.src = "img/arr-close.gif";

// Далее - функции, которые нужны дереву

// Добавляем в Array все элементы другой Array в указанном месте
function visibleAdd(main, where, sub) {
        var resArr = new Array();
        for (i in main) { resArr[resArr.length] = main[i]; if (main[i] == where) for (j in sub) resArr[resArr.length] = sub[j]; }
        return resArr;
}

// Убираем из однай Array все элементы другой Array
function visibleRemove(main, sub) {
        for (i in main) for (j in sub) if (main[i] == sub[j]) delete main[i];
        return main;
}

// Стандартная кроссбраузерная функция, которая выстраивает по вертикали дивчиков, на входе - Array с их именами
function vertPlace(which) {
        var currTop = treeTop;
        if (nn) for (i in which) {
                document.layers[which[i]].top = currTop;
                currTop += document.layers[which[i]].document.height + vinterval;
        }
        if (ie) for (i in which) {
                document.all[which[i]].style.top = currTop;
                currTop += document.all[which[i]].offsetHeight + vinterval;
        }
}

// Стандартная кроссбраузерная функция показывающая слой
function showLeer(which) {
        if (nn) document.layers[which].visibility = "show";
        if (ie) document.all[which].style.visibility = "visible";
}

// Стандартная кроссбраузерная функция скрывающая слой
function hideLeer(which) {
        if (nn) document.layers[which].visibility = "hide";
        if (ie) document.all[which].style.visibility = "hidden";}

// Качаем ветку, или показываем, или скрываем в зависимости от состояния
function moveBough(which) {
        changingElems = visibleChildren(which);
//                alert(which+"Img");
        if (leafs[which].isOpen) {
                visible = visibleRemove(visible,changingElems);
                for (i in changingElems) hideLeer(changingElems[i]);
                leafs[which].isOpen = false;
                if (nn) document.layers[which].document.images[which+"Img"].src = closeImg.src;
                        else document.images[which+"Img"].src = closeImg.src;
        } else {
                visible = visibleAdd(visible,which,changingElems);


                for (i in changingElems) showLeer(changingElems[i]);
                leafs[which].isOpen = true;
                if (nn) document.layers[which].document.images[which+"Img"].src = openImg.src;
                        else document.images[which+"Img"].src = openImg.src;
        }
        vertPlace(visible);
}

// Запускаем все это!
function initextmenu() {
        for (i in visible) showLeer(visible[i]);
        vertPlace(visible);
}



