var TopNav = new Class({
   
  initialize: function(clss) {
    this.links = $$('.'+ clss);
    this.links.each(function(link, i) {
      var sub = $(link.id+'Sub');
      sub.set('morph', { duration: 490 });
      link.set('morph', { duration: 250 });
      link.setStyle('background-color', '#F3F3D4');
      this.setUpSub( sub, link, i);
      return;
    }.bind(this));
  },
  
  setUpSub: function(sub, parent, n) {
    sub.setStyles({ left: parent.getSize().x * n, opacity: 0, visibility: 'visible', overflow: 'visible', cursor: 'pointer', marginTop: '31px' });
    sub.store('show_flag', false);
    sub.set( 'opacity', 0 );
    sub.addEvent('mouseenter', function(e) { sub.store('show_flag', true); this.showSub(sub, parent); }.bind(this));
    sub.addEvent('mouseleave', function(e) { sub.store('show_flag', false); this.hideSub(sub, parent); }.bind(this));
    parent.addEvent('mouseenter', function(e) { this.showSub(sub, parent); }.bind(this));
    parent.addEvent('mouseleave', function(e) { sub.store('show_flag', false); this.hideSub(sub, parent); }.bind(this));
    var ters = sub.getElements('.ter');
    ters.each(function(ter) { if(ter) { this.setUpTer(ter) }; }.bind(this));
  },
  
  setUpTer: function(ter) {
    var lnk = ter.getPrevious();
    var topPlacement = lnk.getPosition().y.toInt();
	if(Browser.Engine.trident) {
      topPlacement += 5;
    }
    ter.setStyles({ left: 200, position: 'absolute', visibility: 'visible', top: (topPlacement - 108), 'z-index': 999 });
    ter.setStyle( 'display', 'none' );
    var p_lnk = lnk.getElement('a');
    ter.addEvent('mouseenter', function(e) { this.showTer( ter, lnk ); }.bind(this) );
    ter.addEvent('mouseleave', function(e) { this.hideTer( ter, lnk ); }.bind(this) );
    lnk.addEvent('mouseenter', function(e) { this.showTer( ter, lnk ); }.bind(this) );
    lnk.addEvent('mouseleave', function(e) { this.hideTer( ter, lnk ); }.bind(this) );
  },
  
  hideSub: function(sub, parent) {
    if(sub.retrieve('show_flag') != true) {
      parent.morph( '.chapter_inactive' );
      parent.getElement('a').setStyle('color', '#000');
      //sub.set('opacity', 0);
      sub.morph({ opacity: 0 });
      sub.store('show_flag', false);
    }
  },
  
  showSub: function(sub, parent) {
      parent.morph( '.chapter_active' );
      parent.getElement('a').setStyle('color', '#f3f3d4');
      sub.morph({ opacity: .9 });
      sub.store('show_flag', true);
  },
  
  
  showTer: function(ter, parent) {
      var p_lnk = parent;
      p_lnk.setStyles({ 'color': '#F3F3D4' });
      p_lnk.toggleClass('activepnav'); 
      ter.setStyle( 'display', 'block' );
  },
  
  hideTer: function(ter, parent) {
      var p_lnk = parent;
      p_lnk.setStyles({ 'color': '#000' });
      p_lnk.toggleClass('activepnav'); 
      ter.setStyle( 'display', 'none' );
  }
  
});

window.addEvent('domready', function() {
  var t = new TopNav('lnk');
  
  //Moved Search logic into here
  var searchBox = $('s');
  searchBox.addEvent('blur', function(e) { if(searchBox.value == '') { searchBox.setStyle('text-align', 'right'); searchBox.value = 'SEARCH'; } }.pass(searchBox));
  searchBox.addEvent('focus', function(e) { if(searchBox.value == 'SEARCH') {  searchBox.setStyle('text-align', 'left'); searchBox.value = ''; } }.pass(searchBox));
});