DivContent - JavaScript-Quelltext

Quelltext von divcontent.js

Dies ist die Auflistung der Datei divcontent.js, die die Funktionalität für den Layer-Inhalts-Manager bereitstellt.

Im folgenden Quelltext sind Prozedurdeklarationen rot und Kommentare grün markiert.
/* Droeppez Layerinhaltsmanager
 * (c) 2002 Ulrich Kritzner
 * Die Verwendung dieses Scripts in kommerziellen Seiten ist kostenpflichtig
 */

/* Warnung:
 *   Nicht alle Browser unterstuetzen die gleichzeitige Ausfuehrung mehrerer Timeouts.
 *   Daher muss beim gleichzeitigen Einsatz mehrerer Layerinhaltsmanager
 *   oder der Kombination mit anderen Droeppez-Animationen
 *   die Datei "timer.js" im HTML-Dokument geladen werden.
 *
 * Erklaerung der "unverstaendlichen" Quelltextabschnitte:
 *   wird "timer.js" _nicht_ eingebunden (if (!(this.usetimer))),
 *     kuemmert sich Banner selbst um seine timeouts,
 *   wird "timer.js" eingebunden (if (this.usetimer)),
 *     laesst der Layerinhaltsmanager seine timeouts vom timer managen
 *     Die Funktionen des timers sind in der extra Datei "timer.js" definiert!
 */

function DDC_SetContentHandler(ContentHandler)
{
  this.ContentHandler=ContentHandler;
}

function DDC_TimerFunc()
{
  var text="Droeppez Layer Content Manager";
  if (!this.running)
    return;
  if (this.ContentHandler)
    text=this.ContentHandler();
  if (this.isDOM)
    this.element.innerHTML=text;
  else
  {
    this.element.document.open();
    this.element.document.write(text);
    this.element.document.close();
  }
  if (this.usetimer)
/* wenn timer.js geladen ist: */
    this.timestep=this.tmstep;
  else
/* wenn timer.js _nicht_ geladen ist: */
    this.timeout=window.setTimeout(this.name+".TimerFunc()",this.elapse);
}

function DDC_Step()
{
  var text="Droeppez Layer Content Manager";
  if (this.running)
    return;
  if (this.ContentHandler)
    text=this.ContentHandler();
  if (this.isDOM)
    this.element.innerHTML=text;
  else
  {
    this.element.document.open();
    this.element.document.write(text);
    this.element.document.close();
  }
}

function DDC_Run(elapse)
{
  this.elapse=elapse;
  this.running=1;
  if (this.usetimer)
/* wenn timer.js geladen ist: */
  {
    this.tmstep=Math.round(this.elapse/u_timer_elapse);
    if (this.tmstep<1)
      this.tmstep=1;
    this.timestep=1;
    if (u_timer_elapse>0)
      u_timer_continue();
  }
  else
/* wenn timer.js _nicht_ geladen ist: */
  {
    if (this.timeout!=0)
      window.clearTimeout(this.timeout);
    this.timeout=0;
    this.TimerFunc();
  }
}

function DDC_Stop()
{
  this.running=0;
  if (this.usetimer)
/* wenn timer.js geladen ist: */
    this.timestep=0;
  else
/* wenn timer.js _nicht_ geladen ist: */
    if (this.timeout!=0)
    {
      window.clearTimeout(this.timeout);
      this.timeout=0;
    }
}

function DivContent(name,elementname)
{
  this.name=name;
  this.running=0;
  this.SetContentHandler=DDC_SetContentHandler;
  this.TimerFunc=DDC_TimerFunc;
  this.Run=DDC_Run;
  this.Step=DDC_Step;
  this.Stop=DDC_Stop;
  this.ContentHandler=0;
  this.isDOM=0;
  this.elapse=0;
  if (window.document.all)
/* MSIE, Konqueror, Opera: */
    this.element=eval("window.document.all."+elementname);
  else
    if (typeof(window.document.getElementById)=="function")
/* Netscape6, Mozilla: */
      this.element=window.document.getElementById(elementname);
    else
/* Netscape4: */
      this.element=eval("window.document."+elementname);
  if (this.element.innerHTML)
/* Netscape6, Mozilla, MSIE, Konqueror: */
    this.isDOM=1;
  if (typeof(u_timer_add_object)=="function")
/* wenn timer.js geladen ist: */
  {
    this.usetimer=1;
    this.timestep=0;
    this.tmstep=1;
    this.timeval=0;
    u_timer_add_object(this);
  }
  else
/* wenn timer.js _nicht_ geladen ist: */
  {
    this.usetimer=0;
    this.timeout=0;
  }
}
Autor: Ulrich Kritzner