//
//

var menu = (function(){

  var submenu = {
				 'news': []
				 ,'expeditions': []
  };
  
  return {
    visible: false,
	timeout: null,
	showing: null,
	submenus: [],
	
    init: function(){
	  // ge the elements that have submenus
	  for(var i in submenu){
		  menu.submenus.push($('nav-'+i).down().next());
	  }
	  
	  $('nav').getElementsByClassName('nav').each(function(el){
        // set the page we're on
	    var loc = window.location.toString();
	    if(loc.indexOf(el.down().name) != -1){
		  el.down().addClassName('on');
		}
		el.observe('mouseover', menu.hideAll);
		
		
	  for(var i in submenu){
		if(i == el.down().name){
		  el.observe('mouseover',menu.showSubmenu);
		  el.observe('mousemove',menu.refreshTimeout);
		  el.down().next().observe('mouseover',menu.refreshTimeout);
		  el.down().next().observe('mousemove',menu.refreshTimeout);
		  el.down().next().descendants().each(function(element){ element.observe('mouseover',menu.refreshTimeout); });
		}
	  }
		
	  });
	  
	  
	  
    },
	
	hideAll: function(e){
	  var el  = Event.element(e);
	  if(el.className.indexOf('has-subnav') == -1 && el.className.indexOf('is-subnav') == -1) menu.submenus.invoke('hide');
	},
  
    showSubmenu: function(e){
	  //menu.submenus.invoke('show');
	  menu.submenus.each(function(el){
	    el.setOpacity(1);
	  });
	  var el = Event.element(e);
	  if(el.next()){
		  var el = el.next();
		  if(el.className.indexOf('submenu') != -1) {
		    menu.submenus.invoke('hide');
		    el.show();
			menu.showing = el;
			menu.refreshTimeout();
		  }
	  }
    },
  
    hideMenu: function(){
      //menu.showing.hide();
	  new Effect.Opacity(menu.showing, { duration: 0.25, to: 0, afterFinish: function(){ menu.showing.hide(); } });
    },
	
	refreshTimeout: function(){
	  clearTimeout(menu.timeout);
	  menu.timeout = setTimeout(menu.hideMenu, 2000);
	}
  
  
  }
  
})();

Event.observe(window, "load", menu.init);









