function Gallery()
{
	var xml;
	var category_id = '';
	var image_id = '';
	var image_index = '';
	var caption = '';
	var caption2 = '';
	var width = '';
	var height = '';
	var total_images = 0;
	var next_id = '';
	var prev_id = '';
	
	function getQueryVariables()
	{
		var path = window.location.pathname;
		var vars = path.split("/");
		var next = false;
		for (var i=0;i<vars.length;i++)
		{
			if (next)
			{
				category_id = vars[i];
				next = false;
			}
			if (vars[i] == 'gallery')
			{
				next = true;
			}
		}
		
	  	var query = window.location.search.substring(1);
	  	vars = query.split("&");
	  	for (i=0;i<vars.length;i++)
		{
			var pair = vars[i].split("=");
			if (pair[0] == 'category')
			{
		  		category_id = pair[1];
			}
			else if (pair[0] == 'image')
			{
				image_id = pair[1];
			}
	  	}
	}
	
	
	this.loadGalleryXML = function()
	{
		getQueryVariables();
		
		if (category_id)
		{
			if (document.implementation && document.implementation.createDocument)
			{
				xml = document.implementation.createDocument("", "", null);
				xml.onload = parsedGalleryXML;
			}
			else if (window.ActiveXObject)
			{
				xml = new ActiveXObject("Microsoft.XMLDOM");
				xml.onreadystatechange = function () {
					if (xml.readyState == 4) parsedGalleryXML()
				};
			}
			else
			{
				alert('Your browser can\'t handle this script');
				return;
			}
			xml.load("/gallery/" + category_id + "/index.xml");
		}
	}
	
	
	parsedGalleryXML = function()
	{
		getImageData();
	}
	
	
	getImageData = function(new_id)
	{
		var id;
		var previous = '';
		var found = false;
		next_id = '';
		prev_id = '';
		caption = '';
		caption2 = '';
		width = '';
		height = '';
		
		if (new_id)
		{
			image_id = new_id;
		}
		
		var x = xml.getElementsByTagName('image');
		total_images = x.length;
		
		for (i=0;i<x.length;i++)
		{
			id = x[i].getAttribute('id');
			// select first image, if no image requested
			if (!image_id)
			{
				image_id = id;
			}
			if (!next_id && found)
			{
				next_id = id;
			}
			
			if (image_id == id)
			{
				if (previous)
				{
					prev_id = previous;
				}
				image_index = i + 1;
				found = true;
				for (j=0; j<x[i].childNodes.length; j++)
				{
					switch (x[i].childNodes[j].tagName)
					{
						case 'caption':
							caption = x[i].childNodes[j].firstChild.nodeValue;
							break;
						case 'caption2':
							caption2 = x[i].childNodes[j].firstChild.nodeValue;
							break;
						case 'width':
							width = x[i].childNodes[j].firstChild.nodeValue;
							break;
						case 'height':
							height = x[i].childNodes[j].firstChild.nodeValue;
							break;
					}
				}
			}
			previous = id;
		}
		
		displayGallery();
	}
	
	
	displayGallery = function()
	{
		var html = '';
		
		html += '<div id="mainphoto"><img src="' + image_id + '-med.jpg" alt="Image Title" /></div>'
             +  '    <ul id="imagedetails">'
		     +  '        <li id="imagecount">' + image_index + ' of ' + total_images + '</li>'
			 +  '      	 <li id="returntoalbum"><a href="/gallery/index.php" title="Back to Photo Albums">Back to Photo Albums</a></li>'
			 +  '        <li id="albumnav" class="clearfix">';
	    
		if (prev_id)
		{
			html += '            <a href="javascript:getImageData(\'' + prev_id + '\')" id="previmage" title="Previous Photo">Prev Photo</a>';
		}
		else
		{
			html += '            <a id="previmage" title="Previous Photo" class="disabled">Prev Photo</a>';
		}
		
		if (next_id)
		{
			html += '            <a href="javascript:getImageData(\'' + next_id + '\')" id="nextimage" title="Next Photo">Next Photo</a>';
		}
		else
		{
			html += '            <a id="nextimage" title="Next Photo" class="disabled">Next Photo</a>';
		}
		
		if (caption)
		{
		html += '        </li>'
		     +  '        <li id="imagedownload"><a href="' + image_id + '.jpg" target="_blank" title="Download Full-Size Photo">Download Full-Size Photo</a></li>'
			 +  '    </ul>'
			 +  '    <p id="imagecaption">' + caption + '</p>';
		}
		
		if (caption2)
		{
		html += '	<p id="imagecaption2">' + caption2 + '</p>';
		}
		
		
		document.getElementById('imagechoice').innerHTML = html;
	}
}