//Reihenfolge sollte nicht verändert werden
var uploadElementePromis = new Array('cbild');
var uploadPromis;
var inhaltPromi = 2;
var neuerContainerOption = '<option value="0">Neuer Container</option>';
var standardBild = './Texturen/platzhalterBild.png';

function bindeEventsProminenteBearbeiten(){
	$('#containerAuswahl').change(function(){
		var id = $(this).val();
		
		//Daten zum uploadPromis aktualisieren
		uploadPromis.setData({'inhalt':inhaltPromi, 'inhaltID':id});
		
		sucheDatenProminenteBearbeiten(false);
		
		if(id == 0){
			$('#loescheContainer').css('display', 'none');
			werteZurueckSetzenPromis();
		}
		else{
			$('#loescheContainer').removeAttr('style');
		}
	});
	$('#startseiteAendern').click(function(){
		datenSpeichernProminente();
	});
	$('#startseiteLeeren').click(function(){
		sucheDatenProminenteBearbeiten(true);
	});
	$('#loescheContainer').click(function(){
		//Es muss eine Auswahl getätigt sein
		if($('#containerAuswahl').val() > 0){
			var nachricht = 'Wollen Sie den Datensatz wirklich l'+ unescape("%F6") +'schen?';
			//Falls der Benutzer den Datensatz wirklich löschen will (Benutzerabfrage)
			if(confirm(nachricht)){
				loescheProminenten();
			}
		}
	});
	
	ladeBildHochPromis();
}

function ladeBildHochPromis(){
	for(i in uploadElementePromis){
		ajaxuploadPromis(uploadElementePromis[i]);
	}
}

function ajaxuploadPromis(id){
	//Setzt für jedes Element die jeweiligen AJAX-uploadPromiser
	uploadPromis = new AjaxUpload($('#container .' + id), {
		  onSubmit: function(file, extension){
			  //Ajax Indicator setzen
			  $(this._button.parentNode).find('img').attr('src', ajaxIndicator);
		  },
		  onComplete: function(file, response) {
			  if(response.fehler != 1){
				  bildUpdatePromis(response.datei, id);
			  }
			  else{
				  alert(response.nachricht);
			  }
			  
			  //uploadPromis wieder aktivieren
			  this.enable();
		  }
	});
	
	//Aktuelle Daten setzen
	uploadPromis.setData({'inhalt':inhaltPromi, 'inhaltID':$('#containerAuswahl').val()});
}

function bildUpdatePromis(datei, id){
	var zusatz = '?' + parseInt((Math.random()*20000), 10);
	$('#container .' + id + ' img').attr('src', (datei + zusatz));
}

/**
 * Alle Daten suchen und in die Felder einsetzen.
 * 
 * @param willkommen		Bestimmt, ob die Willkommensnachricht auch aktualisiert werden soll, oder nicht
 */
function sucheDatenProminenteBearbeiten(willkommen){
	var post = 'Art=1&ID=' + $('#containerAuswahl').val() + '&Willkommen=' + (willkommen == true ? '1' : '0');
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/prominenteBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,
		success: function(data, status){
			zeigeAlleDatenProminenteBearbeitenAn(data, willkommen);
		},
		error: function(xmlhttp, statzs, error){
			//Anmeldung fehlgeschlage => Fehlernachrichten
			$('#loginNachricht').parent().parent().find('h2').text('Fehler beim Logout!').css('color', '#F00');
			$('#loginNachricht').text('Es konnte keine Verbindung aufgebaut werden!').css('color', '#000');
		}
	});
}

function datenSpeichernProminente(){
	//POST-Daten füllen
	var post = 'Art=2' + 
				'&ID=' + $('#containerAuswahl').val() + 
				'&Willkommensnachricht=' + formatiereURI($('#einfuehrungsText').val()) + 
				'&Title=' + formatiereURI($('#container .cueberschrift').val()) +
				'&Text=' + formatiereURI($('#container .cbeschreibung').val()) +
				'&Bild=' + formatiereBildPfad($('#container .cbild img').attr('src'));
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/prominenteBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,
		success: function(data, status){
			werteZurueckSetzenPromis();
			sucheDatenProminenteBearbeiten(true);
		},
		error: function(xmlhttp, statzs, error){
			//Anmeldung fehlgeschlage => Fehlernachrichten
			$('#loginNachricht').parent().parent().find('h2').text('Fehler beim Logout!').css('color', '#F00');
			$('#loginNachricht').text('Es konnte keine Verbindung aufgebaut werden!').css('color', '#000');
		}
	});
}

function loescheProminenten(){
	//POST-Daten füllen
	var post = 'Art=3' + '&ID=' + $('#containerAuswahl').val();
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/prominenteBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,
		success: function(data, status){
			$('#containerAuswahl').val($('#containerAuswahl option:first').val());
			werteZurueckSetzenPromis();
			sucheDatenProminenteBearbeiten(true);
		},
		error: function(xmlhttp, statzs, error){
			//Anmeldung fehlgeschlage => Fehlernachrichten
			$('#loginNachricht').parent().parent().find('h2').text('Fehler beim Logout!').css('color', '#F00');
			$('#loginNachricht').text('Es konnte keine Verbindung aufgebaut werden!').css('color', '#000');
		}
	});
}

/**
 * Zeigt alle Daten auf der Startseite zum bearbeiten an
 * 
 * @param daten		Die Daten als Objekt
 */
function zeigeAlleDatenProminenteBearbeitenAn(daten, alle){
	/**	Datenstruktur:
	 * 
	 * daten
	 * 		.Willkommensnachricht
	 * 		.Container
	 * 			.Title
	 * 			.Text
	 * 			.Bild
	 * 		.ContainerIDs
	 * 			[0]		ID des ersten Elements
	 * 			...
	 * 			[X]
	 * 			.length		Die Anzahl der Elemente
	 */
	var container = daten.Container;
	var i;
	
	//Alle Daten in die jeweiligen Felder füllen
	if(daten.Willkommensnachricht){
		$('#einfuehrungsText').val(formatiereInput(daten.Willkommensnachricht));
	}
	
	if(alle == true){
		var selectContainer = neuerContainerOption;
		if(daten.ContainerIDs){
			//Wird nur hinzugefügt, wenn auch IDs mit angegeben sind
			for(i = 0; i < daten.ContainerIDs.length; i++){
				selectContainer += '<option value="' + daten.ContainerIDs[i] + '">Container ' + (i+1) + '</option>';
			}
		}
	}
	
	if(container){
		$('#container .cueberschrift').val(formatiereInput(container.Title));
		$('#container .cbeschreibung').val(formatiereInput(container.Text));
		
		//Bild muss auch gesetzt sein
		if(container.Bild != null && container.Bild != ''){
			var zusatz = '?' + parseInt((Math.random()*20000), 10);
			$('#container .cbild img').attr('src', (container.Bild + zusatz));
		}
	}
	
	if(alle == true)
		//Alle Optionen zur SELECT-Box hinzufügen
		$('#containerAuswahl').empty().append(selectContainer);
}

function werteZurueckSetzenPromis(){
	$('#container :input').val('');
	$('#container .cbild img').attr('src', standardBild);
	$('#loescheContainer').css('display', 'none');
}

function initializeProminente(){
	bindeEventsProminenteBearbeiten();
	sucheDatenProminenteBearbeiten(true);
}
