var xmlDoc, t, t2, max, currImg, img;
var x = 0;
var ss = document.getElementById("slideshowContainer");
var slideshow = document.getElementById("slideshow");
var preload = document.getElementById("preloadImg");
var nextLnk = document.getElementById("next");
var prevLnk = document.getElementById("prev");
var pauseLnk = document.getElementById("pause");
var controls = document.getElementById("controls");
var redirect = document.getElementById("info");
var speed = 8000;
var contWidth = 960;
var isNextImg = true;
var isFirstPlay = true;
var isControlsActive = true;
var isPaused = true;

if (window.addEventListener) {
  nextLnk.addEventListener('click', nextImg, false);
  prevLnk.addEventListener('click', prevImg, false);
  pauseLnk.addEventListener('click', pause, false);
  ss.addEventListener('mouseover', showControls, false);
} else {
  nextLnk.attachEvent('onclick', nextImg);
  prevLnk.attachEvent('onclick', prevImg);
  pauseLnk.attachEvent('onclick', pause);
  ss.attachEvent('onmouseover', showControls);
}

if (isControlsActive == true) {
  $("controls").fade();
  isControlsActive = false;
}

initSlideShow();

function initSlideShow() {
  getXML("slideshow.xml", "GET", false);
  var items = xmlDoc.getElementsByTagName("slide");
  
  ss.style.width = contWidth * items.length;
  
  if (isFirstPlay == true) { 
    for (var i=0; i<items.length; i++) {
      ss.innerHTML += "<img src='" + items[i].getElementsByTagName("imageURL")[0].childNodes[0].nodeValue + "' alt='' />";
    }
    isFirstPlay = false;
  }
  
  redirect.href = items[x].getElementsByTagName("redirect")[0].childNodes[0].nodeValue;
  max = items.length;
  
  startTimer();
  //ss.innerHTML = currImg;
  /*
  if (isFirstPlay == true) {
    for (var i=0; i<max; i++) {
      img += "<img src='" + item[i].getElementsByTagName("imageURL")[0].childNodes[0].nodeValue + "' alt='' />"
    }
    
    preload.innerHTML = img;
    isFirstPlay = false;
  }
  */
}

function getXML(fileURL, method, async) {
  if (window.XMLHttpRequest) {
    xmlDoc = new window.XMLHttpRequest();
    xmlDoc.open(method, fileURL, async);
    xmlDoc.send("");
    xmlDoc = xmlDoc.responseXML;
  } else if (window.ActiveXObject) {
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = async;
    xmlDoc.load(fileURL);
  } else {
    document.write("There was an error display the data. Please make sure javascript is enabled on you computer.");
  }
}

function getValue() {
  if (x < (max - 1)) {
    nextImg();
  } else {
    resetImg();
  }
  initSlideShow();
  return x;
}

function startTimer() {
  t = setTimeout('getValue()', speed);
}

function restartTimer() {
  clearTimeout(t);
  initSlideShow();
}

function nextImg() {
  if (x < (max - 1)) {
    x++;
    new Effect.Move('slideshowContainer', {
      x: (contWidth * -1),
      y: 0,
      queue: {
        position: 'front',
        scope: 'myQueue'
      }
    });
    isPaused = true;
  }
  isNextImg = true;
}

function prevImg() {
  if (x > 0) {
    x--;
    new Effect.Move('slideshowContainer', {
      x: contWidth,
      y: 0,
      queue: {
        position: 'front',
        scope: 'myQueue'
      }
    });
    isPaused = true;
  }
  isNextImg = false;
}

function resetImg() {
  x = 0;
  new Effect.Move('slideshowContainer', {
      x: (contWidth * (max - 1)),
      y: 0,
      queue: {
        position: 'front',
        scope: 'myQueue'
      }
  });
  isNextImg = true;
}

function pause() {
   if(isPaused == true) {
     clearTimeout(t);
     pauseLnk.style.background = "url('images/2011/play.png')";
     isPaused = false;
   } else {
     initSlideShow();
     pauseLnk.style.background = "url('images/2011/pause.png')";
     isPaused = true;
   }
}

function showControls() {
  Effect.Appear("controls", {
    duration: 1.5
  });
  isControlsActive = false;
  t2 = setTimeout('hideControls()', 3000);
  pause();
}

function hideControls() {
  $("controls").fade();
  clearTimeout(t2);
  isControlsActive = true;
  pause();
}
