(function() {

var start_time = null;

var img_rabbit = document.createElement('img');
img_rabbit.setAttribute('id', 'rabbit-rabbit');
img_rabbit.setAttribute('style', 'position:fixed; bottom:0px; left: 0px; visibility:hidden');

var img_turtle = document.createElement('img');
img_turtle.setAttribute('id', 'rabbit-turtle');
img_turtle.setAttribute('style', 'position:fixed; bottom:0px; left: 0px; visibility:hidden');

document.body.appendChild(img_turtle);
document.body.appendChild(img_rabbit);

// CSS background-image の URL を src に設定して background-image を削除
var set_image_src = function(img) {
    var bg_image_url = window.getComputedStyle(img).backgroundImage.match(/^url\(\"([^\"]*)\"\)/);
    if (bg_image_url) {
        img.src = bg_image_url[1];
        img.style.backgroundImage = 'none';
    }
}

set_image_src(img_rabbit);
set_image_src(img_turtle);

setInterval(function(){
    if (start_time) {
        var alloted_time = Reveal.getConfig().alloted_time;
        if (alloted_time) {
            var left = (window.innerWidth - img_turtle.width) * ((Date.now()-start_time) / 1000 / alloted_time) * 100 / window.innerWidth;
            if (left > 100) {
                img_turtle.style.visibility = 'hidden';
            } else {
                img_turtle.style.visibility = 'visible';
                img_turtle.style.left = left + '%';
            }
        } else {
            img_turtle.style.visibility = 'visible';
        }
    }
}, 500);

var display_rabbit = function(current_page) {
    if (!start_time) {
        var re = /rabbit_start_time=(\d+)/;
        if (current_page > 0 && document.cookie.match(re)) {
            start_time = parseInt(document.cookie.match(re)[1]);
        } else {
            start_time = Date.now();
            document.cookie = 'rabbit_start_time='+start_time;
        }
    }
    var total_page = Reveal.getTotalSlides();
    var left = (window.innerWidth - img_rabbit.width) * (current_page / (total_page - 1)) * 100 / window.innerWidth;
    img_rabbit.style.visibility = 'visible';
    img_rabbit.style.left = left + '%';
}
var current_page = Reveal.getIndices().h
if (current_page == 0) {
    if (!start_time) {
        document.cookie = 'rabbit_start_time=';
    }
} else {
    setTimeout(function(){display_rabbit(current_page)}, 0);
}
Reveal.addEventListener('slidechanged', function(event){display_rabbit(event.indexh)});

}());