' + fenetreFin;
message(txt);
break;
// article deja dans le panier
case '222':
txt = fenetreDebut + 'L\'article suivant : ' + articleNom + ' a déja été ajouté au panier.
' + fenetreFin;
message(txt);
break;
// article en rupture de stock
case '1':
txt = fenetreDebut + 'Nous sommes désolé, l\'article ' + articleNom + ' est momentanément indisponible.
' + fenetreFin;
message(txt);
break;
case '0':
alert('Référence indisponible sur Maillot Bonsaï.');
break;
// modification de la quantité d'article dans le panier
case '333':
// on actualise la qtt du panier dans le haut du site
ChangeNumArticles()
if( !document.getElementById('panierListe') && !document.getElementById('panierRecap') )
break;
// on actualise le prix de l'article
ChangePrixArticles(articleRef)
// on actualise le sous-total
ChangeSousTotalPanier(articleRef)
break;
// suppression de l'article dans le panier
case '444':
// si le panier contient des articles
val = ajaxSupporte(BoutiqueService + "_upd_0_sousTotalPanierNum");
if(val > 0)
{
// effacement du bloc
effaceLigne(articleRef)
// on actualise le sous-total
ChangeSousTotalPanier(articleRef, false)
// si il n'y a plus d'article, uniquement des services/prestations sur place (ex: atelier)
if(ajaxSupporte(BoutiqueService + "_upd_0_afficheLivraison") == 0)
{
// effacement du bloc
if(document.getElementById('selectionLivraison'))
document.getElementById('selectionLivraison').innerHTML = "";
ChangeTotalPanier();
}
// sinon on vérifie s'il reste des articles à venir chercher à la pépinière
else
{
// si il n'y a plus d'article a venir chercher a la pépinière
if(ajaxSupporte(BoutiqueService + "_upd_0_venirPep") == 0)
{
// on reactive les checkbox
document.getElementById('checkPepiniere').disabled = false;
document.getElementById('checkLivraison').disabled = false;
checkBox('checkLivraison');
}
else
checkBox('checkPepiniere');
}
}
// si le panier ne contient plus d'article
else
{
// plus de produit dans le panier
document.getElementById('panierListe').innerHTML = paniervide;
// rend invisible le boutons sauvegarder mon panier
if( document.getElementById('sauvePanier0') )
document.getElementById('sauvePanier0').className = 'invisible';
}
// on actualise la qtt du panier dans le haut du site
ChangeNumArticles()
break;
// sauvegarde du panier
case '555' :
// actualisation de la liste
ActuListeArticleSauv();
// message de confirmation
txt = fenetreDebut + 'Votre panier a été sauvegardé avec succès.
' + fenetreFin;
message(txt);
break;
// depuis la page panier
case '555.2' :
// modification du menu
document.getElementById('sauvePanier2').className = 'visible';
// message de confirmation
txt = fenetreDebutSauv + 'Votre panier a été sauvegardé avec succès.
' + fenetreFinSauv;
message(txt);
break;
// suppression du panier sauvegarde
case '666' :
// actualisation de la liste
ActuListeArticleSauv();
// message de confirmation
txt = fenetreDebut + 'votre panier sauvegardé a été supprimé avec succès.
' + fenetreFin;
message(txt);
// rend invisible les boutons supprimer mon panier
if( document.getElementById('sauvePanier1') )
document.getElementById('sauvePanier1').className = 'invisible';
// rend invisible les boutons restaurer mon panier
if( document.getElementById('sauvePanier2') )
document.getElementById('sauvePanier2').className = 'invisible';
if( document.getElementById('sauvePanier3') )
document.getElementById('sauvePanier3').className = 'invisible';
messageSauv = 'Voulez-vous sauvegarder votre panier ?';
bttMessageSauv = '/gestion.maillot-bonsai.com/_images/bouton/fr/sauvegarder_panier-255_255_255-77_77_79-7pts5.png';
break;
// ajout d'article au panier
case '777' :
// on actualise la qtt du panier dans le haut du site
ChangeNumArticles()
// on affiche le bouton suavegarde du panier
if(document.getElementById('sauvePanier0').className == 'invisible')
{
document.getElementById('sauvePanier0').className = 'visible';
}
// message de confirmation
txt = fenetreDebutSauv + 'votre panier a été mis à jour avec succès.
' + fenetreFinSauv;
message(txt);
break;
case '777.2' :
// modification du menu
document.getElementById('sauvePanier0').className = 'visible';
/*
// on actualise la qtt du panier dans le haut du site
ChangeNumArticles()
// on affiche le bouton sauvegarde du panier
if(document.getElementById('sauvePanier0').className == 'invisible')
{
document.getElementById('sauvePanier0').className = 'visible';
}
*/
// message de confirmation
txt = fenetreDebutSauv + 'votre panier a été mis à jour avec succès.
' + fenetreFinSauv;
message(txt);
break;
default:
alert('Un problème est survenu avec la requête.' + texte + '.');
break;
}
}
}
// on verif que le navigateur supporte AJAX
var xhr_object;
function ajaxSupporte(fichier) {
// Mozilla
if(window.XMLHttpRequest){
xhr_object = new XMLHttpRequest( );
} else if (window.ActiveXObject){
xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
if (! xhr_object){
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//the request could still be null if neither ActiveXObject...
if (!xhr_object){
alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');
return false;
}
xhr_object.open('GET', fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) {
if(xhr_object.status == 200) {
return(xhr_object.responseText);
} else {
alert('ERREUR ' + xhr_object.status + '\nUn problème est survenu.');
return(false);
}
} else return(false);
}
// Modifier la quantité d'article du panier :: block dans le haut du site
function ChangeNumArticles() {
//articleDansPanier('qtt', '', '');
qtt = ajaxSupporte(BoutiqueService+ "_qtt_0_0");
document.getElementById("account_panier_count").innerHTML = qtt;
}
// calcul du prix article
function prixQtt(selObj, PanierRef) {
var qtt = selObj.options[selObj.selectedIndex].value
articleDansPanier('upd', PanierRef, qtt)
}
// Modifier le prix total de l'article :: panier
function ChangePrixArticles(PanierRef) {
//mtt = ajaxSupporte(BoutiqueService+ "_upd_" + PanierRef + "_prixArticle");
if( document.getElementById('totalPrixArticle[' + PanierRef + ']') )
{
//document.getElementById('totalPrixArticle[' + PanierRef + ']').innerHTML = mtt;
mtt = ajaxSupporte(BoutiqueService+ "_upd_" + PanierRef + "_prixArticleNum");
// stocke le montant du panier en float
document.getElementById('totalPrixArticle[' + PanierRef + ']').montant = parseFloat(mtt);
// formate le montant selon les paramètres de langue;
mtt = number_format(mtt, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,0,0,0,77,77,79,"","","","Blokletters-Balpen.ttf",11,mtt,"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,77,77,79,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
// affiche le montant en image
document.getElementById('totalPrixArticle[' + PanierRef + ']').innerHTML = imgMontant + " " + imgDevise;
}
}
// Modifier le prix des frais de livraison suplementaire :: panier
function ChangePrixFraisSup(changeTotal) {
if( document.getElementById('checkLivraison') &&
document.getElementById('checkLivraison').checked == true &&
document.getElementById('suplementPortPanier') )
{
var mtt = parseFloat(ajaxSupporte(BoutiqueService+ '_upd_0_prixFraisSupNum'));
// stocke le montant du panier en float
document.getElementById('suplementPortPanier').montant = parseFloat(mtt);
if (mtt==0)
{
//document.getElementById('supplement_port_panier').style.display = "none";
//document.getElementById('suplementPortPanier').style.display = "none";
document.getElementById('supplement_port_panier').className = "invisible";
document.getElementById('suplementPortPanier').className = "invisible";
}
else
{
// formate le montant selon les paramètres de langue;
mtt = number_format(mtt, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,0,0,0,232, 139, 0,"","","","Blokletters-Balpen.ttf",11,mtt,"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,232, 139, 0,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
// affiche le montant en image
document.getElementById('suplementPortPanier').innerHTML = imgMontant + " " + imgDevise;
//mtt = ajaxSupporte(BoutiqueService+ "_upd_0_prixFraisSup");
//document.getElementById('suplementPortPanier').innerHTML = mtt;
//document.getElementById('supplement_port_panier').style.display = "inherit";
//document.getElementById('suplementPortPanier').style.display = "inherit";
document.getElementById('supplement_port_panier').className = "visible";
document.getElementById('suplementPortPanier').className = "visible";
}
}
else if (document.getElementById('suplementPortPanier'))
{
document.getElementById('suplementPortPanier').innerHTML = zero;
document.getElementById('suplementPortPanier').montant = 0;
}
if(changeTotal!=false)
{
ChangeTotalPanier();
}
}
// Modifier le prix des frais de livraison :: panier
function ChangePrixFrais(codePays, changeTotal) {
if( document.getElementById('checkLivraison') &&
document.getElementById('checkLivraison').checked == true &&
document.getElementById('portPanier') )
{
mtt = ajaxSupporte(BoutiqueService+ '_upd_' + codePays + '_prixFraisNum');
// stocke le montant du panier en float
document.getElementById('portPanier').montant = parseFloat(mtt);
// formate le montant selon les paramètres de langue;
mtt = number_format(mtt, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,0,0,0,77,77,79,"","","","Blokletters-Balpen.ttf",11,mtt,"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,77,77,79,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
// affiche le montant en image
document.getElementById('portPanier').innerHTML = imgMontant + " " + imgDevise;
}
else if (document.getElementById('portPanier'))
{
document.getElementById('portPanier').innerHTML = zero;
document.getElementById('portPanier').montant = 0;
}
if(changeTotal!=false)
{
ChangeTotalPanier();
}
}
// modification de la selection du pays de livraison
function modiPaysLiv(selObj) {
// recuperation du code pays selectionné dans la combo
var codePays = selObj.options[selObj.selectedIndex].value;
// modif graphique du prix
ChangePrixFrais(codePays)
}
// Modifier le sous total du panier
function ChangeSousTotalPanier(PanierRef, changeTotal) {
//mtt = ajaxSupporte(BoutiqueService+ "_upd_" + PanierRef + "_sousTotalPanier");
if( document.getElementById("sousTotalPanier") )
{
mtt = ajaxSupporte(BoutiqueService+ "_upd_" + PanierRef + "_sousTotalPanierNum");
// stocke le montant du panier en float
document.getElementById("sousTotalPanier").montant = parseFloat(mtt);
// formate le montant selon les paramètres de langue;
mtt = number_format(mtt, 2, formatDecimal, formatCentaine);
// création du montant graphique
var srcMontant = toImage(0,0,0,0,77,77,79,"","","","Blokletters-Balpen.ttf",11,mtt,"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,77,77,79,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
// affiche le montant en image
document.getElementById("sousTotalPanier").innerHTML = imgMontant + " " + imgDevise;
}
// vérification du code promo
setCodePromo(true);
// vérification des articles "1 euro de +"
var retour = ajaxSupporte(BoutiqueService + "_verifArticlesEuroPlus_0_0");
if(retour!="")
{
txt = fenetreDebut
+ retour + '
'
+ fenetreFin;
message(txt);
}
// mise à jour de la liste des articles "1 euro de plus" en fonction du montant des achats
var retour = ajaxSupporte(BoutiqueService + "_afficheArticlesEuroPlus_0_0");
if(document.getElementById('liste_europlus'))
document.getElementById('liste_europlus').innerHTML = retour;
/*
//récupère toutes les lignes europlus
var lignes = DomMgr.getElementsByMaskId('europlus[%i]','span');
if(lignes.length==0)
{
var bloc = document.getElementById('bloc_europlus');
if(bloc)
bloc.parentNode.removeChild(bloc);
}
*/
// modification des Packs
RefreshPacks();
if(changeTotal!=false)
{
if(document.getElementById('choixPays'))
{
// modification frais de livraison
ChangePrixFrais(document.getElementById('choixPays').options[document.getElementById('choixPays').selectedIndex].value);
}
// modification frais suplementaire
ChangePrixFraisSup();
// modification du total du panier
ChangeTotalPanier()
}
}
// 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)
{
/* paramètres de création graphique
var largeur = 0;
var hauteur = 20;
var intX = 0;
var intY = 17;
var colorR = 189;
var colorG = 12;
var colorB = 12;
var ombre1 = "";
var ombre2 = "";
var ombre3 = "";
var font = "Blokletters-Balpen.ttf";
var fontsize = 14;
var image = "";
var colback1 = "";
var colback2 = "";
var colback3 = "";
*/
// url création de l'image
var url = "/gestion.maillot-bonsai.com/_images/titre/bouton_volee.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;
}
// Modifier le total du panier
function ChangeTotalPanier() {
// calcul du montant total du panier
var montant = parseFloat(document.getElementById("sousTotalPanier").montant);
if( document.getElementById('portPanier') )
montant += parseFloat(document.getElementById('portPanier').montant);
if( document.getElementById('suplementPortPanier') )
montant += parseFloat(document.getElementById('suplementPortPanier').montant);
if( document.getElementById('remise_code_promo') )
montant -= parseFloat(document.getElementById('remise_code_promo').montant);
// Ajout des articles "1 euros de +"
//récupère toutes les lignes
var lignes = DomMgr.getElementsByMaskId('totalPrixArticleEuroPlus[%i]','span');
for(i=0; i < lignes.length; i++)
{
if(lignes[i].montant)
montant += parseFloat(lignes[i].montant);
}
// Ajout des packs
//récupère toutes les lignes
var lignes = DomMgr.getElementsByMaskId('totalPrixPack[%i]','span');
for(i=0; i < lignes.length; i++)
{
if(typeof lignes[i].montant == "undefined")
{
var attrMontant = lignes[i].getAttribute("montant");
if(parseFloat(attrMontant)>=0)
lignes[i].montant = attrMontant;
}
if(lignes[i].montant)
montant += parseFloat(lignes[i].montant);
}
//vérifie que le montant soit positif
if(montant < 0)
montant = 0;
// 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,0,0,0,189,12,12,"","","","Blokletters-Balpen.ttf",14,montant,"","","","");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*14, 0, 0.9*14,189,12,12,"","","","Blokletters-Balpen.ttf", 0.67*14,"€","","","","");
var imgDevise = '';
document.getElementById('totalPanier').innerHTML = imgMontant + " " + imgDevise;
}
// suppression de l'article dans le panier
function placerDsCorbeille(PanierRef) {
articleDansPanier('sup', PanierRef, 0)
}
// effacement de la ligne supprimé
function effaceLigne(PanierRef) {
document.getElementById('panier[' + PanierRef + ']').innerHTML = '';
document.getElementById('panier[' + PanierRef + ']').className = "invisible";
}
// gestion des chekbox
function checkBox(id, changeTotal) {
id1 = id;
id2 = id == 'checkLivraison' ? 'checkPepiniere' : 'checkLivraison';
// alert(id1 + " - " + id2);
if(document.getElementById(id1) && document.getElementById(id2))
{
document.getElementById(id1).checked=true;
document.getElementById(id2).checked=(document.getElementById(id1).checked==true) ? false:true;
document.getElementById('choixPays').disabled=(document.getElementById('checkLivraison').checked==true) ? false:true;
// actualisation des styles
document.getElementById('venirPepiniere').className=(document.getElementById('checkPepiniere').checked==true) ? "activated" : "desactivated";
document.getElementById('fraisdelivraison').className=(document.getElementById('checkLivraison').checked==true) ? "activated" : "desactivated";
// actualisation des frais de livraison
ChangePrixFrais(document.getElementById('choixPays').options[document.getElementById('choixPays').selectedIndex].value, false);
// actualisation du prix des frais de port sup.
ChangePrixFraisSup(false);
// sauvegarde du choix de l'utilisateur
var checkLiv = document.getElementById('checkLivraison');
var livraison = checkLiv ? checkLiv.checked : false;
var retour = ajaxSupporte(BoutiqueService + "_setLivraison_"+(livraison ? 1 : 0)+"_0");
// modification des Packs
RefreshPacks();
if(changeTotal!=false)
{
// mise à jour des liens de changement de site
var liensChangeSite = document.getElementsByName('lienChangeSite');
for(i=0; i< liensChangeSite.length; i++)
{
if(liensChangeSite[i].href)
liensChangeSite[i].href=retour;
}
// modification du total du panier
ChangeTotalPanier();
}
}
}
function validPanier()
{
var panierOk = ajaxSupporte(BoutiqueService+ '_upd_0_verifPanier');
if ( panierOk!="1")
{
//document.getElementById('erreur_container').className="visible";
//document.getElementById('erreur').innerHTML = panierOk;
window.location.href="/panier.php";
return;
}
// livraison ou chercher à la pépinière
if( document.getElementById('checkLivraison') && document.getElementById('checkLivraison').checked==true )
var addLivraison = true;
else
var addLivraison = false;
// recupération de la référence client
var refClient = "";
// si le client est connecté
if( refClient != "" )
{
if(document.getElementById('choixPays') )
var panierPaysLiv = document.getElementById('choixPays').options[document.getElementById('choixPays').selectedIndex].value;
else
var panierPaysLiv = "";
//"";
var comptePaysLiv = "";
if( addLivraison==true && panierPaysLiv != "" && panierPaysLiv != comptePaysLiv )
{
// renvoie vers le formulaire de modification des coordonées de livraison
window.location.href="/commande/modif_compte.php?addLivraison=" + addLivraison;
}
else
// renvoie vers la page de validation de la commande
window.location.href="/commande/validation.php?addLivraison=" + addLivraison;
}
else
// renvoie vers la page commande/connection.php pour choisir de se connecter, de créer un compte ou de poursuivre sans compte
window.location.href="/commande/connection.php?addLivraison=" + addLivraison;
}
function getSelectedElement(name)
{
if(!document.getElementsByName(name))
return "";
var elements = document.getElementsByName(name);
var selectedElement="";
if (elements[0])
{ // s'il y a plusieurs checkbox, elements est un tableau
for( var i = 0; i < elements.length; i++)
{
if (elements[i].checked) {
selectedElement = elements[i].id;
i=elements.length;
}
}
}
else
{
if (elements.checked)
selectedElement = elements.id;
}
return selectedElement;
}
function validCommande()
{
var selectedPaiement = getSelectedElement('checkbox_paiement');
if (selectedPaiement == "")
{
document.getElementById('erreur_container').className="visible";
document.getElementById('erreur').innerHTML = "Veuillez sélectionner un mode de paiement.";
}
else if ( document.getElementById('checkbox_cgv') && document.getElementById('checkbox_cgv').checked==false )
{
document.getElementById('erreur_container').className="visible";
document.getElementById('erreur').innerHTML = "Vous devez accepter les conditions générales de vente pour commander.";
}
else
{
var mode_paiement = document.getElementById(selectedPaiement).value;
var etapeSuivante= "/commande/paiement/" + document.getElementById(selectedPaiement).url;
var commandeOk = ajaxSupporte(BoutiqueService + '_upd_' + mode_paiement + '_valideCommande');
// si la validation de la commande a échoué
if ( commandeOk.substring(0,2)=="OK")
{
window.location.href=etapeSuivante + "?" + commandeOk.substring(2); // redirection vers le paiement sélectionné
//document.getElementById('erreur_container').className="visible";
//document.getElementById('erreur').innerHTML = commandeOk.substring(2);
}
else
{
if ( commandeOk=="0" || commandeOk=="")
{
window.location.href="/panier.php"; // redirection vers le panier
//document.getElementById('erreur_container').className="visible";
//document.getElementById('erreur').innerHTML = commandeOk;
}
else
{
txt = fenetreDebut
+ commandeOk + '
'
+ fenetreFin;
message(txt);
}
}
}
}
function setModePaiement(mode_paiement)
{
if(!mode_paiement)
return;
// mise à jour du mode de paiement et récupération de l'url de changement de site avec les informations de session
var retour = ajaxSupporte(BoutiqueService + '_setModePaiement_' + mode_paiement + '_0');
var liensChangeSite = document.getElementsByName('lienChangeSite');
for(i=0; i< liensChangeSite.length; i++)
{
if(liensChangeSite[i].href)
liensChangeSite[i].href=retour;
}
}
function commandeZero()
{
var etapeSuivante= "/commande/paiement/confirmation.php";
var commandeOk = ajaxSupporte(BoutiqueService + '_upd_-_valideCommande');
// si la validation de la commande a réussie
if ( commandeOk.substring(0,2)=="OK")
{
window.location.href=etapeSuivante + "?" + commandeOk.substring(2); // redirection vers la page de confirmation
}
else
{
window.location.href="/panier.php"; // redirection vers le panier
//document.getElementById('erreur_container').className="visible";
//document.getElementById('erreur').innerHTML = commandeOk;
}
}
function modifPaiement(commande, encrypted)
{
var selectedPaiement = getSelectedElement('checkbox_paiement');
if (commande=="")
{
document.getElementById('erreur_container').className="visible";
document.getElementById('erreur').innerHTML = "Veuillez sélectionner un mode de paiement.";
}
if (selectedPaiement == "")
{
document.getElementById('erreur_container').className="visible";
document.getElementById('erreur').innerHTML = "Veuillez sélectionner un mode de paiement.";
}
else if ( document.getElementById('checkbox_cgv') && document.getElementById('checkbox_cgv').checked==false )
{
document.getElementById('erreur_container').className="visible";
document.getElementById('erreur').innerHTML = "Vous devez accepter les conditions générales de vente pour commander.";
}
else
{
var mode_paiement = document.getElementById(selectedPaiement).value;
var etapeSuivante= "/commande/paiement/" + document.getElementById(selectedPaiement).url + "?" + encrypted;
var param = commande + "@" + mode_paiement;
var commandeOk = ajaxSupporte(BoutiqueService + '_upd_' + param + '_modifPaiement');
// si le moyen de paiement a été modifié
if ( commandeOk=="true")
window.location.href=etapeSuivante; // redirection vers le paiement sélectionné
else
document.getElementById('erreur').innerHTML = commandeOk;
//window.location.href="/panier.php"; // redirection vers page erreur
}
}
// 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;
}
// actualise la liste du panier sauvegardé
function ActuListeArticleSauv() {
//articleDansPanier('qtt', '', '');
html = ajaxSupporte(BoutiqueService+ "_listeArticleSauv_0_0");
document.getElementById("listeAricleSauve").innerHTML = html;
// si pas d'article sauvegardé
if(html == 'pas de panier sauvegardé'){
document.getElementById('sauvePanier1').className = 'invisible';
document.getElementById('sauvePanier2').className = 'invisible';
document.getElementById('sauvePanier3').className = 'invisible';
document.getElementById('sauvePanier4').className = 'invisible';
messageSauv = 'Voulez-vous sauvegarder votre panier ?';
bttMessageSauv = '/gestion.maillot-bonsai.com/_images/bouton/fr/sauvegarder_panier-255_255_255-77_77_79-7pts5.png';
}
// si des articles sont sauvegardés
else {
document.getElementById('sauvePanier1').className = 'visible';
document.getElementById('sauvePanier2').className = 'visible';
document.getElementById('sauvePanier3').className = 'visible';
document.getElementById('sauvePanier4').className = 'visible';
document.getElementById('dateSauvPanier').innerHTML = ajaxSupporte(BoutiqueService+ "_dateSauvPanier_0_0"); // affichage de la nouvelle date de sauvegarde
messageSauv = 'Vous avez déjà un panier sauvegardé, Voulez-vous l\'écraser ?';
bttMessageSauv = '/gestion.maillot-bonsai.com/_images/bouton/fr/ecraser_panier-255_255_255-77_77_79-7pts5.png';
}
}
// vérifie la validité du code promo saisi
function setCodePromo(check)
{
document.getElementById('erreur_container').className="invisible";
document.getElementById('erreur').innerHTML = "";
var codePromo = "";
if(document.getElementById('saisie_code_promo'))
codePromo = document.getElementById('saisie_code_promo').value;
else if(document.getElementById('input_code_promo'))
codePromo = document.getElementById('input_code_promo').code;
if(!codePromo || codePromo=="")
{
if(typeof(check)=='undefined' || check!=true)
{
txt = fenetreDebut
+ 'Vous devez saisir votre code avantage ou opération.
'
+ fenetreFin;
message(txt);
if(!document.getElementById('saisie_code_promo'))
{
unsetCodePromo();
}
else
{
document.getElementById('saisie_code_promo').value = "";
}
}
else if(document.getElementById('saisie_code_promo'))
{
//calcul du montant
if(tabCode[1] == 'pourcentage')
{
mtPanier = parseFloat(document.getElementById('sousTotalPanier').montant);
montant = mtPanier * (montant/100);
}
else{
if( montant > parseFloat(document.getElementById('sousTotalPanier').montant) )
montant = parseFloat(document.getElementById('sousTotalPanier').montant);
}
document.getElementById('bouton_code_promo').src = "/_images/puces/puce_supprimer.png";
document.getElementById('bouton_code_promo').onclick = unsetCodePromo;
document.getElementById('input_code_promo').code = document.getElementById('saisie_code_promo').value;
document.getElementById('input_code_promo').innerHTML = document.getElementById('saisie_code_promo').value + " ";
// création du montant graphique de la remise
var srcMontant = toImage(0,0,0,0,125,200,75,"","","","Blokletters-Balpen.ttf",11,number_format(-montant, 2, formatDecimal, formatCentaine),"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,125,200,75,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
document.getElementById('remise_code_promo').innerHTML = imgMontant + " " + imgDevise;
// mise à jour du montant de la remise
document.getElementById("remise_code_promo").montant = montant;
// mise à jour du total du panier
ChangeTotalPanier();
}
else{
if(tabCode[1] == 'pourcentage')
{
mtPanier = parseFloat(document.getElementById('sousTotalPanier').montant);
montant = mtPanier * (montant/100);
}
// création du montant graphique de la remise
var srcMontant = toImage(0,0,0,0,125,200,75,"","","","Blokletters-Balpen.ttf",11,number_format(-montant, 2, formatDecimal, formatCentaine),"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,125,200,75,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
document.getElementById('remise_code_promo').innerHTML = imgMontant + " " + imgDevise;
// mise à jour du montant de la remise
document.getElementById("remise_code_promo").montant = montant;
// mise à jour du total du panier
ChangeTotalPanier();
}
}
// supprime le code promo du panier
function unsetCodePromo()
{
var retour = ajaxSupporte(BoutiqueService + "_unsetCodePromo_"+ document.getElementById('input_code_promo').code +"_0");
if( retour=="1" )
{
document.getElementById('bouton_code_promo').src = "/_images/puces/code_promo_ok.png";
document.getElementById('bouton_code_promo').onclick = setCodePromo;
document.getElementById('input_code_promo').code = "";
document.getElementById('input_code_promo').innerHTML = '';
montant = parseFloat("0");
document.getElementById('remise_code_promo').innerHTML = zero;
// mise à jour du montant de la remise
document.getElementById("remise_code_promo").montant = 0;
// mise à jour du total du panier
ChangeTotalPanier();
}
}
function choixEuroplusChange(checkbox, ref, nbChoixMax)
{
// par défaut ref = checkbox.value
var offreRef = checkbox.value;
var prixSpan = document.getElementById('totalPrixArticleEuroPlus['+offreRef+']');
if(nbChoixMax && nbChoixMax==parseInt(nbChoixMax))
{
var nbChoix=0;
var selectedCheckbox;
//récupère toutes les checkbox correspondant aux articles "1 euro de plus"
var lignes = DomMgr.getElementsByMaskId('choixEuroplus[%i]','input');
for(i=0; i < lignes.length; i++)
{
if(lignes[i] && lignes[i].checked==true)
{
if(lignes[i]!=checkbox)
selectedCheckbox = lignes[i];
nbChoix ++;
}
}
if(nbChoix > nbChoixMax)
{
if(nbChoixMax==1) // si on autorise une seule offre, la selection se comporte comme un toggle (annule la sélection précedente et valide)
{
if(selectedCheckbox)
{
selectedCheckbox.checked = false;
choixEuroplusChange(selectedCheckbox, ref);
}
}
else
{
checkbox.checked = false;
return;
}
}
}
if(checkbox.checked==true)
{
var retour = ajaxSupporte(BoutiqueService + "_addArticleEuroPlus_"+ offreRef +"_0");
var montant = parseFloat(retour);
if( montant!=retour)
{
txt = fenetreDebut
+ retour + '
'
+ fenetreFin;
message(txt);
checkbox.checked = false;
checkbox.disabled = true;
var offreNode = document.getElementById('europlus['+offreRef+']');
if(offreNode)
offreNode.parentNode.removeChild(offreNode);
}
else if(prixSpan)
{
// création du montant graphique de la remise
var srcMontant = toImage(0,0,0,0,77,77,79,"","","","Blokletters-Balpen.ttf",11,number_format(montant, 2, formatDecimal, formatCentaine),"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,77,77,79,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
prixSpan.innerHTML = imgMontant + " " + imgDevise;
// mise à jour du montant de la remise
prixSpan.montant = montant;
checkbox.disabled = false;
}
}
else
{
var retour = ajaxSupporte(BoutiqueService + "_delArticleEuroPlus_"+ offreRef +"_0");
if( retour=="1" )
{
montant = parseFloat("0");
prixSpan.innerHTML = zero;
// mise à jour du montant de la remise
prixSpan.montant = montant;
}
}
// modification des Packs
RefreshPacks();
// mise à jour du total du panier
ChangeTotalPanier();
// mise à jour de l'url de changement de site avec les informations de session
var retour = ajaxSupporte(BoutiqueService + "_changeSite_0_0");
var liensChangeSite = document.getElementsByName('lienChangeSite');
for(i=0; i< liensChangeSite.length; i++)
{
if(liensChangeSite[i].href)
liensChangeSite[i].href=retour;
}
}
function RefreshPacks()
{
var checkLiv = document.getElementById('checkLivraison');
var livraison = checkLiv ? checkLiv.checked : false;
// mise à jour de la liste des packs en fonction du montant des achats et des articles "europlus"
var retour = ajaxSupporte(BoutiqueService + "_affichePacks_"+(livraison ? 1 : 0)+"_0");
if(document.getElementById('liste_packs'))
document.getElementById('liste_packs').innerHTML = retour;
}
function choixPackChange(checkbox, ref, nbChoixMax)
{
// par défaut ref = checkbox.value
var packRef = checkbox.value;
var prixSpan = document.getElementById('totalPrixPack['+packRef+']');
if(nbChoixMax && nbChoixMax==parseInt(nbChoixMax))
{
var nbChoix=0;
var selectedCheckbox;
//récupère toutes les checkbox correspondant aux packs
var lignes = DomMgr.getElementsByMaskId('choixPack[%i]','input');
for(i=0; i < lignes.length; i++)
{
if(lignes[i] && lignes[i].checked==true)
{
if(lignes[i]!=checkbox)
selectedCheckbox = lignes[i];
nbChoix ++;
}
}
if(nbChoix > nbChoixMax)
{
if(nbChoixMax==1) // si on autorise un seul pack, la selection se comporte comme un toggle (annule la sélection précedente et valide)
{
if(selectedCheckbox)
{
selectedCheckbox.checked = false;
choixPackChange(selectedCheckbox, ref);
}
}
else
{
checkbox.checked = false;
return;
}
}
}
if(checkbox.checked==true)
{
var retour = ajaxSupporte(BoutiqueService + "_addPack_"+ packRef +"_0");
var montant = parseFloat(retour);
if( montant!=retour)
{
txt = fenetreDebut
+ retour + '
'
+ fenetreFin;
message(txt);
checkbox.checked = false;
checkbox.disabled = true;
var packNode = document.getElementById('pack['+packRef+']');
if(packNode)
packNode.parentNode.removeChild(packNode);
}
else if(prixSpan)
{
// création du montant graphique de la remise
var srcMontant = toImage(0,0,0,0,77,77,79,"","","","Blokletters-Balpen.ttf",11,number_format(montant, 2, formatDecimal, formatCentaine),"","244","244","244");
var imgMontant = '';
// création de la devise graphique
var srcDevise = toImage(0, 1.2*11, 0, 0.9*11,77,77,79,"","","","Blokletters-Balpen.ttf", 0.67*11,"€","","244","244","244");
var imgDevise = '';
prixSpan.innerHTML = imgMontant + " " + imgDevise;
// mise à jour du montant de la remise
prixSpan.montant = montant;
checkbox.disabled = false;
}
}
else
{
var retour = ajaxSupporte(BoutiqueService + "_delPack_"+ packRef +"_0");
if( retour=="1" )
{
montant = parseFloat("0");
prixSpan.innerHTML = zero;
// mise à jour du montant de la remise
prixSpan.montant = montant;
}
}
// mise à jour du total du panier
ChangeTotalPanier();
// mise à jour de l'url de changement de site avec les informations de session
var retour = ajaxSupporte(BoutiqueService + "_changeSite_0_0");
var liensChangeSite = document.getElementsByName('lienChangeSite');
for(i=0; i< liensChangeSite.length; i++)
{
if(liensChangeSite[i].href)
liensChangeSite[i].href=retour;
}
}
function pagePrecedente()
{
var retour = ajaxSupporte(BoutiqueService + "_goToHistory_-1_0");
if( retour!="0" )
window.location.href=retour;
}