var menu_timeout = null;

function revertNavMenu() {
  var sub_menus = document.getElementById('sub_nav_menus').getElementsByTagName('ul');
  for (var i = 0; i < sub_menus.length; i++) {
    sub_menus[i].style.display = "none";
  }
  
  var default_menu = document.getElementById('default_menu')
  default_menu.style.display = 'block'
}

var nav_rules = {
  '#site_nav_menu a': function(element) {
    
    element.onmouseover = function() {
      var element_id = this.id;
      if (element_id.match(/_menu_item$/)) {
        // clear any previous timeout
        if (menu_timeout != null) clearTimeout(menu_timeout);
        
        menu_id = element_id.replace(/_menu_item$/, '_menu');
        var menu_container = document.getElementById('sub_nav_menus');
        var sub_menus = menu_container.getElementsByTagName('ul');

        var found = false;
        for (var i = 0; i < sub_menus.length; i++) {
          var sub_menu = sub_menus[i];
          if (sub_menu.id == menu_id) {
            sub_menu.style.display = "block";
            found = true;
          } else {
            sub_menu.style.display = "none";
          }
        }
        
        var default_menu = document.getElementById('default_menu')
        if (!found) {
          default_menu.style.display = 'block'
        }
      }
    }
    
    element.onmouseout = function() {
      var element_id = this.id;
      if (element_id.match(/_menu_item$/)) {
        // clear any previous timeout
        if (menu_timeout != null) clearTimeout(menu_timeout);
        menu_timeout = setTimeout(revertNavMenu, 10000)
      }
    }
  }
}

Behaviour.register(nav_rules);