  // Menu functies voor openen en sluiten van menu en submenu items.

  var main_menus = new Array('menu_1','menu_2','menu_3','menu_4','menu_5');
  var timer_mainmenu;

  var menu_delay = 300;

  // Functie om het 'event bubbling' effect te ondervangen.
  function check_mouseout(e,handler)
  {
    // We checken of de muis nog in het menu is.
    if(e)
    {
      if (e.type != 'mouseout' && e.type != 'mouseover') return false;
      var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
      while (reltg && reltg != handler) reltg = reltg.parentNode;
      return (reltg != handler);
    }
    else { return false; }
  }



  // Hoofmenu openen
  function open_main_menu(menu_id)
  {
    close_all_main_menus();
    document.getElementById(menu_id).style.visibility = 'visible';
  }

  // Hoofdmenu sluiten
  function close_main_menu(menu_id)
  {
    document.getElementById(menu_id).style.visibility = 'hidden';
    stop_timer_to_close_main_menu();
  }

  //Alle hoofdmenu's sluiten
  function close_all_main_menus()
  {
    for(var i=0;i<main_menus.length;i++)
    {
      close_main_menu(main_menus[i]);
    }
  }

  // Vertraagde sluiting mainmenu
  function start_timer_to_close_main_menu(menu_id)
  {
    timer_mainmenu=setTimeout("close_main_menu('"+menu_id+"')",menu_delay);
  }

  // Reset timer mainmenu
  function stop_timer_to_close_main_menu()
  {
    if(timer_mainmenu){ clearTimeout(timer_mainmenu); }
  }

