/***********************************************************************************************

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 = '/image-slideshow/images/' + this.id + '_over.gif';
	if(this.id=='arrow_right'){
		slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5);
		slideSpeed = -1*slideSpeedMultiply;
		slideSpeed = Math.max(-1,slideSpeed);
	}else{
		slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
		slideSpeed = 1*slideSpeedMultiply;
		slideSpeed = Math.min(1,slideSpeed);
		if(slideSpeed<0)slideSpeed=5;
	}
}

function releaseSlide()
{
	var id = this.id;
	this.getElementsByTagName('IMG')[0].src = '/image-slideshow/images/' + this.id + '.gif';
	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=75)';
        activeImage.style.opacity = 0.75;
    }
	this.style.filter = 'alpha(opacity=100)';
	this.style.opacity = 1;
	activeImage = this;
}

function initSlideShow()
{
    var a_left, a_right;
//    alert(document.getElementById);
    try{
      	document.getElementById('arrow_right');
    }
    catch(err){
        a_left = null;
    }
    try{
        a_right = document.getElementById('arrow_right');
    }
    catch(err){
        a_right = null;
    }

    if( a_left ){
        a_left.onmousemove = startSlide;
	    a_left.onmouseout = releaseSlide;
	}
	if( a_right ){
        a_right.onmousemove = startSlide;
	    a_right.onmouseout = releaseSlide;
	}

	imageGalleryObj = document.getElementById('theImages');
    if( imageGalleryObj ){
	    imageGalleryLeftPos = imageGalleryObj.offsetLeft;
    	maxGalleryXPos = imageGalleryObj.offsetLeft;
	}
	else{
	    imageGalleryLeftPos = 0;
        maxGalleryXPos = 0;
	}

    var galleryContainer = document.getElementById('galleryContainer');
    if(galleryContainer){
	    imageGalleryWidth = offsetWidth - 80; // 30; // Jelwood changed from 80 to 0
	}
	else{
	    imageGalleryWidth = 0;
	}

    var slideEnd = document.getElementById('slideEnd');
    if( slideEnd){
	    minGalleryXPos = imageGalleryWidth - slideEnd.offsetLeft;
	}
	else{
	    minGalleryXPos = 0;
	}

	var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
	for(var no=0;no<slideshowImages.length;no++){
		slideshowImages[no].onmouseover = showImage;
	}

	var divs = imageGalleryObj.getElementsByTagName('DIV');
    if( divs ){
    	for(var no=0;no<divs.length;no++){
            if(divs[no].className=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
    	}
    }
	gallerySlide();
}

function showPreview(imagePath,imageIndex){
    // ss -- factored out commonly used element
	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];
	}

    // added by ss
    var subHref = document.getElementById('previewPane').getElementsByTagName('A');
    var anHref = 0;
	if(subHref.length==0){
		anHref = document.createElement('A');
		document.getElementById('previewPane').appendChild(anHref);
	}
	else{
	    anHref = subHref[0];
	}
	anHref.href = imagePath;

	if(displayWaitMessage){
		document.getElementById('waitMessage').style.display='inline';
	}

    // ss -- fix bug if no largeImageCaption element
    var largeImageCaptionDiv = document.getElementById('largeImageCaption');
    if(largeImageCaptionDiv){
        largeImageCaptionDiv.style.display='none';
    }
	img.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); };
	img.src = imagePath;
}

function hideWaitMessageAndShowCaption(imageIndex)
{
	document.getElementById('waitMessage').style.display='none';
}

window.onload = initSlideShow;


