// Define animation values 
pix = new Array();
var maxpics = 0; // Hoechste Anzahl an Bildern in einer beliebigen Bildposition (Wird automatisch ermittelt, Ausgansgwert belassen)
piccount = 2; // Aktuelles Bild innerhalb der aktuellen Bildposition (Wird automatisch ermittelt, Ausgansgwert belassen)
looptime = 5000; // Loop-Intervall-Zeit (Defaultwert 5000: kann in aufrufender HTML-Seite individuell eingesetellt werden)

function initImageObjects(){
if (!pix[0]) {
    pix[0] = new Array();
    } else {
    pix[pix.length] = new Array();
}
for(i=0;i<initImageObjects.arguments.length;i++) {
  if (maxpics < i) { maxpics ++; } // Ermittlung der maximalen Bilderanzahl an einer beliebigen Position
  pix[pix.length-1][i] = new Image(); 
	pix[pix.length-1][i].src = initImageObjects.arguments[i];
	}	
}

var element_ids = new Array();

// Initiate loop
function control_loop() {
    fade_to( element_ids[0][0],  element_ids[0][1], 0)
}


function fade_to (element_id1, element_id2, num) { 
  // Prozess noch nicht gestartet?
  if (!this.proc) {
    // Prozess starten
    this.proc = window.setInterval ('fade_to(\'' + element_id1 + '\', \'' + element_id2 +'\', \'' + num + '\')', 50);
  }
  else {
    // Effekt läuft bereits
    // Verweise auf die Elemente holen...
    var e = document.getElementById (element_id1);
    var e2 = document.getElementById (element_id2);
    var opacity1, opacity2;
    // Aktuelle Transparenz der beiden Bilder bei
    // Opera und Mozilla-Abkömmlingen mit opacity Style-Eigenschaft..
    if (!e.filters) {
      opacity1 = !e.style.opacity ? 1 : parseFloat (e.style.opacity);
      opacity2 = !e2.style.opacity ? 0 : parseFloat (e2.style.opacity);
    }
    // bzw. über die Filter des IE ermitteln.
    else {
      opacity1 = e.filters.alpha.opacity;
      opacity2 = e2.filters.alpha.opacity;
    }
    
    // Volle Transparenz von Bild 1 noch nicht erreicht?
    if (opacity1 != 0) {
      // Anpassung der Styles erfolgt wieder Browserabhängig
      if (!e.filters) {
        opacity1 -= 0.05;
        opacity2 += 0.05;
        
        e.style.opacity = opacity1;
        e2.style.opacity = opacity2;
      }
      else {
        opacity1 -= 5;
        opacity2 += 5;
        
        e.filters.alpha.opacity = opacity1;
        e2.filters.alpha.opacity = opacity2;
      }
    }
    else {
      // Volle Transparenz von Bild 1 erreicht!
      // Das andere Bild ist in diesem Fall vollständig eingeblendet!
      // num = aktuelle Bildposition
      // piccount = aktuelles Bild innerhalb der aktuellen Bildposition
      if (pix[num][piccount]) {
          e.src=pix[num][piccount].src;
          element_ids[num].reverse();
          } else {
          e.src=pix[num][0].src;
          }

      if (num <= element_ids.length -2) {
          num++;
          window.clearInterval (this.proc);
          this.proc = null;
          fade_to ( element_ids[num][0],  element_ids[num][1], num);
      } else if (num > element_ids.length -2) {
          window.clearInterval (this.proc);
          this.proc = null;
          num=0;
          if (piccount < maxpics) { 
              piccount ++;
          } else {
              piccount = 0; 
          }  
          window.setTimeout('control_loop()', looptime);    
      }
    }
  }
}



