/*
Gallery function by Jeremy Keith, http://www.adactio.com/. This was found in his book, DOM Scripting, http://www.domscripting.com

revised by Nate Klaiber
*/
var GallerySidebar = 
{
	init : function()
	{	
		//first prepare the placeholder
		GallerySidebar.preparePlaceHolder();
		
		//check browser support
		if (!document.getElementsByTagName || !document.getElementById) { return false; }
		
		//check to see if we need to do anything
		if (!document.getElementById("mac-specs")) { return false; }
		
		//we have the gallery, lets do the work
		var gallery = document.getElementById("mac-specs");
		var links = gallery.getElementsByTagName("a");

		for (var i=0; i < links.length; i++) {
			links[i].onclick = function()
			{
				return GallerySidebar.showPhoto(this);
			}
			/*
			Core.addEventListener(links[i], 'click', function()
			{
				return GallerySidebar.showPhoto(this);
			});
			*/
		}
	},
	preparePlaceHolder : function()
	{
		//check browser support
		if (!document.createElement || !document.createTextNode || !document.getElementById) { return false; }
		
		//check to see if we need to do anything
		if (!document.getElementById("mac-specs")) { return false; }
		
		var placeholder = document.createElement("img");
		placeholder.setAttribute("id", "placeholder");
		//placeholder.setAttribute("src", "/images/placeholder.gif");
		placeholder.setAttribute("alt", "Image Gallery");
		
		var description = document.createElement("p");
		description.setAttribute("id", "description");
		
		var desctext = document.createTextNode("Choose an Image");
		description.appendChild(desctext);
		
		var gallery = document.getElementById("mac-specs");
		GallerySidebar.insertAfter(description, gallery);
		GallerySidebar.insertAfter(placeholder, description);
	},
	insertAfter : function(newElement, targetElement)
	{
		var parent = targetElement.parentNode;
		if (parent.lastChild == targetElement) 
		{
			parent.appendChild(newElement);	
		} 
		else 
		{
			parent.insertBefore(newElement, targetElement.nextSibling);
		}
	},
	showPhoto: function(photo)
	{		
		//if (!document.getElementById("placeholder")) { return false; }
		var source = photo.getAttribute("href");
		var placeholder = document.getElementById("placeholder");
		if (placeholder.nodeName != 'IMG') { return true; }
		placeholder.setAttribute('src', source);
		if (!document.getElementById("description")) { return false; }
		var text = photo.getAttribute("title") ? photo.getAttribute("title") : '';
		var description = document.getElementById("description");

		if (description.firstChild.nodeType == 3) 
		{
			description.firstChild.nodeValue = text;
		}
		return false;
		//Core.preventDefault(e);
		//Core.stopPropogation(e);
	}
};
Core.start(GallerySidebar);
