function ajaximagelibrary(imagegalleryid, uniqueid)
{
	var galleryEntries = new Array();

	$.ajax({
		url: "internalajax/imagegallery",
		type: "POST",
		data:
			{
				imagegalleryid: imagegalleryid
			},
		dataType: "xml",
		success: function(xml, textStatus)
			{
				$("imagegalleryoutput>imagegallery>images>image", xml).each(
					function(indexInArray, valueOfElement)
					{
						var entry = new GalleryEntry();
						entry.image = $("image", valueOfElement).text();
						entry.thumbnail = $("thumbnail", valueOfElement).text();
						galleryEntries[indexInArray] = entry;
					});
				var gallerydate = $("imagegalleryoutput>imagegallery>formatteddate", xml).text();
				var gallerytitle = $("imagegalleryoutput>imagegallery>title", xml).text();
        
        initTitle(gallerydate, gallerytitle, uniqueid);
				initGalleryImageAndThumbnails(galleryEntries, 0, uniqueid);
			},
		error: function (XMLHttpRequest, textStatus, errorThrown) 
			{
				alert("Fehler beim Laden der Bildgalerie.");
			},
		cache: false
	});
}

function GalleryEntry()
{
	var image;
	var thumbnail;
}

function initTitle(gallerydate, gallerytitle, uniqueid)
{
	var h2 = $("#" + uniqueid + "gallery_h2");
	h2.html(gallerydate + "&nbsp;" + gallerytitle);	
}

function initGalleryThumbnails(galleryEntries, offset, uniqueid)
{
	for(var i = 0; i < 4; i++)
	{
		initGalleryThumbnail(galleryEntries, i + offset, i, uniqueid);
	}
	var left = $("#" + uniqueid + "gallery_a_left");
	var right = $("#" + uniqueid + "gallery_a_right");
	
	var offsetleft = offset > 3 ? offset - 4 : 0;
	var offsetright = offset < galleryEntries.length - 4 ? offset + 4 : offset;
	left.unbind("click");
	left.bind(
		"click",
		function(){initGalleryThumbnails(galleryEntries, offsetleft, uniqueid);return false;}
		);
	right.unbind("click");
	right.bind(
		"click",
		function(){initGalleryThumbnails(galleryEntries, offsetright, uniqueid);return false;}
		);
}

function initGalleryThumbnail(galleryEntries, index, thumbindex, uniqueid)
{
	var a = $("#" + uniqueid + "gallery_a_" + thumbindex);
	var img = $("#" + uniqueid + "gallery_img_" + thumbindex);
	if(galleryEntries.length > index)
	{
		var entry = galleryEntries[index];
		img.attr("src", entry.thumbnail);
		img.css("visibility", "visible");
		
    a.unbind("click");
		a.bind(
			"click",
			function(){initGalleryImage(galleryEntries, index, uniqueid);return false;}
			);	
	}
	else
	{
		img.attr("src", "");
		img.css("visibility", "hidden");
		a.unbind("click");
		a.bind(
			"click",
			function(){return false;}
			);
	}
}

function initGalleryImage(galleryEntries, index, uniqueid)
{
	var img = $("#" + uniqueid + "gallery_img_main");
	var imageForward = $("#" + uniqueid + "image_a_forward");
	var imageBack = $("#" + uniqueid + "image_a_back");
	var divCounter = $("#" + uniqueid + "gallery_img_counter");
	var shareImg = $("#" + uniqueid + "fb_share_img");
	if(galleryEntries.length > index)
	{		
    var entry = galleryEntries[index];
    
    //auf Facebook teilen aktualisieren
    shareImg.unbind("click");
		shareImg.bind(
			"click",
			function(){
        fbs_click_imagegallery(entry.image);
        return false;
      });
		
    var nextIndex;
		var prevIndex;
		if(index < galleryEntries.length - 1)
		{
			nextIndex = index + 1;
		}
		else
		{
      nextIndex = index;
    }
		if(index > 0)
		{
      prevIndex = index -1;
    }
    else
    {
      prevIndex = index;
    }

		img.attr("src", entry.image);
		img.css("visibility", "visible");
		img.unbind("click");
		img.bind(
			"click",
			function(){initGalleryImageAndThumbnails(galleryEntries, nextIndex, uniqueid);return false;}
			);
			
		imageForward.unbind("click");
		imageForward.bind(
			"click",
			function(){initGalleryImageAndThumbnails(galleryEntries, nextIndex, uniqueid);return false;}
			);
			
		imageBack.unbind("click");
		imageBack.bind(
			"click",
			function(){initGalleryImageAndThumbnails(galleryEntries, prevIndex, uniqueid);return false;}
			);

    //counter aktualisieren
    divCounter.text(index+1 + "/" + galleryEntries.length);
	}
	else
	{
		img.attr("src", "");
		img.css("visibility", "hidden");
		
    img.unbind("click");
		img.bind(
			"click",
			function(){return false;}
			);
			
		imageForward.unbind("click");
		imageForward.bind(
			"click",
			function(){return false;}
			);
			
		imageBack.unbind("click");
		imageBack.bind(
			"click",
			function(){return false;}
			);
			
		shareImg.unbind("click");
		shareImg.bind(
			"click",
			function(){return false;}
			);
	}
}

function initGalleryImageAndThumbnails(galleryEntries, index, uniqueid)
{
	initGalleryThumbnails(galleryEntries, index - index % 4, uniqueid);
	initGalleryImage(galleryEntries, index, uniqueid);
}