	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, November 2005
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland

	
	I've thrashed this code so please do not use it as a template, see www.dhtmlgoodies.com for original
        thomas@infoplus.nom

	
	************************************************************************************************************/
	var arrowImageHeight = 35;	// Height of arrow image in pixels;
	var displayWaitMessage=true;	// Display a please wait message while images are loading?
	
	var previewImage_top = false;
	var previewImageParent_top = false;
	var slideSpeed_top = 0;
	var previewImagePane_top = false;
	var slideEndMarker_top = false;
	var galleryContainer_top = false;
	var imageGalleryCaptions_top = new Array();


	var previewImage_last = false;
	var previewImageParent_last = false;
	var slideSpeed_last = 0;
	var previewImagePane_last = false;
	var slideEndMarker_last = false;
	var galleryContainer_last = false;
	var imageGalleryCaptions_last = new Array();


	function getTopPos(inputObj)
	{			
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
	  return returnValue;
	}
	
	function getLeftPos(inputObj)
	{
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
	  return returnValue;
	}
		
	function showPreview(newSrc,imageIndex,mode)
	{
	  var previewImage = previewImage_top;
  	  var previewImageParent = previewImageParent_top;
	  var slideSpeed = slideSpeed_top;
	  var previewImagePane = previewImagePane_top;
	  var slideEndMarker = slideEndMarker_top;
	  var galleryContainer = galleryContainer_top;
	  var imageGalleryCaptions = imageGalleryCaptions_top;
	  
 	  if(mode=='last'){
	    previewImage = previewImage_last;
  	    previewImageParent = previewImageParent_last;
	    slideSpeed = slideSpeed_last;
	    previewImagePane = previewImagePane_last;
	    slideEndMarker = slideEndMarker_last;
	    galleryContainer = galleryContainer_last;
	    imageGalleryCaptions = imageGalleryCaptions_last;
          }

		if(!previewImage){
			var images = document.getElementById('previewPane_'+mode).getElementsByTagName('IMG');
			if(images.length>0){
				previewImage = images[0];
			}else{
				previewImage = document.createElement('IMG');
				document.getElementById('previewPane_'+mode).appendChild(previewImage);	
			}
			
			
		}
		if(displayWaitMessage){
			document.getElementById('waitMessage_'+mode).style.display='inline';
		}
		document.getElementById("largeImageCaption_"+mode).style.display='none';
		previewImage.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1,mode); };				
		previewImage.src = newSrc;
		
	}
	function hideWaitMessageAndShowCaption(imageIndex,mode)
	{
	  var previewImage = previewImage_top;
  	  var previewImageParent = previewImageParent_top;
	  var slideSpeed = slideSpeed_top;
	  var previewImagePane = previewImagePane_top;
	  var slideEndMarker = slideEndMarker_top;
	  var galleryContainer = galleryContainer_top;
	  var imageGalleryCaptions = imageGalleryCaptions_top;
	  
 	  if(mode=='last'){
	    previewImage = previewImage_last;
  	    previewImageParent = previewImageParent_last;
	    slideSpeed = slideSpeed_last;
	    previewImagePane = previewImagePane_last;
	    slideEndMarker = slideEndMarker_last;
	    galleryContainer = galleryContainer_last;
	    imageGalleryCaptions = imageGalleryCaptions_last;
          }

		document.getElementById('waitMessage_'+mode).style.display='none';	
		document.getElementById('largeImageCaption_'+mode).innerHTML = imageGalleryCaptions[imageIndex];

		document.getElementById('largeImageCaption_'+mode).style.display='block';
		
	}	
	function initSlideTop(e)
	{
		if(document.all)e = event;		
		if(this.src.indexOf('over')<0)this.src = this.src.replace('.gif','-over.gif');		
		slideSpeed_top = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop) - getTopPos(this);
		if(this.src.indexOf('down')>=0){
			slideSpeed_top = (slideSpeed_top)*-1;	
		}else{
			slideSpeed_top = arrowImageHeight - slideSpeed_top;
		}
		slideSpeed_top = Math.round(slideSpeed_top * 10 / arrowImageHeight);
	}
	function initSlideLast(e)
	{
		if(document.all)e = event;		
		if(this.src.indexOf('over')<0)this.src = this.src.replace('.gif','-over.gif');		
		slideSpeed_last = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop) - getTopPos(this);
		if(this.src.indexOf('down')>=0){
			slideSpeed_last = (slideSpeed_last)*-1;	
		}else{
			slideSpeed_last = arrowImageHeight - slideSpeed_last;
		}
		slideSpeed_last = Math.round(slideSpeed_last * 10 / arrowImageHeight);
	}


	
	function stopSlideTop()
	{		
		slideSpeed_top = 0;
		this.src = this.src.replace('-over','');
	}

	function stopSlideLast()
	{		
		slideSpeed_last = 0;
		this.src = this.src.replace('-over','');
	}
	
	function slidePreviewPaneTop()
	{
		if(slideSpeed_top!=0){

			var topPos = previewImagePane_top.style.top.replace(/[^\-0-9]/g,'')/1;	
			if(slideSpeed_top<0 && slideEndMarker_top.offsetTop<(previewImageParent_top.offsetHeight - topPos)){
				slideSpeed_top=0;
			
			}
			topPos = topPos + slideSpeed_top;
			if(topPos>0)topPos=0;

		 	previewImagePane_top.style.top = topPos + 'px';
	 	
		}
	 	setTimeout("slidePreviewPaneTop()",30);		
	}


	function slidePreviewPaneLast()
	{
		if(slideSpeed_last!=0){

			var topPos = previewImagePane_last.style.top.replace(/[^\-0-9]/g,'')/1;	
			if(slideSpeed_last<0 && slideEndMarker_last.offsetTop<(previewImageParent_last.offsetHeight - topPos)){
				slideSpeed_last=0;
			
			}
			topPos = topPos + slideSpeed_last;
			if(topPos>0)topPos=0;

		 	previewImagePane_last.style.top = topPos + 'px';
	 	
		}
	 	setTimeout("slidePreviewPaneLast()",30);		
	}



	
	function revealThumbnail()
	{
		this.style.filter = 'alpha(opacity=100)';
		this.style.opacity = 1;
	}
	
	function hideThumbnail()
	{
		this.style.filter = 'alpha(opacity=50)';
		this.style.opacity = 0.5;
	}
	


	function initGalleryScript()
	{

		previewImageParent_top = document.getElementById("theImages_top");
		previewImagePane_top = previewImageParent_top.getElementsByTagName('DIV')[0];
		previewImagePane_top.style.top = '0px';

                //alert("count "+document.getElementById("theImages_top").getElementsByTagName('DIV')[0].style);
		galleryContainer_top  = document.getElementById("galleryContainer_top");
		var images = previewImagePane_top.getElementsByTagName('IMG');
	        //alert("images size is "+images.length+" for mode "+mode);
		for(var no=0;no<images.length;no++){
			images[no].onmouseover = revealThumbnail;
			images[no].onmouseout = hideThumbnail;
		}	
		slideEndMarker_top = document.getElementById("slideEnd_top");
		
		document.getElementById('arrow_up_image_top').onmousemove = initSlideTop;
		document.getElementById('arrow_up_image_top').onmouseout = stopSlideTop;
		document.getElementById('arrow_down_image_top').onmousemove = initSlideTop;
		document.getElementById('arrow_down_image_top').onmouseout = stopSlideTop;

		var divs = previewImageParent_top.getElementsByTagName('DIV');

	                //alert("divs length="+divs.length);
		for(var no=0;no<divs.length;no++){
	                //alert("concat('imageCaption_',mode)");
			if(divs[no].className=='imageCaption'){
	                imageGalleryCaptions_top[imageGalleryCaptions_top.length] = divs[no].innerHTML;
	                //alert("heeelo2");
                        }
		}		

		slidePreviewPaneTop();



		previewImageParent_last = document.getElementById("theImages_last");
		previewImagePane_last = previewImageParent_last.getElementsByTagName('DIV')[0];
		previewImagePane_last.style.top = '0px';

                //alert("count "+document.getElementById("theImages_last").getElementsByTagName('DIV')[0].style);
		galleryContainer_last  = document.getElementById("galleryContainer_last");
		var images = previewImagePane_last.getElementsByTagName('IMG');
	        //alert("images size is "+images.length+" for mode "+mode);
		for(var no=0;no<images.length;no++){
			images[no].onmouseover = revealThumbnail;
			images[no].onmouseout = hideThumbnail;
		}	
		slideEndMarker_last = document.getElementById("slideEnd_last");
		
		document.getElementById('arrow_up_image_last').onmousemove = initSlideLast;
		document.getElementById('arrow_up_image_last').onmouseout = stopSlideLast;
		document.getElementById('arrow_down_image_last').onmousemove = initSlideLast;
		document.getElementById('arrow_down_image_last').onmouseout = stopSlideLast;

		var divs = previewImageParent_last.getElementsByTagName('DIV');

	                //alert("divs length="+divs.length);
		for(var no=0;no<divs.length;no++){
	                //alert("concat('imageCaption_',mode)");
			if(divs[no].className=='imageCaption'){
	                imageGalleryCaptions_last[imageGalleryCaptions_last.length] = divs[no].innerHTML;
	                //alert("heeelo2");
                        }
		}		

		slidePreviewPaneLast();
		
	}
	

  var oldOnLoad = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = function() {
      initGalleryScript();
      document.body.style.visibility = "visible";
    };
  } else {
    window.onload = function() {
      oldOnLoad();
      initGalleryScript();
      document.body.style.visibility = "visible";
    };
  }
