/*
* Fallbackmenu wird angezeigt, wenn Flash nicht vorhanden oder deaktiviert ist.
*
*
*/
var FallbackMenu = new Class( {

  getOptions : function() {
    return {
      container : 'main-container',
      defaultHeight : 30
    }
  },

  initialize : function(options) {
    //console.debug('Initializing FallbackMenu.');
    this.setOptions(this.getOptions(), options);
    this.container = $(this.options.container);

    this.mainDimensions = this.getMainItemsDimensions();
    this.submenuHeight = this.getSubmenuHeight();
    var elements = $$('#main-container li.mainelm');

    for(i=0;i<elements.length;i++) {
      elements[i].setStyle('height', this.submenuHeight + 'px');
      elements[i].style.height=this.submenuHeight + 'px';
    }

    this.container.addEvent('mouseover', this.openSubmenu.bind(this));
    $('main-menu-fallback').addEvent('mouseout', this.closeSubmenu.bind(this));

    //    var elements = $$('#main-container li ul.sub');
    //    for(i=0;i<elements.length;i++) {
    //      elements[i].setStyle('opacity', '100');
    //    }

  },

  getSubmenuHeight : function(e) {
    var height = 0;
    var elements = $$('#main-container li.mainelm');

    for(i=0;i<elements.length;i++) {
      height = (elements[i].offsetHeight > height ? elements[i].offsetHeight : height);
    }

    //console.debug('Submenu height: ' + height);
    return height+10;
  },

  getMainItemsDimensions : function() {
    var elements = $$('#main-container span.title-surrounder');
    var lis = $$('#main-container li.mainelm');
    var height = 0;
    var width = 0;

//    console.debug("Checking: "+elements.length);

    for(i=0;i<elements.length;i++) {
      width = (elements[i].offsetWidth > width ? elements[i].offsetWidth : width);

      if (lis[i]) {
        lis[i].style.width = elements[i].offsetWidth + 10 + 'px';
      }
      height = (elements[i].offsetHeight > height ? elements[i].offsetHeight : height);
    }

    this.options.defaultHeight = height + 13;
    //    console.debug("Height: "+height);
    //    console.debug("Width: " + width);

    return {'width' : width, 'height' : height};
  },

  openSubmenu : function(e) {
    ////console.debug('Opening Submenu. DispatcherID: ' + e.target.id);
    //this.container.setStyle('height', this.submenuHeight +'px');
    this.container.style.height=this.submenuHeight +'px';
  },

  closeSubmenu : function(e) {
    //console.debug('Close submenu invoked. DispatcherID: ' + e.target.id);
    if (e.target) {
      if (e.target.id != 'main-menu-fallback' && e.target.id != 'main-container') {
        //alert(e.target.id);
        //console.debug('Event not dispatched by selected Elements.');
        return;
      }
    }
    //console.debug('Closing submenu.');
    this.container.setStyle('height', this.options.defaultHeight + 'px');
    this.container.style.height=this.options.defaultHeight + 'px';
  }

});
FallbackMenu.implement(new Options);

window.addEvent('domready', function() {
  if ($('main-menu-fallback')) {
    new FallbackMenu({});
  }
});