PageSourceSearch

https://www.ch-bourges.fr/wp-content/plugins/nc_form_don/assets/js/form.js?ver=0.1.7

js ch-bourges.fr collected 2026-10-02 19:11:32 UTC 5,345 bytes, 100 lines download raw bytes

1!function (e) {
2    "use strict";
3    e(document).ready(function () {
4        e(".donation-form").each(function () {
5            var t = e(this),                                // le formulaire
6                n = t.find(".amount-button"),               // conteneur des boutons de montant
7                a = t.find(".custom-amount-input"),         // conteneur du champ montant libre
8                i = t.find('input[name="custom_amount"]'),  // champ montant libre
9                o = t.find('input[name="email"]'),          // champ email
10                s = t.find('input[name="is_company"]'),     // CB entreprise
11                r = t.find(".tax-deduction-info"),          // conteneur du message deduction
12                dr = t.find(".don-resultat"),               // resultat
13                d = t.find(".final-cost"),                  // montant restant
14                c = t.find(".tax-rate-info"),               // texte explication pourcentage
15                l = t.find(".donation-submit"),             // bouton d'envoi
16                p = "10",
17                pcent = nc_form_don_pourcentage_ent,        // pourcentage de déduction pour les entreprises
18                pcpart = nc_form_don_pourcentage_part       // pourcentage de déduction pour les particuliers
19            ;
20
21            // Met a jour les infos de montants dans le texte
22            function m() {
23                var e;
24                e = "custom" === p ? (parseFloat(i.val()) || 0) : (parseFloat(p) || 0);     // recupere le montant du bouton ou du champ custom
25                var t = s.is(":checked"),                           // si la CB entreprise est cochee
26                    n = e * (t ? pcent : pcpart) / 100,   // calcul de la déduction
27                    a = e - n;                              // calcul du reste à charge
28                if (e > 0) {
29                    d.text(a.toFixed(2) + "€");
30                    var o = t ? "(" + pcent + "% de déduction fiscale pour les entreprises)" : "(" + pcpart + "% de déduction fiscale pour les particuliers)";
31                    c.text(o);
32                    r.show();
33                } else r.hide()
34            }
35
36            // affiche un message d'erreur
37            function f(n) {
38                var a = e("<div>", {class: "error-message", text: n});
39                t.append(a)
40            }
41
42            // event click sur bouton montant + switch vers champs perso
43            n.on("click", function (t) {
44                t.preventDefault();
45                n.removeClass("selected");
46                e(this).addClass("selected");
47                var i = e(this).data("amount");
48                "custom" === i ? (p = "custom", a.slideDown(300)) : (p = i.toString(), a.slideUp(300));
49                m();
50            });
51
52            // saisie dans le champ perso
53            i.on("input", function () {
54                m()
55            });
56
57            // event switch type de donateur
58            s.on("change", function () {
59                m()
60            });
61
62            // event envoi du formulaire
63            t.on("submit", function (n) {
64                n.preventDefault();
65                t.find(".error-message").remove();
66
67                var a = "custom" === p ? (parseFloat(i.val()) || 0) : (parseFloat(p) || 0);     // recupere le montant bouton ou custom
68                var r = o.val().trim(),      // email
69                    u = s.is(":checked");           // CB entreprise
70
71                // test le formulaire
72                // le montant a doit etre > 0
73                // l'email doit etre specifie et valide
74                a <= 0 ? f("Veuillez sélectionner un montant valide") : r && function (e) {
75                    return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)
76                }(r) ? (l.prop("disabled", !0).text("Traitement en cours..."), e.ajax({
77                    url: donationData.ajaxUrl,
78                    type: "POST",
79                    data: {action: "submit_donation", nonce: donationData.nonce, amount: a, email: r, is_company: u, current_page: nc_form_don_current_url, resultat: dr.val().trim()},
80                    success: function (n) {
81                        if (n.success) {
82                            var a = e("<form>", {method: "POST", action: n.data.redirect_url});
83                            e.each(n.data.params, function (t, n) {
84                                a.append(e("<input>", {type: "hidden", name: t, value: n}))
85                            }), e("body").append(a), a.submit(), l.prop("disabled", !1).text("Procéder au paiement"), i = e("<div>", {
86                                class: "success-message",
87                                text: "Redirection vers la page de paiement dans un nouvel onglet. Si la page ne s'ouvre pas, vérifiez que les pop-ups ne sont pas bloquées."
88                            }), t.append(i)
89                        } else f(n.data.message || "Une erreur est survenue"), l.prop("disabled", !1).text("Procéder au paiement");
90                    },
91                    error: function () {
92                        f("Erreur de connexion. Veuillez réessayer."), l.prop("disabled", !1).text("Procéder au paiement")
93                    }
94                })) : f("Veuillez saisir une adresse email valide")
95            });
96
97            m();
98        })
99    })
100}(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.