/*
 * Date Picker
 * Revision: 1.0.1
 */

// Open date picker window
function openDate(id) {
	openAthenaWindow(id+'-win');
	centerWindow(id+'-win');
}

// Click on a date
function setDate(id, day) {
	var month = document.getElementById(id+'-month').value;
	var year = document.getElementById(id+'-year').value;
	
	// Close the side-bar
	document.getElementById(id+'-sel').style.display = 'none';
	
	// Close the window, if any
	var el = document.getElementById(id+'-win');
	if (el) closeAthenaWindow(id+'-win');
	
	// Set the correlating edit box, if any
	el = document.getElementById('edit-'+id);
	if (el) el.value = year + '-' + month + '-' + day;

	// Set the friendly string box, if any
	el = document.getElementById('edit-'+id+'-friendly');
	if (el) {
		var d = new Date();
		d.setYear(year);
		d.setMonth(month-1);
		d.setDate(day);
		if (el.tagName == 'input') {
			el.value = d.toLocaleDateString();
		} else {
			el.innerHTML = d.toLocaleDateString();
		}
	}
	frmChange();
}

// Set a date as today
function setDateToday(id) {
	var d = new Date();
	setYear(id, d.getFullYear());
	setMonth(id, d.getMonth()+1);
	setDate(id, d.getDate());
}

// Open or close the month/year picker
function toggleSel(id) {
	var el = document.getElementById(id+'-sel');
	if (!el) return;
	if (el.style.display == 'table') {
		el.style.display = 'none';
	} else {
		el.style.display = 'table';
	}
}

function setMonth(id, month) {
	var el = document.getElementById(id+'-month');
	if (!el) return;
	el.value = month;
	updateDateTable(id);
}

function setYear(id, year) {
	var el = document.getElementById(id+'-year');
	if (!el) return;
	el.value = year;
	updateDateTable(id);
}

// Make an AJAX call to redraw the table
function updateDateTable(id, day) {
	// To avoid having to transport the table name back from the server query, we'll run a private AJAX query
	var ajaxObj = initAjax();
	if (ajaxObj == null) return false;
	if (typeof(day) == "undefined") day = 1;

    ajaxObj.onreadystatechange = function() {
		if (!ajaxReady(ajaxObj)) return;
		if (ajaxObj.status >= 400) {
			alert('(AJAX Error) Server returned ' + ajaxObj.status + ' ' + ajaxObj.statusText);
		} else {
			document.getElementById(id).innerHTML = ajaxObj.responseText;
		}
    }
	
	ajaxObj.open("GET", '/_std.ajax?action=12&id='+id.urlSafe()+'&year='+document.getElementById(id+'-year').value+'&month='+document.getElementById(id+'-month').value + '&day='+day, true);
	ajaxObj.send(null);
}

