
	//var nextImage; //these are now dynamically included via setInitalImages.js.php
	//var prevImage; //these are now dynamically included via setInitalImages.js.php
	var selectedKeyword = "";
	var forNextPervOnly = Array();
	
	function addItem( name )
	{
		forNextPervOnly[ forNextPervOnly.length ] = name;
		//alert( "forNextPervOnly is now " + forNextPervOnly.length + " records long. ");
	}
	
	var selcImage;

	//yay AJAX call!!@#$ :D
	function getImageStats( id )
	{
		var img = document.getElementById("galleryDisplayImage");
		img.src = "img/zl-temp.png";
		
		makeRequest( "/pastevents/zl2006/photos/backend/?img=" + escape(id) , ReceiveImageData);
		selcImage = id;		
	}
	
	function ReceiveImageData()
	{
		if (http_request.readyState == 4) 
		{
	        if (http_request.status == 200) 
	        {
	            var xmldoc = http_request.responseXML;
	            var root_node = xmldoc.getElementsByTagName('picture-data').item(0);
	            
	            //alert( http_request.responseText );
	            
	            var img = document.getElementById("galleryDisplayImage");
	            var titlebox = document.getElementById("floatingTitlebar");
	            var titlebox_caption = document.getElementById("floatingTitlebarCaption");
	            var captionbox = document.getElementById("floatingCaptionbar");
	            var captionbox_caption = document.getElementById("floatingCaptionbarCaption");
	            
	            var copyrightbox = document.getElementById("floatingCopyright");
	            var copyrightbox_caption = document.getElementById("copyright_caption");
	            
	            try { var title = root_node.getElementsByTagName('title').item(0).firstChild.nodeValue; } catch(e) { var title = ""; }
	            try { var description = root_node.getElementsByTagName('description').item(0).firstChild.nodeValue; } catch(e) { var description = ""; }
	            
	            var selectedKeywordText = "";
	            if( selectedKeyword != "" )
	            {
	            	selectedKeywordText = "keyword=" + escape( selectedKeyword ) + "&amp;";
	            }
	            	
	            
	           	description = '<span style="float:right;">[ <a href="#" onclick="prompt(\'This is the direct link to this image. Copy this value and click OK. (Note: it can take a while to pop-up the image)\', \'http://www.zionlan.net/pastevents/zl2006/photos/thumbs/?' + selectedKeywordText + 'img=\' + selcImage );return false;" title="View direct link to this image">Link</a> ] [ <a href="#" onclick="ToggleCopyright(); return false;" title="View copyright information">©2006</a> ] [ <a href="#" title="View metadata" onclick="ToggleMetaData(); return false;">+</a> ]</span>' + description;
	           	
	           	//try { nextImage = root_node.getElementsByTagName('nextImage').item(0).firstChild.nodeValue; } catch(e) {  }
	           	//try { prevImage = root_node.getElementsByTagName('previousImage').item(0).firstChild.nodeValue; } catch(e) {  }
	           	
	           	            
	            try
	            {
	            	img.src		= root_node.getElementsByTagName('webfilename').item(0).firstChild.nodeValue;
		            img.width 	= root_node.getElementsByTagName('width').item(0).firstChild.nodeValue;
		            img.height 	= root_node.getElementsByTagName('height').item(0).firstChild.nodeValue;
		            img.alt 	= title;
		            
		            //load metadata into thingie
		            try { var keywords = root_node.getElementsByTagName('keywords').item(0).firstChild.nodeValue; } catch(e) { var keywords = ""; }
		            try { var takenat = root_node.getElementsByTagName('taken_at').item(0).firstChild.nodeValue; } catch(e) { var takenat = ""; }
		            try { var takenby = root_node.getElementsByTagName('taken_by').item(0).firstChild.nodeValue; } catch(e) { var keywords = ""; }
		            try { var copyright = root_node.getElementsByTagName('copyright').item(0).firstChild.nodeValue; } catch(e) { var copyright = "©2006"; }
		            try { var camera = root_node.getElementsByTagName('camera').item(0).firstChild.nodeValue; } catch(e) { var camera = ""; }
		            try { var focal_length = root_node.getElementsByTagName('focal_length').item(0).firstChild.nodeValue; } catch(e) { var focal_length = ""; }
		            try { var exposure_time = root_node.getElementsByTagName('exposure_time').item(0).firstChild.nodeValue; } catch(e) { var exposure_time = ""; }
		            try { var aperture = root_node.getElementsByTagName('aperture').item(0).firstChild.nodeValue; } catch(e) { var aperture = ""; }
		            try { var iso_equiv = root_node.getElementsByTagName('iso_equiv').item(0).firstChild.nodeValue; } catch(e) { var iso_equiv = ""; }
		            try { var exposure_bias = root_node.getElementsByTagName('exposure_bias').item(0).firstChild.nodeValue; } catch(e) { var exposure_bias = ""; }
		            try { var flash = root_node.getElementsByTagName('flash').item(0).firstChild.nodeValue; } catch(e) { var flash = ""; }
		            try { var exposure_program = root_node.getElementsByTagName('exposure_program').item(0).firstChild.nodeValue; } catch(e) { var exposure_program = ""; }
		            try { var exposure_mode = root_node.getElementsByTagName('exposure_mode').item(0).firstChild.nodeValue; } catch(e) { var exposure_mode = ""; }
		            try { var metering_mode = root_node.getElementsByTagName('metering_mode').item(0).firstChild.nodeValue; } catch(e) { var metering_mode = ""; }
		            try { var white_balance = root_node.getElementsByTagName('white_balance').item(0).firstChild.nodeValue; } catch(e) { var white_balance = ""; }
		            try { var scene_capture_type = root_node.getElementsByTagName('scene_capture_type').item(0).firstChild.nodeValue; } catch(e) { var scene_capture_type = ""; }
		            
		            document.getElementById("metaKeywords").innerHTML = keywords + "&nbsp;";
		            document.getElementById("metaTakenAt").innerHTML = takenat + "&nbsp;";
		            document.getElementById("metaTakenBy").innerHTML = takenby + "&nbsp;";
		            document.getElementById("metaCamera").innerHTML = camera + "&nbsp;";
		            document.getElementById("metaFocalLength").innerHTML = focal_length + "&nbsp;";
		            document.getElementById("metaExposureTime").innerHTML = exposure_time + "&nbsp;";
		            document.getElementById("metaAperture").innerHTML = aperture + "&nbsp;";
		            document.getElementById("metaISO").innerHTML = iso_equiv + "&nbsp;";
		            document.getElementById("metaExposureBias").innerHTML = exposure_bias + "&nbsp;";
		            document.getElementById("metaFlash").innerHTML = flash + "&nbsp;";
					document.getElementById("metaExposureProgram").innerHTML = exposure_program + "&nbsp;";
					document.getElementById("metaExposureMode").innerHTML = exposure_mode + "&nbsp;";
					document.getElementById("metaMeteringMode").innerHTML = metering_mode + "&nbsp;";
					document.getElementById("metaWhiteBalance").innerHTML = white_balance + "&nbsp;";
					document.getElementById("metaSceneCaptureType").innerHTML = scene_capture_type + "&nbsp;";

					copyrightbox_caption.innerHTML = (copyright=="" ? "&nbsp;" : copyright );
					
		            try{ img.style.MozOpacity=0.0;} catch(e){};		
					try{ img.className="floatingImageHidden"; } catch(e){};
		            img.className = "floatingImage";
		            
		            relocatePossibleScrollTop();
		            
		            titlebox.className = "floatingTitlebar";
		            titlebox_caption.innerHTML = title;
		            
		            captionbox.className = "floatingCaptionbar";
		            captionbox_caption.innerHTML = description;
		            
		            xParStep = 0;	            
		            FadeIn();
		            
		            //
		            //figure out next and previous images
		            //
		            
		            var i = 0;
		            try
		            {
		            	
		            // step 1: find the location of the index of the current image
		            //alert( "forNextPervOnly is " + forNextPervOnly.length + " records long" );
		            for( i = 0; i < forNextPervOnly.length; i++)
		            {
		            	if( forNextPervOnly[i] == selcImage)
		            	{
		            		// found where we are at...
		         			//alert( "selcImage is index " + i );   		
		            		//get the next image (dont forget to wrap around)
			            	if( i < forNextPervOnly.length - 1 )
							{
								nextImage = forNextPervOnly[i + 1];
							}
							 else 
							{
								nextImage = forNextPervOnly[0];
							}
							
							//get the previous image (ditto about wrapping)
							if( i > 0 )
							{
								prevImage = forNextPervOnly[i - 1];
							}
							 else 
							{
								prevImage = forNextPervOnly[forNextPervOnly.length - 1];
							}
							
							break;
		            	}
		            }
		            } catch (e)
		            {
		            	alert( i + "; " + e );
		            }
		            		
		            
	            }
	             catch(e)
	            {
	            	//eat the error -- this will occur if the image being looked for doesnt exist and the xml return is bogus
	            }
	        }
	         else 
	        {
	            //alert('There was a problem with the request.');
	        }
	    }
	}
	
	
	//depricated
	function doPreviousImage()
	{
		document.getElementById(prevImage).onclick();
	}
	
	//depricated
	function doNextImage()
	{
		document.getElementById(nextImage).onclick();
	}
	
	var lastX;
	var lastY;
	
	function handleBigMouseDown( obj )
	{
		obj.className='floatingImageHidden';		
		document.getElementById("floatingTitlebar").className = "floatingTitlebarHidden";
		document.getElementById("floatingCaptionbar").className = "floatingCaptionbarHidden";
		document.getElementById("floatingMetabar").className = "floatingMetabarHidden";
        document.getElementById("floatingCopyright").className = "floatingCopyrightHidden";
	}
	
	var xParStep = 0;
	var xParSteps = new Array( 3,6,19,38,63,72,81,94,100 );
	var xParStepCount = 9;
	
	function FadeIn()
	{	
		//if in the middle of fading in, the user opted to close the image, abort fading in
		if( document.getElementById("galleryDisplayImage").className == "floatingImageHidden")
			return;
			
		if( xParStep < xParStepCount )
		{
			try	//IF NS/FF/MOZ
			{ 
				document.getElementById("galleryDisplayImage").style.MozOpacity=xParSteps[xParStep]/100;
			}
			 catch(e)
			{
				//eat the error
			}
			
			try	//IF IE
			{ 
				document.getElementById("galleryDisplayImage").style.filters.alpha.opacity=xParSteps[xParStep]; 
			}
			 catch(e)	//IF OTHER
			{ 
				document.getElementById("galleryDisplayImage").className = "floatingImage" + xParStep;
			}	
							
			xParStep++;
			setTimeout( "FadeIn()", 85 );
		}
	}
	
	function relocatePossibleScrollTop() 
	{
        var obj = document.getElementById("galleryDisplayImage");
        var titlebox = document.getElementById("floatingTitlebar");
        var captionbox = document.getElementById("floatingCaptionbar");
        var captionbox_caption = document.getElementById("floatingCaptionbarCaption");
        var metadata = document.getElementById("floatingMetabar");
        
        var copyrightbox = document.getElementById("floatingCopyright");
        var copyrightbox_caption = document.getElementById("copyright_caption");
        
        var topOffset = 5;
        var leftOffset = 5;
        
        //figure out vertial centering info
    	if( document.all)	//eh, whatever IE, you're gay anyway
    		topOffset = document.body.clientHeight / 2 - (obj.height / 2);
    	else
    		topOffset = document.body.clientHeight / 2 - (obj.height / 2) ;
    	
    	//figure out horizontal centering info
    	if( document.all)	//eh, whatever IE, you're gay anyway
    		leftOffset = document.body.clientWidth / 2 - (obj.width / 2);
    	else
    		leftOffset = document.body.clientWidth / 2 - (obj.width / 2) ;
    		
        if( document.all )
        {
	        try
	        {
	        	obj.style.top = (topOffset + document.body.scrollTop) + "px";
	        	obj.style.left = (leftOffset) + "px";
	        	
	        	titlebox.style.top = (topOffset + document.body.scrollTop - 48) + "px";
	        	titlebox.style.left = obj.style.left;
	        	
	        	captionbox.style.width = obj.width + "px";
	        	captionbox_caption.width = (obj.width - 44) + "px";
	        	captionbox.style.top = (topOffset + document.body.scrollTop + obj.height) + "px";
	        	captionbox.style.left = obj.style.left;
	        	
	        	metadata.style.top = (topOffset + document.body.scrollTop + obj.height - 288 -15) + "px";
	        	metadata.style.left = (leftOffset + obj.width - 450 -15) + "px";
	        	
	       		copyrightbox.style.width = (obj.width - 30) + "px";
	       		copyrightbox_caption.style.width = copyrightbox.style.width;
	       		copyrightbox.style.top = (topOffset + document.body.scrollTop + obj.height - 30 -15) + "px";
	       		copyrightbox.style.left = (leftOffset + 15) + "px";
	       	
	        }
	         catch(e)
	        {
	        	obj.style.top = (topOffset + document.documentElement.scrollTop) + "px";	        	
	        	obj.style.left = (leftOffset) + "px";
	        	
	        	titlebox.style.top = (topOffset + document.documentElement.scrollTop - 48) + "px";
	        	titlebox.style.left = obj.style.left;
	        	
	        	captionbox.style.width = obj.width + "px";
	        	captionbox_caption.width = (obj.width - 44) + "px";
	        	captionbox.style.top = (topOffset + document.documentElement.scrollTop + obj.height) + "px";
	        	captionbox.style.left = obj.style.left;
	        	
	        	metadata.style.top = (topOffset + document.documentElement.scrollTop + obj.height - 288 -15) + "px";
	        	metadata.style.left = (leftOffset + obj.width - 450 -15) + "px";
	        	
	        	copyrightbox.style.width = (obj.width - 30) + "px";
	       		copyrightbox_caption.style.width = copyrightbox.style.width;
	       		copyrightbox.style.top = (topOffset + document.documentElement.scrollTop + obj.height - 30 -15) + "px";
	       		copyrightbox.style.left = (leftOffset + 15) + "px";
	        }
        }
         else
        {
        	try
	        {
	        	obj.style.top = (topOffset + document.documentElement.scrollTop) + "px";	        	
	        	obj.style.left = (leftOffset ) + "px";
	        	
	        	titlebox.style.top = (topOffset + document.documentElement.scrollTop - 48) + "px";
	        	titlebox.style.left = obj.style.left;
	        	
	        	captionbox.style.width = obj.width + "px";
	        	captionbox_caption.width = (obj.width - 44) + "px";
	        	captionbox.style.top = (topOffset + document.documentElement.scrollTop + obj.height) + "px";
	        	captionbox.style.left = obj.style.left;
	        	
	        	metadata.style.top = (topOffset + document.documentElement.scrollTop + obj.height - 288 -15) + "px";
	        	metadata.style.left = (leftOffset + obj.width - 450 -15) + "px";
	        	
	        	copyrightbox.style.width = (obj.width - 30) + "px";
	       		copyrightbox_caption.style.width = copyrightbox.style.width;
	       		copyrightbox.style.top = (topOffset + document.documentElement.scrollTop + obj.height - 30 -15) + "px";
	       		copyrightbox.style.left = (leftOffset + 15) + "px";
	        }
	         catch(e)
	        {
	        	obj.style.top = (topOffset + document.body.scrollTop) + "px";
	        	obj.style.left = (leftOffset) + "px";
	        	
	        	titlebox.style.top = (topOffset + document.body.scrollTop - 48) + "px";
	        	titlebox.style.left = obj.style.left;
	        	
	        	captionbox.style.width = obj.width + "px";
	        	captionbox_caption.width = (obj.width - 44) + "px";
	        	captionbox.style.top = (topOffset + document.body.scrollTop + obj.height) + "px";
	        	captionbox.style.left = obj.style.left;
	        	
	        	metadata.style.top = (topOffset + document.body.scrollTop + obj.height - 288 -15) + "px";
	        	metadata.style.left = (leftOffset + obj.width - 450 -15) + "px";
	        	
	        	copyrightbox.style.width = (obj.width - 30) + "px";
	       		copyrightbox_caption.style.width = copyrightbox.style.width;
	       		copyrightbox.style.top = (topOffset + document.body.scrollTop + obj.height - 30 -15) + "px";
	       		copyrightbox.style.left = (leftOffset + 15) + "px";
	        }
        }
        
        setTimeout('relocatePossibleScrollTop()', 100);
    }
			
	function ShowMetaData()
	{
		var metabox = document.getElementById("floatingMetabar");
		metabox.className = "floatingMetabar";
	}
	
	function HideMetaData()
	{
		var metabox = document.getElementById("floatingMetabar");
		metabox.className = "floatingMetabarHidden";
	}
	
	
	function ShowCopyright()
	{
		var metabox = document.getElementById("floatingCopyright");
		metabox.className = "floatingCopyright";
	}
	
	function HideCopyright()
	{
		var metabox = document.getElementById("floatingCopyright");
		metabox.className = "floatingCopyrightHidden";
	}
	
	function ToggleCopyright()
	{
		var copybox = document.getElementById("floatingCopyright");
		
		if( copybox.className == "floatingCopyrightHidden" )
			ShowCopyright();
		 else
			HideCopyright();
	}	
	
	function ToggleMetaData()
	{
		var metabox = document.getElementById("floatingMetabar");
		
		if( metabox.className == "floatingMetabarHidden" )
			ShowMetaData();
		 else
			HideMetaData();
	}	
	
