
// when DOM is ready
jQuery(document).ready(function($){

	// Animation de la l'accueil
	if ($('#motion') && $('#motion-callback')) {
		setTimeout(function(){
            $('#motion').fadeOut(0).css('visibility', 'visible').fadeIn(500);
        }, 500);
        setTimeout(function(){
            $('#motion').fadeOut(1000, function(){
                $('#motion-callback').fadeIn(1000);
            });
        }, 33000);
	}

	$('.more-link').click(function(e){
		e.preventDefault();
		var hiddenSection = $(this).parent().next('.hidden-section');
		if ($(this).data('toggle') != 'on') {
			$(this).text('[ less - ]');
			$(this).data('toggle', 'on');
			hiddenSection.fadeIn(600);
		} else {
			$(this).text('[ more + ]');
			hiddenSection.fadeOut(350);
			$(this).data('toggle', 'off');
		}
	});

	// URL actuelle (sans hash ni paramètres)
	var currentHref = document.location.pathname;

	// Boucler sur les liens de #menu-top et appliquer la classe 'current' aux <li> de la hiérarchie affichée à l'écran
	$('#menu-top li a').each(function(){
		if ($(this).attr('href') == currentHref) {
			$(this).parentsUntil('#menu-top').filter('li').addClass('current').addClass('current-backup');
			$(this).parent().parents('li.current').addClass('current-parent');
		}
	});
	
	// Boucler sur les liens de #footer-nav et appliquer la classe 'selected' au lien actif
	$('#footer-nav li a').each(function(){
		if ($(this).attr('href') == currentHref) {
			$(this).addClass('selected');
		}
	});

	// Menus actifs
	var currentLevel1ListItem = $('#menu-top li.current').first();

	var hoverInStyle = {
		'padding-top': '45px',
		'background-color': '#0590ca'
	};

	var hoverOutStyle = {
		'padding-top': '15px',
		'background-color': '#252525'
	};

	// Rollover sur le menu de niveau 1
	$('#menu-top > li').hover(function(){
		// ROLL-IN
		var menuItem = $(this);
		// Masquer le menu actif
		currentLevel1ListItem.find('a:first').stop().animate(hoverOutStyle, 350, 'easeInCirc', function(){
			currentLevel1ListItem.removeClass('hover')
								 .removeClass('current')
								 .addClass('current-backup');
		});
		// Montrer le menu qu'on survole
		menuItem.find('a:first').stop().animate(hoverInStyle, 650, 'easeOutCirc', function(){
			menuItem.addClass('hover');
		});
	}, function(){
		// ROLL-OUT
		var menuItem = $(this);
		// Montrer le menu actif
		currentLevel1ListItem.find('a:first').stop().animate(hoverInStyle, 650, 'easeOutCirc', function(){
			currentLevel1ListItem.addClass('current');
		});
		if (!menuItem.hasClass('current-backup')) {
			// Masquer le menu qui a été survolé
			menuItem.removeClass('hover');
			menuItem.find('a:first').stop().animate(hoverOutStyle, 350, 'easeOutCirc');
		}
	});

	////////////////
	// Who we are //
	////////////////

	// ASSOCIATES

	var selectedAssociateDescription;

	$('.associate-link').each(function(){
		var lnk  = $(this);
		$('<div class="associate-link-overlay"></div>').css('background-image', lnk.css('background-image')).appendTo(lnk);
		lnk.hover(function(){
			$(this).find('.associate-link-overlay').fadeTo(300, 1);
		}, function(){
			if (!lnk.hasClass('selected'))
				$(this).find('.associate-link-overlay').stop(true,true).fadeTo(250, 0);
		});
	});

	// Links on "our team" pictures
	$('.associate-link').click(function(e){
		// Avoid link hash's "scroll to top" effect
		e.preventDefault();
		toggleAssociateDescription($(this));
	});

	// Links in "our team" descriptions
	$('.associates-breadcrumb a').click(function(e){
		// Avoid link hash's "scroll to top" effect
		e.preventDefault();
		toggleAssociateDescription($('.associate-link[href="' + $(this).attr('href') + '"]'));
	});

	// Show or hide an associate's description
	var toggleAssociateDescription = function(elt){
		// DOM elements
		var descElt = $('a[name="' + elt.attr('href').substring(1) + '"]').parent('.associate');
		// Hide the currently displayed description and show the selected one
		if (selectedAssociateDescription != elt.attr('href')) {
			var timeout = 0;
			if ($('.associate.selected').length) {
				timeout = 250;
				// Fade out the currently displayed description's link overlay
				$('.associate-link.selected').removeClass('selected').find('.associate-link-overlay').stop(true,true).fadeTo(250, 0);
				// Fade out the currently displayed description
				$('.associate.selected').fadeOut(250, function(){
					$(this).removeClass('selected');
				});
			}
			setTimeout(function(){
				// Fade in the selected description's link overlay
				elt.find('.associate-link-overlay').fadeTo(0,1);
				elt.addClass('selected');
				// Fade in and slide down the selected description
				descElt.addClass('selected').fadeIn().slideDown();
				selectedAssociateDescription = elt.attr('href');
			}, timeout);
		}
		// Hide the currently displayed description
		else {
			$('.associate-link.selected').removeClass('selected').find('.associate-link-overlay').stop(true,true).fadeTo(250, 0);
			$('.associate.selected').fadeOut(250, function(){
				$(this).removeClass('selected');
				selectedAssociateDescription = null;
			});
		}
	}

	// PARTNERS

	var selectedPartnerDescription;

	// Links on "partners" pictures
	$('.partner-link').click(function(e){
		// Avoid link hash's "scroll to top" effect
		e.preventDefault();
		togglePartnerDescription($(this));
	});

	// Show or hide an partner's description
	var togglePartnerDescription = function(elt){
		// DOM elements
		var descElt = $('a[name="' + elt.attr('href').substring(1) + '"]').parent('.partner');
		// Hide the currently displayed description and show the selected one
		if (selectedPartnerDescription != elt.attr('href')) {
			var timeout = 0;
			if ($('.partner.selected').length) {
				timeout = 250;
				// Fade out the currently displayed description's link overlay
				$('.partner-link.selected').removeClass('selected').find('.partner-link-overlay').stop(true,true).fadeTo(250, 0);
				// Fade out the currently displayed description
				$('.partner.selected').fadeOut(250, function(){
					$(this).removeClass('selected');
				});
			}
			setTimeout(function(){
				// Fade in the selected description's link overlay
				elt.find('.partner-link-overlay').fadeTo(0,1);
				elt.addClass('selected');
				// Fade in and slide down the selected description
				descElt.addClass('selected').fadeIn().slideDown();
				selectedPartnerDescription = elt.attr('href');
			}, timeout);
		}
		// Hide the currently displayed description
		else {
			$('.partner-link.selected').removeClass('selected').find('.partner-link-overlay').stop(true,true).fadeTo(250, 0);
			$('.partner.selected').fadeOut(250, function(){
				$(this).removeClass('selected');
				selectedPartnerDescription = null;
			});
		}
	}

	// PUBLICATIONS

	$('#articles td a').hover(function(){
		$(this).animate({ 'background-color': '#025173' }, 500, 'easeOutCirc');
	}, function(){
		$(this).stop(true,true).animate({ 'background-color': '#0590ca' }, 500, 'easeOutCirc');
	});

	var selectedPublicationDescription;

	$('.publication-link').each(function(){
		var lnk  = $(this);
		$('<div class="publication-link-overlay"></div>').css('background-image', lnk.css('background-image')).appendTo(lnk);
		lnk.hover(function(){
			$(this).find('.publication-link-overlay').fadeTo(300, 1);
		}, function(){
			if (!lnk.hasClass('selected'))
				$(this).find('.publication-link-overlay').stop(true,true).fadeTo(250, 0);
		});
	});

	// Links on "publications" pictures
	$('.publication-link').click(function(e){
		// Avoid link hash's "scroll to top" effect
		e.preventDefault();
		togglePublicationDescription($(this));
	});

	// Show or hide an publication's description
	var togglePublicationDescription = function(elt){
		// DOM elements
		var descElt = $('a[name="' + elt.attr('href').substring(1) + '"]').parent('.publication');
		// Hide the currently displayed publication and show the selected one
		if (selectedPublicationDescription != elt.attr('href')) {
			var timeout = 0;
			if ($('.publication.selected').length) {
				timeout = 250;
				// Fade out the currently displayed description's link overlay
				$('.publication-link.selected').removeClass('selected').find('.publication-link-overlay').stop(true,true).fadeTo(250, 0);
				// Fade out the currently displayed description
				$('.publication.selected').fadeOut(250, function(){
					$(this).removeClass('selected');
				});
			}
			setTimeout(function(){
				// Fade in the selected description's link overlay
				elt.find('.publication-link-overlay').fadeTo(0,1);
				elt.addClass('selected');
				// Fade in and slide down the selected description
				descElt.addClass('selected').fadeIn().slideDown();
				selectedPublicationDescription = elt.attr('href');
			}, timeout);
		}
		// Hide the currently displayed description
		else {
			$('.publication-link.selected').removeClass('selected').find('.publication-link-overlay').stop(true,true).fadeTo(250, 0);
			$('.publication.selected').fadeOut(250, function(){
				$(this).removeClass('selected');
				selectedPublicationDescription = null;
			});
		}
	}


});

