function GalleryImage(theLink)
{
	this.ViewLink = theLink;
}

var Gallery = {
	AllImages : new Array(),
	AllImageLinks : null,
	AllThumnailLinks : new Array(),
	CurrentImage : null,
	PopupContent : null,
	Setup : function()
	{
	
		Gallery.PopupContent = document.createElement("div");
		Gallery.PopupContent.id = "GalleryContent";
		
		//Overlay.Window.appendChild(Gallery.PopupContent);
		//Overlay.OnRemove.add(Gallery.Overlay_Remove);
	
		Gallery.Thumnails = document.createElement("div");
		Gallery.Thumnails.className = "slideshow-thumnails";
		
		Gallery.AllImageLinks = document.getElementsByClassName("image");
		
		for(var x = 0; x < Gallery.AllImageLinks.length; x++)
		{
			var thisLink = Gallery.AllImageLinks[x];		
			
			var newImage = new GalleryImage(thisLink);
			Gallery.AllImages.push(newImage);
			newImage.NextX = (x == (Gallery.AllImageLinks.length - 1)) ? 0 : x + 1;
			newImage.BackX = (x > 0) ? (x - 1) : (Gallery.AllImageLinks.length - 1);
																		
			newImage.View = function()
			{
				if(Gallery.CurrentImage) Gallery.CurrentImage.ThumbnailLink.className = "";
				Gallery.CurrentImage = this;
				Gallery.CurrentImage.ThumbnailLink.className = "selected";
				
				var href = this.ViewLink.href;
				var image = this.ViewLink.getElementsByTagName("img")[0];
				var title = image.getAttribute("title");
				var alt = image.getAttribute("alt");
				
				if(Overlay)
				{									
																
					var preloadImage = new Image();
					preloadImage.onload = function()
					{
												
						Gallery.PopupContent.innerHTML = "";
						
						var heading = document.createElement("h2");
						heading.appendChild(document.createTextNode(title));
						Gallery.PopupContent.appendChild(heading);
												
						var imgTag = document.createElement("img");
						imgTag.src = href;
						Gallery.PopupContent.appendChild(imgTag);
						
						if(alt != null && alt != '')
						{
							var desc = document.createElement("p");
							desc.appendChild(document.createTextNode(alt));
							Gallery.PopupContent.appendChild(desc);
						}																										
						
						Overlay.SetWindowWidth(this.width);
						Overlay.PositionWindow();							
															
					}
					preloadImage.src = href;																			
				}
				return false;
			}	
			
			thisLink.setAttribute("x", x);	
			thisLink.onclick = function()
			{
				Gallery.PopupContent.innerHTML = '<h2>Loading...</h2>';	
				Gallery.PopupContent.innerHTML += '<p><img src="/styles/images/icons/loading.gif" /></p>';	
				Overlay.OnDisplay.add(Gallery.Overlay_Display)
				Overlay.OnRemove.add(Gallery.Overlay_Remove);
				Overlay.Display();						
				Overlay.SetWindowWidth(400);					
				Overlay.PositionWindow();		
				Overlay.SetDisableRemove(500);	
				Gallery.AllImages[this.getAttribute("x")].View();
				return false;
			}
			
			var newThumbnailLink = document.createElement("a");
			newThumbnailLink.href = "#";
			var newThumnailImg = document.createElement("img");
			newThumnailImg.src = thisLink.href.replace(/650/g, "20");
			newThumbnailLink.setAttribute("x", x);
			newThumbnailLink.onclick = function()
			{
				//var newLink = Gallery.AllImageLinks[this.getAttribute("x")];
				//newLink.onclick();	
				Gallery.AllImages[this.getAttribute("x")].View();
				return false;
			}
			newThumbnailLink.appendChild(newThumnailImg);
			Gallery.Thumnails.appendChild(newThumbnailLink);
			newImage.ThumbnailLink = newThumbnailLink;
					
		}							
			
		//	Navigation
		
			//Overlay.Window.appendChild(Gallery.Thumnails);
		
			Gallery.Links = document.createElement("div");
			Gallery.Links.className = "slideshow-links";
										
			Gallery.BackLink = document.createElement("a");
			Gallery.BackLink.appendChild(document.createTextNode("Back"));
			Gallery.BackLink.href = "#";
			Gallery.BackLink.className = "back-link";
			Gallery.BackLink.onclick = Gallery.MoveBack;														

			Gallery.PlayLink = document.createElement("a");
			Gallery.PlayLink.appendChild(document.createTextNode("Play"));
			Gallery.PlayLink.href = "#";
			Gallery.PlayLink.className = "play-link";
			Gallery.PlayLink.onclick = Gallery.StartSlideshow;
			
			Gallery.StopLink = document.createElement("a");
			Gallery.StopLink.appendChild(document.createTextNode("Stop"));
			Gallery.StopLink.href = "#";
			Gallery.StopLink.className = "stop-link";
			Gallery.StopLink.onclick = Gallery.StopSlideshow;
			Gallery.StopLink.style.display = "none";		
			
			Gallery.NextLink = document.createElement("a");
			Gallery.NextLink.appendChild(document.createTextNode("Next"));
			Gallery.NextLink.href = "#";
			Gallery.NextLink.className = "next-link";
			Gallery.NextLink.onclick = Gallery.MoveNext						
			
			Gallery.Links.appendChild(Gallery.BackLink);																
			Gallery.Links.appendChild(Gallery.PlayLink);	
			Gallery.Links.appendChild(Gallery.StopLink);	
			Gallery.Links.appendChild(Gallery.NextLink);
															
			//Overlay.Window.appendChild(Gallery.Links);		
		// --
		
	}
	,
	MoveNext : function()
	{
		Gallery.AllImages[Gallery.CurrentImage.NextX].View();		
		return false;
	}
	,
	MoveBack : function()
	{
		Gallery.AllImages[Gallery.CurrentImage.BackX].View();		
		return false;
	}
	,
	SlidshowOn : false
	,
	PlaySlideshow : function()
	{
		if(!Overlay.IsOpen) Gallery.StopSlideshow();		
		if(Gallery.SlidshowOn && Gallery.CurrentImage)
		{
			Gallery.MoveNext();
			setTimeout("Gallery.PlaySlideshow()", 3500);				
		}		
	}
	,
	StartSlideshow : function()
	{
		Gallery.SlidshowOn = true;
		Gallery.PlaySlideshow();
		Gallery.StopLink.style.display = "inline";
		Gallery.PlayLink.style.display = "none";		
		return false;
	}
	,
	StopSlideshow : function()
	{
		Gallery.SlidshowOn = false;
		Gallery.StopLink.style.display = "none";
		Gallery.PlayLink.style.display = "inline";		
		return false;
	}
	,
	Overlay_Display : function()
	{
		Overlay.Window.appendChild(Gallery.PopupContent);
		if(Gallery.AllImages.length > 1)
		{
			Overlay.Window.appendChild(Gallery.Thumnails);
			Overlay.Window.appendChild(Gallery.Links);			
		}
	}
	,	
	Overlay_Remove : function()
	{
		if(Gallery.SlidshowOn) Gallery.StopSlideshow();	
		Overlay.Window.removeChild(Gallery.PopupContent);
		if(Gallery.AllImages.length > 1)
		{		
			Overlay.Window.removeChild(Gallery.Thumnails);
			Overlay.Window.removeChild(Gallery.Links);	
		}	
		Gallery.PopupContent.innerHTML = "";
		Overlay.OnDisplay.remove(Gallery.Overlay_Display)	
		Overlay.OnRemove.remove(Gallery.Overlay_Remove);
	}
}

window.addToOnload(Gallery.Setup);