

var elementToBeUpdatedByCalendar;
var nextElementToBeUpdatedByCalendar;
var firsElement;

/*
function showCalendar(id) {
	elementToBeUpdatedByCalendar = document.getElementById(id);
	if (!elementToBeUpdatedByCalendar) {
		return false;
	}

	var calendar = document.getElementById('calendar');
	if (!calendar) {
		calendar = document.createElement('div');
		calendar.id = 'calendar';
		calendar.style.position = 'absolute';
		calendar.style.display = 'none';
		document.body.insertBefore(calendar, document.body.childNodes[0]);
	}

	refreshCalendar(elementToBeUpdatedByCalendar.value);
}
*/
function showCalendar(id, nextId) {
	elementToBeUpdatedByCalendar = document.getElementById(id);
	
	if (!elementToBeUpdatedByCalendar) {
		return false;
	}
	if (id == 'hotel_search_start') {
		firsElement = 1;
		nextElementToBeUpdatedByCalendar = document.getElementById(nextId);
	} else {
		firsElement = 0;
	}

	var calendar = document.getElementById('calendar');
	if (!calendar) {
		calendar = document.createElement('div');
		calendar.id = 'calendar';
		calendar.style.position = 'absolute';
		calendar.style.display = 'none';
		document.body.insertBefore(calendar, document.body.childNodes[0]);
	}

	refreshCalendar(elementToBeUpdatedByCalendar.value);
}


function refreshCalendar(date) {
	if ($('#calendar').length == 0 || (!elementToBeUpdatedByCalendar)) { return false; }
	if (typeof(baseUrl) == 'undefined') {
		url = '/generate_calendar_inline.php';
	} else {
		url = baseUrl + 'generate_calendar_inline.php';
	}
	$('#calendar').load(url + '?date=' + date, function() {
		$('#calendar').css({
			left: findPosX(elementToBeUpdatedByCalendar) + 'px', 
			top: (findPosY(elementToBeUpdatedByCalendar) + elementToBeUpdatedByCalendar.offsetHeight) + 'px'
		}).show();
	});
}
/*
function selectCalendarDate(date) {
	hideCalendar();
	if (elementToBeUpdatedByCalendar) {
		elementToBeUpdatedByCalendar.value = date;
	}
	hideCalendar();
}
*/
function selectCalendarDate(date,next) {
	hideCalendar();
	if (elementToBeUpdatedByCalendar) {
		elementToBeUpdatedByCalendar.value = date;
		if ((firsElement) && (firsElement == 1)) {
			nextElementToBeUpdatedByCalendar.value = next;
		}
	}
	hideCalendar();
}


function hideCalendar() {
	$('#calendar').hide();
}

function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y)
		curtop += obj.y;
	return curtop;
}

