function dateValidation_initExec(){
	dateText 	= new Object();
	datePrefs	= new Object();
	captureDateText(dateText);
}
function setDate( dayControlName, monthControlName, date_str )
{
	var mon			= date_str.substr(0,6);
	var day			= date_str.substr(6,2);
	var day_elem	= eval ('document.skylightsForm.' + dayControlName);
	var mon_elem	= eval ('document.skylightsForm.' + monthControlName);
	mon_elem.value = mon;
	day_elem.value = day;
}
function captureDateString( dayControlName, monthControlName )
{
	var dateArray	= captureDateArray( dayControlName, monthControlName );
	var date_string	= new String( dateArray[0] + dateArray[1] + dateArray[2] );
	return date_string;
}
function captureDateArray( dayControlName, monthControlName )
{
	var day_elem	= eval ('document.skylightsForm.' + dayControlName);
	var mon_elem	= eval ('document.skylightsForm.' + monthControlName);
	var dateArray	= [];
	dateArray[0]	= mon_elem.value.substr(0,4);
	dateArray[1]	= mon_elem.value.substr(4,2);
	dateArray[2]	= day_elem.value;
	return dateArray;
}
function isLeapYear(year)
{
	return ( year % 4 == 0 && ( year % 100 != 0 || year % 400 == 0 ) );
}
function numDays(month,year)
{
	var leapYear 	= isLeapYear(year);
	var days		= 31;
	if ( month == 2 && days > 29 && leapYear )
	{
		days		= 29;
	}
	else if ( month == 2 && days > 28 && !leapYear)
	{
		days		= 28;
	}
	else if ( month == 4 || month == 6 || month == 9 || month == 11 )
	{
		days		= 30;
	}
	return days;
}
function isDateValid(day,month,year)
{
	var okay = true;
	var leapYear = isLeapYear(year);
	if (day > numDays(month, year))
	{
		okay = false;
	}
	return okay;
}
function checkCalendarDate(day,month,year,errorMsg)
{
	var okay = true;
	if (!isDateValid(day, month, year))
	{
		if (errorMsg != '')
		{
			alert(errorMsg);
		}
		okay = false;
	}
	return okay;
}
function validateCalendarDate(dayControlName, monthControlName, showError, resetDay)
{
	var okay 			= true;
	var dateArray		= captureDateArray(dayControlName, monthControlName);
	var day				= dateArray[2];
	var month			= dateArray[1];
	var year			= dateArray[0];
	if (!isDateValid(day, month, year))
	{
		var maxDays = numDays(month, year);
		if (showError)
		{
			formattedError = eval( "dateText.invalid" + dayControlName ) +
								dateText.months[month-1] +
								dateText.invalidMonthHasOnly + maxDays +
								dateText.invalidMonthHasOnlyDays;
			alert(formattedError);
		}
		if (resetDay)
		{
			var dayControl	= eval ('document.skylightsForm.' + dayControlName);
			dayControl.selectedIndex = maxDays - 1;
		}
		okay = false;
	}
	return okay;
}
function validateFutureDate(dayControlName, monthControlName, beginDate, showError, resetDay)
{
	var okay 			= true;
	var beginDateString		= new String (beginDate);
	var departDateString	= captureDateString(dayControlName, monthControlName);
	if ( departDateString < beginDateString )
	{
		if (showError)
		{
			alert( dateText.departDatePast );
		}
		if (resetDay)
		{
			setDate( dayControlName, monthControlName, beginDateString );
		}
		okay		= false;
	}
	return okay;
}
function validateSameDate(dayControlName1, monthControlName1, dayControlName2, monthControlName2, showError)
{
	var okay 			= true;
	var firstDateString		= new String (captureDateString(dayControlName1, monthControlName1));
	var secondDateString		= new String (captureDateString(dayControlName2, monthControlName2));
	if ( firstDateString.toString() != secondDateString.toString() )
	{
		if (showError)
		{
			alert( 	dateText.datesNotSameDate );
		}
		okay		= false;
	}
	return okay;
}
function validateFutureTime(timeValue1, timeValue2, showError)
{
	var okay 			= true;	
	if ( timeValue2 <= timeValue1 )
	{
		if (showError)
		{
			alert( 	dateText.datesNotFutureTime );
		}
		okay		= false;
	}
	return okay;
}
function validateDateOverlap(dayControlName1, monthControlName1, dayControlName2, monthControlName2, showError, resetDate)
{
	var okay 			= true;
	var firstDateString		= captureDateString(dayControlName1, monthControlName1);
	var secondDateString	= captureDateString(dayControlName2, monthControlName2);
	if ( firstDateString > secondDateString )
	{
		if (showError)
		{
			alert( 	dateText.datesOverlap1 + dateText.datesOverlapReturn +
					dateText.datesOverlap2 + dateText.datesOverlapDepart +
					dateText.datesOverlap3 + dateText.datesOverlapReturn );
		}
		if (resetDate)
		{
			setDate( dayControlName2, monthControlName2, firstDateString );
			document.getElementById('displayDate2').value = document.getElementById('displayDate1').value;
		}
		okay = false;
	}
	return okay;
}
function getTodayString()
{
	var d = new Date();
	var hoy	= "" + d.getFullYear();
	
	var temp = d.getMonth() + 1;
	if ( temp < 10 ) temp = "0" + temp;
	hoy	= hoy + temp;
	
	temp = d.getDate();
	if ( temp < 10 ) temp = "0" + temp;
	hoy = hoy + temp;	
	
	return hoy;
}
