/**
 * @author Christian Schöner
 */

	var anreise_date = new Date();
	var abreise_date = new Date();
	var server_time = new Date();
	var html_fehlermessage = "<div id='fehler_message'>MESSAGE</div>";
	var tempo = 20;
	var interval_oeffnen;
	var interval_schliessen;
	var aktion_oeffnet = false;
	var aktion_schliesst = false;
	var gesendet = false;
	
	
	
	window.onload = function(){	
		var timestamp = document.getElementById('timestamp').value;
		
		// aktuellen ServerTimeStamp auf den heutigen Tag um 0 Uhr setzten
		server_time.setTime(timestamp * 1000);
		server_time.setHours(0);
		server_time.setMinutes(0);
		server_time.setSeconds(0);
		server_time.setMilliseconds(0);
		
		anreise_date.setTime(timestamp * 1000 + 86400000);
		anreise_date.setHours(0);
		anreise_date.setMinutes(0);
		anreise_date.setSeconds(0);
		anreise_date.setMilliseconds(0);
				
		abreise_date.setTime(timestamp * 1000 + 86400000 * 2);
		abreise_date.setHours(0);
		abreise_date.setMinutes(0);
		abreise_date.setSeconds(0);
		abreise_date.setMilliseconds(0);		

		document.getElementById('anreise_tag').value = anreise_date.getDate();
		document.getElementById('anreise_monat').value = anreise_date.getMonth();
		document.getElementById('anreise_jahr').value = anreise_date.getFullYear();
		
		document.getElementById('abreise_tag').value = abreise_date.getDate();
		document.getElementById('abreise_monat').value = abreise_date.getMonth();
		document.getElementById('abreise_jahr').value = abreise_date.getFullYear();		

	}
	
	function event_send() {
		if(gesendet==true) {return;}
		
		document.getElementById('termin_message').innerHTML = "";  	// Eventuell vorhandene Fehlermeldung entfernen
		document.getElementById('daten_message').innerHTML = ""; 	// Eventuell vorhandene Fehlermeldung entfernen
		
		if(check_value()) {
			document.getElementById('btn_senden').innerHTML = "Daten werden gesendet...";
			send()
		} else {
			create_fehlermessage_daten("Daten konnten nicht gesendet werden.<br /> Bitte überprüfen Sie Ihre Eingaben!");
		}
	}
	
	function send() {
		var anreise_form_date = new Date();
		var abreise_form_date = new Date();
		
		document.getElementById('termin_message').innerHTML = "";  // Eventuell vorhandene Fehlermeldung entfernen
		
		// Anreisedatum an ein Date-Obj übergeben
		anreise_form_date.setDate(document.getElementById('anreise_tag').value);
		anreise_form_date.setMonth(document.getElementById('anreise_monat').value);
		anreise_form_date.setFullYear(document.getElementById('anreise_jahr').value);
		
		// Daten aus dem Date-Obj ermitteln
		var anreise_form_tag = anreise_form_date.getDate();
		var anreise_form_monat = anreise_form_date.getMonth();
		var anreise_form_jahr = anreise_form_date.getFullYear();
		
		// Datum vergleichen und ggfl. Fehlermeldung generieren
		if(anreise_form_tag!=document.getElementById('anreise_tag').value || anreise_form_monat!=document.getElementById('anreise_monat').value ||	anreise_form_jahr!=document.getElementById('anreise_jahr').value) {
			create_fehlermessage("Ungültiges Datum!<br /> Bitte überprüfen Sie das Anreisedatum!");
			return;
		} 
		
		// Anreisedatum an ein Date-Obj übergeben
		abreise_form_date.setDate(document.getElementById('abreise_tag').value);
		abreise_form_date.setMonth(document.getElementById('abreise_monat').value);
		abreise_form_date.setFullYear(document.getElementById('abreise_jahr').value);
		
		// Daten aus dem Date-Obj ermitteln
		var abreise_form_tag = abreise_form_date.getDate();
		var abreise_form_monat = abreise_form_date.getMonth();
		var abreise_form_jahr = abreise_form_date.getFullYear();
		
		// Datum vergleichen und ggfl. Fehlermeldung generieren
		if(abreise_form_tag!=document.getElementById('abreise_tag').value || abreise_form_monat!=document.getElementById('abreise_monat').value ||	abreise_form_jahr!=document.getElementById('abreise_jahr').value) {
			create_fehlermessage("Ungültiges Datum!<br /> Bitte überprüfen Sie das Abreisedatum!");
			return;
		} 
		
		// Abreise- und Anreisedatum vergleichen. 
		if(anreise_form_date.getTime() >= abreise_form_date.getTime()) {
			create_fehlermessage("Ungültiges Abreisedatum!<br /> Das Abreisedatum kann frühestens einen Tag nach der Anreise gebucht werden");
			return;
		}
		
		// Überprüfen, ob das Anreisedatum fühestens einen Tag in der Zukunft liegt
		if(server_time.getTime() + 86400000 > anreise_form_date.getTime()) {
			create_fehlermessage("Ungültiges Datum!<br /> Bitte überprüfen Sie das Anreisedatum!");
			return;			
		}
		
		if (check_value) {		
			/**************************************************
	 		*  Formdaten auslesen
	 		**************************************************/
			var anreise_tag = valid_value(document.getElementById('anreise_tag').options[document.getElementById('anreise_tag').selectedIndex].text);
			var anreise_monat = valid_value(document.getElementById('anreise_monat').options[document.getElementById('anreise_monat').selectedIndex].text);
			var anreise_jahr = valid_value(document.getElementById('anreise_jahr').options[document.getElementById('anreise_jahr').selectedIndex].text);
			var abreise_tag = valid_value(document.getElementById('abreise_tag').options[document.getElementById('abreise_tag').selectedIndex].text);
			var abreise_monat = valid_value(document.getElementById('abreise_monat').options[document.getElementById('abreise_monat').selectedIndex].text);
			var abreise_jahr = valid_value(document.getElementById('abreise_jahr').options[document.getElementById('abreise_jahr').selectedIndex].text);
			var personen_anzahl = valid_value(document.getElementById('anzahl_personen').value);
			
			var anrede = valid_value(document.getElementById('anrede').options[document.getElementById('anrede').selectedIndex].text);
			var titel = valid_value(document.getElementById('titel').value);
			var vorname = valid_value(document.getElementById('vorname').value);
			var nachname = valid_value(document.getElementById('nachname').value);
			var firma = valid_value(document.getElementById('firma').value);
			var strasse = valid_value(document.getElementById('strasse').value);
			var ort = valid_value(document.getElementById('ort').value);
			var telefon = valid_value(document.getElementById('telefon').value);
			var mobil = valid_value(document.getElementById('mobil').value);
			var email = valid_value(document.getElementById('email').value);
			var mitteilung = valid_value(document.getElementById('mitteilung').value);
			
			senden =  "seite=buchung";
			senden += "&aktion=buchung_senden";
			senden += "&anreise_tag=" + anreise_tag;
			senden += "&anreise_monat= " + anreise_monat;
			senden += "&anreise_jahr=" + anreise_jahr;
			senden += "&abreise_tag=" + abreise_tag;
			senden += "&abreise_monat=" + abreise_monat;
			senden += "&abreise_jahr=" + abreise_jahr;
			senden += "&personen_anzahl=" + personen_anzahl;
			senden += "&anrede=" + anrede;
			senden += "&titel=" + titel;
			senden += "&vorname=" + vorname;
			senden += "&nachname=" + nachname;
			senden += "&firma=" + firma;
			senden += "&strasse=" + strasse;
			senden += "&ort=" + ort;
			senden += "&telefon=" + telefon;
			senden += "&mobil=" + mobil;
			senden += "&email=" + email;
			senden += "&mitteilung=" + mitteilung;
			
			setRequest(senden);
		} else {
			
		}
	}

	/**************************************************
	*  Eingabe überprüfen
	**************************************************/
	function check_value() {

		var vorname = trim(document.getElementById('vorname').value);
		var nachname = trim(document.getElementById('nachname').value);
		var strasse = trim(document.getElementById('strasse').value);
		var ort = trim(document.getElementById('ort').value);
		var telefon = trim(document.getElementById('telefon').value);
		var mobil = trim(document.getElementById('mobil').value);
		var counter = 0;
		
		
		if(vorname.length>3) {
			document.getElementById('vorname').style.backgroundColor ="#C7A961";
			counter++;
		} else {
			document.getElementById('vorname').style.backgroundColor ="#ECC873";
		}

		if(nachname.length>3) {
			document.getElementById('nachname').style.backgroundColor ="#C7A961";
			counter++;
		} else {
			document.getElementById('nachname').style.backgroundColor ="#ECC873";
		}
		
		if(strasse.length>5) {
			document.getElementById('strasse').style.backgroundColor ="#C7A961";
			counter++;
		} else {
			document.getElementById('strasse').style.backgroundColor ="#ECC873";
		}
		
		if(ort.length>7) {
			document.getElementById('ort').style.backgroundColor ="#C7A961";
			counter++;
		} else {
			document.getElementById('ort').style.backgroundColor ="#ECC873";
		}
		
		// Einer von diesen Beiden reicht aus
		if(telefon.length>7) {
			document.getElementById('telefon').style.backgroundColor ="#C7A961";
			document.getElementById('mobil').style.backgroundColor ="#C7A961";
			counter++;
			counter++;
		} else {
			if(mobil.length>9) {
				document.getElementById('mobil').style.backgroundColor ="#C7A961";
				document.getElementById('telefon').style.backgroundColor ="#C7A961";		
				counter++;
				counter++;
			} else {
				document.getElementById('mobil').style.backgroundColor ="#ECC873";
				document.getElementById('telefon').style.backgroundColor ="#ECC873";
			}	
		}

		if(aktion_oeffnet==true || aktion_schliesst==true) {
			return;
		}
		
		if(counter>5) {			
			return true;
		} else {			
			return false;
		}
	
		
	}

	/**********************************************************
	* Request verarbeiten
	**********************************************************/	
	function getValuesFromRequest(_value) {
		gesendet = true;
		
		document.getElementById('daten_message_gesendet').innerHTML = "Ihre Buchung wurden erfolgreich gesendet.";
		document.getElementById('daten_message_gesendet').style.border = "1px solid #009900";
		document.getElementById('daten_message_gesendet').style.paddingTop = "15px";
		document.getElementById('daten_message_gesendet').style.paddingBottom = "15px";
		document.getElementById('daten_message_gesendet').style.paddingLeft = "15px";
		document.getElementById('daten_message_gesendet').style.backgroundColor = "#EEFFEE";
		
		document.getElementById('btn_senden').innerHTML = "";
		document.getElementById('btn_senden').style.border = "0px";
		document.getElementById('btn_senden').style.padding = "0px";

	}

	/**********************************************************
	* Mitteilung erstellen
	**********************************************************/	
	function create_fehlermessage(_message) {
		var message = html_fehlermessage.replace(/MESSAGE/,_message);
		
		document.getElementById('termin_message').innerHTML = message;	
	}
	/**********************************************************
	* Mitteilung erstellen
	**********************************************************/	
	function create_fehlermessage_daten(_message) {
		var message = html_fehlermessage.replace(/MESSAGE/,_message);
		
		document.getElementById('daten_message').innerHTML = message;	
	}	
	
	/**********************************************************
	* Entfernt Umlaute
	**********************************************************/		
	function valid_value(_value){
		
		var tmp_value2 = "";
		
		value = _value.replace(/ä/g, "<--ae-->");
		value = value.replace(/ö/g, "<--oe-->");
		value = value.replace(/ü/g, "<--ue-->");
		value = value.replace(/Ä/g, "<--Ae-->");
		value = value.replace(/Ö/g, "<--Oe-->");
		value = value.replace(/Ü/g, "<--Ue-->");
		value = value.replace(/ß/g, "<--sz-->");
		value = value.replace(/&/g, "<--UND-->");

   		for (i = 0; i < value.length; i++) { 
      		tmp_value = value.charAt(i); 
      		
      		if(tmp_value.charCodeAt(0)==8364) {
      			tmp_value = "<--EURO-->";
      		}
      		if(tmp_value.charCodeAt(0)==34) {
      			tmp_value = "<--GF-->";
      		}
			tmp_value2 += tmp_value;
      	}	
		
		value = tmp_value2;			
		
		return value;
	}
	
	/**********************************************************
	* Löscht führende und anschließende Leerzeichen 
	**********************************************************/		
	function trim(str, chars) {
		return ltrim(rtrim(str, chars), chars);
	}
	 
	function ltrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
	 
	function rtrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}	

