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'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'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> <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> <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> <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> <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> <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> <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> <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ées pour la promotion de lâécole publique, lâéducation populaire et lâéconomie sociale et solidaire.<br /> 506 <br /> 507Notre mission depuis 1956 : faire que chaque citoyen.ne bénéficie dâune éducation de qualité 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, égalitaire, laïque, gratuite⦠Lâéducation ne sâarrête pas aux bancs de lâécole. Le sport, la culture ou encore lâart favorisent lâouverture à lâautre et la confiance en soi. Ce sont de puissants leviers vers lâé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és dans une vingtaine de pays, ainsi que le soutien de lâAgence française de développement, nous militons pour faire avancer la cause de lâé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ées par Solidarité Laïque fassent lâobjet dâun traitement informatique à des fins de gestion interne, pour répondre à vos demandes et faire appel à votre générosité.<br /> 911Ces données sont conservées pendant la durée nécessaire aux finalités précitées et communiquées à nos services habilités à les traiter ainsi quâ aux tiers mandatés par Solidarité Laïque.</p> 912 913<ul> 914 <li>Si vous ne souhaitez pas que votre adresse soit échangée,</li> 915 <li>Pour faire valoir vos droits dâaccès, de rectification, dâeffacement, dâopposition, de limitation et de portabilité conformément à la réglementation en vigueur,</li> 916</ul> 917Contacter Solidarité Laïque par téléphone 01 45 35 13 13, par email <a href="mailto:[email protected]">[email protected]</a>, ou par courrier. Vous pouvez introduire une réclamation auprè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é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ées bancaires saisies sont incorrectes. Merci de les vérifier et de les saisir à 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é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ées bancaires saisies sont incorrectes. Merci de les vérifier et de les saisir à 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é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égralement cryptées et sécurisées, vous êtes assurés de la fiabilité de vos transactions en ligne. Ce site internet est 100% compatible DSP2 (Directive européenne sur les Services de Paiement). Vous pouvez désormais confirmer votre don en ligne selon les modalités définies par votre banque : SMS, application mobile, site Internetâ¦<br /> 2073<br /> 2074<strong>Si vous souhaitez faire un don par chèque, il vous suffit de remplir un chèque à lâordre de Solidarité Laïque, daté et signé, et de lâenvoyer à lâadresse ci-dessous :<br /> 2075SOLIDARITE LAIQUE 22 RUE CORVISART 75013 PARIS </strong><br /> 2076Notre service Relations Donateurs est à votre disposition pour répondre à vos questions :</p> 2077 2078<ul> 2079 <li><a href="mailto:[email protected]">[email protected]</a></li> 2080 <li>Téléphone +33 1 45 35 13 13</li> 2081</ul> 2082 2083<p>Solidarité Laïque est reconnue dâutilité publique et labellisée « Don en Confiance », organisme de labellisation et de contrôle des associations et fondations faisant appel aux dons. Solidarité Laïque sâengage à respecter ses principes de transparence et dâefficacité.<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édits" target="_blank" rel="noopener noreferrer">Crédits</a> <span>|</span> 2115 <a href="https://soutenir.solidarite-laique.org/mentions-legales" title="Mentions légales" target="_blank" rel="noopener noreferrer">Mentions lé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.