/* 

   made by 4rn0 -- content managed websites (c) 2005 - www.4rn0.nl
   prinsenhuis.nl -- main JavaScript file -- last revision: 15052006

*/


var availability, images = new Array(), today = new Date(), fromDay, fromMonth, fromYear, toDay, toMonth, toYear, searchFromDay, searchFromMonth, searchFromYear, searchToDay, searchToMonth, searchToYear, thisDay = today.getDate(), thisMonth = today.getMonth() + 1, thisYear = (today.getYear() < 1000) ? today.getYear() + 1900 : today.getYear(), monthDays = new Array(null, '31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31'), monthNames = new Array(null, 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december');

if (document.addEventListener) { document.addEventListener('DOMContentLoaded',init,null); }
/*@cc_on @*/ /*@if (@_win32) document.write("<script defer src=../js/init.js><"+"/script>"); /*@end @*/   
window.onload = init;
window.onresize = checkResizeWindow;

function init() {

	if (arguments.callee.done) {
		return;
	}
	
	arguments.callee.done = true;
	
	if (typeof(document.getElementById) == 'undefined') {
		document.getElementById = function(id) {
			return document.all[id];
		}
	}
	
	if (!window.XMLHttpRequest && window.ActiveXObject) {
		window.XMLHttpRequest = function() {
			return new ActiveXObject(navigator.userAgent.indexOf("MSIE 5") != -1 ? "Microsoft.XMLHTTP" : "MSXML2.XMLHTTP");
		};
	}
	
	fromDay = document.getElementById('fromDay'), fromMonth = document.getElementById('fromMonth'), fromYear = document.getElementById('fromYear'), toDay = document.getElementById('toDay'), toMonth = document.getElementById('toMonth'), toYear = document.getElementById('toYear'), searchFromDay = document.getElementById('searchFromDay'), searchFromMonth = document.getElementById('searchFromMonth'), searchFromYear = document.getElementById('searchFromYear'), searchToDay = document.getElementById('searchToDay'), searchToMonth = document.getElementById('searchToMonth'), searchToYear = document.getElementById('searchToYear');

	indexPreloader();
	checkResizeWindow();
	initAnchorEvents();
	bookingDateEvents();
	bookingFormsSubmit();
	initCalendarHelpers();
	
};


function checkResizeWindow() {
		var bugRiddenCrashPronePieceOfJunk = (
		navigator.userAgent.indexOf('MSIE 5.2') != -1
		&&
		navigator.userAgent.indexOf('Mac') != -1
	);
	
	if (!bugRiddenCrashPronePieceOfJunk) {
		resizeWindow();
	}
}

function initAnchorEvents() {

	var anchors = document.getElementsByTagName('A');
	for (var i = 0; i < anchors.length; i++) {
		if (anchors[i].getAttribute('rel') == 'external') {
			anchors[i].onclick = function() { window.open(this.getAttribute('href'), '', '', 'toolbar=yes, directories=yes, location=yes, status=yes, menubar=yes, resizable=yes, scrollbars=yes'); return false; };
		}
		
		if (anchors[i].className == 'description') {
			anchors[i].onclick = function() { window.open(this.getAttribute('href'), 'myWindow', 'height=375, width=300, toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=no, scrollbars=yes'); return false; };
		}
		
		if (anchors[i].className == 'imageNavigation') {
			anchors[i].onclick = function() { 
				document.getElementById('apartmentImage').src = this.href;
				return false;
			};
		}
		
		if (anchors[i].className == 'confirm') {
			anchors[i].onclick = function() {
				if (!confirm('Are you sure you want to do this?')) {
					return false;
				}
			};
		}
		
	}
	
}

function resizeWindow() {
	var x, y;
	
	if (self.innerHeight) {
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight) {
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) {
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}

	if (y < 522) {
		document.getElementById('canvas').style.margin = '10px auto';
		document.getElementById('canvas').style.top = '0';
		document.getElementById('canvas').style.left = '0';
		document.getElementById('canvas').style.position = 'relative';
	}
	else {
		document.getElementById('canvas').style.margin = '-281px 0 0 -426px';
		document.getElementById('canvas').style.top = '50%';
		document.getElementById('canvas').style.left = '50%';
		document.getElementById('canvas').style.position = 'absolute';
	}
}

function bookingDateEvents() {
	
	if (document.getElementById('fromYear') && document.getElementById('fromYear').disabled == false) {
		document.getElementById('fromYear').onchange = fromYearOnChange;
		//fromYearOnChange();
	}	

	if (document.getElementById('fromMonth') && document.getElementById('fromMonth').disabled == false) {
		document.getElementById('fromMonth').onchange = fromMonthOnChange;
		if (!document.getElementById('mtid')) {
			fromMonthOnChange(true);
		}
	}
	
	//if (document.getElementById('fromDay') && document.getElementById('fromDay').disabled == false) {
		//document.getElementById('fromDay').onchange = fromDayOnChange;
		//fromDayOnChange();
	//}

	if (document.getElementById('toYear') && document.getElementById('toYear').disabled == false) {
		document.getElementById('toYear').onchange = toYearOnChange;
		//toYearOnChange();
	}
	
	if (document.getElementById('toMonth') && document.getElementById('toMonth').disabled == false) {
		document.getElementById('toMonth').onchange = toMonthOnChange;
		if (!document.getElementById('mtid')) {
			toMonthOnChange(true);
		}
	}

	//if (document.getElementById('toDay') && document.getElementById('toDay').disabled == false) {
		//document.getElementById('toDay').onchange = toDayOnChange;
		//toDayOnChange();
	//}

	if (document.getElementById('searchFromYear')) {
		document.getElementById('searchFromYear').onchange = searchFromYearOnChange;
	}
	
	if (document.getElementById('searchFromMonth')) {
		document.getElementById('searchFromMonth').onchange = searchFromMonthOnChange;
	}

	if (document.getElementById('searchToYear')) {
		document.getElementById('searchToYear').onchange = searchToYearOnChange;
	}
	
	if (document.getElementById('searchToMonth')) {
		document.getElementById('searchToMonth').onchange = searchToMonthOnChange;
	}
	
	if (document.getElementById('availabilityForm')) {

		//document.getElementById('availabilityForm').reset();
		
		if (document.getElementById('mandarin')) {
			document.getElementById('mandarin').onclick = function() {
				updateAvailability(fromDay, fromMonth, fromYear);
				updateAvailability(toDay, toMonth, toYear);
				//fromDayOnChange();
				//toDayOnChange();
				document.getElementById('persons').options.length = 1;
				//document.getElementById('persons').options[1] = new Option('3 persons', '3');
				document.getElementById('persons').options[0] = new Option('1 or 2 persons', '1');
			}
			document.getElementById('persons').options.length = 1; //
		}
		
		if (document.getElementById('coral')) {
			document.getElementById('coral').onclick = function() {
				updateAvailability(fromDay, fromMonth, fromYear);
				updateAvailability(toDay, toMonth, toYear);
				//fromDayOnChange();
				//toDayOnChange();
				//document.getElementById('persons').options[1] = new Option('3 persons', '3');
				//document.getElementById('persons').options[2] = new Option('4 persons', '4');
				document.getElementById('persons').options[0] = new Option('1 or 2 persons', '1');
				document.getElementById('persons').options[1] = new Option('3 persons (or children)', '3');
			}
		}
	
		if (document.getElementById('tealeaf')) {
			document.getElementById('tealeaf').onclick = function() {
				updateAvailability(fromDay, fromMonth, fromYear);
				updateAvailability(toDay, toMonth, toYear);
				//fromDayOnChange();
				//toDayOnChange();
				//document.getElementById('persons').options[1] = new Option('3 persons', '3');
				//document.getElementById('persons').options[2] = new Option('4 persons', '4');
				document.getElementById('persons').options[0] = new Option('1 or 2 persons', '1');
				document.getElementById('persons').options[1] = new Option('3 persons (or children)', '3');

			}
		}
		
	}
}

function bookingFormsSubmit() {
	
	if (document.getElementById('availabilityForm')) {
		document.getElementById('availabilityForm').onsubmit = function() {
			
			var minimum = (document.getElementById('minimumNights')) ? 1 : 3;
			
			// toDate equals fromDate
			if (fromDay.options[fromDay.selectedIndex].value == toDay.options[toDay.selectedIndex].value && fromMonth.options[fromMonth.selectedIndex].value == toMonth.options[toMonth.selectedIndex].value && fromYear.options[fromYear.selectedIndex].value == toYear.options[toYear.selectedIndex].value) {
				alert('You entered an invalid date range (a stay of zero days)!');
				return false;
			}
			
			// unavailable check-in
			else if (fromDay.options[fromDay.selectedIndex].className == 'disabled') {
				alert('You selected an unavailable check-in date!');
				return false;
			}

			// unavailable check-out
			else if (toDay.options[toDay.selectedIndex].className == 'disabled') {
				alert('You selected an unavailable check-out date!');
				return false;
			}

			// 3 night minimum
			else if ((toDay.options[toDay.selectedIndex].value - fromDay.options[fromDay.selectedIndex].value < minimum) && (fromMonth.options[fromMonth.selectedIndex].value == toMonth.options[toMonth.selectedIndex].value && fromYear.options[fromYear.selectedIndex].value == toYear.options[toYear.selectedIndex].value)) {
				//alert('We require a minimum stay of ' + minimum + ' nights!');
				//return false;
			}
			
			// 	dates in the past
			else if ((fromDay.options[fromDay.selectedIndex].value < thisDay && fromMonth.options[fromMonth.selectedIndex].value <= thisMonth && fromYear.options[fromYear.selectedIndex].value <= thisYear) || (toDay.options[toDay.selectedIndex].value < thisDay && toMonth.options[toMonth.selectedIndex].value <= thisMonth && toYear.options[toYear.selectedIndex].value <= thisYear)) {
				alert('You entered an invalid date range (some dates you entered are in the past)!');
				return false;
			}
			
			// 	mandarin has room for 3 guests
			//else if (document.getElementById('mandarin').checked == true && document.getElementById('persons').options[document.getElementById('persons').selectedIndex].value != '1') {
			//	alert('Mandarin has room for only 2 persons!');
			//	document.getElementById('persons').options[0].selected = true;
			//	return false;
			//}
			
			else {
				return true;
			}
		};
	}
	
	if (document.getElementById('clientDataForm')) {
		document.getElementById('clientDataForm').onsubmit = function() {
			if (document.getElementById('client_firstname').value == '') {
				alert('You did not enter your first name!');
				document.getElementById('client_firstname').focus();
				return false;
			}
			else if (document.getElementById('client_lastname').value == '') {
				alert('You did not enter your last name!');
				document.getElementById('client_lastname').focus();
				return false;
			}
			else if (document.getElementById('client_email').value == '') {
				alert('You did not enter your email address!');
				document.getElementById('client_email').focus();
				return false;
			}
			else if (document.getElementById('client_address').value == '') {
				alert('You did not enter your home address!');
				document.getElementById('client_address').focus();
				return false;
			}
			else if (document.getElementById('client_zip').value == '') {
				alert('You did not enter your zip code!');
				document.getElementById('client_zip').focus();
				return false;
			}
			else if (document.getElementById('client_city').value == '') {
				alert('You did not enter your city!');
				document.getElementById('client_city').focus();
				return false;
			}
			else if (confirm('You are about to complete your booking! Please note: you cannot make any changes after this step! Are you sure you want to continue?')) {
				document.getElementById('submit').onclick = function() {
					alert('You already tried to submit this form!');
				};
				return true;
			}
		};
	}

}

function initCalendarHelpers() {

	if (window.XMLHttpRequest && document.getElementById('availabilityForm')) {
		
		var fromHelper = document.createElement('INPUT');
		fromHelper.setAttribute('id', 'fromCalendarHelper');
		fromHelper.setAttribute('type', 'button');
		fromHelper.setAttribute('value', '?');
	
		fromHelper.onclick = function() {
			toggleCalendarHelpers('from');
		};
		
		var target = document.getElementById('fromYear');
		target.parentNode.appendChild(fromHelper);
		
		var toHelper = document.createElement('INPUT');
		toHelper.setAttribute('id', 'toCalendarHelper');
		toHelper.setAttribute('type', 'button');
		toHelper.setAttribute('value', '?');
	
		toHelper.onclick = function() {
			toggleCalendarHelpers('to');
		};
		
		var target = document.getElementById('toYear');
		target.parentNode.appendChild(toHelper);
		
	}
	
}

function toggleCalendarHelpers(prefix) {

	if (document.getElementById(prefix + 'Calendar')) {
		var target = document.getElementById('page_bookingAvailability');
		var calendarContainer = document.getElementById(prefix + 'Calendar');	
		target.removeChild(calendarContainer);
	}
	
	else {

		var target = document.getElementById('page_bookingAvailability');
		
		if (document.all) {
			var selectElements = target.getElementsByTagName('SELECT');
			for (var i = 0; i < selectElements.length; i++) {
				selectElements[i].style.left = '-9999px';	
			}
		}
		
		if (document.getElementById((prefix == 'from' ? 'to' : 'from') + 'Calendar')) {
			var calendarContainer = document.getElementById((prefix == 'from' ? 'to' : 'from') + 'Calendar');	
			target.removeChild(calendarContainer);
		}

		initCalendar(prefix);
	}
	
}

function initCalendar(prefix) {

	var calendarContainer = document.createElement('DIV');
	calendarContainer.setAttribute('id', prefix + 'Calendar');

	var target = document.getElementById('page_bookingAvailability');	
	target.appendChild(calendarContainer);
	
	var myDoc = new XMLHttpRequest();
	myDoc.onreadystatechange = function() {
		if (myDoc.readyState != 4) {
			return;
		}
		if (myDoc.responseXML != null && myDoc.status == 200) {
			setInnerHTML(document.getElementById(prefix + 'Calendar'), myDoc.responseText + '<a id="close">close calendar</a>');
			setTimeout('initCalendarEvents(\'' + prefix + '\')', 10);
		}
	};
	
	var fromDate = document.getElementById('fromYear').value + '-' + document.getElementById('fromMonth').value + '-' + document.getElementById('fromDay').value;
	var month = document.getElementById(prefix + 'Month');
	var year = document.getElementById(prefix + 'Year');
	var mtid = document.getElementById('mtid');

	if (document.getElementById('mandarin').checked == true) {
		var apartment = 'mandarin';
	}
	
	if (document.getElementById('coral').checked == true) {
		var apartment = 'coral';
	}

	if (document.getElementById('tealeaf').checked == true) {
		var apartment = 'tealeaf';
	}
	
	myDoc.open('GET', 'http://www.prinsenhuis.nl/calendar.php?month=' + month.options[month.selectedIndex].value + '&year=' + year.options[year.selectedIndex].value + '&apartment=' + apartment + '&selectedFromDate=' + fromDate + (mtid ? '&mtid=' + mtid.value : ''), true);
	myDoc.send(null);
	
	return false;
	
}

function initCalendarEvents(prefix) {

	document.getElementById('previousMonth').onclick = 
	document.getElementById('nextMonth').onclick = function() {
		calendarLiveBrowsing(prefix, this);
	};
		
	document.getElementById('close').onclick = function(e) {
		
		var targetId = this.parentNode.getAttribute('id');
		if (targetId == 'fromCalendar' || targetId == 'toCalendar') {
		
			if (document.getElementById(targetId)) {
				var target = document.getElementById('page_bookingAvailability');
				var calendarContainer = document.getElementById(targetId);	
				target.removeChild(calendarContainer);
			}

			if (document.all) {
				var selectElements = target.getElementsByTagName('SELECT');
				for (var i = 0; i < selectElements.length; i++) {
					selectElements[i].style.left = 'auto';	
				}
			}
			
		}
		
	};

	var days = document.getElementById(prefix + 'Calendar').getElementsByTagName('TD');
		
	for (var i = 0; i < days.length; i++) {
	
		days[i].onmouseover = function() {
			if (this.className == '') {
				this.className = 'over';
			}
			else if (this.className == 'weekend') {
				this.className = 'weekendOver'			
			}
		};

		days[i].onmouseout = function() {
			if (this.className == 'over') {
				this.className = '';
			}
			else if (this.className == 'weekendOver') {
				this.className = 'weekend'			
			}
		};
	
		days[i].onclick = function() {
			setCalendarDate(prefix, this);
		}
		
	}

}

function calendarLiveBrowsing(prefix, element) {
	
	var id = element.getAttribute('id');
	var myDoc = new XMLHttpRequest();
	myDoc.onreadystatechange = function() {
		if (myDoc.readyState != 4) {
			return;
		}
		if (myDoc.responseXML != null && myDoc.status == 200) {
			setInnerHTML(document.getElementById(prefix + 'Calendar'), myDoc.responseText + '<a id="close">close calendar</a>');
			setTimeout('initCalendarEvents(\'' + prefix + '\')', 10);
		}
	};
	
	var data = document.getElementById(id).getAttribute('rel').split('/');
	var fromDate = document.getElementById('fromYear').value + '-' + document.getElementById('fromMonth').value + '-' + document.getElementById('fromDay').value;
	var mtid = document.getElementById('mtid');
	
	if (document.getElementById('mandarin').checked == true) {
		var apartment = 'mandarin';
	}
	
	if (document.getElementById('coral').checked == true) {
		var apartment = 'coral';
	}

	if (document.getElementById('tealeaf').checked == true) {
		var apartment = 'tealeaf';
	}

	myDoc.open('GET', 'http://www.prinsenhuis.nl/calendar.php?month=' + data[1] + '&year=' + data[0] + '&apartment=' + apartment + '&selectedFromDate=' + fromDate + (mtid ? '&mtid=' + mtid.value : ''), true);
	myDoc.send(null);
	
	return false;
	
}

function setCalendarDate(prefix, element) {

	if (element.className == 'over' || element.className == 'weekendOver') {
		var yearMonth = document.getElementById('calendar').getAttribute('rel').split('/');
			yearMonth[2] = element.firstChild.nodeValue;

		var target = document.getElementById('page_bookingAvailability');
		
		if (document.all) {
			var selectElements = target.getElementsByTagName('SELECT');
			
			for (var i = 0; i < selectElements.length; i++) {
				selectElements[i].style.left = 'auto';	
			}
		}

		var calendarContainer = document.getElementById(prefix + 'Calendar');	
		target.removeChild(calendarContainer);
		
		if (prefix == 'from') {
			document.getElementById('toYear').value = yearMonth[0];
			toYearOnChange();
			document.getElementById('toMonth').value = yearMonth[1];
			toMonthOnChange();
			document.getElementById('toDay').value = yearMonth[2];
			//toDayOnChange();
		}
		
		document.getElementById(prefix + 'Year').value = yearMonth[0];
		eval(prefix + 'YearOnChange()');
		document.getElementById(prefix + 'Month').value = yearMonth[1];
		eval(prefix + 'MonthOnChange()');
		document.getElementById(prefix + 'Day').value = yearMonth[2];
		//eval(prefix + 'DayOnChange()');

	
	}
	
}

function indexPreloader() {
	if (document.getElementById('page_language')) {
		preload('../layout/apartment_mandarin2.gif', '../layout/apartment_tealeaf2.gif', '../layout/apartment_coral2.gif', '../layout/apartment_taj2.gif', '../layout/coral_1.gif', '../layout/tealeaf_1.gif', '../layout/mandarin_1.gif', '../layout/balk-boven-met-logo.gif', '../layout/balk-met-logo.gif',  '../layout/map-groot.gif', '../layout/map-klein.gif', '../layout/nav_apartments_breadcrumb.gif', '../layout/nav_apartments_out.gif', '../layout/nav_apartments_over.gif', '../layout/nav_booking_breadcrumb.gif', '../layout/nav_booking_out.gif', '../layout/nav_booking_over.gif', '../layout/nav_contact-us_breadcrumb.gif', '../layout/nav_contact-us_out.gif', '../layout/nav_contact-us_over.gif', '../layout/nav_dutch_out.gif', '../layout/nav_dutch_over.gif', '../layout/nav_english_out.gif', '../layout/nav_english_over.gif', '../layout/nav_french_out.gif', '../layout/nav_french_over.gif', '../layout/nav_japanese_out.gif', '../layout/nav_japanese_over.gif', '../layout/nav_prices_breadcrumb.gif', '../layout/nav_prices_out.gif', '../layout/nav_prices_over.gif', '../layout/nav_prinsenhuis_out.gif', '../layout/nav_prinsenhuis_over.gif', '../layout/nav_russian_out.gif', '../layout/nav_russian_over.gif', '../layout/nav_services_breadcrumb.gif', '../layout/nav_services_out.gif', '../layout/nav_services_over.gif', '../layout/nav_spanish_out.gif', '../layout/nav_spanish_over.gif', '../layout/panorama-foto.gif');
	}
}

function preload() {
	for (var x = 0; x < preload.arguments.length; x++){
		images[x] = new Image();
		images[x].src = preload.arguments[x];
	}
}
		
function in_array(variable, theArray) {
	for (var i = 0; i < theArray.length; i++) {
		if (theArray[i] == variable)
			return true;
	}
	return false;
}

function updateAvailability(daySelecter, monthSelecter, yearSelecter) {

	if (availability) {
	
		if (document.getElementById('mandarin').checked == true) {
			var apartment = '0';
		}
		
		if (document.getElementById('coral').checked == true) {
			var apartment = '1';
		}
	
		if (document.getElementById('tealeaf').checked == true) {
			var apartment = '2';
		}
	
		for (var i = 1; i <= daySelecter.length; i++ ) {
			//daySelecter.options[i-1].disabled = false;
			daySelecter.options[i-1].className = '';
		}
	
		if (availability[apartment] && availability[apartment][yearSelecter.options[yearSelecter.selectedIndex].value] && availability[apartment][yearSelecter.options[yearSelecter.selectedIndex].value][monthSelecter.options[monthSelecter.selectedIndex].value]) {
	
			var unAvailableDates = availability[apartment][yearSelecter.options[yearSelecter.selectedIndex].value][monthSelecter.options[monthSelecter.selectedIndex].value];
			
			if (unAvailableDates != 'undefined') {
				for (var i = 1; i <= daySelecter.length; i++ ) {
					if (in_array(i, unAvailableDates)) {
						//daySelecter.options[i-1].disabled = true;
						daySelecter.options[i-1].className = 'disabled';
					}
				}
			}
			
		}
	
	}	
	
}

/*
function fromDayOnChange() {
	if (fromDay.options[fromDay.selectedIndex].disabled == true) {
		for (var i = 1; i <= fromDay.length; i++ ) {
			if (i == thisDay && fromDay.options[i].disabled == false) {
				fromDay.options[i-1].selected = true;
			}
			else {
				fromDay.options[0].selected = true;
			}
		}
	}
}
*/

function fromMonthOnChange(initial) {

	fromDay.options.length = 0;
	for (var i = 1; i <= monthDays[fromMonth.options[fromMonth.selectedIndex].value]; i++ ) {
		fromDay.options[fromDay.options.length] = new Option(i, i);
		if (initial == true && thisDay == i && thisMonth == fromMonth.value && thisYear == fromYear.value) {
			fromDay.options[fromDay.options.length-1].selected = true;
		}
	}
	
	updateAvailability(fromDay, fromMonth, fromYear);

}

function fromYearOnChange() {

	monthDays[2] = ((fromYear.options[fromYear.selectedIndex].value % 4 == 0) && (fromYear.options[fromYear.selectedIndex].value % 100 != 0)) || (fromYear.options[fromYear.selectedIndex].value % 400 == 0) ? '29' : '28';
	
	fromDay.options.length = 0;
	for (var i = 1; i <= monthDays[fromMonth.options[fromMonth.selectedIndex].value]; i++ ) {
		fromDay.options[fromDay.options.length] = new Option(i, i);
	}
	
	updateAvailability(fromDay, fromMonth, fromYear);

}

/*
function toDayOnChange() {
	if (toDay.options[toDay.selectedIndex].disabled == true) { //
		for (var i = 1; i <= toDay.length; i++ ) {
			if (i == thisDay+1 && toDay.options[i].disabled == false) {
				toDay.options[i-1].selected = true;
			}
			else {
				toDay.options[0].selected = true;
			}
		}
	}
}
*/

function toMonthOnChange(initial) {

	toDay.options.length = 0;
	for (var i = 1; i <= monthDays[toMonth.options[toMonth.selectedIndex].value]; i++ ) {
		toDay.options[toDay.options.length] = new Option(i, i);
		if (initial == true && thisDay == i && thisMonth == toMonth.value && thisYear == toYear.value) {
			toDay.options[toDay.options.length-1].selected = true;
		}
	}
	
	updateAvailability(toDay, toMonth, toYear);

}

function toYearOnChange() {

	monthDays[2] = ((toYear.options[toYear.selectedIndex].value % 4 == 0) && (toYear.options[toYear.selectedIndex].value % 100 != 0)) || (toYear.options[toYear.selectedIndex].value % 400 == 0) ? '29' : '28';
	
	toDay.options.length = 0;
	for (var i = 1; i <= monthDays[toMonth.options[toMonth.selectedIndex].value]; i++ ) {
		toDay.options[toDay.options.length] = new Option(i, i);
	}
	
	updateAvailability(toDay, toMonth, toYear);

}

function searchFromMonthOnChange() {

	searchFromDay.options.length = 0;
	for (var i = 1; i <= monthDays[searchFromMonth.options[searchFromMonth.selectedIndex].value]; i++ ) {
		searchFromDay.options[searchFromDay.options.length] = new Option(i, i);
	}

}

function searchFromYearOnChange() {

	monthDays[2] = ((searchFromYear.options[searchFromYear.selectedIndex].value % 4 == 0) && (searchFromYear.options[searchFromYear.selectedIndex].value % 100 != 0)) || (searchFromYear.options[searchFromYear.selectedIndex].value % 400 == 0) ? '29' : '28';
	
	searchFromDay.options.length = 0;
	for (var i = 1; i <= monthDays[searchFromMonth.options[searchFromMonth.selectedIndex].value]; i++ ) {
		searchFromDay.options[searchFromDay.options.length] = new Option(i, i);
	}

}

function searchToMonthOnChange() {

	searchToDay.options.length = 0;
	for (var i = 1; i <= monthDays[searchToMonth.options[searchToMonth.selectedIndex].value]; i++ ) {
		searchToDay.options[searchToDay.options.length] = new Option(i, i);
	}
	
}

function searchToYearOnChange() {

	monthDays[2] = ((searchToYear.options[searchToYear.selectedIndex].value % 4 == 0) && (searchToYear.options[searchToYear.selectedIndex].value % 100 != 0)) || (searchToYear.options[searchToYear.selectedIndex].value % 400 == 0) ? '29' : '28';
	
	searchToDay.options.length = 0;
	for (var i = 1; i <= monthDays[searchToMonth.options[searchToMonth.selectedIndex].value]; i++ ) {
		searchToDay.options[searchToDay.options.length] = new Option(i, i);
	}
	
}

function toggleCollapseHTML(id1, id2) {
	var span = document.getElementById(id2);
	var element = document.getElementById(id1);
	element.style.display == 'none' ? element.style.display = '' : element.style.display = 'none';
	element.style.display == 'none' ? setInnerHTML(span, '[+]') : setInnerHTML(span, '[-]');
}

function setInnerHTML(element, toValue) {
	if (typeof(element.innerHTML) != 'undefined') {
		element.innerHTML = toValue;
	}
	else {
		var range = document.createRange();
		range.selectNodeContents(element);
		range.deleteContents();
		element.appendChild(range.createContextualFragment(toValue));
	}
}
