$(document).ready(function() {
						   
	// E-Mail Adresse anzeigen
		$('a.mail-contact').each(function() {
			e = this.rel.replace('/','@');
			this.href = 'mailto:' + e;
			$(this).text(e);
		});
					   
						   
	// Funktion: Datum prüfen
	function checkDate(datum)
	{
	//(Schritt 1) Fehlerbehandlung
	if (!datum) return false;
		datum=datum.toString();
	
		//(Schritt 2) Aufspaltung des Datums
		datum=datum.split(".");
	if (datum.length!=3) return false;
	
		//(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats
		
		datum[0]=parseInt(datum[0],10);
		datum[1]=parseInt(datum[1],10)-1;
		
	//(Schritt 4) Behandlung Jahr nur zweistellig
	if (datum[2].length==2) datum[2]="20"+datum[2];
	
		//(Schritt 5) Erzeugung eines neuen Dateobjektes
		var kontrolldatum=new Date(datum[2],datum[1],datum[0]);
		
	//(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
	if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2])
		 return true; else return false;
	
	}						   
						   
	// Ladehinweis
	$("#ask-booking").ajaxStart(function(){
		
		$('#ask-booking').attr('disabled', 'disabled')								 
		$('#cta-loading').show().ajaxStop(function(){
		$('#cta-loading').fadeOut('slow');
		
		});
	});		
	
	// Maske Datum			
	$("input[name='start'], input[name='end']").mask("99.99.99");
	
	//Datepicker
	$.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
		closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
		prevText: unescape('&#x3c;zur%FCck'), prevStatus: 'letzten Monat zeigen',
		nextText: 'Vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
		currentText: 'heute', currentStatus: '',
		monthNames: ['Januar','Februar',unescape('M%E4rz'),'April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],
		monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',	weekHeader: 'Wo', weekStatus: 'Woche des Monats',
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
		dateFormat: 'dd.mm.yy', firstDay: 1, 
		initStatus: 'Wähle ein Datum', isRTL: false};
		
	$.datepicker.setDefaults($.datepicker.regional['de']);
	
	var dates = $("input[name='start'], input[name='end']").datepicker({
		showOn: 'focus',
		dateFormat: 'dd.mm.y',
		showAnim: 'fadeIn',
		minDate: '+0d',
		defaultDate: "+1d",
		numberOfMonths: 1,
		onSelect: function(selectedDate) {
			var option = this.name == "start" ? "minDate" : "maxDate";
			var instance = $(this).data("datepicker");
			var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
			dates.not(this).datepicker("option", option, date);
		}
		
	});
	
	
	function checkBooking() {
											 
		startDate	= $("input[name='start']").val();
		endDate		= $("input[name='end']").val();
		
		// Datum prüfen
		if(checkDate(startDate) == false) {
			$('#start').addClass('error');
			return false;
		} else if(checkDate(endDate) == false) {
			$('#end').addClass('error');
			return false;
		}
		
		if($('#cta-startsmall-booking').length > 0) {
			$('#check-booking').submit();
			return false;
		}
					   
		// Prüfen ob Buchung möglich
		$.post("scripts/booking.php", { action: 'check', startdate: startDate, enddate: endDate },
			   
			function(data){
									
				// Button bei Request deaktivieren
				$(this).attr('disabled', 'disabled').ajaxStop(function(){
																	   					
					// Antwort einblenden
					$('#ask-booking').after(data).hide();
					
					// Wenn Buchung möglich
					if($('.booking-available').length > 0 && $('#cta-booking-data').is(':hidden')) {

						// Formular anzeigen
						$('.cta-booking-message').fadeOut('fast', function(){
							$('#cta-booking-data').delay(600).fadeIn('fast');	
						});	
						
					}
					
					data = '';
					
				});
										 
			}
			
		);	
			
	}	
	
	// Wenn Check nach Seitenaufruf starten soll
	if($('#sent-data').length > 0) {
		checkBooking();
	}
	
	// Daten zur Übernachtung prüfen
	$('#ask-booking').click(checkBooking);
	
	// Wenn Benutzer Buchungsdaten ändert
	$('form input:not(#ask-booking)').focus(function() {
			
			$('#booking-answer').remove();
			$('#ask-booking').removeAttr('disabled').show();
			
			if($('#cta-booking-data').is(':visible')) {
			
				$('#cta-booking-data').fadeOut('fast', function(){
					$('#cta-booking-hint').delay(600).fadeIn('fast');	
				});
				
			}
			
			// Fehlerrahmen von Input entfernen
			$('#start').removeClass('error');
			$('#end').removeClass('error');

	  
	});
	
	// Daten zur Übernachtung prüfen
	$('#place-booking').click(function placeBooking() {
																									
													
		var fldSingle		= $("input[id='fld-singleroom']").val();
		var fldDouble		= $("input[id='fld-doubleroom']").val();
		var fldChildren		= $("input[id='fld-children']").val();
											 
		var fldCompany		= $("input[id='fld-company']").val();
		var fldTitle		= $("select[id='fld-title']").val();
		var fldFirstname	= $("input[id='fld-firstname']").val();
		var fldLastname		= $("input[id='fld-lastname']").val();
		var fldEmail		= $("input[id='fld-email']").val();
		var fldPhone		= $("input[id='fld-phone']").val();
		var fldFax			= $("input[id='fld-fax']").val();
		var fldConditions	= $("input[id='fld-conditions']").attr("checked");		
		
		var errorPoints		= 0;
		
		var mailReg			= "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";
		var regex			= new RegExp(mailReg);		
		
		$('#cta-booking-data input, #cta-booking-data select, #cta-booking-data div').removeClass('error');
		
		// Eingaben prüfem
		if(fldTitle == '') {
			$('#fld-title').addClass('error');
			errorPoints++;
		}
		if(fldFirstname == '') {
			$('#fld-firstname').addClass('error');
			errorPoints++;
		}
		if(fldLastname == '') {
			$('#fld-lastname').addClass('error');
			errorPoints++;
		}
		if(regex.test(fldEmail) == false) {
			$('#fld-email').addClass('error');
			errorPoints++;
		}
		if(fldPhone.length < 5) {
			$('#fld-phone').addClass('error');
			errorPoints++;
		}
		if(fldConditions == false) {
			$('#fld-conditions').parent().addClass('error');
			errorPoints++;
		}
		
		if(errorPoints > 0) {
			return false;	
		}
		
		// Submit deaktiveren
		$('#place-booking').attr('disabled', 'disabled');
		
		// Buchung senden
		$.post("scripts/booking.php", { action: 'place', postSingle: fldSingle, postDouble: fldDouble, postChildren: fldChildren, postCompany: fldCompany, postStart: startDate, postEnd: endDate,
			   							postTitle: fldTitle, postFirstname: fldFirstname, postLastname: fldLastname, postEmail: fldEmail, postPhone: fldPhone, postFax: fldFax },
			
			function(placeReturn){
				$('#cta-booking-data').fadeOut('fast', function(){
					$('#cta-booking-success').delay(600).fadeIn('slow');
					
					//Submit aktiveren
					$('#place-booking').removeAttr('disabled');

				});
			});
		
	});
	
	
});