// declaring the class
var Menu = new Class({
	initialize: function(element, options) {
	  $$('li.level_1').each(
	    function(li){
        li.addEvent('mouseover',function() {
          var uls = this.getChildren().each(function(ul){
            ul.addClass('current');
            if ( ul.hasClass('level_2') ) {
              ul.setStyle('display','block');
              menuIsOpen=true;
              //ul.effect('opacity').start(0,1);
              if (window.ie && menuHidesDiv && ($(menuHidesDiv).getStyle('visibility')!='hidden') ) {
                if (window.ie7) {
                  $(menuHidesDiv).effect('opacity',{duration:300,onComplete:function(){
                    $(menuHidesDiv).setStyle('display','none');
                  }}).start(1,0);
                }
                if (window.ie6) $(menuHidesDiv).setStyle('display','none');
              }
            }
          });
        });
        li.addEvent('mouseout',function() {
          var uls = this.getChildren().each(function(ul){
            ul.removeClass('current');
            if ( ul.hasClass('level_2') ) {
             ul.setStyle('display','none');
             menuIsOpen=false;
             //ul.effect('opacity').start(1,0);
            }
          });
        });
        if (menuDirsAreClickable===false) {
          var hasChildren = false;
          var link;
          li.getChildren().each(function(child){
            if (child.getTag()=='a') {
              link = child;
            }
            if ( child.hasClass('level_2') ) {
              hasChildren = true;
            }
          });
          if (hasChildren && li.hasClass('level_1')) {
            link.onclick = function() { this.blur(); return false; };
          }
        }
      }
    );
    $('menu').addEvent('mouseout',function(){
      menuInstance.showContainer.delay(200);
    });
    this.hideAll();
	},
	showContainer: function() {
	  if (menuIsOpen) return;
    if (window.ie && menuHidesDiv) {
     if (window.ie7) {
      $(menuHidesDiv).setStyle('opacity',1);
      $(menuHidesDiv).setStyle('display','block');
      //$(menuHidesDiv).effect('opacity',{duration:100}).start(0,1);
     }
     if (window.ie6) $(menuHidesDiv).setStyle('display','block');
    }
	},
	hideAll: function() {
	  $$('ul.level_2').each(function(ul){
      ul.setStyle('display','none');
    });
    return this;
	}
});

function initMenus() {
  menuInstance = new Menu();
}

var menuInstance;
var menuIsOpen=false;

window.onDomReady(initMenus);