var Slide = new Object();

Slide._slides = [
  { filename: "index.html", title: "Start" },
  { filename: "slide-rdf-text.html", title: "RDF" },
  { filename: "slide-rdf-graph.html", title: "Graph" },
  { filename: "slide-haystack.html", title: "Haystack" },
  
  { filename: "slide-aha.html", title: "Oh I see!" },
  { filename: "slide-without-perfection.html", title: "Without Perfection" },
  { filename: "slide-webs.html", title: "Here and Now Web" },
//  { filename: "slide-merged-info.html", title: "Merged Information" },
  { filename: "slide-usefulness.html", title: "Usefulness" },
  { filename: "slide-piggy-bank.html", title: "Piggy Bank" },
  
  { filename: "slide-get-data.html", title: "Get Semantic Web Data" },
  { filename: "slide-scraping-examples.html", title: "Scraping Examples" },
  { filename: "slide-comment.html", title: "Comment" },
  { filename: "slide-stats.html", title: "Stats" },
  
  { filename: "slide-curiosity.html", title: "Curiosity" },
  { filename: "slide-audience.html", title: "Audience" },
  { filename: "slide-sw.html", title: "Semantic Web" },
  { filename: "slide-wwsw.html", title: "World Wide (semantic) Web" },
  { filename: "slide-users.html", title: "Users" },
  { filename: "slide-stupid-users.html", title: "Stupid Users" },
  { filename: "slide-shelters.html", title: "Shelters" },
  { filename: "slide-rdf-graph-2.html", title: "Graph" },
  
  { filename: "slide-adoption.html", title: "Adoption" },
  { filename: "slide-bank.html", title: "Us" },
  { filename: "slide-the-end.html", title: "The End" }
];

Slide.onLoad = function() {
  var url = document.location.href;
  
  var j = url.lastIndexOf("/");
  var filename = url.substr(j+1);
  if (filename == "")
    filename = Slide._slides[0].filename;
  
  Slide._baseURL = url.substr(0, j+1);
  
  for (var i = 0; i < Slide._slides.length; i++) {
    if (filename == Slide._slides[i].filename) {
      Slide._slideIndex = i;
      Slide._hasPrevious = i > 0;
      Slide._hasNext = i < Slide._slides.length - 1;
      
      document.title = "Piggy Bank talk - " + Slide._slides[i].title;
      break;
    }
  }
  
  var header = "<div>" + document.title + "</div>";
  document.getElementById("header-pane").innerHTML = header;
  
  var footerLeft = Slide._hasPrevious ? 
    ("<span class='clickable' onclick='Slide.first();'>&laquo;&laquo;[Home]</span> " +
     "<span class='clickable' onclick='Slide.previous();'>&laquo;[PageUp]</span>") : 
    "<span/>";
  var footerRight = Slide._hasNext ? 
    ("<span class='clickable' onclick='Slide.next();'>[PageDown]&raquo;</span> " +
     "<span class='clickable' onclick='Slide.last();'>[End]&raquo;&raquo;</span>") : 
    "<span/>";
  var footerCenter = "<span>" + (Slide._slideIndex + 1) + " of " + Slide._slides.length + "</span>";
  var footer = 
    "<table><tr><td id='footer-left'>" + footerLeft + 
    "</td><td id='footer-center'>" + footerCenter + 
    "</td><td id='footer-right'>" + footerRight + 
    "</td></tr></table>";
  document.getElementById("footer-pane").innerHTML = footer;
  
  document.addEventListener("keypress", Slide.onKeyPress, false);
}

Slide.onKeyPress = function(evt) {
  if (evt.keyCode == 33) { // PageUp
    Slide.previous();
  } else if (evt.keyCode == 34 || evt.charCode == 32 || evt.keyCode == 13) { // PageDown or Space
    Slide.next();
  } else if (evt.keyCode == 36) { // Home
    Slide.first();
  } else if (evt.keyCode == 35) { // End
    Slide.last();
  }
}

Slide.next = function() {
  if (Slide._hasNext) {
    document.location = Slide._baseURL + Slide._slides[Slide._slideIndex+1].filename;
  }
}

Slide.previous = function() {
  if (Slide._hasPrevious) {
    document.location = Slide._baseURL + Slide._slides[Slide._slideIndex-1].filename;
  }
}

Slide.first = function() {
  document.location = Slide._baseURL + Slide._slides[0].filename;
}

Slide.last = function() {
  document.location = Slide._baseURL + Slide._slides[Slide._slides.length-1].filename;
}
