function addZero(d) {
	
		if (d < 10) {
			return "0"+d;
		} else {
			return d;
		} // if-else
	
	} // function
	
function setActualDate() {
	if ($("#selectedDate").val() == "") {
		var d = new Date()
		var month = d.getMonth();
		var now = addZero(d.getDate())+"."+addZero((month+1))+"."+d.getFullYear();
		$("#selectedDate").val(now);
	} // if
} // function 

function updateExistingReservations(vereinUrl) {
	
	$.ajax({
		type: "POST",
		url: url+"/"+vereinUrl+"/aktuelle_reservierungen",
		data: "dummy=true",
		beforeSend: function(e) {
			$("#ajaxAktResLoader").show();
		},
		success: function(e) {
			$("#ajaxAktResLoader").hide();
			$("#aktuelleReservierungen").html(e);
		} // success
	});	// ajax		
	
} // function

function showReservierungen (vereinUrl, actPage) {
	
	$.ajax({
		type: "POST",
		url: url+"/"+vereinUrl+"/aktuelle_reservierungen",
		data: "page="+actPage,
		beforeSend: function(e) {
			$("#ajaxAktResLoader").show();
		},
		success: function(e) {
			$("#ajaxAktResLoader").hide();
			$("#aktuelleReservierungen").html(e);
		} // success
	});	// ajax	
	
} // function

/**
* function showSelectedResource
* purpose: loads the timetable for the selected resource
* params: lang, resourceId
**/
function showSelectedResource(lang, vereinUrl, resourceId) {
	
	setActualDate();
	//set Value in the hidden field
	$("#selectedResource").val(resourceId);
	
	if ($("#selectedDate").val() != "") {
		$.ajax({
			type: "POST",
			url: url+"/"+vereinUrl+"/zeitplan",
			data: "selectedDate="+$("#selectedDate").val()+"&platz="+resourceId,
			beforeSend: function(e) {
				$("#ajaxPlatzLoader").show();
			},
			success: function(e) {
				$("#ajaxPlatzLoader").hide();
				$("#schedule").html(e);
				// zur zeit bestehende reservierungen updaten
				updateExistingReservations(vereinUrl);
			} // success
		});	// ajax			
	} else {
		alert("Bitte ein Datum w&auml;hlen!");	
	} // if-else
	
} // function


function checkReservationForm(lang, vereinUrl, rights) {

	var errorMessages = setErrorMessages(lang);
	var error = false;
	if (rights == "admin") {
		if ($("#folgetermin").attr('checked')) {
			var fields = new Array('enddatum', 'reservierungsTitle', "interval");
		} else {
			var fields = new Array("spieler1");
			for (var i=2; i <=4; i++) {
				if ($("#spieler"+i).val() != "") {
					fields.push('spieler'+i);
				} // if
			} // for
		} // if		
	} else {
		var fields = new Array('spieler2');	
		if ($("#spieler3").val() != "") {
			fields.push('spieler3');
		} // if
		if ($("#spieler4").val() != "") {
			fields.push('spieler4');
		} // if
	} // if-else
	
	if (fields.length > 0) {
		for(i=0; i<=fields.length-1; i++) {
			if ($("#"+fields[i]).val() == "" ||  $("#"+fields[i]).val() == -1 || $("#"+fields[i]).val() == errorMessages[0]) {
				error = true;
				$("#"+fields[i]).addClass('input_error').val(errorMessages[0]);
			} else {
				$("#"+fields[i]).removeClass('input_error');
			} // if-else
		} // for
	} // if
	
	if (error) {
		return false;	
	} else {
		$.ajax({
			type: "POST",
			url: url+"/"+vereinUrl+"/platz_reservieren",
			data: $("#reservationForm").serialize(),
			beforeSend: function(e) {
				$("#ajaxReservierungenLoader").show();
			},
			success: function(e) {
				// hide reservieren Button
				$("#platzReservieren").remove();
				$("#reservationSuccessMessage").html(e);
				$("#ajaxReservierungenLoader").hide();
				if (rights == "user") {
					updateReservationAmount($("#spieler1").val(), vereinUrl, 'de');
				} // if
				showSelectedResource('de', vereinUrl, $("#platz").val());
			},
			error: function(e) {
				$("#ajaxReservierungenLoader").hide();
			}
		}); // ajax
		return false;
	} // if-else

} // function

function updateReservationForm(lang, rights) {

	var errorMessages = setErrorMessages(lang);
	var error = false;
	if (rights == "admin" && $("#folgetermin").attr('checked')) {
		var fields = new Array('enddatum', 'buchungsTitel');
	} else {
		var fields = new Array('spieler2');	
	} // if-else
	
	if (fields.length > 0) {
		for(i=0; i<=fields.length-1; i++) {
			if ($("#"+fields[i]).val() == "" ||  $("#"+fields[i]).val() == -1 || $("#"+fields[i]).val() == errorMessages[0]) {
				error = true;
				$("#"+fields[i]).addClass('input_error').val(errorMessages[0]);
			} else {
				$("#"+fields[i]).removeClass('input_error');
			} // if-else
		} // for
	} // if
	
	if (error) {
		return false;	
	} else {
		$.ajax({
			type: "POST",
			url: url+"/"+lang+"/reservierung_updaten",
			data: $("#reservationForm").serialize(),
			beforeSend: function(e) {
				$("#ajaxLoader").show();
			},
			success: function(e) {
				$("#reservationSuccessMessage").html(e);
				$("#ajaxLoader").hide();
			},
			error: function(e) {
				$("#ajaxLoader").hide();
			}
		}); // ajax
		return false;
	} // if-else

} // function

function updateReservationAmount(userId, vereinUrl, lang) {

	$.ajax({
			type: "POST",
			url: url+"/"+vereinUrl+"/update_credits",
			data: "userId="+userId,
			success: function(e) {
				$("#credits").html(e);
			} // success
		}); // ajax

} // function


/**
* function editSelectedResource
* regelt die übergabe der werte aus den select boxen im Plätze Reiter im Vereinsprofil
* call: tennis_l_ajax_verein_plaetze
**/
function editSelectedResource(vereinUrl, lang, id) {

	if ($("#resourceFreiplatz").val() == -1 && $("#resourceHallenplatz").val() == -1) {
		$("#platzResultDiv").html('Bitte w&auml;hlen Sie einen Platz aus den Sie editieren m&ouml;chten').addClass('input_error');
	} else {
		$.ajax({
			type: "POST",
			url: url+"/"+vereinUrl+"/vereinsprofil/get_platz_info",
			data: "id="+$("#resource"+id).val(),
			beforeSend: function(e) {
				$("#ajaxLoader").show();
			},
			success: function(e) {
				$("#platzResultDiv").html(e);
				$("#ajaxLoader").hide();
			}, // success
			error: function(e) {
				$("#platzResultDiv").html('Fehler: Bitte versuchen Sie es sp&auml;ter nocheinmal!');
				$("#ajaxLoader").hide();
			}
		}); // ajax	
	} // if-else
}


function toggleDropdowns(id, lang, vereinUrl) {
	
	var fields = new Array();
	for (var i=1; i<=4; i++) {
		if ($("#spieler"+i).val() == -1 || $("#spieler"+i).val() > 0) {
			fields.push("spieler"+i);
		} // if
	} // for
	
	// spieler 1 und spieler 2 dropdowns ausblenden
	if ($("#"+id).attr('checked')) {
		for(i=0; i<=fields.length-1; i++) {
			$("#"+fields[i]+"Row").hide();
		} //for
		// buchungstitel und enddatum einblenden
		showFolgeTerminInterface(vereinUrl);
	} else {
		for(i=0; i<=fields.length-1; i++) {
			$("#"+fields[i]+"Row").show();
		} //for	
		// reservierungsTitle und enddatum removen
		$("#reservierungsTitelRow").remove();
		$("#endDatumRow").remove();
		$("#intervalRow").remove();
	} // if-else
} // function

function showFolgeTerminInterface(vereinUrl) {
	$.ajax({
		type: "POST",
		url: url+"/"+vereinUrl+"/show_folgetermin_interface",
		data: "id=1&startDatum="+$("#reserviert_von").val(),
		beforeSend: function(e) {
			$("#ajaxReservierungenLoader").show();
		},
		success: function(e) {
			$("#ajaxReservierungenLoader").hide();
			$("#folgeTerminRow").after(e);
		} // success
	}); // ajax	
	return false;
} // function

function deleteReservation(vereinUrl, relPlatz, reservierungsId, userId, lang) {
	
	var folgeTerminId = 0;
	if ($("#folgeTerminId").length && $("#folgetermineCheckBox").is(':checked')) {
		folgeTerminId = $("#folgeTerminId").val();
	} // if
	
	$.ajax({
		type: "POST",
		url: url+"/"+vereinUrl+"/confirm_reservierung_loeschen",
		data: "platz="+relPlatz+"&reservierungen_id="+reservierungsId+"&userdata_id="+userId+"&folgeTerminId="+folgeTerminId,
		success: function(e) {
			if (e) {
				showSelectedResource(lang, vereinUrl, relPlatz);
				updateReservationAmount(userId, vereinUrl, lang);	
				$("#reservationDelMessage").html(e);
			} else {
				$("#reservationDelMessage").html(e);
			} // if-else
		}
	}); // ajax	
	return false;

} // function

//als admin muss auch das spieler2 select befüllt werden
function getPartner(relVerein, userId, playerNr, lang, val, timestamp, relPlatz) {
	
	if (val != -1) {
		$.ajax({
			type: "POST",
			url: url+"/"+relVerein+"/get_partner",
			data: "myId="+userId+"&playerNr="+playerNr+"&userId="+val+"&timestamp="+timestamp+"&relPlatz="+relPlatz,
			beforeSend: function(e) {
				$("#ajaxReservierungenLoader").show();
			},
			success: function(e) {
				// nur dann ein 2tes Element hinzufügen, wenn noch keines besteht
				if (playerNr <= 2 && $("#spieler2Row").length == 0) {
					$("#spieler"+(playerNr-1)+"Row").after(e);
				} else {
					$("#spieler2Row").remove();
					$("#spieler1Row").after(e);
				}
				$("#ajaxReservierungenLoader").hide();
				//updateVereinsRessourcen(vereinsId, lang);
			},
			error: function(e) {
				//$("#platzErrorMessages").html('Fehler: Bitte versuchen Sie es sp&auml;ter nochmals.');	
				$("#ajaxReservierungenLoader").hide();
			}
		}); // ajax
	} else {
		
	} // if-else
	
} // function

function toggleDouble(relVerein, userId, playerNr, lang, val) {

	if (val != -1) {
		var doubleLink = "<a href='javascript:void(0)' onclick='return getDoublePlayer(\""+relVerein+"\", "+userId+", "+playerNr+", \""+lang+"\")'>Doppel?</a>";
		// falls schon ein Dropdown für Spieler 3 + Spieler 4 besteht müssen diese wieder entfernt werden
		for (var i=3; i<=4; i++) {
			if($("#spieler"+i+"Row").length > 0) {
				$("#spieler"+i+"Row").remove();
			}
		} // for
	} else {
		var doubleLink = "<a href='javascript:void(0)' onclick='return removeDoublePlayer(\""+relVerein+"\", "+userId+", "+playerNr+", \""+lang+"\")'>kein Doppel?</a>";
	} // if-else
	
	$("#doubleLink").html(doubleLink);
	
} // function

function removeDoublePlayer(relVerein, userId, playerNr, lang) {
	
	if (playerNr > 3) {
		playerNr = 3;	
	} // if
	// doubleLinks auf Doppel setzen
	toggleDouble(relVerein, userId, playerNr, lang, 1);
	// tr der Doppelspieler wieder entfernen
	if ($("#spieler3Row").html()) {
		$("#spieler3Row").remove();
	} // if 
	if ($("#spieler4Row").html()) {
		$("#spieler4Row").remove();
	} // if
	
	// remove error messages
	$("#reservationSuccessMessage").removeClass('input_error').html('');

} // function

function getDoublePlayer(relVerein, userId, playerNr, lang) {
	
	var availablePlayers = new Array();
	
	// doubleLink auf kein Doppel setzen
	toggleDouble(relVerein, userId, playerNr, lang, -1);
	
	$("select#spieler"+(playerNr-1)+" option").each(function(a, b) {
		if ($("#spieler"+(playerNr-1)).val() != b.value && b.value != -1) {
			availablePlayers.push(b.value);
		} // if
	}); // each
	$("#reservationSuccessMessage").html('').removeClass('input_error');
	// es dürfen maximal 4 spieler an einem doppelteilnehmen
	if (playerNr <= 4) {
		$.ajax({
				type: "POST",
				url: url+"/"+relVerein+"/get_double_players",
				data: "availablePlayers="+availablePlayers+"&playerNr="+playerNr,
				beforeSend: function(e) {
					$("#ajaxReservierungenLoader").show();
				},
				success: function(e) {
					// nur dann ein viertes Element hinzufügen, wenn noch keines besteht
					if (playerNr <= 4 && $("#spieler4Row").length == 0) {
						$("#spieler"+(playerNr-1)+"Row").after(e);
					} else {
						$("#spieler"+(playerNr)+"Row").remove();
						$("#spieler"+(playerNr-1)+"Row").after(e);
					} // else
					$("#ajaxReservierungenLoader").hide();
					//updateVereinsRessourcen(vereinsId, lang);
				},
				error: function(e) {
					//$("#platzErrorMessages").html('Fehler: Bitte versuchen Sie es sp&auml;ter nochmals.');	
					$("#ajaxReservierungenLoader").hide();
				}
			}); // ajax
	} // if
		return false;
	
} // function

function delReservierung(resId) {
	$("#"+resId).trigger('click');
} // function
