// Title: Tigra Calendar
// URL: http://www.softcomplex.com/products/tigra_calendar/
// Version: 3.2 (European date format)
// Date: 10/14/2002 (mm/dd/yyyy)
// Note: Permission given to use this script in ANY kind of applications if
//    	 header lines are left unchanged.
// Note: Script consists of two files: calendar.js and calendar.html
//----------------------------------------------------------------------------//
// Changed by: melko (melko@gmx.at)
// Date: 02/02/2005 (mm/dd/yyyy)
// Added: Season delimitation, Pre-window-functions, in German
//----------------------------------------------------------------------------//

// if two digit year input dates after this year considered 20 century.
var NUM_CENTYEAR = 30;

// is time input control required by default
var BUL_TIMECOMPONENT = false;

// are year scrolling buttons required by default
var BUL_YEARSCROLL = true;

// months as they appear in the calendar's title
var ARR_MONTHS = ["Januar", "Februar", "März", "April", "Mai","Juni","Juli","August","September","Oktober","November", "Dezember"];

// week day titles as they appear on the calendar
var ARR_WEEKDAYS = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];

// day week starts from (normally 0-So or 1-Mo)
var NUM_WEEKSTART = 1;

// path to the directory where calendar images are stored. trailing slash req.
var STR_ICONPATH = 'img/';

//------------------------------------------------------------------------------------------//
//don't touch!!

var calendars = [];
var RE_NUM = /^\-?\d+$/;
var re_url = new RegExp('datetime=(\\-?\\d+)');
var dt_current = (re_url.exec(String(window.location)) ? new Date(new Number(RegExp.$1)) : new Date());
var re_id = new RegExp('id=(\\d+)');
var num_id = (re_id.exec(String(window.location)) ? new Number(RegExp.$1) : 0);
var obj_caller = (window.opener ? window.opener.calendars[num_id] : null);

var dt_prev_year;
var dt_prev_month;
var dt_next_year;
var dt_next_month;
var dt_firstday;

//-------------------------------------------------------------------------------------------//
// made by melko!! Pre-window-functions-variables

var monTage = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var datum = new Date();
var anrTag;
var abrTag;
var Jahr = datum.getFullYear();
var eJahr = Jahr+5;
var sJahr;
var b;
	
//-------------------------------------------------------------------------------------------//
// made by melko!! Season delimitation-variables

// WICHTIG!! Hier bestimme ich, wann die Saison beginnt und wann sie endet!! 
// Monate gehen von 0-11 !!
// Wenn man ganzes Jahr und alle Jahre haben will, muss man folgendes setzen...
// 
var beg_tag  = 1; 
var beg_mon  = 0; 
var beg_jahr = 0;
var end_tag  = 31; 
var end_mon  = 11;
var end_jahr = 0; 
//
// Januar    = 0;
// Februar   = 1;
// März      = 2;
// April     = 3;
// Mai       = 4;
// Juni      = 5;
// Juli      = 6;
// August    = 7;
// September = 8;
// Oktober   = 9;
// November = 10;
// Dezember = 11;

//var beg_tag  = 16;
//var beg_mon  = 10;
//var beg_jahr = 0;
//var end_tag  = 24;
//var end_mon  = 4;
//var end_jahr = 0;


//-------------------------------------------------------------------------------------------//

function calendar1(obj_target1,obj_target2,b_typ) {

	// assigning methods
	this.gen_date = cal_gen_date1;
	this.gen_time = cal_gen_time1;
	this.gen_tsmp = cal_gen_tsmp1;
	this.prs_date = cal_prs_date1;
	this.prs_time = cal_prs_time1;
	this.prs_tsmp = cal_prs_tsmp1;
	this.popup    = cal_popup1;

	// validate input parameters
	if (!obj_target1)
		return cal_error("Fehler beim Aufrufen des Kalenders: Kein Zielfeld angegeben");
	if (obj_target1.value == null)
		return cal_error("Fehler beim Aufrufen des Kalenders: Der angegebene Parameter fürs Zielfeld ist ungültig");
	this.target1 = obj_target1;
	this.target2 = obj_target2;
	this.b_typ = b_typ;
	this.time_comp = BUL_TIMECOMPONENT;
	this.year_scroll = BUL_YEARSCROLL;
	
	// register in global collections
	this.id = calendars.length;
	calendars[this.id] = this;
}

//Aufruffunktion für das Popup! unverändert lassen!!
function cal_popup1 (str_datetime, bol) {
	this.dt_current = this.prs_tsmp(str_datetime ? str_datetime : this.target1.value);
	if (!this.dt_current) return;
	var obj_calwindow = window.open(
		'/wcms/internal/calendar.html?c=' + bol +'&datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,
		'Calendar', 'width=200,height='+(this.time_comp ? 215 : 190)+
		',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'
	);
	obj_calwindow.opener = window;
	obj_calwindow.focus();
}

// timestamp generating function
function cal_gen_tsmp1 (dt_datetime) {
	return(this.gen_date(dt_datetime) + ' ' + this.gen_time(dt_datetime));
}

// date generating function
function cal_gen_date1 (dt_datetime) {
	return ((dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "."
		+ (dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "."
		+ dt_datetime.getFullYear()
	);
}
// time generating function
function cal_gen_time1 (dt_datetime) {
	return (
		(dt_datetime.getHours() < 10 ? '0' : '') + dt_datetime.getHours() + ":"
		+ (dt_datetime.getMinutes() < 10 ? '0' : '') + (dt_datetime.getMinutes()) + ":"
		+ (dt_datetime.getSeconds() < 10 ? '0' : '') + (dt_datetime.getSeconds())
	);
}

// timestamp parsing function
function cal_prs_tsmp1 (str_datetime) {
	// if no parameter specified return current timestamp
	if (!str_datetime)
		return(new Date());

	// if positive integer treat as milliseconds from epoch
	if (RE_NUM.exec(str_datetime))
		return new Date(str_datetime);
		
	// else treat as date in string format
	var arr_datetime = str_datetime.split(' ');
	return this.prs_time(arr_datetime[1], this.prs_date(arr_datetime[0]));
}

// date parsing function (wichtig!! hier wird das eingegebene Datumsformat kontrolliert)
function cal_prs_date1 (str_date) {

	var arr_date = str_date.split('.');
	if (arr_date.length != 3) return cal_error ("Ungültiges Datumsformat: '" + str_date + "'.\nAkzeptiertes Format ist tt.mm.yyyy.");
	if (!arr_date[0]) return cal_error ("Ungültiges Datumsformat: '" + str_date + "'.\nEs gibt keinen solchen Tag in diesem Monat.");
	if (!RE_NUM.exec(arr_date[0])) return cal_error ("Monatsangabe fehlerhaft: '" + arr_date[0] + "'.\nMonat nur als Zahl angeben.");
	if (!arr_date[1]) return cal_error ("Ungültiges Datumsformat: '" + str_date + "'.\nEs kann der Monat nicht gefunden werden.");
	if (!RE_NUM.exec(arr_date[1])) return cal_error ("Ungültige Monatsangabe: '" + arr_date[1] + "'.\nMonat nur als Zahl angeben.");
	if (!arr_date[2]) return cal_error ("Ungültiges Datumsformat: '" + str_date + "'.\nDie Jahreszahl kann nicht gefunden werden.");
	if (!RE_NUM.exec(arr_date[2])) return cal_error ("Ungültige Jahresangabe: '" + arr_date[2] + "'.\nJahr nur als Zahl angeben.");

	var dt_date = new Date();
	dt_date.setDate(1);
	
//WICHTIG!! genau hier sage ich ihm ob er das eingegebene Monat verwenden darf!!

	if (beg_mon > end_mon){
		if (arr_date[1] < beg_mon+1 && arr_date[1] > end_mon+1){
	 		return cal_error ("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+". bis "+end_tag+"."+(end_mon+1)+".");
		}
	}
	if (beg_mon < end_mon){
		if (arr_date[1] < beg_mon+1 || arr_date[1] > end_mon+1 && end_mon!=11 && arr_date[1]!=12){
		 	return cal_error ("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+". bis "+end_tag+"."+(end_mon+1)+".");
		}
	}
	if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error ("Ungültige Monatsangabe: '" + arr_date[1] + "'.\nErlaubt ist nur von 01-12.");
	dt_date.setMonth(arr_date[1]-1);
	 
	if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
	dt_date.setFullYear(arr_date[2]);

	var dt_numdays = new Date(arr_date[2], arr_date[1], 0);
	dt_date.setDate(arr_date[0]);
	if (dt_date.getMonth() != (arr_date[1]-1)) return cal_error ("Ungültige Tagangabe: '" + arr_date[0] + "'.\nErlaub ist nur 01-"+dt_numdays.getDate()+".");

	return (dt_date)
}

// time parsing function
function cal_prs_time1 (str_time, dt_date) {

	if (!dt_date) return null;
	var arr_time = String(str_time ? str_time : '').split(':');

	if (!arr_time[0]) dt_date.setHours(0);
	else if (RE_NUM.exec(arr_time[0]))
		if (arr_time[0] < 24) dt_date.setHours(arr_time[0]);
		else return cal_error ("Ungültige Stundenangabe: '" + arr_time[0] + "'.\nErlaubt ist nur 0-23.");
	else return cal_error ("Ungültige Stundenangabe: '" + arr_time[0] + "'.\nErlaubt sind nur Zahlen.");
	
	if (!arr_time[1]) dt_date.setMinutes(0);
	else if (RE_NUM.exec(arr_time[1]))
		if (arr_time[1] < 60) dt_date.setMinutes(arr_time[1]);
		else return cal_error ("Ungültige Minutennangabe: '" + arr_time[1] + "'.\nErlaubt ist nur 00-59.");
	else return cal_error ("Ungültige Minutennangabe: '" + arr_time[1] + "'.\nErlaubt sind nur Zahlen.");

	if (!arr_time[2]) dt_date.setSeconds(0);
	else if (RE_NUM.exec(arr_time[2]))
		if (arr_time[2] < 60) dt_date.setSeconds(arr_time[2]);
		else return cal_error ("Ungültige Sekundenangabe: '" + arr_time[2] + "'.\nErlaubt ist nur 00-59.");
	else return cal_error ("Ungültige Sekundenangabe: '" + arr_time[2] + "'.\nErlaubt sind nur Zahlen.");

	dt_date.setMilliseconds(0);
	return dt_date;
}

function cal_error (str_message) {
	alert (str_message);
	return null;
}

// made by melko!! Pre-window-functions
//-------------------------------------------------------------------------------------------//

function Schaltjahr(Jahreszahl){
	if(Jahreszahl%4==0 && (Jahreszahl%100!=0 || Jahreszahl%400==0)) {
		sJahr = true;
	}
	else {
		sJahr = false;
	}
}

function prepare(type,i){

	if(type=="anr"){
		var strDate = window.document.forms[0].elements[5].options[window.document.forms[0].elements[5].selectedIndex].value+"."
				+window.document.forms[0].elements[6].options[window.document.forms[0].elements[6].selectedIndex].value+"."
				+window.document.forms[0].elements[7].options[window.document.forms[0].elements[7].selectedIndex].value
		if(i==1){
			check(strDate,1);
			einsetzen();
			set("anr");
			set("abr");
		}
		if(i==2){
			check(strDate,1);
			einsetzen();
			set("anr");
			set("abr");
		}
		if(i==3){
			check(strDate,1);
			einsetzen();
			set("anr");
			set("abr");
		}
	}
	else if(type=="abr"){
		var strDate = window.document.forms[0].elements[5].options[window.document.forms[0].elements[8].selectedIndex].value+"."
				+window.document.forms[0].elements[6].options[window.document.forms[0].elements[9].selectedIndex].value+"."
				+window.document.forms[0].elements[7].options[window.document.forms[0].elements[10].selectedIndex].value
		if(i==1){
			check(strDate,2);
			einsetzen();
			set("anr");
			set("abr");
			}
		if(i==2){
			check(strDate,2);
			einsetzen();
			set("anr");
			set("abr");
			}
		if(i==3){
			check(strDate,2);
			einsetzen();
			set("anr");
			set("abr");
			}
	}
}

function check(str_date, i) {
	if(prs_dates(str_date)){
		checkSelected(str_date, i);
	}
	if(!b){
		dt_current = (re_url.exec(String(window.location)) ? new Date(new Number(RegExp.$1)) : new Date());
		date ();
		b=true;
		return setTextfelder();
	}
	
	if(i==1){
		var anr = new Date();
		var arr_d = str_date.split('.');
		anr.setFullYear(arr_d[2]);
		anr.setMonth(arr_d[1]-1);
		anr.setDate(arr_d[0]);
		
		window.document.forms[0].elements[3].value = anr.getDate()+"."+(anr.getMonth()+1)+"."+anr.getFullYear();
		
		anr = add_d(anr);
		var abr = anr.getDate()+"."+(anr.getMonth()+1)+"."+anr.getFullYear();
		window.document.forms[0].elements[4].value=abr;
		
	}
	if(i==2){
		var dt_abr = new Date();
		var arr_dt = str_date.split('.');
		dt_abr.setFullYear(arr_dt[2]);
		dt_abr.setMonth(arr_dt[1]-1);
		dt_abr.setDate(arr_dt[0]);

		window.document.forms[0].elements[4].value = dt_abr.getDate()+"."+(dt_abr.getMonth()+1)+"."+dt_abr.getFullYear();

		var dt_anr = new Date();
		var anr_d = window.document.forms[0].elements[3].value.split('.');
		dt_anr.setFullYear(anr_d[2]);
		dt_anr.setMonth(anr_d[1]-1);
		dt_anr.setDate(anr_d[0]);
		
		window.document.forms[0].elements[3].value = dt_anr.getDate()+"."+(dt_anr.getMonth()+1)+"."+dt_anr.getFullYear();

		if(dt_abr<dt_anr){
			alert("Das eingegebene Abreisedatum liegt vor dem Anreisedatum!");
			dt_abr = add_d(dt_anr);
			var abr = dt_abr.getDate()+"."+(dt_abr.getMonth()+1)+"."+dt_abr.getFullYear();
			window.document.forms[0].elements[4].value=abr;		
		}
	}
}

//hier sage ich wie viele Tage er automatisch dazu zählen soll!! (Vorgabe 7)
function add_d(dt_add){

	var dt_tag = new Date();
	dt_tag= dt_add.getDate();

	dt_add.setDate(dt_tag+7);
	var dt_monat = new Date();
	dt_monat = dt_add.getMonth();
	var dt_tag = dt_add.getDate();
	
	if(dt_monat==end_mon+1){
		dt_add.setMonth(end_mon);
		dt_add.setDate(end_tag);
	}
	
	if(dt_monat==end_mon && dt_tag > end_tag+1){
		dt_add.setMonth(end_mon);
		dt_add.setDate(end_tag);
	}
	
	return dt_add;
}

// prüft ob das Datum in der Saison liegt
function prs_dates (str_date) {

	var arr_date = str_date.split('.');
	
	var dt_date = new Date();
	dt_date.setDate(1);
	var test_dt = new Date();
	var arr_dt = new Date();
	
	arr_dt.setYear(arr_date[2]);
	arr_dt.setMonth(arr_date[1]-1);
	arr_dt.setDate(arr_date[0]);
	
	if(arr_dt < test_dt){
		b=false;
		return alert("Sie können keine Buchungen in der Vergangenheit machen!");	
	}
	if (beg_mon > end_mon){
		if (arr_date[1] < beg_mon+1 && arr_date[1] > end_mon+1){
	 		b=false;
	 		return alert ("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+". bis "+end_tag+"."+(end_mon+1)+".");
		}
	}
	
	if (beg_mon < end_mon){
		if (arr_date[1] < beg_mon+1 || arr_date[1] > end_mon+1 && end_mon!=11 && arr_date[1]!=12){
		 	b=false;
		 	return alert ("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+". bis "+end_tag+"."+(end_mon+1)+".");
		}
	}
	return b;
}
function checkSelected(str_date, i){
	
	var arr_date = str_date.split('.');
	
	if(i==1){
		var an_tag = arr_date[0];
		var an_mon = arr_date[1];
		var an_jahr = arr_date[2];
		var test_dt = new Date();
		var arr_dt = new Date();
			
		arr_dt.setYear(arr_date[2]);
		arr_dt.setMonth(arr_date[1]-1);
		arr_dt.setDate(arr_date[0]);
			
		if(arr_dt < test_dt){
			b=false;
			return alert("Sie können keine Buchungen in der Vergangenheit machen!");	
		}
		if (an_mon == beg_mon+1 && an_tag < (beg_tag)){
			b=false;
			return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");	
		}
		if (an_mon == end_mon+1 && an_tag > (end_tag)){
			b=false;
			return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis "+end_tag+"."+(end_mon+1)+".");
		}
		if(beg_jahr!=0 && end_jahr !=0){
			if(an_jahr != beg_jahr && an_jahr != end_jahr){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+"."+beg_jahr+" bis "+end_tag+"."+(end_mon+1)+"."+end_jahr);
			}			
		}
	}
	else if(i==2){
		var ab_tag = arr_date[0];
		var ab_mon = arr_date[1];
		var ab_jahr = arr_date[2];
		var test_dt = new Date();
		var arr_dt = new Date();
					
		arr_dt.setYear(arr_date[2]);
		arr_dt.setMonth(arr_date[1]-1);
		arr_dt.setDate(arr_date[0]);
					
		if(arr_dt < test_dt){
			b=false;
			return alert("Sie können keine Buchungen in der Vergangenheit machen!");	
		}
		if (ab_mon == end_mon+1 && ab_tag > (end_tag)){
			b=false;
			return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis "+end_tag+"."+(end_mon+1)+".");
		}		
		if (ab_mon == beg_mon+1 && ab_tag < (beg_tag)){
			b=false;
			return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");
		}
		if(beg_jahr!=0 && end_jahr !=0){
			if(ab_jahr != beg_jahr && ab_jahr != end_jahr){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+"."+beg_jahr+" bis "+end_tag+"."+(end_mon+1)+"."+end_jahr);
			}
		}
	}
	return b;
}

function einsetzen(){

	anDate = window.document.forms[0].elements[3].value;
	var anArray = anDate.split(".");
	
	abDate = window.document.forms[0].elements[4].value;
	var abArray = abDate.split(".");
	
	for(x=0;x<window.document.forms[0].elements[5].length;x++){
		if(window.document.forms[0].elements[5].options[x].value==anArray[0]){
			window.document.forms[0].elements[5].selectedIndex = x;
			anrTag = x;
		}
	}
	for(x=0;x<window.document.forms[0].elements[6].length;x++){
		if(window.document.forms[0].elements[6].options[x].value==anArray[1]){
			window.document.forms[0].elements[6].selectedIndex = x;
		}
	}
	for(x=0;x<window.document.forms[0].elements[7].length;x++){
		if(window.document.forms[0].elements[7].options[x].value==anArray[2]){
			window.document.forms[0].elements[7].selectedIndex = x;
		}
	}
	for(x=0;x<window.document.forms[0].elements[8].length;x++){
		if(window.document.forms[0].elements[8].options[x].value==abArray[0]){
			window.document.forms[0].elements[8].selectedIndex = x;
			abrTag = x;
		}
	}
	for(x=0;x<window.document.forms[0].elements[9].length;x++){
		if(window.document.forms[0].elements[9].options[x].value==abArray[1]){
			window.document.forms[0].elements[9].selectedIndex = x;
		}
	}
	for(x=0;x<window.document.forms[0].elements[10].length;x++){
		if(window.document.forms[0].elements[10].options[x].value==abArray[2]){
			window.document.forms[0].elements[10].selectedIndex = x;
		}
	}
}

function set(type){

	monTage[1]=28;

	clearAll(type);
	
	if(type=="anr"){
		Schaltjahr(window.document.forms[0].elements[7].options[window.document.forms[0].elements[7].selectedIndex].value);
		
		if(sJahr){
			monTage[1]=29;
		}
		
		for(j=1; j<=monTage[window.document.forms[0].elements[6].selectedIndex];j++){
			neu = new Option(j,j,true,true);
			window.document.forms[0].elements[5].options[j-1] = neu;
		}
		window.document.forms[0].elements[5].selectedIndex = anrTag;
	}
	
	else if(type=="abr"){
		Schaltjahr(window.document.forms[0].elements[10].options[window.document.forms[0].elements[10].selectedIndex].value);
				
		if(sJahr){
			monTage[1]=29;
		}
		
		for(j=1; j<=monTage[window.document.forms[0].elements[9].selectedIndex];j++){
			neu = new Option(j,j,true,true);
			window.document.forms[0].elements[8].options[j-1] = neu;
		}
		window.document.forms[0].elements[8].selectedIndex = abrTag;
	}

}

function clearAll(type){

	if(type=="anr"){
		for(i=0; i<window.document.forms[0].elements[5].length;i++){
			window.document.forms[0].elements[5].options[i] = null;
		}
	}
	else if(type=="abr"){
		for(i=0; i<window.document.forms[0].elements[8].length;i++){
			window.document.forms[0].elements[8].options[i] = null;
		}
	}
}

function date () {
	
	var weekday = dt_current.getDay();
	var diff = 6-weekday;
	var tt = dt_current.getDate() +diff;
	dt_current.setDate(tt);
	var x = true;
	
	if (beg_mon > end_mon){
		if (dt_current.getMonth() < beg_mon-1 && dt_current.getMonth() > end_mon){
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_tag);
			x=false;
			}
		}
	else {
		if (dt_current.getMonth() < beg_mon-1 || dt_current.getMonth() > end_mon){
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_tag);
			x=false;
		}
	}
	if(!x){
		var weekday = dt_current.getDay();
		var diff = 6-weekday;
		var tt = dt_current.getDate() +diff;
		dt_current.setDate(tt);
	}
	
}

function date_html () {
	
	if(obj_caller.target1.value=='' || obj_caller.target2.value==''){
		var weekday = dt_current.getDay();
		var diff = 6-weekday;
		var tt = dt_current.getDate() +diff;
		dt_current.setDate(tt);
		
	}
	var x = true;
	if (beg_mon > end_mon){
		if (dt_current.getMonth() < beg_mon-1 && dt_current.getMonth() > end_mon){
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_tag);
			x=false;
			}
		}
	else {
		if (dt_current.getMonth() < beg_mon-1 || dt_current.getMonth() > end_mon){
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_tag);
			x=false;
		}
	}
	if(!x){
		var weekday = dt_current.getDay();
		var diff = 6-weekday;
		var tt = dt_current.getDate() +diff;
		dt_current.setDate(tt);
	}
	
}

function setTextfelder(){
	
	var dt_cur = dt_current;
	var heute = dt_cur.getDate()+"."+(dt_cur.getMonth()+1)+"."+dt_cur.getFullYear();
	window.document.forms[0].elements[3].value=heute;
		
	dt_cur = add_d(dt_cur);

	var abreise = dt_cur.getDate()+"."+(dt_cur.getMonth()+1)+"."+dt_cur.getFullYear();
	window.document.forms[0].elements[4].value=abreise;		
}

//--------------------------------------------------------------------------------------//
//Funktionen aus calendar.html
function start(){

	if (obj_caller && obj_caller.year_scroll) {
		// get same date in the previous year
		dt_prev_year = new Date(dt_current);
		dt_prev_year.setFullYear(dt_prev_year.getFullYear() - 1);
		if (dt_prev_year.getDate() != dt_current.getDate())
			dt_prev_year.setDate(0);

		// get same date in the next year
		dt_next_year = new Date(dt_current);
		dt_next_year.setFullYear(dt_next_year.getFullYear() + 1);
		if (dt_next_year.getDate() != dt_current.getDate())
		dt_next_year.setDate(0);
	}

	// get same date in the previous month
	dt_prev_month = new Date(dt_current);

	//hier sage ich ihm, dass wenn das vorige Monat vom aktuellen
	//eines zwischen end_mon - beg_mon ist dann soll er zum letzten gültigen Datum zurück hüpfen!!
	if (beg_mon < end_mon){
		if (dt_prev_month.getMonth()==beg_mon){
			var jahr = dt_prev_month.getFullYear();
			dt_prev_month.setYear(jahr-1);
			dt_prev_month.setMonth(end_mon);
			if (dt_prev_month.getDate() != dt_current.getDate()){
				dt_prev_month.setDate(0);
			}
		}
		else {
			dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);
			if (dt_prev_month.getDate() != dt_current.getDate()){
				dt_prev_month.setDate(0);
			}
		}
	}
	else {
		if (dt_prev_month.getMonth()==beg_mon){
			dt_prev_month.setMonth(end_mon);
			if (dt_prev_month.getDate() != dt_current.getDate()){
				dt_prev_month.setDate(0);
			}
		}
		else {
			dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);
			if (dt_prev_month.getDate() != dt_current.getDate()){
				dt_prev_month.setDate(0);
			}
		}
	}
	
	// get same date in the next month
	dt_next_month = new Date(dt_current);

	//hier sage ich ihm, dass wenn das nächste Monat vom aktuellen
	//eines zwischen end_mon - beg_mon ist dann soll er zum nächsten gültigen Datum nach vor hüpfen!!
	if (beg_mon < end_mon){
		if (dt_next_month.getMonth()==end_mon){
			var jahr = dt_next_month.getFullYear();
			dt_next_month.setYear(jahr+1);
			dt_next_month.setMonth(beg_mon);
			if (dt_next_month.getDate() != dt_current.getDate()){
				dt_next_month.setDate(0);
			}
		}
		else {
			dt_next_month.setMonth(dt_next_month.getMonth() + 1);
			if (dt_next_month.getDate() != dt_current.getDate()){
				dt_next_month.setDate(0);
			}
		}
	}
	else {
		if (dt_next_month.getMonth()==end_mon){
			dt_next_month.setMonth(beg_mon);
			if (dt_next_month.getDate() != dt_current.getDate()){
				dt_next_month.setDate(0);
			}
		}
		else {
			dt_next_month.setMonth(dt_next_month.getMonth() + 1);
			if (dt_next_month.getDate() != dt_current.getDate()){
				dt_next_month.setDate(0);
			}
		}
	}

	// get first day to display in the grid for current month
	dt_firstday = new Date(dt_current);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - NUM_WEEKSTART) % 7);
}

// function passing selected date to calling window
function set_datetime(n_datetime, b_close) {
	if (!obj_caller) return;
	var dt_datetime = obj_caller.prs_time((document.cal ? document.cal.time.value : ''),new Date(n_datetime));
	if (!dt_datetime) return;

	if (b_close) {
		if (obj_caller.b_typ!='true'){
			var an_tag = dt_datetime.getDate();
			var an_mon = dt_datetime.getMonth();
			var an_jahr = dt_datetime.getFullYear();
			var test_dt = new Date();
			var arr_dt = new Date();
			arr_dt.setYear(an_jahr);
			arr_dt.setMonth(an_mon);
			arr_dt.setDate(an_tag);

			if(arr_dt < test_dt){
				b=false;
				return alert("4Sie können keine Buchungen in der Vergangenheit machen!");	
			}
			 if (an_mon==beg_mon-1){
			 	b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");
			}
			 if (an_mon == beg_mon && an_tag < (beg_tag)){
				if(beg_mon < end_mon && beg_mon!=0 && beg_tag!=1 && end_mon!=11 && end_tag!=31){
					return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");	
					b=false;
				}
				else{
					b=false;
					return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");
				}
			}
			 if (an_mon == end_mon && an_tag > (end_tag)){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis "+end_tag+"."+(end_mon+1)+".");
			}
			 if (an_mon==end_mon+1){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis "+end_tag+"."+(end_mon+1)+".");
			}
			if(beg_jahr!=0 && end_jahr !=0){
				if(an_jahr != beg_jahr && an_jahr != end_jahr){
					b=false;
					return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+"."+beg_jahr+" bis "+end_tag+"."+(end_mon+1)+"."+end_jahr);
				}			
			}	
			var dt_abreise = new Date();
			window.close();
			obj_caller.target1.value = (document.cal
				? obj_caller.gen_tsmp(dt_datetime)
				: obj_caller.gen_date(dt_datetime));
			var dt_tag = new Date();
			dt_tag= dt_datetime.getDate();

			//hier sage ich wie viele Tage er automatisch dazu zählen soll!! (Vorgabe 7)
			dt_datetime.setDate(dt_tag+7);
			var dt_monat = new Date();
			dt_monat = dt_datetime.getMonth();
			var dt_tag = dt_datetime.getDate();

			if(dt_monat==end_mon+1){
				dt_datetime.setMonth(end_mon);
				dt_datetime.setDate(end_tag);	
			}
			if(dt_monat==end_mon && dt_tag > end_tag+1){
				dt_datetime.setMonth(end_mon);
				dt_datetime.setDate(end_tag);
				
			}
			
			obj_caller.target2.value = (document.cal
					? obj_caller.gen_tsmp(dt_datetime)
					: obj_caller.gen_date(dt_datetime));
				
		}
		else {
			var ab_tag = dt_datetime.getDate();
			var ab_mon = dt_datetime.getMonth();
			var ab_jahr = dt_datetime.getFullYear();
			var test_dt = new Date();
			var arr_dt = new Date();
						
			arr_dt.setYear(ab_jahr);
			arr_dt.setMonth(ab_mon);
			arr_dt.setDate(ab_tag);
						
			if(arr_dt < test_dt){
				b=false;
				return alert("Sie können keine Buchungen in der Vergangenheit machen!");	
			}
		 	if (ab_mon==end_mon+1){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis "+end_tag+"."+(end_mon+1)+".");
			}
			if (ab_mon == end_mon && ab_tag > (end_tag)){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis "+end_tag+"."+(end_mon+1)+".");
			}
		 	 if (ab_mon==beg_mon-1){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");
			}
			 if (ab_mon == beg_mon && ab_tag < (beg_tag)){
				b=false;
				return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am "+beg_tag+"."+(beg_mon+1)+".");
			}
			if(beg_jahr!=0 && end_jahr !=0){
				if(ab_jahr != beg_jahr && ab_jahr != end_jahr){
					b=false;
					return alert("Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von "+beg_tag+"."+(beg_mon+1)+"."+beg_jahr+" bis "+end_tag+"."+(end_mon+1)+"."+end_jahr);
				}
			}
			
			var dt_anreise = new Date();
			if(obj_caller.target2 != null && obj_caller.target2.value != ''){
				dt_anreise = obj_caller.prs_date(obj_caller.target2.value);
				var anreise = Date.parse(dt_anreise);
				var abreise = Date.parse(dt_datetime);
				if(anreise > abreise){
					return alert("Das eingegebene Abreisedatum liegt vor dem Anreisedatum!");
				}
				}
			window.close();
			obj_caller.target1.value = (document.cal ? obj_caller.gen_tsmp(dt_datetime) : obj_caller.gen_date(dt_datetime));
			var dt_tag = new Date();
			dt_tag= dt_datetime.getDate();

			//hier sage ich wie viele Tage er automatisch abziehen soll!! (Vorgabe 7)
			dt_datetime.setDate(dt_tag-7);
			var dt_monat = new Date();
			dt_monat = dt_datetime.getMonth();
			var dt_tag = dt_datetime.getDate();
			if(dt_monat==beg_mon-1){
				dt_datetime.setMonth(beg_mon);
				dt_datetime.setDate(beg_tag);
			}
			if(dt_monat==beg_mon && dt_tag < beg_tag-1){
				dt_datetime.setMonth(beg_mon);
				dt_datetime.setDate(beg_tag);	
			}
			if (obj_caller.target2 != null && obj_caller.target2.value == '')	{
				obj_caller.target2.value = (document.cal
				? obj_caller.gen_tsmp(dt_datetime)
				: obj_caller.gen_date(dt_datetime));
			}
		}
	}
	else obj_caller.popup(dt_datetime.valueOf(), false);
}
