X-Git-Url: https://git-public.kairo.at/?p=slides.git;a=blobdiff_plain;f=ubit-wien-2009%2Fslides.js;fp=ubit-wien-2009%2Fslides.js;h=68dfd9a52aef4f83bb05deb349104914addfddd6;hp=0000000000000000000000000000000000000000;hb=a181bfc6ce532a6a9a3753639f9a9b0eafa336da;hpb=4f98e4684fe7f8a928ebef9c3c9867178bd80be0 diff --git a/ubit-wien-2009/slides.js b/ubit-wien-2009/slides.js new file mode 100644 index 0000000..68dfd9a --- /dev/null +++ b/ubit-wien-2009/slides.js @@ -0,0 +1,64 @@ +/****************************** + * JavaScript for talk slides * + * by Robert Kaiser * + * * + * (for FOSDEM 2007) * + ******************************/ + +// do timed color variation on slides +var slide_seconds = 3*60; +var slide_start = new Date(); + +function timerFired() { + var slide_current = new Date(); + var seconds_diff = Math.round((slide_current.getTime() - slide_start.getTime()) / 1000); + if (seconds_diff >= slide_seconds) { + document.getElementById("header-text").className = "overtime"; + } + else if (seconds_diff >= Math.round(2*slide_seconds/3)) { + document.getElementById("header-text").className = "ontime"; + setTimeout("timerFired()", 1000*(slide_seconds/3)); + } + else if (seconds_diff >= Math.round(slide_seconds/3)) { + document.getElementById("header-text").className = "neartime"; + setTimeout("timerFired()", 1000*(slide_seconds/3)); + } + else { + // we should never come here, but if we do, go into a 1s loop until we get over the upcoming step + setTimeout("timerFired()", 1000); + } +} +setTimeout("timerFired()", 1000*(slide_seconds/3)); + +(function() { + function go(where) { + where = where || "next"; + var links = document.getElementsByTagName("link"); + for (var i = 0; i < links.length; ++i) { + if (links[i].rel == where) { + window.location.href = links[i].href; + break; + } + } + } + + function handleClick(e) { + e = e || event; + var target = (window.event) ? e.srcElement : e.target; + if (e.which == 1 && target.nodeName != "A" && target.nodeName != "VIDEO") + go("next"); + } + + function handleKeyPress(e) { + e = e || event; + switch (e.keyCode) { + case e.DOM_VK_LEFT: + go("previous"); break; + case e.DOM_VK_RIGHT: + go("next"); break; + } + } + + window.onclick = handleClick; + window.onkeypress = handleKeyPress; +})();