/***********************************************************************************************
Copyright (c) 2005 - Alf Magne Kalleland post@dhtmlgoodies.com
UPDATE LOG:
March, 10th, 2006 : Added support for a message while large image is loading
Get this and other scripts at www.dhtmlgoodies.com
You can use this script freely as long as this copyright message is kept intact.
***********************************************************************************************/
var displayWaitMessage = true; // Display a please wait message while images are loading?

var activeImage = false;
var imageGalleryLeftPos = false;
var imageGalleryWidth = false;
var imageGalleryObj = false;
var maxGalleryXPos = false;
var slideSpeed = 0;
var imageGalleryCaptions = new Array();
function startSlide(e) {
  if (document.all) e = event;
  var id = this.id;
  this.getElementsByTagName('IMG')[0].src = 'images/gallery/' + this.id + '_over.png';
  if (this.id == 'arrow_right') {
    slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5);
    slideSpeed = -1 * slideSpeedMultiply;
    slideSpeed = Math.max(-10, slideSpeed);
  } else {
    slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
    slideSpeed = 1 * slideSpeedMultiply;
    slideSpeed = Math.min(10, slideSpeed);
    if (slideSpeed < 0) slideSpeed = 10;
  }
}

function releaseSlide() {
  var id = this.id;
  this.getElementsByTagName('IMG')[0].src = 'images/gallery/' + this.id + '.png';
  slideSpeed = 0;
}

function gallerySlide() {
  if (slideSpeed != 0) {
    var leftPos = imageGalleryObj.offsetLeft;
    leftPos = leftPos / 1 + slideSpeed;
    if (leftPos > maxGalleryXPos) {
      leftPos = maxGalleryXPos;
      slideSpeed = 0;

    }
    if (leftPos < minGalleryXPos) {
      leftPos = minGalleryXPos;
      slideSpeed = 0;
    }

    imageGalleryObj.style.left = leftPos + 'px';
  }
  setTimeout('gallerySlide()', 20);

}

function showImage() {
  if (activeImage) {
    activeImage.style.filter = 'alpha(opacity=50)';
    activeImage.style.opacity = 0.5;
  }
  this.style.filter = 'alpha(opacity=100)';
  this.style.opacity = 1;
  activeImage = this;
}

function initSlideShow() {
  document.getElementById('arrow_left').onmousemove = startSlide;
  document.getElementById('arrow_left').onmouseout = releaseSlide;
  document.getElementById('arrow_right').onmousemove = startSlide;
  document.getElementById('arrow_right').onmouseout = releaseSlide;

  imageGalleryObj = document.getElementById('theImages');
  imageGalleryLeftPos = imageGalleryObj.offsetLeft;
  imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80;
  maxGalleryXPos = imageGalleryObj.offsetLeft;
  minGalleryXPos = imageGalleryWidth - document.getElementById('slideEnd').offsetLeft;
  var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
  for (var no = 0; no < slideshowImages.length; no++) {
    slideshowImages[no].onmouseover = showImage;
  }

  var divs = imageGalleryObj.getElementsByTagName('DIV');
  for (var no = 0; no < divs.length; no++) {
    if (divs[no].className == 'imageCaption') imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
  }
  var anchors = imageGalleryObj.getElementsByTagName('A');
  if (anchors && anchors.length) anchors[0].onclick();
  gallerySlide();
}

function showPreview(imagePath, imageIndex) {
  if (!showPreview.imageIndex) showPreview.imageIndex = imageIndex;
  else if (showPreview.imageIndex == imageIndex) return;
  showPreview.imageIndex = imageIndex;
  var subImages = document.getElementById('previewPane').getElementsByTagName('IMG');
  if (subImages.length == 0) {
    var img = document.createElement('IMG');
    document.getElementById('previewPane').appendChild(img);
  } else img = subImages[0];

  if (displayWaitMessage) {
    document.getElementById('waitMessage').style.display = 'inline';
  }
  document.getElementById('largeImageCaption').style.display = 'none';
  img.onload = function() { 
    hideWaitMessageAndShowCaption(imageIndex); 
    var oeurl = document.getElementById('lwf_fddh_oeurl-' + imageIndex);
    if (oeurl) {
      var oealt = document.getElementById('lwf_fddh_alt-' + imageIndex);
      if (oealt) img.title = oealt.value;
      img.onclick = function() { location = oeurl.value; }
      img.style.cursor = "pointer";
    }
    else {
      img.onclick = function() { window.open(document.getElementById("enlargelink").href, "_blank"); };
      img.title = "";
      img.style.cursor = "pointer";
    }
  };
  img.src = imagePath;
}
function hideWaitMessageAndShowCaption(imageIndex) {
  document.getElementById('waitMessage').style.display = 'none';
  var lic = document.getElementById('largeImageCaption');
  lic.innerHTML = imageGalleryCaptions[imageIndex];
  lic.style.display = 'inline-block';
}
window.onload = initSlideShow;
