// Javascript zum Austauschen der statischen und animierten Bildversionen
// (C) Axel Rogat 26-Jul-2009

// zur Anpassung der Umgebung an unterschiedliche Seiten
var file_wait = "wait.gif";
var file_stop = "stop.gif";
var file_start = "start.gif";
var classname_surround = "animshow";
var classname_image = "sidebar";

// globale Variablen zur einfachen Kommunikation mit setTimeout
var elem_anim, file_anim;

// Image zum Vorladen des Wartebilds und der Animation
var image_load = new Image();
image_load.src = file_wait;

// Hilfsfunktion, lädt die Animation komplett und schaltet sie erst
// anschließend ein
function loadImage()
{
  if ( ! image_load.complete )
    setTimeout("loadImage()", 500);
  else
    elem_anim.src = file_anim;
}

// Hauptmethode, aufgerufen über die Start-/Stop-Buttons der Seite
function anim_startstop(button, stillpic, animpic)
{
  elem_anim = button;

  do
  {
    elem_anim = elem_anim.parentNode;
    if ( elem_anim  == null )
      return;
  } 
  while ( ( elem_anim.getAttribute("class")
         || elem_anim.getAttribute("classname") )
          != classname_surround );

  elem_anim = elem_anim.firstChild;

  for (;;)
  {
    if ( elem_anim == null )
      return;
    if ( elem_anim.attributes != null
      && ( elem_anim.getAttribute("class")
        || elem_anim.getAttribute("classname") )
         == classname_image )
      break;
    elem_anim = elem_anim.nextSibling;
  }

  if ( button.src.match(file_stop + "$") == file_stop )
  {
    button.src = file_start;
    elem_anim.src = stillpic;
  }
  else
  {
    elem_anim.src = file_wait;
    button.src = file_stop;
    image_load = new Image();
    image_load.src = animpic;
    file_anim = animpic;
    setTimeout("loadImage()", 500);
  }
}

