/*Dieser Code wurde von Adrian Debbeler für die Homepage der Niedersächsischen Schachjugend geschrieben.

Der Code muss noch aufgeräumt werden, damit ihn irgendjemand verstehen kann...
*/



//Galerie

var naviReihe= new Array();
var naviFeld= new Array();
var miniSeite=1; //auf der wievielten Thumbnailseite befindet man sich
var bilder=new Array(5);
var aktuellesBild=0; //welches Bild wird gerade angezeigt
var bilderID= new Array();
var bilderBenutzer= new Array(); //wie viele Benutzer sind auf dem Bild?
var bilderBeschreibung= new Array(); //welche Beschreibung haben die Bilder?
var bilderKommentare= new Array(); //wie viele Kommentare wurden gemacht?
var navileiste;
var naviebene=new Array();
var naviebenentiefe=0;
var galerie=0;
var tabelle="";
var aktuellesBild=0;

//es soll vermieden werden, dass bei Doppelklicks oder so die Ebene zweimal angefügt wird. Deshalb wird die zuletzt eingefügte Ebene gespeichert

var letzteEbene="";

//Felder unter dem Bild

var sjbenutzer
var sjbenutzertext
var kommentare
var kommentaretext
var beschreibung
var beschreibungtext
var anzahlBilderText //momentan in der Minigalerie benutzt

var bildangeklickt=false; //ob schon ein Bild betrachtet wurde


//Funktion um Cookies auszulesen
function getCookie(name){
   var i=0  //Suchposition im Cookie
   var suche = name+"="
   while (i<document.cookie.length){
      if (document.cookie.substring(i, i+suche.length)==suche){
         var ende = document.cookie.indexOf(";", i+suche.length)
         ende = (ende>-1) ? ende : document.cookie.length
         var cook = document.cookie.substring(i+suche.length, ende)
         return unescape(cook)
      }
      i++
   }
   return null
}

function PopUp(art,wert){
	var URL="";
	
	if(art==1)
		URL = "benutzeraufbild.php?bildID="+wert;
	else if(art==2)
		URL = "bildbeschreibung.php?bildID="+wert;
	
	var Name = "popup";
	var Fensteroptionen = "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0";
	var Breite = 500;
	var Hoehe = 300;
	window.open(URL, 'Name', Fensteroptionen + ',width=' + Breite + ',height=' + Hoehe);
}


function KPopUp(bildnummer){

	var URL="kommentare.php?nummer="+bildnummer+"&art=bilder";

	var Name = "popup";
	var Fensteroptionen = "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0";
	var Breite = 600;
	var Hoehe = 500;
	window.open(URL, 'Name', Fensteroptionen + ',width=' + Breite + ',height=' + Hoehe);

}

function getXMLHttpRequest() {
	var httpReq = null;

	if (window.XMLHttpRequest){
		httpReq= new XMLHttpRequest();
	}
	else if (window.ActiveXObject){
		try{
			httpReq=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(ex){
			try{
				httpReq= new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(ex)
			{
			}
		}
	}
	return httpReq;
}


//Der Aufbau der Navigationsleiste
function sendRequestNavi(ebene){ 
	
	req = getXMLHttpRequest();
	if (req){
		req.onreadystatechange = naviZeigen;
		req.open("get", "galerieabfrage.php?art=1&ebene="+ebene, true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencode");
		req.send(null);
	}
}

//Der Aufbau der Vorschaubilder der großen Galerie
function sendRequestMini(seite){

	req2 = getXMLHttpRequest();
	if (req2){
		req2.onreadystatechange = miniZeigen;
		req2.open("get", "galerieabfrage.php?art=2&seite="+seite+"&ebene="+galerie, true);
		req2.setRequestHeader("Content-Type", "application/x-www-form-urlencode");
		req2.send(null);
	}
}

function sendRequestIntGalerie(galerienID){

	req5 = getXMLHttpRequest();
	if (req5){
		req5.onreadystatechange = bilderHolen;
		req5.open("get", "galerieabfrage.php?art=5&&ebene="+galerienID, true);
		req5.setRequestHeader("Content-Type", "application/x-www-form-urlencode");
		req5.send(null);
	}
}



function sendRequestBenutzerNeu(bildID){

	req3 = getXMLHttpRequest();
	if (req3){
		req3.onreadystatechange = reloadPage;
		req3.open("get", "galerieabfrage.php?art=3&bildID="+bildID, true);
		req3.setRequestHeader("Content-Type", "application/x-www-form-urlencode");
		req3.send(null);
	}
}

function sendRequestBeschreibungAendern(bildID,beschreibung){

	req4 = getXMLHttpRequest();
	if (req4){
		req4.onreadystatechange = closePages;
		req4.open("get", "galerieabfrage.php?art=4&bildID="+bildID+"&beschreibung="+beschreibung, true);
		req4.setRequestHeader("Content-Type", "application/x-www-form-urlencode");
		req4.send(null);
	}
}



function reloadPage(){

	if(req3.readyState==4)
		window.location.reload();

}

function closePages(){
	
	if(req4.readyState==4){
		alert("Danke");
		window.close();
	}

}



//Baut die obere Navigation auf 
function naviZeigen(){

var anzahlTreffer=0;

	if(req.readyState== 4){
	
		
		xmlDOMnavi = req.responseXML;
		
		anzahlTreffer= xmlDOMnavi.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		
		for(var i=1;i<=(naviReihe.length-1);i++){
			tabelle.removeChild(naviReihe[i]);
		}
		
		 naviReihe= new Array();
		 naviFeld= new Array();
		 
		 naviReihe[1]=document.createElement("tr");
		 tabelle.appendChild(naviReihe[1]);
		 
		 var anzahlReihen=1;
		 var anzahlFelder=0;
	
		// tr und td hinzufügen
		
		for(var i=1;i<=anzahlTreffer;i++){
			
			if(anzahlFelder%5==0 && anzahlFelder!=0){
				anzahlReihen++;
				naviReihe[anzahlReihen]=document.createElement("tr");
				tabelle.appendChild(naviReihe[anzahlReihen]);
			}
			anzahlFelder++;
			naviFeld[anzahlFelder]=document.createElement("td");
			//naviFeld[anzahlFelder].setAttribute("style","width:100px;");
			naviFeld[anzahlFelder].style.paddingRight="25px";
			naviReihe[anzahlReihen].appendChild(naviFeld[anzahlFelder]);
		}
		
		//td füllen
		
		for( var i=1; i<=anzahlFelder; i++){
			
			var y=document.createElement("span");
			y.style.cursor="pointer";
			
			y.style.color="red";
			y.onclick=new Function("naviAktualisieren("+xmlDOMnavi.getElementsByTagName("id")[i].childNodes[0].nodeValue+",'"+xmlDOMnavi.getElementsByTagName("name")[i].childNodes[0].nodeValue+"')");
			y.appendChild(document.createTextNode(xmlDOMnavi.getElementsByTagName("name")[i].childNodes[0].nodeValue));
			naviFeld[i].appendChild(y);	
		//
		}
		
		
	}
	
	
}

function miniZeigen(){


	if(req2.readyState== 4){
	
		
		var xmlDOM = req2.responseXML;
		var anzahlTreffer= xmlDOM.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		if(anzahlTreffer==0)
			document.getElementById("minitabelle").style.display="none";
		else
			document.getElementById("minitabelle").style.display="inline";
		
		
		bilder[0]=document.getElementById("mini1");
		bilder[1]=document.getElementById("mini2");
		bilder[2]=document.getElementById("mini3");
		bilder[3]=document.getElementById("mini4");
		bilder[4]=document.getElementById("mini5");
		var x=0;
		for(i=1;i<6;i++){
		
			x=xmlDOM.getElementsByTagName("id")[i].childNodes[0].nodeValue;
			if(x!="leer"){
				bilder[i-1].setAttribute("src","./galerie/mini/"+x+".jpg");
				bilderID[i-1]=x;
				bilderBenutzer[i-1]=xmlDOM.getElementsByTagName("benutzer")[i].childNodes[0].nodeValue;
				//alert(xmlDOM.getElementsByTagName("bilder")[i].childNodes[0].nodeValue);
				//alert("ID"+xmlDOM.getElementsByTagName("id")[i].childNodes[0].nodeValue);
				//alert("Benutzer"+xmlDOM.getElementsByTagName("benutzer")[i].childNodes[0].nodeValue);
				bilderBeschreibung[i-1]=xmlDOM.getElementsByTagName("beschreibung")[i].childNodes[0].nodeValue;
				bilderKommentare[i-1]=xmlDOM.getElementsByTagName("kommentare")[i].childNodes[0].nodeValue;
				bilder[i-1].style.display="inline";
			}
			else{
				bilder[i-1].setAttribute("src","leer");
				bilder[i-1].style.display="none";
			}
		
		
		}
		
		
		//Navibuttons zeigen oder nicht zeigen, das ist hier die Frage
		
		if(miniSeite==1)
			document.getElementById("zurueckbutton").src= "img/hp/go_previous_grey.png";
		else
			document.getElementById("zurueckbutton").src= "img/hp/go_previous.png";
			
		if(miniSeite*5+1>anzahlTreffer)
			document.getElementById("vorbutton").src="img/hp/go_next_grey.png";
		else
			document.getElementById("vorbutton").src="img/hp/go_next.png";
		
 	}


}

//welche Bilder werden denn für die integrierte Galerie gebraucht?

function bilderHolen(){


	if(req5.readyState== 4){
	
	


		var xmlDOM = req5.responseXML;
		var anzahlTreffer= xmlDOM.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		
		bild=document.getElementById("intBild");

		var temp = document.getElementById("bildnummer");
		anzahlBilderText = document.createTextNode("lala11");
		temp.appendChild(anzahlBilderText);
		
		



		
			for(i=0;i<anzahlTreffer;i++){

				bilderID[i]=xmlDOM.getElementsByTagName("id")[i+1].childNodes[0].nodeValue;
				bilderBenutzer[i]=xmlDOM.getElementsByTagName("benutzer")[i+1].childNodes[0].nodeValue;
				bilderBeschreibung[i]=xmlDOM.getElementsByTagName("beschreibung")[i+1].childNodes[0].nodeValue;;
				bilderKommentare[i]=xmlDOM.getElementsByTagName("kommentare")[i+1].childNodes[0].nodeValue;
		
			}

		anzahlBilderText.nodeValue=bilderBeschreibung[aktuellesBild] + " (Bild 1 von " + bilderID.length +")";

		}
}

//integr. Galerie: Nächstes Bild anzeigen:

function naechstesBild(){

	if(aktuellesBild+1<bilderID.length){	
		aktuellesBild=aktuellesBild+1;
	
		var bild = document.getElementById("intBild");
		bild.setAttribute("src","galerie/mittel/"+bilderID[aktuellesBild]+".jpg");
		bild.setAttribute("alt",bilderBeschreibung[aktuellesBild]);
		anzahlBilderText.nodeValue= bilderBeschreibung[aktuellesBild] + " (Bild " + (aktuellesBild+1) + " von " + bilderID.length +")";

	}
	
	if((aktuellesBild+1)>=bilderID.length){
		document.getElementById("vorwaertsButton").setAttribute("src","img/hp/go_next_grey.png");
	}
	else
		document.getElementById("vorwaertsButton").setAttribute("src","img/hp/go_next.png");

	if(aktuellesBild>0){
		document.getElementById("zurueckButton").setAttribute("src","img/hp/go_previous.png");
	}		
}

//integr. Galerie: Vorheriges Bild anzeigen:

function vorherigesBild(){

	if(aktuellesBild>0){	
		aktuellesBild=aktuellesBild-1;
	
		var bild = document.getElementById("intBild");
		bild.setAttribute("src","galerie/mittel/"+bilderID[aktuellesBild]+".jpg");
		bild.setAttribute("alt",bilderBeschreibung[aktuellesBild]);
		document.getElementById("vorwaertsButton").setAttribute("src","img/hp/go_next.png");
		anzahlBilderText.nodeValue= bilderBeschreibung[aktuellesBild] + " (Bild " + (aktuellesBild+1) + " von " + bilderID.length +")";
	}
	
	if(aktuellesBild==0){
		document.getElementById("zurueckButton").setAttribute("src","img/hp/go_previous_grey.png");
	}
	else
		document.getElementById("zurueckButton").setAttribute("src","img/hp/go_previous.png");
			
}


function bildZeigen(nummer){

	var bild=document.getElementById("hauptbild");
	bild.setAttribute("src","./galerie/normal/"+bilderID[nummer-1]+".jpg");
	var bildlink = document.getElementById("originalbildlink");
	bildlink.setAttribute("href","./galerie/original/bild"+bilderID[nummer-1]+".jpg");

	//Links einblenden
	aktuellesBild=bilderID[nummer-1];
	sjbenutzertext.nodeValue="Benutzer auf dem Bild: "+bilderBenutzer[nummer-1]; 
	sjbenutzer.onclick=new Function("PopUp(1,"+bilderID[nummer-1]+");");
	
	beschreibungtext.nodeValue=bilderBeschreibung[nummer-1];
	
	kommentaretext.nodeValue=bilderKommentare[nummer-1]+" Kommentare";
	kommentare.onclick=new Function("KPopUp("+bilderID[nummer-1]+");");
	location.hash="bild="+bilderID[nummer-1];

}

function seite_weiter(){

	if(document.getElementById("vorbutton").src.indexOf("grey")==-1)
		miniAktualisieren(miniSeite+1);
}

function seite_zurueck(){

if(document.getElementById("zurueckbutton").src.indexOf("grey")==-1)
	miniAktualisieren(miniSeite-1);
	
}


function naviAktualisieren(ebene, neueebene)
{
	galerie=ebene;
	if(!isNaN(ebene)) //ist es eine richtige Galerie oder nur spezielle Benutzerbilder?
 		sendRequestNavi(ebene);
 	miniAktualisieren(1);
 	
 	
 	
 	if(typeof neueebene!= "undefined"){ 	
 		leisteAktualisieren((naviebenentiefe+1),neueebene, ebene); 
 			
 	}

		

}

function miniAktualisieren(seite)
{
	sendRequestMini(seite);
	miniSeite=seite;


}

//Die Navileiste zeigt ganz oben an, wo man gerade ist. Mit ihr kann man auch zurücknavigieren

function leisteAktualisieren(ebenentiefe, ebenenname,ebene){

	/*
	ebenentiefe: Wie tief ist die neue Ebene?
	ebenenname: Wenn die Tiefe erhöht wird, wie heißt die neue Ebene
	ebene: welche ID hat die Galerie
	*/
	
	//da der Benutzer teilweise schneller ist als der Aufbau, muss ein Schutz eingebaut werden, dass die Leiste nicht auf Doppelklicks reinfällt
	
	
			
		
		if(ebenentiefe>naviebenentiefe){ //Leiste wird länger
			
			//es soll vermieden werden, dass bei Doppelklicks oder so die Ebene zweimal angefügt wird
			
			if(letzteEbene!=ebenenname){
				
				naviebene[ebenentiefe]=document.createElement("span");
				naviebene[ebenentiefe].appendChild(document.createTextNode(" > "));
				navileiste.appendChild(naviebene[ebenentiefe]);
				
				naviebene[ebenentiefe+1]=document.createElement("spam");
				naviebene[ebenentiefe+1].style.cursor="pointer";
				if(!isNaN(ebene)) //ist es eine richtige Galerie oder nur spezielle Benutzerbilder?
					naviebene[ebenentiefe+1].onclick=new Function("naviAktualisieren("+ebene+"); leisteAktualisieren("+(ebenentiefe)+");");
				naviebene[ebenentiefe+1].appendChild(document.createTextNode(ebenenname));
				naviebene[ebenentiefe+1].style.fontWeight="bolder";
				
				navileiste.appendChild(naviebene[ebenentiefe+1]);
				naviebenentiefe+=2;
				letzteEbene=ebenenname;
			}
			
			
		}
		else{ //Elemente werden ausgehängt
			
			
			for(i=ebenentiefe+2;i<=naviebenentiefe;i++){
			
				navileiste.removeChild(naviebene[i])
				
			}
			naviebenentiefe=ebenentiefe+1;
			
		
		}
	
		


}

function benutzerHinzufuegen(bildID){ //ein Benutzer hat sich auf dem Bild erkannt

	sendRequestBenutzerNeu(bildID);

}

function beschreibungAendern(bildID,beschreibung){

	sendRequestBeschreibungAendern(bildID,beschreibung);

}



function beschreibungpopup(){
	PopUp(2,aktuellesBild);
}



function init(){


	navileiste=document.getElementById("navileiste");
	tabelle=document.getElementById("galerienavi");
	
	naviebene[0]=document.createElement("span");
	naviebene[0].style.cursor="pointer";
	naviebene[0].onclick=new Function("naviAktualisieren(0); leisteAktualisieren(-1);");
	naviebene[0].style.fontWeight="bolder";
	naviebene[0].appendChild(document.createTextNode("Galerie"));
	navileiste.appendChild(naviebene[0]);
	
	//werdem alle Bilder eines bestimmten Nutzers abgefragt?
	if(location.hash.substr(1).indexOf("benutzer")==0){
		
		var benutzername=location.hash.substr(1).slice(9);
		naviAktualisieren(benutzername,benutzername);
	}
	else{
	naviAktualisieren(0);
	}
	
	
	sjbenutzer=document.getElementById("sjbenutzer");
	
	sjbenutzertext=document.createTextNode(" ");
	sjbenutzer.appendChild(sjbenutzertext);
	
	beschreibung=document.getElementById("beschreibung");
	beschreibungtext=document.createTextNode("");
	beschreibung.appendChild(beschreibungtext);
	
	kommentare=document.getElementById("kommentare");
	kommentaretext=document.createTextNode("");
	kommentare.appendChild(kommentaretext);

}
