/*
var arrMonths = new Array(
  new Option("January", "1"),
  new Option("February", "2"),
  new Option("March", "3"),
  new Option("April", "4"),
  new Option("May", "5"),
  new Option("June", "6"),
  new Option("July", "7"),
  new Option("August", "8"),
  new Option("September", "9"),
  new Option("October", "10"),
  new Option("November", "11"),
  new Option("December", "12")
);
*/

function initCalendar(cbxMonth, cbxDay, cbxYear, debug) {
 // init year combo
  if(debug)
  alert('start initCalendar ' + cbxYear.name);
/*
  for(i=MAX_YEAR; i>=MIN_YEAR; i--) {
    cbxYear.options[i+1 - MIN_YEAR] = new Option("" + i, i);
  }
*/
  cbxYear.selectedIndex=0; 

 // init month combo
/*  if(debug)
  alert('start initCalendar ' + cbxMonth.name + ' cbxMonth.options=' + cbxMonth.options.length);
  for(i=0; i<arrMonths.length; i++) {
    if(false && debug)
    alert(i + ' ' + arrMonths[i].value + ' ');
    cbxMonth.options[i+1] = new Option(arrMonths[i].text, arrMonths[i].value);
  }
*/

  if(debug)
  alert('start initCalendar ' + ' cbxMonth.options=' + cbxMonth.options.length);
  cbxMonth.selectedIndex = 0;
//  changeDays(cbxMonth, cbxDay, cbxYear);

//  cbxDay.selectedIndex = 0;
}


var maxDays = 0;

function changeDays(cbxMonth, cbxDay, cbxYear) {
  var month = cbxMonth.selectedIndex;
  switch(month) {
    case 0: // month cleared
      maxDays = 0; 
      break;

    case 2: 
      maxDays = isLeapYear(cbxYear)?29:28;
      break;

    case  1: case  3:
    case  5: case  7:
    case  8: case 10:
    case 12:
      maxDays = 31; 
      break;

    case  2: case  4:
    case  6: case  9:
    case 11: 
      maxDays = 30; 
      break;
  }

  var curDay = cbxDay.selectedIndex;

  var prevLength = cbxDay.options.length;
  var currLength = maxDays + 1;

  cbxDay.options.length = currLength;
  for(var i=prevLength; i<currLength; i++) {
    var _option = new Option(""+i, ""+i);
    cbxDay.options[i] = _option;
  }

  if(curDay>maxDays) {
    curDay = maxDays;
  }
  cbxDay.selectedIndex = curDay;
}


function isLeapYear(cbxYear) {
  var iYear = cbxYear.options[cbxYear.selectedIndex].value;
  return cbxYear.selectedIndex>0 && (iYear % 400 == 0) || ((iYear%100 != 0) && (iYear % 4 == 0));
}


