function ZurueckOut()
  {
  // aktualisieren der Seitenanzeige
  var Seite = document.getElementById("seite");
  while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);
  Seite.appendChild(document.createTextNode((__Seite * (__Spalten * __Zeilen) + 1) + " - " + (((__Seite + 1) * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Seite + 1) * __Spalten * __Zeilen)));
  }

function ZurueckOver()
  {
  // aktualisieren der Seitenanzeige
  var Seite = document.getElementById("seite");
  while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);
  Seite.appendChild(document.createTextNode(((__Aktuell - 1) * (__Spalten * __Zeilen) + 1) + " - " + ((__Aktuell * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Aktuell) * __Spalten * __Zeilen)));
  }

function Zurueck()
  {
  // anpassen des Kartenindex
  __LetzteKarte = __Aktuell * __Zeilen * __Spalten - 1;

  // prüfen welche Seite zur Auswahl angezeigt werden soll
  __Seite = __Aktuell - 1;

  // Versatz setzen
  __Versatz = (__Seite > 0) ? -1 : 0;

  // aktualisieren der Kartenanzeige
  ErmittleKarten();
  }

function ZurueckWahl()
  {
  // prüfen welche Seite zur Auswahl angezeigt werden soll
  __Seite = __Seite > 0 ? __Seite - 1 : 0;

  // prüfen ob die Taste gesperrt werden soll
  var Taste = document.getElementById("seite_zurueck_wahl");
  if (__Seite > 0) SetzeEigenschaften(Taste, {"onclick" : ZurueckWahl, "className" : "taste", "title" : "ohne Aktualisierung eine Seite zur\u00fcck bl\u00e4ttern"});
  else SetzeEigenschaften(Taste, {"onclick" : null, "className" : "taste aus", "title" : ""});

  // freigeben der Weiter-Taste
  SetzeEigenschaften(document.getElementById("seite_weiter_wahl"), {"onclick" : WeiterWahl, "className" : "taste", "title" : "ohne Aktualisierung eine Seite weiter bl\u00e4ttern"});

  // aktualisieren der Seitenanzeige
  var Seite = document.getElementById("seite");
  while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);
  Seite.appendChild(document.createTextNode((__Seite * (__Spalten * __Zeilen) + 1) + " - " + (((__Seite + 1) * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Seite + 1) * __Spalten * __Zeilen)));
  }

function Direkt()
  {
  // anpassen des Kartenindex
  __LetzteKarte = __Seite * __Zeilen * __Spalten;

  // Versatz setzen
  __Versatz = 0;

  // aktualisieren der Kartenanzeige
  ErmittleKarten();
  }

function WeiterWahl()
  {
  // prüfen welche Seite zur Auswahl angezeigt werden soll
  __Seite = __Seite < __Gesamt ? __Seite + 1 : __Gesamt;

  // prüfen ob die Taste gesperrt werden soll
  var Taste = document.getElementById("seite_weiter_wahl");
  if (__Seite < __Gesamt) SetzeEigenschaften(Taste, {"onclick" : WeiterWahl, "className" : "taste", "title" : "ohne Aktualisierung eine Seite weiter bl\u00e4ttern"});
  else SetzeEigenschaften(Taste, {"onclick" : null, "className" : "taste aus", "title" : ""});

  // freigeben der Zurück-Taste
  SetzeEigenschaften(document.getElementById("seite_zurueck_wahl"), {"onclick" : ZurueckWahl, "className" : "taste", "title" : "ohne Aktualisierung eine Seite zur\u00fcck bl\u00e4ttern"});

  // aktualisieren der Seitenanzeige
  var Seite = document.getElementById("seite");
  while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);
  Seite.appendChild(document.createTextNode((__Seite * (__Spalten * __Zeilen) + 1) + " - " + (((__Seite + 1) * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Seite + 1) * __Spalten * __Zeilen)));
  }

function WeiterOut()
  {
  // aktualisieren der Seitenanzeige
  var Seite = document.getElementById("seite");
  while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);
  Seite.appendChild(document.createTextNode((__Seite * (__Spalten * __Zeilen) + 1) + " - " + (((__Seite + 1) * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Seite + 1) * __Spalten * __Zeilen)));
  }

function WeiterOver()
  {
  // aktualisieren der Seitenanzeige
  var Seite = document.getElementById("seite");
  while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);
  Seite.appendChild(document.createTextNode(((__Aktuell + 1) * (__Spalten * __Zeilen) + 1) + " - " + (((__Aktuell + 2) * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Aktuell + 2) * __Spalten * __Zeilen)));
  }

function Weiter()
  {
  // anpassen des Kartenindex
  __LetzteKarte = (__Aktuell + 1) * __Zeilen * __Spalten;

  // prüfen welche Seite zur Auswahl angezeigt werden soll
  __Seite = __Aktuell + 1;

  // Versatz setzen
  __Versatz = (__Seite < __Gesamt) ? 1 : 0;

  // aktualisieren der Kartenanzeige
  ErmittleKarten();
  }

function ZeigeMarker(Code, Daten)
  {
  // prüfen ob ein Fehler aufgetreten ist
  if ((Code == 4) && (Daten.code == 0))
    {
    // prüfen ob eine angemeldete Sitzung vorliegt
    if (Daten.sitzung)
      {
      // ermitteln des Markers
      var Marker = document.getElementById(Daten.karte + "m");

      // Liste der Markerzuordnungen
      var MarkerFarben = parent.__MarkerFarben;

      // sicherstellen, dass eine gültige Markerfarbe vorliegt
      if (!MarkerFarben[Daten.marker]) Daten.marker = 0;

      // aktualisieren des Markers, wenn vorhanden
      if (Marker) SetzeEigenschaften(Marker, {"src" : "/grafik/marker_" + MarkerFarben[Daten.marker].sufix + ".gif", "title" : "Hier klicken um die Markierung der Visitenkarte zu \u00e4ndern..."});
      }
    else
      {
      // Sitzung löschen
      __Sitzung = null;
      __Karte = null;
      __NurFolgende = false;

      // Kartenliste aktualisieren
      ErmittleKarten();
      }
    }
  else if ((Code != 6) && (Code > 3))
    {
    // ausgeben der Fehlermeldung
    ZeigeFehler(Code, Daten);
    }
  }
  
function MarkerAuswahlAusblenden(Transparenz, ID)
  {
  // Timeout beenden
  window.clearTimeout(__Fades[ID]);
  __Fades[ID] = null;
  
  // prüfen ob die Auswahl noch abgeblendet werden muss
  if (Transparenz - 0.1 > 0)
    {
    // abblenden das Markierungsauswahl
    SetzeCSS(document.getElementById(ID + "ma"), {"opacity" : Transparenz - 0.1});
    
    // Timeout erneut starten
    __Fades[ID] = window.setTimeout("MarkerAuswahlAusblenden(" + (Transparenz - 0.1) + ", \"" + ID + "\")", 10);
    }
  else document.getElementById(ID + "ma").style.display = "none";
  }
  
function MarkerAuswahlOver()
  {
  // ermitteln der Karten-ID
  var ID = parseInt(this.id);
  
  // prüfen ob das Objekt ausgeblendet wird
  if (__Fades[ID] && (__Fades[ID] != null))
    {
    // Timeout beenden
    window.clearTimeout(__Fades[ID]);
    __Fades[ID] = null;
    }
  
  // einblenden des Auswahlfensters
  SetzeCSS(document.getElementById(ID + "ma"), {"display" : "block", "opacity" : 1});
  }

function MarkerAuswahlOut()
  {
  // ermitteln der Karten-ID
  var ID = parseInt(this.id);
  
  // ausblenden des Auswahlfensters
  __Fades[ID] = window.setTimeout("MarkerAuswahlAusblenden(1, \"" + ID + "\")", 10);
  }
  
function SetzeMarker()
  {
  // ermitteln der Karten-ID
  var ID = this.id.substr(0, this.id.indexOf("m"));
  
  // ausblenden des Auswahlfensters
  __Fades[ID] = window.setTimeout("MarkerAuswahlAusblenden(1, \"" + ID + "\")", 10);
  
  // ermitteln der Marker-ID
  var MarkerID = (this.id.indexOf("m") < this.id.length - 1) ? this.id.substr(this.id.indexOf("m") + 1, this.id.length - this.id.indexOf("m") - 1) : -1;

  // ermitteln der anzuzeigenden Visitenkarten
  var Anfrage = new Ajax("_index.php?aktion=markieren&markierung=" + MarkerID + "&karte=" + ID + ((__Sitzung == null) ? "" : "&sitzung=" + encodeURIComponent(__Sitzung)), null, ZeigeMarker);
  }
  
function EinblendenKarten()
  {
  // Anzahl der noch offenen Karten initialisieren
  var Anzahl = 0;
  
  // prüfen aller vorhandenen Karten ob sie geladen sind
  for (var Index in __KartenTransparenz.liste) if (__KartenTransparenz.liste[Index] != null)
    {
    // erhöhen der Anzahl noch offener Karten
    Anzahl++;
    
    // prüfen ob die Karte geladen ist
    if (((__KartenTransparenz.liste[Index].karte.nodeName.toLowerCase() == "img") && __KartenTransparenz.liste[Index].karte.complete) || ((__KartenTransparenz.liste[Index].karte.nodeName.toLowerCase() == "div") && __KartenTransparenz.liste[Index].karte.firstChild.complete))
      {
      // nächste Transparenz setzen
      SetzeCSS(__KartenTransparenz.liste[Index].karte, {"opacity" : __KartenTransparenz.liste[Index].transparenz + 0.1});
      if (__KartenTransparenz.liste[Index].marker != null) SetzeCSS(__KartenTransparenz.liste[Index].marker, {"opacity" : __KartenTransparenz.liste[Index].transparenz + 0.1});
      
      // prüfen ob die Transparenz voll wäre
      if (__KartenTransparenz.liste[Index].transparenz >= 1)
        {
        // Anzahl der noch offenen Karten wieder um eins verringern
        Anzahl--;
        
        // Karte aus der Liste entfernen
        __KartenTransparenz.liste[Index] = null;
        }
      else __KartenTransparenz.liste[Index].transparenz += 0.1;
      }
    }
    
  // wenn alle Karten angezeigt werden Interval beenden
  if (Anzahl == 0) window.clearInterval(__KartenTransparenz.interval);
  }

function VerteileKarten(Verbergen)
  {
  // ermitteln der Visitenkartenanzeige
  var Container = document.getElementById("container");
  
  // reinitialisieren der Transparenzliste der Karten
  if (__KartenTransparenz.interval != null) window.clearInterval(__KartenTransparenz.interval);
  __KartenTransparenz = {"interval" : null, "liste" : new Array()};

  // neu verteilen der Visitenkarten
  for (var Zeile = 0; Zeile < __Zeilen; Zeile++)
    {
    for (var Spalte = 0; Spalte < __Spalten; Spalte++) if ((Zeile * __Spalten + Spalte) * ((__Sitzung == null) ? 1 : 3) < Container.childNodes.length)
      {
      // ermitteln der Visitenkarte
      var Karte = Container.childNodes[(Zeile * __Spalten + Spalte) * ((__Sitzung == null) ? 1 : 3)];
      
      // ermitteln der Kartenverschiebung
      var Left = Math.floor((160 - parseInt(Karte.style.width)) / 2);
      var Top = Math.floor((160 - parseInt(Karte.style.height)) / 2);

      // neu positionieren der Visitenkarte
      Karte.style.left = Math.floor(Spalte * (160 + (__Breite - __Spalten * 160) / ((__Spalten > 1) ? __Spalten - 1 : 1))) + Left;
      Karte.style.top = Math.floor(Zeile * (160 + (__Hoehe - __Zeilen * 160) / (__Zeilen + 1)) + (__Hoehe - __Zeilen * 160) / (__Zeilen + 1)) + Top;

      // initialisieren der Kartentransparenz
      __KartenTransparenz.liste[Zeile * __Spalten + Spalte] = {"karte" : Karte, "marker" : null, "transparenz" : 0};      
      
      // prüfen ob Marker vorhanden sind
      if (__Sitzung != null)
        {
        // ermitteln der Markierung
        var Marker = Container.childNodes[(Zeile * __Spalten + Spalte) * 3 + 1];
        
        // Marker in die Transparenzliste aufnehmen
        __KartenTransparenz.liste[Zeile * __Spalten + Spalte].marker = Marker;

        // neu positionieren der Visitenkarte
        Marker.style.left = Math.floor(Spalte * (160 + (__Breite - __Spalten * 160) / ((__Spalten > 1) ? __Spalten - 1 : 1)) + 130);
        Marker.style.top = Math.floor(Zeile * (160 + (__Hoehe - __Zeilen * 160) / (__Zeilen + 1)) + (__Hoehe - __Zeilen * 160) / (__Zeilen + 1));

        // ermitteln der Markierungsauswahl
        var MarkerAuswahl = Container.childNodes[(Zeile * __Spalten + Spalte) * 3 + 2];
        
        // neu positionieren der Visitenkarte
        MarkerAuswahl.style.left = Math.floor(Spalte * (160 + (__Breite - __Spalten * 160) / ((__Spalten > 1) ? __Spalten - 1 : 1)) + 5);
        MarkerAuswahl.style.top = Math.floor(Zeile * (160 + (__Hoehe - __Zeilen * 160) / (__Zeilen + 1)) + (__Hoehe - __Zeilen * 160) / (__Zeilen + 1) + 30);
        }
      }
    }

  // einblenden der Visitenkartenanzeige
  Container.style.display = "block";
  
  // einblenden der Karten initialisieren
  if (Verbergen) __KartenTransparenz.interval = window.setInterval(EinblendenKarten, 50);
  }

function ZeigeKarte()
  {
  // ermitteln der Karten-ID
  var ID = parseInt(this.id.substr(0, this.id.indexOf(",")));

  // ermitteln des Kartenindex
  __LetzteKarte = parseInt(this.id.substr(this.id.indexOf(",") + 1, this.id.length - this.id.indexOf(","))) + __Aktuell * __Zeilen * __Spalten;

  // anzeigen des Dialogs
  __Dialog.oeffnen("karten.html?id=" + ID);
  }

function ZeigeAnmeldung()
  {
  // Anmeldefenster öffnen
  __Dialog.oeffnen("anmelden.html");
  }

function ZeigeIntern()
  {
  // interne Anzeige öffnen, ohne Visitenkarte
  __Dialog.oeffnen("i_menue.html" + ((top.__Sitzung && (top.__Sitzung != null)) ? "?sitzung=" + top.__Sitzung : ""));
  }

function ZeigeAnzeige()
  {
  // Anmeldefenster öffnen
  __Dialog.oeffnen("anzeige.html");
  }
  
function ZeigeKarten(Code, Daten)
  {
  // prüfen ob ein Fehler aufgetreten ist
  if ((Code == 4) && (Daten.code == 0))
    {
    // ermitteln der Anmelde- und Registrierentaste
    var Anmeldung = document.getElementById("anmeldung");
    var Registrierung = document.getElementById("registrierung");
    
    // leeren der Elemente
    LeereElement(Anmeldung);
    LeereElement(Registrierung);
    
    // übernehmen der Markierungsliste, wenn die Seite zum ersten Mal aufgerufen wird
    if (__NurFolgende == -1)
      {
      // initialisieren der Markierungsliste
      __MarkerFarben = {};
      __MarkerIndex = [];
      
      // übernehmen der Markierungsliste
      for (Index in Daten.marker)
        {
        // Eintrag übernehmen
        __MarkerFarben[Daten.marker[Index].id] = Daten.marker[Index];
        
        // Index erzeugen
        __MarkerIndex.push(Daten.marker[Index].id);
        
        // Markierungsauswahl zurücksetzen
        __NurFolgende = 0;
        }
      }
      
    // prüfen der anzuzeigenden Filter
    SetzeTextElement(document.getElementById("filter"), (__NurFolgende == 0) ? "alles anzeigen" : "nur folgende...");
    
    // prüfen ob eine angemeldete Sitzung vorliegt
    if (Daten.sitzung)
      {
      // setzen des Statustextes
      document.getElementById("status").firstChild.nodeValue = "angemeldet";

      // erzeugen der Tastentexte
      var AnmeldungText = ErzeugeElement("p", Anmeldung, null, null);
      AnmeldungText.appendChild(document.createTextNode("Abmelden"));
      var RegistrierungText = ErzeugeElement("p", Registrierung, null, null);
      RegistrierungText.appendChild(document.createTextNode("Mitgliederbereich"));

      // neue Klick-Ereignise setzen
      SetzeEigenschaften(Anmeldung, {"onclick" : Abmelden});
      SetzeEigenschaften(Registrierung, {"onclick" : ZeigeIntern});
      }
    else
      {
      // Sitzung löschen
      __Sitzung = null;
      __Karte = null;
      __NurFolgende = false;

      // setzen des Statustextes
      document.getElementById("status").firstChild.nodeValue = "nicht angemeldet";

      // erzeugen der Tastentexte
      var AnmeldungText = ErzeugeElement("p", Anmeldung, null, null);
      AnmeldungText.appendChild(document.createTextNode("Anmelden"));
      var RegistrierungText = ErzeugeElement("p", Registrierung, null, null);
      RegistrierungText.appendChild(document.createTextNode("Registrieren"));

      // neue Klick-Ereignise setzen
      SetzeEigenschaften(Anmeldung, {"onclick" : ZeigeAnmeldung});
      SetzeEigenschaften(Registrierung, {"onclick" : ZeigeRegistrierung});
      }

    // ermitteln der Listendaten
    var ErsteKarte = document.getElementById("erste");
    var LetzteKarte = document.getElementById("letzte");
    var AnzahlKarten = document.getElementById("gesamt");
    var Seite = document.getElementById("seite");

    // leeren der Listedaten
    while (ErsteKarte.firstChild != null) ErsteKarte.removeChild(ErsteKarte.firstChild);
    while (LetzteKarte.firstChild != null) LetzteKarte.removeChild(LetzteKarte.firstChild);
    while (AnzahlKarten.firstChild != null) AnzahlKarten.removeChild(AnzahlKarten.firstChild);
    while (Seite.firstChild != null) Seite.removeChild(Seite.firstChild);

    // übernehmen der Kartenanzahl
    __Anzahl = Daten.anzahl;

    // hinzufügen der neuen Texte
    ErsteKarte.appendChild(document.createTextNode((parseInt(Daten.erster) + 1 > __Anzahl) ? __Anzahl : parseInt(Daten.erster) + 1));
    LetzteKarte.appendChild(document.createTextNode((parseInt(Daten.erster) + __Spalten * __Zeilen > __Anzahl) ? __Anzahl : parseInt(Daten.erster) + __Spalten * __Zeilen));
    AnzahlKarten.appendChild(document.createTextNode(__Anzahl));
    Seite.appendChild(document.createTextNode((((__Seite + __Versatz) * (__Spalten * __Zeilen) + 1 > __Anzahl) ? __Anzahl : (__Seite + __Versatz) * (__Spalten * __Zeilen) + 1) + " - " + (((__Seite + __Versatz + 1) * __Spalten * __Zeilen > __Anzahl) ? __Anzahl : (__Seite + __Versatz + 1) * __Spalten * __Zeilen)));

    // übernehmen der aktuellen und der letzten Seite
    __Aktuell = Math.floor(Daten.erster / (__Zeilen * __Spalten));
    __Gesamt = Math.floor((__Anzahl - 1) / (__Zeilen * __Spalten));

    // ermitteln der Visitenkartenanzeige
    var Container = document.getElementById("container");

    // löschen aller vorhandenen Visitenkarten
    while (Container.firstChild != null) Container.removeChild(Container.firstChild);

    // hinzufügen der Visitenkarten
    for (var Zeile = 0; Zeile < __Zeilen; Zeile++)
      {
      for (var Spalte = 0; Spalte < __Spalten; Spalte++) if (Zeile * __Spalten + Spalte < Daten.karten.length)
        {
        // ermitteln der Karte
        var Karte = Daten.karten[Zeile * __Spalten + Spalte];
        
        // prüfen ob neues oder altes Kartenkonzept vorliegt und entsprechend die Visitenkarte hinzufügen
        if (Karte.typ == "alt") ErzeugeElement("img", Container, {"className" : "karte", "id" : Karte.id + "," + (Zeile * __Spalten + Spalte), "onclick" : ZeigeKarte, "src" : "/thumbs/" + Karte.id + ".jpg", "title" : "Hier klicken um Details anzuzeigen..."}, {"opacity" : 0, "height" : 160, "width" : 160});
        else
          {
          // Div-Container erzeugen
          var Div = ErzeugeElement("div", Container, {"className" : "karte", "id" : Karte.id + "," + (Zeile * __Spalten + Spalte), "onclick" : ZeigeKarte, "title" : "Hier klicken um Details anzuzeigen..."}, {"height" : Karte.hoehe + 2, "opacity" : 0, "width" : Karte.breite + 2});

          // eigentliche Visitenkarte erzeugen
          ErzeugeElement("img", Div, {"id" : Karte.id + "," + (Zeile * __Spalten + Spalte), "onclick" : ZeigeKarte, "src" : "/thumbs/" + Karte.id + ".jpg", "title" : "Hier klicken um Details anzuzeigen..."}, null);
          }

        // prüfen ob Marker hinzugefügt werden sollen
        if (parent.__Sitzung != null)
          {
          // Liste der Markerzuordnungen
          var MarkerFarben = parent.__MarkerFarben;

          // sicherstellen, dass eine gültige Markerfarbe vorliegt
          if (!MarkerFarben[Karte.marker]) Karte.marker = 0;

          // erzeugen des Markers
          ErzeugeElement("img", Container, {"className" : "marker", "id" : Karte.id + "m", "onclick" : MarkerAuswahlOver, "onmouseout" : MarkerAuswahlOut, "src" : "/grafik/marker_" + MarkerFarben[Karte.marker].sufix + ".gif"}, {"opacity" : 0});
          
          // erzeugen des Containers der Markerauswahl
          var MarkerAuswahl = ErzeugeElement("div", Container, {"className" : "auswahl", "id" : Karte.id + "ma", "onmouseout" : MarkerAuswahlOut, "onmouseover" : MarkerAuswahlOver}, null);
          
          // erzeugen der Markerauswahl
          for (var Index in MarkerFarben)
            {
            // erzeugen des Platzhalters
            ErzeugeElement("img", MarkerAuswahl, {"className" : "platzhalter", "src" : "/grafik/platzhalter.gif"}, null);
            
            // Absatz erzeugen
            var Absatz = ErzeugeElement("div", MarkerAuswahl, {"className" : "taste", "id" : Karte.id + "m" + Index, "onclick" : SetzeMarker}, {"opacity" : 0.75, "width" : 150});
            
            // ermitteln der Benennung
            var Name = (Daten.benennung && Daten.benennung[Index]) ? Daten.benennung[Index] : MarkerFarben[Index].name;
            
            // Taste erzeugen
            SetzeTextElement(ErzeugeElement("p", Absatz, null, {"background" : MarkerFarben[Index].flaeche, "border" : "1px solid " + MarkerFarben[Index].rahmen, "color" : MarkerFarben[Index].schrift}), Name);
            }
          }
        }
      }

    // ermitteln der Tasten zum blättern der Seiten
    var SeiteZurueck = document.getElementById("seite_zurueck");
    var SeiteZurueckWahl = document.getElementById("seite_zurueck_wahl");
    var SeiteDirekt = document.getElementById("seite_direkt");
    var SeiteWeiterWahl = document.getElementById("seite_weiter_wahl");
    var SeiteWeiter = document.getElementById("seite_weiter");

    // prüfen welche der Tasten aktiviert werden sollen
    if (__Aktuell > 0) SetzeEigenschaften(SeiteZurueck, {"onclick" : Zurueck, "onmouseover" : ZurueckOver, "onmouseout" : ZurueckOut, "className" : "taste", "title" : "Eine Seite zur\u00fcck bl\u00e4ttern."});
    if (__Seite > 0) SetzeEigenschaften(SeiteZurueckWahl, {"onclick" : ZurueckWahl, "className" : "taste", "title" : "Ohne Aktualisierung eine Seite zur\u00fcck bl\u00e4ttern."});
    if ((__Aktuell > 0) || (__Aktuell < __Gesamt)) SetzeEigenschaften(SeiteDirekt, {"onclick" : Direkt, "className" : "taste", "title" : "Zu dieser Seite springen."});
    if (__Seite < __Gesamt) SetzeEigenschaften(SeiteWeiterWahl, {"onclick" : WeiterWahl, "className" : "taste", "title" : "Ohne Aktualisierung eine Seite weiter bl\u00e4ttern."});
    if (__Aktuell < __Gesamt) SetzeEigenschaften(SeiteWeiter, {"onclick" : Weiter, "onmouseover" : WeiterOver, "onmouseout" : WeiterOut, "className" : "taste", "title" : "Eine Seite weiter bl\u00e4ttern."});

    // anordnen der Visitenkarten
    VerteileKarten(true);
    }
  else if ((Code != 6) && (Code > 3))
    {
    // ausgeben der Fehlermeldung
    ZeigeFehler(Code, Daten);
    }
  }

function ErmittleKarten()
  {
  // ausblenden der Visitenkartenanzeige
  document.getElementById("container").style.display = "none";

  // ermitteln der Tasten zum blättern der Seiten
  var SeiteZurueck = document.getElementById("seite_zurueck");
  var SeiteZurueckWahl = document.getElementById("seite_zurueck_wahl");
  var SeiteDirekt = document.getElementById("seite_direkt");
  var SeiteWeiterWahl = document.getElementById("seite_weiter_wahl");
  var SeiteWeiter = document.getElementById("seite_weiter");

  // prüfen welche der Tasten aktiviert werden sollen
  SetzeEigenschaften(SeiteZurueck, {"onclick" : null, "onmouseover" : null, "onmouseout" : null, "className" : "taste aus", "title" : ""});
  SetzeEigenschaften(SeiteZurueckWahl, {"onclick" : null, "className" : "taste aus", "title" : ""});
  SetzeEigenschaften(SeiteDirekt, {"onclick" : null, "className" : "taste aus", "title" : ""});
  SetzeEigenschaften(SeiteWeiterWahl, {"onclick" : null, "className" : "taste aus", "title" : ""});
  SetzeEigenschaften(SeiteWeiter, {"onclick" : null, "onmouseover" : null, "onmouseout" : null, "className" : "taste aus", "title" : ""});

  // prüfen ob noch eine alte Anfrage vorliegt
  if (__Anfrage != null) __Anfrage.abort();

  // ermitteln der anzuzeigenden Visitenkarten
  __Anfrage = new Ajax("_index.php?aktion=karten&anzahl=" + (__Spalten * __Zeilen) + "&index=" + __LetzteKarte + ((__Sitzung == null) ? "" : "&sitzung=" + encodeURIComponent(__Sitzung)) + ((__Sitzung != null) ? "&eigene=" + __NurFolgende : ""), null, ZeigeKarten);
  }

function PruefeGroesse()
  {
  // ermitteln der aktuellen Breite und Höhe
  var Breite = (document.documentElement && document.documentElement.clientWidth) ? document.documentElement.clientWidth : document.getElementsByTagName("body")[0].offsetWidth;
  var Hoehe = (document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.getElementsByTagName("body")[0].offsetHeight;

  // prüfen ob sich die gespeicherte Größe verändert hat
  if ((Breite != __Breite + 32) || (Hoehe != __Hoehe + 191))
    {
    // Breite speichern
    __Breite = Breite - 32;

    // Höhe speichern
    __Hoehe = Hoehe - 191;

    // prüfen ob eine Größenanpassung vorgenommen werden muss
    if (__DialogAnpassung != null) __DialogAnpassung(__Hoehe, __Breite);

    // intialisieren der Änderungsprüfung
    var Aenderung = false;

    // ermitteln bzw. prüfen der nutzbaren Breite
    if (Math.floor(__Breite / 160) != __Spalten)
      {
      // Markierung für neue Kartenliste setzen
      Aenderung = true;

      // Anzahl der verfügbaren Spalten berechnen
      __Spalten = Math.floor(__Breite / 160);
      }

    // ermitteln und prüfen der nutzbaren Höhe
    if (Math.floor(__Hoehe / 160) != __Zeilen)
      {
      // Markierung für neue Kartenliste setzen
      Aenderung = true;

      // Anzahl der verfügbaren Zeilen berechnen
      __Zeilen = Math.floor(__Hoehe / 160);
      }

    // ermitteln der Visitenkartenanzeige
    var Container = document.getElementById("container");

    // zentrieren der Visitenkartenanzeige
    SetzeCSS(Container, {"height" : __Hoehe, "left" : 16, "top" : 155, "width" : __Breite});

    // prüfen ob die Größe angepasst werden muss
    if (Aenderung)
      {
      // neuen Seitenindex bestimmen
      __Seite = Math.floor(__LetzteKarte / (__Zeilen * __Spalten));

      // alle sichtbaren Karten ermitteln
      ErmittleKarten();
      }
    else VerteileKarten(false);
    }
  }

function AbmeldenAntwort(Code, Daten)
  {
  // prüfen ob ein Fehler aufgetreten ist
  if ((Code == 4) && (Daten.code == 0))
    {
    // initialisieren der Markierungsliste
    __MarkerFarben = {};
    __MarkerIndex = [];
    
    // übernehmen der Markierungsliste
    for (Index in Daten.marker)
      {
      // Eintrag übernehmen
      __MarkerFarben[Daten.marker[Index].id] = Daten.marker[Index];
      
      // Index erzeugen
      __MarkerIndex.push(Daten.marker[Index].id);
      }
      
    // übernehmen der Sitzungsdaten
    __Sitzung = null;
    __Karte = null;
    __NurFolgende = 0;

    // aktualisieren der Kartenansicht
    ErmittleKarten();
    }
  else if ((Code != 6) && (Code > 3))
    {
    // Fehlermeldung ausgeben
    ZeigeFehler(Code, Daten);
    }
  }

function Abmelden()
  {
  // ausführen der Ajax-Anfrage
  var Anfrage = new Ajax("_index.php?aktion=abmelden" + ((__Sitzung != null) ? "&sitzung=" + encodeURIComponent(__Sitzung) : ""), null, AbmeldenAntwort);
  }

function ZeigeRegistrierung()
  {
  // Dialogbox öffnen
  __Dialog.oeffnen('registrieren.html');
  }
  
function AnzeigeAn()
  {
  // ermitteln des Filter-Tooltip-Elements  
  var Tooltip = document.getElementById("filter_tooltip");
  
  // leeren des Filter-Tooltip-Elements
  LeereElement(Tooltip);
  
  // neuen Absatz erzeugen
  var Absatz = ErzeugeElement("p", Tooltip, null, null);
  
  // initialisieren der Liste an Filtereinstellungen
  var Liste = [];

  // erstellen der Liste an aktiven Pins
  var Marker = [];
  for (var Index in __MarkerFarben) if ((__NurFolgende & parseInt(Index)) != 0) Marker.push(__MarkerFarben[Index].name);
    
  // Überschrift erzeugen
  Liste.push("*Aktive Markierungen:");
    
  // zusammenbauen der Markerliste
  if (Marker.length == 0) Liste.push("   keine");
  else Liste.push("   " + Marker.join("\r\n"));
  
  // gesamte Liste an Filtereinstellungen ausgeben
  for (var Index = 0; Index < Liste.length; Index++)
    {
    // ermitteln der Zeile
    var Zeile = Liste[Index];
    
    // prüfen ob der Text fett ausgegeben werden soll
    if (Zeile.substr(0, 1) == "*")
      {
      // prüfen ob zusätzlicher Zeilenumbruch hinzugefügt werden soll
      if (Index != 0) ErzeugeElement("br", Absatz, 0, 0);
      
      // SPAN-Element erzeugen
      var Span = ErzeugeElement("span", Absatz, {"className" : "headline"}, null);
      
      // Text hinzufügen
      SetzeTextElement(Span, Zeile.substring(1, Zeile.length));
      }
    else
      {
      // SPAN-Element erzeugen
      var Span = ErzeugeElement("span", Absatz, null, null);
      
      // Text hinzufügen
      SetzeTextElement(Span, Zeile);
      }
      
    // Zeilenumbruch hinzufügen, wenn das Ende noch nicht erreicht ist
    if (Index < Liste.length - 1) ErzeugeElement("br", Absatz, null, null);
    }
    
  // Tooltip anzeigen
  SetzeCSS(Tooltip, {"display" : "block"});
  }
  
function AnzeigeAus()
  {
  // ermitteln des Filter-Tooltip-Elements  
  var Tooltip = document.getElementById("filter_tooltip");
  
  // Tooltip verbergen
  SetzeCSS(Tooltip, {"display" : "none"});
  }
  
function StatusAn()
  {
  // ermitteln des Filter-Tooltip-Elements  
  var Tooltip = document.getElementById("status_tooltip");
  
  // leeren des Filter-Tooltip-Elements
  LeereElement(Tooltip);
  
  // neuen Absatz erzeugen
  var Absatz = ErzeugeElement("p", Tooltip, null, null);
  
  // prüfen ob der Nutzer angemeldet ist
  if (__Sitzung == null) var Liste = ["*Status:", "nicht angemeldet", "*Karten-ID:", "nicht verf\u00fcgbar"];
  else var Liste = ["*Status:", "angemeldet", "*Karten-ID:", __Karte];
  
  // gesamte Liste an Filtereinstellungen ausgeben
  for (var Index = 0; Index < Liste.length; Index++)
    {
    // ermitteln der Zeile
    var Zeile = Liste[Index];
    
    // prüfen ob der Text fett ausgegeben werden soll
    if (Zeile.substr(0, 1) == "*")
      {
      // prüfen ob zusätzlicher Zeilenumbruch hinzugefügt werden soll
      if (Index != 0) ErzeugeElement("br", Absatz, 0, 0);
      
      // SPAN-Element erzeugen
      var Span = ErzeugeElement("span", Absatz, {"className" : "headline"}, null);
      
      // Text hinzufügen
      SetzeTextElement(Span, Zeile.substring(1, Zeile.length) + " ");
      }
    else
      {
      // SPAN-Element erzeugen
      var Span = ErzeugeElement("span", Absatz, null, null);
      
      // Text hinzufügen
      SetzeTextElement(Span, Zeile + " ");
      }
    }
    
  // Tooltip anzeigen
  SetzeCSS(Tooltip, {"display" : "block"});
  }
  
function StatusAus()
  {
  // ermitteln des Filter-Tooltip-Elements  
  var Tooltip = document.getElementById("status_tooltip");
  
  // Tooltip verbergen
  SetzeCSS(Tooltip, {"display" : "none"});
  }