;(function($, undefined){
	
	$.fn.ifrRef = function(){
		var $this = this.first();
		var lightboxTpl = $("#lightbox-references").tmpl();
		
			//ajout du lien
		$this.find('article').wrap('<a href="#" class="ifrRef-link"></a>');
								
			//centrage vertical du logo
		$this.find('.logo').each(function(){
			var logo = $(this);
			logo.css({
				position: 'relative',
				top: '50%',
				marginTop: -Math.round(logo.height()/2) + 'px'
			});
		});
		
			//évènements
		$this.delegate('.ifrRef-link', 'click', openLightBox);
		$(document).delegate('.lightbox-close, #lightbox-overlay', 'click', closeLightBox);
		
		
		/**
		 * Ouverture de la lightbox
		 */
		function openLightBox(e){
			e.preventDefault();
			var article = $(e.currentTarget).find('article').clone();
			
			//suppression du centrage du logo
			article.find('.logo').css({
				position: 'static',
				top: 0,
				marginTop: 0
			});
			
			var lightboxContainer = lightboxTpl.clone();
			var lightbox = lightboxContainer.find('#lightbox');
			
			lightboxContainer.appendTo( $('body') )
							 .hide()
							 .fadeIn();
			
			lightbox.append(article)
					.css({
						top: '50%',
						left: '50%',
						marginTop: -Math.round( lightbox.outerHeight() / 2 ) + 'px',
						marginLeft: -Math.round( lightbox.outerWidth() / 2 ) + 'px'
					})
					.hide()
					.slideDown();
			
			$(document).bind('keydown', keyPress);
		}
		
		/**
		 * Fermeture de la lightbox
		 */
		function closeLightBox(e){
			if(e) e.preventDefault();
			var lightboxContainer = $('#lightbox-container');
			var lightbox = lightboxContainer.find('#lightbox');

			lightbox.slideUp('fast', function(){
					lightboxContainer.fadeOut('fast', function(){
						lightboxContainer.remove();
					});
				});
			
			$(document).unbind('keydown', keyPress);
		}
		
		/**
		 * Handler des touches clavier
		 * ferme la lightbox sur ESC
		 * @param e evènement
		 */
		function keyPress(e){
			if( e.keyCode === 27 ){
				closeLightBox();
			}
		}
	}
	
})(window.jQuery);
