(function($) {
	$(document).ready(function() {
	
		var cache = [];
		
		$.fn.preLoadImages = function() {
			// Arguments are image paths relative to the current page.
			var args_len = arguments.length;
			for (var i = args_len; i--;) {
				var cacheImage = document.createElement('img');
				cacheImage.src = arguments[i];
				cache.push(cacheImage);
			}
		}
		
		$.fn.itemToHero = function(el, load) {
			load = (load == undefined) ? true : load;
			if ($('#work-large img').attr('rel') != $(el).attr('rel')) {
				$('#work-large img').attr('rel', $(el).attr('rel'));
				var src = $(el).attr('rel');
				if (load) {
					$('#work-large img').fadeOut('fast', function(e){
						$(this).attr('src', $(this).attr('rel'));
					});
					$('#work-large a').attr('href', $(el).attr('href'));
				}
				$('#work-navigation li a').each(function() {
					if ($('#work-large img').attr('rel') == $(this).attr('rel')) {
						$(this).addClass('selected');
					} else {
						$(this).removeClass('selected');
					}
				});
			}
		}
		
		// Callback
		$('#work-large img').load(function(e){
			$(this).fadeIn('slow');
		});
		
		$('#work-navigation li a').hover(function(e) {
			// e.preventDefault();
			$.fn.itemToHero(this);
		});
		
		// Next image button
		$('#work-wrapper #slide-next').click(function(e){
			var arr = $('#work-navigation li a').get();
			var selected = $('#work-navigation li a.selected');
			var i = $('#work-navigation li a').index(selected);
			i++;
			if (i >= arr.length) {
				i=0;
			}
			$.fn.itemToHero(arr[i]);
		});
		
		// Previous image button
		$('#work-wrapper #slide-back').click(function(e){
			var arr = $('#work-navigation li a').get();
			var selected = $('#work-navigation li a.selected');
			var i = $('#work-navigation li a').index(selected);
			i--;
			if (i < 0) {
				i=arr.length-1;
			}
			$.fn.itemToHero(arr[i]);
		});
		
		// Load first image
		var arr = $('#work-navigation li a').get();
		if (arr.length) {
			$.fn.itemToHero(arr[0], false);
			
			var url = '';
			for (var i = 0; i<arr.length; i++) {
				url = $(arr[i]).attr('rel');			
				$.fn.preLoadImages(url);
			}
		}
	});
})(jQuery);