google.setOnLoadCallback(function() {
    $(document).ready(function() {
        initGallery();
    });
});

var currentImage;

function initGallery() {
	$(".galleryAll").hide();

	//Add click events to the option images top open the overlay
	$(".gallery a").click(function () { loadGalleryImage(this); return false; }).attr("href", "#");
	$(".galleryLink a").click(function() { loadGalleryImage(this); }).attr("href", "#");
	$("a.galleryOverlayLink").click(function() { loadGalleryImage(this); }).attr("href", "#");


	$(".galleryOne .button a").click(function() {
	    $.ajax({
	        type: "GET",
	        url: "../images/gallery/",
	        success: function(theResponse) {
	        if ($(".galleryAll .gallery a img").length == 0) {
	            var $holder = theResponse;
	                $(".galleryAll .gallery").html($($holder).html());
	                $(".gallery a").click(function() { loadGalleryImage(this); }).attr("href", "#");
	            }
	            $(".galleryOne").slideUp("slow");
	            $(".galleryAll").slideDown("slow");	            
	        }
	    });
	});

	$(".galleryAll .button a").click(function() { $(".galleryAll").slideUp("slow"); $(".galleryOne").slideDown("slow"); });
}

function loadGalleryImage(what) {
	currentImage = what;
	var imageId = $(what).find("img").attr("class").split("id-")[1];
	if ($(what).hasClass("video")) {
	    $("#overlay").load("/gallery/video/" + imageId, function () { showGalleryImage(); });
	}
	else {
	    $("#overlay").load("/gallery/image/" + imageId, function () { showGalleryImage(); });
	}
}

function showGalleryImage() {
	$("#overlay .closeButton").click(function() { hideGalleryImage(); });

	if ($(".galleryInner a").length >= 2)
	{
		$("#overlay .back").click(function() { previousImage(); });
		$("#overlay .next").click(function() { nextImage(); });
	}
	else
	{
		$("#overlay .back").hide();
		$("#overlay .next").hide();
	}
	
	showOverlay();
}

function hideGalleryImage() {
	hideOverlay();
}

function previousImage() {
	if ($(currentImage).parent().prev().find("a").length <= 0) {
		loadGalleryImage($(".galleryInner").find("a:last"));
	}
	else {
	    loadGalleryImage($(currentImage).parent().prev().find("a"));
	}
}

function nextImage() {
    if ($(currentImage).parent().next().find("a").length <= 0) {
        loadGalleryImage($(".galleryInner").find("a:first"));
	}
	else {
	    loadGalleryImage($(currentImage).parent().next().find("a"));
	}
}

function showOverlay() {
    currentScrollLoc = $("body").scrollTop();
    
    $("body").removeClass("printScope");
    $("html, body").animate({ scrollTop: 0 }, 100);

    $("#overlay .buttons").wrapInner('<div class="innerButtons"></div>');
    $("#overlay .buttons").wrapInner('<div class="wrapper"></div>');
        
    $("#overlay").show(500, function() { fitOverlay() }).addClass("printScope");
    $("#overlay .closeButton").click(function() { hideOverlay(); });
}

function hideOverlay() {
    $("body").addClass("printScope");
    $("#overlay").hide(500).removeClass("printScope").empty();

    $("html, body").animate({ scrollTop: currentScrollLoc }, 100);
}

function fitOverlay() {
    $("#overlay").css("min-height", $(document).height());
}
