function initialise()
{
  expandAll();
  var collapsibleObj = document.getElementById("b-list_section");
  var toggleLinkObj = document.getElementById("b-list_toggle");
  collapse(collapsibleObj, toggleLinkObj);
}

function collapseAll()
{
  var expandedItems = getElementsByClassName(document, "*", "expanded");
  for (var i=0; i<expandedItems.length; i++)
  {
    expandedItems[i].className = "collapsed";
  }
}

function expandAll()
{
  var collapsedItems = getElementsByClassName(document, "*", "collapsed");
  for (var i=0; i<collapsedItems.length; i++)
  {
    collapsedItems[i].className = "expanded";
  }
}

// Support function for toggling collapsible lists.
// Adapted from http://www.eggheadcafe.com/articles/collapsibledivs.htm
function toggle(collapsibleId, toggleLinkObj)
{
  var collapsibleObj = document.getElementById(collapsibleId);
  if (collapsibleObj.className == "collapsed")
  {
    expand(collapsibleObj, toggleLinkObj);
  }
  else if (collapsibleObj.className == "expanded")
  {
    collapse(collapsibleObj, toggleLinkObj);
  }
}

function collapse(collapsibleObj, toggleLinkObj)
{
  collapsibleObj.className = "collapsed";
  toggleLinkObj.className = "collapsed";
}

function expand(collapsibleObj, toggleLinkObj)
{
  collapsibleObj.className = "expanded";
  toggleLinkObj.className = "expanded";
}

/*
  The Ultimate getElementsByClassName.
  Written by Jonathan Snook, http://www.snook.ca/jonathan
  Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
  var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  var oElement;
  for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];
    if(oRegExp.test(oElement.className)){
      arrReturnElements.push(oElement);
    }
  }
  return (arrReturnElements)
}
