var dateField = false;
var calendarDiv = document.createElement('div');

function setDate(e) {
	if (window.event) obj = window.event.srcElement; else obj = e.target;
	dt = obj.href.split('/');
	dt = dt[dt.length - 3] + '/' + dt[dt.length - 2] + '/' + dt[dt.length - 1];
	dateField.value = dt;

	if (obj.title == '') {
		calendarDiv.style.display = 'none';
	} else {
		showCalendar(false);
	}
	return false;
}
function initCalendar(response) {
	obj = calendarDiv;
	obj.innerHTML = response;
	list = obj.getElementsByTagName('a');
	for (i = 0; i <= list.length - 1; i++) {
		if (list[i].title == 'Close') {
			list[i].onclick = function() {
				calendarDiv.style.display = 'none';
				return false;
			}
		} else {
			list[i].onclick = setDate;
		}
	}

	return true;
}
function getElementPosition(obj) {
    var left = 0;
    var top = 0;
    while(obj) {
        left += obj.offsetLeft;
        top += obj.offsetTop;
        obj = obj.offsetParent;
    }
    return {'left':left, 'top':top};
}
function getDateField(link) {
	for (i = 0; i <= document.forms.length - 1; i++) {
		if (document.forms[i].elements[link.id])
			return document.forms[i].elements[link.id];
	}
	return false;
}
function showCalendar(link) {
	if (dateField.name == link.id) {
		calendarDiv.style.display = 'block';
		return false;
	}
	obj = calendarDiv;
	if (document.body.lastChild.id != 'calendarDiv') {
		obj.setAttribute('id', 'calendarDiv');
		obj.style.position = 'absolute';
		document.body.appendChild(obj);
	}

	block = 'block';
	if (link) {
		dateField = getDateField(link);
		if (obj.style.display == 'block') block = 'none';
		link = getElementPosition(link);
		if (link.left > 180) obj.style.left = link.left - 180;
		obj.style.top = link.top + 22;
	}
	obj.style.display = block;

	getRequest('/cal/calendar.php?now=' + dateField.value, 'initCalendar(req.responseText);');
	return false;
}
