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");
		var href = self.attr("href").toLowerCase();
		if(href.indexOf(".jpg") > 0 || href.indexOf(".jpeg") > 0 || href.indexOf(".png") > 0 || 
			href.indexOf(".flv") > 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, #modalWindow > .gallery-next-btn").live({
		"click" : function()
		{
			changeSlide("next");
		}
	});
	
	$("#modalWindow > .gallery-prev-btn").live({
		"click" : function()
		{
			changeSlide("prev");
		}
	});
	
	$("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 href = self.attr("href").toLowerCase();
		if(href.indexOf(".jpg") > 0 || href.indexOf(".jpeg") > 0 || href.indexOf(".png") > 0)
		{
			var file = "<img src=\"" + self.attr("href") + "\" />";
			var type = "image";
		}
		else
		{
			var file = "<a href='../" + self.attr('href') + 
				"' style='display:block;width:520px;height:330px' id='gallery-video-item'></a>";
			var type = "video";
		}
		
		if($("#modalWindow").length == 0)
		{
			$("body").append("<div id=\"modalOverlay\" style=\"display: none;\"></div>" + 
				"<div id=\"modalWindow\"><span class=\"gallery-prev-btn\"></span>" + 
				"<span class=\"gallery-next-btn\"></span></div>");
			$("#modalWindow").append('<span class="modal-close">CLOSE</span>');
			$("#modalOverlay").append('<img src="assets/media/preloader.gif" id="preloader" />');
			$("#modalWindow").append(file);
			if(type == "image")
			{
				$("#modalWindow > img").hide();
				doTheRestImage();
			}
			else
			{
				doTheRestVideo(self.attr("href"));
			}
		}
		else
		{
			$("#modalWindow").fadeOut("fast", function(){
				$("#modalWindow > img, #gallery-video-item").remove();
				$("#modalWindow").append(file);
				if(type == "image")
				{
					$("#modalWindow > img").hide();
					doTheRestImage();
				}
				else
				{
					doTheRestVideo();
				}
			});
		}
	}
	
	function doTheRestVideo(video)
	{
		$("#modalOverlay").fadeIn("fast");
		flowplayer("gallery-video-item", "assets/flowplayer/flowplayer-3.2.7.swf", {
			plugins: { 
				pseudo: { url: 'flowplayer.pseudostreaming-3.2.7.swf' } 
			},
			clip: {
				provider: 'pseudo'
			}
		});
		
		var marginTop = -($("#modalWindow").outerHeight()/2)-10;
		
		$("#modalWindow").css({
			"margin-top" : marginTop,
			"margin-left" : "-" + ($("#modalWindow").outerWidth()/2) + "px"
		}).fadeIn("fast");
	}
	
	function doTheRestImage()
	{
		$("#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");
			});
		});
	}
	
});
