/**
* 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);
}
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);
});
});