
/*
SlideShow object.
To be used with the <slideshow> tag in a wiki page.
Each slideshow should create one of these objects, by calling the SlideShow function below.
*/

function SlideShow(imageArray, commentArray, idName) {
  this.imageArray = imageArray;
  this.commentArray = commentArray;
  this.imageElement = document.getElementById('img' + idName);
  this.commentElement  = document.getElementById('comment' + idName);
  this.counterElement = document.getElementById('counter' + idName);
  this.timerButton = document.getElementById('button' + idName);
  this.counter = 0;
  this.timerOn = 0;

  this.ShowPicture = function() {
        var comment = this.commentArray[this.counter];
        comment = comment.replace(/&lt;/g, '<' );
        comment = comment.replace(/&gt;/g, '>' );
        this.imageElement.src = this.imageArray[this.counter];
        this.commentElement.innerHTML = comment;
        this.counterElement.value = this.counter + 1;
  }

  this.first = function() {
    this.counter = 0;
    this.ShowPicture();
  }

  this.backward = function() {
    if (this.counter == 0) this.counter = this.imageArray.length-1
    else this.counter = this.counter - 1;
    this.ShowPicture();
  }

  this.forward = function() {
    if (this.counter == this.imageArray.length-1) this.counter = 0
    else this.counter = this.counter + 1;
    this.ShowPicture();
  }

  this.last = function() {
    this.counter = this.imageArray.length - 1;
    this.ShowPicture();
  }

  this.KeyPressed = function(event) {
    if ((event.keyCode == 13)  || (event.keyCode == 9) )
    {
      this.counter = parseInt(this.counterElement.value);
      if (isNaN(this.counter)) this.counter = 1;
      --this.counter;
      if (this.counter > this.imageArray.length-1) this.counter = this.imageArray.length-1;
      if (this.counter < 0) this.counter = 0;
      this.ShowPicture();
    }
  }

  this.ShowPicture();
}


/* Expandable sections, to be used with the <expand> tag in a wiki page. */

function toggleElement(element) {
  element.className = element.className == 'expanded' ? 'expandable' : 'expanded';
}

function toggleSection(sectionName) {
  var textElement = document.getElementById(sectionName);
  var anchorBeforeElement = document.getElementById('a1_' + sectionName);
  var anchorAfterElement = document.getElementById('a2_' + sectionName);
  
  toggleElement(textElement);
  toggleElement(anchorBeforeElement);
  toggleElement(anchorAfterElement);
}

function onShowMenu() {
  var ul = this.getElementsByTagName('ul');
  if (ul.length) {
    ul[0].className = 'popup';
  }
}
function onHideMenu() {
  var ul = this.getElementsByTagName('ul');
  if (ul.length) {
    ul[0].className = '';
  }
}
function initMenu() {
  var nav = document.getElementById('nav');
  var liElements = nav.getElementsByTagName('li');
  var i, li;
  for (i=0; i<liElements.length; ++i) {
    li = liElements[i];
    li.onmouseover = onShowMenu;
    li.onmouseout = onHideMenu;
  }
}
