/* 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

version date: 06/02/03 :: If want to use this code, feel free to do so,

but please leave this message intact. (Travis Beckham) */



// 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(openMenu, openSubMenu, boldItem)

{

  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()};



	// 

	// Date: 2/4/2008

	// 

	var test = trimString(text.nodeValue.toString());

	if (test.toUpperCase() == openMenu.toUpperCase())

	{

		a.onclick();



		// Bold sub-menu

  		submenus = getChildrenByElement(document.getElementById(openSubMenu));

		for(x = 0; x < submenus.length; x++)

		{

			submenu = submenus[x];

			if (submenu.innerHTML.indexOf(boldItem) > -1)

			{

				submenu.className = 'bold';

			}

		}

			

	}

  }

}



//

// Date: 2/4/2008

//

function trimString (str) {

  str = this != window? this : str;

  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');

}



if(document.createElement) window.onload = initMenu;

