/***********************************************************************************************
Copyright (c) 2005 - Alf Magne Kalleland post@dhtmlgoodies.com
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=false;  // Display a please wait message while images are loading?
var activeImage = false;
var imageGalleryLeftPos = false;
var imageGalleryWidth = false;
var imageGalleryObj = false;
var maxGalleryXPos = true;
var slideSpeed = 0;
var imageGalleryCaptions = new Array();
var sliderLeftPosition = 0; // Absolute position of the left slider's beginning
var arrowRightWidth = 40; // width of the right arrow-div

var slideon    //ergänzung

/**
 * Arrow MouseOver: Display the hovered arrow, calculation of the slidingspeed
 */
function startSlide(e)
{
  if (slideon){
  if (document.all)e = event;

  //alert(this.id + ' ' +  imageGalleryWidth + ' gallerymin '+ minGalleryXPos + ' gallerymax ' + maxGalleryXPos + ' sliderLeftPosition ' + sliderLeftPosition) ;
  var id = this.id;
//  this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '_over.gif';
  if (this.id=='arrow_right') {
    slideSpeedMultiply = Math.floor(((e.clientX - sliderLeftPosition) - this.offsetLeft) / 5);
    slideSpeed = -1 * Math.abs(slideSpeedMultiply);
    slideSpeed = Math.max(-10,slideSpeed);



  } else {
    slideSpeedMultiply = 10 - Math.floor(((e.clientX - sliderLeftPosition) - this.offsetLeft) / 5);
    slideSpeed = 1*slideSpeedMultiply;
    slideSpeed = Math.min(10,slideSpeed);
    if (slideSpeed < 0) slideSpeed=0;
  }
  }
}


/**
 * Arrow MouseOut: Set Speed to 0 and display the normal arrow
 */
function releaseSlide()
{
  var id = this.id;
//  this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '.gif';
  slideSpeed=0;
}

function gallerySlide()
{




  //  if (this.id=='arrow_left') {

  	if (slideSpeed!=0) {

    		var leftPos = imageGalleryObj.offsetLeft;

    		leftPos = leftPos/1 + slideSpeed;
    		if (leftPos>maxGalleryXPos) {

      			leftPos = minGalleryXPos;
      			slideSpeed = 0;
    		}
    		if (leftPos<minGalleryXPos) {
      			leftPos = maxGalleryXPos;
      			slideSpeed=0;
    		}




    		imageGalleryObj.style.left = leftPos + 'px';
  	}
  // }
     setTimeout('gallerySlide()',10);

}

function gallerySlideLeft(){
        var leftend = getAbsoluteLeft( document.getElementById('theImages'));
        var leftborder = getAbsoluteLeft( document.getElementById('arrow_left')) + 20;
        var newpos =getAbsoluteLeft(imageGalleryObj)- sliderLeftPosition +28;
       //  alert("nach links" + " "  + getAbsoluteLeft(imageGalleryObj) + " " + leftend);
        if (leftend >= leftborder) {

        }

       else{
        	imageGalleryObj.style.left = newpos + 'px';
       }

}



function gallerySlideRight(){
       var rightend = getAbsoluteLeft( document.getElementById('slideEnd'));
       var rightborder = getAbsoluteLeft( document.getElementById('arrow_right'));
      var newpos = getAbsoluteLeft(imageGalleryObj) - sliderLeftPosition -82;

      if (rightend <=  rightborder) {

      }
      else{
        imageGalleryObj.style.left = newpos + 'px';

      }
       //alert("nach rechts"  + "  " + getAbsoluteLeft(imageGalleryObj) + "  "  + rightend);
}





/**
 * Show the hovered preview-Image, remove the opacity
 */
function showImage()
{


  	if (activeImage) {
    		activeImage.style.filter = 'alpha(opacity=99)';
    		activeImage.style.opacity = 0.99;
  	}


  	this.style.filter = 'alpha(opacity=99)';
  	this.style.opacity = 0.99;
  	activeImage = this;

}

/**
 * Initiate the Slideshow
 */
function initSlideShow()
{
slideobj = document.getElementById? document.getElementById('theImages'): null;
if (slideobj){

  //document.getElementById('arrow_left').onclick = startSlide;
  //document.getElementById('arrow_left').onmouseout = releaseSlide;
  //document.getElementById('arrow_right').onclick = startSlide;
  //document.getElementById('arrow_right').onmouseout = releaseSlide;


  imageGalleryObj = document.getElementById('theImages');


  slideon = document.getElementById? document.getElementById('thumb_6'): null;

  	sliderLeftPosition = getAbsoluteLeft(document.getElementById('arrow_left'));

  	imageGalleryLeftPos = imageGalleryObj.offsetLeft;
  	imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80 + arrowRightWidth;
        //imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth
  	//alert(imageGalleryWidth);
  	maxGalleryXPos =  imageGalleryObj.offsetLeft;
  	//alert(maxGalleryXPos);
  	minGalleryXPos = imageGalleryWidth - document.getElementById('slideEnd').offsetLeft;


  	//minGalleryXPos = 41;
  	//maxGalleryXPos = 41 -document.getElementById('slideEnd').offsetLeft;
        //alert(minGalleryXPos);

   document.getElementById('arrow_left').onclick = gallerySlideLeft;
  document.getElementById('arrow_right').onclick = gallerySlideRight;

  var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
  for (var no=0; no < slideshowImages.length; no++) {
    slideshowImages[no].onmouseover = showImage;
  }
// No Caption needed
//   var divs = imageGalleryObj.getElementsByClassName('imageCaption');
//   for (var no=0; no < divs.length; no++) {
//     imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
//   }
 // gallerySlide();

}
}

function showPreview(imagePath,imageIndex) {



 // var subImages = $('previewPane').getElementsByTagName('IMG');
  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';
  }
// No Caption needed
//   $('largeImageCaption').style.display='none';
  //img.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); };
  img.onload = function() { hideWaitMessageAndShowCaption(imageIndex); };
  img.src = imagePath;
}

function hideWaitMessageAndShowCaption(imageIndex)
{
  document.getElementById('waitMessage').style.display='none';

   document.getElementById('currimagecaption').innerHTML =  document.getElementById('icaption_'+imageIndex).innerHTML;

}

/**
 * UTIL
 */
function getAbsoluteLeft(o) {
 // Get an object top position from the upper left viewport corner
  // Tested with relative and nested objects
 oTop = o.offsetLeft;            // Get top position from the parent object
 while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
  oParent = o.offsetParent; // Get parent object reference
  oTop += oParent.offsetLeft; // Add parent top position
  o = oParent;
 }
 // Return top position
 return oTop ;
}




    window.onload = initSlideShow;


