function $t(term){
  document.write(WunderWunder.getTerm(term));
}

var WunderWunder = {
  locale: '',
  _animation: { menu: false },
  MAIN_MENU: 0,
  SUB_MENU: 1,
  PAGE_MENU: 2,
  MENU_TIMEOUT: 1000,
  currentMenuPanel: 0,
  _defaultMenuPanel: 0,
  _menuPanelTimeout: null,
  _smallScreen: false,
  _activeSubMenu: -1,
  cubic: function(pos) {
    pos /= 0.5; return pos<1 ? 0.5*pos*pos*pos : 0.5*((pos-2)*(pos-2)*(pos-2)+2);
  },
  _open: { 'menu-left':false, 'menu-right':false },
  redraw: function(){
    var scrollLeft = Position.scrollX();
    var height     = Position.getPageSize().window.height;
  
    $('logo').setStyle({ top: ((height-104)/2)+(WunderWunder._smallScreen ? 400 : 10)+'px' });
    

    
    if($('layout').offsetLeft > 0) $('logo').setStyle({
      marginLeft: $('layout').offsetLeft-68-22+'px'
    });
    if($('thumbs-icon'))
      $('thumbs-icon').setStyle({ top: ((height-504)/2)+520+'px' });
   
    var t = (height-504)/2;
    $('layout').setStyle({top:(t<0?0:t)+'px'});
  },
  enableIESupport: function(){
    WunderWunder.redraw = function(){
      var scrollLeft = Position.scrollX();
      var height     = Position.getPageSize().window.height;
      
      $('page-body').style.backgroundPosition = 
        '98px '+(((height-504)/2)+(WunderWunder._smallScreen ? 400 : 520))+'px';
      
      if($('layout').offsetLeft > 0) $('page-body').style.backgroundPosition = 
        $('layout').offsetLeft+33+'px '+(((height-504)/2)+(WunderWunder._smallScreen ? 400 : 520))+'px';
      
      if($('layout').offsetLeft > 0) $('logo').setStyle({
        marginLeft: $('layout').offsetLeft+'px'
      });
      
      $('logo').setStyle({
        top:  ((Position.getPageSize().window.height-504)/2)+(WunderWunder._smallScreen ? 400 : 520)+'px',
        left: (Position.scrollX()+36)+'px'
      });
      
      if($('thumbs-icon')) $('thumbs-icon').setStyle({ 
        top: ((height-504)/2)+520+'px'
      });
      
      var t = (height-504)/2;
      $('layout').setStyle({top:(t<0?0:t)+'px'});
    }
    $('page-body').addClassName('ie6');
    Event.observe(window,'scroll',function(){
      $('logo').setStyle({
        top:  ((Position.getPageSize().window.height-504)/2)+(WunderWunder._smallScreen ? 400 : 520)+'px',
        left: (Position.scrollX()+36)+'px'
      });
    });
  },
  initialize: function(id){
    WunderWunder.id     = id;
    WunderWunder.locale = 'de';
    WunderWunder.parseMenu();
    if(Engine.isMSIE) WunderWunder.enableIESupport();
    Event.observe(window,'resize',WunderWunder.redraw);
    WunderWunder.redraw();
    Effect.benchmark();
    
    if(arguments[1]) {
      this._defaultMenuPanel = arguments[1];
      if(WunderWunder._activeSubMenu>-1 && this._defaultMenuPanel==this.SUB_MENU) {
        WunderWunder.openSubmenu(WunderWunder._activeSubMenu,{animation:false});
      } else {
        this.showMenuPanel(arguments[1],{animation:false});
      }
    }
    
    if(WunderWunder._activeSubMenu>-1) WunderWunder._renderSubMenu(WunderWunder._activeSubMenu);
    
    ['menu-left','menu-right'].each(function(side){
      if($(side)){
        Event.observe(side,'mouseout',this.startMenuPanelTimeout.bindAsEventListener(this));
        Event.observe(side,'mousemove',this.clearMenuPanelTimeout.bindAsEventListener(this));
      }
    }.bind(this));
    
    if($('logo') && !$('logo').hasClassName('noscroll'))
      Event.observe('logo','click',function(){new Effect.HScrollTo(0)}); 
    
    $$('div.spacer-column').each(function(s,i){
      Event.observe(s,'click',function(event){
        WunderWunder.spacerEvent ? WunderWunder.spacerEvent(i, Event.localPointer(event)[0]<33 ? 1 : -1) : 
          new Effect.HScroll(Event.localPointer(event)[0]<33 ? 821 : -821);
      });
      Event.observe(s,'mousemove',function(event){
        var d = Event.localPointer(event)[0]<33 ? '-65' : '-130';
        s.style.backgroundPosition = d + 'px 0px';
      });
      Event.observe(s,'mouseout',function(event){
        s.style.backgroundPosition = '0px 0px';
      });
    });
    
    if(Engine.isMSIE) $$('a').each(function(n){ n.hidefocus = 'hidefocus' })
  },
  setSpacerEvent: function(callback){
    WunderWunder.spacerEvent = callback;
  },
  
  startMenuPanelTimeout: function(event){
    if($('menu-left')) {
      var p = Event.localPointer(event,'menu-left');
      if(p[0]>0 && p[0]<236 && p[1]>0 && p[1]<504) return;
    }
    if($('menu-right')) {
      var p = Event.localPointer(event,'menu-right');
      if(p[0]>0 && p[0]<236 && p[1]>0 && p[1]<504) return;
    }
    this.clearMenuPanelTimeout();
    this._menuPanelTimeout = setTimeout(function(){ 
      WunderWunder.showMenuPanel(WunderWunder._defaultMenuPanel,{restore:true}) 
    }, WunderWunder.MENU_TIMEOUT);
  },
  clearMenuPanelTimeout: function(){
    if(this._menuPanelTimeout) {
      clearTimeout(this._menuPanelTimeout);
      this._menuPanelTimeout = null
    }
  },
  getTerm: function(term) {
    return WunderWunder._menu.term[term] || '!('+term+')';
  },
  scaleLayout: function(delta) {
    var curWidth = $('wrapper').offsetWidth;
    var pct      = ((curWidth+delta)/curWidth)*100;
    var options  = arguments[1] || {};
    if($('menu-right')) Object.extend(options,{
      afterUpdate: function(){
        $('menu-right').setStyle({
          right: null,
          left: parseInt($('wrapper').style.width)-236-65+'px'
        });
      }
    });
    new Effect.Parallel([
      new Effect.Scale('wrapper',pct,{scaleY:false,scaleContent:false,sync:true}),
      new Effect.Scale('layout',pct,{scaleY:false,scaleContent:false,sync:true})
    ],options);
  },
  setMenu: function(menu){
    WunderWunder._menu = menu;
  },
  parseMenu: function(){
    function _renderItem(item){
      var cl = (WunderWunder.id == item.id) ? ['active'] : [];
      if(item.klass) cl.push(item.klass);
      var c = '';
      var url = "http://" + location.host + item.url;
      if(item.secure) {
        url = "https://" + location.host + item.url;
      } 
      if(cl.length>0) c = ' class="'+cl.join(' ')+'"';
      WunderWunder._menuPanel += '<p><a href="'+url+'"'+c+'>'+item.name.escapeHTML().gsub(/\s/,'&nbsp;')+'</a></p>';
    }
    function _renderSubmenuItem(item){
      if(WunderWunder.id == item.id){
        WunderWunder._activeSubMenu = currentSubmenu;
      }
      var cl = (WunderWunder.id == item.id) ? ['active'] : [];
      if(item.klass) cl.push(item.klass);
      var c = '';
      if(cl.length>0) c = ' class="'+cl.join(' ')+'"';
      
      WunderWunder._subMenus[currentSubmenu] += '<p><a href="http://' + location.host + item.url+'"'+c+'>'+item.name.escapeHTML().gsub(/\s/,'&nbsp;')+'</a></p>';
    }
    function _renderSubmenu(submenu){
      currentSubmenu++;
      WunderWunder._subMenus.push('');
      
      var cl = ['submenu'];
      if(submenu.klass) cl.push(submenu.klass);
      
      WunderWunder._menuPanel += '<p><a class="'+cl.join(' ')+'" href="#" onclick="WunderWunder.openSubmenu('+currentSubmenu+'); return false">'+submenu.name.escapeHTML().gsub(/\s/,'&nbsp;')+'</a></p>';
      if(submenu.item) submenu.item.each(_renderSubmenuItem);
    }
    function _renderList(list){
      if(list.item) list.item.each(_renderItem);
      if(list.submenu) list.submenu.each(_renderSubmenu);
    }
    function _renderBlock(block){
      if(block.item) block.item.each(_renderItem);
      if(block.list) block.list.each(_renderList);
      WunderWunder._menuPanel += '<br/>';
    }
    var currentSubmenu = -1;
    
    WunderWunder._menuPanel = '';
    WunderWunder._subMenus  = [];
    WunderWunder._menu.block.each(_renderBlock);
    
    ['menu-left','menu-right'].each(function(side){
      if($(side+'-main')) $(side+'-main').update(WunderWunder._menuPanel);
    });
  },
  _renderSubMenu: function(submenu){
    if($('menu-left-submenu')) $('menu-left-submenu').update(WunderWunder._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="WunderWunder.showMenuPanel(WunderWunder.MAIN_MENU);return false">' +
      WunderWunder._menu.term.main +
      '</a></p>'
    );
    if($('menu-right-submenu')) $('menu-right-submenu').update(WunderWunder._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="WunderWunder.showMenuPanel(WunderWunder.MAIN_MENU);return false">' +
      WunderWunder._menu.term.main +
      '</a></p>'
    );
  },
  showMenuPanel: function(panel){
    if(WunderWunder._animation.menu) return;
    
    var options =  Object.extend({
      animation: true,
      restore:   false
    }, arguments[1] || {});
    
    if(options.restore && WunderWunder._activeSubMenu>-1){
      WunderWunder._renderSubMenu(WunderWunder._activeSubMenu);
    }
    
    if(!options.animation){
      if($('menu-left-scroll')) {
        $('menu-left-scroll').style.left = -$('menu-left').offsetWidth * panel + 'px';
        $('menu-left-background').style.left = -$('menu-left').offsetWidth * panel + 'px';
      }
      if($('menu-right-scroll')) {
        $('menu-right-scroll').style.left = -$('menu-right').offsetWidth * (2-panel) + 'px';
        $('menu-right-background').style.left = -$('menu-right').offsetWidth * (2-panel) + 'px';
      }
      WunderWunder.currentMenuPanel = panel;
      return;
    }
    
    WunderWunder._animation.menu = true;
    if($('menu-left-scroll')) new Effect.Move('menu-left-scroll',{ 
      x: -(panel-WunderWunder.currentMenuPanel)*$('menu-left').offsetWidth,
      transition: WunderWunder.cubic, 
      duration: 0.6,
      afterUpdate: function(){
        $('menu-left-background').style.left = $('menu-left-scroll').style.left;
      },
      afterFinish: function(){
        WunderWunder.currentMenuPanel = panel;
        WunderWunder._animation.menu = false;
      }
    });
    if($('menu-right-scroll')) new Effect.Move('menu-right-scroll',{ 
      x: (panel-WunderWunder.currentMenuPanel)*$('menu-right').offsetWidth,
      transition: WunderWunder.cubic, 
      duration: 0.6,
      afterUpdate: function(){
        $('menu-right-background').style.left = $('menu-right-scroll').style.left;
      },
      afterFinish: function(){
        WunderWunder.currentMenuPanel = panel;
        WunderWunder._animation.menu = false;
      }
    });
  },
  openSubmenu: function(submenu){
    if(WunderWunder._animation.menu) return;
    if($('menu-left-submenu')) $('menu-left-submenu').update(WunderWunder._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="WunderWunder.showMenuPanel(WunderWunder.MAIN_MENU);return false">' +
      WunderWunder._menu.term.main +
      '</a></p>'
    );
    if($('menu-right-submenu')) $('menu-right-submenu').update(WunderWunder._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="WunderWunder.showMenuPanel(WunderWunder.MAIN_MENU);return false">' +
      WunderWunder._menu.term.main +
      '</a></p>'
    );
    
    WunderWunder.showMenuPanel(WunderWunder.SUB_MENU,arguments[1]||null);
  }
}

if(typeof localizedMenu != "undefined") document.write('<script type="text/javascript" src="'+localizedMenu+'"></script>');