document.addEvent('domready', function() {
  //initializing
  var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  
  var myFunction = function(){ //check if a month is selected
    if($('sel_Register_birthdate_month').value != 0){ //check for bisestile year
      if ($('sel_Register_birthdate_year').value/4 == parseInt($('sel_Register_birthdate_year').value/4)){ months[1]=29;
      }else{ months[1]=28; }
      //remove or add day(s) depending the month
      if(months[$('sel_Register_birthdate_month').value-1] > $('sel_Register_birthdate_day').options.length-1){
        //add
        for (var i = $('sel_Register_birthdate_day').options.length-1; i < months[$('sel_Register_birthdate_month').value-1]; i++) {
          $('sel_Register_birthdate_day').options[$('sel_Register_birthdate_day').options.length] = new Option(i+1,i+1); }
      } else if (months[$('sel_Register_birthdate_month').value-1] < $('sel_Register_birthdate_day').options.length-1) {
        //remove
        var myDay = $('sel_Register_birthdate_day').value;
        for (var i = $('sel_Register_birthdate_day').options.length-1; i > months[$('sel_Register_birthdate_month').value-1]; i--) {
          $('sel_Register_birthdate_day').options[i].destroy();
        }
        //if day selected destroyed select the last day of the month
        if($('sel_Register_birthdate_day').value != myDay){
          $('sel_Register_birthdate_day').options[i].selected='true';
        }
      }
      //check if date is logical
      if($('sel_Register_birthdate_day').value > months[$('sel_Register_birthdate_month').value-1]){
        $('sel_Register_birthdate_day').options[months[$('sel_Register_birthdate_month').value-1]].selected='true';
      }
    }
  };
  
  //change the number of days depending month and years
  $('sel_Register_birthdate_month').addEvent('change', myFunction.create());
  $('sel_Register_birthdate_year').addEvent('change', myFunction.create());
});
