   	/***********************************************************************************************
	
	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();
	
	var nextIndex;
	var prevIndex;
	
	var nextImage;
	var prevImage;
	
	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()
	{
		
		/*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;
			}
		}
		gallerySlide();
	}
	
	function showPreview(imagePath,imageIndex,direction, portfolioid){
			
		if(imageGalleryObj){
			
		if(imageIndex == "" && undefined == nextIndex){
			imageIndex = 0;
			nextIndex = 1;
			prevIndex = -1;
		}



		var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
		var subImages = document.getElementById('previewPane').getElementsByTagName('IMG');

		var movie_container = document.getElementById("movie_container");
		var sHTML = "";
		
		if(imageIndex == ""){
			if(direction == "next"){
				imageIndex = nextIndex;
			}else if(direction == "prev"){	
				imageIndex = prevIndex;
			}
		}	
		
		if(direction == ""){
			nextIndex = parseInt((imageIndex++)) + 1;
			prevIndex =  parseInt((imageIndex--))-2;
		}else{

			if(direction == "next"){
				nextIndex++;
				prevIndex++;
			}else if(direction == "prev"){	
				nextIndex--;
				prevIndex--;
			}
		}
		
	// Hide / Show Arrows
	
		var arrowright = document.getElementById('arrowright');
		var arrowleft = document.getElementById('arrowleft');
		
		if(prevIndex < 0){
			arrowleft.style.visibility = "hidden";
		}else{
			arrowleft.style.visibility = "visible";
		}
		
		if(nextIndex == slideshowImages.length){
			arrowright.style.visibility = "hidden";
		}else{
			arrowright.style.visibility = "visible";
		}		
		
		

	// Determin File Type	

		var fileLength = slideshowImages[imageIndex].id
		
		var fileType = slideshowImages[imageIndex].id.substr((fileLength.length-3));

		if(fileType.toLowerCase() == "mov" ||fileType.toLowerCase() == "flv" ){
			
		// Update Zoom Link
		
			var zoomLink = document.getElementById('bottom_zoom_button').getElementsByTagName('A');
			if(zoomLink.length > 0){
				zoomLink[0].style.visibility = "hidden";
			}
			
			var zoomLink = document.getElementById('fullimage').getElementsByTagName('A');
			if(zoomLink.length > 0){
				zoomLink[0].href = "";	
			}

		// Update Lightbox Link
			
			var lightBoxLink = document.getElementById('bottom_lb_button').getElementsByTagName('A');
			if(lightBoxLink.length > 0){
				lightBoxLink[0].style.visibility = "hidden";
			}				
			
		// Clear Movie Container
	
			movie_container.innerHTML = "";	
			
		// get file type
		
			var fileType = fileType.toLowerCase();
				
			if(fileType == "mov"){

				sHTML = sHTML + "<OBJECT CLASSID='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' WIDTH='320' HEIGHT='255' CODEBASE='http://www.apple.com/qtactivex/qtplugin.cab'>";
				sHTML = sHTML + "<PARAM name='SRC' VALUE='"+slideshowImages[imageIndex].id+"'>";
				sHTML = sHTML + "<PARAM name='AUTOPLAY' VALUE='true'>";
				sHTML = sHTML + "<PARAM name='CONTROLLER' VALUE='true'>";
				sHTML = sHTML + "<EMBED SRC='"+slideshowImages[imageIndex].id+"' WIDTH='320' HEIGHT='250' AUTOPLAY='true' CONTROLLER='true' PLUGINSPAGE='http://www.apple.com/quicktime/download/'>";
				sHTML = sHTML + "</EMBED></OBJECT>";		
				
				movie_container.innerHTML = sHTML;				
	
			}else if(fileType == "flv"){
				
				var movie = slideshowImages[imageIndex].id;
				var s1 = new SWFObject('player.swf','ply','320','250','9','#FFFFFF');
				s1.addParam('allowfullscreen','true');
				s1.addParam('flashvars','file='+movie+'&autostart=true&bufferlength=10');
				s1.write('movie_container');
				
				
                //sHTML = sHTML + "<div id='container'><a href='http://www.macromedia.com/go/getflashplayer'>Get the Flash Player</a> to see this player.</div>";
				/*sHTML = sHTML + "<script type='text/javascript' src='swfobject.js'></script>";
				sHTML = sHTML + "<script type='text/javascript'>";
				sHTML = sHTML + "var s1 = new SWFObject('player.swf','ply','320','250','9','#FFFFFF');";
				sHTML = sHTML + "s1.addParam('allowfullscreen','true');";
				sHTML = sHTML + "s1.addParam('flashvars','file="+slideshowImages[imageIndex].id+"&autostart=true');";
				sHTML = sHTML + "s1.write('container');";
				sHTML = sHTML + "</script>";	*/
				
				
				/*sHTML = sHTML + "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='480' height='337' id='FLVPlayer'>";
				sHTML = sHTML + "<param name='movie' value='FLVPlayer_Progressive.swf' />";
				sHTML = sHTML + "<param name='salign' value='lt' />";
				sHTML = sHTML + "<param name='quality' value='high' />";
				sHTML = sHTML + "<param name='scale' value='noscale' />";
				sHTML = sHTML + "<param name='FlashVars' value='&MM_ComponentVersion=1&skinName=Clear_Skin_1&streamName="+slideshowImages[imageIndex].id+"&autoPlay=true&autoRewind=false' />";
				sHTML = sHTML + "<embed src='FLVPlayer_Progressive.swf' flashvars='&MM_ComponentVersion=1&skinName=Clear_Skin_1&streamName="+slideshowImages[imageIndex].id+"&autoPlay=true&autoRewind=false' quality='high' scale='noscale' width='320' height='250' name='FLVPlayer' salign='LT' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />";
				sHTML = sHTML + "</object>";*/	
               
               
			}	
		// Remove Image
			
			if(subImages.length > 0){
				document.getElementById('previewPane').removeChild(subImages[0]);
			}			
			
		}else{
			
		// Clear Movie Container
			
			var object = document.getElementById('previewPane').getElementsByTagName('OBJECT');
			
			//if(object.length > 0){
				document.getElementById('movie_container').innerHTML = "";
			//}
	
			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); };
			
			if(direction == "next"){
				if(nextImage){
					img.src = nextImage;
				}else{
					img.src =  slideshowImages[1].id;
				}
				
			}else if(direction == "prev"){
				img.src = prevImage;
			}else if(direction == ""){
				img.src = imagePath;
			}

		// Border
		
			img.border = 0;
			
		// Update Zoom Link
		
			var zoomLink = document.getElementById('bottom_zoom_button').getElementsByTagName('A');

			if(zoomLink.length > 0){
				zoomLink[0].href = slideshowImages[imageIndex].title;	
				zoomLink[0].style.visibility = "visible";
			}
			
			var zoomLink = document.getElementById('fullimage').getElementsByTagName('A');
			if(zoomLink.length > 0){
				zoomLink[0].href = slideshowImages[imageIndex].title;		
			}			
		// Update Lightbox Link

			var lightBoxLink = document.getElementById('bottom_lb_button').getElementsByTagName('A');
			if(lightBoxLink.length > 0){
                if(portfolioid){
                    lightBoxLink[0].href = "lightbox.php?p="+portfolioid;
                }else{
                    lightBoxLink[0].href = "lightbox.php?p="+getBaseName(slideshowImages[imageIndex].id);
                }
				lightBoxLink[0].style.visibility = "visible";
			}
		}
		
		// Set Next Image
	
			if(nextIndex < slideshowImages.length && nextIndex >= 0){
				nextImage = slideshowImages[nextIndex].id;	
			}
	
			if(prevIndex < slideshowImages.length && prevIndex >= 0){
				prevImage = slideshowImages[prevIndex].id;
			}
			
		}
		
	}
	
	function hideWaitMessageAndShowCaption(imageIndex)
	{

		document.getElementById('waitMessage').style.display='none';	
		//document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex];
		//document.getElementById('largeImageCaption').style.display='block';
		
	}
	
	function getBaseName(fileName){
		var tr = fileName
		len = tr.length
		rs = 0
		for (i = len; i > 0; i--) {
		vb = tr.substring(i,i+1)
		if (vb == "/" && rs == 0) {
		return tr.substring(i+1,len)
		rs = 1
		}
		} 		
	}
	
	window.onload = initSlideShow;