var ImageGallery = {
	init: function(e)
	{
		document.getElementsByClassName('filmstrip-gallery').each(ImageGallery.initFilmstrip);
	},

	initFilmstrip: function(gallery)
	{
		try {
			var normal = $A(document.getElementsByClassName('normal-list', gallery)[0].getElementsByTagName('li'));
			var thumbs = $A(document.getElementsByClassName('thumbnail-list', gallery)[0].getElementsByTagName('li'));
		} catch(e) {
			return;
		}

		Element.cleanWhitespace(gallery);
		var maxHeight = -1;

		thumbs.each(function(li, i) {
			var focus = normal[i];
			var img = focus.getElementsByTagName('img')[0];

			if (!img.src) {
				img.src = img.title;
				img.title = '';
			}
			
			Element.hide(focus);


			li.firstChild.normalImage = focus;
			//Event.observe(li, 'mouseover', ImageGallery.handleThumbnailMouseOver);
			//Event.observe(li, 'mouseout', ImageGallery.handleThumbnailMouseOut);

			if (Element.hasClassName(li, 'image-set')) {
				li.firstChild.href = '#';
				Event.observe(li.firstChild, 'click', ImageGallery.handleThumbnailClick);
			}

			if (i == 0) {
				ImageGallery.focusNormalImage(li.firstChild);
			}
		});
	},

	getParentAnchor: function(obj)
	{
		while (obj && (obj.tagName != 'A') && (obj = obj.parentNode));
		return obj;
	},

	handleThumbnailClick: function(e)
	{
		ImageGallery.focusNormalImage(ImageGallery.getParentAnchor(Event.element(e)));
		Event.stop(e);
		return false;
	},

	handleThumbnailMouseOver: function(e)
	{
		var anchor = ImageGallery.getParentAnchor(Event.element(e));	       
		var selected;
		
		if ((selected = anchor.normalImage.parentNode.selectedImage) != anchor.normalImage) {
			Element.hide(selected);
			Element.show(anchor.normalImage);
		}
	},

	handleThumbnailMouseOut: function(e)
	{
		var anchor = ImageGallery.getParentAnchor(Event.element(e));
		var selected;

		if ((selected = anchor.normalImage.parentNode.selectedImage) != anchor.normalImage) {
			Element.hide(anchor.normalImage);
			Element.show(anchor.normalImage.parentNode.selectedImage);
		}

		Event.stop(e);
	},

	focusNormalImage: function(a)
	{
		var selected;
		if (selected = a.parentNode.parentNode.selectedImage) {
			Element.removeClassName(selected, 'selected');
		}

		Element.addClassName(a, 'selected');
		a.parentNode.parentNode.selectedImage = a;

		if (selected = a.normalImage.parentNode.selectedImage) {
			Element.hide(selected);
		}

		a.normalImage.parentNode.selectedImage = a.normalImage;
		Element.show(a.normalImage);
	}
};

Event.observe(window, 'load', ImageGallery.init);
