
	function moveUnder(strObjId,strCurrentMenuId,strMenuId) {        
		displayMove(strObjId,strCurrentMenuId,strMenuId,'move_obj')
	}
	
    function moveUnderMenuItem(strCurrentMenuId,strMenuId) {        
		displayMoveMenuItem(strCurrentMenuId,strMenuId,'move_obj')
	}
    
	function toggleExpansionMenuTreeItem(el,booForcedClose,callerid) {
		var grandChildren;
		var child;
		var strChildId;
		var strGrandChildId;
		/* 
			opzet boom:
		
			<div class="menu_container"	id="menutreeid_container_[menu_id]>				
				<div id="menutreeid_element_[menu_id]" onClick="toggleExpansionMenuTreeItem(this,$intMenuId)">
					[menu-item]
				</div>
				[subboom]				
			</div>
		*/
		//document.getElementById('debug').innerHTML=document.getElementById('debug').innerHTML + '<br/>' + el.innerHTML;
		
		el=el.parentNode;		
		for (var i=0;i<el.childNodes.length;i++) {			
			child=el.childNodes[i];
			// controleer of het niet de parent zelf is...
			strChildId="[lege string]";
			try {
				// de + "" is noodzakelijk voor een ugly casting naar een string			
				strChildId=child.id + "";
			} catch(e) {
				// was wrs. geen div elementje
			}
			
			if (strChildId.indexOf("_container_") > 0) {
				/*
					Ok, heb een container te pakken. Hierin moet de subtree zitten.
					Daarvan moeten de menutreeid's zichtbaar worden.
				*/
				grandChildren=child.childNodes;
				for (var j=0;j<el.childNodes.length;j++) {
					grandChild=grandChildren[j];
					strGrandChildId="[lege string]";					
					try {
						// de + "" is noodzakelijk voor een ugly casting naar een string
						strGrandChildId=grandChild.id + "";
					} catch(e) {
						// was wrs. geen div elementje
					}
											
					if (strGrandChildId.indexOf("_element_") > 0) {
						// controle of we niet in een loop terecht raken:
						// document.getElementById('debug').innerHTML=document.getElementById('debug').innerHTML + '<br/>' + 'cid:' + callerid + ',sgr:' + strGrandChildId;
						if (strGrandChildId!=callerid) {
							// ah, een geldig menu-item
							if (((grandChild.style.display=='none') || (grandChild.style.display=='') && (!booForcedClose)) && (!booForcedClose)) {
								//grandChild.style.backgroundColor='yellow';
								grandChild.style.display='block';
							} else {								
								if (grandChild.style.display=='block') {
									grandChild.style.display='none';
									// bij het dichtklappen geldt dat ook alle onderliggende opengeklapte menu-items dichtgeklapt moeten worden.
									toggleExpansionMenuTreeItem(grandChild,true,grandChild.id);									
								}							
							}
						}
					}
				}
			}
		}	
	} 
