/**
 * Script commun à toutes les pages de la boutique.
 */

$(function() {
  /* Mise en route du formulaire d'identification sur l'upline. */
  
  var $formulaire = $("#form_dejaInscrit_upline");
  var $commutateur = $("a", $formulaire.parent());
  var hauteurDuFormulaire = parseInt($formulaire.css("height"));
  var topFormulaire_cache = (-hauteurDuFormulaire - 4) +"px";
  var topFormulaire_affiche = "-49px";
  
  $formulaire.css({ top: topFormulaire_cache });
  
  $commutateur.click(function() {
    if ($commutateur.hasClass("active")) {
      $formulaire.animate({ top: topFormulaire_cache }, 500, "easeInBack", function() {
        $commutateur.removeClass("active");
      });
    } else {
      $commutateur.addClass("active");
      $formulaire.animate({ top: topFormulaire_affiche }, 500, "easeOutBack");
      $("#form_dejaInscrit_upline_email").focus();
    }
    
    return false;
  });
  
  
  
  /* Mise en route du panier */
  
  $("#nbProduitsDansLePanier").text(nbProduitsDansLePanier+" "+(nbProduitsDansLePanier > 1 ? larticles : larticle));
  
  var partieEntiereDuMontantTotalDuPanier = Math.floor(montantTotalDuPanier);
  var partieDecimaleDuMontantTotalDuPanier = Math.round((montantTotalDuPanier - partieEntiereDuMontantTotalDuPanier) * 100);
  
  $("#montantTotalDuPanier span").text(
      formatPrix.replace(
          /^.*([\.,])[0-9]{2}([^0-9]+)$/, partieEntiereDuMontantTotalDuPanier+"$1"+(partieDecimaleDuMontantTotalDuPanier >= 10 ? "" : "0")+partieDecimaleDuMontantTotalDuPanier+"$2"
      )
  );

});





/* Fonction pour ajouter un produit au panier */

var ajouterUnProduitAuPanier = function(idProduit, montantDuProduit) {
  $.post(
      "cart.php",
      {
        id_product: idProduit,
        add: 1,
        qty: 1,
        ajax: true
      },
      function(ajout) {
        if (ajout.redirigerVersLaFicheProduit) {
          window.location.replace(ajout.redirection);
          return;
        }
        
        if (ajout.hasError) {
          var messageDErreur = "";
          
          for (var i = 0; i < ajout.errors.length; ++i) {
            messageDErreur += ajout.errors[i];
            
            if (i < ajout.errors.length - 1) {
              messageDErreur += "\r\n";
            }
          }
          
          alert(messageDErreur);
        } else { // Le produit a bien été ajouté au panier.
          var iProduit = 0;
          for (; iProduit < ajout.products.length && ajout.products[iProduit].id != idProduit; ++iProduit);
          
          if (
                 (ajout.products[iProduit].nbDeclinaisons == 0 && ajout.products[iProduit].stock < 1)
              || (ajout.products[iProduit].nbDeclinaisons > 0 && ajout.products[iProduit].stockDeclinaisons < 1)
          ) { // Si le produit n'est plus en stock après cet ajout, suppression du bouton d'ajout.
            $("#produit"+idProduit+"_ajouterAuPanier").fadeOut(function () {
              $(this).remove();
            });
          }
          
          // Envoi de l'illustration du produit dans le panier
          var $lIllustration = $("#produit"+idProduit+"_illustration");
          var $cloneDeLIllustration = $lIllustration.clone();
          var offsetDuPanier = $("#panier").offset();
          $cloneDeLIllustration.attr(
              { id: "produit"+idProduit+"_illustration_clone" }
          ).css(
              {
                position: "absolute",
                left: $lIllustration.offset().left+"px",
                top: $lIllustration.offset().top+"px",
                opacity: "0"
              }
          );
          $("body").append($cloneDeLIllustration);
          $cloneDeLIllustration.animate({ opacity: "1" }, 250, "linear", function() {
            $(this).animate(
                { left: offsetDuPanier.left+"px", top: offsetDuPanier.top+"px", opacity: "0" },
                1000,
                "easeInOutQuart",
                function() {
                  $(this).remove();
          
                  $("#nbProduitsDansLePanier").text(++nbProduitsDansLePanier+" "+(nbProduitsDansLePanier > 1 ? larticles : larticle));
                  
                  montantTotalDuPanier += montantDuProduit;
                  
                  var partieEntiereDuMontantTotalDuPanier = Math.floor(montantTotalDuPanier);
                  var partieDecimaleDuMontantTotalDuPanier = Math.round((montantTotalDuPanier - partieEntiereDuMontantTotalDuPanier) * 100);
                  
                  $("#montantTotalDuPanier span").text(
                      formatPrix.replace(
                          /^.*([\.,])[0-9]{2}([^0-9]+)$/, partieEntiereDuMontantTotalDuPanier+"$1"+(partieDecimaleDuMontantTotalDuPanier >= 10 ? "" : "0")+partieDecimaleDuMontantTotalDuPanier+"$2"
                      )
                  );
                }
            );
          });
        }
      },
      "json"
  );
};
