
function leapYear(year)
{
   Last2Digits = year % 100
   if (Last2Digits == 0)
   {
       flag = year % 400
   }
   else
   {
       flag = year % 4
   }
   
   return flag == 0;     
}

function getDays(month, year) {
  var days = 31;
  switch (month) 
  {
      case 2 : days = (leapYear(year)) ? 29 : 28;
               break; 
      case 4 :
      case 6 :
      case 9 :
      case 11:
               days = 30;
               break;
  }
  
  return days;
}

function UpdateDateSelector(obj)
{
    var id = obj.parentNode.parentNode.id;
    if ($(id + '_month') != null && $(id + '_year') != null)
    {
        var days = getDays(parseInt($(id + '_month').selectedIndex + 1, 10), parseInt($(id + '_year', 10).value));    
        var selectDays = $(id + '_day');    
        if (selectDays != null)
        {
            while (selectDays.length > days)
            {
                selectDays.remove(selectDays.length - 1);
            }
            while (selectDays.length < days)
            {
                var option = document.createElement('option');
                option.text = selectDays.length + 1;
                option.value = selectDays.length + 1;
                try
                {
                    selectDays.add(option, null);
                }
                catch(ex)
                {
                    selectDays.add(option);
                }                
            }    
        }
    }
}