//************* Date Validation Script
// OS036
//***********************************

//set todays date
Now = new Date();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
NowYear = 1980;

//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonth, WhichYear)
{
  var DaysInMonth = 31;
  if (WhichMonth == "Apr" || WhichMonth == "Jun" || WhichMonth == "Sep" || WhichMonth == "Nov"
      || WhichMonth == "4" || WhichMonth == "6" || WhichMonth == "9" || WhichMonth == "11" ) DaysInMonth = 30;
  if (( WhichMonth == "Feb" || WhichMonth == "2" ) && (WhichYear/4) != Math.floor(WhichYear/4))	DaysInMonth = 28;
  if (( WhichMonth == "Feb" || WhichMonth == "2" ) && (WhichYear/4) == Math.floor(WhichYear/4))	DaysInMonth = 29;
  return DaysInMonth;
}

//function to change the available days in a months
function ChangeOptionDays(Which, FormName)
{
  DaysObject = eval("document." + FormName + "."+ Which + "day");
  MonthObject = eval("document." + FormName + "."+ Which + "month");
  YearObject = eval("document." + FormName + "."+ Which + "year");

  Month = MonthObject[MonthObject.selectedIndex].text;
  Year = YearObject[YearObject.selectedIndex].text;

  DaysForThisSelection = DaysInMonth(Month, Year);
  CurrentDaysInSelection = DaysObject.length;
  if (CurrentDaysInSelection > DaysForThisSelection)
  {
    for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++)
    {
      DaysObject.options[DaysObject.options.length - 1] = null
    }
  }
  if (DaysForThisSelection > CurrentDaysInSelection)
  {
    for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++)
    {
      NewOption = new Option(DaysObject.options.length + 1);
      DaysObject.add(NewOption);
    }
  }
    if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
   
}

// function to check on user input
function DateValidation(FormName){
  DaysObjectFrom = eval("document." + FormName + ".from_day");
  MonthObjectFrom = eval("document." + FormName + ".from_month");
  YearObjectFrom = eval("document." + FormName + ".from_year");
  
  DaysObjectTo = eval("document." + FormName + ".to_day");
  MonthObjectTo = eval("document." + FormName + ".to_month");
  YearObjectTo = eval("document." + FormName + ".to_year");   
    
 
  fromDate = new Date();
  fromDate.setDate(DaysObjectFrom[DaysObjectFrom.selectedIndex].text);
  fromDate.setMonth(MonthObjectFrom.selectedIndex);
  fromDate.setYear(YearObjectFrom[YearObjectFrom.selectedIndex].text);
  toDate = new Date();
  toDate.setDate(DaysObjectTo[DaysObjectTo.selectedIndex].text);
  toDate.setMonth(MonthObjectTo.selectedIndex);
  toDate.setYear(YearObjectTo[YearObjectTo.selectedIndex].text);
  
     
     if(fromDate>toDate) {
     alert("Warning: date 'From' must be less then date 'To' ");
     return false;
     }
  return true;

}

//function to set options to today
function SetToToday(Which, FormName)
{
  DaysObject = eval("document." + FormName + "."+ Which + "day");
  MonthObject = eval("document." + FormName + "."+ Which + "month");
  YearObject = eval("document." + FormName + "."+ Which + "year");

  //YearObject[0].selected = true;
  MonthObject[NowMonth].selected = true;

  ChangeOptionDays(Which, FormName);

  DaysObject[NowDay-1].selected = true;
}

//function to set options to today
function SetToDate(Which, FormName, vDay, vMonth, vYear)
{
	if(vDay != "" && vMonth != "" && vYear != "")
	{
		NowDay = vDay;
		NowMonth = vMonth-1;
		NowYear = vYear;
	}
	SetToToday(Which, FormName);
  YearObject = eval("document." + FormName + "."+ Which + "year");
  for (i=0; i<YearObject.length; i++)
  {
	if(YearObject.item(i).value == vYear)
	{
		YearObject[i].selected = true;
		break;
	}
  }
}
//function to write option years plus x
function WriteYearOptions(YearsAhead)
{
  line = "";
  for (i=0; i<YearsAhead; i++)
  {
    line += "<OPTION>";
    line += NowYear + i;
    line += "</OPTION>";
  }
  return line;
}


