var formatDecimal = ",";
var formatCentaine = ".";
/* NON UTILISEE */
function commander_produit(ref)
{
if( PMP.common.isUndefined(ref) )
{
var msgbox = new PMP.util.pmpMsgBox("Référence non définie", "erreur", "Ajout d'un produit", null, "");
}
var qteNode = document.getElementById("input_quantite");
var quantite = qteNode && PMP.common.isNumber(qteNode.value) ? qteNode.value : 0;
if(quantite>0)
ajouter_produit(ref, quantite);
else
var msgbox = new PMP.util.pmpMsgBox("Quantité non définie", "erreur", "Ajout d'un produit", null, "");
}
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", null, "");
}
if( !PMP.common.isNumber(qte) )
{
var msgbox = new PMP.util.pmpMsgBox("Quantité non définie", "erreur", "Ajout d'un produit", null, "");
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/boutique/_include/alias_boutique.php", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Ajout d'un produit", null, "");
}
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", null, "");
}
else if(retour.responseText.trim()!="1")
{
var msgbox = new PMP.util.pmpMsgBox(retour.responseText.trim(), "erreur", "Ajout d'un produit", null, "");
}
else
window.location.replace("/panier.php");
}
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("/boutique/_include/alias_boutique.php", "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é", null, "");
return false;
}
if( !PMP.common.isNumber(qte) )
{
var msgbox = new PMP.util.pmpMsgBox("Quantité non définie", "erreur", "Modification de la quantité", null, "");
return false;
}
var inputQte = document.getElementById("qte["+ref+"]");
if(inputQte)
{
qte = ( PMP.common.isNumber(parseInt(inputQte.value)) ? parseInt(inputQte.value) : 0 )
+ parseInt(qte);
if( qte >= 1 )
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é", null, "");
return false;
}
if( !PMP.common.isNumber(qte) )
{
//if(qte.trim()!="")
// var msgbox = new PMP.util.pmpMsgBox("Quantité non définie : " + qte, "erreur", "Modification de la quantité", null, "");
return false;
}
qte = parseInt(qte);
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é", null, "");
return;
}
var inputQte = document.getElementById("qte["+ref+"]");
if(inputQte)
{
inputQte.value = parseInt(qte);
}
var inputPrix = document.getElementById("prix["+ref+"]");
if(!inputPrix)
{
var msgbox = new PMP.util.pmpMsgBox("Prix de l'article non défini", "erreur", "Modification de la quantité", null, "");
return
}
var divMontant = document.getElementById("montant["+ref+"]");
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);
divMontant.innerHTML = montant;
actualiser_fraisdeport();
refreshSousTotal();
actualiser_nbarticles()
}
}
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", "Suppression de l'article", null, "");
return;
}
var elements = DomMgr.getElementsByMaskId("montant[%i]", "span");
if( elements.length <= 1)
{
window.location.replace("/");
return;
}
window.location.replace(window.location.href);
return;
var ligne = document.getElementById("tr["+ref+"]");
if(ligne)
ligne.parentNode.removeChild(ligne);
actualiser_fraisdeport();
refreshSousTotal();
refreshTotal();
actualiser_nbarticles()
}
function refreshSousTotal()
{
var elements = DomMgr.getElementsByMaskId("montant[%i]", "span");
var sousTotal = 0;
for(var i=0; i < elements.length; i++)
{
sousTotal += elements[i].montant ? parseFloat(elements[i].montant) : 0;
}
var divLivraison = document.getElementById("livraison");
if(divLivraison)
sousTotal += parseFloat(divLivraison.montant);
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);
divSousTotal.innerHTML = sousTotal;
}
}
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);
divTotal.innerHTML = montant;
}
}
function actualiser_fraisdeport(pays)
{
if( PMP.common.isUndefined(pays) || !PMP.common.isNumber(pays) )
{
var paysCB = document.getElementById("pays");
if(!paysCB)
{
var msgbox = new PMP.util.pmpMsgBox("Pays non défini", "erreur", "Actualisation des frais de port", null, "");
return false;
}
var pays = paysCB.value;
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/boutique/_include/alias_boutique.php", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Actualisation des frais de port", null, "");
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", null, "");
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);
livraison.innerHTML = montant;
}
}
refreshSousTotal();
return true;
}
function actualiser_nbarticles()
{
var elements = DomMgr.getElementsByMaskId("qte[%i]", "input");
var qte = 0;
for(var i=0; i < elements.length; i++)
{
qte += parseInt(elements[i].value);
}
var nbHaut = document.getElementById("nbarticleshaut");
if(nbHaut)
nbHaut.innerHTML = qte + " article" + (qte>1 ? "s" : "");
var nbPanier = document.getElementById("nbarticlespanier");
if(nbPanier)
nbPanier.innerHTML = qte + " article" + (qte>1 ? "s" : "");
}
function enregistrer_compte()
{
// sauvegarde les infos du compte en session
var ajax = new PMP.util.pmpAjax("/boutique/_include/alias_boutique.php", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Enregistrement des coordonées", null, "");
return false;
}
ajax.appendData("action", "enregistrer_compte");
var champ1 = document.getElementsByName("champ1");
if(champ1)
{
for(i = 0; i < champ1.length; i++ )
{
if(champ1[i].checked==true)
ajax.appendData("champ1", champ1[i].value);
}
}
var champ2 = document.getElementsByName("champ2");
if(champ2)
{
for(i = 0; i < champ2.length; i++ )
{
if(champ2[i].checked==true)
ajax.appendData("champ2", champ2[i].value);
}
}
var champ3 = document.getElementById("champ3");
if(champ3)
ajax.appendData("champ3", champ3.value);
var champ4 = document.getElementById("champ4");
if(champ4)
ajax.appendData("champ4", champ4.value);
var champ5 = document.getElementById("champ5");
if(champ5)
ajax.appendData("champ5", champ5.value);
var champ5bis = document.getElementById("champ5bis");
if(champ5bis)
ajax.appendData("champ5bis", champ5bis.value);
var champ6 = document.getElementById("champ6");
if(champ6)
ajax.appendData("champ6", champ6.value);
var champ7 = document.getElementById("champ7");
if(champ7)
ajax.appendData("champ7", champ7.value);
var champ8 = document.getElementById("champ8");
if(champ8)
ajax.appendData("champ8", champ8.value);
var champ9 = document.getElementById("champ9");
if(champ9)
ajax.appendData("champ9", champ9.value);
var champ10 = document.getElementById("champ10");
if(champ10)
ajax.appendData("champ10", champ10.value);
var retour = ajax.send();
if(!retour)
{
var msgbox = new PMP.util.pmpMsgBox("Une erreur s'est produite.", "erreur", "Enregistrement des coordonées", null, "");
return false;
}
switch(retour.responseText.trim())
{
case "1" :
window.location.replace('etape3.php');
break;
default:
var message = retour.responseText.trim();
var messageCorse = '';
if(message.match('cpcorse'))
{
message = message.replace("cpcorse", "cp");
messageCorse += '
La livraison vers la Corse est impossible.';
}
// remplacement des noms de champ par le libellé
message = message.replace("civ", "Civilité");
message = message.replace("nom", "Nom");
message = message.replace("prenom", "Prénom");
message = message.replace("adresse1", "Adresse");
message = message.replace("adresse2", "Adresse");
message = message.replace("cp", "Code postal");
message = message.replace("ville", "Ville");
message = message.replace("pays", "Pays");
message = message.replace("telephone", "Téléphone");
message = message.replace("email", "E-mail");
message = message.replace("commentaires", "Commentaires ");
message = message.replace("mode_paiement", "Mode de Paiement");
// mise en forme du message : saut de ligne, -, espaces...
message = "
- " + message.replace(/\,/g, "
- ");
message = "Les champs suivants sont incorrectes : " + message;
//var msgbox = new PMP.util.pmpMsgBox(message, "erreur", "Enregistrement des coordonées", null, "");
afficheMessage(message+messageCorse,'erreur','Enregistrement des coordonées');
break;
}
}
function valider_commande()
{
var cgv = document.getElementById("champ11");
if( cgv && cgv.checked==false)
{
afficheMessage("Vous devez accepter les conditions générales de vente pour valider votre commande",'erreur','Enregistrement de la commande');
return;
}
// ajout du produit au panier
var ajax = new PMP.util.pmpAjax("/boutique/_include/alias_boutique.php", "POST");
if(!ajax)
{
var msgbox = new PMP.util.pmpMsgBox("Impossible de créer l'objet ajax", "erreur", "Enregistrement de la commande", null, "");
return;
}
ajax.appendData("action", "valider_commande");
var retour = ajax.send();
if(!retour)
{
var msgbox = new PMP.util.pmpMsgBox("Une erreur s'est produite.", "erreur", "Enregistrement de la commande", null, "");
return false;
}
switch(retour.responseText.trim())
{
case "1" :
window.location.replace("etape4.php");
break;
default:
afficheMessage(retour.responseText.trim(),'erreur','Enregistrement de la commande');
//var msgbox = new PMP.util.pmpMsgBox(retour.responseText.trim(), "erreur", "Enregistrement de la commande", null, "");
break;
}
}
// 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;
}