if (typeof(Lumos) != 'object'){
   Lumos = {}
}

Lumos.Navigation = Class.create({
  initialize: function(nav_wrapper){
    this.nav = nav_wrapper;
    if(!this.nav) return;
    this.nav_list = this.nav.down('ol');
    if(!this.nav_list) return;
    this.main_tabs = this.nav_list.childElements().collect(function(li){return new Lumos.Tab(li, this)}, this);
    var main = $('main');
    if(main) main.observe('mouseover', this.reset_tabs.bind(this));
  },
  reset_tabs: function(){
    this.main_tabs.each(function(tab){ if(tab.is_current) tab.show_sub_nav();});
  }
});

Lumos.Tab = Class.create({
  initialize: function(tab, navigation){
    this.navigation = navigation;
    this.tab = tab;
    this.is_current = this.tab.down('a').hasClassName('current');
    this.sub_nav = this.tab.down('ul');
    this.tab.observe('mouseover', this.show_sub_nav.bind(this));
  },
  show_sub_nav: function(){
    this.navigation.main_tabs.each(function(tab){tab.hide_sub_nav();});
    if(!this.sub_nav) return false;
    this.sub_nav.setStyle({visibility: 'visible'});
  },
  hide_sub_nav: function(){
    if(!this.sub_nav) return false;
    this.sub_nav.setStyle({visibility: 'hidden'});
  }
});

document.observe('dom:loaded', function(){new Lumos.Navigation($('nav'));});
