$(function(){
	/*************************
	 * FUNCTIONS
	 ************************/
	function hidePhoto(class1){
		$('img.'+class1).fadeOut(animateSpeed, function(){ 
			$(this).removeClass(class1).parent().removeClass(class1);
		});
	}
	/*************************
	 * END FUNCTIONS
	 ************************/
	
	
	/*************************
	 * SET UP FORM + CAROUSEL
	 ************************/
	// Define some constants (positioning of images)
	var pos1 = {height: '65px', left: '40px', top: '61px'},
		pos2 = {height: '65px', left: '40px', top: '61px'},
		pos3 = {height: '100px', left: '55px', top: '46px'},
		pos4 = {height: '200px', left: '95px', top: '0'},
		pos5 = {height: '100px', left: '290px', top: '46px'},
		pos6 = {height: '65px', left: '360px', top: '61px'},
		pos7 = {height: '65px', left: '360px', top: '61px'},
		animateSpeed = 500,
		visHidden= {visibility: 'hidden'};
	
	// Hide and position the preloading images
	var images = $('fieldset a img'), cur = images.index($('img.foto4')[0]);
	if(cur > 2){
		$('fieldset a img:lt('+(cur-3)+')').css(visHidden).css(pos1);
	}
	$('fieldset a img:gt('+(cur+3)+')').css(visHidden).css(pos7);
	
	/*************************
	 * END SET UP FORM + CAROUSEL
	 ************************/
	
	
	/*************************
	 * SUBMIT BUTTON HANDLER
	 ************************/
	$('#next').click(function () {
		if(!$('img.foto5')[0]){
			return false;
		}
				
		var pos = $('fieldset > img').index($('img.foto4')[0]);
		
		// Hide the first currently visible photo
		hidePhoto('foto1');
	
		// Second becomes first, third becomes second, etc
		$('img.foto2').animate(pos1, animateSpeed).removeClass('foto2').addClass('foto1').parent().removeClass('foto2').addClass('foto1');
		$('img.foto3').animate(pos2, animateSpeed).removeClass('foto3').addClass('foto2').parent().removeClass('foto3').addClass('foto2');
		$('img.foto4').animate(pos3, animateSpeed).removeClass('foto4').addClass('foto3').parent().removeClass('foto4').addClass('foto3');
		$('img.foto5').animate(pos4, animateSpeed).removeClass('foto5').addClass('foto4').parent().removeClass('foto5').addClass('foto4');
		$('img.foto6').animate(pos5, animateSpeed).removeClass('foto6').addClass('foto5').parent().removeClass('foto6').addClass('foto5');
		$('img.foto7').animate(pos6, animateSpeed).removeClass('foto7').addClass('foto6').parent().removeClass('foto7').addClass('foto6')
			// Add the next (preloaded) image to the carousel
			.next()
			.addClass('foto7')
			.find('img')
			.css({visibility: 'visible', display: 'none'})
			.css(pos7)
			.fadeIn(animateSpeed)
			.addClass('foto7');
		return false;
	});
	/*************************
	 * END SUBMIT BUTTON HANDLER
	 ************************/
	
	
	/*************************
	 * BACK BUTTON HANDLER
	 ************************/
	$('#previous').click(function(){
		
		if(!$('img.foto3')[0]){
			return false;
		}
		
		// Hide the last currently visible photo
		hidePhoto('foto7');			
		
		// Sixth becomes seventh, fifth becomes sixth
		$('img.foto6').animate(pos7, animateSpeed).removeClass('foto6').addClass('foto7').parent().removeClass('foto6').addClass('foto7');
		$('img.foto5').animate(pos6, animateSpeed).removeClass('foto5').addClass('foto6').parent().removeClass('foto5').addClass('foto6');
		$('img.foto4').animate(pos5, animateSpeed).removeClass('foto4').addClass('foto5').parent().removeClass('foto4').addClass('foto5');
		$('img.foto3').animate(pos4, animateSpeed).removeClass('foto3').addClass('foto4').parent().removeClass('foto3').addClass('foto4');
		$('img.foto2').animate(pos3, animateSpeed).removeClass('foto2').addClass('foto3').parent().removeClass('foto2').addClass('foto3');
		$('img.foto1').animate(pos2, animateSpeed).removeClass('foto1').addClass('foto2').parent().removeClass('foto1').addClass('foto2')
			// Add the next (preloaded) image to the carousel
			.prev()
			.addClass('foto1')
			.find('img')
			.css({visibility: 'visible', display: 'none'})
			.css(pos1)
			.fadeIn(animateSpeed)
			.addClass('foto1');
		return false;
	});
	/*************************
	 * END BACK BUTTON HANDLER
	 ************************/
	
	$("a.foto4").live("click", function(ev){
		var d = $(this).find("img").clone();
		d.css("height", "auto");
		$.modal(d);
		return false;
	});
});
