jQuery(function($){

	$("#modalOverlay, .modal-close").live({
		"click" : function(){
			$("#modalOverlay #preloader").remove();
			$("#modalOverlay, #modalWindow").fadeOut("fast", function(){
				$(this).remove();
			});
		}
	});
	
	$("#containerContent a > img").each(function(){
		var self = $(this).parent("a");
		if(self.attr("href").indexOf(".jpg") > 0 || self.attr("href").indexOf(".jpeg") > 0 || self.attr("href").indexOf(".png") > 0)
		{
			self.addClass("gallery-image");
		}
	});

	$("a.gallery-image").live("click", function(event){
		event.preventDefault();
		var self = $(this);
		loadGallery(self);
		self.addClass("active");
		self.siblings().removeClass("active");
	});
	
	$("#modalWindow > img").live({
		"click" : function()
		{
			changeSlide("next");
		}
	});
	
	$("body").keydown(function(event){
		var code = event.which;
		code = parseInt(code);
		if($("#modalWindow > img").length > 0 && code == 39)
		{
			changeSlide("next");
		}
		else if($("#modalWindow > img").length > 0 && code == 37)
		{
			changeSlide("prev");
		}
	});
	
	function changeSlide(what)
	{
		var prevIndex = $("a.gallery-image.active").index("a.gallery-image");
		
		if(what == "next")
			index = prevIndex + 1;
		else
			index = prevIndex - 1;
		
		if(index == $("a.gallery-image").length)
			index = 0;
		else if(index == -1)
			index = ($("a.gallery-image").length)-1;
		
		var self = $("a.gallery-image:eq(" + index + ")");
		
		$("a.gallery-image").removeClass("active");
		self.addClass("active");
		
		if(index != prevIndex)
			loadGallery(self);
		else
		{
			$("#modalOverlay, #modalWindow").fadeOut("fast", function(){
				$(this).remove();
			});
		}
	}
	
	function loadGallery(self)
	{
		var image = "<img src=\"" + self.attr("href") + "\" />";
		if($("#modalWindow").length == 0)
		{
			$("body").append("<div id=\"modalOverlay\" style=\"display: none;\"></div><div id=\"modalWindow\"></div>");
			$("#modalWindow").append('<span class="modal-close">CLOSE</span>');
			$("#modalOverlay").append('<img src="assets/media/preloader.gif" id="preloader" />');
			$("#modalWindow").append(image);
			$("#modalWindow > img").hide();
			doTheRest();
		}
		else
		{
			$("#modalWindow").fadeOut("fast", function(){
				$("#modalWindow > img").remove();
				$("#modalWindow").append(image);
				$("#modalWindow > img").hide();
				doTheRest();
			});
		}
	}
	
	function doTheRest()
	{
		$("#modalOverlay").fadeIn("fast");
		$("#modalWindow > img").load(function(){
			$("#modalWindow > img").fadeIn("fast", function(){
				$("#modalWindow").fadeIn("fast");
				
				if(($("#modalWindow > img").outerHeight()/2) < ($(window).height()/2))
				{
					var marginTop = -($("#modalWindow > img").outerHeight()/2)-10;
				}
				else
				{
					var marginTop = -(($(window).height()/2)-50)-10;
				}
				
				$("#modalWindow").css({
					"margin-top" : marginTop,
					"margin-left" : "-" + ($("#modalWindow > img").outerWidth()/2) + "px"
				}).fadeIn("fast");
				$("#modalWindow > img").fadeIn("fast");
			});
		});
	}
	
});
