    /***********************************************************************************************
    
    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/' + this.id + '_over.gif';    
        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/' + 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=50)'; 
            activeImage.style.opacity = 0.5;
        }   
        this.style.filter = 'alpha(opacity=100)';
        this.style.opacity = 1; 
        activeImage = this; 
    }
    
    function initSlideShow()
    {
        if(document.getElementById('arrow_left')!=null)
        {
        document.getElementById('arrow_left').onmousemove = startSlide;
        document.getElementById('arrow_left').onmouseout = releaseSlide;
        }
        
        if(document.getElementById('arrow_right')!=null)
        {
        document.getElementById('arrow_right').onmousemove = startSlide;
        document.getElementById('arrow_right').onmouseout = releaseSlide;
        }
        
        if(document.getElementById('theImages')!=null)
        {
        imageGalleryObj = document.getElementById('theImages');
        imageGalleryLeftPos = imageGalleryObj.offsetLeft;
        }

         if(document.getElementById('galleryContainer')!=null)
        {
        imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80;
        }
        maxGalleryXPos = imageGalleryObj.offsetLeft; 

        if(document.getElementById('slideEnd')!=null)
        {
        minGalleryXPos = imageGalleryWidth - document.getElementById('slideEnd').offsetLeft;
        }
        
        if(document.getElementById('theImages')!=null)
        { 
        var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
        for(var no=0;no<slideshowImages.length;no++){
            slideshowImages[no].onmouseover = showImage;
        }
        }
        
        if(document.getElementById('theImages')!=null)
        {
        var divs = imageGalleryObj.getElementsByTagName('DIV');
        for(var no=0;no<divs.length;no++){
            if(divs[no].className=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
        }
        }
        gallerySlide();
    }
    
    function showPreview(imagePath,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-1); };
        img.src = imagePath;
        
    }
    function hideWaitMessageAndShowCaption(imageIndex)
    {
        document.getElementById('waitMessage').style.display='none';    
        document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex];
        document.getElementById('largeImageCaption').style.display='block';
        
    }
    window.onload = initSlideShow;