var debug = false;

if (debug) { alert("loading date_functions.js"); }

function TodayStr()
{
	var my_today = new Date()
	
	return my_today.toLocaleString()
}

function InvalidDateAlert()
{
	alert('javascriptDateFunctions::Invalid Date');
}

function IsEarlier(strDay1, strMonth1, strYear1, strDay2, strMonth2, strYear2)
{
	if (debug) { alert("checking earlier ..."); }
	
	if((strYear1 - '0') < (strYear2 - '0'))
	{
		if (debug) { alert("... earlier year ..."); }
		return true;
	}
	else if((strYear1 - '0') == (strYear2 - '0'))
	{
		if((strMonth1 - '0') < (strMonth2 - '0'))
		{
			if (debug) { alert("... same year earlier month ..."); }
			return true;
		}
		else if((strMonth1 - '0') == (strMonth2 - '0'))
		{
			if((strDay1 - '0') <= (strDay2 - '0'))
			{
				if (debug) { alert("... same year and month earlier day ..."); }
				return true;
			}
			else
			{
				if (debug) { alert("... not earlier fail day ..."); }
				return false;
			}
		}
		else
		{
			if (debug) { alert("... not earlier fail month ..." + strMonth1 + " v " + strMonth2); }
			return false;
		}
	}
	else
	{
		if (debug) { alert("... not earlier fail year ..."); }	
		return false;
	}
}

function LeapYear(intYear)
{
	var intTemp = intYear / 4;
	intTemp = intTemp * 4;
	var div4 = (intYear == intTemp);
	intTemp = intYear / 100;
	intTemp = intTemp * 100;
	var div100 = (intYear == intTemp);
	intTemp = intYear / 400;
	intYear = intYear * 400;
	var div400 = (intYear == intTemp);
	if(div4)
	{
		if(div400)
		{
			return true;
		}
		else if(div100)
		{
			return false;
		}
		else
		{	
			return true;
		}
	}
	return false;
}

function ValidateDate(dayStr, monthStr, yearStr)
{
	if (debug) { alert("validating a date ..."); }

	if((!ValidateNumericString(dayStr)) ||
	   (!ValidateNumericString(monthStr)) ||
	   (!ValidateNumericString(yearStr)))
	{
		return false;
	}
	else
	{	
		// test the ranges
		if((monthStr - '0')< 1 || (monthStr - '0') > 12 || (dayStr - '0') < 1)
		{
			return false;
		}
		if( ((monthStr - '0') == 4 ) ||
		    ((monthStr - '0') == 6 ) ||
		    ((monthStr - '0') == 9 ) ||
		    ((monthStr - '0') == 11))
		{
			if((dayStr - '0') > 30)
			{
			return false;
			}
		}
		else if( (monthStr - '0') == 2 )
		{
			if(LeapYear(yearStr - '0'))
			{
				if((dayStr - '0') > 29)
				{	
					return false;
				}
			}
			else
			{
				if((dayStr - '0') > 28)
				{	
					return false;
				}
			}	
		}
		else if((dayStr - '0') > 31)
		{
			return false;
		}
		
		// check for valid years, - this should get current date!
		dateVar = new Date();
		if((dateVar.getFullYear() < 1900))
		{
			return false;
		}
		/*
		alert(dateVar.getDate() + "  " + dateVar.getMonth());
		if( (yearStr - '0') > dateVar.getFullYear() )
		{
			return false;
		}
		else if( ( (yearStr - '0') == dateVar.getFullYear()) &&
			   ( (monthStr - '0') > (dateVar.getMonth() + 1)) )
		{
			return false;
		}
		else if( ( (yearStr -'0') == dateVar.getFullYear() ) &&
			   ( (monthStr - '0') == (dateVar.getMonth() + 1)) &&
			   ( (dayStr - '0') > (dateVar.getDate())) )
		{
			return false;
		}
		*/
		return true;
	}	
}