// Variablen und Werte
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)
thisproc = 0;
thistimeout = 0;
stopflag = false;

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 (!thisproc) {
    // Prozess starten
    thisproc = window.setInterval ('fade_to(\'' + element_id1 + '\', \'' + element_id2 +'\', \'' + num + '\')', 50);
  }
  else {
    // Effekt laeuft 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-Abkoemmlingen 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 Browserabhaengig
      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 vollstaendig 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++;
          kill_loop ()
          fade_to ( element_ids[num][0],  element_ids[num][1], num);
      } else if (num > element_ids.length -2) {
          kill_loop ()
          num=0;
          if (piccount < maxpics) { 
              piccount ++;
          } else {
              piccount = 0; 
          }  
          if (stopflag != true) thistimeout = window.setTimeout('control_loop()', looptime);    
      }
    }
  }
}

function kill_loop () {  
     window.clearInterval (thisproc); 
     thisproc = null;        
}

/* Unterbrechung der Animation durch Nutzer */

function stopMotion (myswitch, bObjekt) {
    e = document.getElementById('an_pic1a');
    if (myswitch == true) {
        stopflag = true;
        if (bObjekt >= maxpics) {
            nextPicObject = pix[0][0];
        } else {
            nextPicObject = pix[0][bObjekt + 1];
        }
        bObjekt = pix[0][bObjekt];
        if (bObjekt){
          window.clearTimeout(thistimeout); // Unterbrechung der Animation
	
          document.getElementById('an_pic1a').src = nextPicObject.src;
          document.getElementById('an_pic1b').src = bObjekt.src;
        	
        	if (!e.filters) {
              document.getElementById('an_pic1a').style.opacity = 0;
        	    document.getElementById('an_pic1b').style.opacity = 1;  
          }
          else if (e.filters) { 
              document.getElementById('an_pic1a').filters.alpha.opacity = 0;
        	    document.getElementById('an_pic1b').filters.alpha.opacity = 100; 
          }
          
    		}
           
        
    } else if (myswitch == false) {
        stopflag = false;
        if (bObjekt >= maxpics) {
            piccount = 0;
        } else {
            piccount = bObjekt + 1;
        }
        thistimeout = window.setTimeout('control_loop()', 2000); // Neustart der Animation
    }
}
