var dateSeparator		= '?';
var timeSeparator		= '|';
var dateInlineSeparator	= ' ';
var selectTimeString	= 'Select time';

function onDateChange(y,m,d, dateTimeHiddenId, dateTimeValuesId, dateHiddenId, timeDropDownId)
{
	var oDateTimeHidden = document.getElementById(dateTimeHiddenId);

	oDateTimeHidden.value = '';

	// date time string in a date1|time1|time2|time3?date2|time1|time2 format
	var datesString = document.getElementById(dateTimeValuesId).value;

	var oDateHidden = document.getElementById(dateHiddenId);

	oDateHidden.value = y + '/' + m + '/' + d;

	initializeTimeSelect(timeDropDownId, dateTimeHiddenId);

	var datesArr = datesString.split(dateSeparator);

	for (var i = 0; i < datesArr.length; i++)
	{
		var timesArr = datesArr[i].split(timeSeparator);
		
		var date = timesArr[0].split(dateInlineSeparator);

		if ((date[0] == y) && (date[1] == m) && (date[2] == d))
		{
			fillListWithTime(timesArr, timeDropDownId);
			return;
		}
	}
}

function initializeTimeSelect(timeDropDownId, dateTimeHiddenId)
{
	var oSelect = document.getElementById(timeDropDownId);

	var length = oSelect.length;

	for(i=0 ; i < length ; ++i)
	{
		oSelect.remove(0);
	}

	addOption(oSelect, selectTimeString, 'null');

	var oDateTimeHidden = document.getElementById(dateTimeHiddenId);
	oDateTimeHidden.value = '';
}

function fillListWithTime(timesArr, timeDropDownId)
{
	var oSelect = document.getElementById(timeDropDownId);

	// start from the second element as the first one is date (and only time is needed)
	for (var i = 1; i < timesArr.length; i++)
	{
		if (timesArr[i] != '')
			addOption(oSelect, timesArr[i], timesArr[i]);
	}
}

function addOption(theSel, theText, theValue)
{
	var newOpt = new Option(theText, theValue);
	var selLength = theSel.length;
	theSel.options[selLength] = newOpt;
}

function onTimeChange(dateTimeHiddenId, timeDropDownId, dateHiddenId)
{
	var oDateTimeHidden = document.getElementById(dateTimeHiddenId);
	var oSelect = document.getElementById(timeDropDownId);

	var selectedDate = document.getElementById(dateHiddenId).value;

	if (oSelect.value != 'null')
		oDateTimeHidden.value = selectedDate + ' ' + oSelect.value;
	else
		oDateTimeHidden.value = '';
}