// Set a browser cookie with name and value function setCookie(name, value) { document.cookie = name + "=" + value + "" + "; path=/"; } // Return the value of the browser cookie name, or null if none function getCookie(name) { var cookies = document.cookie.split(';'); var name = name + "="; for(var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; while (cookie.charAt(0)==' ') { cookie = cookie.substring(1, cookie.length); } if (cookie.indexOf(name) == 0) { return cookie.substring(name.length, cookie.length); } } return null; } // Delete the browser cookie name function removeCookie(name) { document.cookie = name + "=''; expires=Fri, 13 Jul 2001 00:00:00 UTC; path=/"; } // Set the display for elementId to displayState function setStyleDisplay(elementId, displayState) { var element = document.getElementById(elementId); if (element) { element.style.display = displayState; } } // Show the control panel based on the user's preferences function adjustControlPanelVisibility() { if (getCookie("controlPanel")) { setStyleDisplay("controlPanelOff", getCookie("controlPanelOff")); setStyleDisplay("controlPanel", getCookie("controlPanel")); } else { setStyleDisplay("controlPanelOff", "inline"); } } // Toggle the control panel function toggleControlPanel() { // Toggle the control panel visibility document.getElementById("controlPanelOff").style.display = document.getElementById("controlPanelOff").style.display == "none" ? "inline" : "none"; toggleVisibility("controlPanel"); // Remember what's showing setCookie("controlPanelOff", document.getElementById("controlPanelOff").style.display); setCookie("controlPanel", document.getElementById("controlPanel").style.display); } // Return the div id corresponding to the toggle arrow for expanding menu menuId function toggleMenuArrow(menuId) { return menuId + "_toggle"; } // Toggle expanding menu named menuId function toggleMenu(menuId) { // Toggle the control panel visibility toggleVisibility(menuId); // Note the new display state state = document.getElementById(menuId).style.display; // Remember what's showing setCookie(menuId, state); // Adjust the arrow document.getElementById(toggleMenuArrow(menuId)).className = (state == "block") ? "menuOpen" : "menuClosed"; } // Adjust the visibility for the expanding menu based on the user's selection, defaulting to open function adjustMenuVisibility(menuId) { state = getCookie(menuId) ? getCookie(menuId) : "none"; if (document.getElementById(menuId)) { document.getElementById(menuId).style.display = state; } if (document.getElementById(toggleMenuArrow(menuId))) { document.getElementById(toggleMenuArrow(menuId)).className = (state == "block") ? "menuOpen" : "menuClosed"; } }