/**
* Taken from Chameleon. Note: requires that timefilter.mhtml select elements be named
* selDay, selMonth, selYear.
*/
/**
 * Check if a year is a leap year
 */
function leapYear(year)
{
    if ((year/4)   != Math.floor(year/4))   return false;
    if ((year/100) != Math.floor(year/100)) return true;
    if ((year/400) != Math.floor(year/400)) return false;
    return true;
}
/**
 * Update according to month change
 */
function monthChange()
{
    // record current day
    var nDay = document.forms[0].selDay.value;

    // re-build the list of days according to month
    document.forms[0].selDay.options.length = 0;
    
    // get day count for current month and year
    var nDayCount = dayCount( document.forms[0].selMonth.value,
                              document.forms[0].selYear.value );
                              
    // loop and add values for days of the month
    for ( var i=1; i<=nDayCount; i++ )
    {
        document.forms[0].selDay.options.length = i;
        document.forms[0].selDay.options[i-1].value = i;
        document.forms[0].selDay.options[i-1].text = i;
    }
    
    // reselect the previous day
    if ( nDay <= nDayCount )
        document.forms[0].selDay.value = nDay;
    else
        document.forms[0].selDay.value = nDayCount;
    
    // return
    return null;
}
/**
 * Get day count according to month and year
 */
function dayCount( month,year )
{
    // return day count for given month and year
    switch ( month )
    {
        case '1':
            return 31;
            break;
        case '2':
            if ( leapYear(year) )
                return 29;
            else
                return 28;
            break;
        case '3':
            return 31;
            break;
        case '4':
            return 30;
            break;
        case '5':
            return 31;
            break;
        case '6':
            return 30;
            break;
        case '7':
            return 31;
            break;
        case '8':
            return 31;
            break;
        case '9':
            return 30;
            break;
        case '10':
            return 31;
            break;
        case '11':
            return 30;
            break;
        case '12':
            return 31;
            break;
        default:
            return 31;
    }
}

