PageSourceSearch

https://soutenir.solidarite-laique.org/b/mon-don?cid=1&_cv=1

html solidarite-laique.org collected 2026-10-02 04:08:46 UTC 122,208 bytes, 2,165 lines download raw bytes

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR">
3<head>
4<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
5<title>Soutenez nos actions</title>
6<meta name="description" content="Soutenez nos actions en effectuant un don" />
7<meta name="keywords" content="association,don,dons,donner,soutenir" />
8<link type="text/css" href="https://soutenir.solidarite-laique.org/themes/default/css/style_v2.css?hash=0bb9c864f817574922b301f24e909104" rel="stylesheet" />
9
10<script type="text/javascript">
11// <![CDATA[
12 const cacheVersion = "26090";
13var gamonitoring_previous_page = sessionStorage.getItem('gamonitoring_previous_page') || document.referrer || "https:\/\/soutenir.solidarite-laique.org";
14var gamonitoring_session_id = sessionStorage.getItem('gamonitoring_session_id') || String(Math.floor(Math.random() * 8999999999) + 1000000000)+'.'+String(Math.floor(Date.now()/1000));
15var gamonitoring_v2_client_id = gamonitoring_session_id;
16var gamonitoring_v2_session_id = gamonitoring_v2_client_id.replace(/^.*\./, '');
17
18    var gamonitoring_sc = '';
19    if(!sessionStorage.getItem('gamonitoring_session_id'))
20        gamonitoring_sc = 'start';
21    if(typeof(monitoringvga)=='undefined'){
22        monitoringvga=1;
23        monitoring_serialize=serialize=function(n){var e=[];for(var o in n)n.hasOwnProperty(o)&&n[o]&&e.push(encodeURIComponent(o)+"="+encodeURIComponent(n[o]));return e.join("&")};
24        try{
25            var head = document.getElementsByTagName('HEAD')[0];
26            document.addEventListener('DOMContentLoaded', function(event) {
27                
28
29                    var monitoringparams = {z:Math.random(),cid:"soutenir.solidarite-laique.org\/"+gamonitoring_session_id,dl:"https:\/\/soutenir.solidarite-laique.org\/SOLLA\/b:steps\/cid=1",sc:gamonitoring_sc,dr:gamonitoring_previous_page,cd:"2026-10-02:06.08.44-6abf2e4c66383",dt:window.location.host+'/'+"donations",ul:"fr-FR",ds:"web",};
30                    var inputs = document.querySelectorAll('input[type=hidden][name=context_form_id]'), i;
31                    
32                    var link_v2 = document.createElement('link');
33                    monitoringparams.cid = gamonitoring_v2_client_id;
34                    monitoringparams.sid = gamonitoring_v2_session_id;
35                                        link_v2.rel = 'stylesheet';
36                    link_v2.type = 'text/css';
37                    link_v2.href = 'https://monitoring.iraiser.eu/v2/check.css?'+monitoring_serialize(monitoringparams);
38                    head.appendChild(link_v2);
39                    var input_v2_client_id = document.createElement("input");
40                    input_v2_client_id.setAttribute("type", "hidden");
41                    input_v2_client_id.setAttribute("name", "private_monitoring_v2_client_id");
42                    input_v2_client_id.setAttribute("value", gamonitoring_v2_client_id);
43                    var input_v2_session_id = document.createElement("input");
44                    input_v2_session_id.setAttribute("type", "hidden");
45                    input_v2_session_id.setAttribute("name", "private_monitoring_v2_session_id");
46                    input_v2_session_id.setAttribute("value", gamonitoring_v2_session_id);
47                
48                for (i = 0; i < inputs.length; ++i) {
49                    inputs[i].parentNode.insertBefore(input_v2_client_id, inputs[i]);
50                    inputs[i].parentNode.insertBefore(input_v2_session_id, inputs[i]);
51                }
52              });
53            window.onerror = function (eventOrMessage, url, lineNumber, colNumber, error) {
54                
55                var monitoringerrorparams = {z:Math.random(),cid:"soutenir.solidarite-laique.org\/"+gamonitoring_session_id,t:"event",ec:"JSError",ev:1,ea:"\/SOLLA\/b:steps\/cid=1\/",};
56                
57                if (!eventOrMessage) {
58                    return;
59                }
60                if (typeof eventOrMessage !== 'string') {
61                    error = eventOrMessage.error;
62                    url = eventOrMessage.filename || eventOrMessage.fileName;
63                    lineNumber = eventOrMessage.lineno || eventOrMessage.lineNumber;
64                    colNumber = eventOrMessage.colno || eventOrMessage.columnNumber;
65                    eventOrMessage = eventOrMessage.message || eventOrMessage.name || error.message || error.name;
66                }
67                if (error && error.stack) {
68                    eventOrMessage = [eventOrMessage, '; Stack: ', error.stack, '.'].join('');
69                }
70                var jsFile = (/[^/]+\.js/i.exec(url || '') || [])[0] || 'inline',
71                eventOrMessage = eventOrMessage.replace(/https?\:\/\/[^/]+/gi, '').replace(/[?&]context_form_[^ &]+/gi, '');
72                stack = [eventOrMessage, ' > ' + jsFile, ':', lineNumber || '?', ':', colNumber || '?'].join('').substring(0,450);
73                monitoringerrorparams.ea += jsFile;
74                monitoringerrorparams.el = stack;
75                
76                    
77                    monitoringerrorparams.cid = gamonitoring_v2_client_id;
78                    monitoringerrorparams.sid = gamonitoring_v2_session_id;
79                    var link_v2 = document.createElement('link');
80                    link_v2.rel = 'stylesheet';
81                    link_v2.type = 'text/css';
82                    link_v2.href = 'https://monitoring.iraiser.eu/v2/error.css?'+monitoring_serialize(monitoringerrorparams);
83                    head.appendChild(link_v2);
84                
85            }
86        } catch (error) {console.error(error);}
87        sessionStorage.setItem('gamonitoring_previous_page',gamonitoring_previous_page);
88        sessionStorage.setItem('gamonitoring_session_id',gamonitoring_session_id);
89    }
90
91// ]]>
92</script>
92<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/jquery-1.11.2.min.js?hash=5790ead7ad3ba27397aedfa3d263b867" ></script>
vendor: 1 bytes, line 92
92
93<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/jquery.patch.min.js?hash=8c3155becb5ec93b830922ca82081911" ></script>
vendor: 1 bytes, line 93
93
94<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/jquery.cookie-1.0.min.js?hash=6f6ed3cd5486dbf3bb9143eea287a6a5" ></script>
vendor: 1 bytes, line 94
94
95<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/dnterrors.min.js?hash=963e9b559d6046553f6886a5d4b49b61" ></script>
vendor: 1 bytes, line 95
95
96<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/jquery.config.min.js?hash=aae7bb01c8a0e6da615dd41aaafab4b5" ></script>
vendor: 1 bytes, line 96
96
97<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/dynamic_form.min.js?hash=d0fa20a4d6821cc2aeba535277ff9b6e" ></script>
vendor: 1 bytes, line 97
97
98<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/visibility-toggle.min.js?hash=780b99b3a0928dcc5ff82ee20f36a435" ></script>
vendor: 1 bytes, line 98
98
99<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/step1.min.js?hash=646b3e2fefe3d9fcf3b9a63c96e570cf" ></script>
vendor: 1 bytes, line 99
99
100<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/step2.min.js?hash=d035c72682b282a43f33cf7e48dc4bb7" ></script>
vendor: 1 bytes, line 100
100
101<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/step3.min.js?hash=6cbdee3e206df521e4ffe5ccd7aba99f" ></script>
vendor: 1 bytes, line 101
101
102<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/steps.min.js?hash=676a05ab0f7d16e826b07dfee858008a" ></script>
vendor: 1 bytes, line 102
102
103<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/payment_button.min.js?hash=b238dd83060ba9692f5ccd77a63835ac" ></script>
vendor: 1 bytes, line 103
103
104<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/iban-validator.min.js?hash=683493897ee764a5c9b485c6412e20d0" ></script>
vendor: 1 bytes, line 104
104
105<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/jquery.ir-priceinput.min.js?hash=07482ff72021c2c53278074abe52347f" ></script>
vendor: 1 bytes, line 105
105
106<script type="text/javascript" src="/themes/default/js/fn-usage-tracker.min.js?v=1" ></script>
vendor: 1 bytes, line 106
106
107<script type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/js/common.min.js?hash=735eaf678c23f50f35606e522ee0a175" ></script>
vendor: 1 bytes, line 107
107
108<script type="text/javascript">
109// <![CDATA[
110                 old_console_log = console.log;
111                if(typeof $.cookie == 'undefined' || !$.cookie('DntManager')){
112                    console.log = function(){};
113                }
114                if(typeof(String.prototype.replaceAll) == 'undefined') String.prototype.replaceAll = String.prototype.replace;
115FnUsageTracker.scriptUrl = "https:\/\/front-monitoring.app.iraiser.eu\/v1\/fn-usage.js";FnUsageTracker.scriptIntegrity = "sha512-houIUfN6dnGaTQrXtzvMezD8WOwEC3If30IVZ\/E7G+moLAn+nygaEv6cZp9phf34Z+b6+CXRAJ2nd1a6UxB0Pg==";FnUsageTracker.sampleRate = "0.1";FnUsageTracker.initFnUsage();
116var ira_form_version = 'b';
117Common.price_pattern = "1,22 \u20ac"
118Common.price_default_currency = "EUR"
119Common.price_campaign_currency = "EUR"
120Common.price_currencies = {"EUR":"\u20ac","USD":"$","AED":"DH","AFN":"AFN","ALL":"Lek","AMD":"AMD","ANG":"ANG","AOA":"Kz","ARS":"$","AUD":"$","AWG":"AWG","AZN":"AZN","BAM":"KM","BBD":"BBD","BDT":"\u09f3","BHD":".\u062f.\u0628 ","BIF":"BIF","BMD":"BMD","BND":"B$","BOB":"BOB","BRL":"R$","BSD":"BSD","BTC":"BTC","BTN":"BTN","BWP":"BWP","BYN":"BYN","BYR":"p.","BZD":"BZD","CAD":"$","CDF":"CDF","CHF":"CHF","CLF":"CLF","CLP":"$","CNY":"CN\u00a5","COP":"$","CRC":"CRC","CUC":"CUC","CUP":"CUP","CVE":"CVE","CYP":"\u00a3","CZK":"K\u010d","DJF":"DJF","DKK":"DKK","DOP":"DOP","DZD":"D.A.","EGP":"E\u00a3","ERN":"ERN","ETB":"ETB","FJD":"FJD","FKP":"FKP","GBP":"\u00a3","GEL":"GEL","GGP":"GGP","GHS":"GH\u20b5","GIP":"GIP","GMD":"GMD","GNF":"GNF","GTQ":"Q","GYD":"GYD","HKD":"$","HNL":"HNL","HRK":"kn","HTG":"HTG","HUF":"Ft","IDR":"Rp","ILS":"\u20aa","IMP":"IMP","INR":"\u20b9","IQD":"\u062f.\u0639","IRR":"IRR","ISK":"kr","JEP":"JEP","JMD":"JMD","JOD":"\u062f.\u0623","JPY":"\u00a5","KES":"KES","KGS":"KGS","KHR":"KHR","KMF":"KMF","KPW":"KPW","KRW":"\u20a9","KWD":"\u062f.\u0643 ","KYD":"KYD","KZT":"KZT","LAK":"LAK","LBP":"\u0644.\u0644.","LKR":"LKR","LRD":"LRD","LSL":"LSL","LTL":"LTL","LVL":"LVL","LYD":"LYD","MAD":"\u062f.\u0645","MDL":"MDL","MGA":"MGA","MKD":"\u0434\u0435\u043d","MMK":"MMK","MNT":"MNT","MOP":"MOP","MRO":"MRO","MUR":"MUR","MVR":"MVR","MWK":"MWK","MXN":"MX$","MYR":"RM","MZN":"MZN","NAD":"NAD","NGN":"\u20a6","NIO":"NIO","NOK":"kr","NPR":"NPR","NZD":"$","OMR":"\u0631.\u0639.","PAB":"PAB","PEN":"S\/.","PGK":"PGK","PHP":"\u20b1","PKR":"\u20a8","PLN":"z\u0142","PYG":"Gs","QAR":"QR","RON":"RON","RSD":"RSD","RUB":"\u0440\u0443\u0431","RWF":"RF","SAR":"SR","SBD":"SBD","SCR":"SCR","SDG":"SDG","SEK":"kr","SGD":"$","SHP":"SHP","SLL":"SLL","SOS":"SOS","SRD":"SRD","STD":"STD","SVC":"SVC","SYP":"SYP","SZL":"SZL","THB":"\u0e3f","TJS":"TJS","TMT":"TMT","TND":"DT","TOP":"TOP","TRY":"\u20ba","TTD":"TTD","TWD":"TWD","TZS":"TZS","UAH":"\u20b4","UGX":"UGX","UYU":"$U","UZS":"UZS","VEF":"VEF","VES":"Bs. S","VND":"\u20ab","VUV":"VUV","WST":"WST","XAF":"FCFA","XAG":"XAG","XAU":"XAU","XCD":"XCD","XDR":"XDR","XOF":"CFA","XPF":"XPF","YER":"YER","ZAR":"R","ZMK":"ZMK","ZMW":"ZK","ZWL":"ZWL"}
121Common.price_rates = {"AED":4.236866,"AFN":74.988531,"ALL":91.695487,"AMD":418.356726,"ANG":2.065498,"AOA":1057.91956,"ARS":1739.654766,"AUD":1.620135,"AWG":2.076613,"AZN":1.95743,"BAM":1.954638,"BBD":2.322919,"BDT":141.97498,"BGN":1.942142,"BHD":0.434841,"BIF":3448.039797,"BMD":1.153674,"BND":1.465867,"BOB":13.903734,"BRL":5.928844,"BSD":1.153314,"BTC":1.4927858e-5,"BTN":110.144042,"BWP":15.598727,"BYN":3.508614,"BYR":22612.013117,"BZD":2.319621,"CAD":1.604022,"CDF":2664.987492,"CHF":0.943054,"CLF":0.027901,"CLP":1101.678141,"CNY":7.741731,"CNH":7.745209,"COP":3594.917836,"CRC":519.491162,"CUC":1.153674,"CUP":30.572365,"CVE":110.199486,"CZK":24.290647,"DJF":205.387897,"DKK":7.47526,"DOP":68.109509,"DZD":154.140988,"EGP":59.883186,"ERN":17.305112,"ETB":188.391501,"EUR":1,"FJD":2.552446,"FKP":0.855023,"GBP":0.856199,"GEL":3.000626,"GGP":0.855023,"GHS":13.246125,"GIP":0.855023,"GMD":85.372255,"GNF":10140.235297,"GTQ":8.807878,"GYD":241.296549,"HKD":9.049149,"HNL":30.955597,"HRK":7.534995,"HTG":150.744955,"HUF":366.842417,"IDR":20395.805097,"ILS":3.514034,"IMP":0.855023,"INR":110.680615,"IQD":1510.895222,"IRR":1585811.628467,"ISK":139.963655,"JEP":0.855023,"JMD":182.011794,"JOD":0.817959,"JPY":178.6764,"KES":149.56209,"KGS":100.888672,"KHR":4676.361765,"KMF":491.465244,"KPW":1038.307092,"KRW":1568.962454,"KWD":0.356093,"KYD":0.961129,"KZT":516.313051,"LAK":25803.659678,"LBP":103735.922549,"LKR":379.564348,"LRD":201.259479,"LSL":18.736761,"LTL":3.4065,"LVL":0.697847,"LYD":7.318649,"MAD":10.9341,"MDL":20.080062,"MGA":4976.041734,"MKD":61.488445,"MMK":2422.087363,"MNT":4152.688475,"MOP":9.31812,"MRU":46.318464,"MUR":54.32717,"MVR":17.778191,"MWK":1999.911049,"MXN":19.796091,"MYR":4.699715,"MZN":73.718216,"NAD":18.736761,"NGN":1528.629342,"NIO":42.44587,"NOK":10.782037,"NPR":176.23123,"NZD":2.002749,"OMR":0.443584,"PAB":1.153314,"PEN":3.876379,"PGK":5.132038,"PHP":72.53726,"PKR":319.738015,"PLN":4.344171,"PYG":6936.876015,"QAR":4.215694,"RON":5.253715,"RSD":117.330991,"RUB":97.599104,"RWF":1701.788284,"SAR":4.328672,"SBD":9.251888,"SCR":15.87915,"SDG":693.941083,"SEK":11.284058,"SGD":1.467698,"SHP":0.854542,"SLE":28.438102,"SLL":24191.960484,"SOS":659.108159,"SRD":43.570841,"STD":23878.725411,"STN":24.485868,"SVC":10.092,"SYP":15000.071444,"SZL":18.722869,"THB":38.40006,"TJS":10.651122,"TMT":4.037859,"TND":3.375493,"TOP":2.77777,"TRY":56.114598,"TTD":7.831344,"TWD":36.761864,"TZS":3058.545852,"UAH":51.481094,"UGX":4521.312072,"USD":1.153674,"UYU":46.452183,"UZS":13574.870882,"VES":970.452202,"VND":29943.035431,"VUV":136.234837,"WST":3.151258,"XAF":655.957,"XAG":0.018286,"XAU":0.000269,"XCD":3.117862,"XCG":2.078655,"XDR":0.815707,"XOF":655.957,"XPF":119.331742,"YER":272.872809,"ZAR":18.811245,"ZMK":10384.449315,"ZMW":22.288749,"ZWL":371.482602,"SSP":633.704955,"MXV":2.244749,"CYP":1.7086,"VEF":3902666.416477}
122Common.price_currency_position = "right"
123Common.price_frequency_texts = {"once":"Don ponctuel","regular":"Don r\u00e9gulier"}
124Common.campaign_default_frequency = "once"
125Step1.tax_reduction_rates =    {"ir":[66],"isf":[75,0],"corp":[60],"custom1":[],"custom2":[]};
126Step1.tax_reduction_ceils =    {"ir":[],"isf":[50000],"corp":[],"custom1":[],"custom2":[]};
127Step1.tax_reduction_notices =  {"ir":"\u00e0 hauteur de 20% du revenu imposable","isf":"","corp":"\u00e0 hauteur de 5\u2030 du chiffre d&#039;affaires annuel","custom1":"","custom2":""};
128Step1.tax_reduction_triggers = {"ir":"0","isf":"0","corp":"0","custom1":"0","custom2":"0"};
129Step1.tax_reduction_exact =    {"ir":false,"isf":false,"corp":false,"custom1":false,"custom2":false};
130Step1.active_tax_reduction = 1;
131Step1.adapt_tax_bloc = false;
132Step1.tax_info = "Votre don co\u00fbte r\u00e9ellement <span class='price'>[amount ir] \u20ac<\/span>. <br \/>Faites un don avant le 31\/12\/26 pour b\u00e9n\u00e9ficier de 66 % de d\u00e9duction fiscale. ";
133Step1.is_french_isf = 0;
134Step1.is_tipping_campaign = 0;
135
136Step1.amount_equivalences = {"once":[],"regular":[]}
137Step1.decimal_sep = ",";
138Step1.min_once_amount = 1;
139Step1.max_once_amount = 100000;
140Step1.min_regular_amount = 1;
141Step1.max_regular_amount = 100000;
142DntErrors.errorMsg.errors = "%s erreurs ont \u00e9t\u00e9 trouv\u00e9es dans le formulaire";
143DntErrors.errorMsg.error = "1 erreur a \u00e9t\u00e9 trouv\u00e9e dans le formulaire";
144DntErrors.errorMsg.choose_amount = "Vous devez choisir un montant pour votre don";
145DntErrors.errorMsg.min_once_amount = "En raison de frais de traitement, le montant minimum accept\u00e9 pour un don est de {min_amount_with_currency} ";
146DntErrors.errorMsg.max_once_amount = "Votre don ne peut pas \u00eatre sup\u00e9rieur \u00e0 {max_amount_with_currency} ";
147DntErrors.errorMsg.min_regular_amount = "En raison de frais de traitement, le montant minimum accept\u00e9 pour un don est de {min_amount_with_currency} ";
148DntErrors.errorMsg.max_regular_amount = "Votre don ne peut pas \u00eatre sup\u00e9rieur \u00e0 {max_amount_with_currency} ";
149DntErrors.errorMsg.errors = "%s erreurs ont \u00e9t\u00e9 trouv\u00e9es dans le formulaire";
150DntErrors.errorMsg.error = "1 erreur a \u00e9t\u00e9 trouv\u00e9e dans le formulaire";
151DntErrors.errorMsg.qualification = "Le champ \u00ab %s \u00bb est obligatoire";
152DntErrors.errorMsg.firstname = "Vous devez saisir votre pr\u00e9nom";
153DntErrors.errorMsg.lastname = "Vous devez saisir votre nom";
154DntErrors.errorMsg.email = "Vous devez saisir une adresse email valide";
155DntErrors.errorMsg.company = "La raison sociale ne doit pas d\u00e9passer 70 caract\u00e8res";
156DntErrors.errorMsg.company_siren = "Le SIREN est vide ou invalide";
157DntErrors.errorMsg.company_status = "La forme juridique est vide ou inconnue";
158DntErrors.errorMsg.address1 = "Vous devez saisir votre adresse";
159DntErrors.errorMsg.postcode = "Vous devez saisir votre code postal (10 caract\u00e8res maximum)";
160DntErrors.errorMsg.city = "Vous devez saisir votre ville";
161DntErrors.errorMsg.civility = "Vous devez s\u00e9lectionner votre civilit\u00e9";
162DntErrors.errorMsg.errors = "%s erreurs ont \u00e9t\u00e9 trouv\u00e9es dans le formulaire";
163DntErrors.errorMsg.error = "1 erreur a \u00e9t\u00e9 trouv\u00e9e dans le formulaire";
164DntErrors.errorMsg.cardtype = "S\u00e9lectionnez votre type de carte bancaire";
165DntErrors.errorMsg.cardnumber = "Saisissez correctement les chiffres de votre carte bancaire";
166DntErrors.errorMsg.cardscode = DntErrors.errorMsg.scode = "Saisissez correctement les chiffres du code de s\u00e9curit\u00e9 situ\u00e9s au dos de votre carte bancaire";
167DntErrors.errorMsg.cardmonth = "S\u00e9lectionnez le mois d'expiration de votre carte bancaire";
168DntErrors.errorMsg.cardyear = "S\u00e9lectionnez l'ann\u00e9e d'expiration de votre carte bancaire";
169DntErrors.errorMsg.gocardless = "Ce mode de paiement implique un montant inf\u00e9rieur \u00e0 5000\u20ac. Merci de diminuer le montant ou de s\u00e9lectionner un autre moyen de paiement";
170DntErrors.errorMsg.ssn = "Veuillez saisir un num\u00e9ro d'identit\u00e9 personnel valide";
171
172Step2.failed_dnt_url = "/index.php?module=donations&action=xhr:attemptSave";
173form_context_lang = "fr_FR";
174form_context_cid = 1;
175
176Step3.alert_msg = "";
177Step3.modal_qualif = "0";
178Step3.modal_qualif_url = "/index.php?module=donations&action=default:modalQualification";
179Step3.modal_save_card = "0";
180Step3.modal_save_card_url = "/index.php?module=donations&action=default:modalSaveCard";
181Step3.modal_save_card_set_url = "/index.php?context_form_id=form_cached_2026-10-02.06:08:44_6abf2e4c661db5.19137028&module=donations&action=default:setSaveCard";
182
183Step3.cards_mastercard_length=16;
184Step3.cards_mastercard_cvvlength=3;
185Step3.cards_mastercard_hasalias=1;
186Step3.cards_visa_length=16;
187Step3.cards_visa_cvvlength=3;
188Step3.cards_visa_hasalias=1;
189
190
191$(document).ready(function() {
192    Step1.init();
193    Step2.init();
194    Steps.init();
195    Steps.submit();
196    
197});
198
199organisation_name = "Solidarit\u00e9 La\u00efque";
200try{ var ira_context_infos = {"form_id":"form_cached_2026-10-02.06:08:44_6abf2e4c661db5.19137028","campaign":1,"version":"b","lang":"fr_FR","amount":{"amount":"0","amount_donation":"0","frequency":"once","free_amount":false,"currency":"EUR","log":"Context initialization in onDntEntryPoint()"},"reserved":"[]","affectation":null,"_cpn_name_":null}; console.warn(ira_context_infos); }catch(err){}
201                try{
202                    $.cookie('dnt_coords',null,{'path':'/','domain':'.soutenir.solidarite-laique.org'});
203                }catch(err){}
204                $(document).ready(function() {
205                    try{
206                        var context_form_input = $("input[name='context_form_id']");
207                        if(context_form_input){
208                            var context_form_val = context_form_input.val();
209                            if(!context_form_val || context_form_val == 'form_cached'){
210                                context_form_input.val("form_cached_"+Math.floor(Math.random() * 1000000000));
211                            }
212                        }
213                        if(typeof ira_form_version != 'undefined'){
214                            $('input[name=lang]').after( $('<input type="hidden" name="form_version" />').val(ira_form_version) );
215                        }
216                        var dnt_amount = {"amount":"0","amount_donation":"0","frequency":"once","free_amount":false,"currency":"EUR","log":"Context initialization in onDntEntryPoint()"};
217                        if(typeof Step1 != 'undefined' && dnt_amount){
218                            Step1.initValues(dnt_amount);
219                        }
220                     }catch(err){}
221                });
222// ]]>
223</script>
223<meta name="viewport" content="width=device-width" />
224<link rel="preconnect" href="https://libs.iraiser.eu" crossorigin />
225<link rel="preconnect" href="https://fonts.googleapis.com" />
226<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
227<link rel="dns-prefetch" href="https://libs.iraiser.eu" />
228<link rel="canonical" href="https://soutenir.solidarite-laique.org/~share?cid=1&lang=fr_FR" />
229<style type="text/css">
230    .regularblock {
231        display:none;
232    }
233
234
235
236body {
237        
238}
239
240#header {
241    background:  url(/cdn.iraiser.eu/i7xZkgX+xqdZ9CFwYD/yVg==/default/origin/SLCFA2023visuelsiRaisersansonglets0001.jpg) no-repeat top left;    height: 166px;}
242
243</style>
244
245<link rel="icon" href="data:image/png;base64,....==">
246<script type='text/javascript'>
247    optionsGlobal = "";
248    optionsCampaign = {"theme":"arya","active_theme":"1","version":"3","font":"Poppins","font_title":"Poppins","fontsize":"","wedge":"0","--body-background-color":"#ECECEC","donation_grid":"1","purchase_grid":"2","layout":"1","widgets_footer":"2","hide_reassurance_1":"0","hide_reassurance_2":"0","security_info_new":"1","hide_mobile_reassurance_1":"1","hide_mobile_reassurance_2":"1","hide_mobile_reassurance_3":"0","logo_position":"1","widgets_progress_bar":"false","live_counter_map_sum":"","live_counter_map_count":"","widgets_progress_bar_currency":"","widgets_color_progress_bar_goal":"#5B5B5B","widgets_progress_bar_goal":"","widgets_progress_bar_add_amount":"","widgets_progress_bar_add_donors":"","widgets_progress_bar_promt_amount":"","widgets_progress_bar_text":"","widgets_progress_bar_text_fr_FR":"","widgets_last_donors":"false","widgets_color_last_donors":"#C20E1A","widgets_last_donors_filter":"80","widgets_last_donors_currency_auto":"1","widgets_last_donors_text":"Un grand merci \u00e0 $n pour son don de $a. ","widgets_last_donors_text_fr_FR":"Un grand merci \u00e0 $n pour son don de $a. ","widgets_co
248okies_banner":"false","widgets_color_cookies_banner":"#5B5B5B","widgets_cookies_banner_text":"","widgets_cookies_banner_text_fr_FR":"","widgets_cookies_banner_button":"","widgets_cookies_banner_button_fr_FR":"","widgets_most_popular_once":"false","widgets_most_popular_once_amount":"50","widgets_most_popular_once_title":"Montant le plus populaire","widgets_most_popular_once_title_fr_FR":"Montant le plus populaire","widgets_most_popular_once_text":"","widgets_most_popular_once_text_fr_FR":"","widgets_most_popular_regular":"false","widgets_most_popular_regular_amount":"20","widgets_most_popular_regular_title":"Montant le plus populaire","widgets_most_popular_regular_title_fr_FR":"Montant le plus populaire","widgets_most_popular_regular_text":"","widgets_most_popular_regular_text_fr_FR":"","--main-action-color":"#C20E1A","--main-action-color-lighter":"#e83e34","--description-color":"#ECECEC","--information-color":"#ECECEC","--column-background-color":"#ECECEC","--banner-color":"#ECECEC","--banner-color-darker":"#a4a4a4"};
249    campaign_id = 1;
250    context_lang = "fr_FR";
251    campaign_stats = {"count":9879,"sum":"97354556","min":100,"max":1000000,"avg":"98.55","progress":"100","last_donators":[{"firstname":"Robert","total":2500,"currency":"EUR","date":"2026-10-01 16:57:00","campaign":1,"city":"WASSELONNE","message":"","avatar":""},{"firstname":"Michel","total":12000,"currency":"EUR","date":"2026-10-01 16:46:00","campaign":1,"city":"MEILLON","message":"","avatar":""},{"firstname":"Jean-Claude","total":10000,"currency":"EUR","date":"2026-10-01 08:17:00","campaign":1,"city":"VERRENS  ARVEY","message":"","avatar":""},{"firstname":"Juliette","total":4000,"currency":"EUR","date":"2026-09-30 12:08:00","campaign":1,"city":"WALLERS","message":"","avatar":""},{"firstname":"Brigitte","total":8000,"currency":"EUR","date":"2026-09-29 16:23:00","campaign":1,"city":"VALENCE","message":"","avatar":""},{"firstname":"Fran\u00e7ois","total":1500,"currency":"EUR","date":"2026-09-29 15:14:00","campaign":1,"city":"MORTEAU 25","message":"","avatar":""},{"firstname":"Marcel et Christine","total":5000,"currency":"EUR","date":"2026-09-28 19:40:00","campaign":1,"city":"ST JACQUES DE LA LANDE","message":"","avatar":""},{"firstname":"ANDRE","total":5000,"currency":"EUR","date":"2026-09-28 12:36:00","campaign":1,"city":"JANVILLE-SUR-JUINE 91510","message":"","avatar":""},{"firstname":"DOMINIQUE","total":3000,"currency":"EUR","date":"2026-09-22 13:19:00","campaign":1,"city":"CHEVILLY-LARUE","message":"","avatar":""},{"firstname":"Anonyme","total":100000,"currency":"EUR","date":"2026-09-19 15:44:00","campaign":1,"city":"BR\u00e9TIGNY-SUR-ORGE","message":"","avatar":""},{"firstname":"Etienne","total":25000,"currency":"EUR","date":"2026-09-18 13:28:00","campaign":1,"city":"TR\u00e9BONS","message":"","avatar":""},{"firstname":"Danielle","total":200000,"currency":"EUR","date":"2026-09-18 10:19:00","campaign":1,"city":"PARIS 11EME ARRONDISSEMENT","message":"","avatar":""},{"firstname":"Andr\u00e9 Louis","total":10000,"currency":"EUR","date":"2026-09-17 13:06:00","campaign":1,"city":"CORBEIL-ESSONNES","message":"","avatar":""},{"firstname":"CATHERINE","total":15000,"currency":"EUR","date":"2026-09-16 21:21:00","campaign":1,"city":"COURBEVOIE","message":"","avatar":""},{"firstname":"Christian","total":5000,"currency":"EUR","date":"2026-09-16 09:59:00","campaign":1,"city":"MARSEILLE","message":"","avatar":""},{"firstname":"ANNE","total":20000,"currency":"EUR","date":"2026-09-24 04:08:00","campaign":1,"city":"ORLEANS","message":"","avatar":""},{"firstname":"Fran\u00e7oise","total":4000,"currency":"EUR","date":"2026-09-15 12:15:00","campaign":1,"city":"ST VINCENT DE MERCUZE","message":"","avatar":""},{"firstname":"Anonyme","total":10000,"currency":"EUR","date":"2026-09-14 12:24:00","campaign":1,"city":"LAROQUE TIMBAUT","message":"","avatar":""},{"firstname":"Chantal","total":5000,"currency":"EUR","date":"2026-09-13 20:20:00","campaign":1,"city":"ALBI","message":"","avatar":""},{"firstname":"AMICALE LA\u00cfQUE DE PLOZ\u00c9VET","total":12000,"currency":"EUR","date":"2026-09-13 16:48:00","campaign":1,"city":"PLOZ\u00e9VET","message":"L'association Amicale la\u00efque de Ploz\u00e9vet souhaite vous apporter son soutien.  Cordialement, le secr\u00e9taire, Fran\u00e7ois Rudent ","avatar":""},{"firstname":"Claude","total":25000,"currency":"EUR","date":"2026-09-12 15:21:00","campaign":1,"city":"MONTPELLIER","message":"","avatar":""},{"firstname":"J\u00e9r\u00f4me","total":2000,"currency":"EUR","date":"2026-09-10 14:38:00","campaign":1,"city":"CREIL","message":"","avatar":""},{"firstname":"Philippe","total":40000,"currency":"EUR","date":"2026-09-09 22:14:00","campaign":1,"city":"SAINT-CYR L'ECOLE","message":"","avatar":""},{"firstname":"CHRISTIANE ET JEAN-PIERRE","total":6000,"currency":"EUR","date":"2026-09-09 14:46:00","campaign":1,"city":"BOURGES","message":"","avatar":""},{"firstname":"Anne","total":100000,"currency":"EUR","date":"2026-09-16 04:15:00","campaign":1,"city":"SAINT EGREVE","message":"","avatar":""},{"firstname":"Florence","total":5000,"currency":"EUR","date":"2026-09-07 10:01:00","campaign":1,"city":"COGOLIN","message":"","avatar":""},{"firstname":"ANDRE","total":5000,"currency":"EUR","date":"2026-09-06 14:25:00","campaign":1,"city":"ANNECY","message":"","avatar":""},{"firstname":"CHRISTINE","total":10000,"currency":"EUR","date":"2026-09-06 11:39:00","campaign":1,"city":"FONTENAY SOUS BOIS","message":"","avatar":""},{"firstname":"GILLES","total":6000,"currency":"EUR","date":"2026-09-06 11:26:00","campaign":1,"city":"MARSEILLE","message":"","avatar":""},{"firstname":"Daniele","total":5000,"currency":"EUR","date":"2026-09-05 10:00:00","campaign":1,"city":"NOYERS","message":"","avatar":""},{"firstname":"Marc","total":2000,"currency":"EUR","date":"2026-09-05 05:43:00","campaign":1,"city":"VILLARD-DE-LANS","message":"","avatar":""},{"firstname":"Vincent","total":2000,"currency":"EUR","date":"2026-09-15 04:33:00","campaign":1,"city":"MONTAUBAN","message":"","avatar":""},{"firstname":"Anonyme","total":500,"currency":"EUR","date":"2026-09-05 05:43:00","campaign":1,"city":"VANVES","message":"","avatar":""},{"firstname":"Yoan","total":4000,"currency":"EUR","date":"2026-09-15 04:23:00","campaign":1,"city":"AVENTIGNAN","message":"","avatar":""},{"firstname":"Anonyme","total":600,"currency":"EUR","date":"2026-09-15 04:10:00","campaign":1,"city":"CENON","message":"","avatar":""},{"firstname":"jean marie","total":1500,"currency":"EUR","date":"2026-09-05 05:42:00","campaign":1,"city":"BOURGES","message":"","avatar":""},{"firstname":"Sandra et Jean Marc","total":1000,"currency":"EUR","date":"2026-09-15 04:08:00","campaign":1,"city":"PIBRAC","message":"","avatar":""},{"firstname":"Michel","total":1000,"currency":"EUR","date":"2026-09-15 04:15:00","campaign":1,"city":"RENNES","message":"","avatar":""},{"firstname":"Emeline","total":2000,"currency":"EUR","date":"2026-09-15 04:20:00","campaign":1,"city":"CHATEAUROUX","message":"","avatar":""},{"firstname":"LAURENT","total":1000,"currency":"EUR","date":"2026-09-15 04:10:00","campaign":1,"city":"GELOS","message":"","avatar":""},{"firstname":"Francoise","total":3500,"currency":"EUR","date":"2026-09-15 04:23:00","campaign":1,"city":"LES CLAYES-SOUS-BOIS","message":"","avatar":""},{"firstname":"Anonyme","total":1000,"currency":"EUR","date":"2026-09-15 04:09:00","campaign":1,"city":"CESTAS","message":"","avatar":""},{"firstname":"LAURENCE","total":5000,"currency":"EUR","date":"2026-09-05 05:42:00","campaign":1,"city":"FONTENAY SOUS BOIS","message":"","avatar":""},{"firstname":"NELLY","total":2000,"currency":"EUR","date":"2026-09-15 04:33:00","campaign":1,"city":"RAMONVILLE ST AGNE","message":"","avatar":""},{"firstname":"Eric","total":2000,"currency":"EUR","date":"2026-09-15 04:32:00","campaign":1,"city":"LA CROIX-VALMER","message":"","avatar":""},{"firstname":"NELLY","total":700,"currency":"EUR","date":"2026-09-15 04:12:00","campaign":1,"city":"ALFORTVILLE","message":"","avatar":""},{"firstname":"Gail","total":2500,"currency":"EUR","date":"2026-09-15 04:07:00","campaign":1,"city":"TOULOUSE","message":"","avatar":""},{"firstname":"Serge","total":1000,"currency":"EUR","date":"2026-09-05 05:42:00","campaign":1,"city":"ISSIRAC","message":"","avatar":""},{"firstname":"Alain","total":2000,"currency":"EUR","date":"2026-09-15 04:07:00","campaign":1,"city":"DOM\u00e8NE","message":"","avatar":""},{"firstname":"Fran\u00e7oise","total":1500,"currency":"EUR","date":"2026-09-15 04:09:00","campaign":1,"city":"NANCY","message":"","avatar":""}],"date_cache":"2026-10-02"};
252    campaign_stats_last_donators = [{"firstname":"Robert","total":2500,"currency":"EUR","date":"2026-10-01 16:57:00","campaign":1,"city":"WASSELONNE","message":"","avatar":""},{"firstname":"Michel","total":12000,"currency":"EUR","date":"2026-10-01 16:46:00","campaign":1,"city":"MEILLON","message":"","avatar":""},{"firstname":"Jean-Claude","total":10000,"currency":"EUR","date":"2026-10-01 08:17:00","campaign":1,"city":"VERRENS  ARVEY","message":"","avatar":""},{"firstname":"Juliette","total":4000,"currency":"EUR","date":"2026-09-30 12:08:00","campaign":1,"city":"WALLERS","message":"","avatar":""},{"firstname":"Brigitte","total":8000,"currency":"EUR","date":"2026-09-29 16:23:00","campaign":1,"city":"VALENCE","message":"","avatar":""},{"firstname":"Fran\u00e7ois","total":1500,"currency":"EUR","date":"2026-09-29 15:14:00","campaign":1,"city":"MORTEAU 25","message":"","avatar":""},{"firstname":"Marcel et Christine","total":5000,"currency":"EUR","date":"2026-09-28 19:40:00","campaign":1,"city":"ST JACQUES DE LA LANDE","message":"","avatar":""},{"firstname":"ANDRE","total":5000,"currency":"EUR","date":"2026-09-28 12:36:00","campaign":1,"city":"JANVILLE-SUR-JUINE 91510","message":"","avatar":""},{"firstname":"DOMINIQUE","total":3000,"currency":"EUR","date":"2026-09-22 13:19:00","campaign":1,"city":"CHEVILLY-LARUE","message":"","avatar":""},{"firstname":"Anonyme","total":100000,"currency":"EUR","date":"2026-09-19 15:44:00","campaign":1,"city":"BR\u00e9TIGNY-SUR-ORGE","message":"","avatar":""},{"firstname":"Etienne","total":25000,"currency":"EUR","date":"2026-09-18 13:28:00","campaign":1,"city":"TR\u00e9BONS","message":"","avatar":""},{"firstname":"Danielle","total":200000,"currency":"EUR","date":"2026-09-18 10:19:00","campaign":1,"city":"PARIS 11EME ARRONDISSEMENT","message":"","avatar":""},{"firstname":"Andr\u00e9 Louis","total":10000,"currency":"EUR","date":"2026-09-17 13:06:00","campaign":1,"city":"CORBEIL-ESSONNES","message":"","avatar":""},{"firstname":"CATHERINE","total":15000,"currency":"EUR","date":"2026-09-16 21:21:00","campaign":1,"city":"COURBEVOIE","message":"","avatar":""},{"firstname":"Christian","total":5000,"currency":"EUR","date":"2026-09-16 09
252:59:00","campaign":1,"city":"MARSEILLE","message":"","avatar":""},{"firstname":"ANNE","total":20000,"currency":"EUR","date":"2026-09-24 04:08:00","campaign":1,"city":"ORLEANS","message":"","avatar":""},{"firstname":"Fran\u00e7oise","total":4000,"currency":"EUR","date":"2026-09-15 12:15:00","campaign":1,"city":"ST VINCENT DE MERCUZE","message":"","avatar":""},{"firstname":"Anonyme","total":10000,"currency":"EUR","date":"2026-09-14 12:24:00","campaign":1,"city":"LAROQUE TIMBAUT","message":"","avatar":""},{"firstname":"Chantal","total":5000,"currency":"EUR","date":"2026-09-13 20:20:00","campaign":1,"city":"ALBI","message":"","avatar":""},{"firstname":"AMICALE LA\u00cfQUE DE PLOZ\u00c9VET","total":12000,"currency":"EUR","date":"2026-09-13 16:48:00","campaign":1,"city":"PLOZ\u00e9VET","message":"L'association Amicale la\u00efque de Ploz\u00e9vet souhaite vous apporter son soutien.  Cordialement, le secr\u00e9taire, Fran\u00e7ois Rudent ","avatar":""},{"firstname":"Claude","total":25000,"currency":"EUR","date":"2026-09-12 15:21:00","campaign":1,"city":"MONTPELLIER","message":"","avatar":""},{"firstname":"J\u00e9r\u00f4me","total":2000,"currency":"EUR","date":"2026-09-10 14:38:00","campaign":1,"city":"CREIL","message":"","avatar":""},{"firstname":"Philippe","total":40000,"currency":"EUR","date":"2026-09-09 22:14:00","campaign":1,"city":"SAINT-CYR L'ECOLE","message":"","avatar":""},{"firstname":"CHRISTIANE ET JEAN-PIERRE","total":6000,"currency":"EUR","date":"2026-09-09 14:46:00","campaign":1,"city":"BOURGES","message":"","avatar":""},{"firstname":"Anne","total":100000,"currency":"EUR","date":"2026-09-16 04:15:00","campaign":1,"city":"SAINT EGREVE","message":"","avatar":""},{"firstname":"Florence","total":5000,"currency":"EUR","date":"2026-09-07 10:01:00","campaign":1,"city":"COGOLIN","message":"","avatar":""},{"firstname":"ANDRE","total":5000,"currency":"EUR","date":"2026-09-06 14:25:00","campaign":1,"city":"ANNECY","message":"","avatar":""},{"firstname":"CHRISTINE","total":10000,"currency":"EUR","date":"2026-09-06 11:39:00","campaign":1,"city":"FONTENAY SOUS BOIS","message":"","avatar":""},{"firstname":"GILLES","total":6000,"currency":"EUR","date":"2026-09-06 11:26:00","campaign":1,"city":"MARSEILLE","message":"","avatar":""},{"firstname":"Daniele","total":5000,"currency":"EUR","date":"2026-09-05 10:00:00","campaign":1,"city":"NOYERS","message":"","avatar":""},{"firstname":"Marc","total":2000,"currency":"EUR","date":"2026-09-05 05:43:00","campaign":1,"city":"VILLARD-DE-LANS","message":"","avatar":""},{"firstname":"Vincent","total":2000,"currency":"EUR","date":"2026-09-15 04:33:00","campaign":1,"city":"MONTAUBAN","message":"","avatar":""},{"firstname":"Anonyme","total":500,"currency":"EUR","date":"2026-09-05 05:43:00","campaign":1,"city":"VANVES","message":"","avatar":""},{"firstname":"Yoan","total":4000,"currency":"EUR","date":"2026-09-15 04:23:00","campaign":1,"city":"AVENTIGNAN","message":"","avatar":""},{"firstname":"Anonyme","total":600,"currency":"EUR","date":"2026-09-15 04:10:00","campaign":1,"city":"CENON","message":"","avatar":""},{"firstname":"jean marie","total":1500,"currency":"EUR","date":"2026-09-05 05:42:00","campaign":1,"city":"BOURGES","message":"","avatar":""},{"firstname":"Sandra et Jean Marc","total":1000,"currency":"EUR","date":"2026-09-15 04:08:00","campaign":1,"city":"PIBRAC","message":"","avatar":""},{"firstname":"Michel","total":1000,"currency":"EUR","date":"2026-09-15 04:15:00","campaign":1,"city":"RENNES","message":"","avatar":""},{"firstname":"Emeline","total":2000,"currency":"EUR","date":"2026-09-15 04:20:00","campaign":1,"city":"CHATEAUROUX","message":"","avatar":""},{"firstname":"LAURENT","total":1000,"currency":"EUR","date":"2026-09-15 04:10:00","campaign":1,"city":"GELOS","message":"","avatar":""},{"firstname":"Francoise","total":3500,"currency":"EUR","date":"2026-09-15 04:23:00","campaign":1,"city":"LES CLAYES-SOUS-BOIS","message":"","avatar":""},{"firstname":"Anonyme","total":1000,"currency":"EUR","date":"2026-09-15 04:09:00","campaign":1,"city":"CESTAS","message":"","avatar":""},{"firstname":"LAURENCE","total":5000,"currency":"EUR","date":"2026-09-05 05:42:00","campaign":1,"city":"FONTENAY SOUS BOIS","message":"","avatar":""},{"firstname":"NELLY","total":2000,"currency":"EUR","date":"2026-09-15 04:33:00","campaign":1,"city":"RAMONVILLE ST AGNE","message":"","avatar":""},{"firstname":"Eric","total":2000,"currency":"EUR","date":"2026-09-15 04:32:00","campaign":1,"city":"LA CROIX-VALMER","message":"","avatar":""},{"firstname":"NELLY","total":700,"currency":"EUR","date":"2026-09-15 04:12:00","campaign":1,"city":"ALFORTVILLE","message":"","avatar":""},{"firstname":"Gail","total":2500,"currency":"EUR","date":"2026-09-15 04:07:00","campaign":1,"city":"TOULOUSE","message":"","avatar":""},{"firstname":"Serge","total":1000,"currency":"EUR","date":"2026-09-05 05:42:00","campaign":1,"city":"ISSIRAC","message":"","avatar":""},{"firstname":"Alain","total":2000,"currency":"EUR","date":"2026-09-15 04:07:00","campaign":1,"city":"DOM\u00e8NE","message":"","avatar":""},{"firstname":"Fran\u00e7oise","total":1500,"currency":"EUR","date":"2026-09-15 04:09:00","campaign":1,"city":"NANCY","message":"","avatar":""}];
253    campaign_currency = "EUR";
254    iraiser_counter = '';
255    client_livecounter = "sollaique";
256    bymonth = 'par mois';
257    i18n = [];
258    checkoutPage = '';
259</script>
vendor: 1 bytes, line 259
259
260<script id="javascript_arya" type="text/javascript" src="https://soutenir.solidarite-laique.org/themes/default/arya/dist/v3/arya.js?v=26090" ></script>
260
261<link type="text/css" href="https://soutenir.solidarite-laique.org/themes/default/arya/dist/v3/arya.css?v=26090" rel="stylesheet" />
262<!-- Landing redirection -->
263
264
265  <!-- Entree du formulaire de don uniquement : les controleurs de version a, b et c,
266       plus default qui aiguille vers eux. Toute autre page servie avec ce header reste
267       intacte, au premier chef la page de remerciement (default:thanks). -->
268  
269  
270    <!-- status active : landing publiee, tout le monde y va -->
271    
272    <!-- status config : page non publique, mais un admin connecte au BO y est envoye
273         pour voir sa landing et son diagnostic. Le pipe is_connected rend 1 ou 0, donc
274         on compare explicitement au lieu de tester la presence. -->
275    
276    <!-- Aucun autre cas ne redirige : status inactive, ligne absente, ou plugin
277         decoche laissent le formulaire standard servir normalement. -->
278  
279  
280
281<!-- Landing redirection -->
282
283
284<!-- embed #266166879423 -->
285
286
287   
287<script class='keep'>
288   var Embed_form_vars = {
289       current_method: "steps",
290       private_window: "",
291       private_embed_form_bus: "",
292       private_embed_form_version: "",
293       steps_text_next: ("" || "Passer \u00e0 l'\u00e9tape suivante" || 'next'),
294       logo_name: "\/cdn.iraiser.eu\/i7xZkgX+xqdZ9CFwYD\/yVg==\/default\/origin\/SLCFA2023visuelsiRaiserlogofond.jpg",
295       banner_image: "\/cdn.iraiser.eu\/i7xZkgX+xqdZ9CFwYD\/yVg==\/default\/origin\/SLCFA2023visuelsiRaisersansonglets0001.jpg",
296       video_url: "",
297       header_info: ""
298   };
299   </script>
299
300   
300<script type="text/javascript" src="/libs.iraiser.eu/libs/payment/frame/embed_core.js" ></script>
300
301
302
303
304<!-- widget-impact SRV-648 -->
305
306<!-- /widget-impact SRV-648 -->
307
308</head><body class="loading-improvements" id="type-b" >
309
310<div id="container">
311
312	<div id="header" class="line">
313        <div class="container" id="header_wrapinner">
314            <div id="logo" class="unit size3of4">
315            
316                <h1>
317                    <a href="https://www.solidarite-laique.org/" title="Solidarité Laïque" target="_blank" rel="noopener noreferrer">
318                        <span class="screen-reader-only">Solidarité Laïque</span>
319                        <img src="/cdn.iraiser.eu/i7xZkgX+xqdZ9CFwYD/yVg==/default/origin/SLCFA2023visuelsiRaiserlogofond.jpg" alt="page d&#039;accueil de Solidarité Laïque" fetchpriority="high"/>
320                    </a>
321                </h1>
322            
323            </div>  <!-- End Logo -->
324
325                    </div>
326    </div> <!-- End Header -->
327
328    <div id="_wait">
329        <div id="floatingCirclesG">
330            <div class="f_circleG" id="frotateG_01"></div>
331            <div class="f_circleG" id="frotateG_02"></div>
332            <div class="f_circleG" id="frotateG_03"></div>
333            <div class="f_circleG" id="frotateG_04"></div>
334            <div class="f_circleG" id="frotateG_05"></div>
335            <div class="f_circleG" id="frotateG_06"></div>
336            <div class="f_circleG" id="frotateG_07"></div>
337            <div class="f_circleG" id="frotateG_08"></div>
338        </div>
339    </div>
340
341    <div id="main" class="line">
342
343        <div class="container" id="main_wrapinner">
344                                        
345                <noscript>
346            </noscript>
347
348    
349        <form action="/b/steps/save" method="post" id="form-steps" autocomplete="off">
350
351    <input type="hidden" name="context_form" value="" />
352<input type="hidden" name="context_form_id" value="" />
353<input type="hidden" name="cid" value="1" />
354<input type="hidden" name="lang" value="fr_FR" />
355<input type="hidden" name="scope" value="" id="scope"/>
356
357<input id="useragent_input_0" type="hidden" name="private_user_agent_cli" value=""/>
358<script type="text/javascript">
359    document.getElementById("useragent_input_0").value = navigator.userAgent;
360</script>
360
361<input id="referer_input_0" type="hidden" name="private_referer" value=""/>
362<script type="text/javascript">
363    document.getElementById("referer_input_0").value = document.referrer;
364</script>
364
365<input id="random_input_0" type="hidden" name="private_random" value=""/>
366<script type="text/javascript">
367    document.getElementById("random_input_0").value = Math.random();
368    setTimeout(function(){ document.getElementById("random_input_0").value = Math.random(); }, 3000);
369</script>
369
370
371    <div id="step-1" class="unit size1of3">
372        <div class="step-container">
373            <div class="step-title">
374                <h2>1. Choisissez</h2>
375            </div>
376
377            <div class="step-content">
378                
379            <div>
380                
381            </div>
382
383                            
384                                <div id="once" class="bloc">
385                    <div class="bloc-content">
386                        <h3>Don ponctuel</h3>                        
387                        <div id="bloc-amount-once">
388    
389    <fieldset class="amount">
390    
391                        <ul class="radio-inline line" id="amount-list-once">
392                
393                                        <li><label><span id="value_of_amount-once-5000"><data class='price_amount'>50</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="5000" id="amount-once-5000" /></label></li>
394                
395                                        <li><label><span id="value_of_amount-once-10000"><data class='price_amount'>100</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="10000" id="amount-once-10000" /></label></li>
396                
397                                        <li><label><span id="value_of_amount-once-25000"><data class='price_amount'>250</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="25000" id="amount-once-25000" /></label></li>
398                
399                                        <li><label><span id="value_of_amount-once-65000"><data class='price_amount'>650</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="65000" id="amount-once-65000" /></label></li>
400                
401            </ul>
402                </fieldset>
403
404    <div class="amount-equivalences">
405        <p class="amount-equivalences-img"></p>
406        <p class="amount-equivalences-description"></p>
407    </div>
408
409        <fieldset class="free-amount">
410        <p><label>Montant libre                <input autocomplete="section-famount" name="famount-once" type="text" size="6" id="famount-once" />
411        <span class="price_currency">€</span>
412        </label></p>
413    </fieldset>
414    
415    <p class="tax-info"></p>
416    <!--<input type="hidden" value="" name="iraiser_analytics_session_id" id="iraiser_analytics_session_id"/>-->
417    
418    <input type="hidden" name="referrer" />
419    
419<script type="text/javascript">
420        try{
421            $("input[name=referrer]").val(document.referrer);
422            if(document.location.search.indexOf('_cv')>1) {
423                $('input[name=referrer]').after($('<input type="hidden" name="query_string" />').val(document.location.search.substring(1)));
424            }
425        }catch(e){}
426    </script>
426
427    
428
429</div>                    </div>
430                </div> <!-- End Once -->
431                
432                <div class="onceblock">
433                    
434
435                </div>
436
437                <div id="or">
438                    <p>ou</p>
439                </div>
440
441                                <div id="regular" class="bloc">
442                    <div class="bloc-content">
443                        <h3>Don régulier</h3>                        
444                        <div id="bloc-amount-regular">
445    
446    <fieldset class="amount">
447    
448                        <ul class="radio-inline line" id="amount-list-regular">
449                
450                                        <li><label><span id="value_of_amount-regular-1000"><data class='price_amount'>10</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-regular" type="radio" value="1000" id="amount-regular-1000" /></label></li>
451                
452                                        <li><label><span id="value_of_amount-regular-2000"><data class='price_amount'>20</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-regular" type="radio" value="2000" id="amount-regular-2000" /></label></li>
453                
454                                        <li><label><span id="value_of_amount-regular-5000"><data class='price_amount'>50</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-regular" type="radio" value="5000" id="amount-regular-5000" /></label></li>
455                
456            </ul>
457                </fieldset>
458
459    <div class="amount-equivalences">
460        <p class="amount-equivalences-img"></p>
461        <p class="amount-equivalences-description"></p>
462    </div>
463
464        <fieldset class="free-amount">
465        <p><label>Montant libre                <input autocomplete="section-famount" name="famount-regular" type="text" size="6" id="famount-regular" />
466        <span class="price_currency">€</span>
467        </label></p>
468    </fieldset>
469    
470    <p class="tax-info"></p>
471    <!--<input type="hidden" value="" name="iraiser_analytics_session_id" id="iraiser_analytics_session_id"/>-->
472    
473    <input type="hidden" name="referrer" />
474    
474<script type="text/javascript">
475        try{
476            $("input[name=referrer]").val(document.referrer);
477            if(document.location.search.indexOf('_cv')>1) {
478                $('input[name=referrer]').after($('<input type="hidden" name="query_string" />').val(document.location.search.substring(1)));
479            }
480        }catch(e){}
481    </script>
481
482    
483
484</div>                    </div>
485                </div> <!-- End Each-month -->
486                
487                <div class="regularblock">
488                    
489
490                </div>
491
492            
493            
494            <div>
495                
496            </div>
497
498            
499
500            </div> <!-- End Step-content -->
501
502            <div class="step-info">
503                <h4>Pourquoi donner ?</h4>
504                <div class="step-info-body">
505                    Nous sommes une Union de 40 organisations engag&eacute;es pour la promotion de l’&eacute;cole publique, l’&eacute;ducation populaire et l’&eacute;conomie sociale et solidaire.<br />
506 <br />
507Notre mission depuis 1956 : faire que chaque citoyen.ne b&eacute;n&eacute;ficie d’une &eacute;ducation de qualit&eacute; tout au long de la vie, pour bien vivre ensemble, librement, dans un monde plus juste, plus durable et en paix.<br />
508 <br />
509Populaire, inclusive, &eacute;galitaire, la&iuml;que, gratuite… L’&eacute;ducation ne s’arr&ecirc;te pas aux bancs de l’&eacute;cole. Le sport, la culture ou encore l’art favorisent l’ouverture &agrave; l’autre et la confiance en soi. Ce sont de puissants leviers vers l’&eacute;mancipation individuelle et l’action collective pour plus de justice sociale.<br />
510 <br />
511Avec le soutien de nos donateurs et donatrices, des centaines de partenaires publics et priv&eacute;s dans une vingtaine de pays, ainsi que le soutien de l’Agence fran&ccedil;aise de d&eacute;veloppement, nous militons pour faire avancer la cause de l’&eacute;ducation et pour que les politiques publiques garantissent ce droit.
512                </div>
513            </div> <!-- End Step-info -->
514        </div> <!-- End Step-container -->
515    </div> <!-- End Step-1 -->
516
517    <div id="step-2" class="unit size1of3">
518    <div class="step-container">
519        <div class="step-title">
520            <h2>2. Complétez</h2>
521        </div>
522
523        <div class="step-content">
524            
525            
526            <fieldset id="fieldset-step2">
527
528                
529                
530
531                                    <p id="c-email">
532                        <label for="email">
533                            Email 
534                            <span class="required">*</span> 
535                            <span class="help">
536                                                                    ex. [email protected]                                                            </span>
537                        </label>
538                        <input type="text" name="email" id="email" />
539                    </p>
540                
541                
542
543                <fieldset id="fielset-name">
544                        <p id="c-isc">
545        <label>
546            <input type="checkbox" value="OK" name="iscompany" id="iscompany" /> 
547            Je fais un don au nom d'une organisation ou d'une société        </label>
548    </p>
549    <p id="c-isc-inf" class="company-infos hidden">
550        <label for="company">Raison sociale            <span class="required">*</span>            <span class="help">
551                                    ex. Dupond SARL                            </span>
552        </label>
553        <input type="text" name="company" id="company"
554            class="required_for_company"            />
555    </p>
556        
557    
558                                            <p id="c-civ">
559                            <label for="civility">
560                                Civilité 
561                                <span class="required">*</span>
562                            </label>
563                            <select name="civility" id="civility">
564    <option value=""></option>
565    <option value="1">M</option>
566    <option value="2">Mme</option>
567    <option value="5">M et Mme</option>
568
569</select>                        </p>
570                                                                <p id="c-fname">
571                            <label for="firstname">Prénom 
572                                <span class="required">*</span> <span class="help">
573                                                                            ex. Bernard                                                                    </span>
574                            </label>
575                            <input type="text" name="firstname" id="firstname" autocomplete="given-name" />
576                        </p>
577                                                                <p id="c-lname">
578                            <label for="lastname">
579                                Nom 
580                                <span class="required">*</span> 
581                                <span class="help">
582                                                                            ex. Dupond                                                                    </span>
583                            </label>
584                            <input type="text" name="lastname" id="lastname" autocomplete="family-name"  />
585                        </p>
586                                    </fieldset>
587
588                
589
590                <fieldset id="fielset-address">
591                                                                <p id="c-addr1">
592                            <label for="address1">
593                                Adresse 
594                                <span class="required">*</span> 
595                                <span class="help">
596                                                                            ex. 15 rue Jean Jaurès                                                                    </span>
597                            </label>
598                            <input type="text" name="address1" id="address1" />
599                        </p>
600                                                                <p id="c-addr2">
601                            <label for="address2">
602                                Complément adresse 
603                                <span class="help">
604                                                                            ex. Bât. B                                                                    </span>
605                            </label>
606                            <input type="text" name="address2" id="address2" />
607                        </p>
608                                                            <div class="line">
609                                                    <p id="c-pcode" class="unit size1of2">
610                                <label for="postcode">
611                                    Code postal 
612                                    <span class="required">*</span>
613                                    <span class="help">
614                                                                                    ex. 75008                                                                            </span>
615                                </label>
616                                <input type="text" name="postcode" id="postcode" />
617                            </p>
618                                                                            <p id="c-city" class="unit size2of2 lastUnit">
619                                <label for="city">
620                                    Ville 
621                                    <span class="required">*</span> 
622                                    <span class="help">
623                                                                                    ex. Paris                                                                            </span>
624                                </label>
625                                <input type="text" name="city" id="city" />
626                            </p>
627                                            </div>
628                                                                <p id="c-country">
629                            <label for="country">
630                                Pays 
631                                <span class="required">*</span> 
632                                <span class="help">
633                                                                            ex. France                                                                    </span>
634                            </label>
635                                                            <select name="country" id="country">
636            <option value="FI">FINLANDE</option>
637            <option value="FR">FRANCE</option>
638            <option value="LU">LUXEMBOURG</option>
639            <option value="MA">MAROC</option>
640            <option value="MQ">MARTINIQUE</option>
641    
642    <option value="">----------------------------------</option>
643    <option value="AF">AFGHANISTAN</option>
644    <option value="ZA">AFRIQUE DU SUD</option>
645    <option value="AX">ÅLAND, ÎLES</option>
646    <option value="AL">ALBANIE</option>
647    <option value="DZ">ALGÉRIE</option>
648    <option value="DE">ALLEMAGNE</option>
649    <option value="AD">ANDORRE</option>
650    <option value="AO">ANGOLA</option>
651    <option value="AI">ANGUILLA</option>
652    <option value="AQ">ANTARCTIQUE</option>
653    <option value="AG">ANTIGUA-ET-BARBUDA</option>
654    <option value="AN">ANTILLES NÉERLANDAISES</option>
655    <option value="SA">ARABIE SAOUDITE</option>
656    <option value="AR">ARGENTINE</option>
657    <option value="AM">ARMÉNIE</option>
658    <option value="AW">ARUBA</option>
659    <option value="AU">AUSTRALIE</option>
660    <option value="AT">AUTRICHE</option>
661    <option value="AZ">AZERBAÏDJAN</option>
662    <option value="BS">BAHAMAS</option>
663    <option value="BH">BAHREÏN</option>
664    <option value="BD">BANGLADESH</option>
665    <option value="BB">BARBADE</option>
666    <option value="BY">BÉLARUS</option>
667    <option value="BE">BELGIQUE</option>
668    <option value="BZ">BELIZE</option>
669    <option value="BJ">BÉNIN</option>
670    <option value="BM">BERMUDES</option>
671    <option value="BT">BHOUTAN</option>
672    <option value="BO">BOLIVIE, l'ÉTAT PLURINATIONAL DE</option>
673    <option value="BA">BOSNIE-HERZÉGOVINE</option>
674    <option value="BW">BOTSWANA</option>
675    <option value="BV">BOUVET, ÎLE</option>
676    <option value="BR">BRÉSIL</option>
677    <option value="BN">BRUNÉI DARUSSALAM</option>
678    <option value="BG">BULGARIE</option>
679    <option value="BF">BURKINA FASO</option>
680    <option value="BI">BURUNDI</option>
681    <option value="KY">CAÏMANES, ÎLES</option>
682    <option value="KH">CAMBODGE</option>
683    <option value="CM">CAMEROUN</option>
684    <option value="CA">CANADA</option>
685    <option value="CV">CAP-VERT</option>
686    <option value="CF">CENTRAFRICAINE, RÉPUBLIQUE</option>
687    <option value="CL">CHILI</option>
688    <option value="CN">CHINE</option>
689    <option value="CX">CHRISTMAS, ÎLE</option>
690    <option value="CY">CHYPRE</option>
691    <option value="CC">COCOS (KEELING), ÎLES</option>
692    <option value="CO">COLOMBIE</option>
693    <option value="KM">COMORES</option>
694    <option value="CG">CONGO</option>
695    <option value="CD">CONGO, LA RÉPUBLIQUE DÉMOCRATIQUE DU</option>
696    <option value="CK">COOK, ÎLES</option>
697    <option value="KR">CORÉE, RÉPUBLIQUE DE</option>
698    <option value="KP">CORÉE, RÉPUBLIQUE POPULAIRE DÉMOCRATIQUE DE</option>
699    <option value="CR">COSTA RICA</option>
700    <option value="CI">CÔTE D'IVOIRE</option>
701    <option value="HR">CROATIE</option>
702    <option value="CU">CUBA</option>
703    <option value="DK">DANEMARK</option>
704    <option value="DJ">DJIBOUTI</option>
705    <option value="DO">DOMINICAINE, RÉPUBLIQUE</option>
706    <option value="DM">DOMINIQUE</option>
707    <option value="EG">ÉGYPTE</option>
708    <option value="SV">EL SALVADOR</option>
709    <option value="AE">ÉMIRATS ARABES UNIS</option>
710    <option value="EC">ÉQUATEUR</option>
711    <option value="ER">ÉRYTHRÉE</option>
712    <option value="ES">ESPAGNE</option>
713    <option value="EE">ESTONIE</option>
714    <option value="US"  selected="selected">ÉTATS-UNIS</option>
715    <option value="ET">ÉTHIOPIE</option>
716    <option value="FK">FALKLAND, ÎLES (MALVINAS)</option>
717    <option value="FO">FÉROÉ, ÎLES</option>
718    <option value="FJ">
718FIDJI</option>
719    <option value="FI">FINLANDE</option>
720    <option value="FR">FRANCE</option>
721    <option value="GA">GABON</option>
722    <option value="GM">GAMBIE</option>
723    <option value="GE">GÉORGIE</option>
724    <option value="GS">GÉORGIE DU SUD ET LES ÎLES SANDWICH DU SUD</option>
725    <option value="GH">GHANA</option>
726    <option value="GI">GIBRALTAR</option>
727    <option value="GR">GRÈCE</option>
728    <option value="GD">GRENADE</option>
729    <option value="GL">GROENLAND</option>
730    <option value="GP">GUADELOUPE</option>
731    <option value="GU">GUAM</option>
732    <option value="GT">GUATEMALA</option>
733    <option value="GG">GUERNESEY</option>
734    <option value="GN">GUINÉE</option>
735    <option value="GQ">GUINÉE ÉQUATORIALE</option>
736    <option value="GW">GUINÉE-BISSAU</option>
737    <option value="GY">GUYANA</option>
738    <option value="GF">GUYANE FRANÇAISE</option>
739    <option value="HT">HAÏTI</option>
740    <option value="HM">HEARD, ÎLE ET MCDONALD, ÎLES</option>
741    <option value="HN">HONDURAS</option>
742    <option value="HK">HONG-KONG</option>
743    <option value="HU">HONGRIE</option>
744    <option value="IM">ÎLE DE MAN</option>
745    <option value="UM">ÎLES MINEURES ÉLOIGNÉES DES ÉTATS-UNIS</option>
746    <option value="VG">ÎLES VIERGES BRITANNIQUES</option>
747    <option value="VI">ÎLES VIERGES DES ÉTATS-UNIS</option>
748    <option value="IN">INDE</option>
749    <option value="ID">INDONÉSIE</option>
750    <option value="IR">IRAN, RÉPUBLIQUE ISLAMIQUE D'</option>
751    <option value="IQ">IRAQ</option>
752    <option value="IE">IRLANDE</option>
753    <option value="IS">ISLANDE</option>
754    <option value="IL">ISRAËL</option>
755    <option value="IT">ITALIE</option>
756    <option value="JM">JAMAÏQUE</option>
757    <option value="JP">JAPON</option>
758    <option value="JE">JERSEY</option>
759    <option value="JO">JORDANIE</option>
760    <option value="KZ">KAZAKHSTAN</option>
761    <option value="KE">KENYA</option>
762    <option value="KG">KIRGHIZISTAN</option>
763    <option value="KI">KIRIBATI</option>
764    <option value="KW">KOWEÏT</option>
765    <option value="LA">LAO, RÉPUBLIQUE DÉMOCRATIQUE POPULAIRE</option>
766    <option value="LS">LESOTHO</option>
767    <option value="LV">LETTONIE</option>
768    <option value="LB">LIBAN</option>
769    <option value="LR">LIBÉRIA</option>
770    <option value="LY">LIBYENNE, JAMAHIRIYA ARABE</option>
771    <option value="LI">LIECHTENSTEIN</option>
772    <option value="LT">LITUANIE</option>
773    <option value="LU">LUXEMBOURG</option>
774    <option value="MO">MACAO</option>
775    <option value="MK">MACÉDOINE, L'EX-RÉPUBLIQUE YOUGOSLAVE DE</option>
776    <option value="MG">MADAGASCAR</option>
777    <option value="MY">MALAISIE</option>
778    <option value="MW">MALAWI</option>
779    <option value="MV">MALDIVES</option>
780    <option value="ML">MALI</option>
781    <option value="MT">MALTE</option>
782    <option value="MP">MARIANNES DU NORD, ÎLES</option>
783    <option value="MA">MAROC</option>
784    <option value="MH">MARSHALL, ÎLES</option>
785    <option value="MQ">MARTINIQUE</option>
786    <option value="MU">MAURICE</option>
787    <option value="MR">MAURITANIE</option>
788    <option value="YT">MAYOTTE</option>
789    <option value="MX">MEXIQUE</option>
790    <option value="FM">MICRONÉSIE, ÉTATS FÉDÉRÉS DE</option>
791    <option value="MD">MOLDOVA, RÉPUBLIQUE DE</option>
792    <option value="MC">MONACO</option>
793    <option value="MN">MONGOLIE</option>
794    <option value="ME">MONTÉNÉGRO</option>
795    <option value="MS">MONTSERRAT</option>
796    <option value="MZ">MOZAMBIQUE</option>
797    <option value="MM">MYANMAR</option>
798    <option value="NA">NAMIBIE</option>
799    <option value="NR">NAURU</option>
800    <option value="NP">NÉPAL</option>
801    <option value="NI">NICARAGUA</option>
802    <option value="NE">NIGER</option>
803    <option value="NG">NIGÉRIA</option>
804    <option value="NU">NIUÉ</option>
805    <option value="NF">NORFOLK, ÎLE</option>
806    <option value="NO">NORVÈGE</option>
807    <option value="NC">NOUVELLE-CALÉDONIE</option>
808    <option value="NZ">NOUVELLE-ZÉLANDE</option>
809    <option value="IO">OCÉAN INDIEN, TERRITOIRE BRITANNIQUE DE L'</option>
810    <option value="OM">OMAN</option>
811    <option value="UG">OUGANDA</option>
812    <option value="UZ">OUZBÉKISTAN</option>
813    <option value="PK">PAKISTAN</option>
814    <option value="PW">PALAOS</option>
815    <option value="PS">PALESTINIEN OCCUPÉ, TERRITOIRE</option>
816    <option value="PA">PANAMA</option>
817    <option value="PG">PAPOUASIE-NOUVELLE-GUINÉE</option>
818    <option value="PY">PARAGUAY</option>
819    <option value="NL">PAYS-BAS</option>
820    <option value="PE">PÉROU</option>
821    <option value="PH">PHILIPPINES</option>
822    <option value="PN">PITCAIRN</option>
823    <option value="PL">POLOGNE</option>
824    <option value="PF">POLYNÉSIE FRANÇAISE</option>
825    <option value="PR">PORTO RICO</option>
826    <option value="PT">PORTUGAL</option>
827    <option value="QA">QATAR</option>
828    <option value="RE">RÉUNION</option>
829    <option value="RO">ROUMANIE</option>
830    <option value="GB">ROYAUME-UNI</option>
831    <option value="RU">RUSSIE, FÉDÉRATION DE</option>
832    <option value="RW">RWANDA</option>
833    <option value="EH">SAHARA OCCIDENTAL</option>
834    <option value="BL">SAINT-BARTHÉLEMY</option>
835    <option value="KN">SAINT-KITTS-ET-NEVIS</option>
836    <option value="SM">SAINT-MARIN</option>
837    <option value="MF">SAINT-MARTIN</option>
838    <option value="PM">SAINT-PIERRE-ET-MIQUELON</option>
839    <option value="VA">SAINT-SIÈGE (ÉTAT DE LA CITÉ DU VATICAN)</option>
840    <option value="VC">SAINT-VINCENT-ET-LES GRENADINES</option>
841    <option value="SH">SAINTE-HÉLÈNE, ASCENSION ET TRISTAN DA CUNHA</option>
842    <option value="LC">SAINTE-LUCIE</option>
843    <option value="SB">SALOMON, ÎLES</option>
844    <option value="WS">SAMOA</option>
845    <option value="AS">SAMOA AMÉRICAINES</option>
846    <option value="ST">SAO TOMÉ-ET-PRINCIPE</option>
847    <option value="SN">SÉNÉGAL</option>
848    <option value="RS">SERBIE</option>
849    <option value="SC">SEYCHELLES</option>
850    <option value="SL">SIERRA LEONE</option>
851    <option value="SG">SINGAPOUR</option>
852    <option value="SK">SLOVAQUIE</option>
853    <option value="SI">SLOVÉNIE</option>
854    <option value="SO">
854SOMALIE</option>
855    <option value="SD">SOUDAN</option>
856    <option value="LK">SRI LANKA</option>
857    <option value="SE">SUÈDE</option>
858    <option value="CH">SUISSE</option>
859    <option value="SR">SURINAME</option>
860    <option value="SJ">SVALBARD ET ÎLE JAN MAYEN</option>
861    <option value="SZ">SWAZILAND</option>
862    <option value="SY">SYRIENNE, RÉPUBLIQUE ARABE</option>
863    <option value="TJ">TADJIKISTAN</option>
864    <option value="TW">TAÏWAN, PROVINCE DE CHINE</option>
865    <option value="TZ">TANZANIE, RÉPUBLIQUE-UNIE DE</option>
866    <option value="TD">TCHAD</option>
867    <option value="CZ">TCHÈQUE, RÉPUBLIQUE</option>
868    <option value="TF">TERRES AUSTRALES FRANÇAISES</option>
869    <option value="TH">THAÏLANDE</option>
870    <option value="TL">TIMOR-LESTE</option>
871    <option value="TG">TOGO</option>
872    <option value="TK">TOKELAU</option>
873    <option value="TO">TONGA</option>
874    <option value="TT">TRINITÉ-ET-TOBAGO</option>
875    <option value="TN">TUNISIE</option>
876    <option value="TM">TURKMÉNISTAN</option>
877    <option value="TC">TURKS ET CAÏQUES, ÎLES</option>
878    <option value="TR">TURQUIE</option>
879    <option value="TV">TUVALU</option>
880    <option value="UA">UKRAINE</option>
881    <option value="UY">URUGUAY</option>
882    <option value="VU">VANUATU</option>
883    <option value="VE">VENEZUELA, RÉPUBLIQUE BOLIVARIENNE DU</option>
884    <option value="VN">VIET NAM</option>
885    <option value="WF">WALLIS ET FUTUNA</option>
886    <option value="YE">YÉMEN</option>
887    <option value="ZM">ZAMBIE</option>
888    <option value="ZW">ZIMBABWE</option>
889
890</select>
891                                                    </p>
892                                            <!-- FindMyAddress not enabled on this campaign -->
893                </fieldset>
894                
895
896                <p id="required-info">
897                    <span class="required">*</span> 
898                    <span class="help">
899                        Champs obligatoires 
900                                                    (ces informations sont indispensables pour bénéficier de votre réduction fiscale)                                            </span>
901                </p>
902
903            </fieldset>
904
905        </div> <!-- End Bloc -->
906
907        <div class="step-info">
908            <h4>Respect de votre vie privée</h4>
909            <div class="step-info-body">
910                <p>En effectuant un don, vous acceptez que les informations collect&eacute;es par Solidarit&eacute; La&iuml;que fassent l’objet d’un traitement informatique &agrave; des fins de gestion interne, pour r&eacute;pondre &agrave; vos demandes et faire appel &agrave; votre g&eacute;n&eacute;rosit&eacute;.<br />
911Ces donn&eacute;es sont conserv&eacute;es pendant la dur&eacute;e n&eacute;cessaire aux finalit&eacute;s pr&eacute;cit&eacute;es et communiqu&eacute;es &agrave; nos services habilit&eacute;s &agrave; les traiter ainsi qu’ aux tiers mandat&eacute;s par Solidarit&eacute; La&iuml;que.</p>
912
913<ul>
914	<li>Si vous ne souhaitez pas que votre adresse soit &eacute;chang&eacute;e,</li>
915	<li>Pour faire valoir vos droits d’acc&egrave;s, de rectification, d’effacement, d’opposition, de limitation et de portabilit&eacute; conform&eacute;ment &agrave; la r&eacute;glementation en vigueur,</li>
916</ul>
917Contacter Solidarit&eacute; La&iuml;que par t&eacute;l&eacute;phone 01 45 35 13 13, par email <a href="mailto:[email protected]">[email protected]</a>, ou par courrier. Vous pouvez introduire une r&eacute;clamation aupr&egrave;s de la CNIL (<a href="http://www.cnil.fr" target="_blank">www.cnil.fr</a>).
918
919<p>Solidarité Laïque<br />
92022 rue Corvisart<br />
92175013 PARIS - France<br />
922T&eacute;l: +33 1 45 35 13 13</p>
923
924            </div>
925        </div> <!-- End Step-info -->
926    </div> <!-- End Step-container -->
927</div> <!-- End Step-2 -->
928
929    <div id="step-3" class="unit size1of3 lastUnit">
930    <div class="step-container">
931        <div class="step-title">
932            <h2>3. Confirmez </h2>
933        </div>
934        <div class="step-content">
935                                        <div id="security-info">
936    <p>Paiements sécurisés avec les derniers protocoles de chiffrement, conçus pour respecter les normes les plus élevées de l’industrie.</p>
937</div>
938                        
939            
940            
941
942            <div class="payment">
943                <div id="payment_modes_once">
944            
945
946
947    <input type="hidden" name="paymentNonce" id="paymentNonce" value="" autocomplete="off"/>
948    <input type="hidden" name="stripeErrorCode" id="stripeErrorCode" value="" autocomplete="off"/>
949    <input type="hidden" name="stripeError" id="stripeError" value="" autocomplete="off"/>
950
951
952    <fieldset id="payment_mode-card" class="payment_mode">
953        <h4 class="payment_head">
954            <span class="payment_mode_title">Paiement par Carte Bancaire</span>
955        </h4>
956        <div class="payment_body" id="creditcard">
957            
958                        <p id="card-number">
959                                    <label for="stripe_creditcard_cardNumber_placeholder_once">Saisissez votre numéro de carte bancaire</label>
960                    <input type="text" id="stripe_creditcard_cardNumber_placeholder_once" autocomplete="off"/>
961                            </p>
962
963                            <div class="line">
964                    <p id="card-expiry" class="unit size1of2">
965                        <label for="stripe_creditcard_cardExpiry_placeholder_once">Date d'expiration</label>
966                        <input type="text" id="stripe_creditcard_cardExpiry_placeholder_once" autocomplete="off"/>
967                                </p>
968
969                                <p id="card-scode" class="unit size2of2 lastUnit">
970                        <label for="stripe_creditcard_cardCvc_placeholder_once">Code de sécurité</label>
971                        <input type="text" id="stripe_creditcard_cardCvc_placeholder_once" autocomplete="off"/>
972                                    <span class="help">Le code de sécurité est constitué des 3 derniers chiffres inscrits au dos de votre carte bancaire</span>
973                        <span class="help amex"
974                            style="display: none;">Le code de sécurité est constitué des 4 derniers chiffres inscrits au recto de votre carte bancaire</span>
975                    </p>
976
977                            </div>
978                
979
980
981
982
983<script type="text/javascript">
984    if (!window.stripeJsLoaded) {
985        window.stripeJsLoaded = new Promise((resolve, reject) => {
986            const s = document.createElement('script');
987            s.src = 'https://js.stripe.com/v3/';
988            s.type = 'text/javascript';
989            s.onerror = reject;
990            s.onload = resolve;
991            document.head.appendChild(s);
992        });
993    }
994</script>
994
995
996<input type="hidden" name="stripe_creditcard_paymentMethod" id="stripe_creditcard_paymentMethod_once"
997    data-scope="stripe" data-required = "1" data-ira-check="window.stripe_creditcard.checkPaymentMethod('once')"/>
998<script>
999    var stripeElementGetFrequency = () => Step1.current_donation.frequency;
1000    
1001    if (!window.stripe_creditcard) {
1002        const VAL_ERROR = 'error';
1003        const VAL_NOT_SET = 'N/A';
1004
1005        const defaultCoords = {};
1006
1007        
1008
1009                    defaultCoords["firstname"] = null; 
1010                    defaultCoords["lastname"] = null; 
1011                    defaultCoords["email"] = null; 
1012        
1013        const defaultPaymentMethodErrorMessage = "Les coordonn&eacute;es bancaires saisies sont incorrectes. Merci de les v&eacute;rifier et de les saisir &agrave; nouveau.";
1014        const lang = "fr_FR";
1015        const cardCvcPlaceholder = "Use the value provided by Stripe";
1016        const stripePublicApiKey = "pk_live_srqYyZqem3SpTx2GjUycaPjN";
1017        const stripeApiVersion = "2020-08-27";
1018        
1019
1020        const coordNames = Object.keys(defaultCoords);
1021
1022        const elementConf = {
1023            'cardNumber': {
1024                defaultErrorMessage: DntErrors.errorMsg.cardnumber,
1025                options: {showIcon: true},
1026            },
1027            'cardExpiry': {
1028                defaultErrorMessage: DntErrors.errorMsg.cardmonth,
1029            },
1030            'cardCvc': {
1031                defaultErrorMessage: DntErrors.errorMsg.cardscode,
1032            },
1033        };
1034        // only add a CVC placeholder for languages which have a short CVC provided
1035        if (cardCvcPlaceholder != 'Use the value provided by Stripe') {
1036            elementConf.cardCvc.options = {placeholder: cardCvcPlaceholder};
1037        }
1038        const elementTypes = Object.keys(elementConf);
1039
1040        window.stripe_creditcard = {
1041            complete: {},
1042            elements: {},
1043            error: {},
1044            frequencies: {},
1045            lastInitFrequency: '',
1046            stripe: false,
1047
1048            checkElement: function(frequency, elementType) {
1049                this.log('checkElement', [frequency, elementType]);
1050                if (frequency !== this.lastInitFrequency) return false;
1051
1052                const complete = this.complete[frequency][elementType];
1053                const error = this.error[frequency][elementType];
1054                const placeholder = $('#' + this.getPlaceholderId(frequency, elementType));
1055
1056                if (!complete || error) {
1057                    placeholder.attr('data-ira-errormsg', error && error.message
1058                        ? error.message
1059                        : elementConf[elementType].defaultErrorMessage
1060                    );
1061                    return false;
1062                } else {
1063                    placeholder.removeAttr('data-ira-errormsg');
1064                    return true;
1065                }
1066            },
1067
1068            checkPaymentMethod: function(frequency) {
1069                this.log('checkPaymentMethod', [frequency]);
1070                if (frequency !== this.lastInitFrequency) return false;
1071
1072                const paymentMethodInput = this.getPaymentMethodInput(frequency);
1073                
1074                if (paymentMethodInput.val() === VAL_ERROR) {
1075                    paymentMethodInput.attr('data-ira-errormsg', this.error[frequency].paymentMethod || defaultPaymentMethodErrorMessage);
1076                    return false;
1077                } else {
1078                    paymentMethodInput.removeAttr('data-ira-errormsg');
1079                    return true;
1080                }
1081            },
1082
1083            createPaymentMethod: function (frequency) {
1084                if (frequency !== this.lastInitFrequency) return;
1085                this.log('createPaymentMethod', [frequency]);
1086
1087                const paymentMethodInput = this.resetPaymentMethod(frequency);
1088
1089                for (let elementType of elementTypes) {
1090                    if (!this.complete[frequency][elementType]) return;
1091                }
1092
1093                const coords = {};
1094                for (let coordName of coordNames) {
1095                    const coordInput = $('input[name="' + coordName + '"]');
1096                    coords[coordName] = coordInput.length ? coordInput.val() : defaultCoords[coordName];
1097                    if (!coords[coordName]) return;
1098                }
1099
1100                // All other inputs we rely on are ok and won't trigger any error message display,
1101                // so until createPaymentMethod succeds, we must ensure paymentMethodInput does
1102                paymentMethodInput.val(VAL_ERROR);
1103
1104                // Prevent form submission before createPaymentMethod answers
1105                $('#stripe_submit.' + frequency).prop('disabled', true);
1106                setTimeout(() => {
1107                    try {
1108                        this.stripe.createPaymentMethod({
1109                            type: 'card',
1110                            card: this.elements[frequency].cardNumber,
1111                            billing_details: {
1112                                name: coords.firstname + ' ' + co
1112ords.lastname,
1113                                email: coords.email,
1114                            }
1115                        }).then(result => {
1116                            $('#stripe_submit.' + frequency).prop('disabled', false);
1117                            console.log(result);
1118
1119                            if (result.paymentMethod && result.paymentMethod.id) {
1120                                paymentMethodInput.val(result.paymentMethod.id);
1121                                console.log('paymentMethod = ' + paymentMethodInput.val());
1122                            } else {
1123                                this.error[frequency].paymentMethod = result.error.message;
1124                                for (let prop of ['type', 'code', 'decline_code', 'message']) {
1125                                    window.onerror('createPaymentMethod error.' + prop + ' = ' + result.error[prop]);
1126                                }
1127                            }
1128                        });
1129                    } catch (e) {
1130                        console.log(e);
1131                        $('#stripe_submit.' + frequency).prop('disabled', false);
1132                    }
1133                }, 500);
1134               
1135            },
1136
1137            getContainerId: function(frequency, elementType) {
1138                return 'stripe_creditcard_' + elementType + '_container_' + frequency;
1139            },
1140
1141            getPaymentMethodInput: function(frequency) {
1142                return $('#stripe_creditcard_paymentMethod_' + frequency);
1143            },
1144
1145            getPlaceholderId: function(frequency, elementType) {
1146                return 'stripe_creditcard_' + elementType + '_placeholder_' + frequency;
1147            },
1148
1149            /**
1150             * Build an array of Stripe JS CssFontSource objects
1151             * from the fonts used by the specified elements.
1152             *
1153             * See https://stripe.com/docs/js/appendix/css_font_source_object
1154             *
1155             * Warning: works only for fonts loaded from a google-style stylesheet URL
1156             * with a family=xxx parameter (where xxx is the font-family)
1157             */
1158            getStripeJsCssFontSources: function(ids) {
1159                try {
1160                    const used = {};
1161                    for (let id of ids) {
1162                        const computedStyle = window.getComputedStyle(document.getElementById(id));
1163                        const fontFamily = computedStyle.getPropertyValue('font-family');
1164                        used[fontFamily] = true;
1165                    }
1166
1167                    const hrefs = [];
1168                    for (let s of document.styleSheets) {
1169                        if (!s.href) continue;
1170                        const params = new URLSearchParams(new URL(s.href).search);
1171                        const fontFamily = params.get('family');
1172                        if (used[fontFamily] && (hrefs.indexOf(s.href) === -1)) {
1173                            hrefs.push(s.href);
1174                        }
1175                    }
1176                    return hrefs.map(href => ({cssSrc: href}));
1177                } catch (error) {
1178                    /**
1179                     * Stripe Element implementation has javascript incompatibility with Opera browser.
1180                     * We work around this problem by catching exceptions in getStripeJsCssFontSources and returning an empty list.
1181                     * This fix will have an impact on the design of Stripe Elements, but it will not block the creation of donations.
1182                     */
1183                    return [];
1184                }
1185            },
1186
1187            /**
1188             * Get the locale as expected by Stripe JS
1189             * 
1190             * See https://stripe.com/docs/js/appendix/supported_locales
1191             */
1192            getStripeJsLocale: function () {
1193                switch(lang) {
1194                    case 'en_EN':
1195                        return 'en-GB';
1196                    case 'se_SE':
1197                        return 'sv';
1198                    case 'zh_TW':
1199                        return lang.substring(0, 2) + '-' + lang.substring(3, 5);
1200                    default:
1201                        return lang.substring(0, 2);
1202                }
1203            },
1204
1205            /**
1206             * Build a Stripe JS Style object from the specified element's computed style
1207             * and copy all other styles to the provided container.
1208             *
1209             * See https://stripe.com/docs/js/appendix/style
1210             */
1211            getStripeJsStyle: function(id, container) {
1212                const styleKeyMap = {
1213                    // Stripe JS recommands setting background-color on the container
1214                    //'background-color': 'backgroundColor',
1215                    'color': 'color',
1216                    'font-family': 'fontFamily',
1217                    'font-size': 'fontSize',
1218                    'font-smoothing': 'fontSmoothing',
1219                    'font-style': 'fontStyle',
1220                    'font-variant': 'fontVariant',
1221                    'font-weight': 'fontWeight',
1222                    // Stripe JS doesn't like line-height and doesn't even take it into account
1223                    //'line-height': 'lineHeight',
1224                    'letter-spacing': 'letterSpacing',
1225                    'text-align': 'textAlign',
1226                    'text-decoration': 'textDecoration',
1227                    'text-shadow': 'textShadow',
1228                    'text-transform': 'textTransform',
1229                };
1230                const baseStyle = {};
1231                const computedStyle = window.getComputedStyle(document.getElementById(id));
1232                for (let cssProp of computedStyle) {
1233                    const styleKey = styleKeyMap[cssProp];
1234                    const cssValue = computedStyle.getPropertyValue(cssProp);
1235                    if (styleKey) {
1236                        baseStyle[styleKey] = cssValue;
1237                    } else {
1238                        container.css(cssProp, cssValue);
1239                    }
1240                }
1241                return {base: baseStyle};
1242            },
1243
1244            init: function (reason) {
1245                const frequency = stripeElementGetFrequency();
1246                if (!this.frequencies[frequency]) return;
1247                this.log('init', [frequency, reason]);
1248
1249                // Stripe elements are reset at every init so we need to reset as well
1250                this.complete[frequency] = {};
1251                this.error[frequency] = {};
1252                this.resetPaymentMethod(frequency);
1253                this.lastInitFrequency = frequency;
1254
1255                this.mount(frequency);
1256            },
1257
1258            isMounted: function(frequency) {
1259                return !!this.elements[frequency];
1260            },
1261
1262            log: function (method, params = []) {
1263                console.log('stripe_creditcard.' + method + '(' + params.join(', ') + ')');
1264            },
1265
1266            mount: function (frequency) {
1267                const wasAlreadyMounted = this.unmount(frequency);
1268                this.log('mount', [frequency]);
1269
1270                if (!this.stripe) {
1271                    this.stripe = Stripe(stripePublicApiKey, {
1272                        locale: this.getStripeJsLocale(), 
1273                        apiVersion: stripeApiVersion 
1274                        });
1275                }
1276
1277                const stripeElements = this.stripe.elements({
1278                    fonts: this.getStripeJsCssFontSources(
1279                        elementTypes.map(elementType => this.getPlaceholderId(frequency, elementType))
1280                    ),
1281                });
1282                
1283                this.elements[frequency] = {};
1284                for (let elementType of elementTypes) {
1285                    const placeholderId = this.getPlaceholderId(frequency, elementType);
1286
1287                    const containerId = this.getContainerId(frequency, elementType);
1288                    const container = $('<span/>').attr('id', containerId);
1289
1290                    const element = stripeElements.create(elementType, Object.assign(
1291                        {style: this.getStripeJsStyle(placeholderId, container)},
1292                        elementConf[elementType].options
1293                    ));
1294                    this.elements[frequency][elementType] = element;
1295
1296                    $('#' + placeholderId)
1297                        .attr('data-scope', 'stripe')
1298                        .attr('data-required', '1')
1299                        .attr('data-ira-check', "window.stripe_creditcard.checkElement('" + frequency + "', '" + elementType + "')")
1300                        .val(VAL_NOT_SET)
1301                        .hide()
1302                        .after(container);
1303                    element.mount('#' + containerId);
1304                    
1305                    // Stripe creates an intermediate div between the container and its iframe
1306                    // Let's force this div's contents to be vertically centered inside the container
1307                    $('#' + containerId + ' div').css({
1308                        display: 'flex',
1309                        height: '100%',
1310                        'align-items': 'center',
1311                    });
1312
1313                    element.on('change', ev => this.onElementChanged(frequency, ev, placeholderId));
1314                }
1315
1316                if (!wasAlreadyMounted) {
1317                    for (let coordName of coordNames) {
1318                        $('input[name="' + coordName + '"]').on('change', () => this.createPaymentMethod(frequency));
1319                    }
1320                    // Force a re-init if the payment mode was previously hidden
1321                    // as Stripe does not mount well hidden fields
1322                    const cvcPlaceholderId = this.getPlaceholderId(frequency, 'cardCvc');
1323                    $('#payment_mode-card:has(#' + cvcPlaceholderId + ')').on('payment_shown', () => this.init('payment_shown'));
1324                }
1325            },
1326
1327            unmount: function (frequency) {
1328                if (!this.isMounted(frequency)) return false;
1329                this.log('unmount', [frequency]);
1330
1331                for (let elementType of elementTypes) {
1332                    this.elements[frequency][elementType].destroy();
1333                    $('#' + this.getContainerId(frequency, elementType)).remove();
1334                    $('#' + this.getPlaceholderId(frequency, elementType)).show();
1335                }
1336                return true;
1337            },
1338
1339            onElementChanged: function (frequency, ev, placeholderId) {
1340                this.log('onElementChanged', [
1341                    frequency,
1342                    ev.elementType,
1343                    ev.complete ? 'complete' : 'not complete',
1344                    ev.error ? ev.error.message : 'no error',
1345                ]);
1346                this.complete[frequency][ev.elementType] = ev.complete;
1347                this.error[frequency][ev.elementType] = ev.error;
1348
1349                this.createPaymentMethod(frequency);
1350                Common.toggleDisplayErrorInput($("#" + placeholderId), !!ev.error);
1351            },
1352        
1353            resetPaymentMethod: function (frequency) {
1354                const paymentMethodInput = this.getPaymentMethodInput(frequency);
1355                paymentMethodInput.val(VAL_NOT_SET);
1356                this.error[frequency].paymentMethod = false;
1357                return paymentMethodInput;
1358            },
1359        };
1360
1361        window.stripeJsLoaded.then(() => {
1362            // Force a reinit when the donation amount or the style change
1363            for (let event of ['init_done', 'WebFont.fontactive']) {
1364                $('body').on(event, () => window.stripe_creditcard.init(event));
1365            }
1366        });
1367    }
1368
1369    if (!window.stripe_creditcard.frequencies["once"]) {
1370        window.stripe_creditcard.frequencies["once"] = true;
1371        window.stripeJsLoaded.then(() => {
1372            // Ensure the 1st init is done only once, for the active frequency
1373            if (stripeElementGetFrequency() === "once") {
1374                window.stripe_creditcard.init("stripeJsLoaded");
1375            }
1376        });
1377    }
1378    
1379</script>
1379
1380            
1381            
1382
1383            <p id="card-submit" class="payment-submit">
1384                <input
1385    name="stripe_submit"
1386    type="submit"
1387    value="Valider"
1388    data-no_amount_txt="Valider"
1389    data-once_txt="Valider"
1390    data-regular_txt="Valider"
1391    id="stripe_submit"
1392    class="button payment-button once"
1393    
1394        data-scope="stripe"
1395    
1396/>
1397            </p>
1398        </div>
1399    </fieldset>
1400
1401                        <!-- STANDARD BUTTONS -->
1402    <fieldset id="payment_mode-gw_paypal_paypal"
1403        class="payment_mode "
1404        
1405    >
1406        <h4 class="payment_head">
1407            <span class="payment_mode_title">Paypal</span>
1408        </h4>
1409        <div class="payment_body" id="gw_paypal_paypal">
1410
1411            
1412
1413
1414                            	
1415
1416    
1417
1418    
1419
1420    
1421
1422    
1423
1424    
1425
1426
1427	
1428
1429    
1430
1431	<!-- GOCARDLESS BACS SPECIFIC TEXT & CHECKBOX (must be checked to submit payment) -->
1432	<!-- LEGAL UK REQUIREMENTS FOR BANK MANDATES -->
1433                
1434            <input name="type" type="hidden" value="" data-scope="gw_paypal_paypal"/>
1435            <input name="mode" type="hidden" value="gw_paypal_paypal" data-scope="gw_paypal_paypal"/>
1436
1437            <p id="gw_paypal_paypal-submit" class="payment-submit gateway">
1438                <input
1439    name="gw_paypal_paypal_submit"
1440    type="submit"
1441    value="Valider"
1442    data-no_amount_txt="Valider"
1443    data-once_txt="Valider"
1444    data-regular_txt="Valider"
1445    id="gw_paypal_paypal_submit"
1446    class="button payment-button gateway"
1447    
1448        data-scope="gw_paypal_paypal"
1449    
1450/>
1451
1452            </p>
1453
1454            
1455
1456        </div>
1457    </fieldset>
1458
1459
1460                
1461<fieldset id="payment_mode-iban" class="payment_mode">
1462    <h4 class="payment_head">
1463        <span class="payment_mode_title">Paiement par IBAN/BIC</span>
1464    </h4>
1465    <div class="payment_body" id="iban">
1466                    
1467        
1468        <p id="iban-input">
1469            <label for="iban-number">Votre numéro IBAN</label>
1470            <input type="text" name="iban-number" id="iban-number" maxlength="34" autocomplete="off" 
1471                data-required="1" 
1472                data-ira-check="IBANValidator.validate($('#iban-number').val()).valid" 
1473                data-ira-errormsg-empty="Le champ IBAN est obligatoire"
1474                data-ira-errormsg-invalid="Vous devez saisir un num&eacute;ro IBAN valide"
1475                data-scope='stripe_sepa_debit'            />
1476        </p>
1477
1478        
1479                    
1480        
1481        <p id="iban-submit" class="payment-submit">
1482
1483                                        
1484            <input
1485    name="stripe_sepa_debit_submit"
1486    type="submit"
1487    value="Valider"
1488    data-no_amount_txt="Valider"
1489    data-once_txt="Valider"
1490    data-regular_txt="Valider"
1491    id="iban_submit"
1492    class="button payment-button "
1493    
1494        data-scope="stripe_sepa_debit"
1495    
1496/>
1497        </p>
1498    </div>
1499</fieldset>
1500
1501    </div>
1502
1503<div id="payment_modes_regular" style="display:none">
1504
1505
1506            
1507
1508
1509    <input type="hidden" name="paymentNonce" id="paymentNonce" value="" autocomplete="off"/>
1510    <input type="hidden" name="stripeErrorCode" id="stripeErrorCode" value="" autocomplete="off"/>
1511    <input type="hidden" name="stripeError" id="stripeError" value="" autocomplete="off"/>
1512
1513
1514    <fieldset id="payment_mode-card" class="payment_mode">
1515        <h4 class="payment_head">
1516            <span class="payment_mode_title">Paiement par Carte Bancaire</span>
1517        </h4>
1518        <div class="payment_body" id="creditcard">
1519            
1520                        <p id="card-number">
1521                                    <label for="stripe_creditcard_cardNumber_placeholder_regular">Saisissez votre numéro de carte bancaire</label>
1522                    <input type="text" id="stripe_creditcard_cardNumber_placeholder_regular" autocomplete="off"/>
1523                            </p>
1524
1525                            <div class="line">
1526                    <p id="card-expiry" class="unit size1of2">
1527                        <label for="stripe_creditcard_cardExpiry_placeholder_regular">Date d'expiration</label>
1528                        <input type="text" id="stripe_creditcard_cardExpiry_placeholder_regular" autocomplete="off"/>
1529                                </p>
1530
1531                                <p id="card-scode" class="unit size2of2 lastUnit">
1532                        <label for="stripe_creditcard_cardCvc_placeholder_regular">Code de sécurité</label>
1533                        <input type="text" id="stripe_creditcard_cardCvc_placeholder_regular" autocomplete="off"/>
1534                                    <span class="help">Le code de sécurité est constitué des 3 derniers chiffres inscrits au dos de votre carte bancaire</span>
1535                        <span class="help amex"
1536                            style="display: none;">Le code de sécurité est constitué des 4 derniers chiffres inscrits au recto de votre carte bancaire</span>
1537                    </p>
1538
1539                            </div>
1540                
1541
1542
1543
1544
1545<script type="text/javascript">
1546    if (!window.stripeJsLoaded) {
1547        window.stripeJsLoaded = new Promise((resolve, reject) => {
1548            const s = document.createElement('script');
1549            s.src = 'https://js.stripe.com/v3/';
1550            s.type = 'text/javascript';
1551            s.onerror = reject;
1552            s.onload = resolve;
1553            document.head.appendChild(s);
1554        });
1555    }
1556</script>
1556
1557
1558<input type="hidden" name="stripe_creditcard_paymentMethod" id="stripe_creditcard_paymentMethod_regular"
1559    data-scope="stripe" data-required = "1" data-ira-check="window.stripe_creditcard.checkPaymentMethod('regular')"/>
1560<script>
1561    var stripeElementGetFrequency = () => Step1.current_donation.frequency;
1562    
1563    if (!window.stripe_creditcard) {
1564        const VAL_ERROR = 'error';
1565        const VAL_NOT_SET = 'N/A';
1566
1567        const defaultCoords = {};
1568
1569        
1570
1571                    defaultCoords["firstname"] = null; 
1572                    defaultCoords["lastname"] = null; 
1573                    defaultCoords["email"] = null; 
1574        
1575        const defaultPaymentMethodErrorMessage = "Les coordonn&eacute;es bancaires saisies sont incorrectes. Merci de les v&eacute;rifier et de les saisir &agrave; nouveau.";
1576        const lang = "fr_FR";
1577        const cardCvcPlaceholder = "Use the value provided by Stripe";
1578        const stripePublicApiKey = "pk_live_srqYyZqem3SpTx2GjUycaPjN";
1579        const stripeApiVersion = "2020-08-27";
1580        
1581
1582        const coordNames = Object.keys(defaultCoords);
1583
1584        const elementConf = {
1585            'cardNumber': {
1586                defaultErrorMessage: DntErrors.errorMsg.cardnumber,
1587                options: {showIcon: true},
1588            },
1589            'cardExpiry': {
1590                defaultErrorMessage: DntErrors.errorMsg.cardmonth,
1591            },
1592            'cardCvc': {
1593                defaultErrorMessage: DntErrors.errorMsg.cardscode,
1594            },
1595        };
1596        // only add a CVC placeholder for languages which have a short CVC provided
1597        if (cardCvcPlaceholder != 'Use the value provided by Stripe') {
1598            elementConf.cardCvc.options = {placeholder: cardCvcPlaceholder};
1599        }
1600        const elementTypes = Object.keys(elementConf);
1601
1602        window.stripe_creditcard = {
1603            complete: {},
1604            elements: {},
1605            error: {},
1606            frequencies: {},
1607            lastInitFrequency: '',
1608            stripe: false,
1609
1610            checkElement: function(frequency, elementType) {
1611                this.log('checkElement', [frequency, elementType]);
1612                if (frequency !== this.lastInitFrequency) return false;
1613
1614                const complete = this.complete[frequency][elementType];
1615                const error = this.error[frequency][elementType];
1616                const placeholder = $('#' + this.getPlaceholderId(frequency, elementType));
1617
1618                if (!complete || error) {
1619                    placeholder.attr('data-ira-errormsg', error && error.message
1620                        ? error.message
1621                        : elementConf[elementType].defaultErrorMessage
1622                    );
1623                    return false;
1624                } else {
1625                    placeholder.removeAttr('data-ira-errormsg');
1626                    return true;
1627                }
1628            },
1629
1630            checkPaymentMethod: function(frequency) {
1631                this.log('checkPaymentMethod', [frequency]);
1632                if (frequency !== this.lastInitFrequency) return false;
1633
1634                const paymentMethodInput = this.getPaymentMethodInput(frequency);
1635                
1636                if (paymentMethodInput.val() === VAL_ERROR) {
1637                    paymentMethodInput.attr('data-ira-errormsg', this.error[frequency].paymentMethod || defaultPaymentMethodErrorMessage);
1638                    return false;
1639                } else {
1640                    paymentMethodInput.removeAttr('data-ira-errormsg');
1641                    return true;
1642                }
1643            },
1644
1645            createPaymentMethod: function (frequency) {
1646                if (frequency !== this.lastInitFrequency) return;
1647                this.log('createPaymentMethod', [frequency]);
1648
1649                const paymentMethodInput = this.resetPaymentMethod(frequency);
1650
1651                for (let elementType of elementTypes) {
1652                    if (!this.complete[frequency][elementType]) return;
1653                }
1654
1655                const coords = {};
1656                for (let coordName of coordNames) {
1657                    const coordInput = $('input[name="' + coordName + '"]');
1658                    coords[coordName] = coordInput.length ? coordInput.val() : defaultCoords[coordName];
1659                    if (!coords[coordName]) return;
1660                }
1661
1662                // All other inputs we rely on are ok and won't trigger any error message display,
1663                // so until createPaymentMethod succeds, we must ensure paymentMethodInput does
1664                paymentMethodInput.val(VAL_ERROR);
1665
1666                // Prevent form submission before createPaymentMethod answers
1667                $('#stripe_submit.' + frequency).prop('disabled', true);
1668                setTimeout(() => {
1669                    try {
1670                        this.stripe.createPaymentMethod({
1671                            type: 'card',
1672                            card: this.elements[frequency].cardNumber,
1673                            billing_details: {
1674                                name: coords.firstname + ' ' + co
1674ords.lastname,
1675                                email: coords.email,
1676                            }
1677                        }).then(result => {
1678                            $('#stripe_submit.' + frequency).prop('disabled', false);
1679                            console.log(result);
1680
1681                            if (result.paymentMethod && result.paymentMethod.id) {
1682                                paymentMethodInput.val(result.paymentMethod.id);
1683                                console.log('paymentMethod = ' + paymentMethodInput.val());
1684                            } else {
1685                                this.error[frequency].paymentMethod = result.error.message;
1686                                for (let prop of ['type', 'code', 'decline_code', 'message']) {
1687                                    window.onerror('createPaymentMethod error.' + prop + ' = ' + result.error[prop]);
1688                                }
1689                            }
1690                        });
1691                    } catch (e) {
1692                        console.log(e);
1693                        $('#stripe_submit.' + frequency).prop('disabled', false);
1694                    }
1695                }, 500);
1696               
1697            },
1698
1699            getContainerId: function(frequency, elementType) {
1700                return 'stripe_creditcard_' + elementType + '_container_' + frequency;
1701            },
1702
1703            getPaymentMethodInput: function(frequency) {
1704                return $('#stripe_creditcard_paymentMethod_' + frequency);
1705            },
1706
1707            getPlaceholderId: function(frequency, elementType) {
1708                return 'stripe_creditcard_' + elementType + '_placeholder_' + frequency;
1709            },
1710
1711            /**
1712             * Build an array of Stripe JS CssFontSource objects
1713             * from the fonts used by the specified elements.
1714             *
1715             * See https://stripe.com/docs/js/appendix/css_font_source_object
1716             *
1717             * Warning: works only for fonts loaded from a google-style stylesheet URL
1718             * with a family=xxx parameter (where xxx is the font-family)
1719             */
1720            getStripeJsCssFontSources: function(ids) {
1721                try {
1722                    const used = {};
1723                    for (let id of ids) {
1724                        const computedStyle = window.getComputedStyle(document.getElementById(id));
1725                        const fontFamily = computedStyle.getPropertyValue('font-family');
1726                        used[fontFamily] = true;
1727                    }
1728
1729                    const hrefs = [];
1730                    for (let s of document.styleSheets) {
1731                        if (!s.href) continue;
1732                        const params = new URLSearchParams(new URL(s.href).search);
1733                        const fontFamily = params.get('family');
1734                        if (used[fontFamily] && (hrefs.indexOf(s.href) === -1)) {
1735                            hrefs.push(s.href);
1736                        }
1737                    }
1738                    return hrefs.map(href => ({cssSrc: href}));
1739                } catch (error) {
1740                    /**
1741                     * Stripe Element implementation has javascript incompatibility with Opera browser.
1742                     * We work around this problem by catching exceptions in getStripeJsCssFontSources and returning an empty list.
1743                     * This fix will have an impact on the design of Stripe Elements, but it will not block the creation of donations.
1744                     */
1745                    return [];
1746                }
1747            },
1748
1749            /**
1750             * Get the locale as expected by Stripe JS
1751             * 
1752             * See https://stripe.com/docs/js/appendix/supported_locales
1753             */
1754            getStripeJsLocale: function () {
1755                switch(lang) {
1756                    case 'en_EN':
1757                        return 'en-GB';
1758                    case 'se_SE':
1759                        return 'sv';
1760                    case 'zh_TW':
1761                        return lang.substring(0, 2) + '-' + lang.substring(3, 5);
1762                    default:
1763                        return lang.substring(0, 2);
1764                }
1765            },
1766
1767            /**
1768             * Build a Stripe JS Style object from the specified element's computed style
1769             * and copy all other styles to the provided container.
1770             *
1771             * See https://stripe.com/docs/js/appendix/style
1772             */
1773            getStripeJsStyle: function(id, container) {
1774                const styleKeyMap = {
1775                    // Stripe JS recommands setting background-color on the container
1776                    //'background-color': 'backgroundColor',
1777                    'color': 'color',
1778                    'font-family': 'fontFamily',
1779                    'font-size': 'fontSize',
1780                    'font-smoothing': 'fontSmoothing',
1781                    'font-style': 'fontStyle',
1782                    'font-variant': 'fontVariant',
1783                    'font-weight': 'fontWeight',
1784                    // Stripe JS doesn't like line-height and doesn't even take it into account
1785                    //'line-height': 'lineHeight',
1786                    'letter-spacing': 'letterSpacing',
1787                    'text-align': 'textAlign',
1788                    'text-decoration': 'textDecoration',
1789                    'text-shadow': 'textShadow',
1790                    'text-transform': 'textTransform',
1791                };
1792                const baseStyle = {};
1793                const computedStyle = window.getComputedStyle(document.getElementById(id));
1794                for (let cssProp of computedStyle) {
1795                    const styleKey = styleKeyMap[cssProp];
1796                    const cssValue = computedStyle.getPropertyValue(cssProp);
1797                    if (styleKey) {
1798                        baseStyle[styleKey] = cssValue;
1799                    } else {
1800                        container.css(cssProp, cssValue);
1801                    }
1802                }
1803                return {base: baseStyle};
1804            },
1805
1806            init: function (reason) {
1807                const frequency = stripeElementGetFrequency();
1808                if (!this.frequencies[frequency]) return;
1809                this.log('init', [frequency, reason]);
1810
1811                // Stripe elements are reset at every init so we need to reset as well
1812                this.complete[frequency] = {};
1813                this.error[frequency] = {};
1814                this.resetPaymentMethod(frequency);
1815                this.lastInitFrequency = frequency;
1816
1817                this.mount(frequency);
1818            },
1819
1820            isMounted: function(frequency) {
1821                return !!this.elements[frequency];
1822            },
1823
1824            log: function (method, params = []) {
1825                console.log('stripe_creditcard.' + method + '(' + params.join(', ') + ')');
1826            },
1827
1828            mount: function (frequency) {
1829                const wasAlreadyMounted = this.unmount(frequency);
1830                this.log('mount', [frequency]);
1831
1832                if (!this.stripe) {
1833                    this.stripe = Stripe(stripePublicApiKey, {
1834                        locale: this.getStripeJsLocale(), 
1835                        apiVersion: stripeApiVersion 
1836                        });
1837                }
1838
1839                const stripeElements = this.stripe.elements({
1840                    fonts: this.getStripeJsCssFontSources(
1841                        elementTypes.map(elementType => this.getPlaceholderId(frequency, elementType))
1842                    ),
1843                });
1844                
1845                this.elements[frequency] = {};
1846                for (let elementType of elementTypes) {
1847                    const placeholderId = this.getPlaceholderId(frequency, elementType);
1848
1849                    const containerId = this.getContainerId(frequency, elementType);
1850                    const container = $('<span/>').attr('id', containerId);
1851
1852                    const element = stripeElements.create(elementType, Object.assign(
1853                        {style: this.getStripeJsStyle(placeholderId, container)},
1854                        elementConf[elementType].options
1855                    ));
1856                    this.elements[frequency][elementType] = element;
1857
1858                    $('#' + placeholderId)
1859                        .attr('data-scope', 'stripe')
1860                        .attr('data-required', '1')
1861                        .attr('data-ira-check', "window.stripe_creditcard.checkElement('" + frequency + "', '" + elementType + "')")
1862                        .val(VAL_NOT_SET)
1863                        .hide()
1864                        .after(container);
1865                    element.mount('#' + containerId);
1866                    
1867                    // Stripe creates an intermediate div between the container and its iframe
1868                    // Let's force this div's contents to be vertically centered inside the container
1869                    $('#' + containerId + ' div').css({
1870                        display: 'flex',
1871                        height: '100%',
1872                        'align-items': 'center',
1873                    });
1874
1875                    element.on('change', ev => this.onElementChanged(frequency, ev, placeholderId));
1876                }
1877
1878                if (!wasAlreadyMounted) {
1879                    for (let coordName of coordNames) {
1880                        $('input[name="' + coordName + '"]').on('change', () => this.createPaymentMethod(frequency));
1881                    }
1882                    // Force a re-init if the payment mode was previously hidden
1883                    // as Stripe does not mount well hidden fields
1884                    const cvcPlaceholderId = this.getPlaceholderId(frequency, 'cardCvc');
1885                    $('#payment_mode-card:has(#' + cvcPlaceholderId + ')').on('payment_shown', () => this.init('payment_shown'));
1886                }
1887            },
1888
1889            unmount: function (frequency) {
1890                if (!this.isMounted(frequency)) return false;
1891                this.log('unmount', [frequency]);
1892
1893                for (let elementType of elementTypes) {
1894                    this.elements[frequency][elementType].destroy();
1895                    $('#' + this.getContainerId(frequency, elementType)).remove();
1896                    $('#' + this.getPlaceholderId(frequency, elementType)).show();
1897                }
1898                return true;
1899            },
1900
1901            onElementChanged: function (frequency, ev, placeholderId) {
1902                this.log('onElementChanged', [
1903                    frequency,
1904                    ev.elementType,
1905                    ev.complete ? 'complete' : 'not complete',
1906                    ev.error ? ev.error.message : 'no error',
1907                ]);
1908                this.complete[frequency][ev.elementType] = ev.complete;
1909                this.error[frequency][ev.elementType] = ev.error;
1910
1911                this.createPaymentMethod(frequency);
1912                Common.toggleDisplayErrorInput($("#" + placeholderId), !!ev.error);
1913            },
1914        
1915            resetPaymentMethod: function (frequency) {
1916                const paymentMethodInput = this.getPaymentMethodInput(frequency);
1917                paymentMethodInput.val(VAL_NOT_SET);
1918                this.error[frequency].paymentMethod = false;
1919                return paymentMethodInput;
1920            },
1921        };
1922
1923        window.stripeJsLoaded.then(() => {
1924            // Force a reinit when the donation amount or the style change
1925            for (let event of ['init_done', 'WebFont.fontactive']) {
1926                $('body').on(event, () => window.stripe_creditcard.init(event));
1927            }
1928        });
1929    }
1930
1931    if (!window.stripe_creditcard.frequencies["regular"]) {
1932        window.stripe_creditcard.frequencies["regular"] = true;
1933        window.stripeJsLoaded.then(() => {
1934            // Ensure the 1st init is done only once, for the active frequency
1935            if (stripeElementGetFrequency() === "regular") {
1936                window.stripe_creditcard.init("stripeJsLoaded");
1937            }
1938        });
1939    }
1940    
1941</script>
1941
1942            
1943            
1944
1945            <p id="card-submit" class="payment-submit">
1946                <input
1947    name="stripe_submit"
1948    type="submit"
1949    value="Valider"
1950    data-no_amount_txt="Valider"
1951    data-once_txt="Valider"
1952    data-regular_txt="Valider"
1953    id="stripe_submit"
1954    class="button payment-button regular"
1955    
1956        data-scope="stripe"
1957    
1958/>
1959            </p>
1960        </div>
1961    </fieldset>
1962
1963                        <!-- STANDARD BUTTONS -->
1964    <fieldset id="payment_mode-gw_paypal_paypal"
1965        class="payment_mode "
1966        
1967    >
1968        <h4 class="payment_head">
1969            <span class="payment_mode_title">Paypal</span>
1970        </h4>
1971        <div class="payment_body" id="gw_paypal_paypal">
1972
1973            
1974
1975
1976                            	
1977
1978    
1979
1980    
1981
1982    
1983
1984    
1985
1986    
1987
1988
1989	
1990
1991    
1992
1993	<!-- GOCARDLESS BACS SPECIFIC TEXT & CHECKBOX (must be checked to submit payment) -->
1994	<!-- LEGAL UK REQUIREMENTS FOR BANK MANDATES -->
1995                
1996            <input name="type" type="hidden" value="" data-scope="gw_paypal_paypal"/>
1997            <input name="mode" type="hidden" value="gw_paypal_paypal" data-scope="gw_paypal_paypal"/>
1998
1999            <p id="gw_paypal_paypal-submit" class="payment-submit gateway">
2000                <input
2001    name="gw_paypal_paypal_submit"
2002    type="submit"
2003    value="Valider"
2004    data-no_amount_txt="Valider"
2005    data-once_txt="Valider"
2006    data-regular_txt="Valider"
2007    id="gw_paypal_paypal_submit"
2008    class="button payment-button gateway"
2009    
2010        data-scope="gw_paypal_paypal"
2011    
2012/>
2013
2014            </p>
2015
2016            
2017
2018        </div>
2019    </fieldset>
2020
2021
2022                
2023<fieldset id="payment_mode-iban" class="payment_mode">
2024    <h4 class="payment_head">
2025        <span class="payment_mode_title">Paiement par IBAN/BIC</span>
2026    </h4>
2027    <div class="payment_body" id="iban">
2028                    
2029        
2030        <p id="iban-input">
2031            <label for="iban-number">Votre numéro IBAN</label>
2032            <input type="text" name="iban-number" id="iban-number" maxlength="34" autocomplete="off" 
2033                data-required="1" 
2034                data-ira-check="IBANValidator.validate($('#iban-number').val()).valid" 
2035                data-ira-errormsg-empty="Le champ IBAN est obligatoire"
2036                data-ira-errormsg-invalid="Vous devez saisir un num&eacute;ro IBAN valide"
2037                data-scope='stripe_sepa_debit'            />
2038        </p>
2039
2040        
2041                    
2042        
2043        <p id="iban-submit" class="payment-submit">
2044
2045                                        
2046            <input
2047    name="stripe_sepa_debit_submit"
2048    type="submit"
2049    value="Valider"
2050    data-no_amount_txt="Valider"
2051    data-once_txt="Valider"
2052    data-regular_txt="Valider"
2053    id="iban_submit"
2054    class="button payment-button "
2055    
2056        data-scope="stripe_sepa_debit"
2057    
2058/>
2059        </p>
2060    </div>
2061</fieldset>
2062
2063    </div>
2064            </div> <!-- End Payment -->
2065        </div> <!-- End Bloc -->
2066
2067                    <div class="step-info">
2068                <h4>Sécurité et Transparence</h4>
2069                <div class="step-info-body">
2070                    <p><!--StartFragment --></p>
2071
2072<p>Vos informations bancaires sont int&eacute;gralement crypt&eacute;es et s&eacute;curis&eacute;es, vous &ecirc;tes assur&eacute;s de la fiabilit&eacute; de vos transactions en ligne. Ce site internet est 100% compatible DSP2 (Directive europ&eacute;enne sur les Services de Paiement). Vous pouvez d&eacute;sormais confirmer votre don en ligne selon les modalit&eacute;s d&eacute;finies par votre banque : SMS, application mobile, site Internet…<br />
2073<br />
2074<strong>Si vous souhaitez faire un don par ch&egrave;que, il vous suffit de remplir un ch&egrave;que &agrave; l’ordre de Solidarit&eacute; La&iuml;que, dat&eacute; et sign&eacute;, et de l’envoyer &agrave; l’adresse ci-dessous :<br />
2075SOLIDARITE LAIQUE 22 RUE CORVISART 75013 PARIS </strong><br />
2076Notre service Relations Donateurs est &agrave; votre disposition pour r&eacute;pondre &agrave; vos questions :</p>
2077
2078<ul>
2079	<li><a href="mailto:[email protected]">[email protected]</a></li>
2080	<li>T&eacute;l&eacute;phone  +33 1 45 35 13 13</li>
2081</ul>
2082
2083<p>Solidarit&eacute; La&iuml;que est reconnue d’utilit&eacute; publique et labellis&eacute;e « Don en Confiance », organisme de labellisation et de contr&ocirc;le des associations et fondations faisant appel aux dons. Solidarit&eacute; La&iuml;que s’engage &agrave; respecter ses principes de transparence et d’efficacit&eacute;.<br />
2084<img src="https://www.donenconfiance.org/offres/doc_inline_src/759/Don+en+Confiance_Logo_repere-.png" style="width: 144px; height: 143px;" /></p>
2085
2086                </div>
2087            </div> <!-- End Step-info -->
2088            </div> <!-- End Step-container -->
2089</div> <!-- End Step 3 -->
2090
2091
2092    
2093    </form>
2094    
2095
2096        </div>
2097    </div> <!-- End Main -->
2098
2099    <div id="footer" class="line">
2100        <div class="container" id="footer_wrapinner">
2101
2102            <div id="powered" class="unit size1of3" style="display:block !important;">
2103                                        
2104<a style="display:block !important;" href="https://www.iraiser.com/fr/" title="Powered by iRaiser" target="_blank">
2105    
2106        <img style="display:block !important; min-width: 100px!important;min-height: 15px!important;" src="/themes/default/arya/assets/powered_by_iraiser_black.svg" alt="Powered by iRaiser" width="120" height="18" loading="lazy"/>
2107    </a>
2108                            </div>
2109
2110            <div id="copyright" class="unit size2of3 lastUnit">
2111                <p>
2112                                        <a href="https://soutenir.solidarite-laique.org/connect" title="Espace personnel" target="_blank" rel="noopener noreferrer">Espace personnel</a> <span>|</span>
2113                    
2114                    <a href="https://soutenir.solidarite-laique.org/nos-credits" title="Cr&eacute;dits" target="_blank" rel="noopener noreferrer">Cr&eacute;dits</a> <span>|</span>
2115                    <a href="https://soutenir.solidarite-laique.org/mentions-legales" title="Mentions l&eacute;gales" target="_blank" rel="noopener noreferrer">Mentions l&eacute;gales</a> <span>|</span>
2116                    <a href="https://soutenir.solidarite-laique.org/contactez-nous" title="Contact" target="_blank" rel="noopener noreferrer">Contact</a>
2117                </p>
2118            </div>
2119        </div>
2120    </div> <!-- End Footer -->
2121</div> <!-- End Container -->
2122
2123
2124<!-- Google Tag Manager -->
2125<script>
vendor: 331 bytes, lines 2125-2129
2125(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
2126new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
2127j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
2128'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
2129})(window,document,'script','dataLayer','
2129GTM-TSN3VWJK
vendor: 3 bytes, line 2129
2129');
2129</script>
2129
2130<!-- End Google Tag Manager -->
2131
2132<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 2132-2133
2132
2133<script async src="https://www.googletagmanager.com/gtag/js?id=
2133G-8FHMY248ZN
vendor: 13 bytes, line 2133
2133"></script>
2134<script>
2135  
vendor: 138 bytes, lines 2135-2139
2135window.dataLayer = window.dataLayer || [];
2136  function gtag(){dataLayer.push(arguments);}
2137  gtag('js', new Date());
2138
2139  gtag('config', '
2139G-8FHMY248ZN
vendor: 5 bytes, line 2139
2139');
2140</script>
2140
2141
2142<!-- Meta Pixel Code -->
2143<script>
vendor: 408 bytes, lines 2143-2152
2143
2144!function(f,b,e,v,n,t,s)
2145{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
2146n.callMethod.apply(n,arguments):n.queue.push(arguments)};
2147if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
2148n.queue=[];t=b.createElement(e);t.async=!0;
2149t.src=v;s=b.getElementsByTagName(e)[0];
2150s.parentNode.insertBefore(t,s)}(window, document,'script',
2151'https://connect.facebook.net/en_US/fbevents.js');
2152fbq('init', '
2152418334484691194
vendor: 32 bytes, lines 2152-2153
2152');
2153fbq('track', 'PageView');
2154</script>
2154
2155<noscript><img height="1" width="1" style="display:none"
2156src="https://www.facebook.com/tr?id=418334484691194&ev=PageView&noscript=1"
2157/></noscript>
2158<!-- End Meta Pixel Code -->
2159<script>
2160  window.avDataLayer = window.avDataLayer|| [];
2161  window.avtag = window.avtag || function(_cmd,_p){window.avDataLayer.push({cmd:_cmd,p:_p});};   avtag('init', {id:'solidaritelaique'});
2162  avtag('setConsent', {consent:true});
2163</script>
2163
2164
2165<script async src="https://static.avads.net/avtag.min.js"></script>
2165</body></html>

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.