function setArrive() {
    var rMonth  = document.getElementById('reserveMonth')
    var rDay    = document.getElementById('reserveDay')
    var rArrive = document.getElementById('reserveArrive')

    if (!rMonth || !rDay || !rArrive) {
        return false;
    }

    /* Determine maximum legal day for given month/year */
    var ym = rMonth.value.split('-')
    var year = ym[0]
    var mon = ym[1]

    var maxday = 31
    if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
        maxday = 30
    } else if (mon == 2) {
        /* This leap-year formula should be good for a few millenia */
        if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
            maxday = 29
        else
            maxday = 28
    }

    /* Reset day if necessary and hide inappropriate options */
    if (maxday < rDay.value)
        rDay.value = maxday;

    for (var x=29; x<=31; x++)
        if (x > maxday)
            document.getElementById('dayOption' + x).disabled = true;
        else
            document.getElementById('dayOption' + x).disabled = false;

    rArrive.value = rMonth.value + '-' + rDay.value

    return true;
}
