The script below allows me to create expandable/collapsible menus. What I'm trying to figure out, and have been brutally unsuccessful thus far, is how to expand the menus upon an initial visit.
For example, on the home page, I have a link to "Colors" and a link to "Groceries". When a user clicks on "Colors, they are taken to a page with the collapsible menus:
If they were to click on Colors, the menu would expand and the user would see:
What I want is for the user to see the expanded version upon initial visit.
I should also mention that the site is primarily written in php, and the url is already passing variables to my php script. So, the url that includes the collapsible menus is, for example,
Can someone please tell me how to grab the "red" out of the URL, and then write an if/else statement for it?
For example, on the home page, I have a link to "Colors" and a link to "Groceries". When a user clicks on "Colors, they are taken to a page with the collapsible menus:
Colors
Groceries
Groceries
If they were to click on Colors, the menu would expand and the user would see:
Colors
- Red
- Blue
- Yellow
Groceries
- Red
- Blue
- Yellow
Groceries
What I want is for the user to see the expanded version upon initial visit.
I should also mention that the site is primarily written in php, and the url is already passing variables to my php script. So, the url that includes the collapsible menus is, for example,
Can someone please tell me how to grab the "red" out of the URL, and then write an if/else statement for it?
Code:
<!-- BEGIN COLLAPSIBLE MENUS -->
<script language="JavaScript">
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes)
{
return (new Object());
}
window.open = SymWinOpen;
//-->
</script>
<script type="text/javascript">
// Node Functions
if(!window.Node){
var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};
}
function checkNode(node, filter){
return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() ==
filter.toUpperCase());
}
function getChildren(node, filter){
var result = new Array();
var children = node.childNodes;
for(var i = 0; i < children.length; i++){
if(checkNode(children[i], filter)) result[result.length] = children[i];
}
return result;
}
function getChildrenByElement(node){
return getChildren(node, "ELEMENT_NODE");
}
function getFirstChild(node, filter){
var child;
var children = node.childNodes;
for(var i = 0; i < children.length; i++){
child = children[i];
if(checkNode(child, filter)) return child;
}
return null;
}
function getFirstChildByText(node){
return getFirstChild(node, "TEXT_NODE");
}
function getNextSibling(node, filter){
for(var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling){
if(checkNode(sibling, filter)) return sibling;
}
return null;
}
function getNextSiblingByElement(node){
return getNextSibling(node, "ELEMENT_NODE");
}
// Menu Functions & Properties
var activeMenu = null;
function showMenu(){
if(activeMenu){
activeMenu.className = "";
getNextSiblingByElement(activeMenu).style.display = "none";
}
if(this == activeMenu){
activeMenu = null;
}else{
this.className = "active";
getNextSiblingByElement(this).style.display = "block";
activeMenu = this;
}
return false;
}
function initMenu(){
var menus, menu, text, a, i;
menus = getChildrenByElement(document.getElementById("menu"));
for(i = 0; i < menus.length; i++){
menu = menus[i];
text = getFirstChildByText(menu);
a = document.createElement("a");
menu.replaceChild(a, text);
a.appendChild(text);
a.href = "#";
a.onclick = showMenu;
a.onfocus = function(){this.blur()};
}
}
if(document.createElement) window.onload = initMenu;
</script>
<!-- END COLLAPSIBLE MENUS -->