// Not used !!!
function init_room_selection() {
 
	var sel_room   = document.getElementById('Room' + 1);
	var sel_adults = document.getElementById('Room' + 1 + 'Adults');
	var sel_children = document.getElementById('Room' + 1 + 'Children');
 
	sel_room.value = '@DB';
	update_room_adult_selection(1);
 
 
	var sel_room   = document.getElementById('Room' + 2);
	var sel_adults = document.getElementById('Room' + 2 + 'Adults');
	var sel_children = document.getElementById('Room' + 2 + 'Children');
 
	sel_room.value = '@DB';
	update_room_adult_selection(2);
	selectOption(sel_adults, 0);
	update_room_child_selection(2)
}
 
function update_room_adult_selection(idx) {
 
	var sel_room   = document.getElementById('Room' + idx);
	var sel_adults = document.getElementById('Room' + idx + 'Adults');
	var sel_children = document.getElementById('Room' + idx + 'Children');
 
	if(sel_room.value == '@SB') {
		removeAllOptions(sel_adults);
		if(idx == 1) {
			addOption(sel_adults, '1', '1');
			selectOption(sel_adults, 0);
		}
		else {
			addOption(sel_adults, '0', '0');
			addOption(sel_adults, '1', '1');
			selectOption(sel_adults, 1);
		}
	}
 
	if(sel_room.value == '@DB' || sel_room.value == '@TB') {
		removeAllOptions(sel_adults);
		if(idx == 1) {
			addOption(sel_adults, '1', '1');
			addOption(sel_adults, '2', '2');
			selectOption(sel_adults, 1);
		}
		else {
			addOption(sel_adults, '0', '0');
			addOption(sel_adults, '1', '1');
			addOption(sel_adults, '2', '2');
			selectOption(sel_adults, 2);
		}
	}
 
	if(sel_room.value == '@TR') {
		if(idx == 1) {
			removeAllOptions(sel_adults);
			addOption(sel_adults, '1', '1');
			addOption(sel_adults, '2', '2');
			addOption(sel_adults, '3', '3');
			selectOption(sel_adults, 2);
		}
		else {
			removeAllOptions(sel_adults);
			addOption(sel_adults, '0', '0');
			addOption(sel_adults, '1', '1');
			addOption(sel_adults, '2', '2');
			addOption(sel_adults, '3', '3');
			selectOption(sel_adults, 3);
		}
	}
 
	if(sel_room.value == '@QR') {
		if(idx == 1) {
			removeAllOptions(sel_adults);
			addOption(sel_adults, '1', '1');
			addOption(sel_adults, '2', '2');
			addOption(sel_adults, '3', '3');
			addOption(sel_adults, '4', '4');
			selectOption(sel_adults, 3);
		}
		else {
			removeAllOptions(sel_adults);
			addOption(sel_adults, '0', '0');
			addOption(sel_adults, '1', '1');
			addOption(sel_adults, '2', '2');
			addOption(sel_adults, '3', '3');
			addOption(sel_adults, '4', '4');
			selectOption(sel_adults, 4);
		}
	}
 
	 update_room_child_selection(idx);
}
 
 
function update_room_child_selection(idx) {
 
	var sel_room   = document.getElementById('Room' + idx);
	var sel_adults = document.getElementById('Room' + idx + 'Adults');
	var sel_children = document.getElementById('Room' + idx + 'Children');
 
	if(sel_room.value == '@SB') {
		removeAllOptions(sel_children);
		addOption(sel_children, '0', '0');
		selectOption(sel_children, 0);
	}
 
	if(sel_room.value == '@DB' || sel_room.value == '@TB') {
		if(sel_adults.value == '0') {
			removeAllOptions(sel_children);
			addOption(sel_children, '0', '0');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '1') {
			removeAllOptions(sel_children);
			addOption(sel_children, '1', '1');
			addOption(sel_children, '2', '2');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '2') {
			removeAllOptions(sel_children);
			addOption(sel_children, '0', '0');
			addOption(sel_children, '1', '1');
			selectOption(sel_children, 0);
		}
	}
 
	if(sel_room.value == '@TR') {
		if(sel_adults.value == '0') {
			removeAllOptions(sel_children);
			addOption(sel_children, '0', '0');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '1') {
			removeAllOptions(sel_children);
			addOption(sel_children, '2', '2');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '2') {
			removeAllOptions(sel_children);
			addOption(sel_children, '1', '1');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '3') {
			removeAllOptions(sel_children);
			addOption(sel_children, '0', '0');
			selectOption(sel_children, 0);
		}
	}
 
	if(sel_room.value == '@QR') {
		if(sel_adults.value == '0') {
			removeAllOptions(sel_children);
			addOption(sel_children, '0', '0');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '1') {
			removeAllOptions(sel_children);
			addOption(sel_children, '3', '3');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '2') {
			removeAllOptions(sel_children);
			addOption(sel_children, '2', '2');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '3') {
			removeAllOptions(sel_children);
			addOption(sel_children, '1', '1');
			selectOption(sel_children, 0);
		}
 
		if(sel_adults.value == '4') {
			removeAllOptions(sel_children);
			addOption(sel_children, '0', '0');
			selectOption(sel_children, 0);
		}
	}
}
 
function removeAllOptions(selectbox)
{
	var deli;
	for(deli=selectbox.options.length-1;deli>=0;deli--)
	{
		//selectbox.options.remove(i);
		selectbox.remove(deli);
	}
}
function addOption(selectbox, value, text)
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
}
// this following function is used to select default index of the list
function selectOption(selectbox, index) {
        selectbox.selectedIndex = index;
}
 
 
/****************************************************
*  function checkDate
*
*  Purpose:  
*
*  @param field      = object input type field
*  @param pfieldName = string input type Name
*  @param field      = string errorText
******************************************************/
 
function check_date(field, dFormat) {
	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 Flag = false;        //????
	var MonthNameDE = new Array ("JAN","FEB","MÄR","APR","MAI","JUN","JUL","AUG","SEP","OKT","NOV","DEZ");
	var MonthNameEN = new Array ("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
 
	date=new Date();
	err = 0; 
	DateValue = DateField.value;
	DateValue = DateValue.toUpperCase();
	for (i = 0; i < DateValue.length; i++) {
		DateValue = DateValue.replace(".","")
		DateValue = DateValue.replace("-","")
		DateValue = DateValue.replace("/","")
		DateValue = DateValue.replace(" ","")
		DateValue = DateValue.replace(",","")
	}
	DateValue = DateValue.replace("MÄRZ","MÄRZMÄRZ");
 
	if(DateValue.length < 4) {
		err = 29;
	}
	else {
		/* Always change date to 8 digits - string*/
		/* if year is entered as 2-digit / always assume 20xx */
		if (DateValue.length == 4) {
			DateValue = DateValue.substr(0,4) + date.getFullYear();
		}
 
		/****************************************************/
		if (DateValue.length == 5) {
			for (i = 0; i <= 11; i++) {
				if(MonthNameEN[i]== DateValue.substr(2,3).toUpperCase()) {
					Flag = true;
					if((i + 1) < 10) { 
						DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
					}
					else { 
						DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
					}
				}
 
				if(Flag==false) {
					if(MonthNameDE[i]== DateValue.substr(2,3).toUpperCase()) {
						Flag = true;
						if((i + 1) < 10) { 
							DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
						}
						else { 
							DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
						}
					}
				} 
			}//end for 
		} //DateValue.length == 5
 
		/****************************************************/
		if(DateValue.length == 6) {
			DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); 
		}
 
		/****************************************************/
		if(DateValue.length == 7) {
			for(i = 0; i <= 11; i++) {
				if(MonthNameEN[i] == DateValue.substr(2,3).toUpperCase()) {
					Flag=true;
					if((i + 1) < 10) { 
						DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
					}
					else { 
						DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
					}
				}
 
				if(Flag==false) {
					if(MonthNameDE[i]== DateValue.substr(2,3).toUpperCase()) {
						Flag = true;
						if((i + 1) < 10) { 
							DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
						}
						else { 
							DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
						}
					}
				} 	
			}
		} 
 
		/****************************************************/
		if(DateValue.length == 9) {
			for(i = 0; i <= 11; i++) {
				if(MonthNameEN[i] == DateValue.substr(2,3).toUpperCase()) {
					Flag=true;
					if((i + 1) < 10) { 
						DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
					}
					else { 
						DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
					}
				}
 
				if(Flag==false) {
					if(MonthNameDE[i]== DateValue.substr(2,3).toUpperCase()) {
						Flag = true;
						if((i + 1) < 10) { 
							DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
						}
						else { 
							DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
						}
					}
				} 
			}
		} 
 
 
		if(MonthNameEN[i] == DateValue.substr(2,3).toUpperCase()) {
			Flag=true;
			if((i + 1) < 10) { 
				DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
			}
			else { 
				DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
			}
		}
 
		if(DateValue.length != 8) {
			for(i = 0; i <= 11; i++) {
				if(MonthNameEN[i] == DateValue.substr(2,3).toUpperCase()) {
					Flag=true;
					if((i + 1) < 10) { 
						DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
					}
					else { 
						DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
					}
				}
 
				if(Flag==false) {
					if(MonthNameDE[i]== DateValue.substr(2,3).toUpperCase()) {
						Flag = true;
						if((i + 1) < 10) { 
							DateValue = DateValue.substr(0,2) + '0' + (i + 1) + date.getFullYear(); 
						}
						else { 
							DateValue = DateValue.substr(0,2) + (i + 1) + date.getFullYear(); 
						}
					}
				} 
			}
		}  
 
		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;
		}
		//increase year if actual month is higher than etered month
		if ((date.getMonth()+1 > month) && (date.getYear() == year)) {
			year++;
		}
		/* 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 (year < date.getFullYear()){
			err = 27;
		}
 
		/* 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) {
		sysday=date.getDate();
		sysmonth=date.getMonth()+1;
		sysyear=date.getFullYear();
		if(sysday<10) {
			sysday='0' + sysday;
		}
		if(sysmonth<10) {
			sysmonth='0' + sysmonth;
		}
		var tmpSysDate;
		var tmpSelecetedDate;
		tmpSysDate = sysyear + "" + sysmonth + "" + sysday;
		tmpSelectedDate = year + month + day;
		if(tmpSelectedDate < tmpSysDate) {
			err=28;
		}
	}
 
	var MonthNameList = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
	var monthName = "";
	if(month <= 12) {
		monthName = MonthNameList[month - 1];
		var szDateFormat = dFormat;
		szDateFormat = szDateFormat.replace(/%d/,day)
		szDateFormat = szDateFormat.replace(/%m/,month)
		szDateFormat = szDateFormat.replace(/%B/,monthName)
		szDateFormat = szDateFormat.replace(/%b/,monthName.substring(0,3))
		szDateFormat = szDateFormat.replace(/%y/,String(year).substring(2,4))
		if(err==28) {
			if(arguments.length>2) {
				if(arguments[3]=='DoNotRoundItUp') {
					szDateFormat = szDateFormat.replace(/%Y/,year);
				}
				else {
					szDateFormat = szDateFormat.replace(/%Y/,(date.getFullYear() + 1));
				}
			}
			else {
				szDateFormat = szDateFormat.replace(/%Y/,(date.getFullYear() + 1));
			}
		}
		else {
			szDateFormat = szDateFormat.replace(/%Y/,year);
		}
	}
 
	if(err == 0) {
		DateField.value = szDateFormat;
	}
	/* Error-message if err != 0 */
	else {
		if(err==28) {
			DateField.value = szDateFormat;
		}
		else {
			if(arguments.length>2 && err==27) {
				if(arguments[3]=='DoNotRoundItUp') {
					DateField.value = szDateFormat;
				}
				else {
					DateField.value = "";
				}
			}
			else {
				DateField.value = "";
			}
		}  
	}
 
	if(err == 0) {
		return true;
	}
	else {
		return false;
	}
}
 
 
function update_return_date(from) {
 
	var rd = new Date(from.substr(6, 4), from.substr(3, 2) - 1, from.substr(0, 2));
 
	rd.setDate(rd.getDate() + 4);
	var day   = rd.getDate();
	var month = rd.getMonth()+1;
	var year  = rd.getFullYear();
 
	if(day<10) {
		day='0' + day;
	}
	if(month<10) {
		month='0' + month;
	}
 
	document.Form1.ReturnDate.value = day + "." + month + "." + year;
 
	return true;
}
 
 
function ltrim(str){
	return str.replace(/^\s+/, '');
}
 
function rtrim(str) {
	return str.replace(/\s+$/, '');
}
 
function alltrim(str) {
	return str.replace(/^\s+|\s+$/g, '');
}
 
 
function form_check_and_submit(form) {
 
	var error_text = '';
	var date=new Date();
	var sdate = form.StartDate.value;
	var sd = new Date(sdate.substr(6, 4), sdate.substr(3, 2) - 1, sdate.substr(0, 2));
	var rdate = form.ReturnDate.value;
	var rd = new Date(rdate.substr(6, 4), rdate.substr(3, 2) - 1, rdate.substr(0, 2));
	var r1 = document.Form1.Room1; 
	var r1a = document.Form1.Room1Adults; 
	var r1c	= document.Form1.Room1Children;
	var r2 = document.Form1.Room2; 
	var r2a = document.Form1.Room2Adults;
	var r2c = document.Form1.Room2Children;
	var days_before_depart = 1;
 
	if(sd.getTime() - date.getTime() <  (1000 * 60 * 60 * 24 * (days_before_depart - 1)) /* + 3 Tage*/) {
		var first_date 	= new Date(date.getTime() + (1000 * 60 * 60 * 24 * days_before_depart));
		var day 		= first_date.getDate()
		var month 		= first_date.getMonth() + 1
		var year  		= first_date.getFullYear()
 
		error_text = "The earliest possible departure is" + " " + day + "." + month + "." + year + ". Please select another departure date or contact your travel agency.";
	}
	else if(rd.getTime() <= sd.getTime()) {
		error_text = "The return date must be later than the departure date. Please correct.";
	}
 
	if(r1a.value + r2a.value > 0) {
		if(r1a.value + r1c.value > 0) {
			if(r1.value == '@SB' && (r1a.value != 1 || r1c.value > 0)) {
				error_text = "For single room, total no. of persons must be adult = 1 and child = 0";
			}
			else if((r1.value == '@DB' || r1.value == '@TB') && (
				Number(r1a.value) + Number(r1c.value) < 2 || 
				Number(r1a.value) + Number(r1c.value) > 3 || 
				Number(r1a.value) < 1 || 
				Number(r1a.value) > 2 || 
				Number(r1c.value) > 2
			)) {
				error_text = "The selection of a double room requires a minimum passenger number of 2, but a maximum of 2 adults and 1 child.";
			}
			else if(r1.value == '@TR' && Number(r1a.value) + Number(r1c.value) != 3) {
				error_text = "The selection of a triple room requires a total number of passenger of 3.";
			}
			else if(r1.value == '@QR' && Number(r1a.value) + Number(r1c.value) != 4) {
				error_text = "The selection of a quad room requires a total number of passenger of 4.";
			}
		}
 
		if(r2a.value + r2c.value > 0) {
			if(r2.value == '@SB' && (r2a.value != 1 || r2c.value > 0)) {
				error_text = "For single room, total no. of persons must be adult = 1 and child = 0";
			}
			else if((r2.value == '@DB' || r2.value == '@TB') && (
				Number(r2a.value) + Number(r2c.value) < 2 || 
				Number(r2a.value) + Number(r2c.value) > 3 || 
				Number(r2a.value) < 1 || 
				Number(r2a.value) > 2 || 
				Number(r2c.value) > 2
			)) {
				error_text = "The selection of a double room requires a minimum passenger number of 2, but a maximum of 2 adults and 1 child.";
			}
			else if(r2.value == '@TR' && Number(r2a.value) + Number(r2c.value) != 3) {
				error_text = "The selection of a triple room requires a total number of passenger of 3.";
			}
			else if(r2.value == '@QR' && Number(r2a.value) + Number(r2c.value) != 4) {
				error_text = "The selection of a quad room requires a total number of passenger of 4.";
			}
		}
	}
	else {
		error_text = "You must select at least 1 adult.";
	}
 
	if(document.Form1._DirectOnly.checked) {
		document.Form1.DirectOnly.value = '1';
	}
	else {
		document.Form1.DirectOnly.value = '0';
	}
 
	
		var code_array = form._Destination.value.split('/');
		var code = "";
		if(code_array.length > 1) {
			code = code_array[1];
		}
		else {
			code = form._Destination.value;
		}
		
		form.Destination.value = alltrim(code);
		// alert(form.Destination.value);
	
	
	if(error_text.length == 0) {
		form.submit();
	}
	else {
		alert(error_text);
	}
}
 
 
function update_destination() {
	
	var code = '';
	var lang = 'en'
	var url_start = 'http://montreal.onlinetravel.ch';
	
	if(code.length > 0) {
		
		var url = url_start + '/cgi-bin/dpDestFind?language=' + lang + '&olt_id=' + code;
		var myAjax = new Ajax.Request(
			url, {
				   method: 'get',
				   asynchronous: false,
				   onException: reportError,
				   onError:  reportError,
				   onComplete: function (response) {
						if(response.responseText) {
							document.Form1._Destination.value = response.responseText;
						}
				   }
			   }
		);
		
	}
}
 
 
function update_departure() {
	
	var code = '';
	var lang = 'en';
	var url_start = 'http://montreal.onlinetravel.ch';
	
	if(code.length > 0) {
		
		var url = url_start + '/cgi-bin/dpDestFind?language=' + lang + '&iata_code=' + code;
		var myAjax = new Ajax.Request(
			url, {
				   method: 'get',
				   asynchronous: false,
				   onException: reportError,
				   onError:  reportError,
				   onComplete: function (response) {
						if(response.responseText) {
							document.Form1._Departure.value = response.responseText;
						}
				   }
			   }
		);
		
	}
}
 
 
function reportError(request)
{
   //alert('Sorry. There was an error.');
} 
 
 
window.onload = function window_init () {
	
	
		update_destination();
	
}

