// Methods in this file uses datejs.

/*
 * Returns a javascript Date object represented by pass string. Supports the following format:
 * "ddMMM", "dd/MM/yy", "dd/MM", "ddMMyy", "ddMM", "ddMMMyy"
 */
function parseDate(inDateString)
{
	var newDateString = inDateString;

	if (inDateString.length > 5)
	{
		if (inDateString.charAt(inDateString.length-3) != '/')
			newDateString = inDateString.substring(0, inDateString.length-2).concat('/').concat(inDateString.substring(inDateString.length-2, inDateString.length));

	}
	if (inDateString.charAt(2) != '/')
		newDateString = newDateString.substring(0,2).concat('/').concat(newDateString.substring(2, newDateString.length));

	return(Date.parse(newDateString));
}

/*
 * Determine whether the inDateString is inclusively between the inStartDateString and inEndDateString.
 * Returns false if the inDateString is null or an invalid date.
 */
function inDateInRange(inDateString, inStartDateString, inEndDateString)
{
	if (!inDateString)
		return(false);

	var compareDate = parseDate(inDateString);
	if (!compareDate)
		return(false);

	var startDate = inStartDateString ? parseDate(inStartDateString) : null;
	var endDate = inEndDateString ? parseDate(inEndDateString) : null;

	if (!startDate && !endDate)
		return(true);

	if (startDate && endDate)
		return(compareDate.between(startDate, endDate));

	if (startDate)
		return(compareDate.compareTo(startDate) != -1);

	return(compareDate.compareTo(endDate) != 1);
}