var turflonSubNavi = new Class({

  initialize: function(btn, subNavi)
  {
    this.btn = $(btn);
    this.subNavi = $(subNavi);

    this.btn.addEvent('mouseover', this.btnMouseOver.bind(this));
  },

  btnMouseOver: function(e)
  {
    new Event(e).stop();
    this.subNavi.setStyle('display', 'block');

    $$('body')[0].addEvent('mousemove', this.handleExpandedSubmenu.bind(this));
  },

  handleExpandedSubmenu: function(e)
  {
    var e = new Event(e);

    this.subNavi.setStyles({'top': this.btn.getTop(), 'left': this.btn.getLeft() - 1});

    var min_y = this.subNavi.getTop();
    var min_x = this.subNavi.getLeft();
    var max_y = min_y + this.subNavi.getSize().size.y;
    var max_x = min_x + this.subNavi.getSize().size.x;

    if(e.client.x < min_x || e.client.x > max_x || e.client.y < min_y || e.client.y > max_y)
    {
      this.subNavi.setStyle('display', 'none');
      window.removeEvent('mousemove');
    }

    e.stop();
  }

});

window.addEvent
(
  'domready',
  function()
  {
    $$('.without_subnavi').each
    (
      function(item)
      {
        var img = item.getFirst();
        img.addEvents(
          {
            'mouseover': function(e)
            {
              var e = new Event(e).stop();
              this.src_old = this.src;
              if(!this.src.match(/_h.gif/))
              {
                this.src = this.src_old.replace(/.gif/, '_h.gif');
              }
            },
            'mouseout': function(e)
            {
              var e = new Event(e).stop();
              this.src = this.src_old;
            }
          }
        );
      }
    );
    new turflonSubNavi('service', 'sub_nav_service');
    new turflonSubNavi('unternehmen', 'sub_nav_unternehmen');
    new turflonSubNavi('restaurant', 'sub_nav_restaurant');
  }
);