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 StartY1 = tY-50;
var EndY1 = tY-20;

var tY1 = tY;
var tM1 = tM;
var tD1 = tD;
var nameX;

function changeD1() {
  var y,m;
  y=nameX.Year1.selectedIndex+StartY1;
  m=nameX.Month1.selectedIndex;
  d=nameX.Day1.selectedIndex;
  if (d > solarDays(y,m)-1) {
    d=solarDays(y,m)-1;
  }
  draw1(y,m);
  nameX.Year1.selectedIndex=y-StartY1;
  nameX.Month1.selectedIndex=m;
  nameX.Day1.selectedIndex=d;
}

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

function initialize(x,initY,initM,initD) {
  nameX = x;
  if(initY && initM) draw1(initY,initM-1);
  else draw1(tY1,tM1);
  if(initY){
     nameX.Year1.selectedIndex=initY-StartY1;
  } else {
     nameX.Year1.selectedIndex=tY1-StartY1;
  }
  if(initM){
     nameX.Month1.selectedIndex=initM-1;
  } else {
     nameX.Month1.selectedIndex=tM1;
  }
  if(initD){
     nameX.Day1.selectedIndex=initD-1;
  } else {
     nameX.Day1.selectedIndex=tD1-1;
  }
}

