/****************************************************************************************************************************/
/* Get all elements with specified attribute properties																							
/****************************************************************************************************************************/ 
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    for(var i=0; i<arrElements.length; i++){
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute(strAttributeName);
        if(typeof oAttribute == "string" && oAttribute.length > 0){
            if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
                arrReturnElements.push(oCurrent);
            }
        }
    }
    return arrReturnElements;
}

/****************************************************************************************************************************/
/* Gives x, y, width and heigth of an object																								
/****************************************************************************************************************************/
function getObjectDimensions(obj){
	var arr = new Array;
	var offsetX = 0;
	var offsetY = 0;
	var offsetW = obj.offsetWidth;
	var offsetH = obj.offsetHeight;

	if (obj.offsetParent){
		while(1){
			offsetX += obj.offsetLeft;
			offsetY += obj.offsetTop;

			if (!obj.offsetParent){
				break;
			}
			obj=obj.offsetParent;
		}
	}else if(obj.x) {
		offsetX += obj.x;
		offsetY += obj.y;
	}

	arr['x'] = offsetX;
	arr['y'] = offsetY;
	arr['w'] = offsetW;
	arr['h'] = offsetH;

	return arr;
}

function showMenu(menu)	{
	
	// Alle menu van deze level bepalen
	hideAllSubmenus();
	
	// Alle elementen ophalen die u:parent="" hebben gelijk aan huidige id
	var child_menus = getElementsByAttribute(document.getElementById('index'),'DIV','wb:menu_parent',menu.attributes['wb:menu_idnr'].nodeValue);

	var dimension = getObjectDimensions(menu);
	// Begint onder het menu
	var menu_height = 25;
	
	// Alle child loopen om ze te tonen
	for(var i=0; i < child_menus.length; i++){
        var child_menu = child_menus[i];
        
        // Uitklap menu tonen
		child_menu.style.display = "block";
		child_menu.style.position = "absolute";
		var currentMenu = getObjectDimensions(child_menu);
		
		// level 1 klapt recht naar beneden uit
		child_menu.style.left = dimension['x']+"px";
		child_menu.style.top = (dimension['y']+menu_height)+"px";
		
		menu_height += currentMenu['h'];
    }
}

function hideAllSubmenus()	{
	var menus = getElementsByAttribute(document.getElementById('index'),"DIV","wb:submenu","true");
	for(var i =0;i < menus.length; i++)	{
		menus[i].style.display = "none";
	}
}



