////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS INDEX.JSP

function filterList(sFilter) {
  
    $("#detailProduit").hide();
    $("#groupProduit").show();
    
    $("#condition").val(sFilter);
    $("#noPage").val(1);
    
    requeteListe();
}

function filterOptionsExecute() {
    
    $("#detailProduit").hide();
    $("#groupProduit").show();
    
    $("#condition").val($("#filterOptions").val());
    $("#noPage").val(1);
    requeteListe();
}

function changerPage(i) {

    $("#noPage").val(i);
    requeteListe();
    $.scrollTo('#themes', {speed:1000});
}

function requeteListe() {

    $.ajax({
      url: "filtrerProduits.jsp",
      data: "noListe=" + $("#noListe").val() + "&condition=" + $("#condition").val() + "&noPage=" + $("#noPage").val() + "&noItems=" + $("#noItems").val(),
      async: false,
      cache: false,
      success: function(html){
          // vérifie si la session a expirée
          if (removeChar(html).fullTrim() == $("#sessionExpiree").html()) {
              // dans ce cas, la session a expiré et la page est le module est rechargé de nouveau 
              PageRedirectionEtAlert()
 
          } else {
              $("#listProduit").html(html);
          }
      },
      error: function(){ alert("Erreur pour afficher la liste des produits.") }
    });
}

function ajouterPanier(strNoRefProduit) {
    
    var bSessionExpiree = false;
    
    $("#detailProduit").hide();
    $("#groupProduit").show();
        
    $.ajax({
      url: "ajouterPanier.jsp",
      data: "noRefProduit=" + strNoRefProduit + "&livre4eme=" + document.getElementById("livre4eme").value,
      async: false,
      cache: false,
      success: function(html){
          // vérifie si la session a expirée
          if (removeChar(html).fullTrim() == $("#sessionExpiree").html()) {
 
              // dans ce cas, la session a expiré et la page est le module est rechargé de nouveau 
              PageRedirectionEtAlert();
              bSessionExpiree = true;
 
          } else {
              $("#ajouterPanier").html(html);
              tb_show(null, '#TB_inline?height=250&width=170&inlineId=ajouterPanier', false);
          }
      },
      error: function(){ alert("Erreur pour ajouter au panier.") }
    });

    if (!bSessionExpiree) {
	    statusPanier();
	
	    $.ajax({
	      url: "statusPanier.jsp",
	      data: "returnNombreProduits=1",
	      async: false,
	      cache: false,
	      success: function(html){
	
	        // replace(/^\s+|\s+$/g,"") - javascript equivalent trim() 
	        var iNombreProduits = html.replace(/^\s+|\s+$/g,"");
	        
	        if (iNombreProduits >= iMaxNoProduitsPanier) {
	            
	            if (document.getElementById("livre4eme").value == "true" && iNombreProduits == iMaxNoProduitsPanier) {
	                fermerFenetre(iNombreProduits);
	            } else {
	                redirectPanier();
	            }
	            
	        } else {
	            fermerFenetre(iNombreProduits);
	        }
	      
	      },
	      error: function(){ alert("Erreur pour ajouter au panier.") }
	    });
    }
}

function detailProduit(strNoRefProduit) {
            
    var bSessionExpiree = false;

    $.ajax({
      url: "detailProduit.jsp",
      data: "noRefProduit=" + strNoRefProduit,
      async: false,
      cache: false,
      success: function(html){
        if (removeChar(html).fullTrim() == $("#sessionExpiree").html()) {
              // dans ce cas, la session a expiré et la page est le module est rechargé de nouveau 
              PageRedirectionEtAlert();
              bSessionExpiree = true;
          } else {
              $("#detailProduit").html(html);
              $("#detailProduit").show();
              $("#groupProduit").hide();
          }
      },
      error: function(){ alert("Erreur pour afficher les details du produit.") }
    });

    if (!bSessionExpiree) {
    	$.scrollTo('#detailProduit', {speed:1000});
    }
}

function afficherResume() {
    $("#contenuExtrait").hide();
    $("#shortDescription").show();
    $("#lecteursClub").show();
    $("#livreAvis").hide();
    $.scrollTo('#detailProduit', {speed:1000});
}

function afficherExtrait() {
    $("#shortDescription").hide();
    $("#lecteursClub").hide();
    $("#contenuExtrait").show();
    $("#livreAvis").hide();
}

function afficherAvis() {
    $("#shortDescription").show();
    $("#livreAvis").show();
    $("#contenuExtrait").hide();
    $("#lecteursClub").hide();
    $.scrollTo('#lecteursClub', {speed:1000});
}

function statusPanier() {

    $.ajax({
      url: "statusPanier.jsp",
      cache: false,
      success: function(html){
        if (removeChar(html).fullTrim() == $("#sessionExpiree").html()) {
              // dans ce cas, la session a expiré et la page est le module est rechargé de nouveau 
              PageRedirectionEtAlert();
          } else {
              $("#messagePanier").html(html);
          }
      },
      error: function(){ alert("Erreur pour afficher le message du panier.") }
    });
}

function redirectPanier() {
    setTimeout ( "document.location = 'panierForm.jsp'", 3000 );
}

function offre4livre() {
    
    $.ajax({
      url: "offre4livre.jsp",
      async: false,
      cache: false,
      success: function(html){
        $("#offre4livre").html(html);
        tb_show(null, '#TB_inline?height=250&width=270&inlineId=offre4livre', false)
        document.getElementById("TB_closeAjaxWindow").style.display = "none";
      },
      error: function(){ alert("Erreur pour l'offre et '4ï¿½me livre'.") }
    });
    
}

function offrelivresubstitution() {

    $.ajax({
      url: "offre-livreSubstitution.jsp",
      async: false,
      cache: false,
      success: function(html){
        $("#offrelivresubstitution").html(html);
        tb_show(null, '#TB_inline?height=250&width=270&inlineId=offrelivresubstitution', false)
        document.getElementById("TB_closeAjaxWindow").style.display = "none";
      },
      error: function(){ alert("Erreur pour l'offre et 'livre de substitution'.") }
    });

}

function fermerFenetre(iNombreProduits) {
    setTimeout ( "tb_remove()", 3000 );
    
    if (document.getElementById("livresubstitution").value == "true" && iNombreProduits == iMaxNoProduitsPanier - 1) {
      setTimeout ( "offrelivresubstitution()", 3500 );
    }

    if (document.getElementById("livre4eme").value == "true" && iNombreProduits == iMaxNoProduitsPanier) {
      setTimeout ( "offre4livre()", 3500 );
    }    
}

function choissir4livre() {
  document.getElementById("livre4eme").value = "true";
  tb_remove();
}

function choissirlivresubstitution() {
    document.getElementById("livresubstitution").value = "true";
    tb_remove();
}
// END - FUNCTIONS INDEX.JSP
////////////////////////////////////////////////////////////////////////////////

function verifiePays(form) {
    if (form.paysMembreRecru.selectedIndex == 3) {
            chaine = "/recrutement/suisse.jsp?noCentreDeChargeCourant=1";
            window.open(chaine,'AutrePays','height=177,width=616,toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=no');
            return false;
    }

    if (form.paysMembreRecru.selectedIndex == 2) {
            chaine = "/recrutement/canada.jsp?noCentreDeChargeCourant=1";
            window.open(chaine,'AutrePays','height=177,width=616,toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=no');
            return false;
    }

    if (form.paysMembreRecru.selectedIndex == 4) {
            chaine = "/recrutement/autres.jsp?noCentreDeChargeCourant=1";
            window.open(chaine,'AutrePays','height=177,width=616,toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=no');
            return false;
    }

    return true;
}

function runSubmit(form) {

// Paiement par carte de crï¿½dit
// if (form.typePaiementPmt[0].checked || form.typePaiementPmt[1].checked) {
//	   Message();
//	   return;
//	}

	// Si c'est le recrutement RATTRAPAGE, vérifier la fidélité.
    if (typeof(form.codeProduitRecru) != 'undefined') {
        // Fidélité
        form.codeProduitRecru.value = "";
        form.codeProduitRecru.value = form.codeFidelite.value;
        
        while (form.codeProduitRecru.value.length < 2) {
                form.codeProduitRecru.value = '0' + form.codeProduitRecru.value;
        }
        
		if (isEmpty(form.codeFidelite.value) || isNaN(form.codeFidelite.value) || form.codeProduitRecru.value.length != 2) {
                alert("Veuillez indiquer votre fidélité.");
                form.codeFidelite.focus();
                return;
        }
    }

    form.codePrivilegeRecru.value = "";

	// Code Privilï¿½ge
	form.codePrivilegeRecru.value = form.codePrivilege1.value + form.codePrivilege2.value + form.codePrivilege3.value + form.codePrivilege4.value + form.codePrivilege5.value + form.codePrivilege6.value;
	
	if (form.codePrivilegeRecru.value.length != 6) {
	       alert("Veuillez indiquer votre code privilège.");
	       form.codePrivilege3.focus();
	       return;
	}

    if (isEmpty(form.prenomMembreRecru.value)) {
            alert("Veuillez indiquer votre prénom.");
            form.prenomMembreRecru.focus();
            return;
    }

    if (isEmpty(form.nomMembreRecru.value)) {
            alert("Veuillez indiquer votre nom.");
            form.nomMembreRecru.focus();
            return;
    }

    if (isEmpty(form.rueMembreRecru.value)) {
            alert("Veuillez indiquer le nom de votre rue.");
            form.rueMembreRecru.focus();
            return;
    }

    if (isEmpty(form.noRueMembreRecru.value)) {
            alert("Veuillez indiquer votre numéro de rue.");
            form.noRueMembreRecru.focus();
            return;
    }

    if (isEmpty(form.lieuMembreRecru.value)) {
            alert("Veuillez indiquer le nom de votre ville.");
            form.lieuMembreRecru.focus();
            return;
    }

    if (!zipCheck(form.codePostalMembreRecru.value)) {
            alert("Veuillez entrer un code postal valide (9999).");
            document.main.codePostalMembreRecru.focus();
            return;
    }

    // Vï¿½rification du pays.
    if ((form.paysMembreRecru.selectedIndex != 0) && (form.paysMembreRecru.selectedIndex != 1)) {

            alert("Vous avez choisi un pays différent de la Belgique. Veuillez faire un nouveau choix.");
            form.paysMembreRecru.focus();
            return;
    }

    if (isNaN(form.telephoneMembreRecru.value)) {
            alert("Votre numéro de téléphone ne doit contenir que des chiffres.");
            form.telephoneMembreRecru.focus();
            return;
    }

    if (isNaN(form.telephonePortableMembreRecru.value)) {
            alert("Votre numéro de portable ne doit contenir que des chiffres.");
            form.telephonePortableMembreRecru.focus();
            return;
    }
    
    if (isEmpty(form.telephoneMembreRecru.value) && isEmpty(form.telephonePortableMembreRecru.value)) {
            alert("Veuillez inscrire votre numéro de téléphone fixe ou portable.");
            form.telephoneMembreRecru.focus();
            return;
    }
    
    if (! isEmpty(form.telephoneMembreRecru.value) && form.telephoneMembreRecru.value.length < 8) {
            alert("Veuillez compléter votre numéro de téléphone.");
            form.telephoneMembreRecru.focus();
            return;
    }

    if (! isEmpty(form.telephonePortableMembreRecru.value) && form.telephonePortableMembreRecru.value.length < 10) {
            alert("Veuillez compléter votre numéro de téléphone portable.");
            form.telephonePortableMembreRecru.focus();
            return;
    }

    if (! isEmpty(form.jourNaissanceMembreRecru.value)) {
            if (!isNumber(form.jourNaissanceMembreRecru.value)) {
                    alert("Vous devez indiquer le jour de votre naissance correctement.");
                    form.jourNaissanceMembreRecru.focus();
                    return;
            }
            if (form.jourNaissanceMembreRecru.value < 1 || form.jourNaissanceMembreRecru.value > 31) {
                    alert("Le jour de votre naissance doit être entre 1 et 31.");
                    form.jourNaissanceMembreRecru.focus();
                    return;
            }
            if (form.jourNaissanceMembreRecru.value.length < 2) {
                    alert("Vous devez indiquer un jour à 2 chiffres (01).");
                    form.jourNaissanceMembreRecru.focus();
                    return;
            }
    }

    if (! isEmpty(form.moisNaissanceMembreRecru.value)) {
            if (!isNumber(form.moisNaissanceMembreRecru.value)) {
                    alert("Vous devez indiquer le mois de votre naissance correctement.");
                    form.moisNaissanceMembreRecru.focus();
                    return;
            }
            if (form.moisNaissanceMembreRecru.value < 1 || form.moisNaissanceMembreRecru.value > 12) {
                    alert("Le mois de votre naissance doit être entre 1 et 12.");
                    form.moisNaissanceMembreRecru.focus();
                    return;
            }
            if (form.moisNaissanceMembreRecru.value.length < 2) {
                    alert("Vous devez indiquer un mois à 2 chiffres (01)");
                    form.moisNaissanceMembreRecru.focus();
                    return;
            }
    }

    if (! isEmpty(form.anneeNaissanceMembreRecru.value)) {
            if (!isNumber(form.anneeNaissanceMembreRecru.value)) {
                    alert("Vous devez indiquer l'année de votre naissance correctement.");
                    form.anneeNaissanceMembreRecru.focus();
                    return;
            }
            if (form.anneeNaissanceMembreRecru.value.length < 4) {
                    alert("Vous devez indiquer une année à 4 chiffres (1980)");
                    form.anneeNaissanceMembreRecru.focus();
                    return;
            }
    }

    if (isEmpty(form.jourNaissanceMembreRecru.value) ||
        isEmpty(form.moisNaissanceMembreRecru.value) ||
        isEmpty(form.anneeNaissanceMembreRecru.value)) {

            alert("Veuillez inscrire votre date de naissance complète.");
            form.jourNaissanceMembreRecru.focus();
            return;
    } else {
            // Reconstitution de la date de naissance
            form.dateNaissanceMembreRecru.value = form.anneeNaissanceMembreRecru.value + form.moisNaissanceMembreRecru.value + form.jourNaissanceMembreRecru.value;

            if (form.dateNaissanceMembreRecru.value > globalDateNaissanceLimite) {
                    alert("Nous n'acceptons pas d'adhésion de la part de personnes ayant moins de 18 ans.");
                    return;
            }
    }

    if ((form.motDePasseMembreRecru.value.length < 6) || (form.motDePasseMembreRecru.value.indexOf(" ") > -1)) {
            alert("Votre mot de passe doit contenir au moins 6 caractères (lettres et chiffres).");
            form.motDePasseMembreRecru.focus();
            return;
    }
    
    if (!isValidMotDePasse(form.motDePasseMembreRecru.value)) {
            form.motDePasseMembreRecru.focus();
            alert("Le mot de passe ne peut contenir ni accents ni caractères spéciaux.");
            return;
    }

    if (form.motDePasseMembreRecru.value != form.motDePasseConfirmeMembreRecru.value) {
            alert("La confirmation de votre mot de passe est différente de votre mot de passe.");
            form.motDePasseConfirmeMembreRecru.focus();
            return;
    }

    if (form.courrielMembreRecru.value == "" || (form.courrielMembreRecru.value.indexOf("@") < 0 | (form.courrielMembreRecru.value.indexOf("@") > form.courrielMembreRecru.value.lastIndexOf(".")))) {
            form.courrielMembreRecru.focus();
            alert("Vous devez entrer un e-mail valide.");
            return;
    }

    if (form.courrielMembreRecruConf.value == "" || (form.courrielMembreRecruConf.value.indexOf("@") < 0 | (form.courrielMembreRecruConf.value.indexOf("@") > form.courrielMembreRecruConf.value.lastIndexOf(".")))) {
            form.courrielMembreRecruConf.focus();
            alert("Vous devez entrer un e-mail de confirmation valide.");
            return;
    }

    if (form.courrielMembreRecru.value != form.courrielMembreRecruConf.value)
    {
            form.courrielMembreRecru.focus();
            alert("Vos adresses électroniques saisies ne sont pas identiques.");
            return;
    }

    if (form.isProduitEfface.value == "1"){
            alert("Nous sommes désolés : vous ne remplissez pas les conditions pour accéder à l'étape suivante.\n- Avez-vous choisi 3 livres pour 1 euro ?\n- Avez-vous ajouté un 4e produit, qui remplacera un de ces 3 titres, en cas de rupture de stock ?\nRetournez vite sur le catalogue pour profiter de notre offre de bienvenue.");
            return;
    }

    if (!form.checkbox.checked){
            alert("Vous devez accepter les conditions d'adhésion au Club pour continuer.");
            form.checkbox.focus();
            return;
    }

    // Complï¿½ment d'adresse
    form.complementRueMembreRecru.value = form.niveau.value + " " + form.etage.value + " " + form.appartement.value;

    form.submit();
}

function runSubmitPageConfirmation(form)
{
   if (form.isProduitEfface.value == "1"){
        alert("Nous sommes désolés : vous ne remplissez pas les conditions pour accéder à l'étape suivante.\n- Avez-vous choisi 3 livres pour 1 euro ?\n- Avez-vous ajouté un 4e produit, qui remplacera un de ces 3 titres, en cas de rupture de stock ?\nRetournez vite sur le catalogue pour profiter de notre offre de bienvenue.");
        return;
   }

   form.submit();

}

function detailPanier() {

    $.ajax({
      url: "panier.jsp",
      cache: false,
      success: function(html){
        if (removeChar(html).fullTrim() == $("#sessionExpiree").html()) {
            // dans ce cas, la session a expiré et la page est le module est rechargé de nouveau 
            PageRedirectionEtAlert()
          } else {
            $("#panier").html(html);
            activerDezactiverStep1();
          }
      },
      error: function(){ alert("Erreur pour afficher le panier.") }
    });
    
}

function activerDezactiverStep1() {

    if (iNombreProduitsPanier >= iMaxNoProduitsPanier) {
        $("#liStep1").html("<img src=\"images/step1-off.gif\" style=\"vertical-align:middle\" />&nbsp;&nbsp;Faites votre choix");
    } else {
        $("#liStep1").html("<a class=\"linkNoClass\" href=\"index.jsp?noListe=" + noListe + "\"><img src=\"images/step1-off.gif\" style=\"vertical-align:middle\" />&nbsp;&nbsp;Faites votre choix</a>");
    }
}

function activerStep2() {
    
    $("#liStep2").html("<a class=\"linkNoClass\" href=\"panierForm.jsp\"><img src=\"images/step2-off.gif\" style=\"vertical-align:middle\" />&nbsp;&nbsp;Indiquez vos coordonnées</a>");
    
}

function effacerProduit(strNoRefProduit) {

    var bSessionExpiree = false;

    $.ajax({
      url: "effacerProduits.jsp",
      data: "noRefProduit=" + strNoRefProduit,
      async: false,
      cache: false,
      success: function(html){
          if (removeChar(html).fullTrim() == $("#sessionExpiree").html()) {
              // dans ce cas, la session a expiré et la page est le module est rechargé de nouveau 
              PageRedirectionEtAlert()
              bSessionExpiree = true;
          }
      },
      error: function(){ 
          alert("Erreur pour effacer.") 
      }
    });

    if (!bSessionExpiree) {
	    detailPanier();
	
	    $("#messageErreur").show();
	    document.main.isProduitEfface.value = "1";
    }
}

function checkInformePromotionRecru() {
    if (document.getElementById("informePromotionRecruCB").checked == true)
        document.getElementById("informePromotionRecru").value = "1";
    else
        document.getElementById("informePromotionRecru").value = "0";
}

function removeChar(input) {
    var output = "";
    for (var i = 0; i < input.length; i++) {
        
        if ((input.charCodeAt(i) == 13) || (input.charCodeAt(i) == 10)) {
            output += "";
        } else {
            output += input.charAt(i);
        }
    }
    return output;
}
 
String.prototype.fullTrim = function() {
   return this.replace(/\s+/g," ").replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,"$1");
}
 
function PageRedirectionEtAlert() {
    document.location = $("#adresseUrl").html();
    alert("Votre session a expiré. Vous pouvez recommencer.");
}
