// function to check a valid date
//------------------------------------------------------------------------------
var lsDateIn="", lsMonthIn ="", lsYearIn="" //local variables

function IsDate(asDateStringIn){ //return error message
	if (!ValidDateFormat(asDateStringIn)) return "Invalid Format";

	if (!GetDateMonthYear(asDateStringIn)) return "Data Missing...";
	var dDate = new Date(lsYearIn,lsMonthIn-1,lsDateIn);

	var sDateStringOut = dDate.getFullYear() + "\/" + (dDate.getMonth()+ 1) + "\/" + dDate.getDate();
	var sDateStringIn = lsYearIn + "\/" + lsMonthIn + "\/" + lsDateIn ;
	if (sDateStringOut != sDateStringIn) return "Out Of Range" ;
	return "";
}

function ValidDateFormat(asDateStringIn){
	opatternDateFormat = /^(\d{4}\/\d{1,2}\/\d{1,2})$/; // mm/dd/yyyy 
	return opatternDateFormat.test(asDateStringIn);
}

function GetDateMonthYear (asDateStringIn){
	var yDateString = asDateStringIn.split("/");
	if (yDateString.length != 3 ) return false;
	
	lsYearIn = yDateString[0];
	lsMonthIn = parseInt(yDateString[1], 10);
	lsDateIn = parseInt(yDateString[2], 10);
	return true;
}
//------------------------------------------------------------------------------

//function to check a valid time
//------------------------------------------------------------------------------
var lsHourIn = "", lsMinuteIn = "", lsSecondIn = "";

function IsTime(asTimeStringIn){ //return error message
	if (!ValidTimeFormat(asTimeStringIn)) return "Invalid Format";

	if (!GetHourMinuteSecond(asTimeStringIn)) return "Data Missing...";
	
	if ((lsHourIn > 23) || (lsHourIn < 0)) return "Out Of Range" ;
	if ((lsMinuteIn > 59) || (lsMinuteIn < 0)) return "Out Of Range" ;
	if ((lsSecondIn > 59) || (lsSecondIn < 0)) return "Out Of Range" ;
	return "";
}

function ValidTimeFormat(asTimeStringIn){
	opatternTimeFormat = /^(\d{2}:\d{2}|\d{2}:\d{2}:\d{2})$/; // 00:00 or 00:00:00
	return opatternTimeFormat.test(asTimeStringIn);
}

function GetHourMinuteSecond (asTimeStringIn){
	var yTimeString = asTimeStringIn.split(":");
	if (yTimeString.length == 2) {
		lsHourIn = parseInt(yTimeString[0], 10);
		lsMinuteIn = parseInt(yTimeString[1], 10);
		lsSecondIn = 0;
		return true
		}
	if (yTimeString.length == 3) {
		lsHourIn = parseInt(yTimeString[0], 10);
		lsMinuteIn = parseInt(yTimeString[1], 10);
		lsSecondIn = parseInt(yTimeString[2], 10);
		return true
		}
	return false;
}

//------------------------------------------------------------------------------
