
var _GalleryViewImages;


$(document).ready(function() {

	$(".GalleryViewClose").click(function() {

		if(viewHorizontalIsVisible)	// projects are active
		{            
			$("#wrapper2").fadeIn();
	        $(".footer").fadeIn();            
		}
		else if($("#playlistlink.sel").size())
		{
			$("#playlistWrapper").fadeIn();
	        $(".footer").fadeIn();			
		}

		$("#GalleryViewContainer").fadeOut();
	});
	
	
	$(window).bind("resize", function() {
		var w = $(window).width();
		$("#GalleryViewDots").css("width", (w-125)+"px").css("margin-left","30px");
		resize_image($("#GalleryViewImage"));
	});
	
	$(".GalleryViewImageContainer").append('<img id="GalleryViewImage">');
	
	
	$(".gallery-view-thumbnail-trigger").click(function()
	{
		load_image_and_show_gallery(this);
	});
	
	
	$(".gallery-view-trigger").click(function()
	{
		load_image(this);		
	});
	
	$(".GalleryViewNav a.right").click(function()
	{
		showNextImage();
	});
	
	
	$(".GalleryViewNav a.left").click(function()
	{
		showPreviousImage();
	});	
	
});

function showPreviousImage() {
	var prevImage = $(".gallery-view-trigger.active").parent().prev().find(".gallery-view-trigger");

	if( $("$.gallery-view-trigger.active").size() == 0)
    	load_image($(".gallery-view-trigger").first());
    else if( !prevImage.length )
    {
    	load_image($(".gallery-view-trigger").last());
    }
    else
    {
    	load_image($(".gallery-view-trigger.active").parent().prev().find(".gallery-view-trigger"));
    }
}


function showNextImage() {
	var nextImage = $(".gallery-view-trigger.active").parent().next().find(".gallery-view-trigger");

	if( $("$.gallery-view-trigger.active").size() == 0 || !nextImage.length )
    	load_image($(".gallery-view-trigger").first());
    else
    {
    	load_image($(".gallery-view-trigger.active").parent().next().find(".gallery-view-trigger"));
    }
}


function showGalleryView() {
    $("#GalleryViewContainer").fadeIn("fast");
    if( $("$.gallery-view-trigger.active").size() == 0 )
    	load_image($(".gallery-view-trigger").first());
    else {
	    resize_image($("#GalleryViewImage"));
    }
}



function resize_image(image) {
	var r_w = $(document).width()/$(document).height();
	var r_i = image.width()/image.height();
	
	var w, h, l, t;

	if( r_w > r_i ) {
		image.css('width', $(document).width() );
		image.css('height', 'auto');
		image.css('top', ( image.height()-$(document).height() )*(-0.5) );
		image.css('left', 0);
		
	} else {
		image.css('height', $(document).height() );
		image.css('width', 'auto');
		image.css('top', 0 );
		image.css('left', (image.width()-$(document).width() ) * (-0.5) );
	}

	h = image.css('height');
	w = image.css('width');
	l = image.css('left');
	t = image.css('top');
	
}


function load_image_cached(sender)
{
	// Never called, functionality not yet implemented.
}

var _img;
var lastRequest;

function load_image_non_cached(sender, _showGalleryView)
{
	lastRequest = Math.random();
	
	_img = new Image();
	_img.request = lastRequest;
	
	$(_img)
		.load(function()
		{
			$(this).hide();
			$(this).removeAttr("width")
				.removeAttr("height")
				.css({ width: "", height: "" });
			
			if(this.request != lastRequest) return;	/* this is not the last request.. abort */
			$('#imageContainer').empty();
			$('#imageContainer').append($(this));

			$('#imageContainer img').each(function(){
				resize_image($(this));
			});
			
			$(_img).fadeIn(function() {
				if(_showGalleryView) showGalleryView();
			});
		})
		.error(function() {
			/* $('#imageContainer').append("<div id='GalleryViewError'><p>error loading image!</p></div>"); */
		})
		.attr('id','GalleryViewImage');
		
		_img.src = "";
		_img.src = $(sender).attr('imgurl'); // +'?i=3';
}
		
		
function load_image(sender)
{
	if( $(this).attr('visited') == 'true' )		// not implemented yet
		load_cached_image(sender);
	else {
		$("#GalleryViewImage").fadeOut(function() {
			load_image_non_cached(sender, false);
		});
	}
	
	$(".gallery-view-trigger").removeClass("active");
	$(sender).addClass("active");
}


function load_image_and_show_gallery(sender)
{
	$('#imageContainer').empty();
    $("#GalleryViewContainer").fadeIn("fast");
    load_image_non_cached(sender, false);	

	imgid = $(sender).attr('imgid');
	$(".gallery-view-trigger").removeClass("active");
	$('.gallery-view-trigger[imgid="'+imgid+'"]').addClass("active");
	
/*	load_image_non_cached(sender, true);	
*/
}


