
  var to = undefined;
  
    function showTooltip(e, element, modName)
    {
      var dimensions = $('main').getDimensions();
      var nutzBreite = dimensions.width;
      var nutzHoehe = dimensions.height;
      
      // linken Rand rausrechnen, das ist etwa Bildschirmbreite minus Breite von Main
      var ancList = $('main').ancestors();
      var theBody = ancList[0];

      dimensions = theBody.getDimensions();
      var bodyBreite = dimensions.width;
      var bodyHoehe = dimensions.height;
      
      var korrekturW = Math.round((bodyBreite - nutzBreite) / 2) + 4;
      var korrekturH = Math.round((bodyHoehe - nutzHoehe) / 2) + 4;
      
      // scrolling rausrechnen
      if ( navigator.userAgent.indexOf('MSIE') >= 0 )
      {
        var scrolledX = document.documentElement.scrollLeft;
        var scrolledY = document.documentElement.scrollTop;
      } else
      {
        var scrolledX = window.pageXOffset;
        var scrolledY = window.pageYOffset;
      }
      
      var ttLeft = e.clientX - korrekturW + 16 + scrolledX;
      var ttTop = e.clientY - korrekturH + 8 + scrolledY;
      
      dimensions = $('avsTooltip').getDimensions();
      var ttBreite = dimensions.width;
      // das funzt nicht, weil zu diesem Zeitpunkt der neue
      // Inhalt noch nicht geladen ist. Wir nehmen eine feste
      // Standard-Höhe, die einem 4-zeiligen Text entspricht
      //var ttHoehe = dimensions.height;
      var ttHoehe = 81;
      
      var rechterRand = ttLeft + ttBreite + 2;
      while ( rechterRand > nutzBreite )
      {
        ttLeft -= 4;
        rechterRand = ttLeft + ttBreite + 2;
      }
      
      var obererRand = ttTop + ttHoehe + 2;
      while ( obererRand > nutzHoehe )
      {
        ttTop -= 4;
        obererRand = ttTop + ttHoehe + 2;
      }
      
      $('ttText').update('...');
      $('avsTooltip').setStyle({'top':ttTop + 'px'});
      $('avsTooltip').setStyle({'left':ttLeft + 'px'});
      
      $('ttText').update('...');
      new Ajax.Request('content_mods/' + modName + '_tt.php',
      {
      method      : 'get',
      onFailure   : function(resp)
                    {
                      //alert('Fehler: ' + resp.responseText);
                    },
      onException : function(resp)
                    {
                      //alert('Ausnahme: ' + resp.responseText);
                    },
      onSuccess   : function(resp)
                    {
                      $('ttText').update(resp.responseText);
                      $('avsTooltip').show();
                      clearTimeout(to);
                      to = setTimeout('hideTooltip()', 8000);
                      // Einblend-Effekt geht nicht, weil sonst mouse-Events sich
                      // unvorhersehbar überlagern
                      /*
                      if ( navigator.userAgent.toLowerCase().indexOf('safari') >= 0 || navigator.userAgent.toLowerCase().indexOf('opera') >= 0 )
                      {
                        
                      } else
                      {
                        var eff = Effect.Appear($('avsTooltip'), {duration:0.25});
                      }
                      */
                    }
      }
      );
      
    }
    
    function hideTooltip()
    {
      $('avsTooltip').hide();
      // Einblend-Effekt geht nicht, weil sonst mouse-Events sich
      // unvorhersehbar überlagern
      /*
      if ( navigator.userAgent.toLowerCase().indexOf('safari') >= 0 )
      {
        $('avsTooltip').hide();
      } else
      {
        var eff = Effect.Fade($('avsTooltip'), {duration:0.2}); 
      }
      */
         
    }
