  function populateDatePicker( hiddenId, yearPickerId, monthPickerId, dayPickerId, previouslySelectedDay )
  {
    var yearPicker = $( yearPickerId );
    var monthPicker = $( monthPickerId );
    var dayPicker = $( dayPickerId );
    var selectedYear = getSelectedValue( yearPicker );
    var selectedMonth = getSelectedValue( monthPicker );
    if( !selectedYear || selectedYear == '' || !selectedMonth || selectedMonth == '' )
    {
      dayPicker.disabled = true;
      setHiddenFieldValue( hiddenId, '' );
      return;
    }
    dayPicker.disabled = false;
    var timeA = new Date( selectedYear, selectedMonth, 1 );
    var timeDifference = timeA - 86400000;
    var timeB = new Date( timeDifference );
    var daysInMonth = timeB.getDate();
    if( !previouslySelectedDay )
    {
      previouslySelectedDay = dayPicker.selectedIndex;
    }
    for( var i = 0; i < dayPicker.length; i++ )
    {
      dayPicker.options[0] = null;
    }
    dayPicker.options[0] = new Option( '----Select One----', '' );
    for( var i = 0; i < daysInMonth; i++ )
    {
      dayPicker.options[ i + 1 ] = new Option( i + 1 );
      if( i + 1 == previouslySelectedDay )
      {
        dayPicker.options[ i + 1 ].selected = true;
      }
    }
    recalculateHiddenFieldValue( hiddenId, yearPickerId, monthPickerId, dayPickerId );
  }
  function getSelectedText( selectElem )
  {
    return selectElem.options[ selectElem.selectedIndex ].text;
  }
  function getSelectedValue( selectElem )
  {
    return selectElem.options[ selectElem.selectedIndex ].value;
  }
  function recalculateHiddenFieldValue( hiddenId, yearPickerId, monthPickerId, dayPickerId )
  {
    var yearPicker = $( yearPickerId );
    var monthPicker = $( monthPickerId );
    var dayPicker = $( dayPickerId );
    var newValue = getSelectedValue( monthPicker ) + '/' + getSelectedText( dayPicker ) + '/' + getSelectedText( yearPicker );
    setHiddenFieldValue( hiddenId, newValue );
  }
  function setHiddenFieldValue( hiddenId, newValue )
  {
    var hiddenField = $( hiddenId );
    hiddenField.value = newValue;
  }
