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

var Womma = {
  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-504)/2)+(Womma._smallScreen ? 400 : 520)+'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(){
    Womma.redraw = function(){
      var scrollLeft = Position.scrollX();
      var height     = Position.getPageSize().window.height;
      
      if($('layout').offsetLeft > 0) $('logo').setStyle({
        marginLeft: $('layout').offsetLeft+'px'
      });
      
      $('logo').setStyle({
        top:  ((Position.getPageSize().window.height-504)/2)+(Womma._smallScreen ? 400 : 520)+'px',
        left: (Position.scrollX()+36)+'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)+(Womma._smallScreen ? 400 : 520)+'px',
        left: (Position.scrollX()+36)+'px'
      });
    });
  },
  initialize: function(id){
    Womma.id     = id;
    Womma.locale = 'de';
    Womma.parseMenu();
    if(Engine.isMSIE) Womma.enableIESupport();
    Event.observe(window,'resize',Womma.redraw);
    Womma.redraw();
    
    if(arguments[1]) {
      this._defaultMenuPanel = arguments[1];
      if(Womma._activeSubMenu>-1 && this._defaultMenuPanel==this.SUB_MENU) {
        Womma.openSubmenu(Womma._activeSubMenu,{animation:false});
      } else {
        this.showMenuPanel(arguments[1],{animation:false});
      }
    }
 
    if(Womma._activeSubMenu>-1) Womma._renderSubMenu(Womma._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){
        Womma.spacerEvent ? Womma.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){
    Womma.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(){ 
      Womma.showMenuPanel(Womma._defaultMenuPanel,{restore:true}) 
    }, Womma.MENU_TIMEOUT);
  },
  clearMenuPanelTimeout: function(){
    if(this._menuPanelTimeout) {
      clearTimeout(this._menuPanelTimeout);
      this._menuPanelTimeout = null
    }
  },
  getTerm: function(term) {
    return Womma._menu.term[term] || '!('+term+')';
  },
  getScaledLayoutFactor: function(delta) {
    var curWidth = $('wrapper').offsetWidth;
    return ((curWidth+delta)/curWidth)*100;
  },
  scaleLayout: function(delta) {
    var pct      = this.getScaledLayoutFactor(delta);
    var options  = arguments[1] || {};
    return [
      new Effect.Scale('wrapper',pct, {scaleY:false,scaleContent:false,sync:true}),
      new Effect.Scale('layout', pct, {scaleY:false,scaleContent:false,sync:true})
    ]
  },
  setMenu: function(menu){
    Womma._menu = menu;
  },
  parseMenu: function(){
    function _renderItem(item){
      var cl = (Womma.id == item.id) ? ['active'] : [];
      if(item.klass) cl.push(item.klass);
      var c = '';
      var url = "http://" + location.host + item.url;
      if(cl.length>0) c = ' class="'+cl.join(' ')+'"';
      Womma._menuPanel += '<p><a href="'+url+'"'+c+'>'+item.name.escapeHTML().gsub(/\n/,'<br/>').gsub(/\s/,'&nbsp;')+'</a></p>';
    }
    function _renderSubmenuItem(item){
      if(Womma.id == item.id){
        Womma._activeSubMenu = currentSubmenu;
      }
      var cl = (Womma.id == item.id) ? ['active'] : [];
      if(item.klass) cl.push(item.klass);
      var c = '';
      if(cl.length>0) c = ' class="'+cl.join(' ')+'"';
      
      Womma._subMenus[currentSubmenu] += '<p><a href="http://' + location.host + item.url+'"'+c+'>'+item.name.escapeHTML().gsub(/\n/,'<br/>').gsub(/\s/,'&nbsp;')+'</a></p>';
    }
    function _renderSubmenu(submenu){
      currentSubmenu++;
      Womma._subMenus.push('');
      
      var cl = ['submenu'];
      if(submenu.klass) cl.push(submenu.klass);
      
      Womma._menuPanel += '<p><a class="'+cl.join(' ')+'" href="#" onclick="Womma.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);
      Womma._menuPanel += '<br/>';
    }
    var currentSubmenu = -1;
    
    Womma._menuPanel = '';
    Womma._subMenus  = [];
    Womma._menu.block.each(_renderBlock);
    
    ['menu-left','menu-right'].each(function(side){
      if($(side+'-main')) $(side+'-main').update(Womma._menuPanel);
    });
  },
  _renderSubMenu: function(submenu){
    if($('menu-left-submenu')) $('menu-left-submenu').update(Womma._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="Womma.showMenuPanel(Womma.MAIN_MENU);return false">' +
      Womma._menu.term.main +
      '</a></p>'
    );
    if($('menu-right-submenu')) $('menu-right-submenu').update(Womma._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="Womma.showMenuPanel(Womma.MAIN_MENU);return false">' +
      Womma._menu.term.main +
      '</a></p>'
    );
  },
  showMenuPanel: function(panel){
    if(Womma._animation.menu) return;
    
    var options =  Object.extend({
      animation: true,
      restore:   false
    }, arguments[1] || {});
    
    if(options.restore && Womma._activeSubMenu>-1){
      Womma._renderSubMenu(Womma._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';
      }
      Womma.currentMenuPanel = panel;
      return;
    }
    
    Womma._animation.menu = true;
    if($('menu-left-scroll')) new Effect.Move('menu-left-scroll',{ 
      x: -(panel-Womma.currentMenuPanel)*$('menu-left').offsetWidth,
      transition: Womma.cubic, 
      duration: 0.6,
      afterUpdate: function(){
        $('menu-left-background').style.left = $('menu-left-scroll').style.left;
      },
      afterFinish: function(){
        Womma.currentMenuPanel = panel;
        Womma._animation.menu = false;
      }
    });
    if($('menu-right-scroll')) new Effect.Move('menu-right-scroll',{ 
      x: (panel-Womma.currentMenuPanel)*$('menu-right').offsetWidth,
      transition: Womma.cubic, 
      duration: 0.6,
      afterUpdate: function(){
        $('menu-right-background').style.left = $('menu-right-scroll').style.left;
      },
      afterFinish: function(){
        Womma.currentMenuPanel = panel;
        Womma._animation.menu = false;
      }
    });
  },
  openSubmenu: function(submenu){
    if(Womma._animation.menu) return;
    if($('menu-left-submenu')) $('menu-left-submenu').update(Womma._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="Womma.showMenuPanel(Womma.MAIN_MENU);return false">' +
      Womma._menu.term.main +
      '</a></p>'
    );
    if($('menu-right-submenu')) $('menu-right-submenu').update(Womma._subMenus[submenu]+
      '<p class="level-up"><a href="#" onclick="Womma.showMenuPanel(Womma.MAIN_MENU);return false">' +
      Womma._menu.term.main +
      '</a></p>'
    );
    
    Womma.showMenuPanel(Womma.SUB_MENU,arguments[1]||null);
  },
  getPageFragmentIdentifier: function(){
    return location.href.split('#').inGroupsOf(2).flatten()[1];
  },
  setPageFragmentIdentifier: function(id){
    var url = location.href.split('#');
    location.href = url[0] + '#' + id;
  },  
  openPopup: function(url) {
    var w = window.open(url,'Womma','height=450,width=395,directories=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=no');
    w.focus();
  },
  _scrollPanels: {},
  scrollPanel: function(panel, handle, track) {
    if(panel.scrollHeight > 372) {
      panel.addClassName('with-scrollbar');
      $(track).style.display = 'block';
      this._scrollPanels[panel] = new Control.Slider( handle, track, { 
        axis: 'vertical',
        onSlide:function(v) { 
          var height = panel.scrollHeight;
          panel.scrollTop = (v*(height-372));
        },
        onChange:function(v) {
          var height = panel.scrollHeight;
          panel.scrollTop = (v*(height-372));
        }
      });
      wheelCallback = function(delta){
        var factor = Engine.isKHTML ? 0.03 : 0.07;
        Womma._scrollPanels[panel].setValueBy(delta > 0 ? -factor : factor);
      }
    }
  }
}

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