db = new Array();
setting = new Array();
var req = null;

var schreibe = "";
var ausgabe = "";

// Hält die Wiedergabe an
function stop(){ 
	window.clearTimeout(aktiv);
	window.clearTimeout(aktiv2);
	window.clearTimeout(aktiv3);
}

// Fährt mit der Wiedergabe fort
function play(){ 
	aktiv = setTimeout(so_xfade,setting[0]*1000);
}



// Empfängt das XML Dokument, wertet es aus und trägt die Daten in das Array db bzw. setting ein
function handleShowCase(){

	switch(req.readyState) {
		case 4:
		if(req.status!=200) {
			alert("Fehler:"+req.status);
		}else{
			//antwort des servers 
			xml = req.responseXML;
			x = xml.getElementsByTagName("bild");

			xsetting = xml.getElementsByTagName("setup");
			//schreiben des ergebnisses

			
			for (i=0;i<x.length;i++){

    				id=x[i].getElementsByTagName("id");
    				bildpfad=x[i].getElementsByTagName("bildpfad");
      				width=x[i].getElementsByTagName("width");
    				height=x[i].getElementsByTagName("height");
    				autosize=x[i].getElementsByTagName("autosize");
      				anzeigedauer=x[i].getElementsByTagName("anzeigedauer");
    				order=x[i].getElementsByTagName("order");
				
				db[i] = new Array();
				db[i][0] = id[0].firstChild.data;
				db[i][1] = bildpfad[0].firstChild.data;
				db[i][2] = width[0].firstChild.data;
				db[i][3] = height[0].firstChild.data;
				db[i][4] = autosize[0].firstChild.data;
				db[i][5] = anzeigedauer[0].firstChild.data;
				db[i][6] = order[0].firstChild.data;

  			}

				
			for (index=0;index<xsetting.length;index++){

    				id=xsetting[index].getElementsByTagName("id");
    				interval=xsetting[index].getElementsByTagName("interval");
    				imagesetting=xsetting[index].getElementsByTagName("imagesetting");
    				scwidth=xsetting[index].getElementsByTagName("scwidth");
				navi=xsetting[index].getElementsByTagName("navigation");
				scheight=xsetting[index].getElementsByTagName("scheight");
				link=xsetting[index].getElementsByTagName("link");

				setting[0] = interval[0].firstChild.data;
				setting[1] = imagesetting[0].firstChild.data;
				setting[2] = scwidth[0].firstChild.data;
				setting[3] = scheight[0].firstChild.data;
				setting[4] = navi[0].firstChild.data;
				setting[5] = link[0].firstChild.data;
				
  			}


			for(zahler=0;zahler<db.length;zahler++){

				switch(setting[1]){
					case "1":
					ausgabe='<a href="index.php?linkid='+setting[5]+'"><img src="'+db[zahler][1]+'" style="width:'+db[zahler][2]+'px;height:'+db[counter][3]+'px" /></a>';
					break;
	
					case "2":
					ausgabe='<a href="index.php?linkid='+setting[5]+'"><img src="./components/graphic/classes/bildrechner.php?file=../../../'+db[zahler][1]+'&width='+setting[2]+'" /></a>';
					break;
	
					case "3":
					ausgabe='<a href="index.php?linkid='+setting[5]+'"><img src="./components/graphic/classes/bildrechner.php?file=../../../'+db[zahler][1]+'&height='+setting[3]+'" /></a>';
					break;
				}

				schreibe = schreibe + ausgabe;
			}

			// Hier wird der Div Conatiner (ImageContainer) mit dem korrekten bild gefüllt.

			document.getElementById("ImageContainer").innerHTML=schreibe;


			// Soll die Navigationsleiste angezeigt werden? Wenn ja, geschieht das hier.
			if(setting[4]==1){
				document.getElementById("scnavigation").innerHTML='<img src="./img/adminkit/showcasedeluxe/pause.gif" onClick="stop()" style="cursor:pointer" /><img src="./img/adminkit/showcasedeluxe/play.gif" style="cursor:pointer" onClick="play()" />';
			}
			so_init();


		}
		break;

		default:
			return false;
		break;
	}
}


var d = document;
var imgs = new Array();
zInterval = null;
current=0;
pause=false;

function so_init() {
	if(!d.getElementById || !d.createElement)return;

	imgs = d.getElementById("ImageContainer").getElementsByTagName("img");
	for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;
	imgs[0].style.display = "block";
	imgs[0].xOpacity = .99;

	aktiv = setTimeout(so_xfade,setting[0]*1000);
}

function so_xfade() {
	cOpacity = imgs[current].xOpacity;
	nIndex = imgs[current+1]?current+1:0;

	nOpacity = imgs[nIndex].xOpacity;
	
	cOpacity-=.05; 
	nOpacity+=.05;
	
	imgs[nIndex].style.display = "block";
	imgs[current].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgs[current]); 
	setOpacity(imgs[nIndex]);
	
	if(cOpacity<=0) {
		imgs[current].style.display = "none";
		current = nIndex;
		aktiv2 = setTimeout(so_xfade,setting[0]*1000);
	} else {
		aktiv3 = setTimeout(so_xfade,50);
	}
	
	function setOpacity(obj) {
		if(obj.xOpacity>.99) {
			obj.xOpacity = .99;
			return;
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
	}
	
}

















// Funktion ist dafür zuständig das Generieren des XML Dokuments in Gang zu setzen. Ist das XML generiert wird handleShowCase ausgeführt
window.onload = function getShowCaseImages(){
			
	//erstellen des requests
	try{
		req = new XMLHttpRequest();
	}
	catch (e){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (failed){
				req = null;
			}
		}
	}
	if (req == null)
		alert("Error creating request object!");
		//anfrage erstellen (GET, url ist localhost,
		//request ist asynchron
		var url = './modules/showcasedeluxe/classes/getShowCaseImages.php';
		req.open("GET", url, true);
		//Beim abschliessen des request wird diese Funktion ausgeführt 
		req.onreadystatechange = handleShowCase; 
		req.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
		//req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		req.send(null);
}

