// innerHTML von übergebenem Element wird im Wechsel leer gemacht und wieder gefüllt
function BlinkText (Text, ID)
{
  if (document.getElementById(ID).innerHTML == "")
    document.getElementById(ID).innerHTML = Text
  else
    document.getElementById(ID).innerHTML = "";
} // function BlinkText

function CachePics()
{
  var doc=document;
  if(doc.images) // Ich nehme an, prüfen ob das Dokument überhaupt Bilder enthält
  {
    if(!doc.Pics) doc.Pics=new Array(); // neues, dynamisches Array anlegen
    var i,sz=doc.Pics.length,args=CachePics.arguments; // Parameterübergabe mal anders...
    for(i=0; i<args.length; i++) // Schleife für Menge von Parametern
    {
      window.status="Caching "+args[i]+" ...";
      doc.Pics[sz]=new Image; // Neue Instanz eines "Image"-Objektes
      doc.Pics[sz++].src=args[i]; // In die Member-Variable "src" von dem Image-Objekt das Bild reinladen (dadurch wird es gecached !)
    }
    window.status="";
  }
} // function CachePics

// Stellt nach dem Zufallsprinzip die Highlights nacheinander dar.
function CycleHighlights()
{
  if (Highlights.length == 0 ||
     (Highlights.length == 1 && ixCurrent == -1))
    return;

  var CounterSorted;
  var MinCount;

  if (ixCurrent > -1)
  {
    if (DirectLinks[Highlights[ixCurrent]])
      document.getElementById("DirectLink").innerHTML = "<a href=\"" + DirectLinks[Highlights[ixCurrent]] + "\"><img border=\"0\" id=\"Highlights\" src=\"" + Highlights[ixCurrent] + "\"></a>";
    else
      document.getElementById("DirectLink").innerHTML = "<img border=\"0\" id=\"Highlights\" src=\"" + Highlights[ixCurrent] + "\">";
    ixOld = ixCurrent;
    ixCurrent = -1; // Status bedeutet, dass sich die Highlights gerade im Wartezyklus befinden
    window.setTimeout("CycleHighlights()", Interval);
  }
  else
  {
    document.getElementById("DirectLink").innerHTML = "<img border=\"0\" id=\"Highlights\" src=\"/images/Rauschen.gif\">";
    bValidNext = false;
    // Anzahl der am wenigsten angezeigten Highlights ermitteln
    CounterSorted = Counter.concat();
    CounterSorted.sort(Numsort);
    MinCount = CounterSorted[0];
    do
    {
      ixCurrent = Math.round(Math.random() * (Highlights.length - 1), 0);
      // Zufallszahl nur dann akzeptieren, wenn die Anzahl des zugehörigen Highlights = der Min.Anzahl ist
      if (Counter[ixCurrent] <= MinCount)
        bValidNext = true;
    } while (!bValidNext);
    Counter[ixCurrent] += 1;
    window.setTimeout("CycleHighlights()", 300);
    CachePics(Highlights[ixCurrent]);
  }
}

// Blendet ein Login-Feld ein, mit dem sich der Admin authorisieren kann, damit die übergebene Seite aufgerufen wird.
function DisplayLogin(ID, page)
{
  var HTMLCode;

  HTMLCode = document.getElementById(ID).innerHTML;
  if (HTMLCode == "")
  {
    HTMLCode = "<form action='"+page+"' method='post'>";
    HTMLCode += "Passwort:&nbsp;";
    HTMLCode += "<input name='pwd' size='20' maxlength='20' type='password'>";
    HTMLCode += "&nbsp;<input type='submit' value='Login'>";
    HTMLCode += "</form>";
  }
  else
  {
    HTMLCode = "";
  }
  document.getElementById(ID).innerHTML = HTMLCode;
} // function DisplayLogin

function Numsort(a, b)
{
  return a - b;
}

// Einleitende Funktion für Laufschrift
function ScrollText (Text, URL, ID)
{
  var Inhalt;
  Anzeigebreite = 60;
  Anzeigetext = Text;
  Laenge = Strlen(Anzeigetext);
  Element = ID;
  index = -1;
  document.getElementById(ID).href = URL;
  ScrollLoop = window.setInterval("Step()", 60);
} // function ScrollText

// Schritte der Laufschrift
function Step()
{
  Inhalt = "";
  if (++index >= Anzeigebreite+Laenge+1)
    index = 0;
  for (c=1; c<=Anzeigebreite-index; c++)
    Inhalt += "&nbsp;";
  if (index <= Anzeigebreite)
    Inhalt += Anzeigetext.substr(0, index);
  if (index > Anzeigebreite)
    Inhalt += Anzeigetext.substr(index-Anzeigebreite, Laenge);
  for (c=1; c<=index-Laenge; c++)
    Inhalt += "&nbsp;";
  Inhalt = Inhalt.replace (" ", "&nbsp;");
  document.getElementById(Element).innerHTML = Inhalt;
} // function Step

// Länge des übergebenen Strings ermitteln
function Strlen(Str)
{
  tmp = -1;
  while (Str.charAt(++tmp))
  {}
  return tmp;
} // function StrLen
