/*function res() {
	var h = $('body').innerHeight();
	var win = $(window).height();
	if (win > h) {
		$('body').css('min-height', win);
	}
}

$(document).ready(res);
$(window).bind('resize', res);
*/
// booking popup functions

if (typeof langarray == 'undefined') {
	var langarray = {
		dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
		dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
		dayNamesShort: ['Son', 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam'],
		monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
		nextText: 'weiter',
		prevText: 'zurück',
	};
}

$(function() {
	$('.datepicker').datepicker({
		showOn: 'both',
		buttonImage: 'images/ico-calendar.gif',
		buttonImageOnly: true,
		dateFormat: 'dd.mm.yy',
		dayNames: langarray.dayNames,
		dayNamesMin: langarray.dayNamesMin,
		dayNamesShort: langarray.dayNamesShort,
		monthNames: langarray.monthNames,
		monthNamesShort: langarray.monthNamesShort,
		nextText: langarray.nextText,
		prevText: langarray.prevText,
		minDate: new Date()
	});
});


var bookingWindow = null;

function handleForm() {
	var tmp;
	var erMsg = [];
	
	// errorchecking
	tmp = $('#webresid').val();
	if (tmp == '') {
		erMsg.push('Bitte wählen Sie ein Haus.');
	}
	
	tmp = parseInt($('#persons').val(), 10);
	if (tmp < 1 || tmp > 12) {
		erMsg.push('Ungültige Personenanzahl.');
	}
	
	tmp = parseInt($('#rooms').val(), 10);
	if (tmp < 1 || tmp > 12) {
		erMsg.push('Ungültige Zimmeranzahl.');
	}
	
	var arrival;
	tmp = $('#arrival').val();
	if (tmp == '') {
		erMsg.push('Bitte geben Sie ein Anreisedatum ein.');
	} else {
		tmp = string2date(tmp);
		if (tmp == null) {
			erMsg.push('Ungültiges Anreisedatum.');
		} else {
			var d = new Date();
			// reset to midnight
			d.setHours(0);
			d.setMinutes(0);
			d.setSeconds(0);
			d.setMilliseconds(0);
			var now = d.getTime();
			if (now > tmp.getTime()) {
				erMsg.push('Anreisedatum muß in der Zukunft liegen.');
			} else {
				var d = [];
				d.push(tmp.getDate());
				d.push((tmp.getMonth() + 1 < 10) ? '0' + (tmp.getMonth() + 1) : tmp.getMonth() + 1);
				d.push(tmp.getFullYear());
				$('#arrival').val(d.join('.'));
				arrival = tmp;
			}
		}
	}
	
	var departure;
	tmp = $('#departure').val();
	if (tmp == '') {
		erMsg.push('Bitte geben Sie ein Abreisedatum ein.');
	} else {
		tmp = string2date(tmp);
		if (tmp == null) {
			erMsg.push('Ungültiges Abreisedatum.');
		} else {
			var d = new Date();
			// reset to midnight
			d.setHours(0);
			d.setMinutes(0);
			d.setSeconds(0);
			d.setMilliseconds(0);
			var now = d.getTime();
			if (now > tmp.getTime()) {
				erMsg.push('Abreisedatum muß in der Zukunft liegen.');
			} else {
				var d = [];
				d.push(tmp.getDate());
				d.push((tmp.getMonth() + 1 < 10) ? '0' + (tmp.getMonth() + 1) : tmp.getMonth() + 1);
				d.push(tmp.getFullYear());
				$('#departure').val(d.join('.'));
				departure = tmp;
			}
		}
	}
	
	if (arrival != null && departure != null && arrival.getTime() > departure.getTime()) {
		erMsg.push('Abreisedatum muß vor Ankunftsdatum liegen.');
	}
	
	// popup
	if (erMsg.length == 0) {
		if (bookingWindow == null) {
			bookingWindow = window.open('', 'Buchungsanfrage', 'toolbar=no,width=750,height=550,directories=no,status=yes,scrollbars=yes,resize=yes,menubar=no');
		} else {
			if (bookingWindow.closed) {
				bookingWindow = window.open('', 'Buchungsanfrage', 'toolbar=no,width=750,height=550,directories=no,status=yes,scrollbars=yes,resize=yes,menubar=no');
			} else {
				bookingWindow.focus();
			}
		}
		
		var el = $('#bookingForm');
		el.attr('target', 'Buchungsanfrage');
	
		return true;
	} else {
		alert(erMsg.join("\n"));
		return false;
	}
}
	
function string2date(string) {
	if (!string) return null;
	string += '';
	string = string.replace(/[-\/]/g, '.');
	string = string.replace(/[^0-9.: ]/g, '');
	string = string.replace(/ +/g, ' ');
	var split = string.split('.');
	var day = parseInt(split[0], 10);
	var month = parseInt(split[1] || 0, 10);
	var year = split[2];
	if (isNaN(year) || year == '') {
		var d = new Date();
		year = d.getFullYear();
	}
	
	var check = new Date(year, month - 1, day);
	var day2 = check.getDate();
	var year2 = check.getFullYear();
	var month2 = check.getMonth() + 1;
	
	return (year2 == year && month == month2 && day == day2) ? check : null;
}
