var slideSpeed = 25000; //Milliseconds

var nextSlideInterval;
var slides;
var i = 0; //Current slide

function startSlide() {
  slides = document.getElementsByClassName('slideshow');
  if (slides.length > 1){
    slides[0].style.display = 'block';
    for (var k = 1; k < slides.length; k++) {
      slides[k].style.opacity = 0;
      slides[k].style.filter  = "alpha(opacity=" + 0 + ")";
    }
    nextSlideInterval = setInterval(nextSlide, slideSpeed);
  }
}

function nextSlide() {
  var fadeOutInterval = setInterval(fadeOut, 100);
  var fadeInInterval;
  var j = 10;
  function fadeOut() {
    slides[i].style.opacity = 0.1 * j;
    slides[i].style.filter  = "alpha(opacity=" + j * 10 + ")";
    j--;
    if (j == -1) {
      slides[i].style.opacity = 0;
      slides[i].style.filter  = "alpha(opacity=" + 0 + ")";
      j = 0;
      slides[i].style.display = 'none';
      //Next Slide
      if (i == slides.length -1) {
        i = 0;
      } else {
        i++;
      }
      slides[i].style.display = 'block';
      fadeInInterval = setInterval(fadeIn, 100);
      clearInterval(fadeOutInterval);
    }
  }
  function fadeIn() {
    slides[i].style.opacity = 0.1 * j;
    slides[i].style.filter  = "alpha(opacity=" + j * 10 + ")";
    j++;
    if (j == 11) {
      slides[i].style.opacity = 1;
      slides[i].style.filter  = "alpha(opacity=" + 100 + ")";
      j = 10;
      clearInterval(fadeInInterval)
    }
  }
}

function hoverOver() {
  clearInterval(nextSlideInterval);
}

function hoverOut() {
  nextSlideInterval = setInterval(nextSlide, slideSpeed);
}

document.getElementsByClassName = function(cl) {
  var retnode = [];
  var myclass = new RegExp('\\b'+cl+'\\b');
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    var classes = elem[i].className;
    if (myclass.test(classes)) retnode.push(elem[i]);
  }
  return retnode;
}
