// JavaScript Document
prevNiveaus = new Array();
	
function Niveau(object, onmouseover,onmouseout, onmouseup){

	this.object = object;
	this.onmouseover = onmouseover;
	this.onmouseout = onmouseout;
	this.onmouseup = onmouseup;

}
function selectElementsFrom(object, elementName) {
	
	if(document.getElementById(object))
		var refObject = document.getElementById(object);
	else
		var refObject = object;
	
	var elements = new Array();
	var j = 0;
	
	for(var i=0; i<refObject.childNodes.length; i++){
		
		if(refObject.childNodes[i].nodeName == elementName){
		
			elements[j] = refObject.childNodes[i];
			j++;
			
		}
	}

	return elements;
	
}
function setDisplay(object){
	
	var elements;
				
	elements = selectElementsFrom('menu', 'UL');
	for(i=0; i<elements.length; i++){
		
		if(elements[i].className != 'niveau1')
			elements[i].style.display = 'none';
		
	}
	
	if(elements[parseFloat(object.name)+1])
		elements[parseFloat(object.name)+1].style.display = 'block';

}
function lockClass(object, group){
	
	if(group == 0 && prevNiveaus[0]){
		prevNiveaus[0].object.onmouseover = prevNiveaus[0].onmouseover;
		prevNiveaus[0].object.onmouseout = prevNiveaus[0].onmouseout;
		prevNiveaus[0].object.onmouseup = prevNiveaus[0].onmouseup;
		prevNiveaus[0].object.onmouseout();
		
		if(prevNiveaus[1]){
			prevNiveaus[1].object.onmouseover = prevNiveaus[1].onmouseover;
			prevNiveaus[1].object.onmouseout = prevNiveaus[1].onmouseout;
			prevNiveaus[1].object.onmouseup = prevNiveaus[1].onmouseup;
			prevNiveaus[1].object.onmouseout();
		}
	}
	
	if(group == 1 && prevNiveaus[1]){
		prevNiveaus[1].object.onmouseover = prevNiveaus[1].onmouseover;
		prevNiveaus[1].object.onmouseout = prevNiveaus[1].onmouseout;
		prevNiveaus[1].object.onmouseup = prevNiveaus[1].onmouseup;
		prevNiveaus[1].object.onmouseout();
	}
	
	prevNiveaus[group] = new Niveau(object, object.onmouseover, object.onmouseout, object.onmouseup);

	object.onmouseover = '';
	object.onmouseout = '';
	object.onmouseup = '';

}
function initListItems(){
	
	var elements = new Array();
	var listItems = new Array();
	var listCounter = 0;
		
	elements = selectElementsFrom('menu', 'UL');

	for(var i=0; i<elements.length; i++){
		
		listItems = selectElementsFrom(elements[i], 'LI');
		
		for(var j=0; j<listItems.length; j++){
		
			listItems[j].childNodes[0].onmouseover = function(){this.className = 'liSelect';};
			listItems[j].childNodes[0].onmouseout = function(){this.className = '';};
			listItems[j].childNodes[0].name = i + '' + j;//de links 'a' onthouden wat hun plaats in de hiarchie is van het menu
			if(i==0)//als i==0 betekend; de eerste UL en dat is niveau1, daarvoor gelden andere event handlers
				listItems[j].childNodes[0].onmouseup = function(){lockClass(this, 0); setDisplay(this);};
			else
				listItems[j].childNodes[0].onmouseup = function(){lockClass(this, 1);};
				
		}
				
	}
	
}
function setDefaultItems(){
	
	for(var i=0; i<2; i++){
		
		if(document.getElementById('default' + i)){
			
			document.getElementById('default' + i).onmouseover();
			document.getElementById('default' + i).onmouseup();
			
		}
		
	}

}

/*if (document.addEventListener) {
  document.getElementById("A").addEventListener("click", traceEvent, true);
  document.getElementById("B").addEventListener("click", traceEvent, true);
  document.getElementById("C").addEventListener("click", traceEvent, true);
  document.getElementById("A").addEventListener("click", traceEvent, false);
  document.getElementById("B").addEventListener("click", traceEvent, false);
  document.getElementById("C").addEventListener("click", traceEvent, false);
}
else {
  document.getElementById("A").onclick = traceEvent;
  document.getElementById("B").onclick = traceEvent;
  document.getElementById("C").onclick = traceEvent;
}

function traceEvent(event) {

  var phase, source;

  if (window.event) {
    target = window.event.srcElement.id;
    current = this.id
    if (this == window.event.srcElement)
      phase = "AT TARGET";
    else
      phase = "BUBBLE";
  }
  else {
    if (event.target.tagName)
      target = event.target.id;
    else
      target = "[Text]";
    current = event.currentTarget.id;
    if (event.eventPhase == Event.CAPTURING_PHASE)
      phase = "CAPTURE";
    else if (event.eventPhase == Event.BUBBLING_PHASE)
      phase = "BUBBLE";
    else if (event.eventPhase == Event.AT_TARGET)
      phase = "AT TARGET";
  }
}*/