if (typeof(loadNavMenus)=='undefined') {
// Navigation-scheme-specific functions to update nav with partial page loads
  var navMenus = null;
  var originalPage=currentPage;
  var currentLoadNavMenusRequest = null;
  var loadNavMenus = function() {
    // Load fold-out menus from server
    var request;
    var ua = navigator.userAgent.toLowerCase();
    if (!window.ActiveXObject) {
      request = new XMLHttpRequest();
    } else if (ua.indexOf('msie 5') == -1) {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } else {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    request.onreadystatechange=finishLoadNavMenus;
    currentLoadNavMenusRequest = request;
    request.open("GET", wwwroot+'/index.php?page=_xnav'
        + (mainTemplate=='standard'?'':'&mainTemplate='+escape(mainTemplate)),
        true);
    request.send(null);
  }

  function finishLoadNavMenus() {
    var request = currentLoadNavMenusRequest;
    if (!request || !request.readyState || request.readyState<4) {
      return;
    }
    currentLoadNavMenusRequest = null;
    // Finish loading fold-out menus from server
    if (request.status==200
        && request.getResponseHeader("Content-Type").match(/text\/html/)
        && request.responseText!='') {
      var el = document.createElement('DIV');
      el.innerHTML=request.responseText;
      var i;
      navMenus = new Object;
      var menus = el.getElementsByTagName('DIV');
      for(i=0; i<menus.length; i++) {
        if (menus[i].id.match(/menu_(.*)/)) {
          navMenus[RegExp.$1]=menus[i];
        }
      }
      var scripts = el.getElementsByTagName('SCRIPT');
      for(i=0; i<scripts.length; i++) {
        var script2 = document.createElement('script');
        script2.type = 'text/javascript';
        script2.text = scripts[i].text;
        var head= document.getElementsByTagName('head')[0];
        head.appendChild(script2);
      }
    }
    if (currentPage!=originalPage) {
      // A new page was loaded while waiting for the navMenus to load:
      // update the displayed nav menus NOW
      var newPage=currentPage;
      currentPage=originalPage;
      updateNavPage2(newPage);
    }
  }

  var updateNavPage2=function(newPage, pageIsOwnChild) {
    // Update fold-out menus
	if (currentPage==newPage) {
      return;
    }
    currentPage=newPage;
    if (!navMenus) {
      return;
    }
    // Retrieve menus and selected-buttons to be displayed
    var newMenus=new Array();
    var newSelected=new Array();
    var page=newPage;
    if (page && pageIsOwnChild) {
      newSelected.unshift(page);
    }
    while(page) {
      newSelected.unshift(page);
      if (pageParent[page]==undefined) {
        break;
      }
      page=pageParent[page];
    }
    var i;
    for(i=0; i<newSelected.length-(pageIsOwnChild?1:0); i++) {
      var menuName=newSelected[i];
      if (navMenus[menuName]==undefined) {
        break;
      }
      newMenus[i]=navMenus[menuName];
    }
    if (newMenus.length==0) {
      newMenus[0]=navMenus['_'];
    }
    // Discard displayed menus and display new ones
    // This code will differ from site to site
    var hoofdnavContainer=document.getElementById('hoofdnavContainer');
    if (hoofdnavContainer) {
      hoofdnavContainer.innerHTML='';
      hoofdnavContainer.appendChild(newMenus[0].cloneNode(true));
    }
    var subnavContainer=document.getElementById('subnavContainer');
    if (subnavContainer) {
      subnavContainer.innerHTML='';
      if (newMenus.length>1) {
        subnavContainer.appendChild(newMenus[1].cloneNode(true));
      }
    }
    // Select preselected buttons
    for (i=0; i<newSelected.length; i++) {
      var button=document.getElementById('button'+i+'_'+newSelected[i]);
      if (button && button.parentNode.onmouseout) {
        button.parentNode.onmouseout=button.parentNode.onmouseover;
        button.parentNode.onmouseout();
      }
    }
  }
  window.updateNavPage=window.updateNavPage2;
  window.setTimeout('loadNavMenus()', 200);
}
  
