//create onDomReady Event
      window.onDomReady = initReady;
 
      // Initialize event depending on browser
      function initReady(fn)
      {
      	//W3C-compliant browser
      	if(document.addEventListener) {
          document.addEventListener("DOMContentLoaded", fn, false);
        }
      	//IE
      	else {
          document.onreadystatechange = function(){readyState(fn)}
        }
      }
 
      //IE execute function
      function readyState(func)
      {
      	// DOM is ready
      	if(document.readyState == "interactive" || document.readyState == "complete")
      	{
      		func();
      	}
      }

//execute as soon as DOM is loaded
window.onDomReady(init);

var elementarray = new Array();
function init(){
	closeSubmenues();

	var els = getElementsByClassName("submenu");
	for(var i=0,j=els.length; i<j; i++){
		var sub = els[i].getElementsByTagName("A")[0];
		var id = els[i].id;
		//sub.onclick = function () { alert (i);alert(elementarray[i].tagName); toggleSubmenu(this);};
		var y = new Function("toggle"+id,"return visibleSubmenuByID('"+id+"');");
		sub.onclick = y;
	}
}

	
function getElementsByClassName(classname, node) {
	if(!node) node = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)
	if(re.test(els[i].className))a.push(els[i]);
	return a;
}

function setElementVisibility(elementToSet, showItSwitch, keepPlacementSwitch){
 if (showItSwitch) {
   elementToSet.style.display = "inline";
   elementToSet.style.visibility = "visible";
 }
 else{
   if (keepPlacementSwitch) {
     elementToSet.style.display = "inline";
     elementToSet.style.visibility = "hidden";
   }
   else{
     elementToSet.style.display = "none";
   }
 }
}

function toggleElementVisibility(elementToSet){
	if(elementToSet.style.display== "none"){
		elementToSet.style.display = "";
		elementToSet.style.visibility = "visible";
	}else{
		elementToSet.style.display = "none";
	}
}

function closeSubmenues(){
	var mens = getElementsByClassName("submenu");
	
	for(var i=0; i<mens.length; i++){
		
		var sub = mens[i].parentNode.getElementsByTagName("UL")[0];
		if(sub.className!="opened"){
			setElementVisibility(sub, false, false);
		}else{
			sub.className="";
		};
	}

}

function openSubmenu(el){
	var sub = el.parentNode.getElementsByTagName("UL")[0];
	setElementVisibility(sub, true, false);
}

function closeSubmenu(el){
	var sub = el.parentNode.getElementsByTagName("UL")[0];
	setElementVisibility(sub, false, false);
}

function toggleSubmenu(el){
	var sub = el.parentNode.getElementsByTagName("UL")[0];
	toggleElementVisibility(sub);
}

function setAllVisible(el){
	var sub = el.getElementsByTagName("UL")[0];
	toggleElementVisibility(sub);

	var par = el.parentNode.parentNode;
	if(par.tagName=="LI"){
		var test = par.getElementsByTagName("SPAN")[0];
		var classname = "submenu";
		var re = new RegExp('\\b' + classname + '\\b');
	//	alert(test.tagName+ " - " + test.id + " - " + test.className + ": "+test.value);
		if(re.test(test.className))setAllVisible(par);
	}
}

function visibleSubmenuByID(id){
	
	var sub = document.getElementById(id).parentNode;
	var open = true;

	var ret = false;
	if(sub.getElementsByTagName("UL")[0].style.display!="none") open=false;
	if(open==true) {
		if(document.getElementById(id).getElementsByTagName("A")[0]['href'].length > 3 &&
		 document.getElementById(id).getElementsByTagName("A")[0]['href'].replace("#", "") != document.URL.replace("#", "")) return true;
	}
	closeSubmenues();
	
	if(open) setAllVisible(sub);
	return ret;
}

function toggleSubmenuByID(id){
	var sub = document.getElementById(id).parentNode.getElementsByTagName("UL")[0];
	toggleElementVisibility(sub);
}
