/*
Title: JS to apply a selected class to, and therefore highlight, the current thumbnail
Author: etalented.co.uk
Updated: May, 2006
*/

var thumbSelect = {
	on: false,
	/* constructor - sets events */
	init: function(){
		//ensure single pass-thru
		if (thumbSelect.on == false ) {
			if (document.getElementById) {
				var centralImageDiv = document.getElementById("centralImage");
				var centralImage = centralImageDiv.getElementsByTagName("IMG");
				var regEx = /\w*\.jpg|jpeg$/;
				var centralImageFile = regEx.exec(centralImage[0].src)[0];
				if (centralImageFile) {
					var thumbnailsDiv = document.getElementById("thumbnails");
					var thumbnails = thumbnailsDiv.getElementsByTagName("IMG");
					for (i=0; i<thumbnails.length; i++) {
						img = thumbnails[i];
						var thumbnailFile = regEx.exec(img.src);
						if (thumbnailFile) {
							if (thumbnailFile == centralImageFile) {
								img.className = "selected";
							};
						};
					};
				};
			};
			thumbSelect.on = true;
		};
	},
	addEvt: function(element, type, handler) {
		// assign each event handler a unique ID
		if (!handler.$$guid) handler.$$guid = thumbSelect.addEvt.guid++;
		// create a hash table of event types for the element
		if (!element.events) element.events = {};
		// create a hash table of event handlers for each element/event pair
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// store the existing event handler (if there is one)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			};
		};
		// store the event handler in the hash table
		handlers[handler.$$guid] = handler;
		// assign a global event handler to do all the work
		element["on" + type] = thumbSelect.handleEvent;
	},
	handleEvent: function(event) {
		var returnValue = true;
		// grab the event object (IE uses a global event object)
		event = event || thumbSelect.fixEvent(window.event);
		// get a reference to the hash table of event handlers
		var handlers = this.events[event.type];
		// execute each event handler
		for (var i in handlers) {
			this.$$handleEvent = handlers[i];
			if (this.$$handleEvent(event) === false) {
				returnValue = false;
			};
		};
		return returnValue;
	},
	fixEvent: function(event) {
		// add W3C standard event methods
		event.preventDefault = thumbSelect.fixEvent.preventDefault;
		event.stopPropagation = thumbSelect.fixEvent.stopPropagation;
		return event;
	}
};


/* LOAD SCRIPT */
/* for Mozilla */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", thumbSelect.init, null);
};

/* for other browsers */
thumbSelect.addEvt(window, 'load', thumbSelect.init);
