var monthDaysCount = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function isValidMonthYear(hidden_input_name, suffix)
{
	var month = document.getElementById("month" + suffix);
	var year = document.getElementById("year" + suffix);

	if (month.value == "")
	{
		alert("Month is required\t");
		month.focus();
		return false;
	}
	if (year.value == "")
	{
		alert("Year is required\t");
		year.focus();
		return false;
	}

	var d = "01";
	var m = month.value;
	var y = year.value;

	m = (m.length == 1) ? ("0" + m) : m;
	var result_date = y + "-" + m + "-" + d;

	document.getElementById(hidden_input_name).value = result_date;

	return true;
}

function isValidDayMonthYear(hidden_input_name, suffix)
{
	var day = document.getElementById("day" + suffix);
	var month = document.getElementById("month" + suffix);
	var year = document.getElementById("year" + suffix);

	if (day.value == "")
	{
		alert("Day is required\t");
		day.focus();
		return false;
	}
	if (month.value == "")
	{
		alert("Month is required\t");
		month.focus();
		return false;
	}
	if (year.value == "")
	{
		alert("Year is required\t");
		year.focus();
		return false;
	}

	var d = day.value;
	var m = month.value;
	var y = year.value;

	var dayIntVal = parseInt(d, 10);
	var monthIntVal = parseInt(m, 10) - 1;
	var yearIntVal = parseInt(y, 10);

	// february in a leap year?
	if (isLeapYear(yearIntVal) && (monthIntVal == 1))
	{
		if (dayIntVal > 29)
		{
			alert("Invalid date.\r\nChoosen month has 29 days.");
			day.focus();
			return false;
		}
	}
	else
	{
		if (dayIntVal > parseInt(monthDaysCount[monthIntVal], 10))
		{
			alert("Invalid date.\r\nChoosen month has " + monthDaysCount[monthIntVal] + " days.");
			day.focus();
			return false;
		}
	}

	m = (m.length == 1) ? ("0" + m) : m;
	d = (d.length == 1) ? ("0" + d) : d;
	var result_date = y + "-" + m + "-" + d;

	document.getElementById(hidden_input_name).value = result_date;

	return true;
}

function isLeapYear(year)
{
	if (((0 == (year % 4)) && ((0 != (year % 100)) || (0 == (year % 400)))))
	{
		return true;
	}
	return false;
}

function isValidTime(hidden_input_name, suffix)
{
	var hour = document.getElementById("hour" + suffix);
	var min = document.getElementById("min" + suffix);

	if (hour.value == "")
	{
		alert("Hour is required\t");
		hour.focus();
		return false;
	}
	if (min.value == "")
	{
		alert("Minutes is required\t");
		min.focus();
		return false;
	}

	var hourVal = (hour.value.length == 1) ? ("0" + hour.value) : hour.value;
	var minVal = (min.value.length == 1) ? ("0" + min.value) : min.value;

	document.getElementById(hidden_input_name).value = hourVal + ":" + minVal;

	return true;
}

