// JavaScript Document

/*
/  diashow.js
/  Autor: Nicolas Buelow
/
/   Stellt alle Funktionen der Diashow zur Verfuegung
*/

    
//Verzeichnis, in dem die Orginalfotos liegen
var fotoVZ="img/upload/mannschaftsfotos/";

//URL des aktuellen Bildes 
var url="";

//Das aktuelle Foto
var foto="";

//Zum Faden der Lighbox: Aktueller und Soll-Wert (Transparenz)
var wert=0.0;
var maxWert=0.72;

//Zum Faden de Bilds: Aktueller und  Soll-Wert (Transparenz)
var wertBild=0.0;
var maxWertBild=1.0;

//Fuer die ganzen Intervalls
var dimmen=null;
var vergroessern=null;
var diashow=null;
var bildFade=null;

//Zum Vergroessern der Fotodarstellungsbox: Aktueller und Soll-Wert
var hoehe=0;
var breite=0;
var maxHoehe=0;
var maxBreite=0;

//Ob eine Diashow ausgefuehert  oder nur ein Bild angezeigt werden soll
var mehrBilder = true;




function diashowStart(bild, orginalBreite, orginalHoehe, dShow){
    
    document.getElementById('bam').innerHTML = "<div class='lightBox' id='lightBox' onclick='diashowSchliessen()'></div><div class='fotoBackground' id='fotoBackground'></div>";
    
    //Breite und Hoehe des ausgewaehlten Bildes
    maxBreite = orginalBreite;
    maxHoehe = orginalHoehe;
    
    var bildschirmBreite = document.getElementById('lightBox').offsetWidth-300;
    var bildschirmHoehe  = document.getElementById('lightBox').offsetHeight-300;

    //Bild skalieren, wenn groesser als Bildschirm
    if(bildschirmBreite<maxBreite){
        maxHoehe  = (bildschirmBreite/maxBreite)*maxHoehe;
        maxBreite = bildschirmBreite;
    }
    if(bildschirmHoehe<maxHoehe){
        maxBreite = (bildschirmHoehe/maxHoehe)*maxBreite;
        maxHoehe  = bildschirmHoehe;
    }
    foto = bild;
    url = getOrginalURL(bild.src);
    dimmen = window.setInterval("lightBoxDimmen()", 1);
    
    mehrBilder = dShow;
}


/*
/   Dunkelt in einer Animation die Website langsam ab
*/
function lightBoxDimmen(){
    document.getElementById('lightBox').style.filter="alpha(opacity="+wert*100+")";
    document.getElementById('lightBox').style.KHTMLOpacity=wert;
    document.getElementById('lightBox').style.MozOpacity=wert;
    document.getElementById('lightBox').style.opacity=wert;
    if (wert<maxWert){
		wert+=0.1;
	}
	else {   
		window.clearInterval(dimmen);
		var bildschirmBreite = document.getElementById('lightBox').offsetWidth-300;
        var bildschirmHoehe  = document.getElementById('lightBox').offsetHeight-300;

        //Bild skalieren, wenn groesser als Bildschirm
        if(bildschirmBreite<maxBreite){
            maxHoehe  =(bildschirmBreite/maxBreite)*maxHoehe;
            maxBreite = bildschirmBreite;
        }
        if(bildschirmHoehe<maxHoehe){
            maxBreite = (bildschirmHoehe/maxHoehe)*maxBreite;
            maxHoehe  = bildschirmHoehe;
        }
        wert=0;
        vergroessern = window.setInterval("fotoVergroessern()", 1)
    }
}



/*
/   Vergroesserungsanimation des Fotohintergrunds
/
*/
function fotoVergroessern(){
    //Damit es gleichmaessig skaliert wird
    if(maxBreite>maxHoehe){
        i = maxBreite/maxHoehe;
        j = 1;
    }
    else {
        i = 1;
        j = maxHoehe/maxBreite;
    }

    if(breite<maxBreite-50){        
        breite+=i*50;
        hoehe+=j*50;
        
        document.getElementById("fotoBackground").style.height=hoehe+"px";
        document.getElementById("fotoBackground").style.width=breite+"px";
         
        document.getElementById("fotoBackground").style.marginTop  = ((document.getElementById('lightBox').offsetHeight/2)-(document.getElementById('fotoBackground').offsetHeight/2)-100)+"px";
        document.getElementById("fotoBackground").style.marginLeft = ((document.getElementById('lightBox').offsetWidth/2)-(document.getElementById('fotoBackground').offsetWidth/2)-25+"px");     
    }else{
        window.clearInterval(vergroessern);
        bildAnzeigen();
        
    }
}


/*
/   Stellt das Bild aus der url-Variable auf der Lightbox dar
/
*/
function bildAnzeigen(){
    var bild = document.getElementById('fotoBackground'); 
    bild.innerHTML =  "<img src='"+url+"' style='visible:hidden;' onclick='nextBild()' onload='groesseAnpassen()' >";
    document.getElementById("fotoBackground").getElementsByTagName("img")[0].style.visibility = "hidden"; 
}


/*
/   Passt die Groesse der div-box, in der das Foto geladen wird, an
/
/
*/
function groesseAnpassen(){
    var aktBild = document.getElementById("fotoBackground").getElementsByTagName("img")[0];
     
    var bildschirmBreite = document.getElementById('lightBox').offsetWidth-300;
    var bildschirmHoehe  = document.getElementById('lightBox').offsetHeight-300;
    
    //aktBild.style.visibility="hidden"; 
    
    maxHoehe = aktBild.height;
    maxBreite= aktBild.width;

    //Bild skalieren, wenn groesser als Bildschirm
    if(bildschirmBreite<maxBreite){
        maxHoehe  = (bildschirmBreite/maxBreite)*maxHoehe;
        maxBreite = bildschirmBreite;
    }
    if(bildschirmHoehe<maxHoehe){
        maxBreite = (bildschirmHoehe/maxHoehe)*maxBreite;
        maxHoehe  = bildschirmHoehe;
    }
    
    document.getElementById("fotoBackground").style.height=maxHoehe+"px";
    document.getElementById("fotoBackground").style.width=maxBreite+"px";
    
    document.getElementById("fotoBackground").style.marginTop  = ((document.getElementById('lightBox').offsetHeight/2)-(document.getElementById('fotoBackground').offsetHeight/2)-100)+"px";
    document.getElementById("fotoBackground").style.marginLeft = ((document.getElementById('lightBox').offsetWidth/2)-(document.getElementById('fotoBackground').offsetWidth/2)-25)+"px";
    
    aktBild.style.height=maxHoehe+"px";
    aktBild.style.width=maxBreite+"px";
  
    aktBild.style.filter="alpha(opacity=0)";
    aktBild.style.KHTMLOpacity=0.0;
    aktBild.style.MozOpacity=0.0;
    aktBild.style.opacity=0.0;
    aktBild.style.visibility="visible";
    bildFade = window.setInterval("bildFaden()", 1);
   
    //alert("geladen");
    
}  




/*
/   Gibt den Pfad des Orginalbildes in Abhaenigkeit des uebergebenen
/   Vorschaubildes zurueck
/
/   thumbURL: Der Vollstaendige Pfad des Vorschaubildes
*/
function getOrginalURL(thumbURL){
    var bildname = thumbURL.split("/");
    return fotoVZ+bildname[bildname.length-1];
}


//Schliesst die Lightbox und  die Fotos, die angezeigt werden
function diashowSchliessen() {
    document.getElementById('bam').removeChild(document.getElementById('lightBox'));
    document.getElementById('bam').removeChild(document.getElementById('fotoBackground'));
    closeControlLeiste();
}


/*
/   Startet die Diashow, sodass nach einer bestimmten Zeit jeweils
/   ein Bild automatisch geladen wird
/
/   milisek: Zeit in Milisekunden zwischen den Bildern
*/
/*
function starteShow(milisek){
    diashow = window.setInterval("nextBild()",milisek);
}
*/

function play(){
    window.clearInterval(diashow);
    diashow = window.setInterval("nextBild()",5000);
}

/*
/   Laedt das naechste Bild
/
*/
function nextBild(){
    if (mehrBilder){
		/*
		for(i=0;i<10){
			if(foto.class == i){
				
			}
		}*/
        //var nextID=(1*parseInt(foto.id))+(1*1);
        var nextID=parseInt(foto.id.substring(2,3));
        var nummer=String(parseInt(foto.id.substring(0,1)));
        if(document.getElementById('gallerieBox'+nummer+'_images').getElementsByTagName("img")[nextID]){
            url=getOrginalURL(document.getElementById('gallerieBox'+nummer+'_images').getElementsByTagName("img")[nextID].src);
			breite=0;
            hoehe=0;
            bildAnzeigen();
            foto=document.getElementById('gallerieBox'+nummer+'_images').getElementsByTagName("img")[nextID];
        }
        else {
            //Wenn das letzte Bild angezeigt wird, beende Diashow
           window.clearInterval(diashow);
       }
   }
}


/*
/   Laedt das vorherige Bild
/
*/
function prevBild(){
    var prevID=parseInt(foto.id)-1;
    if(document.getElementById('gallerieBox').getElementsByTagName("img")[prevID]){
        url=getOrginalURL(document.getElementById('gallerieBox').getElementsByTagName("img")[prevID].src);
        bildAnzeigen();
        foto=document.getElementById('gallerieBox').getElementsByTagName("img")[prevID];
    }
    else {
        //Wenn das letzte Bild angezeigt wird, beende Diashow
        window.clearInterval(diashow);
    }
}


/*
/   Stellt eine Steuerungsleiste dar, mit Hilfe dessen die Diashow gesteuert werden kann
*/
function showControlLeiste(){
    //document.getElementById("fotoBackground").appendChild(document.createElement("DIV"));
    //document.getElementById("fotoBackground").innerHTML= document.getElementById("fotoBackground").innerHTML + "<div class='controlHintergrund' id='controlHintergrund'></div>";
    var bildschirmBreite = document.getElementById('lightBox').offsetWidth-300;
    var bildschirmHoehe  = document.getElementById('lightBox').offsetHeight-300;
    
    document.getElementById("fotoBackground").appendChild(document.createElement("DIV"));
    //document.getElementById("bam").appendChild(document.createElement("DIV"));
    //document.getElementById("bam").innerHTML = document.getElementById("bam").innerHTML + "<div class='controlHintergrund' id='controlHintergrund'><div class='controlPrev' onclick='prevBild()'></div><div class='controlPlay' onclick='play()'></div><div class='controlNext' onclick='nextBild()'></div></div>";
    document.getElementById("fotoBackground").innerHTML = document.getElementById("fotoBackground").innerHTML + "<div class='controlHintergrund' id='controlHintergrund'><div class='controlPrev' onclick='prevBild()'></div><div class='controlPlay' onclick='play()'></div><div class='controlNext' onclick='nextBild()'></div></div>";

    //document.getElementById("controlHintergrund").style.marginTop  = ((document.getElementById('lightBox').offsetHeight/2)-(document.getElementById('controlHintergrund').offsetHeight/2)-100)+"px";
    document.getElementById("controlHintergrund").style.marginTop  = 20+"px";
    document.getElementById("controlHintergrund").style.marginLeft = ((document.getElementById('lightBox').offsetWidth/2)-(document.getElementById('controlHintergrund').offsetWidth/2)-25)+"px";
}


function closeControlLeiste(){
     document.getElementById('bam').removeChild(document.getElementById('controlHintergrund'));
}


/*
/   Faded das Bild langsam ein
*/
function bildFaden(){
    document.getElementById("fotoBackground").getElementsByTagName("img")[0].style.filter="alpha(opacity="+wertBild*100+")";
    document.getElementById("fotoBackground").getElementsByTagName("img")[0].style.KHTMLOpacity=wertBild;
    document.getElementById("fotoBackground").getElementsByTagName("img")[0].style.MozOpacity=wertBild;
    document.getElementById("fotoBackground").getElementsByTagName("img")[0].style.opacity=wertBild;
    if (wertBild<maxWertBild){
		wertBild+=0.15;
	}
	else {
	    wertBild=0;
		window.clearInterval(bildFade);
    }
}