	
	//Parameter forcepdf: erzwingt einen Druck über pdf, weil ich es nicht geschafft habe invoicebonPdfPrint hier drinnen zu setzen
	function seite_drucken(printRequest=false, requestId=false, requestFunktion=false, forcepdf=false)
	{	
		if (forcepdf == true){
			invoicebonPdfPrint="ja";
		}
		
		if(typeof invoicebonPdfPrint != 'undefined' && invoicebonPdfPrint.toLowerCase() == 'ja' && printRequest=='ein_aus_zahlungen'){	
			
			$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {	funktion:'ein_auszahlung_drucken_pdf', requestId:requestId, requestFunktion:requestFunktion 	},
				async: true,
				success:function(response){
				
				}
			});
			
		}
		
		else if(typeof invoicebonPdfPrint != 'undefined' && invoicebonPdfPrint.toLowerCase() == 'ja' && printRequest=='bonjournalInvoicePrint'){	

			$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {	funktion:"bon_ausdrucken_pdf", requestId:requestId, requestFunktion:requestFunktion, printRequest:printRequest	},
				async: true,
				success:function(response){

					
				}
			});
			
		}
		
		else if( printRequest=='bonjournalInvoicePrint_A4'){	
			$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {	funktion:"bon_ausdrucken_a4_pdf", requestId:requestId, requestFunktion:'bonJournalPrint'	},
				async: true,
				success:function(response){
						if(checkJson(response) == true) {
							respArray=JSON.parse(response);
							if(respArray[1] == 'browserPrint'){
								window.open(respArray[2], '_blank');
							//	console.log("global js line 60: -> browser ?: "+respArray[0]+" / "+respArray[1]+" / "+respArray[2]);
							}
						}
						else  console.log("global js line 60: -> string ajax response: "+response);
					
				}
			});
		}
		
		else if(typeof invoicebonPdfPrint != 'undefined' && invoicebonPdfPrint.toLowerCase() == 'ja' && (printRequest=='kassenabschluss' || printRequest=='kassenabrechnung' )){
			
			abschlOnUserData="";
			if(printRequest=='kassenabschluss'){
				abschlussModus=false;
				checkMode=$("#hiddenUserAbrechEnablerField").val();

				if(requestId == 0) requestId= $("#hiddenUserAbrechEnablerField").val();
				if(checkMode > 0 && requestId > 0){
					$("#hiddenUserAbrechEnablerField").val( requestId);
					abschlOnUserData = $("#hiddenUserAbrechIdField").val();
				}
			}
			
			else{
					abschlussModus="kassenabrechnungBenutzer";
					abschlOnUserData = abschlUserId;
			}	
			$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {	funktion:'kassenabschluss_ausdrucken_pdf', requestId:requestId, requestFunktion:requestFunktion, abschlOnUser:abschlOnUserData, abschlussModus:abschlussModus	},
				async: true,
				success:function(response){
				
				}
			});
		}
		
		else if(typeof invoicebonPdfPrint != 'undefined' && invoicebonPdfPrint.toLowerCase() == 'ja' && printRequest=='kassenbericht'){   

			requestDateFrom=$( "input[name='datum_von']" ).val();
			requestDateTo=$( "input[name='datum_bis']" ).val();
			
			$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {	funktion:'kassenbericht_ausdrucken_pdf', requestDateFrom:requestDateFrom, requestDateTo:requestDateTo, requestFunktion:requestFunktion	},
				async: true,
				success:function(response){
				
				}
			});
		}
		
		else if(printRequest=='mobilesDevice'){
			if(requestFunktion== false && $("#kassieren_id").css("display") == "block"){
				requestFunktion="invoice";
			}
			printGastro(requestId, requestFunktion);
			return false;
		}
		
		else{
			$('#fenster_rechts').css({ "height":"auto", "padding":"0", "margin":"0"		});
			$('#bonKopfzeile, #bonFusszeile').css({'display':'block'});

			if(printRequest != false && printRequest.toLowerCase() == 'invoiceprint' && invoiceMultiPrint*1 > 1){
				for(i=0; i < invoiceMultiPrint; i++){
					window.print();
				}
			}
			else{
				window.print();	
				if(printRequest != false && printRequest.toLowerCase() == 'invoiceprint' && gastroVersion == 'ja' 
					&& retourgeldPopUp != 'ja' && moveToTische == 'ja'){
						window.location.href = 'tische.php';
				}				
			}
			$('#bonKopfzeile, #bonFusszeile').css({'display':'none'});
			$('#fenster_rechts').css({ "height":$("#fenster_links").height()		});
			

		}

	}
	

	// Hier wird der Storno php ausgeführt und dann der Bon ausgedruckt
	function validate_formular_storno()
	{	
		if (document.forms["formular_storno"]["storno_grund"].selectedIndex == 0) {
				openGeneralDialog('validateFormStorno', 'Fehlender Storno Grund', '<p>Bitte Storno Grund auswählen</p>', 'wrapper_bon');
			return false;	
		}
		if (document.forms["formular_storno"]["storno_zahlungsart"].selectedIndex == 0) {
				openGeneralDialog('validateFormStorno', 'Fehlender Storno Zahlungsart', '<p>Bitte Zahlungsart auswählen</p>', 'wrapper_bon');
			return false;
		}		
		$.ajax({
			type: "POST",
			url: "ajax_funktionen.php",
			dataType : "html",
			data: $("#formular_storno").serialize(),
			async: false,
			success:function(html){
				$("#fenster_rechts").html(html);
				$('#bonKopfzeile').css({'display':'block'});
				$('#bonFusszeile').css({'display':'block'});
				if(invoicebonPdfPrint.toLowerCase() != 'ja') seite_drucken();  // wenn pdf print gesetzt ist, wird der ausdruck (pdf) in ajax_funktionen "storniere_bon_ausfuehren()" aufgerufen
				window.location.reload(true); 
				$('#bonKopfzeile').css({'display':'none'});
				$('#bonFusszeile').css({'display':'none'});
				bonDisplayDivHeight=$('#fenster_links').height();
			//	$('#stornoBillWrapper').css({'height':bonDisplayDivHeight+'px', 'padding':'3px', 'background':'#555'});
				setTimeout(function () {location.reload(true); }, 2000);
				
			}
		});
		
	}
	
	
	function printGastroSupply(requestId, requestFunktion){
		if($("#bonContent > [id^=line]").length > 0 && supplyPdfPrint.toLowerCase() == 'ja' ){	
			$.ajax({
				type: "POST",
				url: "include/ajax_functions_gastro.php",
				dataType : "html",
				data: { functionKey:'printGastroSupply', requestId:requestId, requestFunktion:requestFunktion  },
				async: true,
				success:function(response){
					if (response.toLowerCase().indexOf('success') !== -1){ 
						response = response.replace(/success/gi, ''); 
						$("#error_message").html(response);
						if(logOutIndicator == true) window.location.href = "user_logoff.php";
						else if(logOutIndicator == false)window.location.href = "tische.php";
					}
				}
			
			});
			
		}
		else{	
			if(logOutIndicator == true) window.location.href = "user_logoff.php";
			else if(logOutIndicator == false)window.location.href = "tische.php";
			return false;	
		}

	}
	

	// check die Zahlungsarten des original bons bei storno mit auszahlung, Rechnung entsprechend, warnung bei Bank und/oder Bankomat. 
	function validateZahlungsarten(bonId){
		if($("#stornoPaymentSelect option:selected").val() == "asInvoice"){
			
			xmlhttp=GetXmlHttpObject();
			xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
			sendCont="functionKey=checkPaymentTypeStorno&originalBonId="+bonId;
		
			xmlhttp.send(sendCont);
			resp=xmlhttp.responseText;
			
			if(resp != false){
				openGeneralDialog('paymentWarning', 'Zahlungsart Hinweis', resp, 'wrapper_bon'); 
			}
			else return false;
		}	
	}
	
	
	
	
	// Ziffern bei der bezahlung gedrückt, Bar, Gutscheine tc. befüllen   --- Wird vom Ziffernblock aufgerufen
	function zahlung_ziffer_gedrueckt(ziffer)
	{		
		// Einlesen welche Eingabe aktiv ist
		element=document.getElementById("aktive_zahlungsart").value;

		if (ziffer===".") {
			// Es wurde ein Punkt eingefügt aber es ist schon ein Punkt drinnen	
			console.log("aktiveZahlungsart: "+element+" / "+ziffer);
			str=document.getElementById(element.toString()).value;
			if(str.indexOf('.') !== -1) {
				return;
			}
			else document.getElementById(element.toString()).value = document.getElementById(element.toString()).value+ziffer;
		}
		else if (ziffer==="\*") return;   //Bei Mal nichts machen;
		else if (ziffer=="CE") {
				document.getElementById(element.toString()).value = "";
		}
		else if(ziffer === 'Enter') {
			if(element == 'gutschein_nr_ip'){
				var e = jQuery.Event("keypress");
				e.which = 13;
				e.keyCode = 13;
				$("#gutschein_nr_ip").trigger(e);
				
			}
			else return;
		}
		else if(ziffer === gutscheinPrefix){
			if(element == 'gutschein_nr_ip'){
				str=document.getElementById(element.toString()).value;
				if(str.indexOf(gutscheinPrefix) === -1) document.getElementById(element.toString()).value = ziffer+str;
				$("#gutschein_nr_ip").focus();
			}
			else return;
		}
		
		
		else
		{
			document.getElementById(element.toString()).value = document.getElementById(element.toString()).value+ziffer;
			
		}
		zahlung_gedrueckt();
	//	update_produkt_editieren(element.toString());
	}
	
	function ziffer_gedrueckt_edit_modal(ziffer){
		
		activeField=$("#activeEditField").val();
		if(activeField== false){
			activeField='editieren_brutto';
		//	activeField=$('#produkt_editieren_id .zahlungsart_geld:first').attr('id');		// wenn kein element gesetzt ist (durch anclicken od aufruf von automatisch editieren) nehm das erste mit dieser classe
		}	
		if (ziffer=="CE") { 
			activeFieldId=$("#"+activeField).attr("id");
			if( activeFieldId == 'beilagenTxtFieldMinus' || activeFieldId == 'beilagenTxtFieldPlus'){
				$("#beilagenTxtFieldMinus, #beilagenTxtFieldPlus, #BeilagenSumBrutto, #BeilagenSumBruttoDisplay").val("");
				$("#beilagenSum").val('cleared');
			}		
			 else $("#"+activeField).val(""); 
			return;
		}
		if (ziffer==="." && activeField != 'editieren_produktname') {
			// Es wurde ein Punkt eingefügt aber es ist schon ein Punkt drinnen	
			str=document.getElementById(activeField.toString()).value;
			if(str.indexOf('.') !== -1){
				return;
			}
		}
		if (ziffer==="\*") { return false;			}
		
		else {
			document.getElementById(activeField.toString()).value = document.getElementById(activeField.toString()).value+ziffer;
		
		}
		update_produkt_editieren(activeField.toString());	
	}
	
	
	function ziffer_gedrueckt_splitbon_modal(ziffer, disableasterisk=false){
		
		element='splitbon_stueck';
		
		if (ziffer==="."){
			// Es wurde ein Punkt eingefügt aber es ist schon ein Punkt drinnen					
				//str=document.getElementById(element.toString()).value;
			str=$("#splitbon_stueck").val()+"";
			if(str.indexOf('.') !== -1) {
				return false;
			}
		}
		if (ziffer==="\*") { return false;			}
		if (ziffer=="CE") { $("#splitbon_stueck").val(""); }
		else{
			zahl=document.getElementById(element.toString()).value+ziffer;
			zahl=zahl.replace(/^0+(?!\.|$)/, '')  //Schneide führende 0 weg, wenn nur 0 ist dann lass es stehen
			document.getElementById(element.toString()).value = zahl;
		}

	}
		// Wenn eine Zahl aus dem Ziffernblock gedrückt wird - gilt für Hauptmenü verkauf
	
	
	function ziffer_gedrueckt(ziffer, disableasterisk=false){
		
		// Einlesen ob derzeit Preis oder Stueck eingabe aktiv ist
		element=document.getElementById("toggle").value;
		
		if (ziffer=="Enter"){				
				if($("#toggle").val() == 'preis'){
					eElem=document.getElementById("preis");
					check_ean('enterKey', eElem);
				}
				else if($("#toggle").val() == 'stueck'){
					sStueck=$("#preis").val();
					pPreis=$("#stueck").val();
					$("#preis").val(pPreis);
					$("#stueck").val(sStueck);
					eElem=document.getElementById("preis");
					check_ean('enterKey', eElem);
					
				}
				return;
		}
		if (ziffer==="."){
			// Es wurde ein Punkt eingefügt aber es ist schon ein Punkt drinnen	
			str=document.getElementById(element.toString()).value;
			if(str.indexOf('.') !== -1) 
			{
				$("#"+element).focus();	
				return;
			}
		}
		
		
		if (ziffer==="\*")
		{
			if (!disableasterisk)
			{
				str=document.getElementById("toggle").value;
				if(str=="preis") 
				{
					document.getElementById("toggle").value="stueck";
					$("#stueck").focus();
				}
				else{
					document.getElementById("toggle").value="preis";
					$("#preis").focus();
					
				}
				return;
			}
			else return;   // Wenn der * disabled ist, dann wieder zurück ohne Aktion
		}
		
		
		if (ziffer=="CE")			
		{		
			if (!disableasterisk){
				eingabefelder_loeschen();	
			}
			else {
				if (document.getElementById('wechselgeld')) document.getElementById("wechselgeld").value="0"; 	
					//Wenn asterisk disable ist, dann ist es das Wechselgeld - pfui schiach programmiert
				if (document.getElementById('gesamt_betrag')){
						// das kommt von ein auszahlung
							//document.getElementById("gesamt_betrag").value="0";
						if(element=='bemerkung')$("#"+element).val('').focus();
						else $("#"+element).val('0').focus();
						
				}
			}
		}
		
		else
		{			
			zahl=document.getElementById(element.toString()).value+ziffer;
						// in Version 1.67 führende Null erlauben, Barcode Funktionalität
						//zahl=zahl.replace(/^0+(?!\.|$)/, '')  //Schneide führende 0 weg, wenn nur 0 ist dann lass es stehen
			document.getElementById(element.toString()).value = zahl;
			$("#"+element).focus();		
			//document.getElementById(element.toString()).value = document.getElementById(element.toString()).value+ziffer;
		}
		
		
		//set_focus();			geändert, set_focus setzt immer aufs preis/ean feld -> nicht immer richitg
	}
	
	function ziffer_gedrueckt_gutscheinmodal(ziffer){
		
		activeElem=$("#gutschModalFocusIndicator").val();
		if(ziffer == 'Enter' && activeElem == 'gutscheinKarteModalIp'){
			var e = jQuery.Event("keypress");
			e.which = 13; //choose the one you want
			e.keyCode = 13;
			$("#gutscheinKarteModalIp").trigger(e);
		}
		else if(ziffer == 'Enter' && activeElem != 'gutscheinKarteModalIp'){
			return false;
		}
		else if(ziffer == 'CE'){
			$("#"+activeElem).val('').focus();

		}
		else if(ziffer == '.' && activeElem == 'gutscheinKarteValueToLoad'){
			str=document.getElementById(activeElem.toString()).value;
			if(str.indexOf('.') === -1) document.getElementById(activeElem.toString()).value = str+ziffer;
			else return false;

		}
		else if(ziffer == '.' && activeElem != 'gutscheinKarteValueToLoad'){
			return false;
		}
		else if(ziffer == '-' && activeElem == 'gutscheinKarteValueToLoad'){
			str=document.getElementById(activeElem.toString()).value;
			if(str.indexOf('-') === -1) document.getElementById(activeElem.toString()).value = ziffer+str;
			else document.getElementById(activeElem.toString()).value = document.getElementById(activeElem.toString()).value.replace("-", "");

		}
		else if(ziffer == gutscheinPrefix ){
			if(activeElem == 'gutscheinKarteModalIp'){
				str=document.getElementById(activeElem.toString()).value;
				if(str.indexOf(gutscheinPrefix) === -1) document.getElementById(activeElem.toString()).value = ziffer+str;
			}
		}
		else{
			zahl=document.getElementById(activeElem.toString()).value+ziffer;
			if(activeElem == 'gutscheinKarteValueToLoad')zahl=zahl.replace(/^0+(?!\.|$)/, '')  //Schneide führende 0 weg, wenn nur 0 ist dann lass es stehen
			document.getElementById(activeElem.toString()).value = zahl;
		}
	}
	
	function formatNumberKp(pparams, event=false){
		if(pparams.value.indexOf(',') != -1){
			corrVal=pparams.value.replace(',', '.');
				if(corrVal != '.' &&  isNaN(corrVal*1) == true){
						corrVal="Eingabe Fehler.";
						if(pparams.id=='stueck') $('#error_message').html(' Ungültiger Wert im Eingabefeld Stückzahl.');
				}	
			
			$('#'+pparams.id).val(corrVal);
		}
		if(pparams.id=='gesamt_betrag'){
			if(isNaN(pparams.value)) $(".ea_buchung_durchfuehren").prop( "disabled", true );
			else $(".ea_buchung_durchfuehren").prop( "disabled", false );
		}
	}
	
		// check and correct the input by phpmyEdit fields. this fields do not have id's so we have do handle this by class names
		$(document).ready(function(){
			$("input.sitPos_replaceComma[type=text]").keyup(function(e){
				$(e.currentTarget).prop({'id': 'temp_id'});
				formatNumberKp(this);
			});
			
			$(".selectOnClick").click(function () {
				$(this).select();
			});
			
		});
	
		
		
	function retourgeldDialog(moneyGet, moneyReturn, billSum){
			
			// Die Beträge werden als String übergeben, in ajax_function formatiert.
		$("#dialog-confirm").html("<div class='retourgeldDialogDiv'><div class='retourgeldDialogTxt' >Betrag Erhalten: </div><div id='retourgeldDialogBetr' class='retourgeldDialogBetr'>"+moneyGet+"</div><div class='cclear'></div><div class='retourgeldDialogTxt' >Retourgeld: </div><div class='retourgeldDialogBetr'>"+moneyReturn+"</div><div class='cclear'></div></div>");
		$("#dialog-confirm").dialog({
			resizable: false,
			open: function(event, ui) { $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); },
			modal: true,
			title: '',
			height: 'auto',
			width: 400,
			position: { my: "center", at: "center", of: "#wrapper" },
			dialogClass:'retourgeldDialog',
				buttons: {
					"1": { id: 'retourgeldButClose', text: 'Fenster schließen', click: function(){ 
							$(this).dialog("close"); }, "class":" button_gross orange" }				
				}
			
			});

	}
	
		//   gesamten Bon Löschen Funktion !!!!
	function fnOpenNormalDialog() {	
	

	if($('#aktueller_bon').val() === undefined) { return false;	}
	else currentBon=$('#aktueller_bon').val();
	
	$("#dialog-confirm").html("<p class='bonStornoDialogTxt' >Gesamten Bon, "+currentBon+" L&ouml;schen </p>");
    $("#dialog-confirm").dialog({
			resizable: false,
			open: function(event, ui) { $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); },
			modal: true,
			title: '',
			height: 'auto',
			width: 400,
			position: { my: "center", at: "center", of: "#wrapper" },
			dialogClass:'bonStornoDialog',
			buttons: {
				"1": { id: 'bonStornoDialogButL', text: "Bon Stornieren", click: function(){ 
							deleteOpenBon();
							$(this).dialog("close"); }, "class":"bonStornoButTxt" 
					},
				"2": { id: 'bonStornoDialogButR', text: 'Abbrechen', click: function(){ 
							$(this).dialog("close"); }, "class":"bonStornoButTxt" }
				
			}
		});
	}
	
	function deleteOpenBon(){	
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=deleteOpenBon";
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		if( resp.toLowerCase().indexOf('error') !== -1){ $('#errorDiv').html(resp).css({'visibility':'visible'}); }
		else if (resp.toLowerCase().indexOf('success') !== -1){ 
			resp.substr(resp.indexOf("--->") + 1);	// hier könnte man die höchste bon Id herauslesen die im retourstring enthalten ist, wird aber nach dem reload aus der session gelesen 
			window.location.replace("kassieren.php");
		}
	}
	

	
	function userLogOff(userId){
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "user_login.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=logOff&userId="+userId;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;

	}
	
	/*         kp set- and get- session by javascript/ajax 
	---------------------------------------------------------*/
	function setSession(warenkorbId){

		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=setSession&warenkorbId="+warenkorbId;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		if( resp.toLowerCase().indexOf('error') !== -1) alert(resp);
		else $('#aktueller_bon').val(warenkorbId);
	}
	
	function getSessionByName(sessionName){
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=getSessionByName&sessionName="+sessionName;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		return resp;
	
	}
	
		
	
	/* Kunden im Rechung abschl Modal suchen
	-------------------------------------------------------------------*/
	function searchCustomer(searchStrg, source){
		if(((source == 'rechnungsModal' || source == 'gutscheinModal' || source == 'gutscheinAdminModal' ) && searchStrg.length > 0) || source == 'bonDialog' ) {
			xmlhttp=GetXmlHttpObject();
			xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
			sendCont="functionKey=searchCustomer&searchStrg="+searchStrg+"&callSource="+source;
			
			xmlhttp.send(sendCont);
			resp=xmlhttp.responseText;
		}

		if(source == 'rechnungsModal'){ 
			console.log(resp);
			
			$('#searchResultDiv').css({'visibility':'visible'}).html(resp);
			if(searchStrg.length == 0)$('#searchResultDiv').css({'visibility':'hidden'}).html('');
	//	alert(resp);
		}
		else if ((source == 'bonDialog')){
			$('#searchResultDialogDiv').css({'visibility':'visible'}).html(resp);
							// cursor immer ans ende stellen
				$("#customerDialoSearchField").focus();
				tTmpVal=$("#customerDialoSearchField").val();
				$("#customerDialoSearchField").val('');		//   muss sein !!!!
				$("#customerDialoSearchField").val(tTmpVal);

				
		}
		else if(source == 'gutscheinModal' || source == 'gutscheinAdminModal'){			// sind hier zwei verschiedene files kassieren & anlegen_gutsch darum geht das
			$('#searchResultGutscheinDiv').css({'visibility':'visible'}).html(resp);
		}

	}
	
	function sselectCust(custId, callSource){
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=writeCustomerToDb&customerId="+custId+"&callSource="+callSource;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		if(callSource == 'rechnungsModal'){
		//	modal.style.display = "none";
			$('#kundenSearchModalField').val('');
			$('#searchResultDiv').html('').css({'visibility':'hidden'});
			$('#error_message').html('Kunde "'+custId+'" dieser Rechung zugeordnet.');
			bon_anzeigen("");
		}
		else if(callSource=='bonDialog'){	
			$('#kundenSearchDialogField').val('');
			$('#searchResultDialogDiv').html('').css({'visibility':'hidden'});
			$( "#customer-search" ).dialog( "close" );
			$('#error_message').html('Kunde "'+custId+'" dieser Rechung zugeordnet.');
			bon_anzeigen("");
		}
		else if(callSource=='gutscheinModal'|| callSource=='gutscheinAdminModal'){
			//$('#kundenSearchModalField').val('');
			$('#selectedCustGutschModal').html(resp);
			$("#gutscheinKarteCustId").val(custId);
			$("#kundenSearchGutscheinModalField").val("");
			$('#searchResultGutscheinDiv').html('').css({'visibility':'hidden'});
			if(custId >0 ) $("#gsKarteClearCustfieldBut").css({	"display":"block"		});
		}
		

	}
	
	/* mit Funktions Button Aufrifen-------		*/
	/*	closeBtnText: "Was auch immer"		*/
	
	function clearSelectedCustomer(callSource=false, aAction=false){
		if(aAction=='dDelete'){
			xmlhttp=GetXmlHttpObject();
			xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
			sendCont="functionKey=clearSelectedCustomer";
		
			xmlhttp.send(sendCont);
			resp=xmlhttp.responseText;
			
			if( resp.toLowerCase().indexOf('error') !== -1){ alert(resp);	}
			else if( resp.toLowerCase().indexOf('success') !== -1) {		
					if(callSource == 'rechnungsModal'){			
					
						$('#kundenSearchModalField').val('');
						$('#searchResultDiv').html('').css({'visibility':'hidden'});
					}
					else if(callSource=='bonDialog'){
						$('#kundenSearchDialogField').val('');
						$('#searchResultDialogDiv').html('').css({'visibility':'hidden'});
						$( "#customer-search" ).dialog( "close" );
					}
				bon_anzeigen("");
			}
			
		
		}
		else if(callSource=='gutscheinModal'){	
			$('#selectedCustGutschModal').html('');
			$('#gutscheinKarteCustId').val(0);
			$('#kundenSearchGutscheinModalField').val('');
			$('#searchResultGutscheinDiv').html('').css({'visibility':'hidden'});
			$("#gsKarteClearCustfieldBut").css({	"display":"none"		});
		
		}
		else if(callSource=='gutscheinAdminModal'){	
			$('#selectedCustGutschModal').html('');
			$('#gutscheinKarteCustId').val(0);
			$('#kundenSearchGutscheinModalField').val('');
			$('#searchResultGutscheinDiv').html('').css({'visibility':'hidden'});
			$("#gsKarteClearCustfieldBut").css({	"display":"none"		});
		
		}

		else {
			if(callSource == 'rechnungsModal'){	
				$('#kundenSearchModalField').val('');
				$('#searchResultDiv').html('').css({'visibility':'hidden'});
			}
		}
	
		
	}
	
	
	
	function openCutomerSearchDialog(callFrom=false) {	
	wrapHeight=$('#wrapper').height();
	
		if(MobileDeviceIndicator==true) dialogHeight=700;
		else dialogHeight=480;
		$("#customer-search").html("<div class='customerSearchDialogDiv' ><p class='searchResultDialogSearchField'><button class= 'button_none_float orange floatR' onclick=\"location.href='anlegen_kunden.php?callfrom=kassieren'\">Kunden anlegen</button><input id='customerDialoSearchField' class='floatL' type='text' value='' onkeyup=\"searchCustomer(this.value, 'bonDialog')\" autofocus /><button class='cClearCustSearchFieldBut' onclick='cClearCustSearchField()' ></button></p><div class='cclear'></div><div id='searchResultDialogDiv'></div></div>");
		$("#customer-search").dialog({
			resizable: false,
			open: function(event, ui) { $("body").css({ "overflow":"hidden"		});
										$(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); 
											if($("#bon_sum_div_customer_name").html() != "") {
												$("#searchDialogButL").before("<div id='searchDialogBotomInfoField' class='schrift' style='color:red;' ><p>Selektierter Kunde:</p><p>"+$("#bon_sum_div_customer_name").html()+"</p></div>"); 
											}
										},
			beforeClose: function( event, ui ) { $("body").css({ "overflow":"visible"		}); },
			modal: true,
			title: "Kundenname auf der Rechung vermerken.",
			height: dialogHeight,
		//	minHeight: 400,
		//	maxHeight: wrapHeight,
			width: 700,
			
			position: { my: "center", at: "center", of: "#wrapper" },
			dialogClass:'customerSearchDialog',
			
			buttons: {
				"1": { id: 'searchDialogButL', text: 'Kunde von Bon entfernen', click: function(){ 
							
							clearSelectedCustomer('bonDialog', 'dDelete') }, "class":"button dialog_button_gross dialog_orange" },
				"2": { id: 'searchDialogButR', text: 'Fenster Schließen', click: function(){ 
							$(this).dialog("close"); 
							$("#preis").focus();
							}, "class":"button dialog_button_gross dialog_orange" }				
			},
			
		});
		
		searchCustomer('', 'bonDialog');
	
	}
	
	function cClearCustSearchField(){
		$("#customerDialoSearchField").val("").focus();
		searchCustomer('', 'bonDialog');
	}

	//onclick=\"clearSelectedCustomer('rechnungsModal', 'dDelete')\"
	
	
		
	
	/* Load Warebkorbe     nicht in verwendung !!!!!!!!
	-------------------------------------------------------------------*/
	function loadCartKp(){ 
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=loadCart";
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		if( resp.toLowerCase().indexOf('error') !== -1){ 			//	alert(resp);
			dialogContent="<p>"+resp+"</p>";
			openGeneralDialog('loadCartAjax', 'Datenbank Error', dialogContent, 'wrapper'); 	
		}
		else {
		//	$("#menue_warenkoerbe").css({"width":"auto"});
			
			$("#menue_warenkoerbe").html(resp);
			wrapperWidth=$("#wrapper").width();
			cartsWidth=$("#menue_warenkoerbe").width();
			posLeft=(wrapperWidth-cartsWidth)/2;
			$("#menue_warenkoerbe").css({"margin-left":posLeft});
		
		}
		
		
		
	
	}
	
	
	
	/* check the format of the customer inputet values
	-------------------------------------------------------------------*/
	function inputTestFunction(ipVal){
		if(ipVal.indexOf(',') != 1){
				corrVal=ipVal.replace(',', '.');
				if(isNaN(corrVal*1) == true){
					corrVal="eingabe fehler !!!!!!!!!";
				}
		}
		else corrVal=ipVal;
		$('#inputTestOp').val(corrVal);
	
	}
	
	/* Test Cart id in input field and session
	-------------------------------------------------------------------*/
	
	function checkCartLoad(){
		$("#checkWkidField").val($("#aktueller_bon").val());
		sessionName="aktuellerWarenkorb";
		
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=getSession&sessionName="+sessionName;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		$("#checkWkidSes").val(resp);
		
		warenkoerbe_anzeigen();
	}
	
	/* Menu Links Slider 
	-------------------------------------------------------------------*/
	
	function checkThisWith(id){
		zz=$("#"+id).width();
		yy=$("#"+id).css('font-size').replace ( /[^\d.]/g, '' );
		$("#testXX").html("--"+zz+" -/- "+yy);
		
	}
	
	
	function checkAjax(){
		$("#checkRunningAjax").val($.active);
	}

	$(document).ready(function(){
		
		if(typeof MobileDeviceIndicatorTische !== 'undefined' && MobileDeviceIndicatorTische == true){	
			
			refSize=Math.floor($("#wrapper").width() - $(".roomMenuListDiv").width())-10;
			menHeight=$(".selectRoomMenuDiv").height();

			if(menHeight > refSize) logoutButSize=refSize;
			else logoutButSize=menHeight;
			
			if(logoutButSize > 75 || !menHeight){logoutButSize=75;		}
				
			
			$("#menuReiterLinks").attr("src", "images/logoutIcon.png").css({ "position":"absolute", "width":logoutButSize+"px", "height":logoutButSize+"px", "left":"5", "top":"5"			});
			$("#menuReiterLinks").click( function(){
				window.location.href = 'user_logoff.php';
			});
			return false;
			
		}
			
		
		menuHeight=$("#menu").height();
		menuIconSize=menuHeight-4;
		menuIconPos=menuHeight+1;
		
		if(menuIconSize > 75){
			 menuIconSize=75;
			 menuIconPos=80;
		}
		$("#menuReiterLinks").animate({ "height":menuIconSize, "width":menuIconSize, "right":-menuIconPos			}, 500);
		$("#menuReiterLinks").click(menuFunction = function(){
						
		//	alert(menuWidth);
			var animateTimeSet=650;
			var kpElem = $("#menu_links_slider");
			var kpMenuContent = $("#menue_links_sliderCont");
			if(kpElem.width() > 100){
				kpElem.animate({height:'75px', opacity:'0.5'}, animateTimeSet);
				kpElem.animate({width: '1px',  left:'-2px', opacity:'1'}, animateTimeSet);
				$("#menuOpenCoverDiv").animate({ width:'0', height:'0'}, animateTimeSet, function(){ $(this).remove();		});
			}
			else{
				if($("#wrapper").length){ targetToOpen="#wrapper"; winHeight = $('#wrapper').height(); openCover=true;		}
				else if ($("#wrapper_admin").length) { targetToOpen="#wrapper_admin";  winHeight = $('#wrapper_admin').height();  openCover=true;	}
				else if ($("#wrapper_bon").length) { targetToOpen="#wrapper_bon"; winHeight = $('#wrapper_bon').height(); openCover=true;	}
				else { winHeight =600; openCover=false;		}
				
				if(openCover==true) {	$(targetToOpen).append( "<div id='menuOpenCoverDiv' class='menuOpenCoverDiv' onclick='menuFunction()' ></div>" );	}
				
				refFontSize=$("#mainMenuLeftUser").css('font-size').replace ( /[^\d.]/g, '' );				
				refWidth=$("#mainMenuLeftUser").outerWidth();
				
				if(refFontSize <= 14)kpElemWidth = refWidth*(refFontSize/7);
				else kpElemWidth = refWidth*(refFontSize/7);	// die breite der menu elemente abhängig von der Menu Schrift größe 
			
				if($("#adminMenu").length) kpElemWidth+= refWidth*.9;
				if($("#salesMenuBut").length) kpElemWidth+= refWidth*.5;
						
				kpElem.animate({width:kpElemWidth+'px', left:'1px', opacity:'0.5'}, animateTimeSet);
				kpElem.animate({height:winHeight, opacity:'0.99' }, animateTimeSet);
				kpMenuContent.animate({overlow:'visible' }, animateTimeSet);
				$("#menuOpenCoverDiv").animate({ width:'100%', height:'100%'}, animateTimeSet);
			}
		});
			// pruefen ob es sich um ein mobile device handelt
		var userAgent=navigator.userAgent;
			if(userAgent.toLowerCase().indexOf('windows') !== -1){
				var OsOutput="Betriebssytem: Windows";
			//	$("body").addClass("devicePc");
	
					//   test für die mobile, hat hier aber    nichts zu suchen, weil es genau nicht auf windows reagieren soll  hier   !!!!!!!!! 
			/*		
				$('input[type="text"]').focus( function(){ 
					$(this).blur();
				})
			*/
				
			}
			else if(userAgent.toLowerCase().indexOf('android') !== -1){
				var OsOutput="Betriebssytem: Andriod, Mobil Divice";
				$("body").addClass("deviceMobile");
			}
		//	$("#diviceCheckOp").html(OsOutput);
				/*
				  $(function() {
						$( "#dasDiv" ).draggable();
					});
				*/
	});
	
	/* letzen bgeschlossenen Bon ausdrucken (reprint)
	-------------------------------------------------------------------*/
	function reprintBon(displayLenght){				
		if(invoicebonPdfPrint == 'ja') printTarget="bon_ausdrucken_pdf";
		else printTarget="bon_ausdrucken";

		$.ajax({
					type: "POST",
					url: "ajax_funktionen.php",
					dataType : "html",
					data: {funktion:printTarget, requestFunktion:"bonReprint"  },
					async: true,
					success:function(respPrint){
						if(printTarget == "bon_ausdrucken_pdf" ){
							respArray=JSON.parse(respPrint);
							if(respArray[0] > 0 && respArray[1] == '0'){
								$('#error_message').html('Bon Nr. '+respArray[0]+' Nachdruck ausgeführt');
								bon_anzeigen();
							}
							else $('#error_message').html('Fehler beim Bon Nachdruck.');

						}
						else if(printTarget == "bon_ausdrucken"){
							$("#ausdruck").html(respPrint);
							seite_drucken(false, false, false, false);
							
							bon_anzeigen();
	
						}

					}
			});


	}
	
	/* Rechung bzw bon Vordrucken, erstellung von  Ausdruck wie Rechung ohne abgeschlossenen Bon zu erstellen und ohne den offenen Bon zu löschen
	-------------------------------------------------------------------*/
	function rechnungsVordruck(){
		$.ajax({
					type: "POST",
					url: "ajax_funktionen.php",
					dataType : "html",
					data: {funktion:"rechnungsVordruckErstellen" },
					async: true,
					success:function(respRechVordr){
						if(respRechVordr.toLowerCase().indexOf('error') !== -1)  $('#error_message').html('Fehler beim Bon Vordruck aufgetreten.');
						else if(respRechVordr.toLowerCase().indexOf('warenkorb ist leer') !== -1)  $('#error_message').html('Warenkorb ist leer.');
						else $('#error_message').html('Bon Vordruck ausgeführt');
					
	
					}
		});
					
	}
	
	/* Funktionen Bon Zussatz Text			
	-------------------------------------------------------------------*/
	function openAddTxtModal(dDirection){
		if(dDirection == 'cClose'){
			$("#bonZusatzTxtModal").css({ "display":"none"			});
			$("#bonZusatzTxtarea").val("");
			$("#bonZusatzTxtMsgField").html("");
			$("#toggle").val('preis');
			$("#preis").focus();
		}
		else {
			$("#bonZusatzTxtModal").css({ "display":"block"			});

			var openBonCont = $('#bonContent > .bon_summe').length;
			if ($('#bonContent > .line_unselected').length || $('#bonContent > .line_selected').length){
				if($("#bonZusatzTxtarea").prop('disabled') == true)$("#bonZusatzTxtarea").prop('disabled', false).css({ "text-align":"left"	});
				bonZusatzTxt=$("#bonZusatzTxtDiv").html();
				$("#bonZusatzTxtarea").val(bonZusatzTxt).focus();
				if($(".zusatztTxtSetBut").prop('disabled') == true)$(".zusatztTxtSetBut").prop('disabled', false).css({ "cursor":"pointer"}).addClass( "orange" );
			}
			else{
				$("#bonZusatzTxtarea").prop('disabled', true);
				$("#bonZusatzTxtarea").val("Bon Container ist leer\nFunktion nicht verfügbar").css({ "text-align":"center"	});
				$(".zusatztTxtSetBut").prop('disabled', true).css({ "cursor":"default"}).removeClass( "orange" );
			}

		}
	
	
	
	}
	
	function bonZusatzTxtSet(){
		zusatzTxt=$("#bonZusatzTxtarea").val();
		$.ajax({
			type: "POST",
			url: "ajax_funktionen_kp.php",
			dataType : "html",
			data: {	functionKey:'bonZusatzTxtAdd', zusatzTxt:zusatzTxt		},
			async: true,
			success:function(ajaxResponse){
						if(checkJson(ajaxResponse) == true){ 
							respArray=JSON.parse(ajaxResponse);
							if( respArray[0].toLowerCase().indexOf('error') !== -1){
								$("#bonZusatzTxtMsgField").html(respArray[1]);
							}
							else if( respArray[0].toLowerCase().indexOf('deleted') !== -1){
								$("#bonZusatzTxtMsgField").html(respArray[1]);
								$("#bonZusatzTxtDiv").html("");
								setTimeout(function(){ openAddTxtModal('cClose'); }, 1500);
							}
							else{
								$("#bonZusatzTxtMsgField").html(respArray[1]);
								$("#bonZusatzTxtDiv").html(respArray[2]);
								setTimeout(function(){ openAddTxtModal('cClose'); }, 750);
							}

						}
						else console.log(ajaxResponse);
	
					}
		});	
	}
	
	/* Funktion Lieferschein erstellen
	-------------------------------------------------------------------*/
	

	function lieferscheinErstellen(lieferDatum=false, disableReferenceBonPrint=false){		
		var openBonUnsel = $('#bonContent > .line_unselected').length;
		var openBonSel = $('#bonContent > .line_selected').length;
		var openBonElem=openBonUnsel+openBonSel;
		
		if(openBonElem < 1){
			$('#error_message').html('Lieferschein erstellen Fehler. Offener Bon leer.');
			return false;
		}
		
		if(auftragsLieferterminDrucken == 'ja' && lieferDatum == false){
			openGeneralDialog('setLieferDatum', 'Liefer Datum für Ausdruck eingeben', '', 'wrapper');			
			return false;		// brechen hier ab, die funktion wird dann vom dialog neu aufgerufen, entweder mit gültigen datum od mit true, damit wird der Lieferschein ohne Lieferdatum erstellt		
		}
		
		else {
			// hier wird ein gültiges datum vom dialog oder ein true erwartet
			if(disableReferenceBonPrint==false) disableReferenceBonPrint="";
			xmlhttp=GetXmlHttpObject();
			xmlhttp.open("POST", "ajax_funktionen.php", false);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
			sendCont="funktion=lieferscheinErstellen&lieferDatum="+lieferDatum+"&disableReferenceBonPrint="+disableReferenceBonPrint;
		
			xmlhttp.send(sendCont);
			ajaxResp=xmlhttp.responseText;
			
			$("#error_message").html(ajaxResp);

			bon_anzeigen();
			warenkoerbe_anzeigen();	
		}	
	}
	
	
	function loadLieferscheine(){
		
		lieferschId=$("#lsSearchLsId").val();
		auftragsNr=$("#lsSearchAuftrNr").val();
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=loadLieferscheine&lieferschId="+lieferschId+"&auftragsNr="+auftragsNr;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		$("#lieferscheineFensterLinks").html(resp);
		
		var spRes="";
		spRes = resp.split("id='displayMsg' value=")[1].split(" type='hidden")[0];
		spRes = spRes.match(/\d/g);			// macht aus jeder zahl eien array eintrag würede 2,5  beu zweistelliger ls nr sein

		if(spRes !== null ){
			spRes = spRes.join("");				// join macht 25 draus
			if(spRes > 0){
				displayLieferschein(spRes);
			}
		}
		else{
			$("#lieferscheineFensterRechts").html("");
		}
		
	}
	
	function clearAndLoadLieferscheine(){
		$("#lsSearchLsId").val('');
		$("#lsSearchAuftrNr").val('');
		loadLieferscheine();
	}
	
	function displayLieferschein(lieferschein_id){
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=displayLieferschein&lieferschein_id="+lieferschein_id;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
			
		$("#lieferscheineFensterRechts").html(resp);
	}
	
	function bon_aus_lieferschein(lieferschein_id){

		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=bonAusLieferschein&lieferschein_id="+lieferschein_id;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		if( resp.toLowerCase().indexOf('error') !== -1){
			$("#lieferscheineMessageDiv").html(resp);
		}
		else if(resp.toLowerCase().indexOf('cartnotempty') !== -1){
			if(gastroVersion=='ja')xTxt='Tisch';
			else xTxt='Warenkorb';
			console.log(xTxt);
			openGeneralDialog('lieferscheinOffenerBonnichtleer', 'Aktueller '+xTxt+' ist nicht leer', '', 'wrapper');


			return false;
		//	
		}
		
		else {
			window.location.href = 'kassieren.php';

		}
	
	
	}
	
	function print_lieferschein(lieferscheinId){
		
		$.ajax({
			type: "POST",
			url: "ajax_funktionen.php",
			dataType : "html",
			data: {	funktion:'lieferschein_ausdrucken_pdf', lieferscheinId:lieferscheinId,		},
			async: true,
			success:function(html){
				//$("#lieferscheineMessageDiv").html(resp);
			}
		});
	}
	
	function loadLieferschByCust(eError=false){
		$.ajax({
					type: "POST",
					url: "ajax_funktionen_kp.php",
					dataType : "html",
					data: {functionKey:"loadLieferschByCust" },
					async: true,
					success:function(ajaxResponse){
						if(checkJson(ajaxResponse) == true){ 
							respArray=JSON.parse(ajaxResponse);
							if(eError != false){
								respArray[0]="<p id='lsVerrErrorMsg'>"+eError+"</p>"+respArray[0]
							}
							$("#lieferscheineVerrechnungContent").html(respArray[0]);
						}
						else console.log(ajaxResponse);
	
					}
		});
	
	
	}

	
	function lieferscheineVerrechnen(){
		$("#lsVerrErrorMsg").html('');
		var checkedLs = new Array();
		if($("#lsVerrA4Checkbox").prop("checked") == true){
			a4Ausgabe="a4ausgabe";
		}
		else a4Ausgabe="";
		$('.lsVerrCb').each(function(){
			if($(this).prop('checked') == true){
				elemName=$(this).attr("name").replace('dbId', '');
				checkedLs.push(elemName);
			}
		 });
		 		 
		 zahlungsSelIx=$('#lsVerrZahlungsSelect option:selected').index();
		 zahlungsName=$('#lsVerrZahlungsSelect option:selected').text();
 
		 var lsNrAsString = JSON.stringify(checkedLs);

		 $.ajax({
					type: "POST",
					url: "ajax_funktionen_kp.php",
					dataType : "html",
					data: {functionKey:"lieferscheineVerrechnen", lsData:lsNrAsString, zahlungsSelIx:zahlungsSelIx, zahlungsName:zahlungsName, a4Ausgabe:a4Ausgabe },
					async: false,
					success:function(ajaxResponse){
						if(checkJson(ajaxResponse) == true){ 							
							respArray=JSON.parse(ajaxResponse);
							if(respArray[0].toLowerCase() == 'error'){
								loadLieferschByCust(respArray[1]);
							}
							else{
								if(checkJson(respArray[3]) == true){
									a4PrintArray=JSON.parse(respArray[3]);
										if(a4PrintArray.length > 0){
											lieferscheinA4print(a4PrintArray);
										}
								}

								loadLieferschByCust(respArray[0]);
							}
							
						}
						else console.log(ajaxResponse+"\nkein JSON");
	
					}
		});
	
	
	}
	
	
	function lieferscheinA4print(a4PrintArray){
		 for (i=0; i<a4PrintArray.length; i++) {
			$.ajax({
					type: "POST",
					url: "ajax_funktionen_kp.php",
					dataType : "html",
					data: {functionKey:"lieferscheineVerrechnenA4Print", bonNo:a4PrintArray[i] },
					async: false,
					success:function(ajaxResponse){
						console.log(ajaxResponse+"\n");
	
					}
			});
		 }
		
		
	
	}
	
	function displayVerrLs(lsNum){
		if ($('.lsVerrDetail'+lsNum).css('display') == 'block' ){
			$('.lsVerrDetail'+lsNum).css({'display':'none'	});
			$('.lsVerrDetailHead'+lsNum).css({'display':'none'	});
		}
		else{
			$('.lsVerrDetails, .lsVerrHead').css({'display':'none'	});
			$('.lsVerrDetail'+lsNum).css({'display':'block'	});
			$('.lsVerrDetailHead'+lsNum).css({'display':'block'	});
		}
	}
	
	
	function lieferscheineVerrechnenCheckAll(){
			cbChecked=false;
		$('.lsVerrCb').each(function(){
			if($(this).prop('checked') == true)cbChecked=true;
		});
		if(cbChecked==false)$('.lsVerrCb').prop('checked', true);
		else $('.lsVerrCb').prop('checked', false);
	
	}
		

	
	function getReprintContent(displayLenght){
		
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=getReprintContent&reprintListLenght="+displayLenght;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		return resp;
	
	}
	
	function sselctBonToReprint(iId){
		$("#"+iId).addClass("reprintSelect");
	
	}
	
	/*     move table (gastro version) functions
	---------------------------------------------------------------*/
	
	function setMoveTableTo(){
		$("#moveTableSetTargetForm").submit();		//  submitet von kassieren auf tische.php
	}
	
	
	
	/*      automatischer logoff bei kellnerschloss aktion       
	----------------------------------------------------------------*/
			// e.preventDefault();  verhindert das enter die letzte funktion (click) aufruft 
			// getLastEnter -> schaun wir uns die letzten gespeicherten zeichen an, 
			//#autologoffChecker -> ist ein div, da schriebt der browser nie rein, input könnte sein wenn focus drauf geht
			// mit out wird der vom Kellnerschloss kommende code beendet. 16 zeichen vor "out" ist der kellner KEY.s
	logOutIndicator=false;
	
	$(window).keypress(function(e) {					// erklärung findet sich im index.php  wird für logon fast das gleiche verwendet
		// focusElem = $(':focus');
		 //console.log(focusElem);
		
		if ( $("#autologoffChecker").length == false ) return false;
		var key = e.which;	
			
			keySource=$(e.target).attr("id");		// checken ob "Enter" von der Textarea kommt, ansonsten geht im edit modal/textarea kein zeilenumbruch 
			keySourceAdm=$(e.target).attr("class");

			if(key == 13 ){										
				getLastEnter=$("#autologoffChecker").html();																									//
					logCode="Out";
					nx = getLastEnter.lastIndexOf(logCode);	
					if(nx >= 0 && (getLastEnter.length-logCode.length) == nx ){				// checken ob es ganz hinten, also vor dem "enter" steht
						e.preventDefault();
						$("#autologoffChecker").html(nx+" / "+getLastEnter.length);
						logOutIndicator=true;
						setLogoutSession(true);		
						if(typeof supplyPdfPrint !== 'undefined' && supplyPdfPrint == 'ja')printGastroSupply('', '');
						setTimeout(checkPendingRequest, 500);
						
						
					}
			
			}
			else{
				var res = String.fromCharCode(key);		
				var tmpX=$("#autologoffChecker").html();
				if(tmpX.length > 20){
					cPosA=tmpX.length-20;
					tmpX=tmpX.substr(cPosA, 20);							// limitieren die länge wie viel wir mitschreiben, wir müssen vorne wegschneiden
				}											
				var newVal= tmpX+res;											// fügen den aus dem feld geholten string mit dem neu hinzugekommen character zusammen
				$("#autologoffChecker").html(newVal); 							// schreiben es wieder in das feld
			  }
	
	
	});
	
	function checkPendingRequest() {
		if ($.active > 0) {
			   setTimeout(checkPendingRequest, 1000);
				console.log("pending -> request -> active");
            }
			
		else {

			window.location.href = 'user_logoff.php';
			return false;	
		}
	 
	 
	 }
	 
	 
	 
	/* Ziffernfeld kassieren Fenster auch für nicht gastro version
	-------------------------------------------------------------------*/
	 function displayNumpad(){
		numPadH=numPadConfigHeight.replace(/\D/g, "");
		bonContainerH=bonContainerConfigHeight.replace(/\D/g, "");
		prodContainerH=productContainerConfigHeight.replace(/\D/g, "");
		var mPadRedH = ( 100 * parseFloat($('#ziffernblock_reduziert').outerHeight(true)) / parseFloat($('#ziffernblock_reduziert').parent().css('height')) )*1;

		
		if($(".ziffernblock").css("display") == 'block'){
			$(".ziffernblock, #steuereungContent, #steuerung").css({ "display":"none"	});
			$("#ziffernblock_reduziert").css({ "display":"block"	});
			
			newBonH=Math.floor((numPadH-mPadRedH)/2)*1+bonContainerH*1;
			newProdH=Math.floor((numPadH-mPadRedH)/2)*1+prodContainerH*1;
			$("#bon").css({ "height":newBonH+"%", 			});
			$("#produkte").css({ "height":newProdH+"%", 			});
				
		}
		else if($(".ziffernblock").css("display") == 'none'){
			$(".ziffernblock, #steuereungContent, #steuerung").css({ "display":"block"	});
			$("#ziffernblock_reduziert").css({ "display":"none"	});
			$("#bon").css({ "height":bonContainerConfigHeight, 		});
			
			$("#produkte").css({ "height":productContainerConfigHeight,	});		
		}
	}
	
	
	/* logout Session wird fürs kellnerschloss logout verwendet
	-------------------------------------------------------------------*/
	
	function setLogoutSession(sesVal){
		
		$.ajax({
			type: "POST",
			url: "ajax_funktionen_kp.php",
			dataType : "html",
			data: {functionKey:'setSessionLogout', sessionValue:sesVal  },
			async: true,
			success:function(response){
				console.log(sesVal+' autologout session gesetzt '+response);
			}
		});
	
	
	}
	
	
	
	/* Admin Configuration display
	-------------------------------------------------------------------*/
	function displayConfigDiv(selectedOptionVal, target){
		$("#currentConfigPage").val(selectedOptionVal);
		$(".configContentDiv").css({"display":"none"	});
		$("#"+selectedOptionVal).css({"display":"block"	});
	//	$("#responseMessageDiv").html("");
		
		selectedResolution=$("#selectedResolutionForConfig").val();
		
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "include/ajax_function_config.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=processConfigdata&processKey=loadconfigData&processTargetKey="+selectedOptionVal+"&selectedResolution="+selectedResolution;
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
	
	//	xmlResp=decodeXMLdata(resp ,'envelope');
		
		$("#"+selectedOptionVal).html(resp);

		setConfigCheckbox(selectedOptionVal);

	}
	
	

	
	/* Admin Configuration save
	-------------------------------------------------------------------*/
	function saveConfigLayout(){	
		opVal="";
		opCheck=0;
		if($("#currentConfigPage").val() == 'config_kassa_layout'){
			sSelector ="#config_kassa_layout";
		}
		else if($("#currentConfigPage").val() == 'config_bon_print_list'){
			sSelector ="#config_bon_print_list";
		}
		else if($("#currentConfigPage").val() == 'config_bon_print_layout'){		
			sSelector ="#config_bon_print_layout";
		}
		else if($("#currentConfigPage").val() == 'config_system'){		
			sSelector ="#config_system";	
		}
		else if($("#currentConfigPage").val() == 'config_email'){		
			sSelector ="#config_email";	
		}
		else if($("#currentConfigPage").val() == 'config_userlevel'){		
			sSelector ="#config_userlevel";	
		}
		else if($("#currentConfigPage").val() == 'config_lieferschein'){		
			sSelector ="#config_lieferschein";	
		}
		else if($("#currentConfigPage").val() == 'config_gutschein'){		
			sSelector ="#config_gutschein";	
		}
		else if($("#currentConfigPage").val() == 'config_lizenzen'){		
			sSelector ="#config_lizenzen";	
		}
		else if($("#currentConfigPage").val() == 'signatureUnitActivate'){		
			sSelector ="#signatureUnitActivate";	
		}
		else if($("#currentConfigPage").val() == 'config_gastro_printer'){		
			saveConfigGastroPrinter();
			return;
		}

		else if($("#currentConfigPage").val() == 'config_additonal_footertext'){
			adminFooterTxtFunction('sSave');
			return;						
			
			// das Footer Txt Gui gabs schon, deswegen wird dir ursprüngliche Save Funktion verwendet, macht Sinn das ist 
									// total anders aufgebaut als die hier verabreiteten. 
		}
		
		else {
			
			$("#config_message").css({"display":"block"}).html("<h3>Kein Bereich Ausgewählt.</h3>");
			return false;
		}
		
		selectedResolution=$("#selectedResolutionForConfig").val();
		sendCont="functionKey=processConfigdata&processKey=saveconfigData&selectedResolution="+selectedResolution+"&";
		if(sSelector == "#config_lizenzen"){
			sendData_a= { functionKey: 'processConfigdata', processKey : 'saveLicensingData', selectedResolution: selectedResolution };
		}
		else sendData_a= { functionKey: 'processConfigdata', processKey : 'saveconfigData', selectedResolution: selectedResolution };

		var config = new Array(); 
		configuration=[];
		xData={};
		configuration['functionKey'] = 'saveConfiguration';
		$(sSelector+" input").each(function() {
				var tType = $(this).attr("type");
				
				if(tType == 'text' || tType == 'password'){
						sendCont+=$(this).attr("id")+"="+$(this).val()+$(this).attr("name")+"&";				// nicht jQuery ajax
						
					data_x={ [$(this).attr("id")] : $(this).val()+$(this).attr("name"), }
					if($(this).attr("id") == 'AUTOMATISCH_BACKUP_PFAD'){						
						data_x={ [$(this).attr("id")] : escape($(this).val()), }
					}
					else if($(this).attr("id") =='licensingFormKeyIp'){
						data_x={ [$(this).attr("id")] : $(this).val(), }			// für den lizeneintrag brauchen wir den namen nicht
					}
					$.extend(xData, data_x);
				}

				else if(tType == 'checkbox'){
					if($(this).is(':checked')){
								if($(this).attr("id") == 'GASTRO_VERSION'){
									$("#WARENKOERBE_ABLEGEN").prop('checked', false);
								}
								data_x={ [$(this).attr("id")] : $(this).attr("name"), }
						
						sendCont+=$(this).attr("id")+"="+$(this).attr("name")+"&";			// nicht jQuery ajax
						$.extend(xData, data_x);
					}
					else {
						sendCont+=$(this).attr("id")+"=nein&";
						configuration[$(this).attr("id")] = "nein";
						data_x={ [$(this).attr("id")] : "nein", }
						$.extend(xData, data_x);
					}
				}
				else if(tType == 'radio'){
					if($(this).is(':checked')){
					
						if($(this).attr("name") == 'licenseDelete'){
									
								//	 var delConf= confirm("Wollen Sie diesen Lizenzschlüssel wirklich löschen ?");
									 if (window.confirm("Wollen Sie diesen Lizenzschlüssel wirklich löschen ?")) {
										data_x={ [$(this).attr("name")] : $(this).attr("value"), }
									$.extend(xData, data_x);
									}
									else {
										data_x={ [$(this).attr("name")] : 'deletebreak', }
										$.extend(xData, data_x);
									}
	
								//	alert("x:  radio and checked: "+$(this).attr("name"));	
						}						
					}
				}		
		});
		
		$(sSelector+" select").each( function () {
				sendCont+=$(this).attr("id")+"="+$(this).find('option:selected').attr('name')+"&";				// nicht jQuery ajax
			data_x={ [$(this).attr("id")] : $(this).find('option:selected').attr('name'), }
			$.extend(xData, data_x);
		});
		
		if($("#currentConfigPage").val() == 'config_lieferschein'){
			areaContent=$("#adminGuiFussTxtAreaLiefersch").val();
			
			data_x={ ['AUSDRUCK_EXTRA_FUSSZEILE_AUFTRAG_TEXT'] : areaContent, }
			$.extend(xData, data_x);
		}
						
		sendData=$.extend(sendData_a, xData);
		
		$.ajax({
					type: "POST",
					url: "include/ajax_function_config.php",
					dataType : "html",
					data: sendData ,
					async: false,
					success:function(response){					
						if(checkJson(response) == true){ 
							respArray=JSON.parse(response);
							$("#responseMessageDiv").html(respArray[0]+" "+respArray[2]);
								if(respArray[0] > 0 && respArray[1] == 'ja' ){				// steht für mehr als 0 einträge gespeichert und mail versenden ist gesetzt
									sendEmail('configUpdate', '');
								}
						}
						else console.log(response);
					}
			});

		setTimeout(function(){ $("#responseMessageDiv").html(''); }, 5000);
		
		displayConfigDiv($("#currentConfigPage").val(), 'undefinedTarget');
		if(sSelector=='#config_system') location.reload();
		
		
	}
	
	function setConfigCheckbox(){
				$('#adminContent input').each(function() {
					var type = $(this).attr("type");
					if ((type == "checkbox" || type == "radio") && $(this).val() == $(this).attr('name')) {
						$(this).attr("checked",true);
					}
				});
	}
	
	
	/* Admin Config Gui Gastro Printer speichern
	-------------------------------------------------------------------*/
	
	function saveConfigGastroPrinter(){
		var x=0;
		var printers=new Array();
		$('[id^="printerRow_"]').each(function() {
			var id = $(this).attr("id");
			
			printers.push(x);
			
			var dbId=$(this).find(".prId").val();
			var prFunction=$(this).find(".prFunction").val();
			var prName=$(this).find(".prName").val();
			if($(this).find(".prInvoice").is(":checked")) invPr='ja';
			else invPr='x';
			printers[x]=[dbId, prFunction, prName, invPr];
			
			x++;
		
		});
		
		
		$.ajax({
					type: "POST",
					url: "include/ajax_functions_gastro.php",
					dataType : "html",
					data: {functionKey:'saveConfigGastroPrinter' , printersArray:printers },
					async: false,
					success:function(response){
							
							alert(response);
				
					//	$("#error_message").html(html);
					}
			})	
	}
		
	
	
	/* Admin Config Gui Additional Footer Text
	-------------------------------------------------------------------*/
	function adminFooterTxtFunction(funcKey, reloadIndicator=false){	
		$("#adminResponseTxt").html('');
		if(funcKey == "lLoad"){			// wird nimmer verwendet, wird im configContent.php geladen.
			xUrlCode="";
		}
		
		else if(funcKey == "sSave"){
			footerTxt=$("#adminGuiFussTxtArea").val();
			fooEn=$("#footerPrintEnableCheckBox").prop("checked");
			if(fooEn == true) footerEnabler="ja";
			else footerEnabler="nein";
			percentVal=$("#footerPrintCalkIpField").val();
			if(percentVal > 0)percentData="&percentVal="+percentVal;
			else percentData=1;
			footerTxtLiefersch=$("#adminGuiFussTxtAreaLiefersch").val();
			fooEnLs=$("#AUFTRAG_LIEFER_TERMIN_DRUCKEN").prop("checked");
			if(fooEnLs == true) footerEnablerLs="ja";
			else footerEnablerLs="nein";
			addTxStrg="";
			totalAddTxtStrg="";
		
			$("#configAddProdTxtElements .addProdTxtLine").each(function(index){	
				var eElem=$(this);
				elemId=$(this).prop('id');
				elemName=$(this).find(':input[type=text]').prop('name');
				tmpNameVal=$("[name='"+elemName+"']").val();
				elemCont=$(this).find('textarea').prop('name');
				tmpContVal=$("[name='"+elemCont+"']").val();
				elemDel=$(this).find("input[type=checkbox]").prop('id');
				elemDelChecked=$("#"+elemDel).prop('checked');
				if(elemDelChecked == true)elemDelVal='dDelete';
				else elemDelVal='';
				elemContVal=encodeURIComponent(tmpContVal);	// das alles nur wegen dem "&"
				elemNameVal=encodeURIComponent(tmpNameVal);

				if(elemNameVal.length > 1){
					addTxStrg+="eElem:"+elemId+"§|§"+elemNameVal+"§|§"+elemContVal+"§|§"+elemDelVal;
				}				
			});
			totalAddTxtStrg="&addProdTotalStrg="+addTxStrg;
			
			xUrlCode="&footerTxt="+footerTxt+"&footerEnabler="+footerEnabler+"&percentVal="+percentData+"&footerTxtLieferschein="+footerTxtLiefersch+"&footerTxtLieferscheinEnabler="+footerEnablerLs+totalAddTxtStrg;
		}
		else return false;
		
			xmlhttp=GetXmlHttpObject();
			xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
			sendCont="functionKey=functionAditionalFooterTx&footerTxtAction="+funcKey+xUrlCode;
			
			xmlhttp.send(sendCont);
			resp=xmlhttp.responseText;
			
			if(funcKey == "lLoad"){
				content=resp.split('-#-');
				if(content[1].toLowerCase() == 'ja') $("#footerPrintEnableCheckBox").prop({"checked":true });
				else $("#footerPrintEnableCheckBox").prop({"checked":false });
				$("#footerPrintCalkIpField").val(content[2]);
				$("#adminGuiFussTxtArea").val(content[0]);
				$("#configAddProdTxtElements").html(content[5]);
				if(reloadIndicator=='savedAndReload'){
					$("#adminResponseTxt").html('Änderungen gespeichert.');
					setTimeout(function(){ $("#adminResponseTxt").html(''); }, 5000);
				}
			}
			
			else if(funcKey == "sSave"){
				if( resp.toLowerCase().indexOf('error') !== -1){	 $('#adminResponseTxt').html(resp); }
				else if (resp.toLowerCase().indexOf('success') !== -1){
					
					
				}
				adminFooterTxtFunction('lLoad', 'savedAndReload');
				//console.log(resp);
			}
	}
	
	function footerPrintPlaceFactor(vValue){
		$("#adminResponseTxt").html('');
		if(vValue.indexOf(',') !== -1){
			vValue=vValue.replace(',', '.');
			tmpVal=$("#footerPrintCalkIpField").val();
			tmpVal=tmpVal.replace(',', '.');
			$("#footerPrintCalkIpField").val(tmpVal);
		}
		vValue=(vValue/100)*100;
		areaTx=$("#adminGuiFussTxtArea").val();
		if(areaTx.indexOf('NaN') !== -1 ){
			areaTx = areaTx.replace("NaN", '1'); 
			$("#footerPrintCalkIpField").val(1);
		}
		if(areaTx.indexOf('EUR ') !== -1 ) { 
			
			areaTx = areaTx.replace(/EUR\s(\d*\.\d+|\d+)\s/, "EUR "+vValue.toFixed(2)+" ");
		}
		
		$("#adminGuiFussTxtArea").val(areaTx);
	}
	
	function resizeEditTexarea(dDirection){
		if(dDirection == 'uUp' && $("#editierenTxareaStatus").val() != "oOpen"){
			curRow=$("#editieren_produktname").prop('rows');
			$("#editieren_produktname").css({ "width":"59%", "height":curRow+"00%"			});
			$("#activeEditField").val('editieren_produktname');
			
			$("#editierenTxareaStatus").val('oOpen');
		}
		else if(dDirection == 'bBack'){
			$("#editieren_produktname").css({ "width":"30%", "height":"100%"			});
			$("#editierenTxareaStatus").val('');
		}
		var existVal=$('#editieren_produktname').val().trim()+" ";
		$('#editieren_produktname').focus().val(existVal);		// um den cursor nach dem vorhandenen txt zu stellen
		
		
		
	}
	
	function addProdTxt(cContent){
		tmpContent= window.atob(cContent);
		cContent=htmlDecode(tmpContent);
		curTxt=$("#editieren_produktname").val();
		$("#editieren_produktname").val(curTxt+cContent);
	}
	
	function addProdTxtElem(){
		$("#addProdTxtNextElemBut").css({ "display":"none"		});
		$("#addProdTxtLineNext").css({ "display":"block"		});
		$("#config_additonal_footertext").scrollTop($("#config_additonal_footertext").prop("scrollHeight"));
		$("#addProdTxtNewElemName").focus();
	
	}
	
	function htmlDecode(vValue){
		// wegen sonderzeichen Umlaute &+ß usw wird der txt content in html entities übergeben, die mit dieser
		// eigenartigen funktionsweise von jquery wieder 
		return $('<div/>').html(vValue).text();
	}
	
	// noch so eine encoding aktion
	String.prototype.toHtmlEntities = function() {
		return this.replace(/./gm, function(s) {
			return "&#" + s.charCodeAt(0) + ";";
		});
	};
	
	/* Admin Reports display
	-------------------------------------------------------------------*/
	function displayReportDiv(selectedOptionVal, target){		
		if(selectedOptionVal == '')selectedOptionVal='report_message';
		$(".reportContentDiv").css({"display":"none"	});
		$("#"+selectedOptionVal).css({"display":"block"	});
		var startDate=$("#reportDateStartField").val();
		var endDate=$("#reportDateEndField").val();
		
		if(selectedOptionVal == 'report_categorie'){
			sendCont="functionKey=getReportCategorie&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_products'){
			selCategorieId=$("#adminReportSubSelectWg option:selected").val();
			
			sendCont="functionKey=getReportProducts&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target+"&selCategorieId="+selCategorieId;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_customer'){
			sendCont="functionKey=getReportCustomer&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_seller'){
			sendCont="functionKey=getReportSeller&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target+"&excludeSorno=''";
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_seller_excl_storno'){
			sendCont="functionKey=getReportSeller&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target+"&excludeSorno=exclude";
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_total_revenue'){
			sendCont="functionKey=getReportTotalRev&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_total_revenue_payment'){
			sendCont="functionKey=getReportTotalRevPayment&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_gutschein_funktion'){
			sendCont="functionKey=getReportGutscheine&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_gutschein_short_funktion'){
			sendCont="functionKey=getReportGutscheineShort&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_free_revenue'){
			sendCont="functionKey=getReportFreeRev&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_cashbook'){ 
			sendCont="functionKey=getReportCashbook&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;	
		}
		else if(selectedOptionVal == 'report_on_product_name_end'){
			sendCont="functionKey=getReportProductNameEnd&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_seller_payment'){
			abschlId=$("#reportSellIpField").val();
			sendCont="functionKey=getReportSellerPayment&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target+"&abschlId="+abschlId;
			screenTargetDiv = selectedOptionVal;
			
		}
		else if(selectedOptionVal == 'report_offene_lieferscheine'){
			sendCont="functionKey=getReportDataOffeneLieferscheine&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;
		}
		else if(selectedOptionVal == 'report_kunden_daten'){
			abschlId=$("#reportSellIpField").val();
			sendCont="functionKey=getReportCustomerData&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target+"&abschlId="+abschlId;
			screenTargetDiv = selectedOptionVal;	
		}
		else if(selectedOptionVal == 'report_dep'){
			abschlId=$("#reportSellIpField").val();
			sendCont="functionKey=getReportDataExportProtocol&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target+"&abschlId="+abschlId;
			screenTargetDiv = selectedOptionVal;	
		}
		else if(selectedOptionVal == 'report_auditing'){
			sendCont="functionKey=getReportAuditing&startDate="+startDate+"&endDate="+endDate+"&reportTarget="+target;
			screenTargetDiv = selectedOptionVal;	
		}
		
		else {
			$("#report_message").html('<h3>Es wurde kein Report ausgewählt.</h3>');
			sendCont="";
			return false;
		}
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		if( resp.toLowerCase().indexOf('error') !== -1){	 }
		else if( resp.toLowerCase().indexOf('display success') !== -1) {
			 $("#"+screenTargetDiv).html(resp);	
			 //console.log(resp+screenTargetDiv);
		}
		else if( resp.toLowerCase().indexOf('exportcsv success') !== -1) {	
			 tmpX=resp.split('-#-');
			 filePath=tmpX[1];
			if( filePath.substring(filePath.lastIndexOf('.') + 1) == 'csv'){
				
				$("#downloader").attr('onClick', "location.href='"+filePath+"'" );
				$("#downloader").click();	
			}		
		}
		else if( resp.toLowerCase().indexOf('exportpdf success') !== -1) {				
				$("#"+screenTargetDiv).html(resp);	
		}
			
	}
		
	function cclearFieldVal(fieldId){
		$("#"+fieldId).val('');
	}
	
	/*
	function mobilePrinterSelectBut(){
		alert("abc");
		printerId=$("#defineMobilePrinterSelect option:selected").prop('id');
		if(printerId >0 ){
			
			xmlhttp=GetXmlHttpObject();
			xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
			sendCont="functionKey=setSession&selectMobilePrinter=true&mobilePrinterId="+printerId;
			
			xmlhttp.send(sendCont);
			resp=xmlhttp.responseText;
			
			if (resp.toLowerCase().indexOf('success') !== -1){
				location.reload(); 
			}
		}
		else return false;
	}
	*/
	
	/* License Violation Dialog 
	-------------------------------------------------------------------*/
	
	function openLicenseViolationDialog(callFrom=false, boxTitle, dialogContent=false, wrappEr=false) {
		
		if(wrappEr == false){ wrappEr='wrapper';   }
			wrapHeight=$("#"+wrappEr).height();	
			dialogCssClass='generalDialogBox';
			mminHeight= 150;
			maxHeight= wrapHeight,
			wwidth=600;
			pPosition="center";
			atPosition="center";
			buttonTxtLeft="Bestätigen";
			buttonTxtRight="Dialog Schließen";

		
		$("#licenseViolationDialog").html(dialogContent);
		$("#licenseViolationDialog").dialog({
			resizable: false,
			open: function(event, ui) { $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); 
										$("body").css({ "overflow":"hidden"		});

			},
			beforeClose: function( event, ui ) { $("body").css({ "overflow":"visible"		});  },
			modal: true,
			title: boxTitle,
			height: 'auto',
			minHeight: mminHeight,
			maxHeight: wrapHeight,
			width: wwidth,
			
			position: { my: pPosition,  at: atPosition, of: "#"+wrappEr },
			dialogClass: dialogCssClass,
			buttons: {

				"1": { id: 'dialogButR', text: buttonTxtRight, click: function(){ 
							
							$(this).dialog("close"); }, "class":"button button_gross dialog_orange" }
				
			}
		
		
		});
	
	}
	
	
	/* Allgemeine Dialog Funktionen ersetzt diverse Alert Popups
	-------------------------------------------------------------------*/
				
	function openGeneralDialog(callFrom=false, boxTitle, dialogContent=false, wrappEr=false, confirmData=false) {		
		if(wrappEr == false){ wrappEr='wrapper';   }
			wrapHeight=$("#"+wrappEr).height();	
			dialogCssClass='generalDialogBox';
			buttonTxtLeft="Bestätigen";
			buttonTxtRight="Abbrechen";
			mminHeight=150;
			wwidth=600;
			pPosition="center";
			atPosition="center";
			hideButLeft=false;
			
		if(callFrom == 'zahlungsabschluss') htmlContent="<p class='generalDialogP'>Überprüfen Sie die eingeben Beträge auf korrekte Zahlenformate.</p>";
		else if (callFrom == 'tischUebernehmen'){
			buttonTxtRight="Abbrechen";
			buttonTxtLeft="Tisch Übernehmen";
				// wir verwenden diese variable mit irrtümlichen namen, aber variable wird funktionieren
			tischId=confirmData;
		}
		else if (callFrom == 'bonReprint'){
				htmlContent=getReprintContent(dialogContent);
				buttonTxtLeft="Auswahl Drucken";
				buttonTxtRight="Dialog Schließen";
		
		
		}
	
		else if (callFrom == 'billModalSearch'){
			
			htmlContent="<div class='customerSearchDialogDiv' ><div id='searchResultDialogDiv'></div></div>"; 
			wwidth=600;
			
		}
		else if(callFrom == 'zahlungAbgeschlBonLeer' || callFrom == 'readSigCardDialog' || callFrom == 'gutscheinkarte_abbuchen_fehler' || callFrom == 'zahlung_abgeschlossen_fehler') {		
					// ist nur ein Info dialog, kann für mehreres verwendet werden !!

			hideButLeft=true;
			buttonTxtRight="Dialog Schließen";
		}
		else if(callFrom == 'lizenzVerletzung') {
			hideButLeft=true;
		//	htmlContent = "<p>Offener Bon ist leer.</p>";
			buttonTxtRight="Dialog Schließen";
		}
		else if(callFrom == 'stornoButton') {
			hideButLeft=false;
			if($('#bonContent .bon_steuer').length > 0){
				lieferscheinNr=false;
				lieferschDelTxt="";
				$("input[name='lsSourceField']").each(function(){
					if($(this).val() >0 ){
						lieferscheinNr=$(this).val();
					}
				});
				if(lieferscheinNr >0 )lieferschDelTxt="<p>Offener Bon ist mit Lieferschein "+lieferscheinNr+" verlinkt.</p><p>Lieferschein "+lieferscheinNr+" wird ebenfalls gelöscht.</p>";
				htmlContent=dialogContent+lieferschDelTxt; 
				dialogCssClass='bonStornoClass generalDialogBox';
				buttonTxtLeft="Bon Löschen";
			}
			else{
				htmlContent = "<p>Offener Bon ist leer.</p>";
				buttonTxtRight="Dialog Schließen";
				$("#toggle").val('preis');
				$("#preis").focus();
				hideButLeft=true;
			}
		}
		else if(callFrom == 'paymentWarning'){		
			htmlContent="<p>"+dialogContent+"</p>";
			buttonTxtRight="Dialog Schließen";
		}
		else if(callFrom == 'retourgeldDialog') { buttonTxtRight = "Fenster schließen"; 
				
				retuorGeldWarnung="";	
				htmlContent="<div class='retourgeldDialogDiv'>"+dialogContent+"</div>";
	
				wwidth=500;
		}
		else if(callFrom == 'validateFormStorno') { buttonTxtRight = "Fenster schließen"; htmlContent=dialogContent; }
		else if(callFrom == 'configInfo') {	buttonTxtRight = "Dialog schließen"; htmlContent="<div class='configInfoDialogContentDiv'>"+unescape(dialogContent)+"</div>"; hideButLeft = true;	}
		else if(callFrom == 'lieferscheinOffenerBonnichtleer' ) { 	buttonTxtRight = "Dialog schließen"; hideButLeft=false;
			htmlContent="<p>Für das erstellen eines offenen Bons aus einem Lieferschein ist ein leerer Warenkorb erforderlich.</p>"; hideButLeft = true;	}
		else if(callFrom == 'bonTestPrintToDialog') htmlContent="<p class='generalDialogP'>Bon Test</p></div><div id='bonTestPrintTestDiv'></div>";
		else if(callFrom == 'valueNullAlert'){
			htmlContent=dialogContent; 
			buttonTxtRight="Zahlung Abbrechen";
			buttonTxtLeft="Zahlung fortsetzen";
		}
		else if(callFrom == 'dep_or_signature_Error'){
			htmlContent="<p>"+dialogContent+"</p>";
			buttonTxtRight="Dialog Schließen";
			

		}
		else if(callFrom == 'setLieferDatum' ){
			funktionArray=dialogContent.split('-§-');
			if(funktionArray.length > 1){
				funktionK=funktionArray[0];						// aufruf für auftragsschein, von zahlung abgeschl. übergebe ein fake Array !!
				printTarget=funktionArray[1];
				docName='Auftragsschein';
			}
			else {
				funktionK='lieferschein';						// vom lieferschein aufruf kommt kein fake array (-§_) !!!!
				printTarget=false;
				docName='Lieferschein';
			}

			htmlContent="<p></p><p>Liefer Datum: <input type='text' id='lieferDatumIpField' /></p><p><label for='disableRreferenceBonPrint'>"+docName+" ausdrucken: </label><input id='disableRreferenceBonPrint' checked type='checkbox' /></p>";
			buttonTxtRight="Abbrechen";
			buttonTxtLeft="Eingaben Bestätigen";
			
			pPosition="center center-100";			
			atPosition="center";
		
		}
		else if(callFrom == 'resetAuftragsNummer' ){
			htmlContent="<p class='configDialogContent'> Mit Bestätigen setzen Sie die laufend vergebenen Auftragsnummer auf 0, so das die weiteren Auftragsnummern aufsteigend von 1 vergeben werden.</p>";
			buttonTxtLeft="Reset Nr.";
		}
		else if(callFrom != false && dialogContent != false){  htmlContent=dialogContent; 	}
		else if (callFrom == 'startbelegconfirm'){
		
		}
		else if( callFrom == false) htmlContent="<p>Undefinied Call Source !!!!</p>";
		
		else {  return false;    }
	
	//	alert(htmlContent);
	
		if(typeof htmlContent == 'undefined' || htmlContent == '') htmlContent=dialogContent;
	
		$("#generalDialog").html(htmlContent);
		$("#generalDialog").dialog({
			resizable: false,
			open: function(event, ui) { $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); 
										$("body").css({ "overflow":"hidden"		});
										if(callFrom == 'setLieferDatum' ){
											$('#lieferDatumIpField').datepicker({ dateFormat: 'yy-mm-dd', title:'', minDate: 0 }).blur();
										}
										else if(callFrom == 'dep_or_signature_Error'){
												$(".ui-dialog-buttonpane").append("<p id='dialogCbElem' style='float:right; margin-right:22px;'><label for='depSigErrorDialogDisableCb'>Diesen Dialog nicht mehr Anzeigen</label><input id='depSigErrorDialogDisableCb' type='checkbox' /></p>");
										}
			},
			beforeClose: function( event, ui ) { $("body").css({ "overflow":"visible"		});  $('#lieferDatumIpField').datepicker('destroy'); },
			modal: true,
			title: boxTitle,
			height: 'auto',
			minHeight: mminHeight,
			maxHeight: wrapHeight,
			width: wwidth,
			
			position: { my: pPosition,  at: atPosition, of: "#"+wrappEr },
			dialogClass: dialogCssClass,
			buttons: {
				"1": { id: 'dialogButL', text: buttonTxtLeft, click: function(){ 
							if(callFrom == 'stornoButton') deleteOpenBon();
							else if(callFrom == 'reprintBon'){				}
							else if(callFrom == 'valueNullAlert'){
								modal.style.display = "block";
								setTimeout(function(){$('#focus_zahlung').focus();},100); 
							}
							else if(callFrom == 'setLieferDatum' ){ 
								lieferDatum=$("#lieferDatumIpField").val();
								if( $("#disableRreferenceBonPrint").prop("checked") == true) disableRefBonPrint='printenabled';
								else disableRefBonPrint='printdisabled';
								if(lieferDatum == "") lieferDatum="0000-00-00"; 
									// ist field leer, datum wurde nicht gesetzt und bestätigt, wird 0000 gesetzt, und ohne lieferdatum weiterverarbeitet
								
								if(funktionK == 'auftragsschein')zahlung_abgeschlossen(printTarget, true);								
								else lieferscheinErstellen(lieferDatum, disableRefBonPrint);
							}
							else if(callFrom == 'resetAuftragsNummer' ){
								resetLieferscheinAuftragsnummer();
							}
							else if(callFrom == 'tischUebernehmen' ){
								tischAuswaehlen(tischId, 'confirmTischUebernehmen');
							}
							else if (callFrom == 'startbelegconfirm'){
								zdaid=confirmData[0];
								cardSerNo=confirmData[1];
								kassenId=confirmData[2];
								bonStartNumber=confirmData[3];
								
								activateSigUnit(zdaid, cardSerNo, kassenId, bonStartNumber);
							}
							$(this).dialog("close"); }, "class":"button button_gross dialog_orange" },
				"2": { id: 'dialogButR', text: buttonTxtRight, click: function(){ 
							if(callFrom == 'valueNullAlert') zahlung_abbrechen();
							if(callFrom == 'retourgeldDialog' && gastroVersion.toLowerCase()=='ja' && $("#splitBonOriginContent").html()=="" ) window.location.href = 'tische.php';
							if(callFrom == 'setLieferDatum' ){
							//	lieferscheinErstellen(true);			// damit wird ohne gesetztes Datum der Lieferschein erstellt.
							}
							if(callFrom == 'dep_or_signature_Error'){
								if($("#depSigErrorDialogDisableCb").prop('checked')){
									setDisplayDepSignError();
								}
								
								$("#dialogCbElem").remove();
							}
							$(this).dialog("close"); }, "class":"button button_gross dialog_orange" }
				
			}
			
			
		
		});
		
		if(hideButLeft==true)$("#dialogButL").css({ "display":"none"	});
		
		if(callFrom=='zahlungsabschluss' || callFrom=='bonTestPrintToDialog' || callFrom=='loadCartAjax' || callFrom =='validateFormStorno' || callFrom=='retourgeldDialog' || callFrom=='paymentWarning' || callFrom=='dep_or_signature_Error' ) $("#dialogButL").css({ "display":"none"	});
	
	}

	$(function(){
		//Add, Save, Edit and Delete functions code
		
		$( ".datepicker" ).datepicker({ dateFormat: "yy-mm-dd" });
		$( ".datepicker" ).datepicker({ altField: "#actualDate" });
		$( ".datepicker" ).datepicker();
		
		// some php konstants settings needed in js
		// stelle konstanten für javascript zur verfügung funktioniert im connect und global_functions.php nicht weil das xml (konfig gui mit dem echo davor nicht umgehen kann
		
		
	});
	
	function setDisplayDepSignError(){
		$.ajax({
				type: "POST",
				url: "ajax_funktionen_kp.php",
				dataType : "html",
				data: {	functionKey:'setDisplayDepSignError' 	},
				async: true,
				success:function(ajaxResponse){
					if (ajaxResponse.toLowerCase().indexOf('error') !== -1){
						alert (ajaxResponse);
					}
				}
			});
	}
	
		
	
	function resetLieferscheinAuftragsnummer(){
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=resetLieferscheinAuftragsnummer";
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
	//	alert("wird auftrags nr reset !!!!!!!!!!!!-> "+resp);
	
	}

	
	function kassenladeOeffnen(){
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "display/open_drawer.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=kassenladeOeffnen";
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
	//	console.log(resp);
	}
	
	
	/*         kp AJAX request 
	---------------------------------------------------------*/
	
	function GetXmlHttpObject(){
		if (window.XMLHttpRequest){return new XMLHttpRequest();}
		else if (window.ActiveXObject){return new ActiveXObject("Microsoft.XMLHTTP");}
    return null;
    }
	
	
	/*         kp decode AJAX requested XML string 
	---------------------------------------------------------*/
	function decodeXMLdata(XMLdata, outerFrame){	
		elem=XMLdata.getElementsByTagName(outerFrame)[0].childNodes;
		valOutput='';
		if(elem.length == 1){							// is a tag is direct addresse so it hase only the value as child
			childNodeName=XMLdata.getElementsByTagName(outerFrame)[0].nodeName;
			valOutput+=XMLdata.getElementsByTagName(childNodeName)[0].firstChild.nodeValue;
		}		
		else if(elem.length > 1){			// multiple childs at the first level under the "enelope" tag od under the tag passed as parameter -> "outerFrame" 
			for(i=0; i<elem.length; i++){
				
				childNodeName=XMLdata.getElementsByTagName(outerFrame)[0].childNodes[i].nodeName;
				valOutput+=XMLdata.getElementsByTagName(childNodeName)[0].childNodes[0].nodeValue;
			}
		}
		return valOutput;
	}
	
	/*         Data Export Protocoll Funktion
	---------------------------------------------------------*/
	function startBelegErstellen(belegNr){
		
		
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=depStartbelegErstellen&requestBelegNr="+belegNr;
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		if (resp.toLowerCase().indexOf('success') !== -1){
			
		//	alert("alles gut "+resp);
			location.reload(); 
		}
		
		
		
	
	}
	
	/*        lizensierungs eingabe
	---------------------------------------------------------*/
	
	function getLizensForm(dDirection=false){
		if(dDirection=='cClose'){
			$("#lizenszFormElement").remove();
			$("#getLizensFormBut").css({ "display":"block"			});
		}
		else{
			$( "#lizenszFormP" ).append( "<div id='lizenszFormElement'><label class='licensingFormIpLabel' for='licensingFormKeyIp'>Lizenz Schlüssel eingeben: </label><br /><input id='licensingFormKeyIp' name='zulu' type='text' class='licensingFormIp' /><br /><button class='orange button_none_float' onclick=\"getLizensForm('cClose')\">Eingabefeld schließen</button></div>" );
			$("#getLizensFormBut").css({ "display":"none"			});
			$("#configLicensingDiv  input:radio").attr('checked', false);
		}
	}
	
	function setForm(){
		if($("#getLizensFormBut").css("display") == "none" ){
			$("#configLicensingDiv  input:radio").attr('checked', false);
		}	
	}
	
	
	/*        Direkter Benutzerwechsel aus der Verkaufsmaske
	--------------------------------------------------------------*/
	function directChangeUser(userId){
		$.ajax({
			type: "POST",
			url: "ajax_funktionen_kp.php",
			dataType : "html",
			data: {functionKey:'directChangeUser', userId:userId  },
			async: true,
			success:function(ajaxResponse){
				if(checkJson(ajaxResponse) == true) {
					respArray=JSON.parse(ajaxResponse);
					if(respArray[0] == true){
						$("#error_message").html(respArray[1]);
						
					}
					else{
						$("#error_message").html(respArray[1]);
					}
				}
				else{
					$("#error_message").html("Benutzerwechsel Fehler !");
				}
				if(gastroVersion == 'ja')window.location.href = 'tische.php';
				else if(warenkorbAblageVersion == 'ja')window.location.href = 'wk_ablage.php';
				else location.reload();
			}
		});
		
	
	}
	
	
	
	/*         gutschein karte bearbeiten functions
	---------------------------------------------------------*/
	


	
	function loadKundenKarte(loadFunction, restBetragOption=false){
		//var startDate = new Date();
		//console.log("load Gs started: "+startDate);
		gutscheinCardNo=$("#gutscheinKarteModalIp").val();
		loadAmount=$("#gutscheinKarteValueToLoad").val();
		customerId=$("#gutscheinKarteCustId").val();
		gsComment=$("#gutscheinKarteKommentar").val();
		if($("#gsVerkaufsArt").length){
			gsVerkaufsArt=$("#gsVerkaufsArt option:selected").attr('name');
		}
		else gsVerkaufsArt=false;
		
		if($("#gsZahlungsArt").length){
			gsZahlungsArt=$("#gsZahlungsArt option:selected").attr('id');
		}
		else gsZahlungsArt=false;
		
			// wenn es aud dem admin kommt gibt es eine tax rate  select element id = gsTaxSelectElem
		gsTaxRate=false;
		if ( $("#gsTaxSelectElem").length ) {	
			gsTaxRate=$("#gsTaxSelectElem option:selected").val();
		}
	
		$.ajax({
			type: "POST",
			url: "ajax_funktionen_kp.php",
			dataType : "html",
			data: {functionKey:'gutscheinKarteUpdate', loadFunction:loadFunction, gutscheinCardNo:gutscheinCardNo, loadAmount:loadAmount, customerId:customerId, gsTaxRate:gsTaxRate, restBetragOption:restBetragOption, gsVerkaufsArt:gsVerkaufsArt, gsComment:gsComment, gsZahlungsArt:gsZahlungsArt  },
			async: true,
			success:function(ajaxResponse){	
				if(checkJson(ajaxResponse) == true) {
					respArray=JSON.parse(ajaxResponse);
					 if(respArray[2] == 'deleteSuccess'){
						cClearGsBearbeitenModalFields();
						$("#gutscheinModalResponseTxt").html(respArray[1]);
					}
					else if(respArray[2] == 'deleteNONESuccess'){
						$("#gutscheinModalResponseTxt").html(respArray[1]);
					}
					else{
						$("#gutscheinModalResponseTxt").html(respArray[1]);
						getGutscheincardDataAufladen($("#gutscheinKarteModalIp").val());
					}					
							//var endDate   = new Date();					
							//console.log( "Load Gs fertig: "+(endDate - startDate) / 1000);				
				}
				else console.log(ajaxResponse);
			}
		});
	
	
	}
	
	
	function gutscheinKarteBearbeiten(fParam){
		if( $("#gutscheinkarteModal").css("display")=="none"){
			$("#gutscheinkarteModal").css({ "display":"block" });
			$("#gutscheinKarteModalIp").prop('disabled', false).focus();
			$("#gutschModalFocusIndicator").val('gutscheinKarteModalIp');
		}
		else {
			$("#gutscheinkarteModal").css({ "display":"none" });		
		}
	}
	
	function closeGutscheinModal(target=false){
		if(target=='adminBearbeiten'){
			$("#gutscheinBearbeitenModal").css({ "display":"none" });
			$("#gutschBearbModalLeft").html("");
			$("#gutschBearbModalRight").html("");
			
			//$("#gutscheinBearbeitenModal").find('.modal-body').html("");
		}
		else if(target=='adminAnlegenBearbeiten'){
			$("#gutscheinBearbeitenAnlegenModal").css({ "display":"none" });
			$("#gutscheinKarteModalIp,#gutscheinKarteValueToLoad, #gutscheinKarteCustId, #gutscheinKarteValueExist, #gutscheinKarteKommentar,  #kundenSearchGutscheinModalField").val('');
		//	$("#gsKarteAufladenBut, #gsKarteAnlegenBut, #gsKarteEntsperrenBut, #gsKarteDeleteBut, #gsBearbeitenModalClearBut, #gsKartePrintBut ").css({"display":"none"		});
			$(".gutscheinModalBut").css({ "display":"none"	});
			$("#selectedCustGutschModal, #gutscheinModalResponseTxt").html('');
			$("#gsVerkaufsArt").prop("selectedIndex", 0);
			$("#cardNoCreateBut").css({ "display":"block" });
			$('#searchResultGutscheinDiv').html('').css({'visibility':'hidden'});
			$("#gsTaxSelectElem").prop("selectedIndex", 0);
			$('#gsZahlungsArt').prop("selectedIndex", 0);
		}

		else{
				// hier wird das Gs Modal im bonieren Fenster geschlossen
			$("#gutscheinBearbeitenAnlegenModal").css({ "display":"none" });
			$("#gutscheinKarteModalIp,#gutscheinKarteValueToLoad, #gutscheinKarteCustId, #gutscheinKarteValueExist, #gutscheinKarteKommentar, #kundenSearchGutscheinModalField").val('');
			$("#selectedCustGutschModal, #gutscheinModalResponseTxt").html('');
			$("#gsKarteAufladenBut, #gsKarteAnlegenBut, #gsKarteEntsperrenBut, #gsKarteDeleteBut, #gsBearbeitenModalClearBut, #gsSaveTotalBut, #gsKartePrintBut ").css({"display":"none"		});
			$("#gutscheinkarteModal, #gsKarteClearCustfieldBut, #gsKarteSperrenBut").css({ "display":"none" });
			$("#gsVerkaufsArt").prop("selectedIndex", 0).prop('disabled', false);			
			$("#cardNoCreateBut").css({ "display":"block" });
			$('#gsZahlungsArt').prop("selectedIndex", 0);
			
			if(typeof gutscheinStandardTaxrate !== 'undefined' ){
					// die variable ist in anlegen_gutscheine.php dies gilt nur für das modal im admin bereich
				$("#gsTaxSelectElem option[value='"+gutscheinStandardTaxrate+"']").prop("selected", true);
			}
		}
	}
	
	function cClearGsBearbeitenModalFields(){
			// hier werden die Felder geleert aber das modal bleibt offen
		$("#gutscheinKarteModalIp,#gutscheinKarteValueToLoad, #gutscheinKarteCustId, #gutscheinKarteValueExist, #gutscheinKarteKommentar,  #kundenSearchGutscheinModalField").val('');
		$("#selectedCustGutschModal, #gutscheinModalResponseTxt").html('');
		$("#gsKarteAufladenBut, #gsKarteAnlegenBut, #gsKarteEntsperrenBut, #gsKarteDeleteBut, #gsBearbeitenModalClearBut, #gsKartePrintBut, #gsSaveTotalBut ").css({"display":"none"		});
		$("#gutscheinkarteModal, #gsKarteClearCustfieldBut, #gsKarteSperrenBut").css({ "display":"none" });
		$("#cardNoCreateBut").css({ "display":"block" });
		$("#gsVerkaufsArt").prop("selectedIndex", 0).prop('disabled', false);
		$("#gsTaxSelectElem").prop('disabled', false);
		$("#gutscheinKarteModalIp").prop('disabled', false).focus();
		$("#gutschModalFocusIndicator").val('gutscheinKarteModalIp');
		
		if(typeof gutscheinStandardTaxrate !== 'undefined' ){
					// die variable ist in anlegen_gutscheine.php dies gilt nur für das modal im admin bereich
				$("#gsTaxSelectElem option[value='"+gutscheinStandardTaxrate+"']").prop("selected", true);
		}
	}
	
	function addNextCardNo(funcKey, cartNo, amountToPush){		
		if(funcKey == 'getArrayData'){
			if (typeof gsCardMultiBook !== 'undefined' && gsCardMultiBook.length > 0) {
				return gsCardMultiBook;
			}
			else{
				console.log("array NICHT gefunden");
				return false;
			}
			
		}
		else if(funcKey == 'pushMultibookArray'){
			arrayL=gsCardMultiBook.length;
			checkOnExist=false;
			for(i=0; i < arrayL; i++){
				if(gsCardMultiBook[i][0] == cartNo) checkOnExist=true;
			}
			if(checkOnExist==false){
				nextData = new Array(cartNo, amountToPush);
				gsCardMultiBook.push(nextData);	
				return true;
			}
			else return false;
			
		
		}
		else if(funcKey == 'clearMultibookArray'){
			if (typeof gsCardMultiBook !== 'undefined' && gsCardMultiBook.length > 0) {
				while (gsCardMultiBook.length > 0) {
					gsCardMultiBook.pop();		// laut internet schnellste methode zum löchen bzw entleeren eines arrays
												// das wird bei zahlung_abgeschlossen und abbrechen aufgerufen, da werden die felder und diese array gelöscht
				} 
			}
			return false;
		}
		openAm=$("#offener_betrag").val();
		if(openAm != ""){
			openAm=openAm.replace(",", ".");
			openAm*=1;
			if(openAm <= 0) return false;
		}
		
		if($("#gsCardMultiBookCounter").val() == 0){						
			currCardNo=$("#gutschein_nr_ip").val();
			currBookAmmount=$("#gutschein_nr_ip").prev().val();
			gsCardMultiBook=[[currCardNo, currBookAmmount]];

			$("#getCardRestvalBut").css({ "display":"none"		});
			$("#gsCardMultiBookCounter").val(1).css({ "display":"block"		});
			$("#gutschein_nr_ip").val("").prop( "disabled", false ).css({"color":"", "font-weight":""	}).focus();
			$("#offener_betrag").css({"color":"", "font-weight":""	});
			
		}
		else{
			$("#gutschein_nr_ip").val("").prop( "disabled", false ).css({"color":"", "font-weight":""	}).focus();
			$("#offener_betrag").css({"color":"", "font-weight":""	});
			// wenn multi booking schon gesetzt wird beim nächsten plus hier nur das eingabe feld leer gemacht, der rest passiert kassieren.php -> getCreditOfCardNo
		}
	}
	
	function gsCardNoCreate(){
		$.ajax({
			type: "POST",
			url: "ajax_funktionen_kp.php",
			dataType : "html",
			data: {functionKey:'gutscheinKarteCreateNo'  },
			async: true,
			success:function(ajaxResponse){
				if( ajaxResponse.toLowerCase().indexOf('error') !== -1) $("#gutscheinModalResponseTxt").html("Fehler beim Erstellen der Karten Nummer.");
				else {	
					$("#gutscheinKarteModalIp").val(ajaxResponse);
					getGutscheincardDataAufladen(ajaxResponse);
				}

			}
		});
	
	}
	
	
	function getGutscheincardDataAufladen(gutscheinCardNo){
		
		$.ajax({
			type: "POST",
			url: "ajax_funktionen_kp.php",
			dataType : "html",
			data: {functionKey:'getCardCredit', gutscheinCardNo:gutscheinCardNo, openAmount:0  },
			async: true,
			success:function(ajaxResponse){
				if(checkJson(ajaxResponse) == true) {
					respArray=JSON.parse(ajaxResponse);			// array index 0			3 response text
					$("#gutscheinModalResponseTxt").html(respArray[3]);
					if(respArray[5] != false)$("#selectedCustGutschModal").html(respArray[5]);
					else $("#selectedCustGutschModal").html("");
		
					if(respArray[0] == 1 && respArray[2] == 0){		// karte gibts -> aufladen modus
						$("#gsKarteAnlegenBut, #gsKarteEntsperrenBut").css({ "display":"none" });
						$("#gsKarteAufladenBut, #gsKarteSperrenBut, #gsKartePrintBut").css({ "display":"block" });
						$("#gutscheinKarteValueExist").val(respArray[4]);
						$("#gutscheinKarteCustId").val(respArray[6]);
						$("#gutscheinKarteValueToLoad").val('').prop('disabled', false).focus();
						if(respArray[6] >0 ) $("#gsKarteClearCustfieldBut").css({ "display":"block"		});
						else $("#gsKarteClearCustfieldBut").css({ "display":"none"		});
						$("#gutscheinKarteModalIp").val(respArray[7]).prop('disabled', true);
						$("#gutschModalFocusIndicator").val('gutscheinKarteValueToLoad');
						$("#gsTaxSelectElem option[value='"+respArray[8]+"']").prop("selected", true);
						$("#gsTaxSelectElem").prop('disabled', 'disabled');
						$("#gsVerkaufsArt option[name='"+respArray[10]+"']").prop("selected", true);
						$("#gsVerkaufsArt").prop('disabled', 'disabled');
						$("#gsBearbeitenModalClearBut, #gsKarteDeleteBut, #gsSaveTotalBut").css({ "display":"block"			});
						$("#gutscheinKarteKommentar").val(respArray[9]);
					}
					else if(respArray[0] == 0 && respArray[1] == 0 && respArray[2] == 0){	// karte gibts noch nicht -> neu anlegen Modus
						$("#gsKarteAufladenBut, gsKarteEntsperrenBut, #gsKarteSperrenBut").css({ "display":"none" });
						$("#gsKarteAnlegenBut").css({ "display":"block" });
						$("#gutscheinKarteValueExist").val(0);
						$("#gutscheinKarteCustId").val(respArray[6]);
						$("#gsKarteClearCustfieldBut").css({ "display":"none"		});
						$("#gutscheinKarteValueToLoad").val('').prop('disabled', false).focus();
						$("#gsVerkaufsArt").prop("selectedIndex", 0).prop('disabled', false);
						$("#gsTaxSelectElem option[value='0.0000']").prop("selected", true);
						$("#gsTaxSelectElem").prop('disabled', false);
						$("#gutschModalFocusIndicator").val('gutscheinKarteValueToLoad');
						$("#gsKarteDeleteBut").css({ "display":"none"			});
					}
					else if(respArray[0] == 1 && respArray[2] == 1){	// karte gibts ist aber gesperrt
						$("#gsKarteAufladenBut, #gsKarteAnlegenBut, #gsKarteSperrenBut").css({ "display":"none" });	
						$("#gutscheinKarteValueExist").val(respArray[4]);
						$("#gutscheinKarteCustId").val(respArray[6]);
						$("#gutscheinKarteValueToLoad").val('').prop('disabled', true).val("");
						$("#gsKarteEntsperrenBut").css({ "display":"block" });
						$("#gsKarteClearCustfieldBut").css({ "display":"none"		});
						$("#gsVerkaufsArt option[name='"+respArray[10]+"']").prop("selected", true);
						$("#gsVerkaufsArt").prop('disabled', 'disabled');
						$("#gutscheinKarteModalIp").val(respArray[7]).focus();
						$("#gutschModalFocusIndicator").val('gutscheinKarteModalIp');
						
						$("#gsTaxSelectElem option[value='"+respArray[8]+"']").prop("selected", true);
						$("#gsTaxSelectElem").prop('disabled', 'disabled');
						$("#gsKarteDeleteBut").css({ "display":"block"			});
						$("#gsBearbeitenModalClearBut").css({ "display":"block"			});
					}
					
					$("#cardNoCreateBut").css({	"display":"none"	});
				}
				else console.log(ajaxResponse);
				
			}
		});
		
	}
	
	function setActiveGutschModalField(fieldId){
		$("#gutschModalFocusIndicator").val(fieldId);	
	}
	
	
	function clearGutscheinkartenFields(){
		$("#gutschein_nr_ip, #gutscheinkarteRestbetrag").val("");
		$("#gsCardMultiBookCounter, #gutscheinKarteKundenIp").val(0);
		$("#zahlenModalInfoP").html("");
		$("#gsCardMultiBookCounter, .addNextCardBut, .getCardRestvalBut").css({ "display":"none" 	});
		addNextCardNo('clearMultibookArray', '', '');
		$("#gutschein_nr_ip").prop( "disabled", false ).css({ "color":"", "font-weight":""			});
		$("#offener_betrag").css({ "color":"", "font-weight":""	});
	}
	
	
	/*         eMail functions
	---------------------------------------------------------*/
	
	function sendEmail(callfrom=false, mailcontent=false, backupFileLink=false){
		
		if(callfrom == 'testmail'){
			mailEmpf=$("#EMAIL_EMPFAENGER").val();

			if(mailEmpf.indexOf(';') !== -1){
				list=mailEmpf.split(";");
				for(i=0; i < list.length; i++){
					if(isValidEmailAddress(list[i]) != true){
						alert("Eine oder mehrere eMail Adressen sind ungültig");
						return false;
					}
				}
			}
			else{
				if(isValidEmailAddress(mailEmpf) != true){
					alert("Ungültige eMail Adresse");
					return false;
				}
			}
		}
		mailEmpf=false;
		
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=sendEmail&empfAdress="+mailEmpf+"&modus="+callfrom+"&mailcontent="+mailcontent+"&backupFileLink="+backupFileLink;
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
				
		if(callfrom == 'testmail') $("#configMailMsgDiv").html(resp);

	}
		
	function isValidEmailAddress(emailAddress) {
        var pattern = new RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/);
        return pattern.test(emailAddress);
    };
	
	
	/*         kp Kassabuch Test
	---------------------------------------------------------*/
	
	
	function testKassabuch(){
		$("#kassbuchRes").html('');
		xmlhttp=GetXmlHttpObject();
		xmlhttp.open("POST", "ajax_funktionen_kp.php", false);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
		sendCont="functionKey=testKassabuch";
		xmlhttp.send(sendCont);
		resp=xmlhttp.responseText;
		
		$("#kassbuchRes").html(resp);
	
	
	}
	
	
	/*            prüft ob zb der ajax return wert ein json object ist
		ist es auf ein json object bz array ausgelegt und der ajax rewuest macht einen error 
		kommt ein string anstelle vom array/oject retour
	---------------------------------------------------------------------------*/
	function checkJson(checkIt){
		try{
			JSON.parse(checkIt);
			return true;
		}
		catch (error){
			return false;
		}
	}
	
	function checkPrintSession(){
		$.ajax({
				type: "POST",
				url: "zuztest.php",
				dataType : "html",
				data: {	},
				async: true,
				success:function(response){
					console.log(response);
				}
			});
	
	
	}
	
	
	function runKpXtest(){
		//$("#zahlungAbgeschlExprBut").prop('disabled', true);
		$("#zahlungDisableImg").css({ "display":"block"			});
		return "bin da zulu";
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	