/*	Added 28 feb '06: (copied from /b/f/reservation_form.php) */

function reservation_update_room_type(room_type_i,room_type_id,start,end){
	ajax_reservation_update_price_for_room_type(room_type_i,room_type_id,start,end);
}
function ajax_reservation_update_price_for_room_type(room_type_i,room_type_id,start,end){
	new Ajax.Updater('rooms['+room_type_i+']['+room_type_id+'][price]','/actions/ajax_reservation_update_price_for_room_type.php?room_type_i='+room_type_i+'&start='+start+'&end='+end+'&'+Form.serialize($('reservation_form')),{evalScripts:true});
}
/*
function update_room_types(){
	if(confirm('Kamer types inladen voor dit hotel\n\nDit vervangt de geselecteerde kamertypes met soortgelijke kamers van het nieuwgekozen hotel.\nProvisie en aanbetaling worden opnieuw uitgerekend.\n\nWeet je dit zeker?\n\nAls je Annuleert, dan wordt de provisie mogelijk niet goed berekend.')){
		new Effect.Appear($('room_types_loading'))
		new Ajax.Updater('room_types','/actions/reservation_form_room_types.php?'+Form.serialize($('form')),{asynchronous:true, evalScripts:true});
		setTimeout("new Effect.Fade($('room_types_loading'))",5000);
	}
	return false;
}*/
function update_room_types_price_total(){
	trs = $('room_types').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
	sum = 0;
	calculation = "";
	for(i=0;i<trs.length;i++){
		if(parseFloat($F(trs[i].getElementsByTagName('select')[0]))>0){
			price = trs[i].getElementsByTagName('span')[0].innerHTML;
			sum += parseFloat(price);
			selectbox = $(trs[i].getElementsByTagName('select')[0]);
		}
	}
	$('rooms[priceTotal]').innerHTML = sum.toFixed(2);
}

/*	end added 28 feb '06 */

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(pre,elementID,els){
	// This function toggles the extended <select> elements (used in particular for arrival info).
	
	var numElements = els.length;
	
	for(i=0;i<numElements;i++){
	//	alert(els[i]);
		elid = pre+els[i];
		//	if(i < 1) alert(pre +' '+elementID +' '+ elid);

		if(elid == elementID){
			new Effect.BlindDown($(elid));
		}
		else {
			new Effect.BlindUp($(elid));

		}
		/* Pre-Prototype code: (disabled on January 9, 2006)
		if(document.getElementById){
			if(document.getElementById(elid) != null) {
				if(elid == elementID){
					document.getElementById(elid).style.visibility='visible';
					document.getElementById(elid).style.overflow='visible';
					document.getElementById(elid).style.display = 'block';
					//document.getElementById(elementID).style.height = 100;
				}
				else {
					document.getElementById(elid).style.visibility='hidden';
					document.getElementById(elid).style.overflow='hidden';
					document.getElementById(elid).style.display = 'none';
				}
			}
			//	alert(elementID);
		}
		else if (document.layers){
			if(document.layers[elid] != null) {
				if(elid == elementID){
					document.layers[elid].style.visibility='visible';
					document.layers[elid].style.overflow='visible';
					document.layers[elid].style.display = 'block';
				}
				else {
					document.layers[elid].style.visibility='hidden';
					document.layers[elid].style.overflow='hidden';
					document.layers[elid].style.display = 'none';
				}
			}
		}
		else if (document.all) {
			if(document.all[elid] != null) {
				if(elid == elementID){
					document.all[elid].style.visibility='visible';
					document.all[elid].style.overflow='visible';
					document.all[elid].style.display = 'block';
				}
				else {
					document.all[elid].style.visibility='hidden';
					document.all[elid].style.overflow='hidden';
					document.all[elid].style.display = 'none';
				}
			}
		}
		*/
	}
}
/* 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;
}



