add a first version of the UBIT Wien slides
[slides.git] / ubit-wien-2009 / slides.js
diff --git a/ubit-wien-2009/slides.js b/ubit-wien-2009/slides.js
new file mode 100644 (file)
index 0000000..68dfd9a
--- /dev/null
@@ -0,0 +1,64 @@
+/******************************
+ * JavaScript for talk slides *
+ *      by Robert Kaiser      *
+ *      <kairo@kairo.at>      *
+ *     (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;
+})();