function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.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)
}

function toggleSubmenuAction() {
	return toggleSubmenu(this);
}

function toggleSubmenu(actuator) {
	var uls = actuator.parentNode.getElementsByTagName("ul");
	var ul = uls[0];
		if (ul.style.display != null && ul.style.display == "block") {
		ul.style.display = "none";
		eraseCookie(actuator.id);
		} else {
		ul.style.display = "block";
		createCookie(actuator.id,"block");
		}
	return false;	
}

function openSubmenu(actuator) {
	var uls = actuator.parentNode.getElementsByTagName("ul");
	uls[0].style.display = "block";
	return false;	
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnloadEvent(func) {
  var oldonunload = window.onunload;
  if (typeof window.onunload != 'function') {
    window.onunload = func;
  } else {
    window.onunload = function() {
      oldonunload();
      func();
    }
  }
}

function initMenus() {
	var submenuActuators = getElementsByClassName(document,"a","submenuActuator");
	for (i=0; i<submenuActuators.length; i++) {
		submenuActuators[i].onclick = toggleSubmenuAction;
		if (readCookie(submenuActuators[i].id)) {
			openSubmenu(submenuActuators[i]);
		}
	}	
}

addLoadEvent(initMenus);

