(function($){$.fn.lightbox=function(g){var h=$.extend({},$.fn.lightbox.defaults,g);return this.each(function(){$(this).click(function(){initialize();start(this);return false})});function initialize(){$('#overlay').remove();$('#lightbox').remove();h.inprogress=false;if(h.jsonData&&h.jsonData.length>0){var a=h.jsonDataParser?h.jsonDataParser:$.fn.lightbox.parseJsonData;h.imageArray=[];h.imageArray=a(h.jsonData)}var b='<div id="outerImageContainer"><div id="imageContainer"><iframe id="lightboxIframe" /><img id="lightboxImage"><div id="hoverNav"><a href="javascript://" title="'+h.strings.prevLinkTitle+'" id="prevLink"></a><a href="javascript://" id="nextLink" title="'+h.strings.nextLinkTitle+'"></a></div><div id="loading"><a href="javascript://" id="loadingLink"><img src="'+h.fileLoadingImage+'"></a></div></div></div>';var c='<div id="imageDataContainer" class="clearfix"><div id="imageData"><div id="imageDetails"><span id="caption"></span><span id="numberDisplay"></span></div><div id="bottomNav">';if(h.displayHelp){c+='<span id="helpDisplay">'+h.strings.help+'</span>'}c+='<a href="javascript://" id="bottomNavClose" title="'+h.strings.closeTitle+'"><img src="'+h.fileBottomNavCloseImage+'"></a></div></div></div>';var d;if(h.navbarOnTop){d='<div id="overlay"></div><div id="lightbox">'+c+b+'</div>';$("body").append(d);$("#imageDataContainer").addClass('ontop')}else{d='<div id="overlay"></div><div id="lightbox">'+b+c+'</div>';$("body").append(d)}$("#overlay").click(function(){end()}).hide();$("#lightbox").click(function(){end()}).hide();$("#loadingLink").click(function(){end();return false});$("#bottomNavClose").click(function(){end();return false});$('#outerImageContainer').width(h.widthCurrent).height(h.heightCurrent);$('#imageDataContainer').width(h.widthCurrent);if(!h.imageClickClose){$("#lightboxImage").click(function(){return false});$("#hoverNav").click(function(){return false})}};function getPageSize(){var a=new Array($(document).width(),$(document).height(),$(window).width(),$(window).height());return a};function getPageScroll(){var a,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;a=self.pageXOffset}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;a=document.documentElement.scrollLeft}else if(document.body){yScroll=document.body.scrollTop;a=document.body.scrollLeft}var b=new Array(a,yScroll);return b};function pause(a){var b=new Date();var c=null;do{c=new Date()}while(c-b<a)};function start(a){$("select, embed, object").hide();var b=getPageSize();$("#overlay").hide().css({width:'100%',height:b[1]+'px',opacity:h.overlayOpacity}).fadeIn();imageNum=0;if(!h.jsonData){h.imageArray=[];if(!a.rel||(a.rel=='')){h.imageArray.push(new Array(a.href,h.displayTitle?a.title:''))}else{$("a").each(function(){if(this.href&&(this.rel==a.rel)){h.imageArray.push(new Array(this.href,h.displayTitle?this.title:''))}})}}if(h.imageArray.length>1){for(i=0;i<h.imageArray.length;i++){for(j=h.imageArray.length-1;j>i;j--){if(h.imageArray[i][0]==h.imageArray[j][0]){h.imageArray.splice(j,1)}}}while(h.imageArray[imageNum][0]!=a.href){imageNum++}}var c=getPageScroll();var d=c[1]+(b[3]/10);var e=c[0];$('#lightbox').css({top:d+'px',left:e+'px'}).show();if(!h.slideNavBar){$('#imageData').hide()}changeImage(imageNum)};function changeImage(a){if(h.inprogress==false){h.inprogress=true;h.activeImage=a;$('#loading').show();$('#lightboxImage').hide();$('#hoverNav').hide();$('#prevLink').hide();$('#nextLink').hide();if(h.slideNavBar){$('#imageDataContainer').hide();$('#imageData').hide();doChangeImage()}else{doChangeImage()}}};function doChangeImage(){imgPreloader=new Image();imgPreloader.onload=function(){var a=imgPreloader.width;var b=imgPreloader.height;if(h.fitToScreen){var c=getPageSize();var d;var e=c[2]-2*h.borderSize;var f=c[3]-200;if(imgPreloader.height>f){a=parseInt((f/imgPreloader.height)*imgPreloader.width);b=f}else if(imgPreloader.width>e){b=parseInt((e/imgPreloader.width)*imgPreloader.height);a=e}}$('#lightboxImage').attr('src',h.imageArray[h.activeImage][0]).width(a).height(b);resizeImageContainer(a,b)};imgPreloader.src=h.imageArray[h.activeImage][0]};function end(){disableKeyboardNav();$('#lightbox').hide();$('#overlay').fadeOut();$('select, object, embed').show()};function preloadNeighborImages(){if(h.loopImages&&h.imageArray.length>1){preloadNextImage=new Image();preloadNextImage.src=h.imageArray[(h.activeImage==(h.imageArray.length-1))?0:h.activeImage+1][0];preloadPrevImage=new Image();preloadPrevImage.src=h.imageArray[(h.activeImage==0)?(h.imageArray.length-1):h.activeImage-1][0]}else{if((h.imageArray.length-1)>h.activeImage){preloadNextImage=new Image();preloadNextImage.src=h.imageArray[h.activeImage+1][0]}if(h.activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=h.imageArray[h.activeImage-1][0]}}};function resizeImageContainer(a,b){h.widthCurrent=$("#outerImageContainer").outerWidth();h.heightCurrent=$("#outerImageContainer").outerHeight();var c=Math.max(350,a+(h.borderSize*2));var d=(b+(h.borderSize*2));h.xScale=(c/h.widthCurrent)*100;h.yScale=(d/h.heightCurrent)*100;wDiff=h.widthCurrent-c;hDiff=h.heightCurrent-d;$('#imageDataContainer').animate({width:c},h.resizeSpeed,'linear');$('#outerImageContainer').animate({width:c},h.resizeSpeed,'linear',function(){$('#outerImageContainer').animate({height:d},h.resizeSpeed,'linear',function(){showImage()})});if((hDiff==0)&&(wDiff==0)){if(jQuery.browser.msie){pause(250)}else{pause(100)}}$('#prevLink').height(b);$('#nextLink').height(b)};function showImage(){$('#loading').hide();$('#lightboxImage').fadeIn("fast");updateDetails();preloadNeighborImages();h.inprogress=false};function updateDetails(){$('#numberDisplay').html('');if(h.imageArray[h.activeImage][1]){$('#caption').html(h.imageArray[h.activeImage][1]).show()}if(h.imageArray.length>1){var a;a=h.strings.image+(h.activeImage+1)+h.strings.of+h.imageArray.length;if(!h.disableNavbarLinks){if((h.activeImage)>0||h.loopImages){a='<a title="'+h.strings.prevLinkTitle+'" href="#" id="prevLinkText">'+h.strings.prevLinkText+"</a>"+a}if(((h.activeImage+1)<h.imageArray.length)||h.loopImages){a+='<a title="'+h.strings.nextLinkTitle+'" href="#" id="nextLinkText">'+h.strings.nextLinkText+"</a>"}}$('#numberDisplay').html(a).show()}if(h.slideNavBar){$("#imageData").slideDown(h.navBarSlideSpeed)}else{$("#imageData").show()}var b=getPageSize();$('#overlay').height(b[1]);updateNav()};function updateNav(){if(h.imageArray.length>1){$('#hoverNav').show();if(h.loopImages){$('#prevLink,#prevLinkText').show().click(function(){changeImage((h.activeImage==0)?(h.imageArray.length-1):h.activeImage-1);return false});$('#nextLink,#nextLinkText').show().click(function(){changeImage((h.activeImage==(h.imageArray.length-1))?0:h.activeImage+1);return false})}else{if(h.activeImage!=0){$('#prevLink,#prevLinkText').show().click(function(){changeImage(h.activeImage-1);return false})}if(h.activeImage!=(h.imageArray.length-1)){$('#nextLink,#nextLinkText').show().click(function(){changeImage(h.activeImage+1);return false})}}enableKeyboardNav()}};function keyboardAction(e){var o=e.data.opts;var a=e.keyCode;var b=27;var c=String.fromCharCode(a).toLowerCase();if((c=='x')||(c=='o')||(c=='c')||(a==b)){end()}else if((c=='p')||(a==37)){if(o.loopImages){disableKeyboardNav();changeImage((o.activeImage==0)?(o.imageArray.length-1):o.activeImage-1)}else if(o.activeImage!=0){disableKeyboardNav();changeImage(o.activeImage-1)}}else if((c=='n')||(a==39)){if(h.loopImages){disableKeyboardNav();changeImage((o.activeImage==(o.imageArray.length-1))?0:o.activeImage+1)}else if(o.activeImage!=(o.imageArray.length-1)){disableKeyboardNav();changeImage(o.activeImage+1)}}};function enableKeyboardNav(){$(document).bind('keydown',{opts:h},keyboardAction)};function disableKeyboardNav(){$(document).unbind('keydown')}};$.fn.lightbox.parseJsonData=function(a){var b=[];$.each(a,function(){b.push(new Array(this.url,this.title))});return b};$.fn.lightbox.defaults={fileLoadingImage:'/ressources/images/lightbox/loading.gif',fileBottomNavCloseImage:'/ressources/images/lightbox/closelabel.gif',overlayOpacity:0.8,borderSize:10,imageArray:new Array,activeImage:null,inprogress:false,resizeSpeed:350,widthCurrent:250,heightCurrent:250,xScale:1,yScale:1,displayTitle:true,navbarOnTop:false,slideNavBar:false,navBarSlideSpeed:350,displayHelp:false,strings:{help:' \u2190 / P - image pr&eacute;c&eacute;dente\u00a0\u00a0\u00a0\u00a0\u2192 / N - image suivante\u00a0\u00a0\u00a0\u00a0ESC / X - fermer la galerie',prevLinkTitle:'image pr&eacute;c&eacute;dente',nextLinkTitle:'image suivante',prevLinkText:'&laquo; Pr&eacute;c&eacute;dente',nextLinkText:'Suivante &raquo;',closeTitle:'fermer la galerie',image:'Image ',of:' de '},fitToScreen:true,disableNavbarLinks:false,loopImages:true,imageClickClose:false,jsonData:null,jsonDataParser:null}})(jQuery);