var formatDecimal = ",";
var formatCentaine = ".";
// créer un bouton à la volée
function toImage(largeur, hauteur, intX, intY, colorR, colorG, colorB, ombre1, ombre2, ombre3, font, fontsize, texte, image, colback1, colback2, colback3)
{
// url création de l'image
var url = "/images/titre/bouton.php?largeur="
+ largeur + "&hauteur=" + hauteur + "&intX=" + intX + "&intY=" + intY + "&color1="
+ colorR + "&color2=" + colorG + "&color3=" + colorB + "&ombre1=" + ombre1 + "&ombre2=" + ombre2 + "&ombre3=" + ombre3
+ "&font=" + font + "&fontsize=" + fontsize + "&txt=" + texte + "&image=" + image + "&colback1="
+ colback1 + "&colback2=" + colback2 + "&colback3=" + colback3;
return url;
}
function souscrire_pack(ref)
{
if(ajouter_produit(ref, 1))
{
window.location.replace("/fr/partenaires/store/commande/validation.php5");
}
}
function renouveler_pack(ref)
{
if(ajouter_produit(ref, 1, 'RENOUVELLEMENT'))
{
window.location.replace("/fr/partenaires/store/commande/validation.php5");
}
}
function ajouter_produit(ref, qte, code)
{
if( PMP.common.isUndefined(ref) )
{
var msgbox = new PMP.util.pmpMsgBox("Référence non définie", "erreur", "Ajout d'un produit");
return false;
}
if( !PMP.common.isNumber(qte) )
{
var msgbox = new PMP.util.pmpMsgBox("Quantité non définie", "erreur", "Ajout d'un produit");
return false;
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/fr/partenaires/store/alias_boutique.php5", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Ajout d'un produit");
return false;
}
ajax.appendData("action", "ajouter_produit");
ajax.appendData("ref", ref);
ajax.appendData("qte", qte);
if( !PMP.common.isUndefined(code) )
ajax.appendData("code_prix", code);
var retour = ajax.send();
if(!retour)
{
var msgbox = new PMP.util.pmpMsgBox("Une erreur s'est produite.", "erreur", "Ajout d'un produit");
return false;
}
else if(retour.responseText.trim()!="1")
{
//var msgbox = new PMP.util.pmpMsgBox(retour.responseText.trim(), "erreur", "Ajout d'un produit");
return retour.responseText.trim();
}
return true;
}
function modifier_quantite(ref, qte)
{
if( PMP.common.isUndefined(ref) )
{
return "Référence non définie";
}
if( !PMP.common.isNumber(qte) )
{
return "Quantité non définie";
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/fr/partenaires/store/alias_boutique.php5", "POST");
if(!ajax)
{
return "Impossible de créer l'objet ajax";
}
ajax.appendData("action", "modifier_quantite");
ajax.appendData("ref", ref);
ajax.appendData("qte", qte);
var retour = ajax.send();
if(!retour)
{
return "Une erreur s'est produite.";
}
else
{
return retour.responseText.trim();
}
}
function addQuantite(ref, qte)
{
if( PMP.common.isUndefined(ref) )
{
var msgbox = new PMP.util.pmpMsgBox("Référence non définie", "erreur", "Modification de la quantité");
return false;
}
if( !PMP.common.isNumber(qte) )
{
var msgbox = new PMP.util.pmpMsgBox("Quantité non définie", "erreur", "Modification de la quantité");
return false;
}
var inputQte = document.getElementById(ref+"_quantite");
if(inputQte)
{
qte = ( PMP.common.isNumber(parseInt(inputQte.value)) ? parseInt(inputQte.value) : 0 )
+ parseInt(qte);
if( qte >= 0 )
setQuantite(ref, qte);
}
}
function setQuantite(ref, qte)
{
if( PMP.common.isUndefined(ref) )
{
var msgbox = new PMP.util.pmpMsgBox("Référence non définie", "erreur", "Modification de la quantité");
return false;
}
if( !PMP.common.isNumber(qte) )
{
var msgbox = new PMP.util.pmpMsgBox("Quantité non définie", "erreur", "Modification de la quantité");
return false;
}
if( qte < 0 )
qte = 0;
// mise à jour du panier
var reponse = modifier_quantite(ref, qte);
if( !reponse=="1" )
{
var msgbox = new PMP.util.pmpMsgBox(reponse, "erreur", "Modification de la quantité");
return;
}
var inputQte = document.getElementById(ref+"_quantite");
if(inputQte)
inputQte.value = parseInt(qte);
var inputPrix = document.getElementById(ref+"_prix");
if(!inputPrix)
{
var msgbox = new PMP.util.pmpMsgBox("Prix de l'article non défini", "erreur", "Prix de l'article non défini");
return
}
var divMontant = document.getElementById(ref+"_montant");
if(divMontant)
{
var montant = parseFloat(qte) * parseFloat(inputPrix.value);
//vérifie que le montant soit positif
if(montant < 0)
montant = 0;
divMontant.montant = montant;
// formate le montant selon les paramètres de langue;
montant = number_format(montant, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,20,0,17,77, 77, 79,"","","","Blokletters-Balpen.ttf",10,montant,"","","","");
var imgMontant = '
';
// création de la devise graphique
var srcDevise = toImage(12,20,6,17,77, 77, 79,"","","","Blokletters-Balpen.ttf", 0.67*10,"€","","","","");
var imgDevise = '
';
divMontant.innerHTML = imgMontant + imgDevise;
refreshSousTotal();
}
}
function supprimer_produit(ref)
{
if( PMP.common.isUndefined(ref) )
{
return "Référence non définie";
}
// mise à jour du panier
var reponse = modifier_quantite(ref, 0);
if( reponse!="1" )
{
var msgbox = new PMP.util.pmpMsgBox(reponse, "erreur", "Prix de l'article non défini");
return;
}
var elements = DomMgr.getElementsByMaskId("%i_montant", "div");
if( elements.length <= 1)
{
window.location.replace("/fr/partenaires/store/");
return;
}
var ligne = document.getElementById("ligneproduit"+ref);
if(ligne)
ligne.parentNode.removeChild(ligne);
refreshSousTotal();
refreshTotal();
}
function refreshSousTotal()
{
var elements = DomMgr.getElementsByMaskId("%i_montant", "div");
var sousTotal = 0;
for(var i=0; i < elements.length; i++)
{
sousTotal += elements[i].montant ? parseFloat(elements[i].montant) : 0;
}
var divSousTotal = document.getElementById("soustotal");
if(divSousTotal)
{
divSousTotal.montant = sousTotal;
// formate le montant selon les paramètres de langue;
sousTotal = number_format(sousTotal, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,20,0,17,189,12,12,"","","","Blokletters-Balpen.ttf",10,sousTotal,"","","","");
var imgMontant = '
';
// création de la devise graphique
var srcDevise = toImage(12,20,6,17,189,12,12,"","","","Blokletters-Balpen.ttf", 0.67*10,"€","","","","");
var imgDevise = '
';
divSousTotal.innerHTML = imgMontant + imgDevise;
}
}
function refreshTotal()
{
var montant = 0;
var divSousTotal = document.getElementById("soustotal");
if(divSousTotal)
montant += parseFloat(divSousTotal.montant);
var divLivraison = document.getElementById("livraison");
if(divLivraison)
montant += parseFloat(divLivraison.montant);
var divTotal = document.getElementById("total");
if(divTotal)
{
divTotal.montant = montant;
// formate le montant selon les paramètres de langue;
montant = number_format(montant, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,20,0,17,77, 77, 79,"","","","Blokletters-Balpen.ttf",10,montant,"","","","");
var imgMontant = '
';
// création de la devise graphique
var srcDevise = toImage(12,20,6,17,77, 77, 79,"","","","Blokletters-Balpen.ttf", 0.67*10,"€","","","","");
var imgDevise = '
';
divTotal.innerHTML = imgMontant + imgDevise;
}
}
function actualiser_fraisdeport(pays)
{
if( PMP.common.isUndefined(pays) || !PMP.common.isNumber(pays) )
{
var msgbox = new PMP.util.pmpMsgBox("Pays non défini", "erreur", "Actualisation des frais de port");
return false;
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/fr/partenaires/store/alias_boutique.php5", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Actualisation des frais de port");
return false;
}
ajax.appendData("action", "calculer_fraisdeport");
ajax.appendData("pays", pays);
var retour = ajax.send();
if(!retour)
{
var msgbox = new PMP.util.pmpMsgBox("Une erreur s'est produite.", "erreur", "Actualisation des frais de port");
return false;
}
else
{
var montant = parseFloat(retour.responseText.trim());
var livraison = document.getElementById("livraison");
if(livraison)
{
livraison.montant = montant;
// formate le montant selon les paramètres de langue;
montant = number_format(montant, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,20,0,17,189,12,12,"","","","Blokletters-Balpen.ttf",11,montant,"","","","");
var imgMontant = '
';
// création de la devise graphique
var srcDevise = toImage(14,20,6,17,189,12,12,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","","","");
var imgDevise = '
';
livraison.innerHTML = imgMontant + imgDevise;
}
}
refreshTotal();
return true;
}
function valider_commande()
{
// vérification de la case j'accepte les CGV
if( document.getElementById('checkbox_cgv') && document.getElementById('checkbox_cgv').checked==false )
{
var msgbox = new PMP.util.pmpMsgBox("Vous devez accepter les conditions générales de vente pour valider votre commande", "erreur", "Enregistrement de la commande");
return false;
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/fr/partenaires/store/alias_boutique.php5", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Enregistrement de la commande");
return false;
}
ajax.appendData("action", "valider_commande");
//********* Identité
//civilite
var civilites = document.getElementsByName("civ");
var civ = "";
for(var i=0; i < civilites.length; i++)
{
if(civilites[i].checked == true)
{
civ = civilites[i].value;
}
}
if( civ.trim()!="" )
ajax.appendData("civ", civ);
if(document.getElementById('nom'))
ajax.appendData("nom", document.getElementById('nom').value);
if(document.getElementById('prenom'))
ajax.appendData("prenom", document.getElementById('prenom').value);
//********* Adresse
if(document.getElementById('adresse1'))
ajax.appendData("adresse1", document.getElementById('adresse1').value);
if(document.getElementById('adresse2'))
ajax.appendData("adresse2", document.getElementById('adresse2').value);
if(document.getElementById('cp'))
ajax.appendData("cp", document.getElementById('cp').value);
if(document.getElementById('ville'))
ajax.appendData("ville", document.getElementById('ville').value);
if(document.getElementById('pays'))
ajax.appendData("pays", document.getElementById('pays').value);
//********* Paiement
var modes_paiement = document.getElementsByName("checkbox_paiement");
var mode_paiement = "";
var url;
for(var i=0; i < modes_paiement.length; i++)
{
if(modes_paiement[i].checked == true)
{
mode_paiement = modes_paiement[i].value;
url = 'paiement/'+modes_paiement[i].url;
}
}
if(mode_paiement)
ajax.appendData("mode_paiement", mode_paiement);
var retour = ajax.send();
if(!retour)
{
var msgbox = new PMP.util.pmpMsgBox("Une erreur s'est produite.", "erreur", "Enregistrement de la commande");
return false;
}
else
{
if(retour.responseText.trim()=="1")
{
window.location.replace(url);
}
else
{
var message = retour.responseText.trim();
// remplacement des noms de champ par le libellé
message = message.replace("civ", "Titre");
message = message.replace("nom", "Nom");
message = message.replace("prenom", "Prénom");
message = message.replace("adresse1", "Adresse");
message = message.replace("adresse2", "Complément adresse");
message = message.replace("cp", "Code postal");
message = message.replace("ville", "Ville");
message = message.replace("pays", "Pays");
// mise en forme du message : saut de ligne, -, espaces...
message = "
- " + message.replace(/\,/g, "
- ");
message = "Veuillez renseigner correctement les champs suivants:" + message;
var msgbox = new PMP.util.pmpMsgBox(message, "erreur", "Enregistrement de la commande");
}
}
}
// number_format(nombre, nbDecimal, formatDecimal, formaCentaine)
function number_format(nombre, nbDecimal, formatDecimal, formatCentaine) {
nombre = parseFloat(nombre);
if( nombre=="NaN" || nombre==0 )
nombre = 0;
// si le nombre de décimales passé en paramètre est valide
if (nbDecimal != null)
{
nombre = nombre.toFixed(nbDecimal);
}
// on récupère le signe du nombre
var sign = nombre < 0 ? "-" : "";
// on récupère la partie entière du nombre
var entiere = (nombre > 0 ? Math.floor (nombre) : Math.abs (Math.ceil (nombre))).toString ();
// on récupère la partie decimale du nombre
var decimale = nombre.toString ().substring (entiere.length + sign.length);
// on définit le séparateur: celui passé en paramètre s'il est valide sinon '.' par défaut
formatDecimal = formatDecimal != null ? formatDecimal : ".";
decimale = nbDecimal != null && nbDecimal > 0 || decimale.length > 1 ? (formatDecimal + decimale.substring (1)) : "";
// si le nombre de décimal est inférieur à nbDecimal on ajoute des 0
if (nbDecimal != null && nbDecimal > 0)
{
for (i = decimale.length - 1, z = nbDecimal; i < z; ++i)
decimale += "0";
}
formatCentaine = (formatCentaine != formatDecimal || decimale.length == 0) ?
formatCentaine : null;
if (formatCentaine != null && formatCentaine != "")
{
for (i = entiere.length - 3; i > 0; i -= 3)
entiere = entiere.substring (0 , i) + formatCentaine + entiere.substring (i);
}
return sign + entiere + decimale;
}
function viewProduit(ref)
{
if( PMP.common.isUndefined(ref) )
{
var msgbox = new PMP.util.pmpMsgBox("Référence non définie", "erreur", "Consultation du produit");return false;
}
if( typeof(popup)!='undefined' )
{
popup.viewURL("fiche_produit_popup.php5?produit="+ref);
popup.show();
}
}
function expandProduit(ref, obj)
{
if( PMP.common.isUndefined(ref) )
{
var msgbox = new PMP.util.pmpMsgBox("Référence non définie", "erreur", "Consultation du produit");return false;
}
if( PMP.common.isUndefined(obj) )
{
var msgbox = new PMP.util.pmpMsgBox("Objet de référence non définie", "erreur", "Consultation du produit");return false;
}
var url = "fiche_produit_popup.php5?produit="+ref;
// récupération du contenu de la page en ajax
var xhr_object = null;
if(!xhr_object && window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
if(!xhr_object && window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
if(!xhr_object && window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
if(!xhr_object)
{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("GET", url, false);
xhr_object.send(null);
if(xhr_object.readyState != 4)
return;
if(xhr_object.status != 200)
{
alert('ERREUR : ' + xhr_object.status);
return;
}
var hsInnerHTML = document.getElementById("popup-innerHTML");
if(hsInnerHTML)
hsInnerHTML.innerHTML = xhr_object.responseText;
hs.htmlExpand(obj, { contentId: 'pmpup-html' } );
}
function viewCGV()
{
popup = new Popup();
popup.viewURL('/fr/partenaires/store/cgv.php5');
}