
function swap(listIdPrefix,group) {
    collapsedList = document.getElementById(listIdPrefix + "_collapsed");
    expandedList = document.getElementById(listIdPrefix + "_expanded");
    if (collapsedList.style.display == "block") {
        collapsedList.style.display = "none";
        expandedList.style.display = "block";
    } else {
        collapsedList.style.display = "block";
        expandedList.style.display = "none";
    }
    if (group) {
        ensureExclusivity(listIdPrefix,group);
    }
}

function ensureExclusivity(listIdPrefix,group) {

//alert("listIdPrefix is " + listIdPrefix + ", group is " + group);

    for (var i = 0 ; i < group.length ; i++) {
        if (group[i] != listIdPrefix) {
            document.getElementById(group[i] + "_collapsed").style.display = "block";
            document.getElementById(group[i] + "_expanded").style.display = "none";
        }
    }
}

// mutually exclusive lists
var groupA = new Array();
groupA[groupA.length] = "list_a_excl";
groupA[groupA.length] = "list_b_excl";
groupA[groupA.length] = "list_c_excl";

var outerGroup = new Array();
outerGroup[outerGroup.length] = "list_1";
outerGroup[outerGroup.length] = "list_2";
outerGroup[outerGroup.length] = "list_3";

var innerGroup1 = new Array();
innerGroup1[innerGroup1.length] = "list_1_a";
innerGroup1[innerGroup1.length] = "list_1_b";
innerGroup1[innerGroup1.length] = "list_1_c";

var innerGroup2 = new Array();
innerGroup2[innerGroup2.length] = "list_2_a";
innerGroup2[innerGroup2.length] = "list_2_b";
innerGroup2[innerGroup2.length] = "list_2_c";

var innerGroup3 = new Array();
innerGroup2[innerGroup3.length] = "list_2_a";
innerGroup2[innerGroup3.length] = "list_2_b";
innerGroup2[innerGroup3.length] = "list_2_c";


/* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Created by: Travis Beckham :: http://www.squidfingers.com | http://www.podlob.com */

/* Coded by Travis Beckham
   http://www.squidfingers.com | http://www.podlob.com
   version date: 06/02/03
   If want to use this code, feel free to do so, but please leave this message intact. */

// 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;
