// Configuration
var index = 0;
var numSlides = 3;
var fadeSpeed = 15;
var fadeValue = 5;
var isMac = false;
if (navigator.platform.indexOf("Mac") != -1) {
 //isMac = true;
}
var isLoaded = true;

var pausePreview = 6000;

var currentPanelIndex = 0;
var opacityLevel = 100;
var currentPause = pausePreview;
var isPaused = false;
var currentDirection = 1;
var timeoutsInProgress = 0;

function initSlideShow() {
 var panel = document.getElementById("show0");
 var fpDivName = "fp" + index;
 var fpDiv = document.getElementById(fpDivName);
 panel.innerHTML = fpDiv.innerHTML;
 timeoutsInProgress++;
 setTimeout('fadeOutTimed()', pausePreview); 
}

function fadeImage(delta) { 
 if (delta < 0 && opacityLevel <= 0) {
  return false;
 }

 if (delta > 0 && opacityLevel >= 100) {
  return false;
 }

  opacityLevel+=delta;
  var panel = document.getElementById("show0");

  if (panel.filters) {
   var alpha = 'alpha(opacity=' + opacityLevel + ')';
   panel.style.filter = alpha;
  } else if (panel.style.MozOpacity) {
   mozTrans = opacityLevel/101;
   panel.style.MozOpacity = mozTrans;
  } else {
   panel.style.MozOpacity=opacityLevel/101;
  }

 return true;
}

function changeSlides(direction) {
 currentPanelIndex++;
 if (currentPanelIndex > 1) {
  currentPanelIndex = 0;
 }  

 index += direction;
 if (index >= numSlides) {
  index = 0;
 } else if (index < 0) {
  index = numSlides - 1;
 }
}

function stopSlideShow() {
 isPaused = true;
 //var link = document.getElementById('stopSlideShow');
 //link.style.display = "none";

 //var link = document.getElementById('startSlideShow');
 //link.style.display = "inline"; 
}

function startSlideShow() {
 isPaused = false;
 fadeOut();
 //var link = document.getElementById('stopSlideShow');
 //link.style.display = "inline";

 //var link = document.getElementById('startSlideShow');
 //link.style.display = "none"; 
}

function previousSlide() {
  currentDirection = -1;
  nextSlide();
}

function nextSlide() {
  if (isMac) {
   flipSlides(currentDirection);
   currentDirection = 1;
   return;
  }

  if (opacityLevel < 100) {
   return;
  }


  if (isPaused) {
   isPaused = false;
   fadeOut();
   isPaused = true;
  } else if (opacityLevel == 100) {
   fadeOut();   
  } else {
   currentPause = 0;
  }
}

function fadeOutTimed() {
 if (!isLoaded) {
  setTimeout('fadeOutTimed()', pausePreview);
  return;
 }

 timeoutsInProgress--;
 if (timeoutsInProgress <= 0) {
  fadeOut();
 }
}

function flipSlides(direction) {  
  var currentPanel = document.getElementById("show0");
  changeSlides(direction);  

  var fpDivName = "fp" + index; 
  var fpDiv = document.getElementById(fpDivName);
  currentPanel.innerHTML = fpDiv.innerHTML;

  if (!isPaused && timeoutsInProgress <= 0) {
   timeoutsInProgress++;
   setTimeout('fadeOutTimed()', pausePreview);
  }
}

function fadeOut() {
 if ((opacityLevel == 100 || isMac) && isPaused) {
  return;
 }

 if (isMac) {
  flipSlides(currentDirection);
  return;
 }
 
 if (fadeImage(-fadeValue)) {
  setTimeout("fadeOut()", fadeSpeed);
 } else {
  opacityLevel = 0;
  changeSlides(currentDirection);
  if (currentDirection == -1) {
   currentDirection = 1;
  }

  var panel = document.getElementById("show0");
  var fpDivName = "fp" + index;
  var fpDiv = document.getElementById(fpDivName);
  panel.innerHTML = fpDiv.innerHTML; 

  setTimeout("fadeIn()", fadeSpeed);
 }
}

function fadeIn() {
 if (fadeImage(fadeValue)) {
  setTimeout("fadeIn()", fadeSpeed);
 } else {
  opacityLevel = 100;
  if (currentPause != 0) {
  }

  if (!isPaused) {
   if (currentPause == 0) {
    fadeOut();
    currentPause = pausePreview;
   } else {
    if (timeoutsInProgress <= 0) {
     setTimeout("fadeOutTimed()", currentPause);   
     timeoutsInProgress++;
    }
   }
  }
 }
}

$(document).ready(function() {
 initSlideShow();
});
