<!-- // JavaScript-Bereich für ältere Browser auskommentieren
// Funktion berechnet die Differenz zwischen zwei Zeitstempeln
function differenz (d1, d2) {
  // Ist der Timestamp d1 < d2, dann müssen die beiden Werte
  // getauscht werden, da sonst negative Werte berechnet werden.
  if (d1 < d2) {
    var d = d1;
    d1 = d2;
    d2 = d;
  }
  // Vergangene Zeit in ihre Komponenten umrechnen.
  // Vergangene Tage berechnen,...
  var t = Math.floor ((d1 - d2) / (24 * 60 * 60 * 1000));
  if (t <=9) {
		t = '0' + t;
	}
	// verstrichene Stunden berechnen,...
  var s = Math.floor (((d1 - d2) - (t * 24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
  if (s <=9) {
		s = '0' + s;
	}
	// Minuten, die zwischenzeitlich vergangen sind...
  var m = Math.floor (((d1 - d2) - (t * 24 * 60 * 60 * 1000) - (s * 60 * 60 * 1000)) / (60 * 1000));
  if (m <=9) {
		m = '0' + m;
	}
	// und die Sekunden.
  var sec = Math.floor (((d1 - d2) - (t * 24 * 60 * 60 * 1000) - (s * 60 * 60 * 1000) - (m * 60 * 1000)) / 1000);
  if (sec <=9) {
		sec = '0' + sec;
	}
	// Berechnete Differenz als Rückgabe per Objekt liefern.
  return { 't': t, 's': s, 'm': m, 'sec': sec };
}

// Funktion, welche den Countdown-Timer zyklisch im Ausgabeelement ausgibt.
function update_countdown (element_id, termin, beschreibung) {
  // Datumsobjekt mit aktuellem Datum und ktueller Zeit erzeugen.
  // Von diesem Timestamp ausgehend wird die Differenz zum Termin
  // berechnet.
  var now = new Date ();
  // Varaiable zur Speicherung der auszugebenen Zeichenkette
  // für den Countdown.
  var ausgabe;
  // Variable zur Speicherung der Differenz zwischen Termin und
  // aktuellem Zeitpunkt.
  var diff;
  if (now.getTime () > termin) {
    // Seite neu laden
		window.document.location.reload(); 
		//ausgabe = ' Vorbei! ';
		// Termin war schon
    //ausgabe = 'Vor ';
    // Berechnung der Differenz zwischen dem Termin und
    // dem aktuellen Zeitpunkt.
    // diff = differenz (now.getTime (), termin);
    // Zeitliche Differenz an das Ausgabestring hängen.
    //ausgabe += diff.t + ' Tage, ' + diff.s + ' Stunden, ' + diff.m + ' Minuten und ' + diff.sec + ' Sekunden';
    // Wurde keine Beschreibung des Termins angegeben, so wird
    // ein Standard-String ausgegeben.
    // ausgabe += ' war ' + (beschreibung ? beschreibung : 'der Termin!');
  }
  else {
    // Termin in Zukunft
    // Original-Anfang: ausgabe = 'Nur noch ';
    // Wie lange dauert es noch, bis zum Termin?
    diff = differenz (termin, now.getTime ());
    // Ermittelte Werte an Ausgabe anhängen.
    ausgabe = diff.t + ':' + diff.s + ':' + diff.m;
    // Original-Counter:  ausgabe += diff.t + ' Tage, ' + diff.s + ' Stunden, ' + diff.m + ' Minuten und ' + diff.sec + ' Sekunden';
		// Auch hier wird ein Standard-String ausgegeben, wenn keine
    // Terminbeschreibung angegeben wurde.
    // Original-Zusatz: ausgabe += ' bis ' + (beschreibung ? beschreibung : 'zum Erreichen des Termins!');
  }
  // Ausgabe der zusammengesetzten Zeichenkette
  document.getElementById (element_id).firstChild.data = ausgabe;
}

// Initialisierung des Countdown-Timers
// Als Parameter werden die ID des Anzeigeelements, ein Termin als Date-Objekt
// uns eine optionale Beschreibung des Termins übergeben.
function countdown_timer (element_id, termin, beschreibung) {
  // Der Timer funktioniert nur, wenn ein HTML-Element mit der übergebenen ID
  // existiert! Ist dies nicht der Fall, so passiert nichts.
  if (document.getElementById (element_id)) {
    // Hat das Element bereits ein Kindelement?
    if (!document.getElementById (element_id).firstChild)
      // Falls nicht, so wird ein leerer Textknoten erzeugt und in den
      // Elementbaum eingefügt. Dieser Textknoten wird künftig mit der 
      // jeweiligen Ausgabe des Countdowns überschrieben.
      document.getElementById (element_id).appendChild (document.createTextNode (''));
    // Wurde ein gültiges Datum übergeben, so dass eine Berechnung
    // des Countdown-Timers möglich ist?
    if (termin instanceof Date) {
      // Update des Timers direkt aufrufen, damit dieser nicht erst nach Ablauf einer
      // Sekunde angezeigt wird.
      update_countdown (element_id, termin.getTime (), beschreibung);
      // Countdown Timer einmal pro Sekunde akutalisieren
      window.setInterval ('update_countdown (\'' + element_id + '\', ' + termin.getTime () +
              (beschreibung ? ', \'' + beschreibung + '\'' : '') + ')', 1000);
    }
  }
}
// -->