var uploadElementeAktivitaeten = new Array('aktivitaetenBild');
var uploadGalerie = new Array('aktivitaetGalerieBild');
var uploadAktivitaeten;
var inhaltIDGalerie = 4;
var galerieIDGalerie = 5;
var anzahlBilderUpload = 0;
var stdBild = './Texturen/bildAuswaehlenAktivitaet.png';
var loeschenIcon = './Texturen/delete.png';
var bearbeitenIcon = './Texturen/edit.png';
var galerieLoeschenHTML = '<div style="height:0px;"><img class="galerieBildLoeschen" title="Bild l&ouml;schen" ' + 
							'style="position:relative;top:-7px;left:72px;z-index:90;" src="' + 
							loeschenIcon + '" /></div>';
var standardHTMLAktivitaetenVorschau = '<div class="floatLeft aktEintraegeLAbel">' +
											'<img id="labelAktEintraege" alt="Aktuelle Eintraege Label" src="./Texturen/aktEintraegeLabel.png">' +
										'</div>';
var galerieBildText = '<div class="clearBoth"><textarea class="galerieBildText"></textarea></div>';
var stdGalerieBildEintrag = '<div class="floatLeft galerieBildEintrag">' +
								'<input type="hidden" class="galerieID" value="0" />' +
								'<input type="hidden" class="galerieDBID" value="0" />' +
								'<div class="clearBoth"><img id="gallerieDummy" class="aktivitaetGalerieBild" alt="Button um neues Bild einzuf&uuml;gen"' +
								'src="./Texturen/neuesGaleriebildDummy.png" title="neuen Galerieeintrag anlegen"></div>' +
							'</div>';
var galerieBilderStd = '<div class="floatLeft galerieBildEintrag">' +
							'<img id="labelGalerieBild" alt="Gelariebilder Label" src="./Texturen/galeriebilderLabel.png">' +
						'</div>';

function bindeEventsAktivitaeten(){
	ladeBildHochAktivitaeten();
	ladeDatenAktivitaeten();
	ladeGaleriePlugin();
	
	//Aktivität speichern
	$('#aktivitaetUebernehmen').click(function(){speicherAktivitaet();});
	
	//Eingabefelder leeren
	$('#aktivitaetVerwerfen').click(function(){felderLeerenAktivitaet();});
}

function bindeIconEventsAktivitaeten(){
	$('.aktivitaetBearbeiten').click(function(){
		var element = $(this).parent().parent();
		
		felderLeerenAktivitaet();
		
		fuelleFelderAktivitaet(element);
	});
	
	$('.aktivitaetLoeschen').click(function(){
		var nachricht = 'Wollen Sie den Datensatz wirklich l'+ unescape("%F6") +'schen?';
		var id = $(this).parent().parent().find('.aktivitaetID').val();
		
		if(id > 0){
			//Falls der Benutzer den Datensatz wirklich löschen will (Benutzerabfrage)
			if(confirm(nachricht)){
				loescheAktivitaet(id);
			}
		}
	});
}

function bindeGalerieIconEvents(){
	$('.galerieBildLoeschen').click(function(){
		var nachricht = 'Wollen Sie den Datensatz wirklich l'+ unescape("%F6") +'schen?';
		var element = $(this).parent().parent().parent();
		
		if(confirm(nachricht)){
			loescheGalerieBild(element);
		}
	});
}

function ladeDatenAktivitaeten(){
	var post = 'Art=1&ID=' + $('#hiddenID').val();
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/aktivitaetenBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,							//Daten suchen
		success: function(data, status){
			zeigeDatenAnAktivitaeten(data);
		},
		error: function(xmlhttp, statzs, error){
			alert('Fehler bei der Kommunikation. Daten konnten nicht geladen werden! Bitte wenden Sie sich an Ihren Administrator!');
		}
	});
}

function zeigeDatenAnAktivitaeten(daten){
	/**
	 * daten
	 * 		.Container
	 * 				[0]
	 * 					.ID
	 * 					.Bild
	 * 					.Datum
	 * 					.Text
	 * 					.Title
	 * 				...
	 * 				[X]
	 * 				.length
	 */
	var html = '';
	var i;
	
	$('#aktivitaetenAnzeigen').empty();
	
	if(daten.Container){
		var container = daten.Container;
		//Jeden Container durchlaufen
		for(i = 0; i < container.length; i++){
			var zusatz = '?' + parseInt((Math.random()*20000), 10);
			html += '<div class="aktivitaet">' +
						'<input type="hidden" class="aktivitaetID" value="' + container[i].ID + '" />' +
						((i == 0) ? standardHTMLAktivitaetenVorschau : '') +
						'<div class="werkzeuge floatLeft">' +
							'<img class="aktivitaetBearbeiten" alt="Aktivit&auml;t bearbeiten" src="' + bearbeitenIcon + '" title="Aktivit&auml;t bearbeiten">' +
							'<img class="aktivitaetLoeschen" alt="Aktivit&auml;t l&ouml;schen" src="' + loeschenIcon + '" title="Aktivit&auml;t l&ouml;schen">' +
						'</div>' +
						'<div class="aktivitaetBild floatLeft">' +
							'<a href="' + container[i].Bild + '" rel="prettyPhoto[galleryAdmin' + i + ']" title="' + formatiereDiv(container[i].Title) + '">' + 
								'<img src="' + (container[i].Bild + zusatz) + '" alt="' + formatiereDiv(container[i].Title) +'" />' + 
							'</a>' +
							//Hier kommt die Galerie rein
							galerieHTML(container[i].Galerie, i, formatiereDiv(container[i].Title)) +
						'</div>' +
						'<div class="aktivitaetText floatLeft">' +
							'<strong class="aktivitaetDatum">' + formatiereDiv(container[i].Datum) + '</strong> | ' + 
								'<span class="category">' + $('#aktivitaetButtons .aktivitaetSelect option[value=' + container[i].Category + ']').text() + '</span><br><br>' +
							'<strong class="aktivitaetTitle">' + formatiereDiv(container[i].Title) + '</strong><br><br>' +
							'<span class="aktivitaetGesamterText">' + formatiereDiv(container[i].Text) + '</span>' +
						'</div>' +
					'</div>';
		}
		
		$('#aktivitaetenAnzeigen').append(html);
	}
	else{
		$('#aktivitaetenAnzeigen').append('<strong>Keine aktuellen Galerien vorhanden!</strong>');
	}
	
	//Die Events der Icons setzen
	bindeIconEventsAktivitaeten();
	
	//Galeriepluginevents neu laden
	ladeGaleriePlugin();
}

/**
 * Gibt den HTML-Code der Galerie aus
 * 
 * @param galerie		Die Daten der jeweiligen Galerie
 * @return String		Die HTML-Daten der Galerie
 */
function galerieHTML(galerie, id, title){
	var i;
	var galerieHTML = '';
	
	//Wenn die Galerie überhaupt vorhanden ist
	if(galerie){
		//Alle Galerie-Elemente durchlaufen
		for(i = 0; i < galerie.length; i++){
			var zusatz = '?' + parseInt((Math.random()*20000), 10);
			galerieHTML += '<a class="displayNone" href="' + (galerie[i].Bild + zusatz) + 
								'" rel="prettyPhoto[galleryAdmin' + id + ']" title="' + formatiereDiv(galerie[i].Text) + '">' +
									'<img alt="' + formatiereDiv(title) + '" />' +
							'</a>';
		}
	}
	
	return galerieHTML;
}

function speicherAktivitaet(){
	var category = $('#aktivitaetButtons .aktivitaetSelect option:selected').val();
	if(!category || category <= 0){
		alert(unescape('Bitte w%E4hlen Sie einen Speicherort f%FCr diesen Eintrag aus!'));
		return 0;
	}
	
	var post = 'Art=2&ID=' + $('#hiddenID').val() + '&Category=' + category;
	var galerieInfos = sucheGalerieInformationen();
	
	if($('#aktivitaetenDatum').val() == ''){
		alert('Das Datum muss angegeben werden!');
		return 0;
	}
	if($('#aktivitaetenUeberschrift').val() == ''){
		alert('Der Titel muss angegeben werden!');
		return 0;
	}
	if($('#aktivitaetenText').val() == ''){
		alert('Der Text muss angegeben werden!');
		return 0;
	}
	if($('#aktivitaetenBild').attr('src') == '' || $('#aktivitaetenBild').attr('src') == stdBild
		|| $('#aktivitaetenBild').attr('src') == ajaxIndicator){
		alert('Das Bild muss angegeben werden! (Ist es vielleicht zu gross?)');
		return 0;
	}
	if(galerieInfos == false){
		alert('Ein Galeriebild ist nicht richtig gesetzt! Bitte korregieren!');
		return 0;
	}
	
	post += '&Datum=' + formatiereURI($('#aktivitaetenDatum').val()) + 
			'&Title=' + formatiereURI($('#aktivitaetenUeberschrift').val()) +
			'&Text=' + formatiereURI($('#aktivitaetenText').val()) +
			'&Bild=' + formatiereBildPfad($('#aktivitaetenBild').attr('src'));
	
	
	post += galerieInfos;
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/aktivitaetenBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,							//Daten suchen
		success: function(data, status){
			felderLeerenAktivitaet();
			ladeDatenAktivitaeten();
		},
		error: function(xmlhttp, statzs, error){
			alert('Fehler bei der Kommunikation. Daten konnten nicht gespeichert werden! Bitte wenden Sie sich an Ihren Administrator!');
		}
	});
}

/**
 * Löscht die Aktivität mit den dazugehörigen Bild + Galerien
 */
function loescheAktivitaet(id){
	var post = 'Art=3&ID=' + id;
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/aktivitaetenBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,							//Daten suchen
		success: function(data, status){
			felderLeerenAktivitaet();
			ladeDatenAktivitaeten();
		},
		error: function(xmlhttp, statzs, error){
			alert('Fehler bei der Kommunikation. Daten konnten nicht geloescht werden! Bitte wenden Sie sich an Ihren Administrator!');
		}
	});
}


function loescheGalerieBild(element){
	var galerieBildID = $(element).find('.galerieID').val();
	var galerieOrdnerID = $(element).find('.galerieDBID').val();
	
	var post = 'Art=5&ID=' + galerieOrdnerID + '&BildID=' + galerieBildID;
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/aktivitaetenBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,							//Daten suchen
		success: function(data, status){
			felderLeerenAktivitaet();
			ladeDatenAktivitaeten();
		},
		error: function(xmlhttp, statzs, error){
			alert('Fehler bei der Kommunikation. Galeriebild konnte nicht geloescht werden. Bitte wenden Sie sich an Ihren Administrator!');
		}
	});
}

/**
 * Sucht die Daten der Galerie
 * 
 * @return	String		Die POST Daten für den AJAX-Request
 */
function sucheGalerieInformationen(){
	//Stellt die Anzahl der Elemente dar
	var laenge = 0;
	var post = '';
	var ok = true;
	
	//Jedes Galeriebild durchlaufen
	$('.galerieBildEintrag').each(function(){
		var bild = $(this).find('.aktivitaetGalerieBild');
		//Falls keins gesetzt ist, wird dies das label sein
		if(bild.length <= 0)		bild = $(this).find('#labelGalerieBild');
		var id = parseInt($(this).find('.galerieID').val(), 10);
		
		if($(bild).attr('src') == ajaxIndicator || $(bild).attr('src') == ''){
			ok = false;
		}
		
		//Die Bilder müssen auch Galeriebilder sein, daher müssen das dummy- und labelbild ausgeschlossen werden
		if($(bild).attr('id') != 'labelGalerieBild' && $(bild).attr('id') != 'gallerieDummy'){
			post += '&GallerieBild' + laenge + '=' + formatiereBildPfad($(bild).attr('src')) + '&GallerieText' + laenge + '=' + 
						formatiereURI($(bild).parent().parent().find('.galerieBildText').val());
			
			//0 Stellt ein neues Galeriebild dar und alles andere ein schon vorhandenes
			post += '&GallerieBildID' + laenge + '=' + id;
			laenge++;
		}
	});
	
	if(ok == false){
		return ok;
	}
	
	//Anzahl der Elemente
	post += '&GalerieLaenge=' + laenge;
	
	return post;
}

/**
 * Füllt die Eingabefelder mit den jeweiligen Daten
 */
function fuelleFelderAktivitaet(element){
	var zusatz = '?' + parseInt((Math.random()*20000), 10);
	$('#aktivitaetenDatum').val($(element).find('.aktivitaetDatum').text());
	$('#aktivitaetenUeberschrift').val($(element).find('.aktivitaetTitle').text());
	$('#aktivitaetenText').val(formatiereInput($(element).find('.aktivitaetGesamterText').html()));
	$('#hiddenID').val($(element).find('.aktivitaetID').val());
	$('#aktivitaetenBild').attr('src', ($(element).find('.aktivitaetBild a img').attr('src') + zusatz));
	$('#aktivitaetButtons .aktivitaetSelect option').each(function(){
		//Wenn die richtige Aktivität
		if($(this).text() == $(element).find('.category').text()){
			$(this).attr('selected', true);
			return false;
		}
	});
	
	fuelleFelderGalerie($(element).find('.aktivitaetID').val());
}

/**
 * Füllt die Galerie mit den jeweiligen Daten, die per AJAX geladen werden
 * 
 * @param id		Die ID der Aktivität
 */
function fuelleFelderGalerie(id){
	var post = 'Art=4&ID=' + id;
	
	//AJAX-Request senden
	$.ajax({
		async: "async",
		url: "./PHP/CMS/aktivitaetenBearbeiten.ajax.php",
		type: "POST",
		dataType: "json",
		data: post,							//Daten suchen
		success: function(data, status){
			galerieFuellen(data, id);
		},
		error: function(xmlhttp, statzs, error){
			alert('Fehler bei der Kommunikation. Galeriebilder konnten nicht geladen werden! Bitte wenden Sie sich an Ihren Administrator!');
		}
	});
}

/**
 * Füllt die Felder mit den jeweiligen Daten
 * 
 * @param daten		Die Daten, mit der die Galerie gefüllt werden soll
 * @param id		Die ID der Galerie (bzw. Aktivität)
 */
function galerieFuellen(daten, id){
	/**
	 * daten
	 * 		[0]
	 * 			.ID
	 * 			.Text
	 * 			.Bild
	 * 		...
	 * 		[X]
	 * 		.length
	 */
	if(daten){
		if(daten.length){
			if(daten.length > 0){
				//Galeriedaten leeren und neu füllen
				$('#aktivitaetBilder').empty();
				
				//GalerieHTML erzeugen
				var galerieHTML = galerieBilderStd;
				var i;
				
				//Alle Daten durchlaufen
				for(i = 0; i < daten.length; i++){
					var zusatz = '?' + parseInt((Math.random()*20000), 10);
					var bild = daten[i];
					
					
					galerieHTML += '<div class="floatLeft galerieBildEintrag">' +
										'<input class="galerieID" type="hidden" value="' + bild.ID + '"/>' +
										'<input class="galerieDBID" type="hidden" value="' + id + '"/>' +
										'<div class="clearBoth">' +
											'<img style="position:relative;z-index:10;" class="aktivitaetGalerieBild" alt="Bild der aktuellen Aktivit&auml;t" src="' + (bild.Bild + zusatz) + '">' +
											galerieLoeschenHTML +
										'</div>' +
										'<div class="clearBoth"><textarea class="galerieBildText">' + formatiereInput(bild.Text) + '</textarea></div>' +
									'</div>';
				}
				
				galerieHTML += stdGalerieBildEintrag;
				
				//Die Galerie füllen
				$('#aktivitaetBilder').append(galerieHTML);
				
				ladeBildHochAktivitaeten();
				bindeGalerieIconEvents();
			}
		}
	}
}

/**
 * Alle Felder der Eingabe leeren
 */
function felderLeerenAktivitaet(){
	$(':text').val('');
	$('textarea').val('');
	$('#hiddenID').val('0');
	$('#aktivitaetenBild').attr('src', stdBild);
	
	//Galerie Zurücksetzen
	$('#aktivitaetBilder').empty();
	$('#aktivitaetBilder').append((galerieBilderStd + stdGalerieBildEintrag));
	
	//Erste Kategorie als aktiv setzen
	$('#aktivitaetButtons .aktivitaetSelect option:first').attr('selected', true);
	
	anzahlBilderUpload = 0;
	
	ladeBildHochAktivitaeten();
}

function ladeBildHochAktivitaeten(){
	//Aktivitätenbilder
	for(i in uploadElementeAktivitaeten){
		ajaxUpLoadAktivitaeten(uploadElementeAktivitaeten[i], false);
	}
	//Galeriebilder
	for(i in uploadGalerie){
		ajaxUpLoadAktivitaeten(uploadGalerie[i], true);
	}
}

function ajaxUpLoadAktivitaeten(id, galerie){
	//Galerie Upload
	if(galerie == true){
		//Jedes Galeriebild durchlaufen
		$('.' + id).each(function(){
			new AjaxUpload($(this), {
				  onSubmit: function(file, extension){
					this.disable();
					var ok = false;
					extension = extension[0].toLowerCase();
		
					//Hier kommen die erlaubten Extensions rein - Immer anpassen
					var erlaubteExtensions = new Array('jpeg', 'jpg', 'bmp', 'png', 'gif');
					var i;
					
					//Jede Extension durchlaufen und überprüfen
					for(i in erlaubteExtensions){
						if(extension == erlaubteExtensions[i])	ok = true;
					}
					
					if(ok == false){ 
						alert(unescape('Dieser Dateityp wird nicht unterst%FCtzt!'));
						this.enable();
						return false;
					}

					//Die ID des jeweiligen Galeriebildes
					var inhaltGalerieIDGalerie = parseInt($(this._button.parentNode).parent().find('.galerieID').val(), 10);
					  
					//Falls es ein neues Galeriebild ist, müssen die Felder neu gesetzt werden
					var bild = $(this._button.parentNode).find('.aktivitaetGalerieBild');
					//Ajax Indicator setzen
					$(bild).attr('src', ajaxIndicator);
					if($(bild).attr('id') == 'gallerieDummy'){
					  neuesGalerieBild(bild);
					}

					//Bevor alle Daten gesendet werden, müssen die richtigen POST-Daten gesetzt werden
					this.setData({'inhalt':galerieIDGalerie, 'inhaltID':inhaltGalerieIDGalerie, 'galerieNr':$('#hiddenID').val(), 'anzahlBilder':(anzahlBilderUpload-1)});
				  },
				  onComplete: function(file, response) {
					  if(response.fehler != 1){
						  bildUpdateAktivitaeten(response.datei, $(this._button.parentNode).find('.aktivitaetGalerieBild'), galerie);
					  }
					  else{
						  alert(response.nachricht);
					  }
					  
					  bindeGalerieIconEvents();
					  
					  //Upload wieder aktivieren
					  this.enable();
				  }
			});
		});
	}
	//Aktivitäten Upload
	else{
		//Setzt für jedes Element die jeweiligen AJAX-Uploader | Aktivitäten
		uploadAktivitaeten = new AjaxUpload($('#' + id), {
			  onSubmit: function(file, extension){
				this.disable();
				var ok = false;
				extension = extension[0].toLowerCase();

				//Hier kommen die erlaubten Extensions rein - Immer anpassen
				var erlaubteExtensions = new Array('jpeg', 'jpg', 'bmp', 'png', 'gif');
				var i;

				//Jede Extension durchlaufen und überprüfen
				for(i in erlaubteExtensions){
					if(extension == erlaubteExtensions[i])	ok = true;
				}

				if(ok == false){ 
					alert(unescape('Dieser Dateityp wird nicht unterst%FCtzt!'));
					this.enable();
					return false;
				}
				
				//Ajax Indicator setzen
				$(this._button.parentNode).find('#aktivitaetenBild').attr('src', ajaxIndicator);
				//Bevor alle Daten gesendet werden, müssen die richtigen POST-Daten gesetzt werden
				this.setData({'inhalt':inhaltIDGalerie, 'inhaltID':$('#hiddenID').val()});
			  },
			  onComplete: function(file, response) {
				  if(response.fehler != 1){
					  bildUpdateAktivitaeten(response.datei, id, galerie);
				  }
				  else{
					  alert(response.nachricht);
				  }
				  
				  bindeGalerieIconEvents();
				  
				  //Upload wieder aktivieren
				  this.enable();
			  }
		});
	}
}

function bildUpdateAktivitaeten(datei, id, galerie){
	var zusatz = '?' + parseInt((Math.random()*20000), 10);
	//Galeriebild updaten
	if(galerie){
		$(id).attr('src', (datei + zusatz));
		$(id).parent().append(galerieLoeschenHTML);
	}
	//Aktivitätenbild updaten
	else{
		$('#aktivitaetFrontdaten #' + id).attr('src', (datei + zusatz));
	}
}

/**
 * Setzt das Dummy Bild um eine Stelle weiter und fügt das textareafeld unter dem Bild an
 * 
 * @param bild		Der Knoten, wo das Bild reingefügt wurde
 */
function neuesGalerieBild(bild){
	var dummy = '<div class="floatLeft galerieBildEintrag">' +
					'<input type="hidden" class="galerieID" value="0" />' +
					'<input type="hidden" class="galerieDBID" value="0" />' +
					'<div class="clearBoth"><img id="gallerieDummy" class="aktivitaetGalerieBild" alt="Button um neues Bild einzuf&uuml;gen"' + 
						'src="./Texturen/neuesGaleriebildDummy.png" title="neuen Galerieeintrag anlegen"></div>' +
				'</div>';
	
	anzahlBilderUpload++;
	
	//Textfeld hinzufügen
	$(bild).parent().parent().append(galerieBildText);
	
	//Attribut des Bildes ändern
	$(bild).attr('alt', 'Bild der aktuellen Aktivit&auml;t');
	
	//Dummyid entfernen
	$(bild).removeAttr('id');
	
	//Dummy anfügen
	$(bild).parent().parent().parent().append(dummy);
	
	//Uploadevents hinzufügen
	ladeBildHochAktivitaeten();
	bindeGalerieIconEvents();
}

function initializeAktivitaetenBearbeiten(){
	$('#aktivitaetBilder').append(stdGalerieBildEintrag);
	bindeEventsAktivitaeten();
}
