var min_year = 1998; // defines lowest year in year menu
var max_year = 2020; // defines highest year in the year menu

if (min_year <= 400)
 alert("Minimum year must be higher than 400 for this algorithm to work.");

function changeDays(numb, month_c, day_c, year_c) { 
 mth = month_c.selectedIndex;
 sel = year_c.selectedIndex;
 yr  = year_c.options[sel].text;
 if (numb != 1) {
  numDays = numDaysIn(mth,yr);
  day_c.options.length = numDays;
  for (i=27;i<numDays;i++) {
		   day_c.options[i].text = i+1;
	  }
 }
day = day_c.selectedIndex+1;
}

function numDaysIn(mth,yr) {
 if (mth==3 || mth==5 || mth==8 || mth==10) 
 			return 30;
 else if ((mth==1) && leapYear(yr)) 
 			return 29;
 else if (mth==1) 
 			return 28;
 else return 31;
}
function leapYear(yr) {
 if (((yr % 4 == 0) && yr % 100 != 0) || yr % 400 == 0)
  return true;
 else
  return false;
}
function arr() {
 this.length=arr.arguments.length;
 for (n=0;n<arr.arguments.length;n++) {
  this[n] = arr.arguments[n];
 }
}

var cur = new Date();
 
function firstDayOfYear(yr) {
 diff = yr - 401;
 return parseInt((1 + diff + (diff / 4) - (diff / 100) + (diff / 400)) % 7);
}

// fixes a Netscape 2 and 3 bug
function getFullYear(d) { // d is a date object
 yr = d.getYear();
 if (yr < 1000)
  yr+=1900;
 return yr;
}