/************************************************************
* FUNCTION selectDate(form,startDate,datefieldName)			*
*															*
* formName =												*
*		name of form containing the dropdown				*
*															*
* startDate =												*
*		date in the format yyyy-mm-dd						*
*		used to set initial values of the dropdown			*
*		use '' to set dropdown to current date				*
*															*
* datefieldName =											*
*		name of field to hold the complete date				*
*															*
* USAGE =													*
*		call function anywhere in your HTML document		*
*		it will create 3 dropdowns ie.						*
*			- year											*
*			- month											*
*			- day											*
*		and a hidden field with the complete date			*
*			- datefield										*
*************************************************************/
function selectDate(formName,startDate,datefieldName)
{
	var now 			= new Date();
	var startYear		= now.getFullYear();
	var monthDays		= new Array();
	var selectedYear	= startYear;
	var selectedMonth	= now.getMonth()+1;
	var selectedDay		= now.getDate();
	var dateParts		= startDate.split('-');
	var datefield;		// yyyy-mm-dd
	
	if (startDate.length) {
		selectedYear	= dateParts[0]*1;
		selectedMonth	= dateParts[1]*1;
		selectedDay		= dateParts[2]*1;
	}
	
	datefield = ''+selectedYear+'-';
	if (selectedMonth < 10)
		datefield += '0';
	datefield += selectedMonth+'-';
	if (selectedDay < 10)
		datefield += '0';
	datefield += selectedDay;
	
	monthDays[0] = 31;
	
	if (startYear % 4 == 0)
		monthDays[1] = 29;
	else
		monthDays[1] = 28;
	
	monthDays[2] 	= 31;
	monthDays[3] 	= 30;
	monthDays[4] 	= 31;
	monthDays[5] 	= 30;
	monthDays[6] 	= 31;
	monthDays[7] 	= 31;
	monthDays[8] 	= 30;
	monthDays[9] 	= 31;
	monthDays[10] 	= 30;
	monthDays[11] 	= 31;
	
	// hidden field contains complete date
	document.write('<input class="date" type="hidden" name="'+datefieldName+'" value="'+datefield+'">');
	
	// years...
	document.write('<select class="date" name="year'+datefieldName+'" onchange="selectDateChange(\''+formName+'\',\''+datefieldName+'\')">');
		for (i=0; i<100; i++) {
			if (startYear-i == selectedYear)
				document.write('<option value="'+eval(startYear-i)+'" selected>'+eval(startYear-i)+'</option>');
			else
				document.write('<option value="'+eval(startYear-i)+'">'+eval(startYear-i)+'</option>');
		}
	document.write('</select>&nbsp;');
	
	// months...
	document.write('<select class="date" name="month'+datefieldName+'" onchange="selectDateChange(\''+formName+'\',\''+datefieldName+'\')">');
		for (i=0; i<12; i++) {
			if (i+1 == selectedMonth)
				document.write('<option value="'+eval(i+1)+'" selected>'+eval(i+1)+'</option>');
			else
				document.write('<option value="'+eval(i+1)+'">'+eval(i+1)+'</option>');
		}
	document.write('</select>&nbsp;');
	
	// days...
	document.write('<select class="date" name="day'+datefieldName+'" onchange="selectDateChange(\''+formName+'\',\''+datefieldName+'\')">');
		for (i=0; i<monthDays[selectedMonth-1]; i++) {
			if (i+1 == selectedDay)
				document.write('<option value="'+eval(i+1)+'" selected>'+eval(i+1)+'</option>');
			else
				document.write('<option value="'+eval(i+1)+'">'+eval(i+1)+'</option>');
		}
	document.write('</select>&nbsp;');
	//alert(document.forms[form].elements[datefieldName].value);
}

// called when the year or month changes
function selectDateChange(formName,datefieldName)
{
    var form            = document.getElementById(formName);
	var now 			= new Date();
	var startYear		= now.getFullYear();
	var selectedYear	= form.elements['year'+datefieldName].selectedIndex;
	var selectedMonth	= form.elements['month'+datefieldName].selectedIndex;
	var selectedDay		= form.elements['day'+datefieldName].selectedIndex;
	var monthDays		= new Array();
	
	// build complete datefield
	form.elements[datefieldName].value = ''+form.elements['year'+datefieldName].options[selectedYear].value+'-';
	if (selectedMonth < 9)
		form.elements[datefieldName].value += '0';
	form.elements[datefieldName].value += form.elements['month'+datefieldName].options[selectedMonth].value+'-';
	if (selectedDay < 9)
		form.elements[datefieldName].value += '0';
	form.elements[datefieldName].value += form.elements['day'+datefieldName].options[selectedDay].value;
	
	monthDays[0] = 31;
	
	// check for leap year
	if (form.elements['year'+datefieldName].options[selectedYear].value % 4 == 0)
		monthDays[1] = 29;
	else
		monthDays[1] = 28;
	
	monthDays[2] 	= 31;
	monthDays[3] 	= 30;
	monthDays[4] 	= 31;
	monthDays[5] 	= 30;
	monthDays[6] 	= 31;
	monthDays[7] 	= 31;
	monthDays[8] 	= 30;
	monthDays[9] 	= 31;
	monthDays[10] 	= 30;
	monthDays[11] 	= 31;
	
	form.elements['year'+datefieldName].options.length 	= 0;
	form.elements['month'+datefieldName].options.length	= 0;
	form.elements['day'+datefieldName].options.length	= 0;
	
	// years...
	for (i=0; i<100; i++) {
		form.elements['year'+datefieldName].options[i] = new Option(eval(startYear-i),eval(startYear-i));
		if (i == selectedYear)
			form.elements['year'+datefieldName].options[i].selected = true;
	}
	
	// months...
	for (i=0; i<12; i++) {
		form.elements['month'+datefieldName].options[i] = new Option(eval(i+1),eval(i+1));
		if (i == selectedMonth)
			form.elements['month'+datefieldName].options[i].selected = true;
	}
	
	// days...
	for (i=0; i<monthDays[selectedMonth]; i++) {
		form.elements['day'+datefieldName].options[i] = new Option(eval(i+1),eval(i+1));
		if (i == selectedDay)
			form.elements['day'+datefieldName].options[i].selected = true;
	}
}

function selectTime(formName,startTime,timefield)
{
    var selectedHour	= '00';
	var selectedMin		= '00';
	var timeparts		= startTime.split(':');
	var timevalue;		// hh:mm
	
	if (startTime.length) {
		selectedHour	= timeparts[0]*1;
		selectedMin		= timeparts[1]*1;
	}
	
	timevalue = selectedHour+':'+selectedMin+':00';
	
	// hidden field contains complete date
	document.write('<input class="date" type="hidden" name="'+timefield+'" value="'+timevalue+'">');
	
	// hours...
	document.write('<select class="date" name="'+timefield+'hours" onchange="selectTimeChange(\''+formName+'\',\''+timefield+'\')">');
		for (i=0; i<24; i++) {
			var val = i < 10 ? '0'+i : i;
			if (i == selectedHour)
				document.write('<option value="'+val+'" selected="selected">'+val+'</option>');
			else
				document.write('<option value="'+val+'">'+val+'</option>');
		}
	document.write('</select>:');
	
	// minutes...
	document.write('<select class="date" name="'+timefield+'minutes" onchange="selectTimeChange(\''+formName+'\',\''+timefield+'\')">');
		for (i=0; i<60; i++) {
			var val = i < 10 ? '0'+i : i;
			if (i == selectedMin)
				document.write('<option value="'+val+'" selected="selected">'+val+'</option>');
			else
				document.write('<option value="'+val+'">'+val+'</option>');
		}
	document.write('</select>&nbsp;');
}

function selectTimeChange(formName,timefield)
{
    var form            = document.getElementById(formName);
	var selectedHour	= form.elements[timefield+'hours'].selectedIndex;
	var selectedMin		= form.elements[timefield+'minutes'].selectedIndex;
	
	// build complete timefield
	form.elements[timefield].value = ''+form.elements[timefield+'hours'].options[selectedHour].value+':';
	form.elements[timefield].value += form.elements[timefield+'minutes'].options[selectedMin].value+':00';
}
