function field_withexample_focus(el,defaultValue){
	if(el.value==defaultValue){
		el.value='';
	}
	el.className='textfield_active'
}
function field_withexample_blur(el,defaultValue){
	if(el.value==''){
		el.className='textfield_inactive';
		el.value=defaultValue;
	}
	if(el.value==defaultValue){
		// make field inactive if default value was manually filled in just to be totally sure:
		el.className='textfield_inactive';
	}
}
function ajax_room_availability(form_id){
	new Ajax.Updater('availability','/actions/ajax_room_availability.php?'+Form.serialize($(form_id)));
}
function toggle_visibility(prefix,expand_element_id,elements){
	// This function toggles the extended <select> elements (used in particular for arrival info).
	
	// Walk through all the elements and switch to expand_elementID:
	for(i=0; i < elements.length; i++){
		
		// Load the element with it's id that is formed with the prefix + name of current element:
		var treat_element = $(prefix + elements[i]);
		
		// When some <select> elements don't have expandable content, there will not be an element
		// to treat, so we should skip to the next (possible) element:
		if(!treat_element) continue;
		
		if(treat_element.id == expand_element_id){
			new Effect.BlindDown(treat_element.id);
		}
		else {
			new Effect.BlindUp(treat_element.id);
		}
	}
}
/* other functions */

var months = [			
	['Jan','Januari'],
	['Feb','Februari'],
	['Mar','Maart'],
	['Apr','April'],
	['Mei','Mei'],
	['Jun','Juni'],
	['Jul','Juli'],
	['Aug','Augustus'],
	['Sep','September'],
	['Okt','Oktober'],
	['Nov','November'],
	['Dec','December']];

function fillDataSelector(id, fullMonthNames, addDays)
{
	var now = new Date();
	var start = new Date(now.getTime() + addDays * 3600 * 24 * 1000);
	var year = now.getFullYear();
	var month = now.getMonth();
	var selector = document.getElementById(id);
	for (c = 0; c < 12; c++) {
		var value = String(year) + String(month<9 ? "0" : "") + String(month + 1);
		var name = months[month][fullMonthNames ? 1:0] + " " + year;
		selector[c] = new Option(name, value);
		if (++month >= 12) {
			month = 0;
			year++;
		}
	}
	selector.selectedIndex = start.getYear() > now.getYear() ? 1 : (start.getMonth() > now.getMonth() ? 1 : 0);
}

function fillDaySelector(idDay, addDays)
{
	var daySelector = document.getElementById(idDay);
	var index = 0;
	for (var c = 1; c <= 31; c++)
	{
		var value = String(c<=9 ? "0" : "") + String(c);
		daySelector.options[index++] = new Option(c, value);
	}	
}

function setDay(idDay, addDays)
{
	var start = new Date(new Date().getTime() + addDays * 3600 * 24 * 1000);
	document.getElementById(idDay).selectedIndex = start.getDate() - 1;
}

function checkDepDate(dep_date, dep_month, ret_date, ret_month)
{
	var dds = document.getElementById(dep_date);
	var rds = document.getElementById(ret_date);
	var dms = document.getElementById(dep_month);
	var rms = document.getElementById(ret_month);
	if (dms.selectedIndex > rms.selectedIndex ||
		(dms.selectedIndex == rms.selectedIndex && dds.selectedIndex > rds.selectedIndex))
		{
			rms.selectedIndex = dms.selectedIndex;
			rds.selectedIndex = dds.selectedIndex;
		}	
}


/* calendar functions */
var type = '';
var days = ['Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za', 'Zo'];

function showCalendar(depret, txt) {
	top.type = depret;
	var container = document.getElementById('calendarcontainer');
	var header = document.getElementById('calendartop');
	header.innerHTML = txt; 
	if (document.all) {
		var entries = document.getElementsByTagName('select');
		for (var i = 0; i < entries.length; i++) {
			if (entries[i].className == 'cal_hide') {
				entries[i].style.display = 'none';
			}
		}
	}
	var index = document.getElementById(depret + '[month]').options.selectedIndex;
	document.getElementById('calendarmonth').options.selectedIndex = index;
	updateMonth(document.getElementById(depret + '[month]').options[index].value, index);
	container.style.display = 'block';
}
function fill(type, day, month) {
	closeCalendar();
	document.getElementById(type + '[month]').options.selectedIndex = month;
	fillDaySelector(type + '[day]', type + '[month]');
	document.getElementById(type + '[day]').options.selectedIndex = day;
	if (type == 'start')
		checkDepDate('start[day]', 'start[month]', 'end[day]', 'end[month]');
}
function closeCalendar () {
	var container = document.getElementById('calendarcontainer');
	if (document.all) {
		var entries = document.getElementsByTagName('select');
		for (var i = 0; i < entries.length; i++) {
			if (entries[i].className == 'cal_hide') {
				entries[i].style.display = 'block';
			}
		}
	}
	container.style.display = 'none';
}
function updateMonth(monthyear, selection) {
	var month = monthyear.substr(4,2);
	var year = monthyear.substr(0,4);
	var noOfDays = getNumberOfDays(month, year);
	var firstDay = getFirstDay(month, year);
	fillMonth(month, firstDay, noOfDays, selection);
}
function getNumberOfDays(m, y) {
	var days = 31;
	switch (parseInt(m, 10)) {
		case 4: case 6: case 9: case 11:
			days = 30;
			break;
		case 2:
		  if ((y % 4 == 0) ^ (y % 100 == 0) ^ (y % 400 == 0))
			days = 29;
		  else
			days = 28;
		  break;
	}
	return days;
}
function getFirstDay(m, y) {
	d = new Date();
	d.setYear(y);
	d.setMonth(m-1);
	d.setDate(1);
	d.setHours(12);
	return (d.getDay() - 1 >= 0 ? d.getDay() - 1 : d.getDay() + 6);
}
function fillMonth(month, firstDay, noOfDays, monthIndex) {
	var firstSet = false;
	var dayCounter = 1;
	var today = new Date();
	dateToday = today.getDate();
	monthToday = today.getMonth() + 1;
	var sHTML = '<table cellspacing="0"><tr class="head">'
	for (var i = 0; i < days.length; i ++) {
		sHTML += '<td>' + days[i] + '</td>\n';
	}
	sHTML += '</tr>';
	while (dayCounter <= noOfDays) {
		sHTML += '<tr>';
		for (i = 0; i < 7; i++) {
			if (!firstSet && i < firstDay) {
				sHTML += '<td>&nbsp;</td>\n';
			} else {
				firstSet = true;
				if (dayCounter <= noOfDays) {
					if ((monthToday == month) && (dayCounter < dateToday)) {
						sHTML += '<td>' + dayCounter + '</td>\n';
					} else {
						sHTML += '<td><a href="javascript:fill(top.type, ' + (dayCounter-1) + ' , ' + monthIndex + ');">' + dayCounter + '</a></td>\n';
					}

				} else {
					sHTML += '<td>&nbsp;</td>\n';
				}
				dayCounter++;
			}
		}
		sHTML += '</tr>'
	}
	sHTML += '</table>';
	document.getElementById('monthtable').innerHTML = sHTML;
}



