/** * carroussel.js * * Created by Benoît Durand on 27 mars 2009 * * @author Benoît Durand * @version $Id: carroussel.js 1327 2009-05-14 12:40:34Z rleclercq $ */ var ajax = null; var ajax_last_url = null; var ajax_loaded = false; var img_loaded = false; var hideShadow = function(src){ if(src == "img") img_loaded = true; if(src == "ajax") ajax_loaded = true; //if(!ajax_loaded || !img_loaded) return; ajax_loaded = false; img_loaded = false; $("#loading").fadeOut('fast'); } var clickVisuel = function(src){ $('#visuelsSmall a.actif').removeClass('actif'); $(src).addClass('actif'); var idVisuel = $(src).attr('id').replace('smallVisuel', ''); $('#carrousselProduit .image a.actif').removeClass('actif'); $('#visuel'+idVisuel).addClass('actif'); return false; } $(document).ready(function() { $.ajaxSetup({ cache: true }); $('#carrousselProduit .image a img').load(function(){ hideShadow("img"); }); $('#carrousselProduits a').click(function() { // Expression régulière du nom d'un visuel d'un produit var re = /[a-z]+_([0-9]+)_[0-9]+\.[A-Za-z]+/; var imageSrc = $(this).find('img').attr('src'); var idProduit = imageSrc.match(re)[1]; $('#carrousselProduits img.bordure').removeClass('bordure'); $(this).find('img').addClass('bordure'); ajax_url = '/catalogue/index/process/produit/'+idProduit+'/format/json'; if(ajax_url==ajax_last_url) return false; if(ajax) ajax.abort(); ajax_last_url = ajax_url; // Animation de chargement $("#loading").fadeTo('fast', 0.8); $("#loading").animate({opacity: 'show' }, 'fast'); ajax = $.getJSON(ajax_url, function(data) { var produit = data.produit; // Visuels multiples : miniatures var htmlVisuels = ''; var first = true; var i, visuel; if(produit.visuels[2]){ for(i in produit.visuels){ visuel = produit.visuels[i]; var visuelSuffix = '_'+produit.id+'_'+visuel.id+'.'+visuel.extension; htmlVisuels += '
  • '; htmlVisuels += ''; htmlVisuels += ''; htmlVisuels += '
  • '; first = false; } } //console.log($('#visuels').html()); //console.log(htmlVisuels); $('#visuelsSmall').html(htmlVisuels); $('#visuelsSmall a').click(function() { return clickVisuel(this); }); // Visuels multiples : taille normale htmlVisuels = ''; first = true; for(i in produit.visuels){ visuel = produit.visuels[i]; var visuelSuffix = '_'+produit.id+'_'+visuel.id+'.'+visuel.extension; htmlVisuels += ' '; htmlVisuels += ''; first = false; } //console.log($('#carrousselProduit div.image').html()); //console.log(htmlVisuels); $('#carrousselProduit div.image').html(htmlVisuels); //$('#carrousselProduit div.image a.actif img').attr('onload', "hideShadow('img')"); // Comme le lien est modifié dynamiquement, il faut configurer manuellement la Shadowbox. Shadowbox.clearCache(); Shadowbox.setup($("#carrousselProduit div.image a"), { gallery: produit.id, initialHeight: 135, // Catalogue_Categorie_Produit_Visuel::$_sizes[Catalogue_Categorie_Produit_Visuel::MEDIUM]['height']/2 initialWidth: 245 // Catalogue_Categorie_Produit_Visuel::$_sizes[Catalogue_Categorie_Produit_Visuel::MEDIUM]['width']/2 }); // Data $('#carrousselProduit div.data .nom').html(produit.nom); $('#carrousselProduit div.data .description').html(produit.description); if (typeof setProduct == "function") { setProduct(data.produit); } // Appel du script Google Analytics pour tracker la visualisation des produits en ajax pageTrackerGeneral._trackPageview("franckmartin - Commande en ligne - CGV E-COMMERCE - " + produit.nom); if ('object' == typeof pageTracker) { pageTracker._trackPageview("Commande en ligne - CGV E-COMMERCE - " + produit.nom); } hideShadow("ajax"); } ); return false; }); // Visuels multiples $('#visuelsSmall a').click(function() { return clickVisuel(this); }); $('#visuelsSmall').fadeTo(0, 0.5); $('#visuelsSmall').hover(function(){ $(this).fadeTo("fast", 1); },function(){ $(this).fadeTo("fast", 0.5); }); });