function solarDays(y,m) {
  if(m==1)
   return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28);
  else
   return(solarMonth[m]);
}

var solarMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var Today = new Date();
var tY = Today.getFullYear();
var tM = Today.getMonth();
var tD = Today.getDate();

var StartY = 1934;
var EndY = tY-18;

var nameX;

function changeD() {
  var y,m,d;
  y = nameX.year.selectedIndex+StartY;
  m = nameX.month.selectedIndex;
  d = nameX.day.selectedIndex;
  if (d > solarDays(y,m)-1) {
    d = solarDays(y,m)-1;
  }
  draw(y,m);
  nameX.year.selectedIndex = y-StartY;
  nameX.month.selectedIndex = m;
  nameX.day.selectedIndex = d;
}

function draw(YY,MM) {
  days = solarDays(YY,MM);
  count = 0;
  for(i=1;i<days+1;i++){
    count = count + 1;
    nameX.day.selectedIndex = 0;
    nameX.day.options.length = count;
    nameX.day.options[count-1].text = i;
    if (count==2){nameX.day.options[count-1].value = i;}
    else{ nameX.day.options[count-1].value = i;}
  }
}

function initialize(x,initY,initM,initD) {
  nameX = x;
  if(initY && initM) draw(initY,initM-1);
  else draw(tY,tM);
  if(initY){
     nameX.year.selectedIndex=initY-StartY;
  } else {
     nameX.year.selectedIndex=tY-StartY;
  }
  if(initM){
     nameX.month.selectedIndex=initM-1;
  } else {
     nameX.month.selectedIndex=tM;
  }
  if(initD){
     nameX.day.selectedIndex=initD-1;
  } else {
     nameX.day.selectedIndex=tD-1;
  }
}

