//DATE FUNCTIONS-------------------------------------------------------------
function y2k(number)
{ 
	return (number < 1000) ? number + 1900 : number;
}

function changeDays(MonthObject,DayObject)
{
	var selectedValue=DayObject.selectedIndex;
	var tempDate=new Date(2000,MonthObject.selectedIndex-(MonthObject.length-12),27);
	var DaysInMonth=27;
	while(tempDate.getMonth() == MonthObject.selectedIndex-(MonthObject.length-12))
	{
		DaysInMonth++;
		tempDate=new Date(2000,MonthObject.selectedIndex-(MonthObject.length-12),DaysInMonth+1);
	}
	if (DaysInMonth==28)
		DaysInMonth=29;
	if (selectedValue > DaysInMonth)
		selectedValue = DaysInMonth;
	for (var i=31; i > 1; i--) {
		DayObject.options[i]=null;
	}
	for (var i=1; i < 31; i++) {
		DayObject.options[i]=null;
	}
	var tempOption=new Option();
	for (var i=1+(1-(MonthObject.length-12)); i <= DaysInMonth; i++) {
		tempOption=new Option(i,i);
		eval("DayObject.options[i-(1-(MonthObject.length-12))]=tempOption")
		if (i==selectedValue) {
			DayObject.options[i-(1-(MonthObject.length-12))].selected=true
		}
	}
}

function changeDays2(MonthObject,DayObject,YearObject)
{
	var selectedValue=DayObject.selectedIndex;
	var tempDate=new Date(YearObject[YearObject.selectedIndex].value,MonthObject.selectedIndex-(MonthObject.length-12),27);
	var DaysInMonth=27;
	while(tempDate.getMonth() == MonthObject.selectedIndex-(MonthObject.length-12))
	{
		DaysInMonth++;
		tempDate=new Date(YearObject[YearObject.selectedIndex].value,MonthObject.selectedIndex-(MonthObject.length-12),DaysInMonth+1);
	}
	//if (DaysInMonth==28)
	//	DaysInMonth=29;
	if (selectedValue > DaysInMonth)
		selectedValue = DaysInMonth;
	for (var i=31; i > 1; i--) {
		DayObject.options[i]=null;
	}
	for (var i=1; i < 31; i++) {
		DayObject.options[i]=null;
	}
	var tempOption=new Option();
	for (var i=1+(1-(MonthObject.length-12)); i <= DaysInMonth; i++) {
		tempOption=new Option(i,i);
		eval("DayObject.options[i-(1-(MonthObject.length-12))]=tempOption")
		if (i==selectedValue) {
			DayObject.options[i-(1-(MonthObject.length-12))].selected=true
		}
	}
}

function startToday(Form,WhichDate)
{
	var thisMonth=new Date().getMonth()+1;
	var thisDay=new Date().getDate();
	var thisYear=new Date().getFullYear();
	for (var i=1; i <= 12; i++)
		{
		if (i==thisMonth)
			eval("Form."+WhichDate+"Month.options[i].selected=true")
		}
	for (var i=1; i < 32; i++)
		{
		if (i==thisDay)
			eval("Form."+WhichDate+"Day.options[i].selected=true")
		}
    eval("Form."+WhichDate+"Year.value=thisYear")
	//Form.OnStudyYear.value=thisYear;
}

function startToday2(frmObj)
{
	var thisMonth=new Date().getMonth()+1;
	var thisDay=new Date().getDate();
	var thisYear=new Date().getYear();	 	
   frmObj.value=thisMonth+"/"+thisDay+"/"+thisYear;
}

function isSQLDate (month,day,year)
{
	if (year < 1753 || month > 12)
		return false;
	else
		return isDate(month,day,year);
}

function isDate (month,day,year) 
{
 // checks if date passed is valid
 // will accept dates in following format:
 // isDate(dd,mm,ccyy), or
 // isDate(dd,mm) - which defaults to the current year, or
 // isDate(dd) - which defaults to the current month and year.
 // Note, if passed the month must be between 1 and 12, and the
 // year in ccyy format.

     var today = new Date();
     year = ((!year) ? y2k(today.getYear()):year);
     month = ((!month) ? today.getMonth():month-1);
     if (!day) return false
     var test = new Date(year,month,day);
     if ( (y2k(test.getYear()) == year) &&
          (month == test.getMonth()) &&
          (day == test.getDate()) )
         return true;
     else
         return false
}

function validateDate(month,day,year)
{
	if (year.length != 4 || month.length == 0 || year.length == 0 || day.length == 0 || month > 12)
		return false;
	//Check for valid date and that it's SQL compatible (1/1/1753 or greater)
	return isSQLDate(month,day,year);
}

function validateStringDate(stringDate)
{
	var stringYear=Right(stringDate, 4);
	var stringMonth=Left(stringDate,Find(stringDate,"/",1)-1);
	var stringDay=stringDate.substr(Find(stringDate,"/",1),Find(stringDate,"/",2)-Find(stringDate,"/",1)-1);
	if (stringMonth > 12)
		return false;
	else
		return validateDate(stringMonth,stringDay,stringYear);
}

function dateCompare(firstDate, secondDate) //Returns -1 if firstDate is smaller than secondDate, 0 if they are equal, 1 if firstDate is greater than secondDate
{
	var firstYear=Right(firstDate, 4);
	var firstMonth=Left(firstDate,Find(firstDate,"/",1)-1)-1;
	var firstDay=firstDate.substr(Find(firstDate,"/",1),Find(firstDate,"/",2)-Find(firstDate,"/",1)-1);
	var secondYear=Right(secondDate, 4);
	var secondMonth=Left(secondDate,Find(secondDate,"/",1)-1)-1;
	var secondDay=secondDate.substr(Find(secondDate,"/",1),Find(secondDate,"/",2)-Find(secondDate,"/",1)-1);
	Date1=new Date(firstYear,firstMonth,firstDay);
	Date2=new Date(secondYear,secondMonth,secondDay);
	if (Date1.getYear() < Date2.getYear())
		return -1;
	else if (Date1.getYear() > Date2.getYear())
		return 1;
	else
	{
		if (Date1.getMonth() < Date2.getMonth())
			return -1;
		else if (Date1.getMonth() > Date2.getMonth())
			return 1;
		else
		{
			if (Date1.getDate() < Date2.getDate())
				return -1;
			else if (Date1.getDate() > Date2.getDate())
				return 1;
			else
				return 0;
		}
	}
}
function DaysInMonth(thisMonth, thisYear)
{
	var DayCount=28;
	var tempDate=new Date(thisYear,thisMonth-1,DayCount);
	while(tempDate.getMonth() == thisMonth-1)
	{
		DayCount++;
		tempDate=new Date(thisYear,thisMonth-1,DayCount);
	}
	return DayCount-1;
}

function blankDate(Form,WhichDate)
{
    eval("Form."+WhichDate+"Month.options[0].selected=true");
    eval("Form."+WhichDate+"Day.options[0].selected=true");
    eval("Form."+WhichDate+"Year.value=''")
}
//END DATE FUNCTIONS---------------------------------------------------------
