// jQuery stuff

var $j = jQuery;

$j(document).ready(function() {
	
	if (typeof document.bookingForm == "object") {
		$j('input#ciDate').datepicker({
			dateFormat: 'dd.mm.yy', 
			firstDay: '1',
			dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
			monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
			minDate: +1,
			//showOn: 'button', 
			//buttonImage: 'fileadmin/mds/apartment_display/cal.jpg', 
			//buttonImageOnly: false 
		});
		
		$j('input#coDate').datepicker({
				dateFormat: 'dd.mm.yy', 
				firstDay: '1',
				dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
				monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
				beforeShow: function() {
					if ($j('input#ciDate').datepicker("getDate") != null) {
						var dpDate = $j('input#ciDate').datepicker("getDate").getTime();
						var date = new Date(dpDate);
						date.setTime(date.getTime() + (86400 * 1000));	
						//$j('input#coDate').datepicker('setDate', date);
						$j('input#coDate').datepicker('option', 'minDate', date)
					} else {
						$j('input#coDate').datepicker('option', 'minDate', '+2d')
					}
				},
				onClose: function() {
					if ($j('input#ciDate').datepicker("getDate") == null) {
						$j('input#ciDate').datepicker('setDate', '+1d');
					}
					var unit = document.bookingForm.aptID.value;
					return getRates(unit);
				}
				//showOn: 'button', 
				//buttonImage: 'fileadmin/mds/apartment_display/cal.jpg', 
				//buttonImageOnly: false 
		});
	}
	
	$j('#if_forename').focus(function() {
		$j(this).css("border", "");
		$j('#if_forename').css("color", "");
		document.getElementById("if_forename").value = "";
		$j('#if_forename').css("text-align", "");
	});
	
	$j('#if_surname').focus(function() {
		$j(this).css("border", "");
		$j('#if_surname').css("color", "");
		document.getElementById("if_surname").value = "";
		$j('#if_surname').css("text-align", "");
	});
	
	$j('#if_email').focus(function() {
		$j(this).css("border", "");
		$j('#if_email').css("color", "");
		document.getElementById("if_email").value = "";
		$j('#if_email').css("text-align", "");
	});
	
	$j('#telephone').focus(function() {
		$j(this).css("border", "");
		$j('#telephone').css("color", "");
		document.getElementById("telephone").value = "";
		$j('#telephone').css("text-align", "");
	});
	
	$j('#mobilephone').focus(function() {
		$j(this).css("border", "");
		$j('#mobilephone').css("color", "");
		document.getElementById("mobilephone").value = "";
		$j('#mobilephone').css("text-align", "");
	});
	
	$j('#if_street').focus(function() {
		$j(this).css("border", "");
		$j('#if_street').css("color", "");
		document.getElementById("if_street").value = "";
		$j('#if_street').css("text-align", "");
	});
	
	$j('#if_city').focus(function() {
		$j(this).css("border", "");
		$j('#if_city').css("color", "");
		document.getElementById("if_city").value = "";
		$j('#if_city').css("text-align", "");
	});
	
	$j('#if_postCode').focus(function() {
		$j(this).css("border", "");
		$j('#if_postCode').css("color", "");
		document.getElementById("if_postCode").value = "";
		$j('#if_postCode').css("text-align", "");
	});
	
	$j('#if_country').focus(function() {
		$j(this).css("border", "");
		$j('#if_country').css("color", "");
		document.getElementById("if_country").value = "";
		$j('#if_country').css("text-align", "");
	});
	
	$j('#ciDate').focus(function() {
		$j(this).css("border", "");
		$j('#ciDate').css("color", "");
		document.getElementById("ciDate").value = "";
		$j('#ciDate').css("text-align", "");
	});
	
	$j('#coDate').focus(function() {
		$j(this).css("border", "");
		$j('#coDate').css("color", "");
		document.getElementById("coDate").value = "";
		$j('#coDate').css("text-align", "");
	});
	
});

function getRates(unit) {
	
	var unit = unit;
	var ciDate = document.bookingForm.ciDate.value;
	var coDate = document.bookingForm.coDate.value;
	
	var req = null;
	
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if (req != null) {
		req.open("POST", "fileadmin/berlin/booking/displayRates.php", true);
		req.onreadystatechange = displayRates;		
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.send("ciDate="+ciDate+"&coDate="+coDate+"&aptId="+unit);
	}
	
	function displayRates() {
		if (req.readyState == 4) {
			document.getElementById("rates").innerHTML = req.responseText;
			changeApt();
			return false;
		} else {
			//alert(rreq.ready);
			document.getElementById("rates").innerHTML = "<hr />Loading...";
		}
	}
	
	
}

function booking() {
	
	required = "Erforderlich";
	
	var aptID = document.bookingForm.aptID.value;
	var title = document.bookingForm.title.value;
	var forename = document.bookingForm.forename.value;
	var surname = document.bookingForm.surname.value;
	var tel = document.bookingForm.telephone.value;
	var mobile = document.bookingForm.mobilephone.value;
	var fax = document.bookingForm.fax.value;
	var email = document.bookingForm.email.value;
	var ciDate = document.bookingForm.ciDate.value;
	var coDate = document.bookingForm.coDate.value;
	var adults = document.bookingForm.adults.value;
	var message = document.bookingForm.message.value;
	
	var numDays = "null";
	numDays = document.bookingForm.numDays.value;
	
	// Validating
	var check = true;
	
	// regex
	var refRX = /^berlin_0(1|2)$/;
	var titleRX = /^[aA-zZ]{2,4}$/;
	var forenameRX = /^(([\wäöüÄÖÜß]{1,}\'?[\wäöüÄÖÜß]*[-]?\'?[\wäöüÄÖÜß]{2,}\s?){1,3})$/;
	var surnameRX = /^([\wäöüÄÖÜß]{1,}\'?[\wäöüÄÖÜß]*[-]?\'?[\wäöüÄÖÜß]{2,})$/;
	var telRX = /^\+?((\s*(\/|\.)?\s*)\d+)+$/;
	var emailRX = /^(\w+([-]?|\.?))*\w+@(\w[-]?)*\w+(\.(\w){2,3}){1,2}$/;
	var textRX = /<a href+/;
	var dateRX = /^\d{2}\.\d{2}\.\d{4}$/;
	

	// title
	if (!titleRX.test(title)) {
		//check = false
	}
	
	// names
	if (!forenameRX.test(forename)) {
		check = false;
		document.getElementById("if_forename").style.border = "solid 3px red";
		document.getElementById("if_forename").value = required;
		$j('#if_forename').css("color", "red");
		$j('#if_forename').css("text-align", "center");
	}
	
	if (!surnameRX.test(surname)) {
		document.getElementById("if_surname").style.border = "solid 3px red";
		document.getElementById("if_surname").value = required;
		$j('#if_surname').css("color", "red");
		$j('#if_surname').css("text-align", "center");
		check = false;
	}
	
	// telephone
	if (!telRX.test(tel)) {
		document.getElementById("telephone").style.border = "solid 3px red";
		document.getElementById("telephone").value = required;
		$j('#telephone').css("color", "red");
		$j('#telephone').css("text-align", "center");
		check = false;
	}
	
	// mobile
	if (!telRX.test(tel)) {
		document.getElementById("mobilephone").style.border = "solid 3px red";
		document.getElementById("mobilephone").value = required;
		$j('#mobilephone').css("color", "red");
		$j('#mobilephone').css("text-align", "center");
		check = false;
	}
	
	// email
	if (!emailRX.test(email)) {
		document.getElementById("if_email").style.border = "solid 3px red";
		document.getElementById("if_email").value = required;
		$j('#if_email').css("color", "red");
		$j('#if_email').css("text-align", "center");
		check = false;
	}
	
	// dates
	if (!dateRX.test(ciDate)) {
		document.getElementById("ciDate").style.border = "solid 3px red";
		document.getElementById("ciDate").value = required;
		$j('#ciDate').css("color", "red");
		$j('#ciDate').css("text-align", "center");
		check = false;
	}
	
	if (!dateRX.test(coDate)) {
		document.getElementById("coDate").style.border = "solid 3px red";
		document.getElementById("coDate").value = required;
		$j('#coDate').css("color", "red");
		$j('#coDate').css("text-align", "center");
		check = false;
	}
	
	if (numDays < 3 || numDays == null) {
		check = false;
	}
	
	var req = null;
	if (check) {
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		if (req != null) {
			
			var sendString = "aptID="+aptID+"&title="+title+"&forename="+forename+"&surname="+surname+"&tel="+tel;
			sendString += "&mobile="+mobile+"&fax="+fax+"&email="+email+"&ciDate="+ciDate+"&coDate="+coDate+"&adults="+adults;
			sendString += "&message="+message;
			
			req.open("POST", "fileadmin/berlin/booking/ProcessBooking.php", true);
			req.onreadystatechange = processBooking;		
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send(sendString);
		}
	}
	
	function processBooking() {
		if (req.readyState == 4) {
			document.getElementById("bookingForm_container").innerHTML = req.responseText;			
			return false;
		} else {
			//alert(rreq.ready);
			document.getElementById("bookingForm_container").innerHTML = "<hr />Loading...";
		}
	}
	
	return false;
	
}

function changeApt() {
	var apt = document.bookingForm.changeApt.value;
	
	if(apt == "berlin_01") {
		var apartment = "Ferienwohnung Berlin 01";
	} else if (apt == "berlin_02") {
		var apartment = "Ferienwohnung Berlin 02";
	} 
	
	document.getElementById("apartment").innerHTML = apartment;
	document.bookingForm.aptID.value = "" + apt;
	changeCalender(apt);
}

function changeCalender(aptId) {
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if (req != null) {
		
		var sendString = "aptId="+aptId;
		
		req.open("POST", "fileadmin/berlin/booking/displayCalender.php", true);
		req.onreadystatechange = changeCal;		
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.send(sendString);
	}
	
	function changeCal() {
		if (req.readyState == 4) {
			document.getElementById("calendars").innerHTML = req.responseText;			
			return false;
		} else {
			//alert(rreq.ready);
			document.getElementById("calendars").innerHTML = "<hr />Loading...";
		}
	}
	
	
	
}