﻿// 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: 11/27/2007 (mm/dd/yyyy)
// Version: 7.4
// Added: Season delimitation, Pre-window-functions, Multilingual
//------------------------------------------------------------------------------------------------//
//calendar options

// 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;

// day week starts from (normally 0-So or 1-Mo)
var NUM_WEEKSTART = 1;

// the path to the images-source
var img_prevYear = "img_calendar-prev_year.gif";
var img_nextYear = "img_calendar-next_year.gif";
var img_prevMonth = "img_calendar-prev.gif";
var img_nextMonth = "img_calendar-next.gif";

//how many days to subtract automaticaly!! (default 7)
var sub_days = 7;

//how many days to add automaticaly!! (default 7)
var add_days = 7;

// defines if automitically the next weekday should be shown or not. (default= true)
var showNextWeekday = true;

//------------------------------------------------------------------------------------------------//
// made by melko!! Season delimitation-variables

// IMPORTANT!! Here I say when the Season starts and ends!!
// Months go from 0-11 !!
// If you want to have full and all years, you have to...
//
// beg_day  = 1;
// beg_mon  = 0;
// beg_year = 0;
// end_day  = 31;
// end_mon  = 11;
// end_year = 0; ...set!!
//
// January   = 0;
// February  = 1;
// March     = 2;
// April     = 3;
// Mai       = 4;
// Juni      = 5;
// July      = 6;
// August    = 7;
// September = 8;
// October   = 9;
// November = 10;
// December = 11;

var beg_day  = 16;
var beg_mon  = 10;
var beg_year = 0;
var end_day  = 20;
var end_mon  = 3;
var end_year = 0;

//------------------------------------------------------------------------------------------------//
//quick-inquire options!!

//if you link to a page static please set the page-URL here, if not then let it blank 
var linkPage = "";

//if you link to more static pages, please continue this list ...
var linkPage1 = "";
var linkPage2 = "";
var linkPage3 = "";
var linkPage4 = "";
var linkPage5 = "";
var linkPage6 = "";

// The field-name in the target, that should be set ( function getURLValue(), function link() )
// is needed if the linkPage is defined
var arrive_date = "TIS.DateArrive";
var leave_date = "TIS.DateLeave";

// and if you use 3-date fields (dd / MM / yyyy), then also this vars bust be filled; ( function getURLValue3() instead of getURLValue () )
var arrive_day = "FF_26_TT";
var arrive_month = "FF_26_MM";
var arrive_year = "FF_26_JJJJ";

var leave_day = "FF_27_TT";
var leave_month = "FF_27_MM";
var leave_year = "FF_27_JJJJ";

// the link to the calendar.html
var linkURL = "http://www.hotelbergwelt.com/wcms/Designs/258200741081414/445200742081414/calendar.html";

// set which form is the quick-inquire!
var frm = "schnellanfrage";

// the names of the hidden fields, that are needed in the html-code
var hidden_field1_name = "FF_81";
var hidden_field2_name = "FF_82";

// the names of the 6 select-objects in the html-code
var select_arrive_day_name = "TIS.Day_Arrive";
var select_arrive_month_name = "TIS.Month_Arrive";
var select_arrive_year_name = "TIS.Year_Arrive";

var select_leave_day_name = "TIS.Day_Leave";
var select_leave_month_name = "TIS.Month_Leave";
var select_leave_year_name = "TIS.Year_Leave";

// the css-class for the 6 select-objects in the html-code
var select_arrive_day_class = "day";
var select_arrive_month_class = "month";
var select_arrive_year_class = "year";

var select_leave_day_class = "day";
var select_leave_month_class = "month";
var select_leave_year_class = "year";

//------------------------------------------------------------------------------------------------//
// text to translate

// months as they appear in the calendar's title
var ARR_MONTHS = ["Jänner","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"];

var no_target = "Fehler beim Aufrufen des Kalenders: Kein Zielfeld angegeben";
var wrong_param = "Fehler beim Aufrufen des Kalenders: Der angegebene Parameter fürs Zielfeld ist ungültig";
var wrong_dateformat = "Ungültiges Datumsformat: '";
var right_dateformat = "'.\nAkzeptiertes Format ist tt.mm.yyyy.";
var no_such_day = "'.\nEs gibt keinen solchen Tag in diesem Monat.";
var wrong_month = "Monatsangabe fehlerhaft: '";
var right_month = "'.\nMonat nur als Zahl angeben.";
var no_such_month = "'.\nEs kann der Monat nicht gefunden werden.";
var no_such_year = "'.\nDie Jahreszahl kann nicht gefunden werden.";
var wrong_year = "Ungültige Jahresangabe: '";
var right_year = "'.\nJahr nur als Zahl angeben.";
var out_of_season = "Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur von ";
var to = " bis ";
var month_from_to = "'.\nErlaubt ist nur von 01-12.";
var wrong_day = "Ungültige Tagangabe: '";
var right_day = "'.\nErlaub ist nur 01-";
var wrong_hour = "Ungültige Stundenangabe: '";
var right_hour = "'.\nErlaubt sind nur Zahlen von 0 bis 23.";
var wrong_min = "Ungültige Minutennangabe: '";
var right_min = "'.\nErlaubt sind nur Zahlen von 0 bis 59.";
var wrong_sec = "Ungültige Sekundennangabe: '";
var leave_before_come = "Das eingegebene Abreisedatum liegt vor dem Anreisedatum!";
var no_book_past = "Sie können keine Buchungen in der Vergangenheit machen!";
var before_season = "Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison beginnt erst am ";
var after_season = "Das eingegebene Datum liegt ausserhalb der Saison!\nDie Saison geht nur bis ";
var ico_next_month = "nächstes Monat";
var ico_next_year = "nächstes Jahr";
var ico_prev_month = "letztes Monat";
var ico_prev_year = "letztes Jahr";
var no_frame = "Ihr Browser kann leider keine eingebetteten Frames anzeigen:";

//------------------------------------------------------------------------------------------------//
//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 dt_prev_year;
var dt_prev_month;
var dt_next_year;
var dt_next_month;
var dt_firstday;

var element1;
var element2;
var element3;

var obj_caller;

//------------------------------------------------------------------------------------------------//
//don't touch!! made by melko!! Pre-window-functions-variables!! 

var monDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var datum = new Date();
var arrDay;
var leavDay;
var Jahr = datum.getFullYear();
if(beg_year != 0){
	Jahr = beg_year;
}
var eJahr = Jahr+5;
if(end_year != 0){
	eJahr = end_year;
}
var sJahr;
//------------------------------------------------------------------------------------------------//
//beyond this line you shouldn't change anything!!

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(no_target);
	if (obj_target1.value == null)
		return cal_error(wrong_param);
	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;
}

// Popup caller! please not change!!
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(
		linkURL +'?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 (wrong_dateformat + str_date + right_dateformat);
	if (!arr_date[0]) return cal_error (wrong_dateformat + str_date + no_such_day);
	if (!RE_NUM.exec(arr_date[0])) return cal_error (wrong_month + arr_date[0] + right_month);
	if (!arr_date[1]) return cal_error (wrong_dateformat + str_date + no_such_month);
	if (!RE_NUM.exec(arr_date[1])) return cal_error (wrong_month + arr_date[1] + right_month);
	if (!arr_date[2]) return cal_error (wrong_dateformat + str_date + no_such_year);
	if (!RE_NUM.exec(arr_date[2])) return cal_error (wrong_year + arr_date[2] + right_year);

	var dt_date = new Date();
	dt_date.setDate(1);

	if (beg_mon > end_mon){
		if (arr_date[1] < beg_mon+1 && arr_date[1] > end_mon+1){
	 		return cal_error (out_of_season +beg_day+"."+(beg_mon+1)+ to +end_day+"."+(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 (out_of_season +beg_day+"."+(beg_mon+1)+ to +end_day+"."+(end_mon+1)+".");
		}
	}
	if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error (wrong_month + arr_date[1] + month_from_to);
	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 (wrong_day + arr_date[0] + right_day +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 (wrong_hour  + arr_time[0] + right_hour);
	else return cal_error (wrong_hour + arr_time[0] + right_hour);

	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 (wrong_min + arr_time[1] + right_min);
	else return cal_error (wrong_min + arr_time[1] + right_min);

	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 (wrong_sec + arr_time[2] + right_min);
	else return cal_error (wrong_sec + arr_time[2] + right_min);

	dt_date.setMilliseconds(0);
	return dt_date;
}

function cal_error (str_message) {
	alert (str_message);
	return null;
}

// made by melko!! quick-inquire-functions
//------------------------------------------------------------------------------------------------//

function Schaltjahr(Jahreszahl){
	if(Jahreszahl%4==0 && (Jahreszahl%100!=0 || Jahreszahl%400==0)) {
		sJahr = true;
	}
	else {
		sJahr = false;
	}
}

function makeDate(date){
	var sDate = date.split('.');
	if (sDate[0]<=9){ sDate[0] = "0"+sDate[0];}
	if (sDate[1]<=9){ sDate[1] = "0"+sDate[1];}
	var mDate = sDate[0]+"."+sDate[1]+"."+sDate[2];
	return mDate;
}

function setElement(type) {
	
	if(type=="anr"){
		element1 = select_arrive_day_name;
		element2 = select_arrive_month_name;
		element3 = select_arrive_year_name;
	}
	else{
		element1 = select_leave_day_name;
		element2 = select_leave_month_name;
		element3 = select_leave_year_name;
	}	
}

function prepare(type, i) {
	prepare(type);
}

function prepare(type){

	setElement(type);

	var strDate = window.document.forms[frm].elements[element1].options[window.document.forms[frm].elements[element1].selectedIndex].value+"."
			+window.document.forms[frm].elements[element2].options[window.document.forms[frm].elements[element2].selectedIndex].value+"."
			+window.document.forms[frm].elements[element3].options[window.document.forms[frm].elements[element3].selectedIndex].value

	check(strDate,type);
	einsetzen();
	set("anr");
	set("abr");
}

function check(str_date, type) {

	if(type=="anr"){
		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[frm].elements[hidden_field1_name].value = anr.getDate()+"."+(anr.getMonth()+1)+"."+anr.getFullYear();

		anr = add_d(anr);
		var abr = anr.getDate()+"."+(anr.getMonth()+1)+"."+anr.getFullYear();
		window.document.forms[frm].elements[hidden_field2_name].value=abr;

	}
	if(type=="abr"){
		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[frm].elements[hidden_field2_name].value = dt_abr.getDate()+"."+(dt_abr.getMonth()+1)+"."+dt_abr.getFullYear();

		var dt_anr = new Date();
		var anr_d = window.document.forms[frm].elements[hidden_field1_name].value.split('.');
		dt_anr.setFullYear(anr_d[2]);
		dt_anr.setMonth(anr_d[1]-1);
		dt_anr.setDate(anr_d[0]);

		window.document.forms[frm].elements[hidden_field1_name].value = dt_anr.getDate()+"."+(dt_anr.getMonth()+1)+"."+dt_anr.getFullYear();

		if(dt_abr<dt_anr){
			alert(leave_before_come);
			dt_abr = add_d(dt_anr);
			var abr = dt_abr.getDate()+"."+(dt_abr.getMonth()+1)+"."+dt_abr.getFullYear();
			window.document.forms[frm].elements[hidden_field2_name].value=abr;
		}
	}
	return true;
}

// check if the date is in the season
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){
		alert(no_book_past);
		return false;

	}
	if (beg_mon > end_mon){
		if (arr_date[1] < beg_mon+1 && arr_date[1] > end_mon+1){
	 		alert (out_of_season+beg_day+"."+(beg_mon+1)+to+end_day+"."+(end_mon+1)+".");
			return false;
		}
	}

	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){
		 	alert (out_of_season+beg_day+"."+(beg_mon+1)+to+end_day+"."+(end_mon+1)+".");
			return false;
		}
	}
	return true;
}
function checkSelected(str_date, type){
	
	var arr_date = str_date.split('.');

	if(type=="anr"){
		var an_tag = arr_date[0];
		var an_mon = arr_date[1];
		var an_jahr = arr_date[2];
		var current_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 < current_dt){
			alert(no_book_past);
			return false;
		}
		if (an_mon == beg_mon+1 && an_tag < (beg_day)){
			alert(before_season +beg_day+"."+(beg_mon+1)+".");
			return false;
		}
		if (an_mon == end_mon+1 && an_tag > (end_day)){
			alert(after_season +end_day+"."+(end_mon+1)+".");
			return false;
		}
		if(beg_year!=0 && end_year!=0){
			var end_dt = new Date();
			end_dt.setYear(end_year);
			end_dt.setMonth(end_mon);
			end_dt.setDate(end_day);
			if(arr_dt > end_dt){
				alert(out_of_season+beg_day+"."+(beg_mon+1)+"."+beg_year+to+end_day+"."+(end_mon+1)+"."+end_year);
				return false;
			}
			if(an_jahr != beg_year && an_jahr != end_year){
				alert(out_of_season+beg_day+"."+(beg_mon+1)+"."+beg_year+to+end_day+"."+(end_mon+1)+"."+end_year);
				return false;
			}
		}
	}
	else if(type=="abr"){
		var ab_tag = arr_date[0];
		var ab_mon = arr_date[1];
		var ab_jahr = arr_date[2];
		var current_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 < current_dt){
			alert(no_book_past);
			return false;
		}
		if (ab_mon == end_mon+1 && ab_tag > (end_day)){
			alert(after_season+end_day+"."+(end_mon+1)+".");
			return false;
		}
		if (ab_mon == beg_mon+1 && ab_tag < (beg_day)){
			alert(before_season+beg_day+"."+(beg_mon+1)+".");
			return false;
		}
		if(beg_year!=0 && end_year !=0){
			var end_dt = new Date();
			end_dt.setYear(end_year);
			end_dt.setMonth(end_mon);
			end_dt.setDate(end_day);
			if(arr_dt > end_dt){
				alert(out_of_season+beg_day+"."+(beg_mon+1)+"."+beg_year+to+end_day+"."+(end_mon+1)+"."+end_year);
				return false;
			}
			if(ab_jahr != beg_year && ab_jahr != end_year){
				alert(out_of_season+beg_day+"."+(beg_mon+1)+"."+beg_year+to+end_day+"."+(end_mon+1)+"."+end_year);
				return false;
			}
		}
	}
	return true;
}

function add_d(dt_add){

	var dt_tag = new Date();
	dt_tag= dt_add.getDate();

	dt_add.setDate(dt_tag+add_days);
	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_day);
	}

	if(dt_monat==end_mon && dt_tag > end_day+1){
		dt_add.setMonth(end_mon);
		dt_add.setDate(end_day);
	}

	return dt_add;
}

function einsetzen(){

	anDate = window.document.forms[frm].elements[hidden_field1_name].value;
	var anArray = anDate.split(".");

	abDate = window.document.forms[frm].elements[hidden_field2_name].value;
	var abArray = abDate.split(".");

	for(x=0;x<window.document.forms[frm].elements[select_arrive_day_name].length;x++){
		if(window.document.forms[frm].elements[select_arrive_day_name].options[x].value==anArray[0]){
			window.document.forms[frm].elements[select_arrive_day_name].selectedIndex = x;
			arrDay = x;
		}
	}
	for(x=0;x<window.document.forms[frm].elements[select_arrive_month_name].length;x++){
		if(window.document.forms[frm].elements[select_arrive_month_name].options[x].value==anArray[1]){
			window.document.forms[frm].elements[select_arrive_month_name].selectedIndex = x;
		}
	}
	for(x=0;x<window.document.forms[frm].elements[select_arrive_year_name].length;x++){
		if(window.document.forms[frm].elements[select_arrive_year_name].options[x].value==anArray[2]){
			window.document.forms[frm].elements[select_arrive_year_name].selectedIndex = x;
		}
	}
	for(x=0;x<window.document.forms[frm].elements[select_leave_day_name].length;x++){
		if(window.document.forms[frm].elements[select_leave_day_name].options[x].value==abArray[0]){
			window.document.forms[frm].elements[select_leave_day_name].selectedIndex = x;
			leavDay = x;
		}
	}
	for(x=0;x<window.document.forms[frm].elements[select_leave_month_name].length;x++){
		if(window.document.forms[frm].elements[select_leave_month_name].options[x].value==abArray[1]){
			window.document.forms[frm].elements[select_leave_month_name].selectedIndex = x;
		}
	}
	for(x=0;x<window.document.forms[frm].elements[select_leave_year_name].length;x++){
		if(window.document.forms[frm].elements[select_leave_year_name].options[x].value==abArray[2]){
			window.document.forms[frm].elements[select_leave_year_name].selectedIndex = x;
		}
	}
}

function set(type){

	setElement(type);

	monDays[1]=28;

	clearAll(type);

	for(i=0; i<window.document.forms[frm].elements[element1].length;i++){
		window.document.forms[frm].elements[element1].options[i] = null;
	}
	
	Schaltjahr(window.document.forms[frm].elements[element3].options[window.document.forms[frm].elements[element3].selectedIndex].value);
		
	if(sJahr){
		monDays[1]=29;
	}
		
	for(j=1; j<=monDays[window.document.forms[frm].elements[element2].selectedIndex];j++){
		neu = new Option(j,j,true,true);
		window.document.forms[frm].elements[element1].options[j-1] = neu;
	}
	if(type=="anr"){
		window.document.forms[frm].elements[element1].selectedIndex = arrDay;
	}
	else {
		window.document.forms[frm].elements[element1].selectedIndex = leavDay;
	}
}

function clearAll(type){

	for(i=0; i<window.document.forms[frm].elements[element1].length;i++){
		window.document.forms[frm].elements[element1].options[i] = null;
	}
}

function date() {

	if(showNextWeekday){
		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 && dt_current.getMonth() > end_mon){		
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_day);
			x=false;
		}
	}
	else {
		if (dt_current.getMonth() < beg_mon || dt_current.getMonth() > end_mon){
			if(dt_current.getMonth() > end_mon){
				dt_current.setFullYear(dt_current.getFullYear()+1);
			}
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_day);
			x=false;
		}
	}
	if(dt_current.getMonth() == beg_mon && dt_current.getDate() < beg_day){
			dt_current.setDate(beg_day);
			x=false;
	}
	if(dt_current.getMonth() == end_mon && dt_current.getDate() > end_day){
			dt_current.setDate(beg_day);
			x=false;
	}
	if(!x){
		if(showNextWeekday){
			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==''){
		if(showNextWeekday){
			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 && dt_current.getMonth() > end_mon){
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_day);
			x=false;
			}
		}
	else {
		if (dt_current.getMonth() < beg_mon || dt_current.getMonth() > end_mon){
			if(dt_current.getMonth() > end_mon){
				dt_current.setFullYear(dt_current.getFullYear()+1);
			}
			dt_current.setMonth(beg_mon);
			dt_current.setDate(beg_day);
			x=false;
		}
	}
	if(dt_current.getMonth() == beg_mon && dt_current.getDate() < beg_day){
			dt_current.setDate(beg_day);
			x=false;
	}
	if(dt_current.getMonth() == end_mon && dt_current.getDate() > end_day){
			dt_current.setDate(beg_day);
			x=false;
	}
	if(!x){
		if(showNextWeekday){
			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[frm].elements[hidden_field1_name].value=heute;

	dt_cur = add_d(dt_cur);

	var abreise = dt_cur.getDate()+"."+(dt_cur.getMonth()+1)+"."+dt_cur.getFullYear();
	window.document.forms[frm].elements[hidden_field2_name].value=abreise;
}

// functions for calendar.html
//------------------------------------------------------------------------------------------------//

function checkParams() {
	var arr = window.location.search;
	var data = arr.split("&");
	var c = data[0].substring(3,8);
	if(c=="undef"){
		c=true;
	}
	var re_id = new RegExp('id=(\\d+)');
	var num_id = (re_id.exec(String(window.location)) ? new Number(RegExp.$1) : 0);
	obj_caller = (window.opener ? window.opener.calendars[num_id] : null);

	date_html();
	start();
}

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);

	// if actually month-1 is one between end_mon and beg_mon
	// then jump back to right month.
	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);

	// if actually month+1 is one between beg_mon and end_mon
	// then jump forward to right month.
	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);
}

// draw the title-row of the calendar
function draw_calendartitle() {
	
	document.write(
	'<td>'+(obj_caller&&obj_caller.year_scroll?'<a href="javascript:set_datetime('+dt_prev_year.valueOf()+
	', false)"><img src="'+img_prevYear+'" width="16" height="16" border="0" alt="" id="pyear"></a>&nbsp;':'')+
	'<a href="javascript:set_datetime('+dt_prev_month.valueOf()+
	', false)"><img src="'+img_prevMonth+'" width="16" height="16" border="0" alt="" id="pmonth"></a></td>'+
	'<td class="month">'+ARR_MONTHS[dt_current.getMonth()]+' '+dt_current.getFullYear() +
	'</td>'+
	'<td><a href="javascript:set_datetime('+dt_next_month.valueOf()+
	', false)"><img src="'+img_nextMonth+'" width="16" height="16" border="0" alt="" id="nmonth"></a>'+
	(obj_caller && obj_caller.year_scroll?'&nbsp;<a href="javascript:set_datetime('+dt_next_year.valueOf()+
	', false)"><img src="'+img_nextYear+'" width="16" height="16" border="0" alt="" id="nyear"></a>':'')+
	'</td>'
	);
	
	document.getElementById("pyear").alt = ico_prev_year;
	document.getElementById("nyear").alt = ico_next_year;
	document.getElementById("pmonth").alt = ico_prev_month;
	document.getElementById("nmonth").alt = ico_next_month;
}

// draw the calendar table
function draw_calendartable() {
	
	// print weekdays titles
	for (var n=0; n<7; n++)
		document.write('<td class="days bgColorDark">'+ARR_WEEKDAYS[(NUM_WEEKSTART+n)%7]+'</td>');
	document.write('</tr>');
	
	// print calendar table
	var dt_current_day = new Date(dt_firstday);
	var dt_nt = new Date();
	var dayOff = false;
	
	while (dt_current_day.getMonth() == dt_current.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		
		// print row heder
		document.write('<tr>');
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
			
			// days off	the current-date in the same month
			if (dt_current_day.getMonth() < dt_nt.getMonth() &&
				dt_current_day.getFullYear() == dt_nt.getFullYear()){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			else if (dt_current_day.getFullYear() < dt_nt.getFullYear()){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			// days off	the current-date in other months
			else if (dt_current_day.getDate() < dt_nt.getDate() &&
				dt_current_day.getMonth() <= dt_nt.getMonth() &&
				dt_current_day.getFullYear()<=dt_nt.getFullYear()){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			else if (dt_current_day.getMonth() == end_mon && dt_current_day.getDate() > (end_day)){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			else if (dt_current_day.getMonth() == end_mon+1){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			else if (dt_current_day.getMonth() == beg_mon && dt_current_day.getDate() < (beg_day)){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			else if (dt_current_day.getMonth() == beg_mon-1){
				document.write('<td class="off bgColorLight2">');
				dayOff = true;
			}
			else if(beg_year!=0 && end_year !=0){
				
				var beg_dt = new Date();
				beg_dt.setYear(beg_year);
				beg_dt.setMonth(beg_mon);
				beg_dt.setDate(beg_day);
				
				var end_dt = new Date();
				end_dt.setYear(end_year);
				end_dt.setMonth(end_mon);
				end_dt.setDate(end_day);
				
				if (dt_current_day < beg_dt || dt_current_day > end_dt){
					document.write('<td class="off bgColorLight2">');
					dayOff = true;
				}
				else {
					dayOff = print_currentDate(dt_current_day, dt_current);
				}
			}
			else {
				dayOff = print_currentDate(dt_current_day, dt_current);
			}
	
			if(!dayOff){
				document.write('<a href="javascript:set_datetime('+dt_current_day.valueOf() +', true);"');
				// print days of current month
				if (dt_current_day.getMonth() == this.dt_current.getMonth()){
					document.write('class="link">');
				}
				// print days of other months
				else{
					document.write('class="link_oth">');
				}
			}
			document.write(dt_current_day.getDate());
			if(!dayOff){
				document.write('</a>');
			}
			document.write('</td>');
			dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		document.write('</tr>');
	}
	if (obj_caller && obj_caller.time_comp){
		document.write('<form onsubmit="javascript:set_datetime('+dt_current.valueOf()+
		', true)" name="cal"><tr><td colspan="7" bgcolor="#87CEFA"><font color="White"'+
		' face="tahoma, verdana" size="2">Time: <input type="text" name="time" value="'+
		obj_caller.gen_time(this.dt_current)+'" size="8" maxlength="8"></font></td></tr></form>');
	}
}

function print_currentDate(dt_current_day, dt_current){

	// print current date
	if (dt_current_day.getDate() == dt_current.getDate() &&
		dt_current_day.getMonth() == dt_current.getMonth()){
		document.write('<td class="current">');
		return false;
	}
	// weekend days	
	else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6){
		document.write('<td class="weekend bgColorLight">');
		return false;
	}
	// print working days of current month
	else{
		document.write('<td class="working bgColorLight3">');			
		return false;		
	}
	return true;
}
	
// 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(no_book_past);
			}
			 if (an_mon==beg_mon-1){
			 	b=false;
				return alert(before_season +beg_day+"."+(beg_mon+1)+".");
			}
			 if (an_mon == beg_mon && an_tag < (beg_day)){
				if(beg_mon < end_mon && beg_mon!=0 && beg_day!=1 && end_mon!=11 && end_day!=31){
					return alert(before_season +beg_day+"."+(beg_mon+1)+".");
					b=false;
				}
				else{
					b=false;
					return alert(before_season +beg_day+"."+(beg_mon+1)+".");
				}
			}
			 if (an_mon == end_mon && an_tag > (end_day)){
				b=false;
				return alert(after_season +end_day+"."+(end_mon+1)+".");
			}
			 if (an_mon==end_mon+1){
				b=false;
				return alert(after_season +end_day+"."+(end_mon+1)+".");
			}
			if(beg_year!=0 && end_year !=0){
				if(an_jahr < beg_year && an_jahr > end_year){
					b=false;
					return alert(out_of_season +beg_day+"."+(beg_mon+1)+"."+beg_year+ to +end_day+"."+(end_mon+1)+"."+end_year);
				}
			}
			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();

			dt_datetime.setDate(dt_tag+add_days);
			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_day);
			}
			if(dt_monat==end_mon && dt_tag > end_day+1){
				dt_datetime.setMonth(end_mon);
				dt_datetime.setDate(end_day);

			}

			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(no_book_past);
			}
		 	if (ab_mon==end_mon+1){
				b=false;
				return alert(after_season +end_day+"."+(end_mon+1)+".");
			}
			if (ab_mon == end_mon && ab_tag > (end_day)){
				b=false;
				return alert(after_season +end_day+"."+(end_mon+1)+".");
			}
		 	 if (ab_mon==beg_mon-1){
				b=false;
				return alert(before_season+beg_day+"."+(beg_mon+1)+".");
			}
			 if (ab_mon == beg_mon && ab_tag < (beg_day)){
				b=false;
				return alert(before_season+beg_day+"."+(beg_mon+1)+".");
			}
			if(beg_year!=0 && end_year !=0){
				if(ab_jahr < beg_year && ab_jahr > end_year){
					b=false;
					return alert(out_of_season +beg_day+"."+(beg_mon+1)+"."+beg_year+to+end_day+"."+(end_mon+1)+"."+end_year);
				}
			}

			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(leave_before_come);
				}
				}
			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();

			dt_datetime.setDate(dt_tag-sub_days);
			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_day);
			}
			if(dt_monat==beg_mon && dt_tag < beg_day-1){
				dt_datetime.setMonth(beg_mon);
				dt_datetime.setDate(beg_day);
			}
			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);
}

function isDateOK(type){
	
	setElement(type);
	var strDate = window.document.forms[frm].elements[element1].options[window.document.forms[frm].elements[element1].selectedIndex].value+"."
			+window.document.forms[frm].elements[element2].options[window.document.forms[frm].elements[element2].selectedIndex].value+"."
			+window.document.forms[frm].elements[element3].options[window.document.forms[frm].elements[element3].selectedIndex].value
	
	if(prs_dates(strDate)){
		if(checkSelected(strDate, type)){
			return true;
		}
	}
	return false;
}

function submitForm(){
	submitFormExt('');
}

function submitFormExt(page){
	var form = window.document.getElementById(frm);
	
	if(isDateOK("anr") && isDateOK("abr")){
		if(linkPage != ''){
			link();
		}
		else if(page != ''){
			linkExt(page);
		}
		else{
			form.submit();
		}
	}
}

function writeSelectBlock(type){
	writeDays(type);
	writeMonths(type);
	writeYears(type);
}

function writeDays(type){
	if(type=="anr"){
		document.write("<select name='"+select_arrive_day_name+"' class='"+select_arrive_day_class+"' onChange=prepare('"+type+"');>");
	}
	else{
		document.write("<select name='"+select_leave_day_name+"' class='"+select_leave_day_class+"' onChange=prepare('"+type+"');>");
	}
	for(i=1; i<=31; i++) { 
		document.write("<option value='"+i+"'>"+i+"</option>");
	}
	document.write("</select>");
}

function writeMonths(type){

	if(type=="anr"){
		document.write("<select name='"+select_arrive_month_name+"' class='"+select_arrive_month_class+"' onChange=prepare('"+type+"');>");
	}
	else{
		document.write("<select name='"+select_leave_month_name+"' class='"+select_leave_month_class+"' onChange=prepare('"+type+"');>");
	}
	for(i=1; i<=12; i++) { 
		document.write("<option value='"+i+"'>"+i+"</option>");
	}
	document.write("</select>");
}

function writeYears(type){
	
	if(type=="anr"){
		document.write("<select name='"+select_arrive_year_name+"' class='"+select_arrive_year_class+"' onChange=prepare('"+type+"');>");
	}
	else{
		document.write("<select name='"+select_leave_year_name+"' class='"+select_leave_year_class+"' onChange=prepare('"+type+"');>");
	}
	for(i=Jahr; i<=eJahr; i++) { 
		document.write("<option value='"+i+"'>"+i+"</option>");
	}
	document.write("</select>");
}

function setSelectDate(){
	date();
	setTextfelder();
	einsetzen();
	set('anr');
	set('abr');
}

function link(){

	linkExt(linkPage);
}

function linkExt(page){
	
    if(page.indexOf('?') != -1){
        page += '&';
    }
    else{
        page += '?';
    }
       
    window.open(page + arrive_date + "=" + makeDate(window.document.forms[frm].elements[hidden_field1_name].value) + "&" + leave_date + "=" + makeDate(window.document.forms[frm].elements[hidden_field2_name].value),"_parent");
}

function generateIframe(name, src, width, height, frameborder, align, scrolling, marginheight, marginweight, style, longdesc){
	var link = window.location.search;
    src = src + '&' + link.substr(1, link.length);
	var attribute = '';
	
	if(name != ''){
		attribute = attribute + " name='" + name + "'";
	}
	if(width != ''){
		attribute = attribute + " width='" + width + "'";
	}
	if(height != ''){
		attribute = attribute + " height='" + height + "'";
	}
	if(frameborder != ''){
		attribute = attribute + " frameborder='" + frameborder + "'";
	}
	if(align != ''){
		attribute = attribute + " align='" + align + "'";
	}
	if(scrolling != ''){
		attribute = attribute + " scrolling='" + scrolling + "'";
	}
	if(marginheight != ''){
		attribute = attribute + " marginheight='" + marginheight + "'";
	}
	if(marginweight != ''){
		attribute = attribute + " marginweight='" + marginweight + "'";
	}
	if(style != ''){
		attribute = attribute + " style='" + style + "'";
	}
	if(longdesc != ''){
		attribute = attribute + " longdesc='" + longdesc + "'";
	}

    document.write("<iframe src='" + src + "' " + attribute + "> <p>" + no_frame + "</p></iframe>" );
}

function getURLValue(){
         
    var arr = window.location.search;
    var data = arr.split("&");
         
    for(x=0;x<data.length;x++){
        if(data[x].indexOf(arrive_date) != -1){
			if(data[x].indexOf('?') != -1){
				data[x] = data[x].substr(1, data[x].length);
			}
            var setValue = data[x].substr(arrive_date.length+1, data[x].length);
            window.document.getElementsByName(arrive_date)[0].value=setValue;
        }
        else if(data[x].indexOf(leave_date) != -1){
            var setValue = data[x].substr(leave_date.length+1, data[x].length);
            window.document.getElementsByName(leave_date)[0].value=setValue;
        }
    }
}

function getURLValue3(){
         
    var arr = window.location.search;
    var data = arr.split("&");
		 
    for(x=0;x<data.length;x++){
        if(data[x].indexOf(arrive_date) != -1){
			if(data[x].indexOf('?') != -1){
				data[x] = data[x].substr(1, data[x].length);
			}
            var setValue = data[x].substr(arrive_date.length+1, data[x].length);
			var saSplit_value = setValue.split('.');

			window.document.getElementsByName(arrive_day)[0].value = saSplit_value[0];
			window.document.getElementsByName(arrive_month)[0].value = saSplit_value[1]-1;
			window.document.getElementsByName(arrive_year)[0].value = saSplit_value[2];
        }
        else if(data[x].indexOf(leave_date) != -1){
            var setValue = data[x].substr(leave_date.length+1, data[x].length);
			var saSplit_value = setValue.split('.');

			window.document.getElementsByName(leave_day)[0].value = saSplit_value[0];
			window.document.getElementsByName(leave_month)[0].value = saSplit_value[1]-1;
			window.document.getElementsByName(leave_year)[0].value = saSplit_value[2];
        }
    }
}