1// Inspired by the lightbox plugin adapted to jquery by Leandro Vieira Pinho (http://leandrovieira.com) 2// Nicolas Turlais 3// Licensed under CCAttribution-ShareAlike 4// V0.2 5(function($) { 6 images = new Array(); 7 $.fn.Chocolat = function(settings) { 8 settings = $.extend({ 9 modeText: false, 10 linksContainer: 'Choco_links_container', // must be an <ul> ID , # 11 overlayOpacity: 0.99, 12 overlayCouleur: '#1d0a08', 13 vitesseApparitionOverlay: 500, 14 vitesseApparitionImage: 500, 15 vitesseDisparitionImage: 500, 16 vache: true, //active(true) ou non(false) la fermeture lorsque l'on clique sur le fond. 17 separateur1: ' ', //separe le titre la serie de la position de l'image au sein de la série ... 18 separateur2: '/', //sépare l'image actuelle sur le nombre d'image total dans la série... 19 gaucheImg: '../images/gauche.gif', //chemin vers l'image pour aller vers la gauche 20 droiteImg: '../images/droite.gif', //chemin vers l'image pour aller vers la droite 21 fermerImg: '../images/close.gif', //chemin vers l'image pour fermer chocolat 22 imageActuelle: 0, //ici devient l'image de départ... 23 serie: 0, 24 nomSerie: 1, 25 derniereImage: 0 26 },settings); 27 this.each(function(index){ 28 settings.serie = images.length; 29 settings.nomSerie = $(this).attr('title'); 30 images[settings.serie] = new Array(); 31 if($(this).get(0).tagName == 'A'){e = $(this);}// si l'appel est fait sur les liens 32 else{e = $(this).children();}// sinon (sur une div) 33 e.each(function(index) { 34 images[settings.serie][index] = new Array(); 35 images[settings.serie][index]['adresse'] = $(this).attr('href'); 36 images[settings.serie][index]['legende'] = $(this).attr('title'); 37 if(!settings.modeText){ 38 $(this).unbind('click').bind('click', {id: settings.serie, nom : settings.nomSerie, i : index}, _initialise); 39 } 40 }) 41 if(settings.modeText){ 42 if($('#'+settings.linksContainer).size() == 0){ 43 $(this).before('<ul id="'+settings.linksContainer+'"></ul>'); 44 } 45 $('#'+settings.linksContainer).append('<li><a href="#" id="Choco_numserie_'+settings.serie+'" class="Choco_link">'+settings.nomSerie+'</a></li>'); 46 $(this).remove(); 47 return $('#Choco_numserie_'+settings.serie).unbind('click').bind('click', {id: settings.serie, nom : settings.nomSerie, i : settings.imageActuelle}, _initialise); 48 } 49 }); 50 51 function _initialise(event) { 52 settings.imageActuelle = event.data.i; 53 settings.serie = event.data.id; 54 settings.nomSerie = event.data.nom; 55 afficherChocolat(settings.serie); //recupere numserie dans id . 56 return false; 57 } 58 function _interface(){ 59 //html 60 $('body').append('<div id="Choco_overlay"></div><div id="Choco_content"><div id="Choco_close"></div><div id="Choco_container_photo"></div><div id="Choco_container_description"><span id="Choco_container_titre"></span><span id="Choco_container_via"></span></div><div id="Choco_aller_gauche" class="Choco_fleches"></div><div id="Choco_aller_droite" class="Choco_fleches"></div></div>'); 61 $('#Choco_aller_gauche').css('background-image', 'url('+settings.gaucheImg+')'); 62 $('#Choco_aller_droite').css('background-image', 'url('+settings.droiteImg+')'); 63 $('#Choco_close').css('background-image', 'url('+settings.fermerImg+')'); 64 //events 65 $(document).unbind().bind('keypress', function(e){ 66 switch(e.keyCode){ 67 case 37: 68 changePageChocolat(-1); 69 break; 70 case 39: 71 changePageChocolat(1); 72 break; 73 case 27: 74 close(); 75 break; 76 }; 77 }); 78 if(settings.vache){ 79 $('#Choco_overlay').click(function(){ 80 close(); 81 return false; 82 }); 83 } 84 $('#Choco_aller_gauche').unbind().bind('click', function(){ 85 changePageChocolat(-1); 86 return false; 87 }); 88 $('#Choco_aller_droite').unbind().bind('click', function(){ 89 changePageChocolat(1); 90 return false; 91 }); 92 $('#Choco_close').unbind().bind('click', function(){ 93 close(); 94 return false; 95 }); 96 97 $(window).resize(function() { 98 load(settings.imageActuelle,true);//load (image, resize) 99 }); 100 } 101 function afficherChocolat(numero_serie){ 102 _interface(); 103 settings.serie = numero_serie; 104 settings.derniereImage = images[settings.serie].length - 1; 105 load(settings.imageActuelle); 106 $('#Choco_overlay').height($(document).height()).css({'background-color' : settings.overlayCouleur, 'opacity' : settings.overlayOpacity}).fadeIn(settings.vitesseApparitionOverlay); 107 $('#Choco_content').css({'display' : 'block'}); 108 } 109 110 function gestionFlechesChocolat(quoi){ 111 montrer = true; 112 if(quoi == 'Choco_aller_droite' && settings.imageActuelle == settings.derniereImage){ 113 montrer = false;
114 } 115 else if(quoi == 'Choco_aller_gauche' && settings.imageActuelle == 0){ 116 montrer = false; 117 } 118 if(montrer){ 119 $('#'+quoi).css({'display':'block'}); 120 } 121 } 122 function preload(){ 123 if(settings.imageActuelle !== settings.derniereImage){ 124 i = new Image; 125 z = settings.imageActuelle + 1; 126 i.src = images[settings.serie][z]['adresse']; 127 } 128 } 129 function load(y,resize){ 130 resize = resize || false; 131 settings.imageActuelle = y; 132 var imgPreloader = new Image(); 133 imgPreloader.src = images[settings.serie][settings.imageActuelle]['adresse']; 134 135 $('#Choco_container_photo').html('<img id=\"Choco_grandeImage\" src=\"\" />'); 136 137 imgPreloader.onload = function(){ 138 $('#Choco_grandeImage').attr('src',images[settings.serie][settings.imageActuelle]['adresse']); 139 var ajustees = ajuster_taille(imgPreloader.height,imgPreloader.width); 140 var largeur_image = ajustees['largeur']; 141 var hauteur_image = ajustees['hauteur']; 142 ChoColat(hauteur_image,largeur_image,resize); 143 imgPreloader.onload=function(){}; 144 }; 145 imgPreloader.src = images[settings.serie][settings.imageActuelle]['adresse']; 146 preload(); 147 majDesc(); 148 } 149 function changePageChocolat(signe){ 150 if(settings.imageActuelle == 0 && signe == -1) 151 { 152 return false; 153 } 154 else if(settings.imageActuelle == settings.derniereImage && signe == 1){ 155 return false; 156 } 157 else{ 158 $('#Choco_container_description').fadeOut(settings.vitesseDisparitionImage); 159 $('#Choco_content').fadeOut(settings.vitesseDisparitionImage,function (){ 160 $('#Choco_content').css({'display' : 'block'}); 161 $('#Choco_container_photo').html(''); 162 load(settings.imageActuelle + parseInt(signe)); 163 }); 164 } 165 } 166 function majDesc(){ 167 var actuelle = settings.imageActuelle + 1; 168 var finale = settings.derniereImage + 1; 169 $('#Choco_container_titre').html(images[settings.serie][settings.imageActuelle]['legende']); 170 $('#Choco_container_via').html(settings.nomSerie+settings.separateur1+actuelle +settings.separateur2+finale); 171 } 172 173 function ChoColat(hauteur_image,largeur_image,resize){ 174 $('#Choco_container_photo').css({'display' : 'block'}); 175 $('.Choco_fleches').fadeOut(settings.vitesseDisparitionImage, function(){//(-100) 176 gestionFlechesChocolat($(this).attr('id')); 177 }); 178 if(resize){ 179 // stop sert à eviter les saccades lorsque l'on redimentsionne la fenetre. bizarrement, stop induit un overflow hidden, d'où la suite. 180 $('#Choco_content').stop(true,false).css({'overflow':'visible'}) 181 } 182 $('#Choco_content').animate({ 183 'height' : hauteur_image, 184 'width' : largeur_image, 185 'marginLeft' : -largeur_image/2, 186 'marginTop' : -(hauteur_image+50)/2 187 },400, 'swing', function(){ 188 $('#Choco_container_description').fadeIn(settings.vitesseApparitionImage); 189 $('#Choco_grandeImage').css('marginTop',-20).height(hauteur_image).width(largeur_image).fadeIn(settings.vitesseApparitionImage); 190 $('#Choco_aller_gauche, #Choco_aller_droite').css('top',-hauteur_image-30); 191 }); 192 } 193 function ajuster_taille(himg,limg){ 194 var lblock = limg + 200; 195 var hblock = himg + 65; 196 197 var k = limg/himg; 198 var kk = himg/limg; 199 200 var windowWidth = $(window).width(); 201 var windowHeight = $(window).height(); 202 203 notFitting = true; 204 while (notFitting){ 205 var lblock = limg + 200; 206 var hblock = himg + 65; 207 if(lblock > windowWidth){ 208 limg = (windowWidth - 250); 209 himg = kk * limg; 210 }else if(hblock > windowHeight){ 211 himg = (windowHeight - 105); 212 limg = k * himg; 213 }else{ 214 notFitting = false; 215 }; 216 }; 217 return { 218 largeur:limg, 219 hauteur:himg 220 }; 221 222 } 223 function close(){ 224 $('#Choco_overlay').fadeOut(900, function(){$('#Choco_overlay').remove()}); 225 $('#Choco_content').fadeOut(500, function(){$('#Choco_content').remove()}); 226 settings.imageActuelle = 0; 227 } 228 229}; 230})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.