$(document).ready(function (){
	loadSlider();
	loadLinkEffects();
	var hash = window.location.hash.substr(1);
	var href = $('.content_loader').each(function() {
		var href = $(this).attr('href');
		if(hash == href.substr(0,href.length-5)) {
			var toLoad = hash+'.html #content>*';
		} else {
			$('#content').fadeIn('slow');
		}
		$('#content').load(toLoad,'', function() {
			$('#content').fadeIn('normal');
			loadSlider();
			loadNivoSlider();
			loadLinkEffects();
		});
		return true;
	});

	$('.content_loader').click(function() {
		var toLoad = $(this).attr('href')+' #content>*';
		$('#content').fadeOut('normal',loadContent);
		window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
		function loadContent() {
			$('#content').load(toLoad,'',function(){
				$('#content').fadeIn('normal');
				loadSlider();
				loadNivoSlider();
				loadLinkEffects();
			});
		}
		return false;
	});	
});

function loadLinkEffects() {
	$('.nb_top a').mouseover(function() {
		$(this).animate({
			color: '#000'
		},100);
	});
	
	$('.nb_top a').mouseout(function() {
		$(this).animate({
			color: '#CCC'
		},100);
	});

	$('.nb_bottom a').mouseover(function() {
		$(this).animate({
			color: '#E2726D'
		},100);
	});

	$('.nb_bottom a').mouseout(function() {
		$(this).animate({
			color: '#C2524D'
		},100);
	});
			
	$('#langs a').mouseover(function() {
		$(this).animate({
			color: '#E2726D'
		},100);
	});

	$('#langs a').mouseout(function() {
		$(this).animate({
			color: '#C2524D'
		},100);
	});
	
	$('.pdf a').mouseover(function() {
		$(this).animate({
			color: '#E2726D'
		},100);
	});
	
	$('.pdf a').mouseout(function() {
		$(this).animate({
			color: '#C2524D'
		},100);
	});
	
	$('#content a').mouseover(function() {
		$(this).animate({
			color: '#E2726D'
		},100);
	});

	$('#content a').mouseout(function() {
		$(this).animate({
			color: '#C2524D'
		},100);
	});
	
	$('#footer a').mouseover(function() {
		$(this).animate({
			color: '#E2726D'
		},100);
	});

	$('#footer a').mouseout(function() {
		$(this).animate({
			color: '#CCC'
		},100);
	});
}


function loadSlider() {
	var currentPosition = 0;
	var slideWidth = 630;
	var slides = $('.slide');
	var numberOfSlides = slides.length;

	// Remove scrollbar in JS
	$('#slidesContainer').css('overflow', 'hidden');

	// Wrap all .slides with #slideInner div
	slides.wrapAll('<div id="slideInner"></div>')
	// Float left to display horizontally, readjust .slides width
	.css({
		'float' : 'left',
		'width' : slideWidth
	});

	// Set #slideInner width equal to total width of all slides
	$('#slideInner').css('width', slideWidth * numberOfSlides);

	// Insert left and right arrow controls in the DOM
	$('#slideshow')
	.prepend('<span class="control" id="leftControl"></span>')
	.append('<span class="control" id="rightControl"></span>');
	
	// Hide left arrow control on first load
	manageControls(currentPosition);

	// Create event listeners for .controls clicks
	$('.control').bind('click', function(){
		// Determine new position
		currentPosition = ($(this).attr('id')=='rightControl') ? currentPosition+1 : currentPosition-1;
		positionMoved(currentPosition);
	});
	
	$(document.documentElement).keyup(function(event) {
		if (event.keyCode == 37 && currentPosition > 0) {
			currentPosition = currentPosition-1;
		} else if (event.keyCode == 39 && currentPosition < numberOfSlides-1) {
			currentPosition = currentPosition+1;
		} else {
			return false;
		}
		positionMoved(currentPosition);
	});
	
	function positionMoved(currentPosition) {
		// Hide / show controls
		manageControls(currentPosition);
		// Move slideInner using margin-left
		$('#slideInner').animate({
			'marginLeft' : slideWidth*(-currentPosition)
		}, 500);
	}

	// manageControls: Hides and shows controls depending on currentPosition
	function manageControls(position){
		// Hide left arrow if position is first slide
		if(position==0){ $('#leftControl').hide(); }
		else{ $('#leftControl').fadeIn('fast'); }
		// Hide right arrow if position is last slide
		if(position==numberOfSlides-1){ $('#rightControl').hide(); }
		else{ $('#rightControl').fadeIn('fast'); }
	}
	return;
}

function loadNivoSlider() {
	var sliders = $('.slider').length;
	for (var i = 0; i < sliders; i++) {
		$('#slider'+(i+1)).nivoSlider({
			effect:'fade',
			animSpeed:100,
			pauseTime:3000,
			controlNav:false,
			directionNav:false,
			captionOpacity:0.7,
			prevText:' ',
			nextText:' ',	
		});
	}
}
