var imageIndex = 1;
var currentNavTag;
var folder;
var numPhotos = 1;

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments[0].length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[0][i];
      cache.push(cacheImage);
    }
  }
})(jQuery)


$(document).ready(function () {
	var myThumb = $("#portfolioNav a img").first();
	currentNavTag = myThumb.attr("tag");
	folder = myThumb.attr("folder");
	numPhotos = myThumb.attr("numPhotos");

	$("#stageBox a.previous").toggleClass("hidden", numPhotos <= 1); 
	$("#stageBox a.next").toggleClass("hidden", numPhotos <= 1); 
	$("#stageBox div.imageStatus").toggleClass("hidden", numPhotos <= 1); 
	
	// preload images, set up data
	var images = new Array();
	$("#portfolioNav a img").each(
	function () {
		$(this).parent().attr("href","#");
		
		var upper = $(this).attr("numPhotos");
		var fileName = $(this).attr("tag");
		for (var i = 1; i <= upper; i++)
		{
			var imageFile = "images/projects/" + folder + "/" + fileName + i + ".jpg";
			images.unshift(imageFile);
		}
		
		$(this).data("gotCopy","false");

		var thumb = $(this);
		$.get("portfoliocopy.php", { folder: folder, projectTag: fileName }, 
		function (data) {
			thumb.data("copy", data);
			thumb.data("gotCopy", "true");
		});

	});
	$.preLoadImages(images);

	$("#portfolioNav a").click(
	function () {
		var thumb = $("img", this);

		var newNavTag = thumb.attr("tag");

		if (newNavTag == currentNavTag)
		{
			return;
		}

		currentNavTag = newNavTag;
		numPhotos = thumb.attr("numPhotos");
		imageIndex = 1;

		$("#stageBox a.previous").toggleClass("hidden", numPhotos <= 1); 
		$("#stageBox a.next").toggleClass("hidden", numPhotos <= 1); 
		$("#stageBox div.imageStatus").toggleClass("hidden", numPhotos <= 1); 

		var formattedInt;
		if (imageIndex < 10)
		{
			formattedInt = '0' + imageIndex;
		}
		else
		{
			formattedInt = imageIndex;
		}
		$("#stageBox div.imageStatus span.currentPhoto").text(formattedInt);

		if (numPhotos < 10)
		{
			formattedInt = '0' + numPhotos;
		}
		else
		{
			formattedInt = numPhotos;
		}
		$("#stageBox div.imageStatus span.numPhotos").text(formattedInt);

		var newImage = "images/projects/" + folder + "/" + currentNavTag + imageIndex + ".jpg";
		$("#portfolioImage").attr("src",newImage);

		$("#content h2").text("{" + thumb.attr("alt") + "}");

		if (thumb.data("gotCopy")=="true")
		{
			$("#portfolioCopy").html(thumb.data("copy"));
		}
		else
		{
			$.get("portfoliocopy.php", { folder: folder, projectTag: currentNavTag }, 
			function (data) {
				$("#portfolioCopy").html(data);
				thumb.data("copy",data);
				thumb.data("gotCopy","true");
			});
		}
		
		return false;
	});

	$("#stageBox a.next").each(
	function() {
		$(this).attr("href","#");
	});
	
	$("#stageBox a.previous").each(
	function() {
		$(this).attr("href","#");
	});

	$("#stageBox a.next").click(
	function() {
		if (imageIndex < numPhotos)
		{
			imageIndex++;
			var newImage = "images/projects/" + folder + "/" + currentNavTag + imageIndex + ".jpg";
			$("#portfolioImage").attr("src",newImage);

			var formattedInt;
			if (imageIndex < 10)
			{
				formattedInt = '0' + imageIndex;
			}
			else
			{
				formattedInt = imageIndex;
			}
			$("#stageBox div.imageStatus span.currentPhoto").text(formattedInt);
		}
		
		return false;
	});

	$("#stageBox a.previous").click(
	function() {
		if (imageIndex > 1)
		{
			imageIndex--;
			var newImage = "images/projects/" + folder + "/" + currentNavTag + imageIndex + ".jpg";
			$("#portfolioImage").attr("src",newImage);

			var formattedInt;
			if (imageIndex < 10)
			{
				formattedInt = '0' + imageIndex;
			}
			else
			{
				formattedInt = imageIndex;
			}
			$("#stageBox div.imageStatus span.currentPhoto").text(formattedInt);
		}
		
		return false;
	});
});