function DisplayImage(ImgDir, ImgFile) {
 var CurrentPositionNumber = SlideshowPosition;
 $(SlideshowDivNameHash).fadeOut(FadeOutTime, function() {
  document.getElementById(SlideshowDivName).innerHTML = "<img src=\"./" + ImgDir + "/" + ImgFile + "\"></img>";
  var StepCounter=0;
  for (StepCounter = 1; StepCounter <= NumberOfSlides; StepCounter++) {
   var SomeSlidePosition = "#thumb" + StepCounter;
   if ($(SomeSlidePosition).hasClass("isBeingShown")) {
    $(SomeSlidePosition).removeClass("isBeingShown").addClass("isNotBeingShown");
   }
  }
  var CurrentSlidePosition = "#thumb" + CurrentPositionNumber;
  if (!SlideshowRunning) {
   $(CurrentSlidePosition).removeClass("isNotBeingShown").addClass("isBeingShown");
  }
 });
 $(SlideshowDivNameHash).fadeIn(FadeInTime);
}

function DisplaySlideshow() {
 clearTimeout(TimeoutID);
 TimeoutID = setTimeout(function() {
  if (RandomizeSlides) {
   var LastSSPos = SlideshowPosition;
   while (SlideshowPosition == LastSSPos) {
    SlideshowPosition = (Math.floor(Math.random()*NumberOfSlides))+1;
   }
  }
  if (SlideshowRunning) {DisplayImage(SlideshowDirectory, SlideshowFileNames[SlideshowPosition]);}
  if (!RandomizeSlides) {
   SlideshowPosition++;
   if (SlideshowPosition > NumberOfSlides) {SlideshowPosition = 1};
  }
  if (SlideshowRunning) {DisplaySlideshow()};  
 }, SlideshowSlideTime);
}

function ButtonToggleSlideshow() {
 if (SlideshowRunning==true) {
  SlideshowRunning = false;
  document.getElementById("PlayPauseButton").innerHTML = "<img src=\"./" + PlayButtonName + "\"></img>";
 } else {
  SlideshowPosition++;
  if (SlideshowPosition > NumberOfSlides) {SlideshowPosition = 1};
  DisplayImage(SlideshowDirectory, SlideshowFileNames[SlideshowPosition]);
  SlideshowPosition++;
  if (SlideshowPosition > NumberOfSlides) {SlideshowPosition = 1};
  SlideshowRunning = true;
  document.getElementById("PlayPauseButton").innerHTML = "<img src=\"./" + PauseButtonName + "\"></img>";
  DisplaySlideshow();
 }
}

function ButtonStepForward() {
 if (SlideshowRunning) {
  SlideshowRunning = false;
  SlideshowPosition--;
 }
 document.getElementById("PlayPauseButton").innerHTML = "<img src=\"./" + PlayButtonName + "\"></img>";
 SlideshowPosition++;
 if (SlideshowPosition > NumberOfSlides) {SlideshowPosition = 1};
 clearTimeout(TimeoutID);
 DisplayImage(SlideshowDirectory, SlideshowFileNames[SlideshowPosition]);
}

function ButtonStepBack() {
 if (SlideshowRunning) {
  SlideshowRunning = false;
  SlideshowPosition--;
 }
 document.getElementById("PlayPauseButton").innerHTML = "<img src=\"./" + PlayButtonName + "\"></img>";
 SlideshowPosition--;
 if (SlideshowPosition < 1) {SlideshowPosition = NumberOfSlides};
 clearTimeout(TimeoutID);
 DisplayImage(SlideshowDirectory, SlideshowFileNames[SlideshowPosition]);
}

function ButtonSelectSlide(TargetSlide) {
 SlideshowRunning = false;
 document.getElementById("PlayPauseButton").innerHTML = "<img src=\"./" + PlayButtonName + "\"></img>";
 SlideshowPosition = TargetSlide;
 clearTimeout(TimeoutID);
 DisplayImage(SlideshowDirectory, SlideshowFileNames[SlideshowPosition]);
}

function PreloadImages() {
 var PreloadImagesString = "";
 for (i=1; i<=NumberOfSlides; i++) {
  PreloadImagesString += "<img src=\"./" + SlideshowDirectory + "/" + SlideshowFileNames[i] + "\"></img>";
 }
 document.getElementById("PreloadImagesDiv").innerHTML = PreloadImagesString;
}

function InitializeSlideshow() {
 if (RandomizeSlides) {
  SlideshowPosition = (Math.floor(Math.random()*NumberOfSlides))+1;
 } else {
  SlideshowPosition = 1;
 }
 GetSlideshowImagesList();
 PreloadImages();
 if (AllowInteraction == true) {
  document.getElementById("PlayPauseButton").innerHTML = "<img src=\"./" + PauseButtonName + "\"></img>";
 }
 if (!RandomizeSlides) {
  SlideshowPosition++;
 }
 DisplaySlideshow();
}


