var formatDecimal = ","; var formatCentaine = "."; jQuery.expr[':'].regex = function(elem, index, match) { var matchParams = match[3].split(','), validLabels = /^(data|css):/, attr = { method: matchParams[0].match(validLabels) ? matchParams[0].split(':')[0] : 'attr', property: matchParams.shift().replace(validLabels,'') }, regexFlags = 'ig', regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags); return regex.test(jQuery(elem)[attr.method](attr.property)); } /* 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("/_gestion/boutique/_ajax/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("/_gestion/boutique/_ajax/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 inputPrixBase = document.getElementById("prix_base_"+ref+""); var divMontant = document.getElementById("montant_"+ref+""); if(divMontant) { var montant = parseFloat(qte) * parseFloat(inputPrix.value); if(inputPrixBase) var montant_base = parseFloat(qte) * parseFloat(inputPrixBase.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; if(inputPrixBase) { montant_base = number_format(montant_base, 2, formatDecimal, formatCentaine); document.getElementById('montant_base_'+ref+'').innerHTML = montant_base; } 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 = $('span[id=^"montant_"]');//DomMgr.getElementsByMaskId("montant_%i", "span"); var elements = $(':regex(id,^montant_[0-9])'); 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 divLivraisonPrimeur = document.getElementById("livraison_primeur"); if(divLivraisonPrimeur) sousTotal += parseFloat(divLivraisonPrimeur.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("/_gestion/boutique/_ajax/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 = retour.responseText.trim(); var tabMontant = montant.split('|'); var livraison = document.getElementById("livraison"); var livraison_primeur = document.getElementById('livraison_primeur'); if(livraison) { montant = tabMontant[0]; livraison.montant = montant; // formate le montant selon les paramètres de langue; montant = number_format(montant, 2, formatDecimal, formatCentaine); livraison.innerHTML = montant; } if(livraison_primeur) { montant = tabMontant[1]; livraison_primeur.montant = montant; // formate le montant selon les paramètres de langue; montant = number_format(montant, 2, formatDecimal, formatCentaine); livraison_primeur.innerHTML = montant; } } refreshSousTotal(); return true; } function actualiser_nbarticles() { var elements = $('input[id^="qte_"]'); 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 imprimer_commande() { var frameId = 'bon_commande_iframe'; if(window.ActiveXObject) { var frm = document.createElement('