function set_cookie(name, value, days) {
    var expires;

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toGMTString();
    }
    else
        expires = "";

//    console.log("saving cookie: %s => %s", name, value);
    
    document.cookie = name + "=" + value + expires + "; path=/";
}

function get_cookie(name) {
    var namestr  = name + "=";
    var cookbits = document.cookie.split(';');
    var n;

    for(n = 0; n < cookbits.length; n++) {
        var c = cookbits[n];

        /* remove leading whitespace */
        while (c.charAt(0) == ' ')
            c = c.substring(1, c.length);

        /* if the name start this cookie fragment, return the value */
        if (c.indexOf(namestr) == 0)
            return c.substring(namestr.length, c.length);
    }
    return null;
}

var cookie = 'slideshow_started';

function start_show() {
    var date  = new Date();
    set_cookie(cookie, date.getTime());
}

function time_elapsed() {
    var date    = new Date();
    var ticks   = date.getTime() - get_cookie(cookie);
    var secs    = ticks / 1000;
    var minutes = Math.floor(secs / 60);
    var seconds = Math.floor(secs % 60);
    if (seconds < 10)
        seconds = '0' + seconds

    if (minutes >= 10)
        $('#elapsed').addClass('cool');
    if (minutes >= 20)
        $('#elapsed').addClass('warm');
    if (minutes >= 30)
        $('#elapsed').addClass('warn');
    if (minutes >= 40)
        $('#elapsed').addClass('over');
        
//  console.log('updating elapsed: %d  %d : %d', secs, minutes, seconds);

    return minutes + ':' + seconds;
}

function update_elapsed() {
    var elem  = document.getElementById('elapsed');
    if (elem) {
        elem.innerHTML = time_elapsed();
    }
    var elem  = document.getElementById('clock');
    if (elem) {
        elem.innerHTML = time_html();
    }
}

function time_html() {
    var date  = new Date();
    var hours = date.getHours();
    var mins  = date.getMinutes();
    var secs  = date.getSeconds();
    var ordinal;

    if (hours < 10)
        hours = '0' + hours;
    
    if (mins < 10)
        mins = '0' + mins; 
    if (secs < 10)
        secs = '0' + secs; 

    return hours + ':' + mins + ':' + secs;
}
