var PhotoGallerie = {
	allPhotoGalleries : new Array(),
	push : function(object)
	{
		PhotoGallerie.allPhotoGalleries.push(object)
	},
	get : function()
	{
		return PhotoGallerie.allPhotoGalleries;
	},
	setImage : function (id, i)
	{
		var item = PhotoGallerie.allPhotoGalleries[id];
		item.setDisplay(i)
	}
}

var startPhotoGallerie = function()
{
	var PhotoGallerieItem = function () {
		var thisObject = this;
		var displayImages = new Array();
		var thumbnailUrls = new Array();
		var id;

		return {
			append : function(display, thumbnail)
			{
				var dImage = new Image();
				dImage.src = display;

				displayImages.push(dImage);
				thumbnailUrls.push(thumbnail);
			},

			setId : function (i)
			{
				id = i;
			},

			getDisplayImgCode : function()
			{
				result  = '<img src="';
				result += displayImages[0].src;
				result += '" alt="" name="';
				result += "photos_display_" + id;
				result += '" class="display_img" />';
				return result;
			},

			getThumbnailImgCode : function()
			{
				var result = '';
				for (var i = 0; i < thumbnailUrls.length; i++)
				{
					var s  = '<img src="';
					s += thumbnailUrls[i];
					s += '" alt="" name="';
					s += "photos_thumbnail_" + id + "_" + i;
					s += '" class="thumbnail_img" />';
					result += s;
				}
				return result;
			},

			setThumbnailOnclick : function()
			{
				for (var i = 0; i < thumbnailUrls.length; i++)
				{
					var func_string = "function (){PhotoGallerie.setImage("+id+", "+i+");}"
// 					var func_string = "function (){alert('"+id+", "+i+"');}"
					e = document.images["photos_thumbnail_" + id + "_" + i]
					// HACK: IE6, funktioniert auch unter Firefox 2
					e.onclick = new Function ("PhotoGallerie.setImage("+id+", "+i+");");
				}
			},

			setDisplay : function(i)
			{
				e = document.images["photos_display_" + id];
				e.src = displayImages[i].src;
			}
		};

	};

	var allDivs = document.getElementsByTagName("div");
	var allPhotoDivs = new Array();

	function getAllPhotoDivs()
	{
		for (var i = 0; i < allDivs.length; i++)
		{
			var className = allDivs[i].className;
			var isClassName = className.match("photos");
			if (isClassName) allPhotoDivs.push(allDivs[i]);
		}
	}

	function getConfigs(element)
	{
		return eval(element.innerHTML);
	}

	function setPhotolist(element, display, thumbs)
	{
		for (var i = 0; i < display.length; i++)
		{
			element.append(display[i], thumbs[i]);
		}
	}

	function writeDisplay()
	{

	}

	// Alle <div> Tags hohlen, welche .photos sind
	getAllPhotoDivs();

	// Jedes einzelne Div verarbeiten
	for (var i = 0; i < allPhotoDivs.length; i++)
	{
		// Konfigs hohlen
		var config = getConfigs(allPhotoDivs[i]);

		// Objekt erstellen
		var photoDiv = new PhotoGallerieItem();

		// Display-Fotos hinzufuegen und laden lassen
		setPhotolist(photoDiv, config["display"], config["thumbnails"]);

		PhotoGallerie.push(photoDiv);
	}

	// PhotoGallerie hohlen
	pg = PhotoGallerie.get();
	// Bildergallerie bauen und Events setzen
	for (var i = 0; i < pg.length; i++)
	{
		pg[i].setId(i);
		allPhotoDivs[i].innerHTML  = pg[i].getDisplayImgCode();
		allPhotoDivs[i].innerHTML += pg[i].getThumbnailImgCode();

		pg[i].setThumbnailOnclick();

	}
};

addOnLoadEvent(startPhotoGallerie);

