/* ========================================== CONFIGURAÇÕES DO MENU ========================================== */ // ====== // icones // ====== var ICONE_DO_ITEM_ABERTO = "/brasiliana/templates/htm/brasiliana/img/setacima.gif"; var ICONE_DO_ITEM_FECHADO = "/brasiliana/templates/htm/brasiliana/img/setabaixo.gif"; /* ========================================== */ // ============= // inicia o menu // ============= function startMenu () { var menu, menuChildNodes, itemChildNodes; menu = document.getElementById("menu"); menuChildNodes = menu.childNodes; // recolhendo submenus for (var i = 0; i < menuChildNodes.length; i++) { if (menuChildNodes[i].nodeName == "LI") { itemChildNodes = menuChildNodes[i].childNodes; for (var j = 0; j < itemChildNodes.length; j++) { if (itemChildNodes[j].nodeName == "UL") { itemChildNodes[j].style.display = "none"; } } } } // adicionando comportamento var ulE, liElements, aElements; var ulElements = document.getElementsByTagName("UL"); for (var i=0; i < ulElements.length; i++) { ulE = ulElements[i].className; // elementos: UL (níveis 1, 2 e 3) if (ulE == "n1" || ulE == "n2" || ulE == "n3") { liElements = ulElements[i].childNodes; // elementos: LI for (var j=0; j < liElements.length; j++) { if (liElements[j].tagName == "LI") { aElements = liElements[j].childNodes; // elementos: A for (var l=0; l < aElements.length; l++) { if (aElements[l].tagName == "A") { // comportamento de um item que tem subitens if (aElements[l].id) { if (aElements[l].id.indexOf("submenu") != -1) { addEvent(aElements[l], "click", updateMenu); setIcone(aElements[l], ICONE_DO_ITEM_FECHADO); } } } } } } } } var itemSelecionado = document.getElementById("menu-item-selecionado"); if (itemSelecionado) { updateMenu (itemSelecionado.parentNode.parentNode.parentNode.firstChild.id); } } // ============= // atualiza menu // ============= function updateMenu (e) { var id, n, aElement; if (typeof(e) == "string") { id = e; if (document.getElementById(id).parentNode.parentNode.parentNode.nodeName == "LI") { document.getElementById(id).parentNode.parentNode.style.display = "block"; setIcone (document.getElementById(id).parentNode.parentNode.parentNode.childNodes[0], ICONE_DO_ITEM_ABERTO); } // quando a função é chamada ao clicar em um item do menu } else { var e = (typeof(e)=='undefined') ? window.event : e; var t = e.target ? e.target : e.srcElement; if (t.nodeType == 3) t = t.parentNode; id = t.id; } var element = document.getElementById(id); var li = element.parentNode; var liChildNodes = li.childNodes; // recolhe submenus extendidos for (var i = 0; i < li.parentNode.childNodes.length; i++) { if (li.parentNode.childNodes[i].nodeName == "LI") { for (var j = 0; j < li.parentNode.childNodes[i].childNodes.length; j++) { if (li.parentNode.childNodes[i].childNodes[j].nodeName == "UL") { for (var l = 0; l < li.parentNode.childNodes[i].childNodes[j].parentNode.childNodes.length; l++) { if (li.parentNode.childNodes[i].childNodes[j].parentNode.childNodes[0].nodeName == "A") { displayNone = li.parentNode.childNodes[i].childNodes[j].parentNode.childNodes[0].id != id; } } if(displayNone) { li.parentNode.childNodes[i].childNodes[j].style.display = "none"; setIcone (li.parentNode.childNodes[i].childNodes[0], ICONE_DO_ITEM_FECHADO); } } } } } // recolhe ou extende submenu for (var i = 0; i < liChildNodes.length; i++) { if (liChildNodes[i].nodeName == "UL") { if (liChildNodes[i].style.display == "block") { liChildNodes[i].style.display = "none"; setIcone (li.childNodes[0], ICONE_DO_ITEM_FECHADO); if(liChildNodes[i].parentNode.parentNode.parentNode.childNodes[0].id == "undefined") { id = null; } else { id = liChildNodes[i].parentNode.parentNode.parentNode.childNodes[0].id; } } else { liChildNodes[i].style.display = "block"; setIcone (li.childNodes[0], ICONE_DO_ITEM_ABERTO); for (var j = 0; j < liChildNodes[i].childNodes.length; j++) { if (liChildNodes[i].childNodes[j].nodeName == "LI") { for (var l = 0; l < liChildNodes[i].childNodes[j].childNodes.length; l++) { if (liChildNodes[i].childNodes[j].childNodes[l].nodeName == "UL") { liChildNodes[i].childNodes[j].childNodes[l].style.display = "none"; setIcone (liChildNodes[i].childNodes[j].childNodes[0], ICONE_DO_ITEM_FECHADO); } } } } } } } } // ============================ // configura o icone de um item // ============================ function setIcone (elemento, icone) { elemento.style.backgroundImage = "url("+ icone +")"; elemento.style.backgroundPosition = "top right"; elemento.style.backgroundRepeat = "no-repeat"; } /* ================================================== inicia o menu com o evento onload da objeto window ================================================== */ function init () { startMenu(); } function addEvent(obj, evType, fn){ var w3DOM = obj.addEventListener; var ieDOM = obj.attachEvent; if (w3DOM) obj.addEventListener(evType, fn, true) if (ieDOM) obj.attachEvent("on"+evType, fn) } addEvent(window, "load", init); // fim // menu de acesso rápido function visitURL(lurl){ window.location=lurl; }