/* Specifies the period of time between updates:
    month - once a month
    date - once per every day of the month (repeats the next month)
    weekday - once per every day of the week (repeats the next week)
    hour - once per hour (repeats the next day)
    request - once per browser request (default)
*/

var updatePeriods = new Array("month","date","weekday","hour","request")

// Invoked to display rotated HTML content in a Web page. The period
// argument should be an element of the updatePeriods array.

function displayRotatedContent(period) {
    var updatePeriod = -1
    for(var i=0;i<content.length;++i) {
        if(period.toLowerCase() == updatePeriods[i].toLowerCase()) {
            updatePeriod = i
            break
        }
    }
    var s = selectHTML(updatePeriod)
    document.write(s) 
}

function selectHTML(updatePeriod) {
    var n = 0
    var max = content.length
    var d = new Date()
    switch(updatePeriod) {
        case 0: // Month (0 - 11)
            n = d.getMonth()
            break
        case 1: // Date (1 - 31 scaled to 0 - 30)
            n = d.getDate() - 1
            break
        case 2: // Weekday (0 - 6)
            n = d.getDay()
            break
        case 3: // Hour (0 - 23)
            n = d.getHours()
            break
        case 4: // Request (Default)
        default:
            n = selectRandom(max)
    }
    n %= max 
    return content[n]
}

// Select a random integer that is between 0 (inclusive) and max (exclusive)
function selectRandom(max) {
    var r = Math.random()
    r *= max
    r = parseInt(r)
    if(isNaN(r)) r = 0
    else r %= max
    return r
}
