/*

LEO FAVRE

DESIGN, HTML, CSS, JQUERY + PHP
http://leofavre.com

*/





$(window).smartresize(function(){
	sliderCorrectOnResize( "image" );
});


$(window).resize(function(){
	fixContentHeight();
})


$(window).load(function(){
	$.getScript('http://twitter.com/javascripts/blogger.js', function(){
		$.getScript('http://twitter.com/statuses/user_timeline/leofavre.json?callback=twitterCallback2&count=3');
	});
});


$(document).ready(function(){
	fixContentHeight();
	$('.article a').attr('target', '_blank');
	$('body').addClass("javascript-on");
	startSlider( "image", true );
});


function fixContentHeight(){
	var contentHeight = Math.round(( $('#content').width()-300 )*529/880)+14;
	var contentHeight = (contentHeight<250) ? 250 : contentHeight;
	$('.article').css("height", contentHeight+"px");
}


/* SLIDER */

function startSlider( context, allowLoop ){
	allowLoop = typeof(allowLoop) != "undefined" ? allowLoop : true;

	var total     = $("#"+context+" .slide").length;
	var urlHash   = window.location.hash.substr(1).split("-");
	var urlSlider = urlHash[0];
	var urlSlide  = urlHash[1];
	
	if( urlSlider==context && urlSlide && urlSlide>0 && urlSlide<(total+1) ){
		var firstSlide = urlSlide;
	}
	
	if( urlSlider ){
		window.location.hash = "";
	}

	if( $("#"+context+" .slide").length > 1 ){
		$("#"+context+"-menu .next, #"+context+"-menu .prev, #"+context+"-menu .specific").css("visibility", "visible");
		
		var currentSlide = ( firstSlide ) ? context+"-"+firstSlide : $("#"+context+" .thumb.selected").closest(".slide").attr("id");
		currentSlide = ( !currentSlide ) ? context+"-1" : currentSlide;
		sliderScrollTo( context, "#"+currentSlide, true );
		disableButtons( context, allowLoop );
		
		$("#"+context+"-menu .next").click(function(evt){
			var target = findNext( context, allowLoop );
			sliderScrollTo( context, target );
			disableButtons( context, allowLoop );
			evt.preventDefault();
		});

		$("#"+context+"-menu .prev").click(function(evt){
			var target = findPrev( context, allowLoop );
			sliderScrollTo( context, target );
			disableButtons( context, allowLoop );
			evt.preventDefault();
		});
		
		$("#"+context+"-menu .specific").click(function(evt){
			var target = $(this).attr("href");
			sliderScrollTo( context, target );
			disableButtons( context, allowLoop );
			evt.preventDefault();
		});

	} else {
		$("#"+context+"-menu .next, #"+context+"-menu .prev, #"+context+"-menu .specific").css("visibility", "hidden");
	}
}

function sliderCorrectOnResize( context ){
	if( $("#"+context+"-menu a.selected").length != 0 ){
		sliderScrollTo( context, $("#"+context+"-menu a.selected").attr("href") );
	}
}

function sliderScrollTo( context, target, nospeed ){
	var spd = (nospeed) ? 0 : 400;
	$("#"+context).scrollTo( target, spd );
	markSelectedGroup( context, target );
}

function markSelectedGroup( context, target ){
	$("#"+context+" .slide").removeClass("selected");
	$(target).addClass("selected");
	markSliderMenu( context, target );
}

function markSliderMenu( context, target ){
	$("#"+context+"-menu a").removeClass("selected");
	$("#"+context+"-menu a[href="+target+"]").addClass("selected");
}

function findSelectedGroup( context ){
	if( !$("#"+context+" .slide").hasClass("selected") ){
		$("#"+context+" .slider .slide:first-child").addClass("selected");
	}
	return( $("#"+context+" .slide.selected").attr("id") );
}

function findNext( context, allowLoop ){
	var total = $("#"+context+" .slide").length;
	var selectedId = findSelectedGroup( context );
	var selectedIndex = parseFloat( selectedId.split("-").pop() );
	if( allowLoop ){
		var target = ( selectedIndex == total ) ? "#"+context+"-1" : "#"+context+"-"+(selectedIndex+1);
	} else {
		var target = ( selectedIndex == total ) ? "#"+context+"-"+selectedIndex : "#"+context+"-"+(selectedIndex+1);
	}
	return target;
}

function findPrev( context, allowLoop ){
	var total = $("#"+context+" .slide").length;
	var selectedId = findSelectedGroup( context );
	var selectedIndex = parseFloat( selectedId.split("-").pop() );
	if( allowLoop ){
		var target = ( selectedIndex == 1 ) ? "#"+context+"-"+total : "#"+context+"-"+(selectedIndex-1);
	} else {
		var target = ( selectedIndex == 1 ) ? "#"+context+"-"+selectedIndex : "#"+context+"-"+(selectedIndex-1);
	}
	return target;
}

function disableButtons( context, allowLoop ){
	var total = $("#"+context+" .slide").length;
	var selectedId = findSelectedGroup( context );
	var selectedIndex = parseFloat( selectedId.split("-").pop() );
	if( !allowLoop ){
		if( selectedIndex == 1 ){
			$("#"+context+"-menu .prev").addClass("disabled");
			$("#"+context+"-menu .next").removeClass("disabled");
		} else if( selectedIndex == total ){
			$("#"+context+"-menu .prev").removeClass("disabled");
			$("#"+context+"-menu .next").addClass("disabled");
		} else {
			$("#"+context+"-menu .prev").removeClass("disabled");
			$("#"+context+"-menu .next").removeClass("disabled");
		}
	}
}
