/*
 * 
*******************
2025-06-16:
Da leider kein CRON auf dem Webserver läuft, kann 'checkfuehrung' bis auf 
Weiteres nicht weiter gepflegt bzw. ausgeführt werden. 'checkfuehrung' ist 
für dieses Programm )beoanswer) hier notwendig.
*******************

 */
$(document).ready(function() {

	let sendobject = {
			stattgefunden: false,
			anzahl: 0,
			spende:0,
			betrag:0,
			rem:'',
			newtermin: '1900-01-01',
	};
	let ajaxURL = '../../intern/sofue/php/sofueDB.php'	
	$('#versn').html("Version: " + VERSION + ' vom ' + VDATE);
	
	console.log("von php:",  url_id);
	
	// Daten der Führung holen
	if(url_id != null) {
		doAjaxCall_arr(ajaxURL,{cmd: 'GET_ONE', id: url_id}, enterajaxerg);
	} else {
		alert("Keine ID übergeben");
		return false
//		throw new Error("Keine ID übergeben");
	}

	function enterajaxerg(erg) {
		console.log(erg)
		let t = $('#sofueHead').html();
		$('#sofueHead').html(t+(erg.wtermin).substr(0,10));
		$('#sofueName').html('für ' + erg.name);
		
		}

	// Change bei 'stattgefunden'
	$('#inputstatt').change(function() {
		let s = $('input[name="statt"]:checked').val(); 
		console.log(s);
		if(s == "nein") {
			showAbsage();
			sendobject.stattgefunden=false;
		} else if (s=='ja') {
			showBesucher();
			sendobject.stattgefunden=true;
		}
	});

	// der JA-Zweig
	function showBesucher() {
		$('#besucher').removeClass("hide");
	}

	$('#beszahl').keydown(e=>{
		let keycode = e.keyCode || e.which;
		if(keycode == 13) {
			besucher = $('#beszahl').val();
			if($.isNumeric(besucher)) {
				console.log(besucher);
				sendobject.anzahl = besucher;
				showSpende();
			} else {
				alert("Nur Ziffern eingeben");
			}
		}
	});
	
	$('#btnOK0').click(()=>{
		besucher = $('#beszahl').val();
		if($.isNumeric(besucher)) {
			console.log(besucher);
			sendobject.anzahl = besucher;
			showSpende();
		} else {
			alert("Nur Ziffern eingeben");
		}
	});

	
	function showSpende() {
		$('#diespende').removeClass("hide");
	}
	
	$('#inputspend').change(function() {
		let spende=0;
		let s = $('input[name="spend"]:checked').val(); 
		console.log(s);
		if(s == "bar") {
			spende=1;
			showBarspende();
		} else {
			showRemark();
			if (s=='ueberweis') {
				spende=2;
			} else if (s=='kasse') {
				spende=3;
			}
		}
		sendobject.spende = spende;
	});

	function showBarspende() {
		$('#barspend').removeClass("hide");
	}
	
	$('#barsp').keydown(e=>{
		let keycode = e.keyCode || e.which;
		if(keycode == 13) {
			let barsp = $('#barsp').val();
			if($.isNumeric(barsp)) {
				console.log(barsp);
				sendobject.betrag = barsp;
				showRemark();	
			} else {
				alert("Nur Ziffern eingeben");
			}
		}
	});
	
	$('#btnOK1').click(()=>{
		let barsp = $('#barsp').val();
		if($.isNumeric(barsp)) {
			console.log(barsp);
			sendobject.betrag = barsp;
			showRemark();	
		} else {
			alert("Nur Ziffern eingeben");
		}
	});

	$('#btnOK2').click(()=>{
		sendobject.rem = $('#remark').val();
		showFertig();	
	});
	
	function showRemark() {
		let p = $('#btnOK2').offset();
		$('#btnOK2').offset({top: p.top-10, left: p.left});
		$('#remarks').removeClass('hide');
	}
	
	function showFertig() {
		$('#fertig').removeClass("hide");
		$('#btnsend').removeClass("hide");
	}
	
	// der NEIN-Zweig
	function showAbsage() {
		$('input[name="nostatt"]').prop('checked',"");
		$('#inputabs').removeClass("hide");
	}

	// Change bei 'nicht stattt'
	$('#inputabs').change(function() {
		let s = $('input[name="nostatt"]:checked').val(); 
		console.log(s);
		if(s == "abgesagt") {
			showFertig();
		} else if (s == "verschoben") {
			showVerschoben();
		}
		});

 	function showVerschoben() {
		$('#verschbn').removeClass("hide");


		// Picker für den neuen Termin
		$('#newtermin').datetimepicker(                      // Initialisierung des datetimepickers 
				{ 
					addSliderAccess: true,
					sliderAccessArgs: { touchonly: false },
					showOn: 'focus' ,                        // onFocus wird der Picker angezeigt
					timeFormat: 'HH:mm',
					showMinute: true,
					stepMinute: 15,
//					showSecond: false,
//					showMillisec: false,
//					showMicrosec: false,
//					showTimezone: false,
					hourMin: 13,
					dateFormat: "yy-mm-dd",                  // angezeigt wird in diesem Format
					minDate: "+1d",  		                   // min Datum: morgen
					closeText: "OK",                         // erst wenn OK geklickt wird, dann gehts weiter
					timeText: "Uhrzeit",                     // Texte dazu
					hourText: "Stunde",
					onClose: function (dateText, inst) {       // was passiert, wenn OK gedrückt wird:
						if(dateText != "") {
							var dt = moment(dateText).format('YYYY-MM-DD HH:mm');
							$("#newtermin").html(dt);
							sendobject.newtermin=dt;
							showFertig();
						}
					}
				});
	}
	
	// Datepicker auf Deutsch einstellen
	$.datepicker.regional['de'] = {
	      closeText: '',
	      prevText: '<',
	      nextText: '>',
	      currentText: '',
	      monthNames: ['Januar','Februar','M&auml;rz','April','Mai','Juni',
	      'Juli','August','September','Oktober','November','Dezember'],
	      monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun',
	      'Jul','Aug','Sep','Okt','Nov','Dez'],
	      dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
	      dayNamesShort: ['SON','MON','DIE','MIT','DON','FRE','SAM'],
	      dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
	      weekHeader: 'KW',
	      dateFormat: 'yyyy-mm-dd',
	      firstDay: 1,
	      isRTL: false,
	      showMonthAfterYear: false,
	      yearSuffix: ''
	    };
	$.datepicker.setDefaults($.datepicker.regional['de']);    // diese Einstellung nun übernehmen

	// Buttons
	$('#btncancel').click(()=>location.reload());

	$('#btnsend').click(()=>{
		console.log("Sende an Datenbank:");
		console.log(sendobject);
		clearAll(0);
		let cmd = {	
				stattgefunden: sendobject.stattgefunden ? 1 : 0,
				id:  url_id,
				cmd: 'UPDATEAFTER'
		};
		if(sendobject.stattgefunden) {						// der Termin hat stattgefunden
			cmd.besucher = sendobject.anzahl;
			cmd.remark = sendobject.rem;
			cmd.bezahlt =  (function() {
				console.log("sendobjc:", sendobject);
				if( sendobject.spende == 1 ) {
					return `bar Kasse (€${sendobject.betrag})`;
				}  else if (sendobject.spende == 2) {
					return 'Überweisung';
				} else if (sendobject.spende == 3) {
					return 'Spendenkasse';
				} else return 'Keine';
			})()
		} else {											// der Termin hat NICHT stattgefunden
			cmd.besucher = sendobject.anzahl;
			cmd.remark = '';
			cmd.bezahlt = 'Keine';
			if(sendobject.newtermin != '1900-01-01') {
				cmd.wtermin = sendobject.newtermin;			// er wurde verlegt, also gibts einen neuen Wunschtermin
			} else {
				cmd.status = 3;								// nicht stattgefunden -> abgesagt
			}
		}
		console.log(cmd);
		if(url_id != null) {
			doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
		}
	});

	function clearAll(was) {
		$('#tosend').addClass('hide');
		$('#inputstatt').addClass('hide');
		$('#fertig').addClass('hide');
		$('#verschbn').addClass('hide');
		$('#inputabs').addClass('hide');
		$('#besucher').addClass('hide');
		$('#diespende').addClass('hide');
		$('#barspend').addClass('hide');
		$('#remarks').addClass('hide');
	}

	
	function showajaxerg(erg) {
		console.log("AjaxErg: ", erg);
		$('#beendet').removeClass('hide');
		}
	
	// Klick auf den Anleitungs-Button
	$('#btnMan').click(function() {
		$("#anleitung").dialog('open');
	});
		
	
	// 3. Dialog für die Anleitung
	// 		Dieser hat KEINEN Button (wird über das Schließkreuz beendet) und
	// 		eine etwas kleinere Schrift
	$("#anleitung").dialog({
		autoOpen: false,
		width: 400,
		modal: true,
		position: {my: 'top', at: 'top', of: window },
		title: 'Anleitung',
		open:
			function() {
				$(this).load('beoanswer.html');
		},			
		buttons: [
			{
				text: "Abbrechen",
				click : function() {
					$(this).dialog("close");
				},
				width: 150,
			}
			],
	});

	
	
});
