/*
 *
 * @author simiand
 *
 */
// fonction destinée a afficher le mode de compatibilité du naviguateur :  Quirks ou standard
// alert(document.compatMode);

$(document).ready(function(){

    //**************************************************************************************
    //Fonctions destinees a verifier le formulaire d'envoi de e-Card 
    //**************************************************************************************
    
    if (jQuery().validate) {
        $("#formEcard").validate({
            rules: {
                nomExpediteur: "required",
                premonExpediteur: "required",
                emailExpediteur: {
                    required: true,
                    email: true
                },
                emailDestinataire1: {
                    required: true,
                    email: true
                },
                emailDestinataire2: {
                    email: true
                }
            },
            messages: {
                nomExpediteur: "Nom obligatoire",
                premonExpediteur: "Prenom obligatoire",
                emailExpediteur: {
                    required: "Email obligatoire",
                    email: "Format d’email incorrect"
                },
                emailDestinataire1: {
                    required: "Email destinataire obligatoire",
                    email: "Format d’email incorrect"
                },
                emailDestinataire2: {
                    email: "Format d’email incorrect"
                }
            }
        });
    }
    
    $("#boxEcard").attr("class", "ecard1");
    
    //**************************************************************************************
    //Fonctions destinees a afficher l'aide pour l'activation de la carte
    //**************************************************************************************
    $('#linkOpenNum').click(function(){
        $("#contentActivateNumHidden").slideToggle();
    });
	
    $('#linkCloseNum').click(function(){
        $("#contentActivateNumHidden").slideUp();
    });
    
    $('#linkOpenCode').click(function(){
        $("#contentActivateCodeHidden").slideToggle();
    });
	
    $('#linkCloseCode').click(function(){
        $("#contentActivateCodeHidden").slideUp();
    });
    
    //**************************************************************************************
    //Fonction destinee a afficher un carousel pour les offres cartes BEST cadeaux
    //**************************************************************************************
    
    if (jQuery().jcarousel) {
        $('#mycarousel').jcarousel({
            vertical: true
        });
    }
    
    //**************************************************************************************
    //Fonctions destinees a griser les autres cartes lors du passage sur une carte
    //**************************************************************************************
    
    $(".jcarousel-item").mouseover(function(){
        $(this).siblings().css("opacity", "0.4");
    });
	
    $(".jcarousel-item").mouseout(function(){
        $(".jcarousel-item").each(function(){
            $(".jcarousel-item").css("opacity", "1");
        });
    });
    
    //**************************************************************************************
    //Fonctions destinees a afficher le lien cliqué sur le menu de gauche (activer carte)
    //**************************************************************************************

    //Pour eviter les erreurs disgracieuses, on teste la presence de fonctions spécifiques a certaines pages (et donc chargées dans certains layouts).
    if (jQuery.url) {
		actionUser = jQuery.url.segment(2);
		$(".menuCarte li").each(function(){
			var idDuLien = $(this).attr("id");
			if (actionUser == idDuLien) {
				$(this).addClass('linkNow');
			}
		})
	}
    
    //**************************************************************************************
    //Fonctions destinees a la gestion de l'input du moteur de recherche sur Home Page (onClick / onBlur)
    //**************************************************************************************
    var texteEntre;
    var texteParDefaut = $("#champDepartement").val();
    
    $("#champDepartement").click(function(){
        texteEntre = $(this).val();
        if (texteEntre == texteParDefaut) 
            $(this).val("");
    });
    
    $("#champDepartement").blur(function(){
        if ($(this).val() == "") 
            $(this).val(texteParDefaut);
    });
    
    
    var boiteAreves = '119';
    $("#typeBonAchatId").change(function(){
        var bonAchatEnCours = $("#typeBonAchatId option:selected").attr("class");
        if (boiteAreves == bonAchatEnCours) {
            $("#champDepartement").attr('disabled', 'disabled');
            $("#champDepartement").val('');
        }
        if (boiteAreves != bonAchatEnCours) {
            $("#champDepartement").attr('disabled', '');
        }
    })
    
    if (jQuery().validate) {
        $("#formulaireRecherche").validate({
            rules: {
                typeBonAchatId: "required"
            },
            messages: {
                typeBonAchatId: "Produit obligatoire"
            }
        });
    }
    
    //**************************************************************************************
    //Tout pour la mini-calculette de la page produits
    //**************************************************************************************
    
    $("#calculAchat").submit(function(){
        if ($("#commander").css("display") == "none") 
            return false;
        else {
            var t = this.title || this.name || null;
            var g = this.rel || false;
            var h = this.action + (this.action.indexOf("?") > -1 ? "&" : "?") + "TB_iframe=true&TB_form=true";
            tb_show(t, h, g);
            this.blur();
            return true;
        }
    }).attr("target", "TB_iframeContent");

    
    $(".visuelArticleAjoutPanier").click(function(){
            var t = null;
            var g = false;
            var h = this.attr('href');
            tb_show(t, h, g);
            this.blur();
            return true;
    }).attr("target", "TB_iframeContent");    
    
	
    var devise = "&euro;";
    
    $("#commander").click(function(){
        if ($("#prixCommandeCarte").val() == "30 à 150€" || $("#prixCommandeCarte").val() == 0) {
			$("#valeurMinMax").html("Le montant doit être compris entre 30 et 150€");
			return false;
		}
    });
	
	$("#viuelArticlePrincipal, #fleches").css("cursor","pointer");
    $("#viuelArticlePrincipal, #fleches").click(function(){
        if ($("#prixCommandeCarte").val() == "30 à 150€" || $("#prixCommandeCarte").val() == 0) {
			$("#valeurMinMax").html("Le montant doit être compris entre 30 et 150€");
			return false;
		}
		else $("#calculAchat").submit();
    });
    
    $('#prixCommandeCarte').keyup(function(){
		var temp = parseInt($(this).val());
        if (($(this).val() >= 30) && ($(this).val() <= 150)) {
            $("#valeurMinMax").html("");
            $("#commander").show();
	        $('#prixCommandeCarte').val(temp);
            $('#prixArticleCourant').val(temp);
            calculMontantPanier();
            $("#commander").show();
        }
        else {
            $("#commander").hide();
            $('#prixArticleCourant').val(0);
            calculMontantPanier();
            $("#valeurMinMax").html("Le montant doit être compris entre 30 et 150€");
        }
    });
    
    $("#quantite").live('keyup',function(){
		var quantite = $(this).val();
		if (/^[0-9]+$/.test(quantite)){
			if (quantite.match(/^\d{1,}$/)) {
				if ($(this).val() > 333) 
	            	$(this).val("333");
	        	calculMontantPanier();
	        	$("#commander").show();
			}
		}
		else{
			$("#commander").hide();
		}
    });
    
    //lancement du calcul automatiquement en cas de rechargement
    $('#prixCommandeCarte').val("30 à 150€");
    $('#prixCommandeCarte').attr("MAXLENGTH", "5");
    $('#prixCommandeCarte').click(function(){
        if ($(this).val() == "30 à 150€") 
            $(this).val("");
    });
    $("#prixCommandeCarte").blur(function(){
        if ($(this).val() == "") {
            $(this).val("30 à 150€");
            $("#valeurMinMax").html("");
            $("#prixArticleCourant").val(0);
            calculMontantPanier();
        }
    });
    calculMontantPanier();
    
    function calculMontantPanier(){
        montantTotal = 0;
        //on recupere la quantité d'article demandée
        var quantite = parseInt($('#quantite').val());
        //si cette quantité n'est pas numérique, on force a zero
        quantite = isNaN(quantite) ? 0 : quantite;
        if (quantite <= 0) {
            quantite = 0;
        }
        //on recupere ensuite le prix unitaire l'article
        var prixUnitaire = parseFloat($('#prixArticleCourant').val());
        //et on calcule le montant total par article
        var montantTotalArticle = parseFloat(quantite * prixUnitaire);
        montantTotalArticle = isNaN(montantTotalArticle) ? 0 : montantTotalArticle;
        montantTotalArticle = montantTotalArticle + devise;
        $('#total').html(montantTotalArticle);
    };
    
    
    //**************************************************************************************
    //tout ce qui a trait a la partie creation de compte
    //**************************************************************************************	

    
    $('#formulaireCreationCompte').hide();
    $('#afficherFormulaireCreationCompte').click(function(){
        $('#formulaireCreationCompte').show('1300');
        $(this).hide();
        $('.creationCompte hr').hide();
        return false;
    });
    
    $("input[name='referencePopulation']").click(function(){
        $("#infosCompte").show();
        if ($(this).is(':checked') == true) {
            var test = $(this).val();
            if (test == "ENTREPRISE" || test == "COMITE") {
                $(".obligatoirePro").show();
            }
            else 
                if (test != "ENTREPRISE" || test != "COMITE") {
                    $(".obligatoirePro").hide();
                }
        }
    });
    
    
    $("#validerCreationCompte span").click(function(){
        $("#formulaireFinalCreationCompte").submit();
    });
    
    
    //**************************************************************************************
    //Tout pour la page coordonnées de livraison
    //**************************************************************************************
	if ($('#messageBeneficiaire').length != 0){
		$('#messageBeneficiaire').maxlength({
			'useInput': true
		});
	}
	
    //Formater la date de naissance et d'envoi pour la commande
    if (jQuery.mask) {		
		$("#dateNaissance").mask("99/99/9999");
        $("#naissanceCommande").mask("99/99/9999");
        $("#dateEnvoyerCodeActivation").mask("99/99/9999");
    }

 	if($("#beneficiaire").is(':checked')){
			$("#renseignementLivraison").show();
            $("#renseignementAcheteur").hide();
            $("#domicile").attr('checked', false);
            $(".lieuLivraison").html("Au domicile du bénéficiaire");
        }
		  
	if($("#domicile").is(':checked')){
			$("#renseignementAcheteur").show();
            $("#renseignementLivraison").hide();
            $("#beneficiaire").attr('checked', false);
            $(".lieuLivraison").html("A domicile");	
	}
			
    $("#beneficiaire").click(function(){
        if ($(this).is(':checked')) {
			
            $("#renseignementLivraison").show();
            $("#renseignementAcheteur").hide();
            $("#domicile").attr('checked', false);
            $(".lieuLivraison").html("Au domicile du bénéficiaire");
        }
        else {
			 $(this).attr('checked', true);
            $("#renseignementLivraison").hide();
        }
    });
    
    $("#domicile").click(function(){
        if ($(this).is(':checked')) {
			
            $("#renseignementAcheteur").show();
            $("#renseignementLivraison").hide();
            $("#beneficiaire").attr('checked', false);
            $(".lieuLivraison").html("A domicile");
        }
        else {
			 $(this).attr('checked', true);
            $("#renseignementAcheteur").hide();
        }
    });


		$("#adresseLivraison").validate({
                    rules: {
                        livraisonEmail: {
                           required: "#beneficiaire:checked",
     						 email: true
                        },
                        livraisonCivilite: {
							required: "#beneficiaire:checked"
							},
                        livraisonNom: {
							required: "#beneficiaire:checked"
							},
                        livraisonPrenom: {
							required: "#beneficiaire:checked"
							},
                        livraisonAdresse1: {
							required: "#beneficiaire:checked"
							},
                        livraisonCodePostal: {
							required : "#beneficiaire:checked"
							},
                        livraisonVille: {
							required : "#beneficiaire:checked"
							},
						livraisonEmail:{
							required : "#beneficiaire:checked"
							},
                        livraisonTel: {
							required : "#beneficiaire:checked",
							rangelength: [10, 10],
                    		number: true
							},
                        dateNaissance: {
                            required : "#beneficiaire:checked",
                            date: true
                        },
                        dateEnvoyerCodeActivation: {
                             required : "#beneficiaire:checked",
                            date: true
                        }
                    },
                    messages: {
                        livraisonEmail: {
							required : "Email obligatoire",
							email: "Email non valide"
						},
                        livraisonCivilite: "Civilité obligatoire",
                        livraisonNom: "Nom obligatoire",
                        livraisonPrenom: "Prenom obligatoire",
                        livraisonAdresse1: "Adresse obligatoire",
                        livraisonCodePostal: "Code Postal obligatoire",
                        livraisonVille: "Ville obligatoire",
                        livraisonTel: {
                            required: "N° de tel. obligatoire",
                    		rangelength: "10 chiffres obligatoires",
                    		number: "Téléphone non numérique"
                        },
                        dateNaissance: {
                            required: "Date de naissance obligatoire",
                            date: "Date non conforme"
                        },
                        dateEnvoyerCodeActivation: {
                            required: "Date d'envoi obligatoire",
                            date: "Date d'envoi non conforme"
                        }
                    }
                });

    //**************************************************************************************
    //Tout pour la page recap avant paiement
    //**************************************************************************************		
    
    //Acceptation des CGV obligatoire
    $(".bouton").click(function(){
        $("#paiement").validate({
            errorLabelContainer: $("#paiement p.erreurs"),
            rules: {
                acceptationCGV: "required"
            },
            messages: {
                acceptationCGV: "Vous devez accepter nos CGV pour procéder au paiement"
            }
        });
    });
    //**************************************************************************************
    //Tout pour le moteur de recherche
    //**************************************************************************************
    
    
    function affichageProduit(){
        var referenceBon = $('#changementTypeBonAchat option[selected]').attr("class");
        var visuel = $('#visuelBonAchat').attr('src', '/images/moteurRecherche/typeBonAchat_' + referenceBon + '.jpg');
    }
    
    affichageProduit();
    
    
    $('#changementTypeBonAchat').change(function(){
        produitSelect = $(this).val();
        $('#moteurRecherche').attr('action', '/actions/chercherEnseignes?enseigneId=' + produitSelect);
        $('#moteurRecherche').submit();
    });
    
    
    $('.imprimer').click(function(){
        var cible = $(this).attr("href");
        if (cible != '') {
            $('#' + cible + '').jqprint();
        }
        return false;
    })
    
    
    
    
    //**************************************************************************************
    //gestion du block "en savoir plus" de la page produits : animation...
    //**************************************************************************************			
    
    $(".lienSavoirPlus").click(function(){
        $("#commentCaMarcheDetails").slideToggle("medium", function(){
            if (typeof bountonModification == 'function') {
                bountonModification();
            }
        })
        $(this).hide();
        return false;
    });
    
    $(".fermerSavoirPlus").click(function(){
        $("#commentCaMarcheDetails").slideToggle("medium");
        $(".lienSavoirPlus").show();
        return false;
    });
    
    //**************************************************************************************
    //gestion des liste pliées/depliées pour la page connexion Compte Perso
    //**************************************************************************************
    
    $(".content").hide();
    var actionUser;
    
    //Pour eviter les erreurs disgracieuses, on teste la presence de fonctions spécifiques a certaines pages (et donc chargées dans certains layouts).
    if (jQuery.url) {
        actionUser = jQuery.url.param("action");
        $("#accesCompte a h1").each(function(){
            var idDuLien = $(this).attr("id");
            if (actionUser == idDuLien) {
                $(this).parent('a').toggleClass("active");
                $(this).parent().next(".content").slideToggle();
                $(this).toggleClass("active");
                return false;
            }
        });
    }
    
    $("#accesCompte a h1").click(function(){
        if ($(this).is(".active")) {
            $(this).toggleClass("active");
            $(this).parent('a').toggleClass("active");
            $(this).parent().next(".content").slideToggle();
            return false;
        }
        else {
            $(".content:visible").slideUp("slow"); // close all visible divs with the class of .content
            $("h1.active").removeClass("active"); // remove the class active from all h1's with the class of .active
            $("a.active").removeClass("active");
            $(this).toggleClass("active");
            $(this).parent('a').toggleClass("active");
            $(this).parent().next(".content").slideToggle();
            return false;
        }
    });
    
    $("input[name='referencePopulation']").click(function(){
        $("#infosCompte").show();
        if ($(this).is(':checked') == true) {
            var test = $(this).val();
            if (test == "ENTREPRISE" || test == "COMITE") {
                $(".obligatoirePro").show();
            }
            else 
                if (test != "ENTREPRISE" || test != "COMITE") {
                    $(".obligatoirePro").hide();
                }
        }
    });
    
    var check = $('input[type=radio][name=referencePopulation]:checked').length;
    if (check != 0) {
        var checkCochee = $('input[type=radio][name=referencePopulation]:checked');
        var titreH1 = $(checkCochee).parents(".block").find("a:first").addClass("active");
        $(titreH1).find("h1").addClass("active");
        $(titreH1).find("h1").parent().next(".content").slideDown();
        $("#infosCompte").show();
        var test = $('input[type=radio][name=referencePopulation]:checked').val();
        
        if (test == "ENTREPRISE" || test == "COMITE") {
            $(".obligatoirePro").show();
        }
        else 
            if (test != "ENTREPRISE" || test != "COMITE") {
                $(".obligatoirePro").hide();
            }
    }
    
    if (jQuery().validate) {
        $('#validerCreationProfil').click(function(){			
            $("#formulaireCreationCompte2").validate({
                errorElement: "em",
                errorPlacement: function(error, element){
                    error.appendTo(element.parent("td").next("td"));
                },
                rules: {
                    nom: "required",
                    prenom: "required",
                    username: {
                        required: true,
                        minlength: 2
                    },
                    password: {
                        required: true
                    },
                    confirmationPassword: {
                        equalTo: "#mdp"
                    },
                    email: {
                        required: true,
                        email: true
                    },
                    raisonSociale: {
                         required: function(element) {
					        return  $('input[type=radio][name=referencePopulation]:checked').val() != "CLIENT_GP";
					      },
                        minlength: 2
                    },
                    "valeurAttribut(NUM_TVA)": {
                         required: function(element) {
					         return  $('input[type=radio][name=referencePopulation]:checked').val() != "CLIENT_GP";
					      },
                        minlength: 2
                    },
                    "valeurAttribut(SIRET)": {
                         required: function(element) {
					         return  $('input[type=radio][name=referencePopulation]:checked').val() != "CLIENT_GP";
					      },
                        minlength: 2
                    },
                    "valeurAttribut(DATE_NAISSANCE)": {
                        required: true,
                        date: true
                    }
                }
            });
            if( ($("input[type=radio][name=civilite]:checked").val() != "Mme") && 
            	($("input[type=radio][name=civilite]:checked").val() != "Mlle") &&
            	($("input[type=radio][name=civilite]:checked").val() != "M."))
            {
				$("#radioCiviliteEnregistrement").children("div").addClass( "validationEchoue" );
            }            	
        })
    }
    
    $(".radioBtn").live("click", function(){
    	if ($(this).parent().hasClass("validationEchoue"))
    		{
    			$("#radioCiviliteEnregistrement").children("div").removeClass( "validationEchoue" );
    		}    
    });
    
    //**************************************************************************************
    //Tout ce qui a trait au compte perso (interieur)
    //**************************************************************************************
    
    $(".imprimez").click(function(){
        var idCouponChoisi = $(this).attr('id');
        var loadUrl = "/actions/impressionCoupon?offrePromoId=" + idCouponChoisi;
        fenetre = window.open(loadUrl, "ImpressionCoupons", "width=950,height=800,scrollbars=yes,resizable=0");
        if (window.focus) {
            fenetre.focus()
        }
        return false;
    });
    
	

	$(".impressionTotalePro").click(function(){
        var i = -1;
        var loadUrl = "/actions/impressionCouponsPro?documentsId=";
        $('#colonneOffresPro .papyrusDocument').each(function(){
            i++;
            var id = $(this).attr('id');
            if (i == 0) {
                loadUrl = loadUrl + id;
            }
            else 
                if (i != 0) {
                    loadUrl = loadUrl + '-' + id;
                }
        });
        fenetre = window.open(loadUrl, "ImpressionCoupons", "width=950,height=800,scrollbars=yes");
        if (window.focus) {
            fenetre.focus()
        }
        return false;
    });
	
    $(".impressionTotale").click(function(){
        var i = -1;
        var loadUrl = "/actions/impressionCoupons?centresInteretId=";
        $('.checkInteret:checked').each(function(){
            i++;
            var id = $(this).attr('id');
            if (i == 0) {
                loadUrl = loadUrl + id;
            }
            else 
                if (i != 0) {
                    loadUrl = loadUrl + '-' + id;
                }
        });
        fenetre = window.open(loadUrl, "ImpressionCoupons", "width=950,height=800,scrollbars=yes");
        if (window.focus) {
            fenetre.focus()
        }
        return false;
    });
    
    
    //Affichage Disparition des coupons perso en fonction des centre d'interet selectionnés
    function couponsVisibles(){
        $('.checkInteret').each(function(){
            var coche = $(this).attr("checked");
            if (coche) {
                var idCoupons = $(this).attr("id");
                $("." + idCoupons).each(function(){
                    if ("this:hidden") {
                        $(this).fadeIn();
                    }
                });
            }
        });
    }
    
    $(".checkInteret").click(function(){
        var coche = $(this).attr("checked");
        if (!coche) {
            var idCoupons = $(this).attr("id");
            $("." + idCoupons).each(function(){
            
                $(this).fadeOut();
            });
        }
        couponsVisibles();
    });
    
    couponsVisibles();
    
    //***********************************************
    //  Validation formulaire modification profil
    //***********************************************
    
    $("#validerModificationProfil").click(function(){
        $("#modifierProfil").validate({
           errorElement: "em",
                errorPlacement: function(error, element){
                    error.appendTo(element.parent("td").next("td"));
                },
            rules: {
                civilite: "required",
                nom: "required",
                prenom: "required",
                tel1: {
                    required: true,
                    rangelength: [10, 10],
                    number: true
                },
                email: {
                    required: true,
                    email: true
                }
            },
            messages: {
                civilite: "Civilité obligatoire",
                nom: "Nom obligatoire",
                prenom: "Prénom obligatoire",
                tel1: {
                    required: "Téléphone obligatoire",
                    rangelength: "10 chiffres obligatoires",
                    number: "Téléphone non numérique"
                },
                email: {
                    required: "Mail obligatoire",
                    email: "Format email incorrect"
                }
            },
            submitHandler: function(){
                $("#modifierProfil").submit();
            }
        });
    });
    
    //********************************************************
    // Validation formulaire renseignement facturation
    //********************************************************
    
    $("#validateFacturation").click(function(){
        $("#formulaireFinalCreationCompte").validate({
			errorElement: "em",
                errorPlacement: function(error, element){
                    error.appendTo(element.parent("td").next("td"));
                },
            rules: {
                facturationCivilite: "required",
                facturationNom: "required",
                facturationPrenom: "required",
                facturationAdresse1: "required",
                facturationCodePostal: {
                    required: true,
                    rangelength: [5, 5],
                    number: true
                },
                facturationVille: "required",
                facturationTel: {
                    required: true,
					rangelength: [10, 10],
               		number: true
                },
                facturationEmail: {
                    required: true,
                    email: true
                }
            },
            messages: {
                facturationCivilite: "Civilité obligatoire",
                facturationNom: "Nom obligatoire",
                facturationPrenom: "Prénom obligatoire",
                facturationAdresse1: "Adresse obligatoire",
                facturationCodePostal: {
                    required: "Code postal obligatoire",
                    rangelength: "5 chiffres obligatoire",
                    number: "Code postal non numérique"
                },
                facturationVille: "Ville obligatoire",
                facturationTel: {
                    required: "Téléphone obligatoire",
                    rangelength: "10 chiffres obligatoires",
                    number: "Téléphone non numérique"
                },
                facturationEmail: {
                    required: "Mail obligatoire",
                    email: "Format email incorrect"
                }
            },
            submitHandler: function(form){
                form.submit();
            }
        });
    });
    
    $("#validerModificationAdresseFacturation span").click(function(){
        $("#modifierAdresseFacturation").submit();
    });
    
    
    //**************************************************************************************
    //Tout ce qui a trait au FAQ
    //**************************************************************************************		
    
	//
	//Pour rendre la FAQ éditable, la premiere étape consisite a desactiver toute la mise en forme JS (roundCorner + slideToggle)    
    //
	
	if(typeof bountonModification != 'function') {
		
		$(".faq div").hide();
	    $(".faq h2").click(function(){
	        $(this).next("div").slideToggle("slow").siblings("div:visible").slideUp("slow");
	        $(this).toggleClass("active");
	        $(this).siblings("h2").removeClass("active");
	    });
	    
	    
	    //Gestion des coins arrondis pour et seulement pour la page FAQ
	    if ($(".faq h2").length > 0) {
	        $(".faq h2").corner("10px");
	    }
	} 	
});
