function autoDate(dayID,monthID,yearID,minDate,maxDate,generateAll)
{
/* Min Date and Max Date must be in the format m/d/yyyy */
/* generateAll must be true or false - determines if just days or if month should also be generated */

  if(!document.getElementById)
    return 0;

  var minimumDate=minDate.split("/");
  var maximumDate=maxDate.split("/");

  var day=document.getElementById(dayID);     // Day box
  var month=document.getElementById(monthID); // Month box
  var year=document.getElementById(yearID);   // Year box

  var sDay=parseInt(day[day.selectedIndex].value);
  var sMonth=parseInt(month[month.selectedIndex].value);
  var sYear=parseInt(year[year.selectedIndex].value);


  daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
  daysInMonth[1] = ((sYear%4==0) && ( (!(sYear%100 ==0)) || (sYear % 400 == 0 )))?29:28; // Correct for Leap Year


  if(generateAll) // Adjust months if you need to
  {
    var startMonth=0; 
    var endMonth=0;
    var selectedMonth=0; // Position in the Month Index
    if (minimumDate[2]==maximumDate[2]) // Min Year is Max Year
    {
      startMonth=minimumDate[0];
      endMonth=maximumDate[0];
    }
    else if (sYear==minimumDate[2]) // Min Year
    {
      startMonth=minimumDate[0];
      endMonth=12;
    }
    else if (sYear==maximumDate[2]) // Max Year
    {
      startMonth=1;
      endMonth=maximumDate[0];
    }
    else // Any year in middle of range
    {
      startMonth=1;
      endMonth=12;
    }

    if(sMonth<startMonth)
      selectedMonth=0;
    else if(sMonth>endMonth)
      selectedMonth=endMonth-startMonth;
    else
      selectedMonth=sMonth-startMonth;
    
    startMonth-=1;
    endMonth-=1;
    monthNames = ["January","February","March","April","May","June","July","August","September","October","November","December"];

    month.length=0;
    for(var i=startMonth; i <= endMonth; i++)
      month[month.length] = new Option(monthNames[i], i+1);
  }


// Adjust the days    
  var startDay=0; 
  var endDay=0;
  var selectedDay=0;

  if((minimumDate[2]==maximumDate[2])&&(minimumDate[0]==maximumDate[0])) // Min Month is Max Month
  {
    startDay=minimumDate[1];
    endDay=maximumDate[1];
  }
  else if((sYear==minimumDate[2])&&(minimumDate[0]>=sMonth)) // Min Month
  {
    startDay=minimumDate[1];
//    endDay=daysInMonth[sMonth-1]; // Bug
    endDay=daysInMonth[minimumDate[0]-1]; 
  }
  else if((sYear==maximumDate[2])&&(maximumDate[0]<=sMonth)) // Max Month
  {
    startDay=1;
    endDay=maximumDate[1];
  }
  else // Any month in middle of range
  {
    startDay=1;
    endDay=daysInMonth[sMonth-1];
  }

  if(sDay<startDay)
  {
    selectedDay=0;
  }
  else if(sDay>endDay)
  {
    selectedDay=endDay-startDay;
  }
  else
  {
    selectedDay=sDay-startDay;
  }

  day.length=0;

  i=parseInt(startDay);
  for(i=parseInt(startDay); i <= parseInt(endDay); i++) // Display all the days
  {
    day[day.length] = new Option(i, i);
  }

 

// Set the selected month (if required) and day
  if(generateAll)
  {
    month.selectedIndex = selectedMonth;
  }

  day.selectedIndex=selectedDay;
}




