/*

Auteur : Laurent BRACQUART <bracquart.laurent@gmail.com>
Date de création : 13 Février 2010
Version : 1.0

Index :

	0/ Gestion des effets d'ancres
	1/ Récupération des dernières images de la galerie Flick
	2/ Gestion des effets de survol sur les miniatures
	
	Annexes/ Fonctions annexes

*/

$(document).ready(function()
{
	// 0/ Gestion des effets d'ancres
	$.localScroll(
	{
		duration:	1750,
		offset:		-20
	});
	
	// ---------------------------------------------------------------------------------------- //

	// 1/ Récupération des dernières images de la galerie Flick
	var $conteneur = $('ul#derniers-travaux-flickr');
	var urlLoader = 'images/ajax-loader.gif';
	var nombrePhotos = 7;
	
	var urlRequete = 'http://api.flickr.com/services/rest/';
	
	var apiKey = 'f2786dd3d37050727778167c31248017';
	var userId = '29828605@N08';
	
	var donneesRequete = 'method=flickr.photos.search&api_key=' + apiKey + '&user_id=' + userId + '&format=json&extras=url_sq,path_alias&jsoncallback=?&per_page=' + nombrePhotos;
	
	// On vide tout d'abord le conteneur
	$conteneur.empty();
	// On informe l'utilisateur
	$conteneur.ajaxStart(function()
	{
		$(this).append('<li class="loader"><img src="' + urlLoader + '" alt="En cours de chargement..." title="En cours de chargement..." /></li>');
	}).ajaxComplete(function()
	{
		$(this).find('li.loader').remove();
	});
	// Puis on lance l'appel
	$.getJSON(urlRequete, donneesRequete, function(reponse)
	{
		//alert(JSON.stringify(reponse));
		$.each(reponse.photos.photo, function (cle, valeur)
		{
			// Création et ajout d'une miniature au conteneur
			var item =
			{
				src:	valeur.url_sq,
				titre:	valeur.title,
				id:		valeur.id,
				alias:	valeur.pathalias
			};
			var miniature = creerMiniature(item);
			$conteneur.append(miniature);
			$conteneur.find('li:last').animate(
			{
				opacity:	0.5
			}, 'fast');
		});
		// Permet un affichage optimal
		$conteneur.find('li:last').addClass('dernier-item');
	});
	
	// ---------------------------------------------------------------------------------------- //

	// 2/ Gestion des effets de survol sur les miniatures
	$('li.miniature').live('mouseover mouseout', function(event)
	{
		if (event.type == 'mouseover')
		{
			$(this).stop(true, true).animate(
			{
				'opacity':	1
			}, 'fast');
		}
		else
		{
			$(this).animate(
			{
				'opacity':	0.5
			}, 'fast');
		}
	});
});

// Annexes/ Fonctions annexes
// Construit le balisage HTML d'une miniature Flickr
function creerMiniature(item)
{
	var src = item.src;
	var titre = item.titre;
	var id = item.id;
	var alias = item.alias;
	
	var html = '<li class="miniature">';
		html += '<a href="http://www.flickr.com/photos/' + alias + '/' + id + '/" title="Accéder à Flickr et voir la photographie : ' + titre + '"><img src="' + src + '" alt="Photographie : ' + titre + '" title="" width="75" height="75" /></a>';
		html += '</li>';
	
	return html;
}
