/*
 * start-animation.js
 * Kai Rabien April 2010
 * krabien@googlemail.com
 * Ersetzt eine Flash-Animation, um die Animation
 * auf dem iPhone anzeigen zu können.
 *
 */

    //der dateiname der einzel-frames setzt sich zusammen aus:
    //"prefix"+BILDNUMMER+"suffix"
    //dabei wird BILDNUMMER zwischen "start" und "max" in schritten
    //von "increment" hochgezählt.
    //wait bestimmt die zeit zwischen zwei frames in millisekunden.
	var prefix = "../img/flashgifs/frame-";
	var suffix = ".jpg";
	var increment = 1;
	var max = 50;
	var start = 0;
    var wait = 30;
	
    /**
     * precache lädt die frames vor, bevor die animation zum ersten 
     * mal läuft. so wird eine ruckelige darstellung im ersten
     * durchlauf vermieden.
     */
	function precache(){
		for(i = start; i<= max; i+= increment){
			im = new Image();
			im.src = prefix + i + suffix;
		}
	}
	
    /**
     * swap ist die funktion mit der im zielbild (ein normales <img> mit id "image") 
     * die frames ausgetauscht werden.
     * swap() muss einmalig im html-code aufgerufen werden, um die animation zu starten.
     * vorher am besten einmal precache().
     */
	function swap(){
        im = document.getElementById("image");
        //zuerst wird der pfad des alten frames bestimmt 
        toParse = document.getElementById("image").src;
        toParse = toParse.substring(toParse.lastIndexOf("/"));
        prefixMinusPathTo = prefix.substring(prefix.lastIndexOf("/"));
        toParse = toParse.substring(prefixMinusPathTo.length, toParse.length - suffix.length);
        
        //hier wird die alte frame-nummer bestimmt
        i = parseInt(toParse);
        
        i += increment;
        if(i > max){
            i = start;
        }
        
        toParse = prefix + i + suffix;
        
        //hier wird das neue frame ins <img> gesetzt
        im.src = toParse;
        
        //nun noch den nächsten aufruf von swap() ins Timeout setzen
        if(i < max){
            im.onclick = null;
            setTimeout("swap()", wait);
        }else {
        //die animation ist bis zum ende gelaufen - wieder auf den ersten frame 
        //zurücksetzen
            i = start;
            //per klick neu starten
            im.onclick = swap;
        }
	}

