speed = 500;
gallery_chunk = 0;

var vP = "";
var transitionEnd = "TransitionEnd";
if ($.browser.webkit) {
	vP = "-webkit-";
	transitionEnd = "webkitTransitionEnd";
} else if ($.browser.msie) {
	vP = "-ms-";
} else if ($.browser.mozilla) {
	vP = "-moz-";
	transitionEnd = "transitionend";
} else if ($.browser.opera) {
	vP = "-o-";
	transitionEnd = "oTransitionEnd";
}

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

//jQuery.preLoadImages();

function animate(object, cssProperties, callback, ms) {
	if (!ms) {
		ms = speed;
	}
	
	if (Modernizr.csstransitions) {
		object.css(vP+"transition", "all "+ms+"ms ease-in-out");
		
		object.css(cssProperties);

		if ($.isFunction(callback)) {

			object.bind(transitionEnd,function(){
				object.unbind(transitionEnd);
				callback();
			});

			/*
			window.setTimeout(function() {
				callback();
			}, ms);
			*/
		}
		
	} else {
		if ($.isFunction(callback)) {		
			object.animate(cssProperties, ms, callback);
		} else {
			object.animate(cssProperties, ms);			
		}
	}
}

function slide(gallery_chunk, sliderWidth) {
	if (Modernizr.csstransforms3d && Modernizr.csstransitions) {
		var cssArgs = {};
		cssArgs[vP+"transform"] = "translate3d("+gallery_chunk*-sliderWidth+"px,0px,0px)";
	
		animate($("#gallery_content #thumbnails"),cssArgs);
	} else if (Modernizr.csstransforms && Modernizr.csstransitions) {
		var cssArgs = {};
		cssArgs[vP+"transform"] = "translate("+gallery_chunk*-sliderWidth+"px,0px)";
	
		animate($("#gallery_content #thumbnails"),cssArgs);
	} else {
		animate($("#gallery_content #thumbnails"),{"left":gallery_chunk*-sliderWidth+"px"});			
	}	
}


$(document).ready(function() {

	var sliderWidth = $("#gallery_content #thumbContainer").width();
	var thumbWidth = $("#gallery_content #thumbnails li").width();
	var thumbPadding = parseInt($("#gallery_content #thumbnails li").css("margin-left")) + parseInt($("#gallery_content #thumbnails li").css("margin-right"));

	var thumbsPerChunk = Math.ceil(sliderWidth/(thumbWidth+thumbPadding));
	var numThumbs = $("#gallery_content #thumbnails li").length;
	
	var numChunks = Math.ceil(numThumbs/thumbsPerChunk) - 1;// Because we start at 0

	$("#gallery_content #thumbnails li").click(function(){
		
		var newImage = $(this).css("background-image").replace("_th.jpg",".jpg");
		
		$("#gallery_content #thumbnails li").removeClass("active");		
		$(this).addClass("active");
		
		$('#gallery_content #mainimage').css("background-image", newImage);
	});
	
	
	$('#left_arrow').click(function(){
		gallery_chunk--;
		if (gallery_chunk <= 0) {
			gallery_chunk = 0;
		}
		slide(gallery_chunk, sliderWidth);
	});
	
	$('#right_arrow').click(function(){
		gallery_chunk++;
		if (gallery_chunk >= numChunks) {
			gallery_chunk = numChunks;
		}				
		slide(gallery_chunk, sliderWidth);
	});		
});
