// JavaScript Document
<!--
// misc. date functions
var maxday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var monthname = new Array("January", "February", "March", "April", "May",
  "June", "July", "August", "September", "October", "November", "December");
function DaysInMonth(year, month) {
  if (month == 1 && (year % 4) == 0)
    return 29;
  else
    return maxday[month];
}
function calcNewDate(year, month, day, inc) {
  var y = parseInt(year);
  var m = parseInt(month);
  var d = parseInt(day) + inc;
  var max = DaysInMonth(y, m);
  while (d > max) {
    d -= max;
    m += 1;
    if (m >= 12) {
      y += 1;
      m -= 12;
    }
    max = DaysInMonth(y, m);
  }
  var datestring = monthname[m] + " " + d + ", " + y;
  return datestring;
}
// date menu creation functions
function SetDays(form) {
  var y = form.year.options[form.year.selectedIndex].value;
  var m = form.month.selectedIndex;
  var d = DaysInMonth(y, m);
  for (var i = 26; i < 32; ++i)
    form.day.options[i] = null;
  for (var i = 26; i < d; ++i)
    form.day.options[i] = new Option(i+1, i+1);
  form.day.selectedIndex = 0;
}
function SetYears(form) {
  var now = new Date();
  var y = now.getFullYear();
  var m = now.getMonth();
  var year;
  for (var i = 0; i < 6; ++i) {
    year = y + i;
    form.year.options[i] = new Option(year - 1, year - 1);
  }
  for (var i = 0; i < 28; ++i)
    form.day.options[i] = new Option(i+1, i+1);
  form.year.selectedIndex  = 1;
  form.month.selectedIndex = m;
}
// calculate data & fill form
var adddays = new Array(0,14,35,70,84,161,189,280);
var image_cache = new Array(11);
var image_weeks = new Array(1,5,9,13,18,23,27,31,35,40,44);
function CalcDates(form) {
  var y = form.year.options[form.year.selectedIndex].value;
  var m = form.month.selectedIndex;
  var d = form.day.selectedIndex + 1;
  var now = new Date();
  var then = new Date(y, m, d);
  var dp = Math.floor((now.getTime() - then.getTime()) / 86400000) - 14;
  if (dp < 0)
    dp = 0;
  var wp = Math.floor(dp / 7);
  dp %= 7;
  form.days_pregnant.value  = dp;
  form.weeks_pregnant.value = wp;
  form.ovulation.value = calcNewDate(y,m,d, adddays[1]);
  form.pregtest.value   = calcNewDate(y,m,d, adddays[2]);
  form.startdevlp.value = calcNewDate(y,m,d, adddays[2]);
  form.enddevlp.value   = calcNewDate(y,m,d, adddays[3]);
  form.endfirst.value   = calcNewDate(y,m,d, adddays[4]);
  form.endsecond.value  = calcNewDate(y,m,d, adddays[6]);
  form.duedate.value    = calcNewDate(y,m,d, adddays[7]);
  // set image
  var im = image_weeks.length - 1;
  for (var i = 0; i < image_weeks.length; ++i)
    if (wp <= image_weeks[i]) {
      im = i; break;
    }
  if (image_cache[im] == null) {
    image_cache[im] = new Image();
    image_cache[im].src = image_file[im];
  }
}
// -->