function moderate(){	
	ok1 = document.getElementById('tb_checkin').value!="";
	ok2 = document.getElementById('tb_checkout').value!="";

	if(!ok1){
		alert("Bitte geben Sie ein Anreise- und Abreise-Datum ein!");
		document.getElementById('tb_checkin').focus();
		return ok1;
	}	
	if(!ok2){
		alert("Bitte geben Sie ein Anreise- und Abreise-Datum ein!");
		document.getElementById('tb_checkout').focus();
		return ok2;
	}	
	return ok1 && ok2;
}

function moderate_extended(num){	
	ok1 = document.getElementById('tb_checkin'+num).value!="";
	ok2 = document.getElementById('tb_checkout'+num).value!="";

	if(!ok1){
		alert("Bitte geben Sie ein Anreise- und Abreise-Datum ein!");
		document.getElementById('tb_checkin'+num).focus();
		return ok1;
	}	
	if(!ok2){
		alert("Bitte geben Sie ein Anreise- und Abreise-Datum ein!");
		document.getElementById('tb_checkout'+num).focus();
		return ok2;
	}	
	return ok1 && ok2;
}

function parseDateFromString(date){

	var re = /^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/i;
	var stDate = "";
	if(date!=""){
		if (re.test(date)) {
			day = RegExp.$1;

			day = "" + day;
			if(day.length < 2){
				day = "0" + day;
			}				

			month = RegExp.$2;			

			month = "" + month;				
			if(month.length < 2){
				month = "0" + month;
			}	

			year = parseInt(RegExp.$3);
			year = "" + year;
			
			if(year.length < 3){
				year = "20"+year;
			}
			stDate = month+"/"+day+"/"+year;
		} 		
	}	
	return stDate;
}
function dateSimpleFormat(date, format){
	var day = date.getDate();
	day = "" + day;
	if(day.length < 2){
		day = "0" + day;
	}	
	
	var month = date.getMonth() + 1;
	month = "" + month;				
	if(month.length < 2){
		month = "0" + month;
	}				
	var year = date.getFullYear();
	
	if(format == "dd.mm.yyyy"){
		return "" + day + "." + month + "." + year;	
	}
	if(format == "dd/mm/yyyy"){
		return "" + day + "/" + month + "/" + year;	
	}
	if(format == "mm/dd/yyyy"){
		return "" + month + "/" + day + "/" + year;	
	}
}
function diffDate(nDate1,nDate2){

	var date1 = new Date(nDate1);
	var date2 = new Date(nDate2);
	var gap = date2.getTime() - date1.getTime(); 	// gap in milliseconds
	gap = Math.ceil(gap / (1000 * 60 * 60 * 24));	// gap in days
		
	return gap;
}

function dateAddDays(date, days){
	var ret = new Date(date);
  	ret.setDate(ret.getDate() + days);
  	return ret;
}

function onChangeDate(fieldBegin,fieldEnd,fieldNights){

	var d1 = document.getElementById(fieldBegin).value;
	var d2 = document.getElementById(fieldEnd).value;

	
	var currentDate = new Date();

	if(d1!=""){		
		stDate1 = parseDateFromString(d1);
		if(diffDate(currentDate, stDate1)<0){
			alert("Das Anreise-Datum kann nicht in der Vergangenheit liegen!");
			stDate1 = dateSimpleFormat(currentDate,"mm/dd/yyyy");			
			document.getElementById(fieldBegin).value = dateSimpleFormat(currentDate,"dd.mm.yyyy");
		}
		
		if(diffDate(currentDate, stDate1)>300){
			alert('Buchungen können nur bis max 300 Tage im Voraus getätigt werden');			
			stDate1 = dateSimpleFormat(dateAddDays(currentDate,300),"mm/dd/yyyy");
			document.getElementById(fieldBegin).value = dateSimpleFormat(new Date(stDate1),"dd.mm.yyyy");
		}
	}	
	
	if(d2!=""){
		stDate2 = parseDateFromString(d2);
		if(d1==""){
			stDate1 = dateSimpleFormat(currentDate,"mm/dd/yyyy");
			document.getElementById(fieldBegin).value = dateSimpleFormat(new Date(stDate1),"dd.mm.yyyy");
		}
		if(diffDate(stDate1, stDate2)<0){
			alert("Das Abreise-Datum kann nicht in der Vergangenheit liegen!");
			stDate2 = dateSimpleFormat(dateAddDays(stDate1,1),"mm/dd/yyyy");			
			document.getElementById(fieldEnd).value = dateSimpleFormat(new Date(stDate2),"dd.mm.yyyy");
		}
	}	

	if(d1!="" && d2!=""){
		diffDays = diffDate(stDate1, stDate2);
		if(diffDays > 30) {
			alert("Die maximale Aufenthaltsdauer betragt 30 Tage");		
			document.getElementById(fieldEnd).value = dateSimpleFormat(dateAddDays(stDate1,30),"dd.mm.yyyy");
			document.getElementById(fieldNights).value = 30;
		}
		else {
			document.getElementById(fieldNights).value = diffDays;
		}
	}
}
function onChangeNights(fieldBegin,fieldNights,fieldEnd){
	var d1 = document.getElementById(fieldBegin).value;
	var nt = document.getElementById(fieldNights).value;
	
	if(d1!=""){		
		stDate1 = parseDateFromString(d1);		
	}
	
	if(nt!=""){		
		nights = parseInt(nt);
		if(nights>30){
			alert("Die maximale Aufenthaltsdauer betragt 30 Tage");
			nights = 30;
			document.getElementById(fieldNights).value = nights;
		}	
	}
	
	document.getElementById(fieldEnd).value = dateSimpleFormat(dateAddDays(stDate1,nights),"dd.mm.yyyy");
	
}

function check_date(field, strMessage){

// create by dionys henzen
// february 2003
// 
// checks a given date in many format and change it to dd.mm.yyyy:
//
// need only the follows structure [d]d.[m]m.[yy]yy
// . could be any seperator
// or ddmm[yy]yy

var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ".";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
var strText = strMessage;
var blnIsMonth = true;

   err = 0;
   DateValue = DateField.value;
   
   /* Delete all chars except 0..9 
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   */
   
   /* Replace all chars except 0..9 with "." */
   for (i = 0; i < DateValue.length; i++) {
		if (DateValue.charCodeAt(i)>47 && DateValue.charCodeAt(i)<58) {
			//that's a number
			DateTemp=DateTemp+ DateValue.substr(i,1);
	  }
		else {
			//that's a seperator
			if (blnIsMonth) {
				//if the second character is a seperator
				if (i==1) {
					//if the day is given by 1-digit expand it
					DateTemp="0"+DateTemp;
				}
				//first seperator means after that will be month
				if (DateValue.charCodeAt(i+2)<48 || DateValue.charCodeAt(i+2)>57) {
					//if it's a seperator the month is only 1-digit and need to be expand
					DateTemp=DateTemp+"0";
				}
			}
			//next time it's seperator between month and year...
			blnIsMonth = false;
		}
		//alert(DateTemp+" / "+DateValue);
   }
   
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      DateField.value = day + seperator + month + seperator + year;
   }
   /* Error-message if err != 0 */
   else {
      alert(strText);
			var now = new Date();
			month = now.getMonth();
			month++;
			if (month<10) {
				DateField.value=now.getDate()+".0"+month+"."+now.getFullYear();
			}
			else {
				DateField.value=now.getDate()+"."+month+"."+now.getFullYear();
			}
      		DateField.select();
		  DateField.focus();
		  onChangeDate("tb_checkin","tb_checkout","nights");
		  return false;
   }
}