CINXE.COM

Soutenez notre association

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR"> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"/> <title>Soutenez notre association</title> <meta name="description" content="Reporters sans frontières, ONG reconnue d’utilité publique, défend la liberté d’informer et d’être informé partout dans le monde" /> <meta name="keywords" content="journalistes, presse, reporters, otages, censure, information, journaliste, reporter, news" /> <link type="text/css" href="https://donate.rsf.org/themes/default/css/style_v2.css?hash=f8b6806de2accedfb5c1d726ef192c66" rel="stylesheet" /> <script type="text/javascript"> // <![CDATA[ const cacheVersion = "24070"; var gamonitoring_previous_page = sessionStorage.getItem('gamonitoring_previous_page') || document.referrer || "https:\/\/donate.rsf.org"; var gamonitoring_session_id = sessionStorage.getItem('gamonitoring_session_id') || String(Math.floor(Math.random() * 8999999999) + 1000000000)+'.'+String(Math.floor(Date.now()/1000)); var gamonitoring_v2_client_id = gamonitoring_session_id; var gamonitoring_v2_session_id = gamonitoring_v2_client_id.replace(/^.*\./, ''); var gamonitoring_sc = ''; if(!sessionStorage.getItem('gamonitoring_session_id')) gamonitoring_sc = 'start'; if(typeof(monitoringvga)=='undefined'){ monitoringvga=1; 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("&")}; try{ var head = document.getElementsByTagName('HEAD')[0]; document.addEventListener('DOMContentLoaded', function(event) { var monitoringparams = {z:Math.random(),cid:"donate.rsf.org\/"+gamonitoring_session_id,dl:"https:\/\/donate.rsf.org\/RSF\/b:steps\/cid=32",sc:gamonitoring_sc,dr:gamonitoring_previous_page,cd:"2025-02-17:17.44.03-67b36753453e0",dt:window.location.host+'/'+"donations",ul:"fr-FR",ds:"web",}; var inputs = document.querySelectorAll('input[type=hidden][name=context_form_id]'), i; var link = document.createElement('link'); link.rel = 'stylesheet'; link.href = 'https://monitoring.iraiser.eu/check.css?'+monitoring_serialize(monitoringparams); head.appendChild(link); var input = document.createElement("input"); input.setAttribute("type", "hidden"); input.setAttribute("name", "private_monitoring_session_id"); input.setAttribute("value", "donate.rsf.org\/"+gamonitoring_session_id); for (i = 0; i < inputs.length; ++i) { inputs[i].parentNode.insertBefore(input, inputs[i]); } var link_v2 = document.createElement('link'); monitoringparams.cid = gamonitoring_v2_client_id; monitoringparams.sid = gamonitoring_v2_session_id; link_v2.rel = 'stylesheet'; link_v2.type = 'text/css'; link_v2.href = 'https://monitoring.iraiser.eu/v2/check.css?'+monitoring_serialize(monitoringparams); head.appendChild(link_v2); var input_v2_client_id = document.createElement("input"); input_v2_client_id.setAttribute("type", "hidden"); input_v2_client_id.setAttribute("name", "private_monitoring_v2_client_id"); input_v2_client_id.setAttribute("value", gamonitoring_v2_client_id); var input_v2_session_id = document.createElement("input"); input_v2_session_id.setAttribute("type", "hidden"); input_v2_session_id.setAttribute("name", "private_monitoring_v2_session_id"); input_v2_session_id.setAttribute("value", gamonitoring_v2_session_id); for (i = 0; i < inputs.length; ++i) { inputs[i].parentNode.insertBefore(input_v2_client_id, inputs[i]); inputs[i].parentNode.insertBefore(input_v2_session_id, inputs[i]); } }); window.onerror = function (eventOrMessage, url, lineNumber, colNumber, error) { var monitoringerrorparams = {z:Math.random(),cid:"donate.rsf.org\/"+gamonitoring_session_id,t:"event",ec:"JSError",ev:1,ea:"\/RSF\/b:steps\/cid=32\/",}; if (!eventOrMessage) { return; } if (typeof eventOrMessage !== 'string') { error = eventOrMessage.error; url = eventOrMessage.filename || eventOrMessage.fileName; lineNumber = eventOrMessage.lineno || eventOrMessage.lineNumber; colNumber = eventOrMessage.colno || eventOrMessage.columnNumber; eventOrMessage = eventOrMessage.message || eventOrMessage.name || error.message || error.name; } if (error && error.stack) { eventOrMessage = [eventOrMessage, '; Stack: ', error.stack, '.'].join(''); } var jsFile = (/[^/]+\.js/i.exec(url || '') || [])[0] || 'inline', eventOrMessage = eventOrMessage.replace(/https?\:\/\/[^/]+/gi, '').replace(/[?&]context_form_[^ &]+/gi, ''); stack = [eventOrMessage, ' > ' + jsFile, ':', lineNumber || '?', ':', colNumber || '?'].join('').substring(0,450); monitoringerrorparams.ea += jsFile; monitoringerrorparams.el = stack; var link = document.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'https://monitoring.iraiser.eu/error.css?'+monitoring_serialize(monitoringerrorparams); head.appendChild(link); monitoringerrorparams.cid = gamonitoring_v2_client_id; monitoringerrorparams.sid = gamonitoring_v2_session_id; var link_v2 = document.createElement('link'); link_v2.rel = 'stylesheet'; link_v2.type = 'text/css'; link_v2.href = 'https://monitoring.iraiser.eu/v2/error.css?'+monitoring_serialize(monitoringerrorparams); head.appendChild(link_v2); } } catch (error) {console.error(error);} sessionStorage.setItem('gamonitoring_previous_page',gamonitoring_previous_page); sessionStorage.setItem('gamonitoring_session_id',gamonitoring_session_id); } // ]]> </script><script type="text/javascript" src="https://donate.rsf.org/themes/default/js/jquery-1.11.2.min.js?hash=5790ead7ad3ba27397aedfa3d263b867" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/jquery.patch.min.js?hash=8c3155becb5ec93b830922ca82081911" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/jquery.cookie-1.0.min.js?hash=6f6ed3cd5486dbf3bb9143eea287a6a5" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/dnterrors.min.js?hash=af6b6c3691e205792b5ad49d7fa92b5a" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/jquery.config.min.js?hash=aae7bb01c8a0e6da615dd41aaafab4b5" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/step1.min.js?hash=9f5ee1cdcfc17951a981e36d87e9a39a" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/step2.min.js?hash=c1b60f21a29d81479ed557f51081350a" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/step3.min.js?hash=1cbc70ae6688f4df94453feb30066dcd" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/steps.min.js?hash=0b3621bd88c488f4f53f841cb640a269" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/jquery.ir-priceinput.min.js?hash=07482ff72021c2c53278074abe52347f" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/common.min.js?hash=ef2e383a6a180f6fe62a1f93d12c1436" ></script> <script type="text/javascript"> // <![CDATA[ old_console_log = console.log; if(typeof $.cookie == 'undefined' || !$.cookie('DntManager')){ console.log = function(){}; } if(typeof(String.prototype.replaceAll) == 'undefined') String.prototype.replaceAll = String.prototype.replace; var ira_form_version = 'b'; Common.price_pattern = "1,22 \u20ac" Common.price_default_currency = "EUR" Common.price_campaign_currency = "EUR" Common.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","BGN":"\u043b\u0432","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"} Common.price_rates = {"AED":3.789026,"AFN":73.347939,"ALL":98.431432,"AMD":409.385623,"ANG":1.85873,"AOA":942.385841,"ARS":1069.493133,"AUD":1.663409,"AWG":1.856857,"AZN":1.754546,"BAM":1.958415,"BBD":2.082681,"BDT":125.820929,"BGN":1.955956,"BHD":0.388833,"BIF":3051.174131,"BMD":1.031587,"BND":1.412086,"BOB":7.127517,"BRL":6.306298,"BSD":1.031577,"BTC":1.1041156e-5,"BTN":88.537221,"BWP":14.457445,"BYN":3.375607,"BYR":20219.11391,"BZD":2.071967,"CAD":1.484476,"CDF":2960.655796,"CHF":0.939714,"CLF":0.03738,"CLP":1031.443205,"CNY":7.563812,"CNH":7.588636,"COP":4458.520935,"CRC":521.696604,"CUC":1.031587,"CUP":27.337067,"CVE":110.411894,"CZK":25.108793,"DJF":183.687052,"DKK":7.460575,"DOP":63.264475,"DZD":139.969186,"EGP":52.166651,"ERN":15.473812,"ETB":129.761466,"EUR":1,"FJD":2.401897,"FKP":0.816999,"GBP":0.837256,"GEL":2.862649,"GGP":0.816999,"GHS":15.214315,"GIP":0.816999,"GMD":73.242477,"GNF":8917.864504,"GTQ":7.960591,"GYD":215.810256,"HKD":8.027711,"HNL":26.223015,"HRK":7.39948,"HTG":134.66982,"HUF":414.347084,"IDR":16711.355544,"ILS":3.772822,"IMP":0.816999,"INR":88.566322,"IQD":1351.204218,"IRR":43429.83115,"ISK":145.010514,"JEP":0.816999,"JMD":161.745974,"JOD":0.731703,"JPY":162.644161,"KES":133.580477,"KGS":89.747767,"KHR":4166.603918,"KMF":492.588821,"KPW":928.428123,"KRW":1505.735817,"KWD":0.318059,"KYD":0.859556,"KZT":542.324147,"LAK":22487.026178,"LBP":92369.938506,"LKR":303.925822,"LRD":192.889429,"LSL":19.472607,"LTL":3.046009,"LVL":0.623997,"LYD":5.09981,"MAD":10.384015,"MDL":19.216846,"MGA":4883.520803,"MKD":61.61907,"MMK":3350.55578,"MNT":3505.334002,"MOP":8.267099,"MRU":40.991536,"MUR":48.247226,"MVR":15.896913,"MWK":1788.588242,"MXN":21.077369,"MYR":4.645254,"MZN":65.929288,"NAD":19.472701,"NGN":1596.360554,"NIO":37.960688,"NOK":11.760293,"NPR":141.659153,"NZD":1.842301,"OMR":0.397147,"PAB":1.031477,"PEN":3.893899,"PGK":4.135502,"PHP":60.346857,"PKR":287.630964,"PLN":4.273197,"PYG":8136.864885,"QAR":3.760521,"RON":4.977202,"RSD":117.159468,"RUB":105.525233,"RWF":1433.628173,"SAR":3.872346,"SBD":8.698658,"SCR":14.605919,"SDG":619.983773,"SEK":11.496212,"SGD":1.411887,"SHP":0.816999,"SLE":23.526475,"SLL":21631.876039,"SOS":589.487123,"SRD":36.209237,"STD":21351.777332,"SVC":9.025007,"SYP":2591.894653,"SZL":19.453976,"THB":35.679001,"TJS":11.274263,"TMT":3.610556,"TND":3.309018,"TOP":2.416079,"TRY":36.447919,"TTD":7.00235,"TWD":33.955006,"TZS":2589.283887,"UAH":43.732583,"UGX":3815.094168,"USD":1.031587,"UYU":45.029909,"UZS":13347.758122,"VES":54.888813,"VND":26184.268307,"VUV":122.472127,"WST":2.850057,"XAF":656.840424,"XAG":0.03391,"XAU":0.000386,"XCD":2.787917,"XDR":0.794361,"XOF":656.830861,"XPF":119.331742,"YER":257.069292,"ZAR":19.471445,"ZMK":9285.524874,"ZMW":28.649254,"ZWL":332.170736,"CYP":1.7086,"SSP":633.704955,"VEF":3902666.416477} Common.price_currency_position = "right" Common.price_frequency_texts = {"once":"Je donne une fois","regular":"Je donne tous les mois"} Common.campaign_default_frequency = "once" Step1.tax_reduction_rates = {"ir":[66],"isf":[75,0],"corp":[60],"custom1":[],"custom2":[]}; Step1.tax_reduction_ceils = {"ir":[],"isf":[66666.67],"corp":[],"custom1":[],"custom2":[]}; Step1.tax_reduction_notices = {"ir":"\u00e0 hauteur de 20% du revenu imposable","isf":"","corp":"dans la limite de 5\u2030 du chiffre d'affaires annuel","custom1":"","custom2":""}; Step1.tax_reduction_triggers = {"ir":"0","isf":"0","corp":"0","custom1":"0","custom2":"0"}; Step1.active_tax_reduction = 1; Step1.adapt_tax_bloc = false; Step1.tax_info = "Votre don est d\u00e9ductible \u00e0 hauteur de 66% dans la limite de 20% de vos revenus. Par exemple, un don de 100 euros vous co\u00fbte r\u00e9ellement 34 euros. <br \/>Cette d\u00e9duction n'est valable que pour les personnes imposables en France. "; Step1.is_french_isf = 0; Step1.is_tipping_campaign = 0; Step1.amount_equivalences = {"once":[],"regular":[]} Step1.decimal_sep = ","; Step1.min_once_amount = 2; Step1.max_once_amount = 50000; Step1.min_regular_amount = 2; Step1.max_regular_amount = 10000; DntErrors.errorMsg.errors = "%s erreurs ont \u00e9t\u00e9 trouv\u00e9es dans le formulaire"; DntErrors.errorMsg.error = "1 erreur a \u00e9t\u00e9 trouv\u00e9e dans le formulaire"; DntErrors.errorMsg.choose_amount = "Vous devez choisir un montant pour votre don"; DntErrors.errorMsg.min_once_amount = "En raison de frais de traitement, le montant minimum accept\u00e9 pour un don est de {min_amount_with_currency} "; DntErrors.errorMsg.max_once_amount = "Votre don ne peut pas \u00eatre sup\u00e9rieur \u00e0 {max_amount_with_currency} "; DntErrors.errorMsg.min_regular_amount = "En raison de frais de traitement, le montant minimum accept\u00e9 pour un don est de {min_amount_with_currency} "; DntErrors.errorMsg.max_regular_amount = "Votre don ne peut pas \u00eatre sup\u00e9rieur \u00e0 {max_amount_with_currency} "; DntErrors.errorMsg.errors = "%s erreurs ont \u00e9t\u00e9 trouv\u00e9es dans le formulaire"; DntErrors.errorMsg.error = "1 erreur a \u00e9t\u00e9 trouv\u00e9e dans le formulaire"; DntErrors.errorMsg.qualification = "Le champ \u00ab %s \u00bb est obligatoire"; DntErrors.errorMsg.firstname = "Vous devez saisir votre pr\u00e9nom"; DntErrors.errorMsg.lastname = "Vous devez saisir votre nom"; DntErrors.errorMsg.email = "Vous devez saisir une adresse email valide"; DntErrors.errorMsg.company = "La raison sociale ne doit pas d\u00e9passer 70 caract\u00e8res"; DntErrors.errorMsg.company_siren = "Le SIREN est vide ou invalide"; DntErrors.errorMsg.company_status = "La forme juridique est vide ou inconnue"; DntErrors.errorMsg.address1 = "Vous devez saisir votre adresse"; DntErrors.errorMsg.postcode = "Vous devez saisir votre code postal (10 caract\u00e8res maximum)"; DntErrors.errorMsg.city = "Vous devez saisir votre ville"; DntErrors.errorMsg.civility = "Vous devez s\u00e9lectionner votre civilit\u00e9"; DntErrors.errorMsg.errors = "%s erreurs ont \u00e9t\u00e9 trouv\u00e9es dans le formulaire"; DntErrors.errorMsg.error = "1 erreur a \u00e9t\u00e9 trouv\u00e9e dans le formulaire"; DntErrors.errorMsg.cardtype = "S\u00e9lectionnez votre type de carte bancaire"; DntErrors.errorMsg.cardnumber = "Saisissez correctement les chiffres de votre carte bancaire"; DntErrors.errorMsg.cardscode = DntErrors.errorMsg.scode = "Saisissez correctement les chiffres du code de s\u00e9curit\u00e9 situ\u00e9s au dos de votre carte bancaire"; DntErrors.errorMsg.cardmonth = "S\u00e9lectionnez le mois d'expiration de votre carte bancaire"; DntErrors.errorMsg.cardyear = "S\u00e9lectionnez l'ann\u00e9e d'expiration de votre carte bancaire"; DntErrors.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"; Step2.failed_dnt_url = "/index.php?module=donations&action=xhr:attemptSave"; form_context_lang = "fr_FR"; form_context_cid = "32"; Step3.alert_msg = ""; Step3.modal_qualif = "0"; Step3.modal_qualif_url = "/index.php?module=donations&action=default:modalQualification"; Step3.modal_save_card = "0"; Step3.modal_save_card_url = "/index.php?module=donations&action=default:modalSaveCard"; Step3.modal_save_card_set_url = "/index.php?context_form_id=form_cached_2025-02-17.17:44:03_67b36753448253.39583973&module=donations&action=default:setSaveCard"; Step3.cards_mastercard_length=16; Step3.cards_mastercard_cvvlength=3; Step3.cards_mastercard_hasalias=1; Step3.cards_visa_length=16; Step3.cards_visa_cvvlength=3; Step3.cards_visa_hasalias=1; Step3.cards_amex_length=15; Step3.cards_amex_cvvlength=4; Step3.cards_amex_hasalias=1; $(document).ready(function() { Step1.init(); Step2.init(); Steps.init(); Steps.submit(); }); organisation_name = "Reporters sans fronti\u00e8res"; try{ var ira_context_infos = {"form_id":"form_cached_2025-02-17.17:44:03_67b36753448253.39583973","campaign":"32","version":"b","lang":"fr_FR","amount":{"amount":"0","amount_donation":0,"frequency":"once","free_amount":false,"currency":"EUR"},"reserved":"{\"reserved_origine\":\"SPSWEB\"}","affectation":null,"_cpn_name_":null}; console.warn(ira_context_infos); }catch(err){} try{ $.cookie('dnt_coords',null,{'path':'/','domain':'.donate.rsf.org'}); }catch(err){} $(document).ready(function() { try{ var context_form_input = $("input[name='context_form_id']"); if(context_form_input){ var context_form_val = context_form_input.val(); if(!context_form_val || context_form_val == 'form_cached'){ context_form_input.val("form_cached_"+Math.floor(Math.random() * 1000000000)); } } if(typeof ira_form_version != 'undefined'){ $('input[name=lang]').after( $('<input type="hidden" name="form_version" />').val(ira_form_version) ); } var dnt_amount = {"amount":"0","amount_donation":0,"frequency":"once","free_amount":false,"currency":"EUR"}; if(typeof Step1 != 'undefined' && dnt_amount){ Step1.initValues(dnt_amount); } }catch(err){} }); // ]]> </script><meta name="viewport" content="width=device-width" /> <link rel="canonical" href="https://donate.rsf.org/~share?cid=32&lang=fr_FR" /> <style type="text/css"> .regularblock { display:none; } body { background: url(/cdn.iraiser.eu/8u5I9gyQQatUmc/0NN6Fgg==/default/origin/000Nic62864011.jpg); } #header { } </style> <script type='text/javascript'> optionsGlobal = ""; optionsCampaign = {"theme":"arya","active_theme":"1","last_version":"1","version":"3","font":"Raleway","font_title":"Raleway","fontsize":"","wedge":"5","--body-background-color":"#FFFFFF","donation_grid":"1","purchase_grid":"2","layout":"2","1_column_direction":"2","widgets_footer":"1","hide_mobile_widget":"1","hide_mobile_reassurance_1":"1","hide_mobile_reassurance_2":"1","hide_mobile_reassurance_3":"0","widgets_header":"1","logo_position":"1","widgets_progress_bar":"false","live_counter_map_sum":"","live_counter_map_count":"","widgets_progress_bar_currency":"","widgets_color_progress_bar_goal":"#010101","widgets_progress_bar_goal":"","widgets_progress_bar_add_amount":"","widgets_progress_bar_add_donors":"","widgets_progress_bar_promt_amount":"","widgets_progress_bar_text_en_EN":"","widgets_progress_bar_text":"","widgets_progress_bar_text_fr_FR":"","widgets_progress_bar_text_es_ES":"","widgets_last_donors":"true","widgets_color_last_donors":"#010101","widgets_last_donors_filter":"10","widgets_last_donors_currency_auto":"1","widgets_last_donors_text_en_EN":"$n just made a donation of $a, thanks !","widgets_last_donors_text":"$n vient de faire un don de $a, merci !","widgets_last_donors_text_fr_FR":"$n vient de faire un don de $a, merci !","widgets_last_donors_text_es_ES":"$n acaba de donar $a, \u00a1gracias!","widgets_cookies_banner":"false","widgets_color_cookies_banner":"#010101","widgets_cookies_banner_text_en_EN":"","widgets_cookies_banner_text":"","widgets_cookies_banner_text_fr_FR":"","widgets_cookies_banner_text_es_ES":"","widgets_cookies_banner_button_en_EN":"","widgets_cookies_banner_button":"","widgets_cookies_banner_button_fr_FR":"","widgets_cookies_banner_button_es_ES":"","widgets_most_popular_once":"true","widgets_most_popular_once_amount":"150","widgets_most_popular_once_title_en_EN":"Most popular","widgets_most_popular_once_title":"Plus populaire","widgets_most_popular_once_title_fr_FR":"Plus populaire","widgets_most_popular_once_title_es_ES":"M\u00e1s popular","widgets_most_popular_once_text_en_EN":"","widgets_most_popular_once_text":"","widgets_most_popular_once_text_fr_FR":"","widgets_most_popular_once_text_es_ES":"","widgets_most_popular_regular":"true","widgets_most_popular_regular_amount":"25","widgets_most_popular_regular_title_en_EN":"Most popular","widgets_most_popular_regular_title":"Plus populaire","widgets_most_popular_regular_title_fr_FR":"Plus populaire","widgets_most_popular_regular_title_es_ES":"M\u00e1s popular","widgets_most_popular_regular_text_en_EN":"","widgets_most_popular_regular_text":"","widgets_most_popular_regular_text_fr_FR":"","widgets_most_popular_regular_text_es_ES":"","--main-action-color":"#E40046","--main-action-color-lighter":"#ff4062","--description-color":"#E40046","--information-color":"#010101","--column-background-color":"#FFFFFFE8","--banner-color":"#030303","--banner-color-darker":"#000000"}; campaign_id = "32"; context_lang = "fr_FR"; campaign_stats = {"count":"22156","sum":"240051874","min":"200","max":"984000","avg":"108.35","progress":"100","last_donators":[{"firstname":"Olivier","total":"5000","currency":"EUR","date":"2025-02-16 18:18:00","campaign":"32","city":"FROGES","message":"","avatar":""},{"firstname":"Silvio","total":"6000","currency":"EUR","date":"2025-02-16 09:23:00","campaign":"32","city":"KARLOVAC","message":"","avatar":""},{"firstname":"Marion Charlotte","total":"2500","currency":"EUR","date":"2025-02-16 08:57:00","campaign":"32","city":"BERLIN","message":"","avatar":""},{"firstname":"d'Avout","total":"50000","currency":"EUR","date":"2025-02-15 16:36:00","campaign":"32","city":"EMERAINVILLE","message":"","avatar":""},{"firstname":"Yannick","total":"3000","currency":"EUR","date":"2025-02-15 10:02:00","campaign":"32","city":"PLOMELIN","message":"","avatar":""},{"firstname":"Servane","total":"6000","currency":"EUR","date":"2025-02-14 11:57:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Sylve","total":"2500","currency":"EUR","date":"2025-02-14 11:35:00","campaign":"32","city":"\u00c5SELE","message":"","avatar":""},{"firstname":"Laure","total":"10000","currency":"EUR","date":"2025-02-14 11:16:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Alain","total":"5000","currency":"EUR","date":"2025-02-14 09:30:00","campaign":"32","city":"GRENOBLE","message":"","avatar":""},{"firstname":"MICHELLE","total":"5000","currency":"EUR","date":"2025-02-14 08:33:00","campaign":"32","city":"YUTZ","message":"","avatar":""},{"firstname":"Hermes","total":"11000","currency":"EUR","date":"2025-02-14 00:09:00","campaign":"32","city":"PINPON","message":"","avatar":""},{"firstname":"Pierre","total":"10000","currency":"EUR","date":"2025-02-13 18:02:00","campaign":"32","city":"VINCENNES","message":"","avatar":""},{"firstname":"Anne","total":"10000","currency":"EUR","date":"2025-02-13 16:26:00","campaign":"32","city":"BRUXELLES","message":"","avatar":""},{"firstname":"Sylvie","total":"10000","currency":"EUR","date":"2025-02-13 14:53:00","campaign":"32","city":"STRASBOURG","message":"","avatar":""},{"firstname":"Claire","total":"4000","currency":"EUR","date":"2025-02-13 14:06:00","campaign":"32","city":"PARIS 13","message":"","avatar":""},{"firstname":"Evelyne","total":"3000","currency":"EUR","date":"2025-02-13 13:50:00","campaign":"32","city":"SAUMONT-LA-POTERIE","message":"","avatar":""},{"firstname":"Luc","total":"15000","currency":"EUR","date":"2025-02-13 13:32:00","campaign":"32","city":"COURT-SAINT-ETIENNE","message":"","avatar":""},{"firstname":"Aureline","total":"4000","currency":"EUR","date":"2025-02-13 11:45:00","campaign":"32","city":"RENNES","message":"","avatar":""},{"firstname":"Evelyne","total":"5000","currency":"EUR","date":"2025-02-13 11:36:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Andr\u00e9","total":"2000","currency":"EUR","date":"2025-02-13 11:34:00","campaign":"32","city":"PENSOL","message":"","avatar":""},{"firstname":"Alenka","total":"3000","currency":"EUR","date":"2025-02-13 11:21:00","campaign":"32","city":"MONTREUIL","message":"","avatar":""},{"firstname":"JOHN &amp; HARRY","total":"4000","currency":"EUR","date":"2025-02-13 10:25:00","campaign":"32","city":"RIXENSART","message":"","avatar":""},{"firstname":"Jean-Luc","total":"30000","currency":"EUR","date":"2025-02-11 17:09:00","campaign":"32","city":"NEUZEUG","message":"","avatar":""},{"firstname":"Lucie","total":"2000","currency":"EUR","date":"2025-02-11 11:23:00","campaign":"32","city":"CESSON S\u00e9VIGN\u00e9","message":"","avatar":""},{"firstname":"Niel","total":"5000","currency":"EUR","date":"2025-02-11 11:23:00","campaign":"32","city":"MANDELBACHTAL","message":"","avatar":""},{"firstname":"Cristian","total":"1000","currency":"EUR","date":"2025-02-10 20:48:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Fran\u00e7ois","total":"10000","currency":"EUR","date":"2025-02-10 16:42:00","campaign":"32","city":"SAINT-GIRONS","message":"","avatar":""},{"firstname":"Marc","total":"15000","currency":"EUR","date":"2025-02-10 05:53:00","campaign":"32","city":"ORNEX","message":"","avatar":""},{"firstname":"Juan Carlos","total":"10000","currency":"EUR","date":"2025-02-10 01:26:00","campaign":"32","city":"BUGGENUM","message":"","avatar":""},{"firstname":"Bonaventure","total":"10000","currency":"EUR","date":"2025-02-09 12:53:00","campaign":"32","city":"SURESNES","message":"","avatar":""},{"firstname":"alain","total":"6000","currency":"EUR","date":"2025-02-09 10:38:00","campaign":"32","city":"CHENOU","message":"","avatar":""},{"firstname":"Louis","total":"50000","currency":"EUR","date":"2025-02-08 16:07:00","campaign":"32","city":"CLICHY","message":"","avatar":""},{"firstname":"Dominique Lucy","total":"1000","currency":"EUR","date":"2025-02-08 08:52:00","campaign":"32","city":"ILLKIRCH","message":"","avatar":""},{"firstname":"Gavin","total":"2500","currency":"GBP","date":"2025-02-07 23:07:00","campaign":"32","city":"ROMSEY","message":"","avatar":""},{"firstname":"annie","total":"10000","currency":"EUR","date":"2025-02-07 21:14:00","campaign":"32","city":"GROSLAY","message":"","avatar":""},{"firstname":"marc","total":"10000","currency":"EUR","date":"2025-02-06 19:25:00","campaign":"32","city":"THORIGN\u00e9 FOUILLARD","message":"","avatar":""},{"firstname":"Bruno","total":"10000","currency":"EUR","date":"2025-02-07 03:36:00","campaign":"32","city":"N\u00eeMES","message":"","avatar":""},{"firstname":"Mathilde","total":"10000","currency":"EUR","date":"2025-02-06 12:41:00","campaign":"32","city":"STRASBOURG","message":"","avatar":""},{"firstname":"Simon","total":"2000","currency":"USD","date":"2025-02-06 12:37:00","campaign":"32","city":"4214","message":"","avatar":""},{"firstname":"Marie-Christine","total":"6000","currency":"EUR","date":"2025-02-06 12:21:00","campaign":"32","city":"LYON","message":"","avatar":""},{"firstname":"Alain","total":"5000","currency":"EUR","date":"2025-02-06 10:44:00","campaign":"32","city":"MONTPELLIER","message":"","avatar":""},{"firstname":"DANIELLE","total":"6000","currency":"EUR","date":"2025-02-05 19:50:00","campaign":"32","city":"IVRY-SUR-SEINE","message":"","avatar":""},{"firstname":"Natasha","total":"2500","currency":"USD","date":"2025-02-05 16:37:00","campaign":"32","city":"NEW YORK","message":"","avatar":""},{"firstname":"ROBERT","total":"5000","currency":"EUR","date":"2025-02-05 14:28:00","campaign":"32","city":"BETTON","message":"","avatar":""},{"firstname":"boris","total":"1000","currency":"EUR","date":"2025-02-05 14:05:00","campaign":"32","city":"LA TRONCHE","message":"","avatar":""},{"firstname":"Marie","total":"20000","currency":"EUR","date":"2025-02-05 09:23:00","campaign":"32","city":"CAGNOTTE","message":"","avatar":""},{"firstname":"Corinne","total":"12000","currency":"EUR","date":"2025-02-05 09:10:00","campaign":"32","city":"GRADIGNAN","message":"","avatar":""},{"firstname":"Flora","total":"1000","currency":"EUR","date":"2025-02-05 05:31:00","campaign":"32","city":"SAINT-M\u00e9DARD-EN-JALLES","message":"","avatar":""},{"firstname":"Emmanouil","total":"2500","currency":"EUR","date":"2025-02-05 05:31:00","campaign":"32","city":"CHANIA","message":"","avatar":""},{"firstname":"Aur\u00e9lie","total":"1000","currency":"EUR","date":"2025-02-05 05:31:00","campaign":"32","city":"FONTENAY SOUS BOIS","message":"","avatar":""}],"date_cache":"2025-02-17"}; campaign_stats_last_donators = [{"firstname":"Olivier","total":"5000","currency":"EUR","date":"2025-02-16 18:18:00","campaign":"32","city":"FROGES","message":"","avatar":""},{"firstname":"Silvio","total":"6000","currency":"EUR","date":"2025-02-16 09:23:00","campaign":"32","city":"KARLOVAC","message":"","avatar":""},{"firstname":"Marion Charlotte","total":"2500","currency":"EUR","date":"2025-02-16 08:57:00","campaign":"32","city":"BERLIN","message":"","avatar":""},{"firstname":"d'Avout","total":"50000","currency":"EUR","date":"2025-02-15 16:36:00","campaign":"32","city":"EMERAINVILLE","message":"","avatar":""},{"firstname":"Yannick","total":"3000","currency":"EUR","date":"2025-02-15 10:02:00","campaign":"32","city":"PLOMELIN","message":"","avatar":""},{"firstname":"Servane","total":"6000","currency":"EUR","date":"2025-02-14 11:57:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Sylve","total":"2500","currency":"EUR","date":"2025-02-14 11:35:00","campaign":"32","city":"\u00c5SELE","message":"","avatar":""},{"firstname":"Laure","total":"10000","currency":"EUR","date":"2025-02-14 11:16:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Alain","total":"5000","currency":"EUR","date":"2025-02-14 09:30:00","campaign":"32","city":"GRENOBLE","message":"","avatar":""},{"firstname":"MICHELLE","total":"5000","currency":"EUR","date":"2025-02-14 08:33:00","campaign":"32","city":"YUTZ","message":"","avatar":""},{"firstname":"Hermes","total":"11000","currency":"EUR","date":"2025-02-14 00:09:00","campaign":"32","city":"PINPON","message":"","avatar":""},{"firstname":"Pierre","total":"10000","currency":"EUR","date":"2025-02-13 18:02:00","campaign":"32","city":"VINCENNES","message":"","avatar":""},{"firstname":"Anne","total":"10000","currency":"EUR","date":"2025-02-13 16:26:00","campaign":"32","city":"BRUXELLES","message":"","avatar":""},{"firstname":"Sylvie","total":"10000","currency":"EUR","date":"2025-02-13 14:53:00","campaign":"32","city":"STRASBOURG","message":"","avatar":""},{"firstname":"Claire","total":"4000","currency":"EUR","date":"2025-02-13 14:06:00","campaign":"32","city":"PARIS 13","message":"","avatar":""},{"firstname":"Evelyne","total":"3000","currency":"EUR","date":"2025-02-13 13:50:00","campaign":"32","city":"SAUMONT-LA-POTERIE","message":"","avatar":""},{"firstname":"Luc","total":"15000","currency":"EUR","date":"2025-02-13 13:32:00","campaign":"32","city":"COURT-SAINT-ETIENNE","message":"","avatar":""},{"firstname":"Aureline","total":"4000","currency":"EUR","date":"2025-02-13 11:45:00","campaign":"32","city":"RENNES","message":"","avatar":""},{"firstname":"Evelyne","total":"5000","currency":"EUR","date":"2025-02-13 11:36:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Andr\u00e9","total":"2000","currency":"EUR","date":"2025-02-13 11:34:00","campaign":"32","city":"PENSOL","message":"","avatar":""},{"firstname":"Alenka","total":"3000","currency":"EUR","date":"2025-02-13 11:21:00","campaign":"32","city":"MONTREUIL","message":"","avatar":""},{"firstname":"JOHN &amp; HARRY","total":"4000","currency":"EUR","date":"2025-02-13 10:25:00","campaign":"32","city":"RIXENSART","message":"","avatar":""},{"firstname":"Jean-Luc","total":"30000","currency":"EUR","date":"2025-02-11 17:09:00","campaign":"32","city":"NEUZEUG","message":"","avatar":""},{"firstname":"Lucie","total":"2000","currency":"EUR","date":"2025-02-11 11:23:00","campaign":"32","city":"CESSON S\u00e9VIGN\u00e9","message":"","avatar":""},{"firstname":"Niel","total":"5000","currency":"EUR","date":"2025-02-11 11:23:00","campaign":"32","city":"MANDELBACHTAL","message":"","avatar":""},{"firstname":"Cristian","total":"1000","currency":"EUR","date":"2025-02-10 20:48:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Fran\u00e7ois","total":"10000","currency":"EUR","date":"2025-02-10 16:42:00","campaign":"32","city":"SAINT-GIRONS","message":"","avatar":""},{"firstname":"Marc","total":"15000","currency":"EUR","date":"2025-02-10 05:53:00","campaign":"32","city":"ORNEX","message":"","avatar":""},{"firstname":"Juan Carlos","total":"10000","currency":"EUR","date":"2025-02-10 01:26:00","campaign":"32","city":"BUGGENUM","message":"","avatar":""},{"firstname":"Bonaventure","total":"10000","currency":"EUR","date":"2025-02-09 12:53:00","campaign":"32","city":"SURESNES","message":"","avatar":""},{"firstname":"alain","total":"6000","currency":"EUR","date":"2025-02-09 10:38:00","campaign":"32","city":"CHENOU","message":"","avatar":""},{"firstname":"Louis","total":"50000","currency":"EUR","date":"2025-02-08 16:07:00","campaign":"32","city":"CLICHY","message":"","avatar":""},{"firstname":"Dominique Lucy","total":"1000","currency":"EUR","date":"2025-02-08 08:52:00","campaign":"32","city":"ILLKIRCH","message":"","avatar":""},{"firstname":"Gavin","total":"2500","currency":"GBP","date":"2025-02-07 23:07:00","campaign":"32","city":"ROMSEY","message":"","avatar":""},{"firstname":"annie","total":"10000","currency":"EUR","date":"2025-02-07 21:14:00","campaign":"32","city":"GROSLAY","message":"","avatar":""},{"firstname":"marc","total":"10000","currency":"EUR","date":"2025-02-06 19:25:00","campaign":"32","city":"THORIGN\u00e9 FOUILLARD","message":"","avatar":""},{"firstname":"Bruno","total":"10000","currency":"EUR","date":"2025-02-07 03:36:00","campaign":"32","city":"N\u00eeMES","message":"","avatar":""},{"firstname":"Mathilde","total":"10000","currency":"EUR","date":"2025-02-06 12:41:00","campaign":"32","city":"STRASBOURG","message":"","avatar":""},{"firstname":"Simon","total":"2000","currency":"USD","date":"2025-02-06 12:37:00","campaign":"32","city":"4214","message":"","avatar":""},{"firstname":"Marie-Christine","total":"6000","currency":"EUR","date":"2025-02-06 12:21:00","campaign":"32","city":"LYON","message":"","avatar":""},{"firstname":"Alain","total":"5000","currency":"EUR","date":"2025-02-06 10:44:00","campaign":"32","city":"MONTPELLIER","message":"","avatar":""},{"firstname":"DANIELLE","total":"6000","currency":"EUR","date":"2025-02-05 19:50:00","campaign":"32","city":"IVRY-SUR-SEINE","message":"","avatar":""},{"firstname":"Natasha","total":"2500","currency":"USD","date":"2025-02-05 16:37:00","campaign":"32","city":"NEW YORK","message":"","avatar":""},{"firstname":"ROBERT","total":"5000","currency":"EUR","date":"2025-02-05 14:28:00","campaign":"32","city":"BETTON","message":"","avatar":""},{"firstname":"boris","total":"1000","currency":"EUR","date":"2025-02-05 14:05:00","campaign":"32","city":"LA TRONCHE","message":"","avatar":""},{"firstname":"Marie","total":"20000","currency":"EUR","date":"2025-02-05 09:23:00","campaign":"32","city":"CAGNOTTE","message":"","avatar":""},{"firstname":"Corinne","total":"12000","currency":"EUR","date":"2025-02-05 09:10:00","campaign":"32","city":"GRADIGNAN","message":"","avatar":""},{"firstname":"Flora","total":"1000","currency":"EUR","date":"2025-02-05 05:31:00","campaign":"32","city":"SAINT-M\u00e9DARD-EN-JALLES","message":"","avatar":""},{"firstname":"Emmanouil","total":"2500","currency":"EUR","date":"2025-02-05 05:31:00","campaign":"32","city":"CHANIA","message":"","avatar":""},{"firstname":"Aur\u00e9lie","total":"1000","currency":"EUR","date":"2025-02-05 05:31:00","campaign":"32","city":"FONTENAY SOUS BOIS","message":"","avatar":""}]; campaign_currency = "EUR"; iraiser_counter = ''; client_livecounter = "rsf"; bymonth = 'par mois'; i18n = []; checkoutPage = ''; </script> <script id="javascript_arya" type="text/javascript" src="https://donate.rsf.org/themes/default/arya/dist/v3.15/arya.js?v=24070" ></script> <link type="text/css" href="https://donate.rsf.org/themes/default/arya/dist/v3.15/arya.css?v=24070" rel="stylesheet" /> <!-- added cid 188, 195 and 196 cf TBS564 --> <!-- TODO : confirmer le comportement souhaité car la custo ajoute aussi des champs de choix de currency --> <script> var currencies = {"GBP":{"symbol":"\u00a3","order":"3"},"EUR":{"symbol":"\u20ac","order":"2"},"USD":{"symbol":"$","order":"1"}}; var translations = {"en_EN":{"currency":"Currency","cardType":"Please select your card type"},"fr_FR":{"currency":"Devise","cardType":"S\u00e9lectionnez votre type de carte bancaire"},"es_ES":{"currency":"Moneda","cardType":"Seleccione el tipo de tarjeta"}}; var lang = 'fr_FR'; var defaultCurrency = 'EUR'; var page = 'form'; </script> <script type="text/javascript" src="/libs.iraiser.eu/libs/themes/arya/js.cookie.js?v=5" ></script> <script type="text/javascript" src="/libs.iraiser.eu/users/reporters-sans-frontieres/script.js?v=1"></script> <style> #type-b.arya #c-currency { margin: 0 auto 20px; padding: 0 20px; } </style> <!-- --> <script> $( document ).ready(function() { const currencyElement = document.querySelector("#currency"); }) </script> <!-- recup <script type="text/javascript"> $(document).ready(function(){ $( "#header" ).wrap( "<div class='header-fixed'></div>" ); }); </script> <style type="text/css"> body, html { overflow-x: hidden; } body { font-family: 'Open Sans', sans-serif; } #logo a:after { font-weight: 800; vertical-align: middle; font-size: 24px; color: #999999; margin-left: 10px; } @media only screen and (max-width: 767px) { #logo a:after { display: inline-block; } } html[lang="fr_FR"] #type-b #logo a:after { content: "Nous soutenir"; } html[lang="en_EN"] #type-b #logo a:after { content: "Support us"; } html[lang="fr_FR"] #type-a #logo a:after { content: "Adhésion"; } html[lang="en_EN"] #type-a #logo a:after { content: "Membership"; } #container { overflow: initial; } .header-fixed { position: relative; top: 0; left: 0; width: 100%; background: #fff; } .header-fixed:before { content:""; background: #fff; position: absolute; top: 0; left: -200%; width: 400%; height: 100%; z-index: 1; } #header { position: relative; width: 940px; margin: 0 auto; z-index: 2; } @media only screen and (max-width: 959px) and (min-width: 768px) { #header { width: 768px; } } @media only screen and (max-width: 767px) and (min-width: 480px) { #header { width: 420px; } } @media only screen and (max-width: 767px) { #header { width: auto; } } #header .lastUnit { float: none; display: table-cell; width: 9999em; padding: 15px 0 0; } #type-a #header .lastUnit { padding: 25px 0 0; } @media only screen and (max-width: 767px) { #header .lastUnit { display: block; padding: 0; } } #logo { padding: 0; } #logo h1, #logo a, #logo img { padding: 5px 0; display: inline-block; float: none; vertical-align: middle; text-decoration :none; } #lang p { font-weight: 800; text-transform: uppercase; padding: 10px 0 5px; text-align: left; } #lang a { text-decoration: none; transition: all .3s; } #lang a:hover, #lang a:focus { color: #FC3433; } #lang a.current { color: #FC3433; } #type-a #navbar { margin: 30px 0; height: 47px; } #type-a #navbar #security-info { padding: 0; float: none; } @media only screen and (max-width: 959px) { #type-a #navbar #security-info { width: 40% !important; float: right !important; } } #step-nav { padding: 0; background: #fff; } @media only screen and (max-width: 959px) { #step-nav { width: 20% !important; } } @media only screen and (max-width: 767px) { #step-nav { width: 40% !important; } } #form-steps { padding: 50px 0 0; } #step-nav ul { padding: 0; font-size: 16px; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; width: 100%; } #step-nav ul li { padding: 14px 0; flex-grow: 1; margin-right: 0; text-align: center; position: relative; } #step-nav ul li.current:after { content: ""; position: absolute; right: -20px; top: 0; width: 0; height: 0; border-style: solid; border-width: 24px 0 24px 20px; border-color: transparent transparent transparent #FC3433; } #step-nav li.current { background: #FC3433; font-weight: 800; } #step-nav li span { display: none; } #c-city { width: 50%; } #step-nav ul li.current a { color: #fff; } #type-a #main-container, #type-a #navbar { display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; } @media only screen and (max-width: 959px) { #type-a #main-container, #type-a #navbar { display: block; } } #main { } #type-a .bis { padding: 0; } .step-title h2 { font-family: 'Open Sans', sans-serif; font-weight: 800; font-size: 25px; color: #000; } .unit { box-sizing: border-box; padding: 0 10px; } @media only screen and (max-width: 959px) and (min-width: 768px) { .unit#logo { width: 75% !important; float: left !important; } .unit#lang { width: 25% !important; } } #form-info { background: none; border: none; font-weight: 800; font-size: 24px; text-align: center; color: #fff; padding: 0 20px; margin: 50px 0 30px; } @media only screen and (max-width: 959px) { #form-info { color: #000; font-size: 20px; } } #form-error { background: #fff; border-color: #FC3433; color: #FC3433; } #form-error h3 { font-weight: 800; font-size: 20px; color: #FC3433; } #form-error li { list-style: disc; color: #FC3433; } .step-container { background: #fff; } #type-a #content { background: #fff; } #type-a #sidebar { background: #f2f1f3; } #type-a #sidebar .step-info h4{ color: #000; font-size: 21px; font-weight: 800; font-weight: normal; } #once { border: 0; } #type-a #once { background: none; color: #000; float: none; width: 100%; padding: 0; height: auto !important; } #type-a #once h3 { font-weight: 800; font-size: 30px; text-transform: initial; } #type-b #once { background: #000; color: #fff; } #type-b #once .bloc-content h3 { color: #fff; } #type-a #or { display: none; } #type-a #regular { height: auto !important; float: none; width: 100%; } #type-b #regular { background: #FC3433; color: #fff; } #type-a #regular .bloc-content h3 { color: #000; font-size: 30px; font-weight: 800; text-transform: initial; margin-bottom: 20px; } #type-b #regular .bloc-content h3 { background: #FC3433; color: #fff; } #type-b #regular .radio-inline { color: #fff; } .step-container .step-info { background: #F2F1F3; color: #000; } .step-container .step-info h4 { color: #000; font-weight: 300; font-size: 21px; font-weight: normal; } #contact-info { background: #fff; border: 0; } .payment-submit input { width: auto; } @media only screen and (max-width: 959px) { .#type-a payment-submit input { width: auto; } } .lastUnit { float: left; display:block; width: 33.3333%; } #security-info { padding: 0 10px; } #security-info img { width: 100%; } #type-a .radio-desc { color: #000; } #type-a .radio-desc li { overflow: initial; } #type-a .radio-desc span { color: #FC3433; } #type-a #regular .tax-info strong, #type-a #regular .isf-info strong, #type-a #once .tax-info strong, #type-a #once .isf-info strong { color: #000; } #type-b #regular .tax-info strong, #type-b #regular .isf-info strong, #type-b #once .tax-info strong, #type-b #once .isf-info strong { color: #fff; } #type-b #step-2 input:not(.button), #type-b #step-3 input:not(.button) { width: 100%; padding: 10px 10px; border: 1px solid #8B8A89; box-sizing: border-box; } #step-3 .payment-submit input { border: 0; } .button { max-width: 100%; } .help { font-size: 10px; } #step-3 .help { width: 100%; box-sizing: border-box; padding: 0; } #type-a #cb-bloc { border: 0; } #type-a #cb-bloc h4 { color: #000; } #card-scode #scode { width: 25%; padding: 5px; } #greetings, #postmail-content { background: #fff; border: 0; margin: 60px auto 0; width: 60%; } @media only screen and (max-width: 767px) { #greetings, #postmail-content { width: 100%; } } #greetings .unit, #postmail-content .unit { float: none; width: 100%; margin: 0 auto; } #greetings-text h2, #postmail-content h3 { text-align: left; font-weight: 800; font-size: 24px; } #copyright { float: right; padding: 10px 0; } #copyright p { padding: 0; } #copyright a, #copyright span { color: #fff; } .dollar-payment { display:block; text-align: left; cursor: pointer, } .dollar-payment:hover:after { color: #FC3433; } .dollar-payment:after { content:""; font-weight: 800; vertical-align: middle; font-size: 14px; color: #000; transition : all .3s; } html[lang="fr_FR"] .dollar-payment:after { content: "Payer en dollars"; } html[lang="en_EN"] .dollar-payment:after { content: "Pay in dollars"; } </style> --> </head><body id="type-b" > <div id="container"> <div id="header" class="line"> <div class="container" id="header_wrapinner"> <div id="logo" class="unit size3of4"> <h1><a href="https://rsf.org/" title="Reporters sans frontières"><img src="/cdn.iraiser.eu/8u5I9gyQQatUmc/0NN6Fgg==/default/origin/RSFlogoFRC-ConvertImage.png" alt="Reporters sans frontières"/></a></h1> </div> <!-- End Logo --> <div id="lang" class="unit size1of4 lastUnit"> <form action="/index.php" method="get" id="form_lang"> <fieldset> <p> <label> <span>Langues :</span> <select name="lang"> <option data-value="en_EN" value="/b/my-donation?cid=32&_cv=1">English</option> <option data-value="fr_FR" value="/b/mon-don?cid=32&_cv=1" selected="selected">Fran&ccedil;ais</option> <option data-value="es_ES" value="/b/mi-donativo?cid=32&_cv=1">Espa&ntilde;ol</option> </select> </label> </p> </fieldset> </form> <script> let searchParams = new URLSearchParams(window.location.search) if (searchParams.has('ns_ira_cr_arg')) { let param = encodeURIComponent(searchParams.get('ns_ira_cr_arg')) $('#form_lang select[name=lang]>option').each(function() { const newUrl = $(this).val() + '&ns_ira_cr_arg=' + param; $(this).val(newUrl); }); } $('#form_lang select[name=lang]').change(function(){ window.location.href = $(this).val(); }); </script> </div> <!-- End Lang --> </div> </div> <!-- End Header --> <div id="_wait"> <div id="floatingCirclesG"> <div class="f_circleG" id="frotateG_01"></div> <div class="f_circleG" id="frotateG_02"></div> <div class="f_circleG" id="frotateG_03"></div> <div class="f_circleG" id="frotateG_04"></div> <div class="f_circleG" id="frotateG_05"></div> <div class="f_circleG" id="frotateG_06"></div> <div class="f_circleG" id="frotateG_07"></div> <div class="f_circleG" id="frotateG_08"></div> </div> </div> <div id="main" class="line"> <div class="container" id="main_wrapinner"> <noscript> </noscript> <form action="/b/steps/save" method="post" id="form-steps" autocomplete="off"> <input type="hidden" name="context_form" value="" /> <input type="hidden" name="context_form_id" value="" /> <input type="hidden" name="cid" value="32" /> <input type="hidden" name="lang" value="fr_FR" /> <input type="hidden" name="scope" value="" id="scope"/> <input type="hidden" name="ns_ira_cr_arg" value="IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNFi3PPDzoLXq/50lVz1n8DbwrUL3EkM5GS2O+6WFkGNMim96rHrQjB1DH9zbmwj1Mhwr7PFoF85b2Tng5zi9IholOmY7x8NPSU/hHKPsbkjGnul2P8jUh2IZ7awzX2CtEA0dOw1VyNGsKPwwSi2V5bgDeu0Y3sq2ldwSqQKZ6rKQ==" id="ns_ira_cr_arg_input" /> <input id="useragent_input_0" type="hidden" name="private_user_agent_cli" value=""/> <script type="text/javascript"> document.getElementById("useragent_input_0").value = navigator.userAgent; </script> <input id="referer_input_0" type="hidden" name="private_referer" value=""/> <script type="text/javascript"> document.getElementById("referer_input_0").value = document.referrer; </script> <input id="random_input_0" type="hidden" name="private_random" value=""/> <script type="text/javascript"> document.getElementById("random_input_0").value = Math.random(); setTimeout(function(){ document.getElementById("random_input_0").value = Math.random(); }, 3000); </script> <div id="step-1" class="unit size1of3"> <div class="step-container"> <div class="step-title"> <h2>Mon don</h2> </div> <div class="step-content"> <div> </div> <div id="once" class="bloc"> <div class="bloc-content"> <h3>Je donne une fois</h3> <div id="bloc-amount-once"> <fieldset class="amount"> <ul class="radio-inline line" id="amount-list-once"> <li><label><span id="value_of_amount-once-6000"><data class='price_amount'>60</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="6000" id="amount-once-6000" /></label></li> <li><label><span id="value_of_amount-once-10000"><data class='price_amount'>100</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="10000" id="amount-once-10000" /></label></li> <li><label><span id="value_of_amount-once-15000"><data class='price_amount'>150</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="15000" id="amount-once-15000" /></label></li> <li><label><span id="value_of_amount-once-20000"><data class='price_amount'>200</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-once" type="radio" value="20000" id="amount-once-20000" /></label></li> </ul> </fieldset> <div class="amount-equivalences"> <p class="amount-equivalences-img"></p> <p class="amount-equivalences-description"></p> </div> <fieldset class="free-amount"> <p><label>Montant libre <input autocomplete="section-famount" name="famount-once" type="text" size="6" id="famount-once" /> <span class="price_currency">€</span> </label></p> </fieldset> <p class="tax-info"></p> <!--<input type="hidden" value="" name="iraiser_analytics_session_id" id="iraiser_analytics_session_id"/>--> <input type="hidden" name="referrer" /> <script type="text/javascript"> try{ $("input[name=referrer]").val(document.referrer); if(document.location.search.indexOf('_cv')>1) { $('input[name=referrer]').after($('<input type="hidden" name="query_string" />').val(document.location.search.substring(1))); } }catch(e){} </script> </div> </div> </div> <!-- End Once --> <div class="onceblock"> </div> <div id="or"> <p>ou</p> </div> <div id="regular" class="bloc"> <div class="bloc-content"> <h3>Je donne tous les mois</h3> <div id="bloc-amount-regular"> <fieldset class="amount"> <ul class="radio-inline line" id="amount-list-regular"> <li><label><span id="value_of_amount-regular-1000"><data class='price_amount'>10</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-regular" type="radio" value="1000" id="amount-regular-1000" /></label></li> <li><label><span id="value_of_amount-regular-2500"><data class='price_amount'>25</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-regular" type="radio" value="2500" id="amount-regular-2500" /></label></li> <li><label><span id="value_of_amount-regular-3500"><data class='price_amount'>35</data>&nbsp;<data class='price_currency'>€</data></span> <input autocomplete="false" name="amount-regular" type="radio" value="3500" id="amount-regular-3500" /></label></li> </ul> </fieldset> <div class="amount-equivalences"> <p class="amount-equivalences-img"></p> <p class="amount-equivalences-description"></p> </div> <fieldset class="free-amount"> <p><label>Montant libre <input autocomplete="section-famount" name="famount-regular" type="text" size="6" id="famount-regular" /> <span class="price_currency">€</span> </label></p> </fieldset> <p class="tax-info"></p> <!--<input type="hidden" value="" name="iraiser_analytics_session_id" id="iraiser_analytics_session_id"/>--> <input type="hidden" name="referrer" /> <script type="text/javascript"> try{ $("input[name=referrer]").val(document.referrer); if(document.location.search.indexOf('_cv')>1) { $('input[name=referrer]').after($('<input type="hidden" name="query_string" />').val(document.location.search.substring(1))); } }catch(e){} </script> </div> </div> </div> <!-- End Each-month --> <div class="regularblock"> </div> <div> </div> </div> <!-- End Step-content --> <div class="step-info"> <h4>Pourquoi donner ?</h4> <div class="step-info-body"> <p>Reporters sans fronti&egrave;res :</p> <ul> <li><strong>D&eacute;fend les journalistes</strong> et collaborateurs des m&eacute;dias emprisonn&eacute;s ou pers&eacute;cut&eacute;s pour leur activit&eacute; professionnelle, et d&eacute;nonce les mauvais traitements et la torture dont ils sont victimes dans de nombreux Etats</li> <li><strong>Lutte pour faire reculer la censure</strong> et combat les lois visant &agrave; restreindre la libert&eacute; de la presse</li> <li>Accorde chaque ann&eacute;e presque trois cent bourses d’assistance afin de <strong>venir en aide &agrave; un journaliste ou &agrave; un m&eacute;dia en difficult&eacute;</strong> (frais d’avocats, frais m&eacute;dicaux, achat de mat&eacute;riel, etc.), ainsi qu’aux familles de reporters emprisonn&eacute;s</li> <li>Agit pour <strong>am&eacute;liorer la s&eacute;curit&eacute; des journalistes</strong>, notamment dans les zones de conflit.</li> </ul> Au-del&agrave; de 100 EUR de don, et sauf mention contraire de votre part adress&eacute;e &agrave; <a href="mailto:don@rsf.org" target="_blank">don@rsf.org</a>, chaque donateur est consid&eacute;r&eacute; comme membre bienfaiteur de Reporters sans fronti&egrave;res. </div> </div> <!-- End Step-info --> </div> <!-- End Step-container --> </div> <!-- End Step-1 --> <div id="step-2" class="unit size1of3"> <div class="step-container"> <div class="step-title"> <h2>Mes coordonnées</h2> </div> <div class="step-content"> <fieldset id="fielset-step2-connect" class="step2_connect_block "> <h4 class="step2_head">Je me connecte et valide mon paiement en un clic</h4> <fieldset id="stripe-connect" class=""> <input type="button" class="button apple_pay_styled_button" id="StripePayButtonLogin" style="display: none;"> </button> <input type="hidden" name="private_stripe_connect_paymentMethod"/> <script type="text/javascript"> if (!window.stripeJsLoaded) { window.stripeJsLoaded = new Promise((resolve, reject) => { const s = document.createElement('script'); s.src = 'https://js.stripe.com/v3/'; s.type = 'text/javascript'; s.onerror = reject; s.onload = resolve; document.head.appendChild(s); }); } </script> <script type="text/javascript"> var Stripe_obj = { PayWithApple:true, PayWithWallet:true, StripeButtonPopulate: false, buttons: { Step2: false, Step3: false }, paymentRequest: false, populate: function (ev) { try { $('input[name=private_stripe_connect_paymentMethod]').val(JSON.stringify(ev)); if ((!$('input[name=lastname]').val() || !$('input[name=firstname]').val()) && ev.payerName) { var name = ev.payerName.split(' ').filter(function(x){ return x&&true;}); if (name.length) { $('input[name=firstname]').val(name[0]); $('input[name=lastname]').val(name.slice(1).join(' ')); }else{ $('input[name=firstname]').val('N/A'); $('input[name=lastname]').val(ev.payerName); } } if (ev.payerEmail) { $('input[name=email]').val(ev.payerEmail); } if (!$('select[name=civility] option:selected').val()) { // If no civility was selected, force a "0" civility value // for the step 2 validation not to fail if the civility was mandatory $('select[name=civility] option:first').prop('selected', 'selected').val("0"); } if ($('input[type=tel]').length && !$('input[type=tel]').val() && ev.payerPhone) { $('input[type=tel]').val(ev.payerPhone); } if (ev.paymentMethod && ev.paymentMethod.billing_details) { let evBillingDetails = ev.paymentMethod.billing_details; if ((!$('input[name=lastname]').val() || !$('input[name=firstname]').val()) && evBillingDetails.name) { var name = evBillingDetails.name.replace('').split(' ').filter(function(x){ return x&&true;}); if (name.length) { $('input[name=firstname]').val(name[0]); $('input[name=lastname]').val(name.slice(1).join(' ')); }else{ $('input[name=firstname]').val('N/A'); $('input[name=lastname]').val(evBillingDetails.name); } } if (evBillingDetails.address) { let evBillingAddress = evBillingDetails.address; if (!$('input[name=country]').val() && evBillingAddress.country) { $('select[name=country] option[value=' + evBillingAddress.country + ']').prop('selected', 'selected'); } if (!$('input[name=address1]').val() && evBillingAddress.line1) { $('input[name=address1]').val(evBillingAddress.line1); } if (!$('input[name=address2]').val() && evBillingAddress.line2) { $('input[name=address2]').val(evBillingAddress.line2); } if (!$('input[name=postcode]').val() && evBillingAddress.postal_code) { $('input[name=postcode]').val(evBillingAddress.postal_code); } if (!$('input[name=city]').val() && evBillingAddress.city) { $('input[name=city]').val(evBillingAddress.city); } } } } catch (err) { let msg = 'Stripe_obj.populate exception: ' + err; console.log(msg); window.onerror(msg); } }, createStripeButton: function (ev) { console.log('Stripe_obj.createStripeButton'); if(!Stripe_obj.buttons.Step3 && !Stripe_obj.buttons.Step2) return; var amount = parseInt(Common.getDonation().amount); var currency = (Common.getCurrency() || "EUR").toLowerCase(); var accountCountry = "SG"; var frequency = Step1.current_donation.frequency; // Some currencies are having an amount with three decimal cents, // We must write 12340 for 12.340 KWD for example (in those cases, last digit must always be a 0) const threeDecimalCurrencies = ["BHD","JOD","KWD","OMR","TND"]; if (threeDecimalCurrencies.includes(currency.toUpperCase())) { amount = amount * 10; } // Some currencies are having an amount with no decimal cents, const zeroDecimalCurrencies = ["BIF","CLP","DJF","GNF","JPY","KMF","KRW","MGA","PYG","RWF","UGX","VND","VUV","XAF","XOF","XPF"]; if (zeroDecimalCurrencies.includes(currency.toUpperCase())) { amount = amount / 100; } console.log({Step2: Stripe_obj.buttons.Step2 && true,Step3: Stripe_obj.buttons.Step3 && true}); console.log({amount: amount, currency: currency, accountCountry: accountCountry, frequency: frequency}); Stripe_obj.paymentRequest = false; try{ if (!Stripe_obj.stripe) { // Create a Stripe client. Stripe_obj.stripe = Stripe("pk_live_srqYyZqem3SpTx2GjUycaPjN", { apiVersion: "2020-08-27" }); } Stripe_obj.paymentRequest = Stripe_obj.stripe.paymentRequest({ country: accountCountry, currency: currency, total: { label: "Reporters sans fronti\u00e8res", amount: parseInt(amount) }, requestPayerName: true, requestPayerEmail: true //requestPayerPhone: true }); }catch(error){ console.log("paymentRequest creation failed"); console.log(error); } if(!Stripe_obj.paymentRequest){ // nothing available Stripe_obj.removeStripeConnect(); Stripe_obj.removeStripePay(); }else { Stripe_obj.paymentRequest.canMakePayment().then( function (result) { console.log('paymentRequest.canMakePayment() - promise fulfilled'); console.log(result); var fieldset = $('#payment_mode-apple_pay-'+frequency); // show / hide the appropriate blocks and mount the button if (result) { if (!result.applePay) { var txt = $("fieldset[data-scope='stripe_apple_pay'] .payment_mode_title").first().text(); var ua = window.navigator.userAgent; if (ua.indexOf('Edge/') > 0) { fieldset.attr('data-stripe-mode','microsoft'); txt = txt.replace('Apple Pay', 'Microsoft Pay'); } else if (ua.indexOf('Chrome') > 0) { txt = txt.replace('Apple Pay', 'Google Pay'); fieldset.attr('data-stripe-mode','google'); } else { txt = txt.replace('Apple Pay', 'Saved Credit Cards'); fieldset.attr('data-stripe-mode','other'); } if(txt) { Common.select("[data-scope='stripe_apple_pay'] .payment_mode_title").text(txt); } Stripe_obj.removeStripeConnect(); if (Stripe_obj.PayWithWallet) { Stripe_obj.mountStripePay(frequency); } else { Stripe_obj.removeStripePay(); } } else { fieldset.attr('data-stripe-mode','apple'); $('#stripe_apple_pay_submit.' + frequency).addClass('apple_pay_styled_button'); //Apple Pay OK if (Stripe_obj.buttons.Step2) { Stripe_obj.mountStripeConnect(frequency); } if (Stripe_obj.buttons.Step3) { if (Stripe_obj.PayWithApple) { // Mount the button with its value cleared // for it not to interfere with Apple Pay styling Stripe_obj.mountStripePay(frequency); } else { Stripe_obj.removeStripePay(); } } Stripe_obj.validatePaymentMethodIfExists(); } } else { // nothing available Stripe_obj.removeStripeConnect(); Stripe_obj.removeStripePay(); } }, function (reason) { console.log('paymentRequest.canMakePayment() - promise rejected'); console.log(reason); Stripe_obj.removeStripeConnect(); Stripe_obj.removeStripePay(); } ); Stripe_obj.paymentRequest.on('cancel', function (ev) { console.log('paymentRequest.on(cancel)'); $('.ira-processing').removeClass('ira-processing'); }); Stripe_obj.paymentRequest.on('paymentmethod', function (ev) { console.log('paymentRequest.on(paymentMethod)'); console.log(ev); if (Stripe_obj.StripeButtonPopulate) { Stripe_obj.populate(ev); Stripe_obj.StripeButtonPopulate = false; } // Send the paymentMethod to your server to charge it $('#stripe_apple_pay_paymentMethod.' + frequency).val(ev.paymentMethod.id); ev.complete('success'); $('#stripe_apple_pay_submit.' + frequency).prop('disabled', false).trigger('click'); //$('.ira-processing').removeClass('ira-processing'); }); } }, mountStripePay:function(frequency){ console.log(`mountStripePay(${frequency})`); $('#stripe_apple_pay_submit.' + frequency).prop('disabled', false).show(); }, validatePaymentMethodIfExists:function(){ }, removeStripePay: function(){ Stripe_obj.buttons.Step3 = false; console.log("removeStripePay"); const stripeApplePayElmt = Common.select("[data-scope='stripe_apple_pay']"); stripeApplePayElmt.filter('h4').addClass('unavailable-payment-method'); stripeApplePayElmt.hide(); $('body').trigger($.Event('paymentModeListUpdated')); }, mountStripeConnect:function(frequency){ console.log(`mountStripeConnect(${frequency})`); $('#StripePayButtonLogin').attr('data-frequency', frequency).show(); }, removeStripeConnect: function(){ console.log("removeStripeConnect"); Stripe_obj.buttons.Step2 = false; $("#stripe-connect").detach(); if(!$('#fielset-step2-connect fieldset').length){ // no connector available $('.step2_connect_block').detach(); // remove all blocks related to connectors }else{ var fieldsetlength = $('#fielset-step2-connect fieldset').length; if($("#fielset-step2-connect fieldset.regularblock").length == fieldsetlength){ $('.step2_connect_block').addClass('regularblock'); }else if($("#fielset-step2-connect fieldset.onceblock").length == fieldsetlength){ $('.step2_connect_block').addClass('onceblock'); } } }, stripe: false } window.stripeJsLoaded.then(() => { $('body').on('init_done tip_changed', Stripe_obj.createStripeButton); Stripe_obj.createStripeButton(); }); </script> <script> Stripe_obj.buttons.Step2 = true; $('#StripePayButtonLogin').click(function(event){ if (Stripe_obj.buttons.Step2 && Step1.check()) { Stripe_obj.StripeButtonPopulate = true; console.log('paymentRequest.show() -- stripeConnect'); Stripe_obj.paymentRequest.show(); } return false; }); </script> <style> #StripePayButtonLogin { -webkit-appearance: -apple-pay-button !important; } #StripePayButtonLogin[data-frequency='once'] { -apple-pay-button-type: donate; } #StripePayButtonLogin[data-frequency='regular'] { -apple-pay-button-type: subscribe; } </style> </fieldset> </fieldset> <fieldset id="fieldset-step2"> <h4 class="step2_head step2_connect_block ">ou je saisis mes coordonnées</h4> <p id="c-email"> <label for="email">Email <span class="required">*</span> <span class="help">ex. bernard.dupond@yahoo.fr</span></label> <input type="text" name="email" id="email" /> </p> <fieldset id="fielset-name"> <p id="c-isc"> <label><input type="checkbox" value="OK" name="iscompany" id="iscompany" /> Je fais un don au nom d'une organisation ou d'une société</label> </p> <p id="c-isc-inf" class="company-infos hidden"> <label for="company">Raison sociale <span class="help">ex. Dupond SARL</span> </label> <input type="text" name="company" id="company" /> </p> <p id="c-civ"> <label for="civility">Civilité <span class="required">*</span></label> <select name="civility" id="civility"> <option value=""></option> <option value="1">M</option> <option value="2">Mme</option> <option value="5">M et Mme</option> <option value="18">n/a</option> </select> </p> <p id="c-fname"> <label for="firstname">Prénom <span class="required">*</span> <span class="help">ex. Bernard</span></label> <input type="text" name="firstname" id="firstname" autocomplete="given-name" /> </p> <p id="c-lname"> <label for="lastname">Nom <span class="required">*</span> <span class="help">ex. Dupond</span></label> <input type="text" name="lastname" id="lastname" autocomplete="family-name" /> </p> </fieldset> <fieldset id="fielset-address"> <p id="c-addr1"> <label for="address1">Adresse <span class="required">*</span> <span class="help">ex. 15 rue Jean Jaurès</span></label> <input type="text" name="address1" id="address1" /> </p> <p id="c-addr2"> <label for="address2">Complément adresse <span class="help">ex. Bât. B</span></label> <input type="text" name="address2" id="address2" /> </p> <div class="line"> <p id="c-pcode" class="unit size1of2"> <label for="postcode">Code postal <span class="required">*</span><span class="help">ex. 75008</span></label> <input type="text" name="postcode" id="postcode" /> </p> <p id="c-city" class="unit size2of2 lastUnit"> <label for="city">Ville <span class="required">*</span> <span class="help">ex. Paris</span></label> <input type="text" name="city" id="city" /> </p> </div> <p id="c-country"> <label for="country">Pays <span class="required">*</span> <span class="help">ex. France</span></label> <select name="country" id="country"> <option value="BE">BELGIQUE</option> <option value="CA">CANADA</option> <option value="US">ÉTATS-UNIS</option> <option value="FR">FRANCE</option> <option value="GB">ROYAUME-UNI</option> <option value="">----------------------------------</option> <option value="AF">AFGHANISTAN</option> <option value="ZA">AFRIQUE DU SUD</option> <option value="AX">ÅLAND, ÎLES</option> <option value="AL">ALBANIE</option> <option value="DZ">ALGÉRIE</option> <option value="DE">ALLEMAGNE</option> <option value="AD">ANDORRE</option> <option value="AO">ANGOLA</option> <option value="AI">ANGUILLA</option> <option value="AQ">ANTARCTIQUE</option> <option value="AG">ANTIGUA-ET-BARBUDA</option> <option value="AN">ANTILLES NÉERLANDAISES</option> <option value="SA">ARABIE SAOUDITE</option> <option value="AR">ARGENTINE</option> <option value="AM">ARMÉNIE</option> <option value="AW">ARUBA</option> <option value="AU">AUSTRALIE</option> <option value="AT">AUTRICHE</option> <option value="AZ">AZERBAÏDJAN</option> <option value="BS">BAHAMAS</option> <option value="BH">BAHREÏN</option> <option value="BD">BANGLADESH</option> <option value="BB">BARBADE</option> <option value="BY">BÉLARUS</option> <option value="BE">BELGIQUE</option> <option value="BZ">BELIZE</option> <option value="BJ">BÉNIN</option> <option value="BM">BERMUDES</option> <option value="BT">BHOUTAN</option> <option value="BO">BOLIVIE, l'ÉTAT PLURINATIONAL DE</option> <option value="BA">BOSNIE-HERZÉGOVINE</option> <option value="BW">BOTSWANA</option> <option value="BV">BOUVET, ÎLE</option> <option value="BR">BRÉSIL</option> <option value="BN">BRUNÉI DARUSSALAM</option> <option value="BG">BULGARIE</option> <option value="BF">BURKINA FASO</option> <option value="BI">BURUNDI</option> <option value="KY">CAÏMANES, ÎLES</option> <option value="KH">CAMBODGE</option> <option value="CM">CAMEROUN</option> <option value="CA">CANADA</option> <option value="CV">CAP-VERT</option> <option value="CF">CENTRAFRICAINE, RÉPUBLIQUE</option> <option value="CL">CHILI</option> <option value="CN">CHINE</option> <option value="CX">CHRISTMAS, ÎLE</option> <option value="CY">CHYPRE</option> <option value="CC">COCOS (KEELING), ÎLES</option> <option value="CO">COLOMBIE</option> <option value="KM">COMORES</option> <option value="CG">CONGO</option> <option value="CD">CONGO, LA RÉPUBLIQUE DÉMOCRATIQUE DU</option> <option value="CK">COOK, ÎLES</option> <option value="KR">CORÉE, RÉPUBLIQUE DE</option> <option value="KP">CORÉE, RÉPUBLIQUE POPULAIRE DÉMOCRATIQUE DE</option> <option value="CR">COSTA RICA</option> <option value="CI">CÔTE D'IVOIRE</option> <option value="HR">CROATIE</option> <option value="CU">CUBA</option> <option value="DK">DANEMARK</option> <option value="DJ">DJIBOUTI</option> <option value="DO">DOMINICAINE, RÉPUBLIQUE</option> <option value="DM">DOMINIQUE</option> <option value="EG">ÉGYPTE</option> <option value="SV">EL SALVADOR</option> <option value="AE">ÉMIRATS ARABES UNIS</option> <option value="EC">ÉQUATEUR</option> <option value="ER">ÉRYTHRÉE</option> <option value="ES">ESPAGNE</option> <option value="EE">ESTONIE</option> <option value="US">ÉTATS-UNIS</option> <option value="ET">ÉTHIOPIE</option> <option value="FK">FALKLAND, ÎLES (MALVINAS)</option> <option value="FO">FÉROÉ, ÎLES</option> <option value="FJ">FIDJI</option> <option value="FI">FINLANDE</option> <option value="FR">FRANCE</option> <option value="GA">GABON</option> <option value="GM">GAMBIE</option> <option value="GE">GÉORGIE</option> <option value="GS">GÉORGIE DU SUD ET LES ÎLES SANDWICH DU SUD</option> <option value="GH">GHANA</option> <option value="GI">GIBRALTAR</option> <option value="GR">GRÈCE</option> <option value="GD">GRENADE</option> <option value="GL">GROENLAND</option> <option value="GP">GUADELOUPE</option> <option value="GU">GUAM</option> <option value="GT">GUATEMALA</option> <option value="GG">GUERNESEY</option> <option value="GN">GUINÉE</option> <option value="GQ">GUINÉE ÉQUATORIALE</option> <option value="GW">GUINÉE-BISSAU</option> <option value="GY">GUYANA</option> <option value="GF">GUYANE FRANÇAISE</option> <option value="HT">HAÏTI</option> <option value="HM">HEARD, ÎLE ET MCDONALD, ÎLES</option> <option value="HN">HONDURAS</option> <option value="HK">HONG-KONG</option> <option value="HU">HONGRIE</option> <option value="IM">ÎLE DE MAN</option> <option value="UM">ÎLES MINEURES ÉLOIGNÉES DES ÉTATS-UNIS</option> <option value="VG">ÎLES VIERGES BRITANNIQUES</option> <option value="VI">ÎLES VIERGES DES ÉTATS-UNIS</option> <option value="IN">INDE</option> <option value="ID">INDONÉSIE</option> <option value="IR">IRAN, RÉPUBLIQUE ISLAMIQUE D'</option> <option value="IQ">IRAQ</option> <option value="IE">IRLANDE</option> <option value="IS">ISLANDE</option> <option value="IL">ISRAËL</option> <option value="IT">ITALIE</option> <option value="JM">JAMAÏQUE</option> <option value="JP">JAPON</option> <option value="JE">JERSEY</option> <option value="JO">JORDANIE</option> <option value="KZ">KAZAKHSTAN</option> <option value="KE">KENYA</option> <option value="KG">KIRGHIZISTAN</option> <option value="KI">KIRIBATI</option> <option value="KW">KOWEÏT</option> <option value="LA">LAO, RÉPUBLIQUE DÉMOCRATIQUE POPULAIRE</option> <option value="LS">LESOTHO</option> <option value="LV">LETTONIE</option> <option value="LB">LIBAN</option> <option value="LR">LIBÉRIA</option> <option value="LY">LIBYENNE, JAMAHIRIYA ARABE</option> <option value="LI">LIECHTENSTEIN</option> <option value="LT">LITUANIE</option> <option value="LU">LUXEMBOURG</option> <option value="MO">MACAO</option> <option value="MK">MACÉDOINE, L'EX-RÉPUBLIQUE YOUGOSLAVE DE</option> <option value="MG">MADAGASCAR</option> <option value="MY">MALAISIE</option> <option value="MW">MALAWI</option> <option value="MV">MALDIVES</option> <option value="ML">MALI</option> <option value="MT">MALTE</option> <option value="MP">MARIANNES DU NORD, ÎLES</option> <option value="MA">MAROC</option> <option value="MH">MARSHALL, ÎLES</option> <option value="MQ">MARTINIQUE</option> <option value="MU">MAURICE</option> <option value="MR">MAURITANIE</option> <option value="YT">MAYOTTE</option> <option value="MX">MEXIQUE</option> <option value="FM">MICRONÉSIE, ÉTATS FÉDÉRÉS DE</option> <option value="MD">MOLDOVA, RÉPUBLIQUE DE</option> <option value="MC">MONACO</option> <option value="MN">MONGOLIE</option> <option value="ME">MONTÉNÉGRO</option> <option value="MS">MONTSERRAT</option> <option value="MZ">MOZAMBIQUE</option> <option value="MM">MYANMAR</option> <option value="NA">NAMIBIE</option> <option value="NR">NAURU</option> <option value="NP">NÉPAL</option> <option value="NI">NICARAGUA</option> <option value="NE">NIGER</option> <option value="NG">NIGÉRIA</option> <option value="NU">NIUÉ</option> <option value="NF">NORFOLK, ÎLE</option> <option value="NO">NORVÈGE</option> <option value="NC">NOUVELLE-CALÉDONIE</option> <option value="NZ">NOUVELLE-ZÉLANDE</option> <option value="IO">OCÉAN INDIEN, TERRITOIRE BRITANNIQUE DE L'</option> <option value="OM">OMAN</option> <option value="UG">OUGANDA</option> <option value="UZ">OUZBÉKISTAN</option> <option value="PK">PAKISTAN</option> <option value="PW">PALAOS</option> <option value="PS">PALESTINIEN OCCUPÉ, TERRITOIRE</option> <option value="PA">PANAMA</option> <option value="PG">PAPOUASIE-NOUVELLE-GUINÉE</option> <option value="PY">PARAGUAY</option> <option value="NL">PAYS-BAS</option> <option value="PE">PÉROU</option> <option value="PH">PHILIPPINES</option> <option value="PN">PITCAIRN</option> <option value="PL">POLOGNE</option> <option value="PF">POLYNÉSIE FRANÇAISE</option> <option value="PR">PORTO RICO</option> <option value="PT">PORTUGAL</option> <option value="QA">QATAR</option> <option value="RE">RÉUNION</option> <option value="RO">ROUMANIE</option> <option value="GB">ROYAUME-UNI</option> <option value="RU">RUSSIE, FÉDÉRATION DE</option> <option value="RW">RWANDA</option> <option value="EH">SAHARA OCCIDENTAL</option> <option value="BL">SAINT-BARTHÉLEMY</option> <option value="KN">SAINT-KITTS-ET-NEVIS</option> <option value="SM">SAINT-MARIN</option> <option value="MF">SAINT-MARTIN</option> <option value="PM">SAINT-PIERRE-ET-MIQUELON</option> <option value="VA">SAINT-SIÈGE (ÉTAT DE LA CITÉ DU VATICAN)</option> <option value="VC">SAINT-VINCENT-ET-LES GRENADINES</option> <option value="SH">SAINTE-HÉLÈNE, ASCENSION ET TRISTAN DA CUNHA</option> <option value="LC">SAINTE-LUCIE</option> <option value="SB">SALOMON, ÎLES</option> <option value="WS">SAMOA</option> <option value="AS">SAMOA AMÉRICAINES</option> <option value="ST">SAO TOMÉ-ET-PRINCIPE</option> <option value="SN">SÉNÉGAL</option> <option value="RS">SERBIE</option> <option value="SC">SEYCHELLES</option> <option value="SL">SIERRA LEONE</option> <option value="SG" selected="selected">SINGAPOUR</option> <option value="SK">SLOVAQUIE</option> <option value="SI">SLOVÉNIE</option> <option value="SO">SOMALIE</option> <option value="SD">SOUDAN</option> <option value="LK">SRI LANKA</option> <option value="SE">SUÈDE</option> <option value="CH">SUISSE</option> <option value="SR">SURINAME</option> <option value="SJ">SVALBARD ET ÎLE JAN MAYEN</option> <option value="SZ">SWAZILAND</option> <option value="SY">SYRIENNE, RÉPUBLIQUE ARABE</option> <option value="TJ">TADJIKISTAN</option> <option value="TW">TAÏWAN</option> <option value="TZ">TANZANIE, RÉPUBLIQUE-UNIE DE</option> <option value="TD">TCHAD</option> <option value="CZ">TCHÈQUE, RÉPUBLIQUE</option> <option value="TF">TERRES AUSTRALES FRANÇAISES</option> <option value="TH">THAÏLANDE</option> <option value="TL">TIMOR-LESTE</option> <option value="TG">TOGO</option> <option value="TK">TOKELAU</option> <option value="TO">TONGA</option> <option value="TT">TRINITÉ-ET-TOBAGO</option> <option value="TN">TUNISIE</option> <option value="TM">TURKMÉNISTAN</option> <option value="TC">TURKS ET CAÏQUES, ÎLES</option> <option value="TR">TURQUIE</option> <option value="TV">TUVALU</option> <option value="UA">UKRAINE</option> <option value="UY">URUGUAY</option> <option value="VU">VANUATU</option> <option value="VE">VENEZUELA, RÉPUBLIQUE BOLIVARIENNE DU</option> <option value="VN">VIET NAM</option> <option value="WF">WALLIS ET FUTUNA</option> <option value="YE">YÉMEN</option> <option value="ZM">ZAMBIE</option> <option value="ZW">ZIMBABWE</option> </select> </p> <!-- FindMyAddress not enabled on this campaign --> </fieldset> <p name="reserved_phone_number" id="reserved_phone_number_id_67b367534db68" data-type="phone" > <label for="reserved_phone_number"> <span class="reserved_title">Numéro de téléphone</span> <span id="nameHelp_reserved_phone_number" class="help"></span> </label> <input id="reserved_phone_number" type="tel" aria-describedby="nameHelp_reserved_phone_number" name="reserved_phone_number" data-scope="step2" data-required="" value=""/> </p> <script type="text/javascript"> load_phone_input_reserved_phone_number_id_67b367534db68 = function(){ var reserved_phone_input_reserved_phone_number_id_67b367534db68 = $("#reserved_phone_number_id_67b367534db68 input[name=reserved_phone_number]"); var iti_reserved_phone_number_id_67b367534db68 = window.intlTelInput(document.querySelector("#reserved_phone_number_id_67b367534db68 input[name=reserved_phone_number]"),{ initialCountry: "auto", autoPlaceholder: "polite", preferredCountries: ['fr', 'gb', 'be', 'nl', 'de'], utilsScript: "/libs.iraiser.eu/libs/intl-tel-input-15.0.1/build/js/utils.js" }); $("form:has(#reserved_phone_number_id_67b367534db68)").submit(function() { const reserved_phone_input_reserved_phone_number_id_67b367534db68_tmp = reserved_phone_input_reserved_phone_number_id_67b367534db68.val(); reserved_phone_input_reserved_phone_number_id_67b367534db68.val(iti_reserved_phone_number_id_67b367534db68.getNumber()); if(reserved_phone_input_reserved_phone_number_id_67b367534db68.val() == ''){ reserved_phone_input_reserved_phone_number_id_67b367534db68.val(reserved_phone_input_reserved_phone_number_id_67b367534db68_tmp); } }); try { if (reserved_phone_input_reserved_phone_number_id_67b367534db68.val() == '') iti_reserved_phone_number_id_67b367534db68.setCountry('sg'); }catch(e){} $( document ).ready(function(){ $('select[name=country],input[name=country]').change(function(){ try { if(reserved_phone_input_reserved_phone_number_id_67b367534db68.val() == '') iti_reserved_phone_number_id_67b367534db68.setCountry($(this).val().toLowerCase()); }catch(e){} }); }); } $( document ).ready(function(){ if(typeof window.intlTelInput == "undefined"){ $('head').append('<link rel="stylesheet" type="text/css" href="/libs.iraiser.eu/libs/intl-tel-input-15.0.1/build/css/intlTelInput.min.css" />'); $.getScript('/libs.iraiser.eu/libs/intl-tel-input-15.0.1/build/js/intlTelInput.min.js',load_phone_input_reserved_phone_number_id_67b367534db68); }else{ load_phone_input_reserved_phone_number_id_67b367534db68(); } }); </script> <p name="reserved_optin_newsletter" id="reserved_optin_newsletter_id_67b367534dbb7" data-type="checkbox" > <label for="reserved_optin_newsletter"> <input type="hidden" name="reserved_optin_newsletter" value="0" /> <input id="reserved_optin_newsletter" type="checkbox" aria-describedby="nameHelp_reserved_optin_newsletter" name="reserved_optin_newsletter" data-scope="step2" data-required="" value="1" checked /> <span class="reserved_title">Je souhaite recevoir la newsletter</span> <span id="nameHelp_reserved_optin_newsletter" class="help"></span> </label> </p> <p id="required-info"><span class="required">*</span> <span class="help">Champs obligatoires (ces informations sont indispensables pour bénéficier de votre réduction fiscale)</span></p> </fieldset> </div> <!-- End Bloc --> <div class="step-info"> <h4>Respect de votre vie privée</h4> <div class="step-info-body"> <p>Vos coordonn&eacute;es nous sont indispensables pour vous envoyer votre re&ccedil;u fiscal. Conform&eacute;ment &agrave; la loi informatique et libert&eacute;s du 6 janvier 1978, vous disposez d&#39;un droit d&#39;acc&egrave;s, de modification, de rectification et de suppression des donn&eacute;es vous concernant. Pour exercer ce droit, adressez-vous &agrave; :<br /> <br /> <strong>Service Relations Donateurs</strong><br /> <strong>Reporters sans fronti&egrave;res</strong><br /> CS 90247<br /> 75083 Paris Cedex 02 - France.<br /> www.rsf.org<br /> Email: don@rsf.org<br /> <br /> <span style="font-size:20px;"><strong>Donner en toute s&eacute;curit&eacute;</strong></span><br /> <br /> Ce site internet est <strong>100% s&eacute;curis&eacute;</strong>.<br /> Toutes les informations bancaires pour traiter le paiement sont totalement s&eacute;curis&eacute;es. Elles ne sont en aucun cas conserv&eacute;es sur nos syst&egrave;mes informatiques. Gr&acirc;ce au cryptage SSL de vos donn&eacute;es bancaires, vous &ecirc;tes assur&eacute;s de la fiabilit&eacute; de vos transactions sur Internet. Pour en &ecirc;tre certain : l’espace est s&eacute;curis&eacute; d&egrave;s que l’URL de Reporters sans fronti&egrave;res commence par <strong>https</strong>.<br /> Notre service donateurs est &agrave; votre disposition pour r&eacute;pondre &agrave; toutes vos questions. N&#39;h&eacute;sitez pas &agrave; nous contacter par e-mail : don@rsf.org</p> </div> </div> <!-- End Step-info --> </div> <!-- End Step-container --> </div> <!-- End Step-2 --> <div id="step-3" class="unit size1of3 lastUnit"> <div class="step-container"> <div class="step-title"> <h2>Mon règlement</h2> </div> <div class="step-content"> <div id="security-info"> <p>Paiements hautement sécurisés grâce à la méthode de cryptage SSL 256 bits, la norme de sécurité la plus élevée.</p> </div> <div class="payment"> <div id="payment_modes_once"> <input type="hidden" name="paymentNonce" id="paymentNonce" value="" autocomplete="off"/> <input type="hidden" name="stripeErrorCode" id="stripeErrorCode" value="" autocomplete="off"/> <input type="hidden" name="stripeError" id="stripeError" value="" autocomplete="off"/> <fieldset id="payment_mode-card" class="payment_mode"> <h4 class="payment_head"> <span class="payment_mode_title">Carte bancaire</span> </h4> <div class="payment_body" id="creditcard"> <p id="card-number"> <label for="stripe_creditcard_cardNumber_placeholder_once">Saisissez votre numéro de carte bancaire</label> <input type="text" id="stripe_creditcard_cardNumber_placeholder_once" autocomplete="off"/> </p> <div class="line"> <p id="card-expiry" class="unit size1of2"> <label for="stripe_creditcard_cardExpiry_placeholder_once">Date d'expiration</label> <input type="text" id="stripe_creditcard_cardExpiry_placeholder_once" autocomplete="off"/> </p> <p id="card-scode" class="unit size2of2 lastUnit"> <label for="stripe_creditcard_cardCvc_placeholder_once">Code de sécurité</label> <input type="text" id="stripe_creditcard_cardCvc_placeholder_once" autocomplete="off"/> <span class="help">Le code de sécurité est constitué des 3 derniers chiffres inscrits au dos de votre carte bancaire</span> <span class="help amex" style="display: none;">Le code de sécurité est constitué des 4 derniers chiffres inscrits au recto de votre carte bancaire</span> </p> </div> <script type="text/javascript"> if (!window.stripeJsLoaded) { window.stripeJsLoaded = new Promise((resolve, reject) => { const s = document.createElement('script'); s.src = 'https://js.stripe.com/v3/'; s.type = 'text/javascript'; s.onerror = reject; s.onload = resolve; document.head.appendChild(s); }); } </script> <input type="hidden" name="stripe_creditcard_paymentMethod" id="stripe_creditcard_paymentMethod_once" data-scope="stripe" data-required = "1" data-ira-check="window.stripe_creditcard.checkPaymentMethod('once')"/> <script> var stripeElementGetFrequency = () => Step1.current_donation.frequency; if (!window.stripe_creditcard) { const VAL_ERROR = 'error'; const VAL_NOT_SET = 'N/A'; const defaultCoords = {}; defaultCoords["firstname"] = null; defaultCoords["lastname"] = null; defaultCoords["email"] = null; const defaultPaymentMethodErrorMessage = "Les coordonn&eacute;es bancaires saisies sont incorrectes. Merci de les v&eacute;rifier et de les saisir &agrave; nouveau."; const lang = "fr_FR"; const cardCvcPlaceholder = "Use the value provided by Stripe"; const stripePublicApiKey = "pk_live_srqYyZqem3SpTx2GjUycaPjN"; const stripeApiVersion = "2020-08-27"; const coordNames = Object.keys(defaultCoords); const elementConf = { 'cardNumber': { defaultErrorMessage: DntErrors.errorMsg.cardnumber, options: {showIcon: true}, }, 'cardExpiry': { defaultErrorMessage: DntErrors.errorMsg.cardmonth, }, 'cardCvc': { defaultErrorMessage: DntErrors.errorMsg.cardscode, }, }; // only add a CVC placeholder for languages which have a short CVC provided if (cardCvcPlaceholder != 'Use the value provided by Stripe') { elementConf.cardCvc.options = {placeholder: cardCvcPlaceholder}; } const elementTypes = Object.keys(elementConf); window.stripe_creditcard = { complete: {}, elements: {}, error: {}, frequencies: {}, lastInitFrequency: '', stripe: false, checkElement: function(frequency, elementType) { this.log('checkElement', [frequency, elementType]); if (frequency !== this.lastInitFrequency) return false; const complete = this.complete[frequency][elementType]; const error = this.error[frequency][elementType]; const placeholder = $('#' + this.getPlaceholderId(frequency, elementType)); if (!complete || error) { placeholder.attr('data-ira-errormsg', error && error.message ? error.message : elementConf[elementType].defaultErrorMessage ); return false; } else { placeholder.removeAttr('data-ira-errormsg'); return true; } }, checkPaymentMethod: function(frequency) { this.log('checkPaymentMethod', [frequency]); if (frequency !== this.lastInitFrequency) return false; const paymentMethodInput = this.getPaymentMethodInput(frequency); if (paymentMethodInput.val() === VAL_ERROR) { paymentMethodInput.attr('data-ira-errormsg', this.error[frequency].paymentMethod || defaultPaymentMethodErrorMessage); return false; } else { paymentMethodInput.removeAttr('data-ira-errormsg'); return true; } }, createPaymentMethod: function (frequency) { if (frequency !== this.lastInitFrequency) return; this.log('createPaymentMethod', [frequency]); const paymentMethodInput = this.resetPaymentMethod(frequency); for (let elementType of elementTypes) { if (!this.complete[frequency][elementType]) return; } const coords = {}; for (let coordName of coordNames) { const coordInput = $('input[name="' + coordName + '"]'); coords[coordName] = coordInput.length ? coordInput.val() : defaultCoords[coordName]; if (!coords[coordName]) return; } // All other inputs we rely on are ok and won't trigger any error message display, // so until createPaymentMethod succeds, we must ensure paymentMethodInput does paymentMethodInput.val(VAL_ERROR); // Prevent form submission before createPaymentMethod answers $('#stripe_submit.' + frequency).prop('disabled', true); setTimeout(() => { try { this.stripe.createPaymentMethod({ type: 'card', card: this.elements[frequency].cardNumber, billing_details: { name: coords.firstname + ' ' + coords.lastname, email: coords.email, } }).then(result => { $('#stripe_submit.' + frequency).prop('disabled', false); console.log(result); if (result.paymentMethod && result.paymentMethod.id) { paymentMethodInput.val(result.paymentMethod.id); console.log('paymentMethod = ' + paymentMethodInput.val()); } else { this.error[frequency].paymentMethod = result.error.message; for (let prop of ['type', 'code', 'decline_code', 'message']) { window.onerror('createPaymentMethod error.' + prop + ' = ' + result.error[prop]); } } }); } catch (e) { console.log(e); $('#stripe_submit.' + frequency).prop('disabled', false); } }, 500); }, getContainerId: function(frequency, elementType) { return 'stripe_creditcard_' + elementType + '_container_' + frequency; }, getPaymentMethodInput: function(frequency) { return $('#stripe_creditcard_paymentMethod_' + frequency); }, getPlaceholderId: function(frequency, elementType) { return 'stripe_creditcard_' + elementType + '_placeholder_' + frequency; }, /** * Build an array of Stripe JS CssFontSource objects * from the fonts used by the specified elements. * * See https://stripe.com/docs/js/appendix/css_font_source_object * * Warning: works only for fonts loaded from a google-style stylesheet URL * with a family=xxx parameter (where xxx is the font-family) */ getStripeJsCssFontSources: function(ids) { try { const used = {}; for (let id of ids) { const computedStyle = window.getComputedStyle(document.getElementById(id)); const fontFamily = computedStyle.getPropertyValue('font-family'); used[fontFamily] = true; } const hrefs = []; for (let s of document.styleSheets) { if (!s.href) continue; const params = new URLSearchParams(new URL(s.href).search); const fontFamily = params.get('family'); if (used[fontFamily] && (hrefs.indexOf(s.href) === -1)) { hrefs.push(s.href); } } return hrefs.map(href => ({cssSrc: href})); } catch (error) { /** * Stripe Element implementation has javascript incompatibility with Opera browser. * We work around this problem by catching exceptions in getStripeJsCssFontSources and returning an empty list. * This fix will have an impact on the design of Stripe Elements, but it will not block the creation of donations. */ return []; } }, /** * Get the locale as expected by Stripe JS * * See https://stripe.com/docs/js/appendix/supported_locales */ getStripeJsLocale: function () { switch(lang) { case 'en_EN': return 'en-GB'; case 'se_SE': return 'sv'; case 'zh_TW': return lang.substring(0, 2) + '-' + lang.substring(3, 5); default: return lang.substring(0, 2); } }, /** * Build a Stripe JS Style object from the specified element's computed style * and copy all other styles to the provided container. * * See https://stripe.com/docs/js/appendix/style */ getStripeJsStyle: function(id, container) { const styleKeyMap = { // Stripe JS recommands setting background-color on the container //'background-color': 'backgroundColor', 'color': 'color', 'font-family': 'fontFamily', 'font-size': 'fontSize', 'font-smoothing': 'fontSmoothing', 'font-style': 'fontStyle', 'font-variant': 'fontVariant', 'font-weight': 'fontWeight', // Stripe JS doesn't like line-height and doesn't even take it into account //'line-height': 'lineHeight', 'letter-spacing': 'letterSpacing', 'text-align': 'textAlign', 'text-decoration': 'textDecoration', 'text-shadow': 'textShadow', 'text-transform': 'textTransform', }; const baseStyle = {}; const computedStyle = window.getComputedStyle(document.getElementById(id)); for (let cssProp of computedStyle) { const styleKey = styleKeyMap[cssProp]; const cssValue = computedStyle.getPropertyValue(cssProp); if (styleKey) { baseStyle[styleKey] = cssValue; } else { container.css(cssProp, cssValue); } } return {base: baseStyle}; }, init: function (reason) { const frequency = stripeElementGetFrequency(); if (!this.frequencies[frequency]) return; this.log('init', [frequency, reason]); // Stripe elements are reset at every init so we need to reset as well this.complete[frequency] = {}; this.error[frequency] = {}; this.resetPaymentMethod(frequency); this.lastInitFrequency = frequency; this.mount(frequency); }, isMounted: function(frequency) { return !!this.elements[frequency]; }, log: function (method, params = []) { console.log('stripe_creditcard.' + method + '(' + params.join(', ') + ')'); }, mount: function (frequency) { const wasAlreadyMounted = this.unmount(frequency); this.log('mount', [frequency]); if (!this.stripe) { this.stripe = Stripe(stripePublicApiKey, { locale: this.getStripeJsLocale(), apiVersion: stripeApiVersion }); } const stripeElements = this.stripe.elements({ fonts: this.getStripeJsCssFontSources( elementTypes.map(elementType => this.getPlaceholderId(frequency, elementType)) ), }); this.elements[frequency] = {}; for (let elementType of elementTypes) { const placeholderId = this.getPlaceholderId(frequency, elementType); const containerId = this.getContainerId(frequency, elementType); const container = $('<span/>').attr('id', containerId); const element = stripeElements.create(elementType, Object.assign( {style: this.getStripeJsStyle(placeholderId, container)}, elementConf[elementType].options )); this.elements[frequency][elementType] = element; $('#' + placeholderId) .attr('data-scope', 'stripe') .attr('data-required', '1') .attr('data-ira-check', "window.stripe_creditcard.checkElement('" + frequency + "', '" + elementType + "')") .val(VAL_NOT_SET) .hide() .after(container); element.mount('#' + containerId); // Stripe creates an intermediate div between the container and its iframe // Let's force this div's contents to be vertically centered inside the container $('#' + containerId + ' div').css({ display: 'flex', height: '100%', 'align-items': 'center', }); element.on('change', ev => this.onElementChanged(frequency, ev)); } if (!wasAlreadyMounted) { for (let coordName of coordNames) { $('input[name="' + coordName + '"]').on('change', () => this.createPaymentMethod(frequency)); } // Force a re-init if the payment mode was previously hidden // as Stripe does not mount well hidden fields const cvcPlaceholderId = this.getPlaceholderId(frequency, 'cardCvc'); $('#payment_mode-card:has(#' + cvcPlaceholderId + ')').on('payment_shown', () => this.init('payment_shown')); } }, unmount: function (frequency) { if (!this.isMounted(frequency)) return false; this.log('unmount', [frequency]); for (let elementType of elementTypes) { this.elements[frequency][elementType].destroy(); $('#' + this.getContainerId(frequency, elementType)).remove(); $('#' + this.getPlaceholderId(frequency, elementType)).show(); } return true; }, onElementChanged: function (frequency, ev) { this.log('onElementChanged', [ frequency, ev.elementType, ev.complete ? 'complete' : 'not complete', ev.error ? ev.error.message : 'no error', ]); this.complete[frequency][ev.elementType] = ev.complete; this.error[frequency][ev.elementType] = ev.error; this.createPaymentMethod(frequency); }, resetPaymentMethod: function (frequency) { const paymentMethodInput = this.getPaymentMethodInput(frequency); paymentMethodInput.val(VAL_NOT_SET); this.error[frequency].paymentMethod = false; return paymentMethodInput; }, }; window.stripeJsLoaded.then(() => { // Force a reinit when the donation amount or the style change for (let event of ['init_done', 'WebFont.fontactive']) { $('body').on(event, () => window.stripe_creditcard.init(event)); } }); } if (!window.stripe_creditcard.frequencies["once"]) { window.stripe_creditcard.frequencies["once"] = true; window.stripeJsLoaded.then(() => { // Ensure the 1st init is done only once, for the active frequency if (stripeElementGetFrequency() === "once") { window.stripe_creditcard.init("stripeJsLoaded"); } }); } </script> <p id="card-submit" class="payment-submit"> <input name="stripe_submit" type="submit" value="Valider" id="stripe_submit" class="button once" data-scope='stripe'/> </p> </div> </fieldset> <fieldset id="payment_mode-paypal" class="payment_mode " > <h4 class="payment_head"><span class="payment_mode_title">Paypal</span></h4> <div class="payment_body" id="paypal"> <p id="paypal-submit" class="payment-submit"> <input name="paypal_submit" type="submit" value="Valider" alt="Paypal" id="paypal_submit" class="button" data-scope='paypal' /> </p> </div> </fieldset> <fieldset id="payment_mode-fintecture_banktransfer" class="payment_mode" data-scope='fintecture_banktransfer'> <h4 class="payment_head"><span class="payment_mode_title">Virement instantané</span></h4> <div class="payment_body" id="fintecture_banktransfer_body"> <p id="fintecture_banktransfer_provider" data-ira-errormsg="Vous devez s&eacute;lectionner votre banque"> <label> <select name="fintecture_banktransfer_provider" id="fintecture_banktransfer_provider_select" data-scope='fintecture_banktransfer' data-required="1"> <option value="">Sélectionnez votre banque</option> <option value="agfbfr" data-logo="https://assets.fintecture.com/img/providers/svg/agfbfr.svg"> Allianz Banque </option> </optgroup> <optgroup label="Arkéa"> <option value="fegefr" data-logo="https://assets.fintecture.com/img/providers/svg/arkea-x.svg"> Arkéa Banque Privée </option> </optgroup> <option value="axabfr" data-logo="https://assets.fintecture.com/img/providers/svg/axabfr.svg"> AXA Banque </option> <option value="bpsmfr" data-logo="https://assets.fintecture.com/img/providers/svg/bpsmfr.svg"> Banque BCP </option> <option value="bchafr" data-logo="https://assets.fintecture.com/img/providers/svg/bchafr.svg"> Banque Chalus </option> <option value="bsavfr2c" data-logo="https://assets.fintecture.com/img/providers/svg/bsavfr2c.svg"> Banque de Savoie </option> <option value="cdcgfr" data-logo="https://assets.fintecture.com/img/providers/svg/cdcgfr.svg"> Banque des territoires </option> <option value="bspffr" data-logo="https://assets.fintecture.com/img/providers/svg/bspffr.svg"> Banque Palatine </option> </optgroup> <optgroup label="Banque Populaire"> <option value="ccbpfrppmtz" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Alsace Lorraine Champagne </option> <option value="ccbpfrppbdx" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Aquitaine Centre Atlantique </option> <option value="ccbpfrppgre" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Auvergne et Rhône-Alpes </option> <option value="ccbpfrppdjn" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Bourgogne Franche Comté </option> <option value="ccbpfrppna1" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Grand Ouest </option> <option value="ccbpfrppnce" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Méditerranée </option> <option value="ccbpfrpplil" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Nord </option> <option value="ccbpfrpptls" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Occitane </option> <option value="ccbpfrppmtg" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Rives de Paris </option> <option value="ccbpfrppppg" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Sud </option> <option value="ccbpfrppver" data-logo="https://assets.fintecture.com/img/providers/svg/ccbpfr.svg"> Banque Populaire Val de France </option> </optgroup> <option value="cmcifrp1" data-logo="https://assets.fintecture.com/img/providers/svg/cmcifrp1.svg"> Banque Transatlantique </option> </optgroup> <optgroup label="BNP Paribas"> <option value="bnpafr" data-logo="https://assets.fintecture.com/img/providers/svg/bnpafr-x.svg"> BNP Paribas Ma Banque </option> <option value="bnpafr-c" data-logo="https://assets.fintecture.com/img/providers/svg/bnpafr-x.svg"> BNP Paribas Ma Banque Entreprise </option> <option value="bnpafr-p" data-logo="https://assets.fintecture.com/img/providers/svg/bnpafr-x.svg"> BNP Paribas Ma Banque Pro </option> </optgroup> <option value="bousfr" data-logo="https://assets.fintecture.com/img/providers/svg/bousfr.svg"> BoursoBank </option> <option value="bredfr" data-logo="https://assets.fintecture.com/img/providers/svg/bredfr.svg"> BRED </option> <option value="batifr" data-logo="https://assets.fintecture.com/img/providers/svg/batifr.svg"> BTP Banque </option> </optgroup> <optgroup label="Caisse d'Epargne"> <option value="cepafrpp333" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Aquitaine Poitou-Charentes </option> <option value="cepafrpp871" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Auvergne et Limousin </option> <option value="cepafrpp213" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Bourgogne Franche-Comté </option> <option value="cepafrpp444" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Bretagne-Pays De Loire </option> <option value="cepafrpp831" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Côte d'Azur </option> <option value="cepafrpp513" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Grand Est Europe </option> <option value="cepafrpp627" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Hauts de France </option> <option value="cepafrpp751" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Ile De France </option> <option value="cepafrpp348" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Languedoc-Roussillon </option> <option value="cepafrpp426" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Loire Drôme Ardèche </option> <option value="cepafrpp450" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Loire-Centre </option> <option value="cepafrpp313" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Midi-Pyrénées </option> <option value="cepafrpp142" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Normandie </option> <option value="cepafrpp131" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Provence Alpes Corse </option> <option value="cepafrpp382" data-logo="https://assets.fintecture.com/img/providers/svg/cepafr.svg"> Caisse d'Epargne Rhône Alpes </option> </optgroup> <option value="ccfrfr-r" data-logo="https://assets.fintecture.com/img/providers/svg/ccfrfr-r.svg"> CCF (ex HSBC Particulier) </option> <option value="cmcifrpp" data-logo="https://assets.fintecture.com/img/providers/svg/cmcifrpp.svg"> CIC </option> <option value="cmcifrpr" data-logo="https://assets.fintecture.com/img/providers/svg/cmcifrpr.svg"> CIC Privée </option> <option value="crtafr" data-logo="https://assets.fintecture.com/img/providers/svg/crtafr.svg"> Creatis </option> </optgroup> <optgroup label="Crédit Agricole"> <option value="agrifrpp813" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Alpes Provence </option> <option value="agrifrpp872" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Alsace Vosges </option> <option value="agrifrpp879" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Anjou Maine </option> <option value="agrifrpp833" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Aquitaine </option> <option value="agrifrpp847" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Atlantique Vendée </option> <option value="agrifrpp887" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Brie Picardie </option> <option value="agrifrpp878" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Centre Est </option> <option value="agrifrpp868" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Centre France </option> <option value="agrifrpp848" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Centre Loire </option> <option value="agrifrpp895" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Centre Ouest </option> <option value="agrifrpp810" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Champagne Bourgogne </option> <option value="agrifrpp817" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Charente Maritime Deux Sèvres </option> <option value="agrifrpp824" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Charente Périgord </option> <option value="agrifrpp820" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Corse </option> <option value="agrifrpp822" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Côtes-d'Armor </option> <option value="agrifrpp829" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Finistère </option> <option value="agrifrpp825" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Franche-Comté </option> <option value="agrigp" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Guadeloupe </option> <option value="agrifrpp836" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Ille et Vilaine </option> <option value="agrifrpp835" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Languedoc </option> <option value="agrifrpp845" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Loire Haute-Loire </option> <option value="agrifrpp861" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Lorraine </option> <option value="agrimq" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Martinique </option> <option value="agrifrcc860" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Morbihan </option> <option value="agrifrpp867" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Nord de France </option> <option value="agrifrpp802" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Nord Est </option> <option value="agrifrpp812" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Nord Midi-Pyrénées </option> <option value="agrifrpp866" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Normandie </option> <option value="agrifrpp883" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Normandie Seine </option> <option value="agrifrpp882" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Paris </option> <option value="agrifrpp891" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Provence Côte d'Azur </option> <option value="agrifrcc869" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Pyrénées Gascogne </option> <option value="agrire" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Reunion </option> <option value="agrifrpp881" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Savoie </option> <option value="agrifrpp871" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Sud Méditerranée </option> <option value="agrifrpp839" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Sud Rhône Alpes </option> <option value="agrifrpp831" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Toulouse 31 </option> <option value="agrifrpp894" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Touraine Poitou </option> <option value="agrifrpp844" data-logo="https://assets.fintecture.com/img/providers/svg/agrifr.svg"> Crédit Agricole Val de France </option> </optgroup> <option value="ccopfr" data-logo="https://assets.fintecture.com/img/providers/svg/ccopfr.svg"> Crédit Coopératif </option> </optgroup> <optgroup label="Crédit Maritime"> <option value="ccbpfrppna2" data-logo="https://assets.fintecture.com/img/providers/svg/cmmufr.svg"> Crédit Maritime Grand Ouest </option> <option value="ccbpfrpp169" data-logo="https://assets.fintecture.com/img/providers/svg/cmmufr.svg"> Crédit Maritime Littoral du Sud Ouest </option> </optgroup> <option value="cmcifr2a" data-logo="https://assets.fintecture.com/img/providers/svg/cmcifr2a.svg"> Crédit Mutuel </option> <option value="cmcifrpa" data-logo="https://assets.fintecture.com/img/providers/svg/cmcifrpa.svg"> Crédit Mutuel Banque Européenne </option> <option value="cmbrfr" data-logo="https://assets.fintecture.com/img/providers/svg/cmbrfr.svg"> Crédit Mutuel de Bretagne </option> <option value="cmsofr" data-logo="https://assets.fintecture.com/img/providers/svg/cmsofr.svg"> Crédit Mutuel du Sud Ouest </option> <option value="ftnofr" data-logo="https://assets.fintecture.com/img/providers/svg/ftnofr.svg"> Fortuneo </option> <option value="bnpafrhb" data-logo="https://assets.fintecture.com/img/providers/svg/bnpafrhb.svg"> Hello Bank! </option> <option value="ccfrfr-c" data-logo="https://assets.fintecture.com/img/providers/svg/ccfrfr-c.svg"> HSBC Corporate </option> </optgroup> <optgroup label="La Banque Postale"> <option value="psstfr" data-logo="https://assets.fintecture.com/img/providers/svg/psstfr-x.svg"> La Banque Postale Particulier </option> <option value="psstfr-p" data-logo="https://assets.fintecture.com/img/providers/svg/psstfr-x.svg"> La Banque Postale Professionnel </option> </optgroup> <optgroup label="Le Crédit Lyonnais LCL"> <option value="crlyfr" data-logo="https://assets.fintecture.com/img/providers/svg/crlyfr-x.svg"> Le Crédit Lyonnais LCL Particulier </option> <option value="crlyfr-p1" data-logo="https://assets.fintecture.com/img/providers/svg/crlyfr-x.svg"> Le Crédit Lyonnais LCL Professionnel </option> </optgroup> <option value="preufr" data-logo="https://assets.fintecture.com/img/providers/svg/preufr.svg"> Louvre Banque Privée </option> <option value="monnfr" data-logo="https://assets.fintecture.com/img/providers/svg/monnfr.svg"> Mona Banq </option> <option value="qntofr" data-logo="https://assets.fintecture.com/img/providers/svg/qntofr.svg"> Qonto </option> <option value="revogb" data-logo="https://assets.fintecture.com/img/providers/svg/revogb.svg"> Revolut </option> <option value="snnnfr" data-logo="https://assets.fintecture.com/img/providers/svg/snnnfr.svg"> Shine </option> </optgroup> <optgroup label="Société Générale"> <option value="sogefr-c" data-logo="https://assets.fintecture.com/img/providers/svg/sogefr-x.svg"> Société Générale Entreprise </option> <option value="sogefr" data-logo="https://assets.fintecture.com/img/providers/svg/sogefr-x.svg"> Société Générale Particulier </option> <option value="sogefr-p" data-logo="https://assets.fintecture.com/img/providers/svg/sogefr-x.svg"> Société Générale Professionnel </option> </optgroup> <option value="trwigb" data-logo="https://assets.fintecture.com/img/providers/svg/trwigb.svg"> Wise </option> </select> </label> </p> <div class="help">Simple et rapide (sans IBAN ni carte bancaire)&nbsp;: <ol><li>sélectionnez votre banque</li><li>entrez vos identifiants de banque en ligne</li><li>validez la notification de votre application bancaire</li></ol></div> <div id="fintecture_banktransfer-submit" class="payment-submit"> <input name="fintecture_banktransfer_submit" type="submit" value="Valider" alt="Bank transfer" id="fintecture_banktransfer_submit" class="button once" data-scope='fintecture_banktransfer' /> </div> </div> </fieldset> <fieldset id="payment_mode-apple_pay-once" class="payment_mode" data-scope='stripe_apple_pay'> <h4 class="payment_head"><span class="payment_mode_title">Apple Pay</span></h4> <div class="payment_body" id="apple_pay"> <div id="apple_pay-submit" class="payment-submit"> <input name="stripe_apple_pay_submit" type="submit" value="Valider" alt="Apple Pay" id="stripe_apple_pay_submit" class="button once" data-scope='stripe_apple_pay' style="display:none;" disabled/> </div> <input type="hidden" name="stripe_apple_pay_paymentMethod" id="stripe_apple_pay_paymentMethod" class="once" value=""/> </div> </fieldset> <script> Stripe_obj.buttons.Step3 = true; $('#stripe_apple_pay_submit.once').click(function(event){ // Submit the form if called after receiving the paymentMethod if ( (Stripe_obj.buttons.Step2 || Stripe_obj.buttons.Step3) && $('#stripe_apple_pay_paymentMethod.once').val() ) { console.log('stripe_apple_pay_submit -- submitting form'); return true; } else if (Stripe_obj.buttons.Step3) { // Or show the Apple/Google/Microsoft popup if called in step 3 and the form is valid if (Step1.check() && Step2.check() && Step3.check()) { console.log('paymentRequest.show() -- stripePay'); Stripe_obj.paymentRequest.show(); return false; } else { DntErrors.displayErrors(); } } // Or stay on the form setTimeout(() => $('.ira-processing').removeClass('ira-processing'), 500); return false; }); </script> <style> #stripe_apple_pay_submit.apple_pay_styled_button { -webkit-appearance: -apple-pay-button !important; -apple-pay-button-type: donate; color: transparent !important; } </style> <fieldset id="payment_mode-bancontact" class="payment_mode"> <h4 class="payment_head"><span class="payment_mode_title">Bancontact</span></h4> <div class="payment_body" id="bancontact"> <p id="bancontact-submit" class="payment-submit"> <input name="stripe_bancontact_submit" type="submit" value="Valider" alt="Bancontact" id="stripe_bancontact_submit" class="button" data-scope='stripe_bancontact' /> </p> </div> </fieldset> <fieldset id="payment_mode-check" class="payment_mode"> <h4 class="payment_head"> <span class="payment_mode_title">Chèque</span> </h4> <div class="payment_body" id="check"> <p id="check-submit" class="payment-submit"> <input name="check_submit" type="submit" value="Valider" id="check_submit" class="button" data-scope='check' /> </p> </div> </fieldset> </div> <div id="payment_modes_regular" style="display:none"> <input type="hidden" name="paymentNonce" id="paymentNonce" value="" autocomplete="off"/> <input type="hidden" name="stripeErrorCode" id="stripeErrorCode" value="" autocomplete="off"/> <input type="hidden" name="stripeError" id="stripeError" value="" autocomplete="off"/> <fieldset id="payment_mode-card" class="payment_mode"> <h4 class="payment_head"> <span class="payment_mode_title">Carte bancaire</span> </h4> <div class="payment_body" id="creditcard"> <p id="card-number"> <label for="stripe_creditcard_cardNumber_placeholder_regular">Saisissez votre numéro de carte bancaire</label> <input type="text" id="stripe_creditcard_cardNumber_placeholder_regular" autocomplete="off"/> </p> <div class="line"> <p id="card-expiry" class="unit size1of2"> <label for="stripe_creditcard_cardExpiry_placeholder_regular">Date d'expiration</label> <input type="text" id="stripe_creditcard_cardExpiry_placeholder_regular" autocomplete="off"/> </p> <p id="card-scode" class="unit size2of2 lastUnit"> <label for="stripe_creditcard_cardCvc_placeholder_regular">Code de sécurité</label> <input type="text" id="stripe_creditcard_cardCvc_placeholder_regular" autocomplete="off"/> <span class="help">Le code de sécurité est constitué des 3 derniers chiffres inscrits au dos de votre carte bancaire</span> <span class="help amex" style="display: none;">Le code de sécurité est constitué des 4 derniers chiffres inscrits au recto de votre carte bancaire</span> </p> </div> <script type="text/javascript"> if (!window.stripeJsLoaded) { window.stripeJsLoaded = new Promise((resolve, reject) => { const s = document.createElement('script'); s.src = 'https://js.stripe.com/v3/'; s.type = 'text/javascript'; s.onerror = reject; s.onload = resolve; document.head.appendChild(s); }); } </script> <input type="hidden" name="stripe_creditcard_paymentMethod" id="stripe_creditcard_paymentMethod_regular" data-scope="stripe" data-required = "1" data-ira-check="window.stripe_creditcard.checkPaymentMethod('regular')"/> <script> var stripeElementGetFrequency = () => Step1.current_donation.frequency; if (!window.stripe_creditcard) { const VAL_ERROR = 'error'; const VAL_NOT_SET = 'N/A'; const defaultCoords = {}; defaultCoords["firstname"] = null; defaultCoords["lastname"] = null; defaultCoords["email"] = null; const defaultPaymentMethodErrorMessage = "Les coordonn&eacute;es bancaires saisies sont incorrectes. Merci de les v&eacute;rifier et de les saisir &agrave; nouveau."; const lang = "fr_FR"; const cardCvcPlaceholder = "Use the value provided by Stripe"; const stripePublicApiKey = "pk_live_srqYyZqem3SpTx2GjUycaPjN"; const stripeApiVersion = "2020-08-27"; const coordNames = Object.keys(defaultCoords); const elementConf = { 'cardNumber': { defaultErrorMessage: DntErrors.errorMsg.cardnumber, options: {showIcon: true}, }, 'cardExpiry': { defaultErrorMessage: DntErrors.errorMsg.cardmonth, }, 'cardCvc': { defaultErrorMessage: DntErrors.errorMsg.cardscode, }, }; // only add a CVC placeholder for languages which have a short CVC provided if (cardCvcPlaceholder != 'Use the value provided by Stripe') { elementConf.cardCvc.options = {placeholder: cardCvcPlaceholder}; } const elementTypes = Object.keys(elementConf); window.stripe_creditcard = { complete: {}, elements: {}, error: {}, frequencies: {}, lastInitFrequency: '', stripe: false, checkElement: function(frequency, elementType) { this.log('checkElement', [frequency, elementType]); if (frequency !== this.lastInitFrequency) return false; const complete = this.complete[frequency][elementType]; const error = this.error[frequency][elementType]; const placeholder = $('#' + this.getPlaceholderId(frequency, elementType)); if (!complete || error) { placeholder.attr('data-ira-errormsg', error && error.message ? error.message : elementConf[elementType].defaultErrorMessage ); return false; } else { placeholder.removeAttr('data-ira-errormsg'); return true; } }, checkPaymentMethod: function(frequency) { this.log('checkPaymentMethod', [frequency]); if (frequency !== this.lastInitFrequency) return false; const paymentMethodInput = this.getPaymentMethodInput(frequency); if (paymentMethodInput.val() === VAL_ERROR) { paymentMethodInput.attr('data-ira-errormsg', this.error[frequency].paymentMethod || defaultPaymentMethodErrorMessage); return false; } else { paymentMethodInput.removeAttr('data-ira-errormsg'); return true; } }, createPaymentMethod: function (frequency) { if (frequency !== this.lastInitFrequency) return; this.log('createPaymentMethod', [frequency]); const paymentMethodInput = this.resetPaymentMethod(frequency); for (let elementType of elementTypes) { if (!this.complete[frequency][elementType]) return; } const coords = {}; for (let coordName of coordNames) { const coordInput = $('input[name="' + coordName + '"]'); coords[coordName] = coordInput.length ? coordInput.val() : defaultCoords[coordName]; if (!coords[coordName]) return; } // All other inputs we rely on are ok and won't trigger any error message display, // so until createPaymentMethod succeds, we must ensure paymentMethodInput does paymentMethodInput.val(VAL_ERROR); // Prevent form submission before createPaymentMethod answers $('#stripe_submit.' + frequency).prop('disabled', true); setTimeout(() => { try { this.stripe.createPaymentMethod({ type: 'card', card: this.elements[frequency].cardNumber, billing_details: { name: coords.firstname + ' ' + coords.lastname, email: coords.email, } }).then(result => { $('#stripe_submit.' + frequency).prop('disabled', false); console.log(result); if (result.paymentMethod && result.paymentMethod.id) { paymentMethodInput.val(result.paymentMethod.id); console.log('paymentMethod = ' + paymentMethodInput.val()); } else { this.error[frequency].paymentMethod = result.error.message; for (let prop of ['type', 'code', 'decline_code', 'message']) { window.onerror('createPaymentMethod error.' + prop + ' = ' + result.error[prop]); } } }); } catch (e) { console.log(e); $('#stripe_submit.' + frequency).prop('disabled', false); } }, 500); }, getContainerId: function(frequency, elementType) { return 'stripe_creditcard_' + elementType + '_container_' + frequency; }, getPaymentMethodInput: function(frequency) { return $('#stripe_creditcard_paymentMethod_' + frequency); }, getPlaceholderId: function(frequency, elementType) { return 'stripe_creditcard_' + elementType + '_placeholder_' + frequency; }, /** * Build an array of Stripe JS CssFontSource objects * from the fonts used by the specified elements. * * See https://stripe.com/docs/js/appendix/css_font_source_object * * Warning: works only for fonts loaded from a google-style stylesheet URL * with a family=xxx parameter (where xxx is the font-family) */ getStripeJsCssFontSources: function(ids) { try { const used = {}; for (let id of ids) { const computedStyle = window.getComputedStyle(document.getElementById(id)); const fontFamily = computedStyle.getPropertyValue('font-family'); used[fontFamily] = true; } const hrefs = []; for (let s of document.styleSheets) { if (!s.href) continue; const params = new URLSearchParams(new URL(s.href).search); const fontFamily = params.get('family'); if (used[fontFamily] && (hrefs.indexOf(s.href) === -1)) { hrefs.push(s.href); } } return hrefs.map(href => ({cssSrc: href})); } catch (error) { /** * Stripe Element implementation has javascript incompatibility with Opera browser. * We work around this problem by catching exceptions in getStripeJsCssFontSources and returning an empty list. * This fix will have an impact on the design of Stripe Elements, but it will not block the creation of donations. */ return []; } }, /** * Get the locale as expected by Stripe JS * * See https://stripe.com/docs/js/appendix/supported_locales */ getStripeJsLocale: function () { switch(lang) { case 'en_EN': return 'en-GB'; case 'se_SE': return 'sv'; case 'zh_TW': return lang.substring(0, 2) + '-' + lang.substring(3, 5); default: return lang.substring(0, 2); } }, /** * Build a Stripe JS Style object from the specified element's computed style * and copy all other styles to the provided container. * * See https://stripe.com/docs/js/appendix/style */ getStripeJsStyle: function(id, container) { const styleKeyMap = { // Stripe JS recommands setting background-color on the container //'background-color': 'backgroundColor', 'color': 'color', 'font-family': 'fontFamily', 'font-size': 'fontSize', 'font-smoothing': 'fontSmoothing', 'font-style': 'fontStyle', 'font-variant': 'fontVariant', 'font-weight': 'fontWeight', // Stripe JS doesn't like line-height and doesn't even take it into account //'line-height': 'lineHeight', 'letter-spacing': 'letterSpacing', 'text-align': 'textAlign', 'text-decoration': 'textDecoration', 'text-shadow': 'textShadow', 'text-transform': 'textTransform', }; const baseStyle = {}; const computedStyle = window.getComputedStyle(document.getElementById(id)); for (let cssProp of computedStyle) { const styleKey = styleKeyMap[cssProp]; const cssValue = computedStyle.getPropertyValue(cssProp); if (styleKey) { baseStyle[styleKey] = cssValue; } else { container.css(cssProp, cssValue); } } return {base: baseStyle}; }, init: function (reason) { const frequency = stripeElementGetFrequency(); if (!this.frequencies[frequency]) return; this.log('init', [frequency, reason]); // Stripe elements are reset at every init so we need to reset as well this.complete[frequency] = {}; this.error[frequency] = {}; this.resetPaymentMethod(frequency); this.lastInitFrequency = frequency; this.mount(frequency); }, isMounted: function(frequency) { return !!this.elements[frequency]; }, log: function (method, params = []) { console.log('stripe_creditcard.' + method + '(' + params.join(', ') + ')'); }, mount: function (frequency) { const wasAlreadyMounted = this.unmount(frequency); this.log('mount', [frequency]); if (!this.stripe) { this.stripe = Stripe(stripePublicApiKey, { locale: this.getStripeJsLocale(), apiVersion: stripeApiVersion }); } const stripeElements = this.stripe.elements({ fonts: this.getStripeJsCssFontSources( elementTypes.map(elementType => this.getPlaceholderId(frequency, elementType)) ), }); this.elements[frequency] = {}; for (let elementType of elementTypes) { const placeholderId = this.getPlaceholderId(frequency, elementType); const containerId = this.getContainerId(frequency, elementType); const container = $('<span/>').attr('id', containerId); const element = stripeElements.create(elementType, Object.assign( {style: this.getStripeJsStyle(placeholderId, container)}, elementConf[elementType].options )); this.elements[frequency][elementType] = element; $('#' + placeholderId) .attr('data-scope', 'stripe') .attr('data-required', '1') .attr('data-ira-check', "window.stripe_creditcard.checkElement('" + frequency + "', '" + elementType + "')") .val(VAL_NOT_SET) .hide() .after(container); element.mount('#' + containerId); // Stripe creates an intermediate div between the container and its iframe // Let's force this div's contents to be vertically centered inside the container $('#' + containerId + ' div').css({ display: 'flex', height: '100%', 'align-items': 'center', }); element.on('change', ev => this.onElementChanged(frequency, ev)); } if (!wasAlreadyMounted) { for (let coordName of coordNames) { $('input[name="' + coordName + '"]').on('change', () => this.createPaymentMethod(frequency)); } // Force a re-init if the payment mode was previously hidden // as Stripe does not mount well hidden fields const cvcPlaceholderId = this.getPlaceholderId(frequency, 'cardCvc'); $('#payment_mode-card:has(#' + cvcPlaceholderId + ')').on('payment_shown', () => this.init('payment_shown')); } }, unmount: function (frequency) { if (!this.isMounted(frequency)) return false; this.log('unmount', [frequency]); for (let elementType of elementTypes) { this.elements[frequency][elementType].destroy(); $('#' + this.getContainerId(frequency, elementType)).remove(); $('#' + this.getPlaceholderId(frequency, elementType)).show(); } return true; }, onElementChanged: function (frequency, ev) { this.log('onElementChanged', [ frequency, ev.elementType, ev.complete ? 'complete' : 'not complete', ev.error ? ev.error.message : 'no error', ]); this.complete[frequency][ev.elementType] = ev.complete; this.error[frequency][ev.elementType] = ev.error; this.createPaymentMethod(frequency); }, resetPaymentMethod: function (frequency) { const paymentMethodInput = this.getPaymentMethodInput(frequency); paymentMethodInput.val(VAL_NOT_SET); this.error[frequency].paymentMethod = false; return paymentMethodInput; }, }; window.stripeJsLoaded.then(() => { // Force a reinit when the donation amount or the style change for (let event of ['init_done', 'WebFont.fontactive']) { $('body').on(event, () => window.stripe_creditcard.init(event)); } }); } if (!window.stripe_creditcard.frequencies["regular"]) { window.stripe_creditcard.frequencies["regular"] = true; window.stripeJsLoaded.then(() => { // Ensure the 1st init is done only once, for the active frequency if (stripeElementGetFrequency() === "regular") { window.stripe_creditcard.init("stripeJsLoaded"); } }); } </script> <p id="card-submit" class="payment-submit"> <input name="stripe_submit" type="submit" value="Valider" id="stripe_submit" class="button regular" data-scope='stripe'/> </p> </div> </fieldset> <fieldset id="payment_mode-apple_pay-regular" class="payment_mode" data-scope='stripe_apple_pay'> <h4 class="payment_head"><span class="payment_mode_title">Apple Pay</span></h4> <div class="payment_body" id="apple_pay"> <div id="apple_pay-submit" class="payment-submit"> <input name="stripe_apple_pay_submit" type="submit" value="Valider" alt="Apple Pay" id="stripe_apple_pay_submit" class="button regular" data-scope='stripe_apple_pay' style="display:none;" disabled/> </div> <input type="hidden" name="stripe_apple_pay_paymentMethod" id="stripe_apple_pay_paymentMethod" class="regular" value=""/> </div> </fieldset> <script> Stripe_obj.buttons.Step3 = true; $('#stripe_apple_pay_submit.regular').click(function(event){ // Submit the form if called after receiving the paymentMethod if ( (Stripe_obj.buttons.Step2 || Stripe_obj.buttons.Step3) && $('#stripe_apple_pay_paymentMethod.regular').val() ) { console.log('stripe_apple_pay_submit -- submitting form'); return true; } else if (Stripe_obj.buttons.Step3) { // Or show the Apple/Google/Microsoft popup if called in step 3 and the form is valid if (Step1.check() && Step2.check() && Step3.check()) { console.log('paymentRequest.show() -- stripePay'); Stripe_obj.paymentRequest.show(); return false; } else { DntErrors.displayErrors(); } } // Or stay on the form setTimeout(() => $('.ira-processing').removeClass('ira-processing'), 500); return false; }); </script> <style> #stripe_apple_pay_submit.apple_pay_styled_button { -webkit-appearance: -apple-pay-button !important; -apple-pay-button-type: subscribe; color: transparent !important; } </style> <fieldset id="payment_mode-iban" class="payment_mode"> <h4 class="payment_head"> <span class="payment_mode_title">IBAN</span> </h4> <div class="payment_body" id="iban"> <p id="iban-input"> <label for="iban-number">Votre numéro IBAN</label> <input type="text" name="iban-number" id="iban-number" maxlength="34" autocomplete="off" /> </p> <p id="iban-submit" class="payment-submit"> <input name="stripe_sepa_debit_submit" type="submit" value="Valider" id="iban_submit" class="button" data-scope='stripe_sepa_debit'/> </p> </div> </fieldset> </div> </div> <!-- End Payment --> </div> <!-- End Bloc --> <div class="step-info"> <h4>Donner en cryptomonnaie</h4> <div class="step-info-body"> <script id="tgb-widget-script"> !function(t,e,i,n,o,c,d,s){t.tgbWidgetOptions={id:o,domain:n},(d=e.createElement(i)).src=[n,"widget/script.js"].join(""),d.async=1,(s=e.getElementById(c)).parentNode.insertBefore(d,s)}(window,document,"script","https://tgbwidget.com/","200708028","tgb-widget-script"); </script> </div> </div> <!-- End Step-info --> </div> <!-- End Step-container --> </div> <!-- End Step 3 --> </form> </div> </div> <!-- End Main --> <div id="footer" class="line"> <div class="container" id="footer_wrapinner"> <div id="powered" class="unit size1of3" style="display:block !important;"> <p style="display:block !important;"><a style="display:block !important;" href="https://www.iraiser.eu" title="Powered by iRaiser"><img style="display:block !important; min-width: 100px!important;min-height: 15px!important;" src="/libs.iraiser.eu/design/powered-by/v1/powered-by-iraiser.png" alt="Powered by iRaiser" width="120" height="18"/></a></p> </div> <div id="copyright" class="unit size2of3 lastUnit"> <p> <a href="https://donate.rsf.org/nos-credits" title="Cr&eacute;dits">Cr&eacute;dits</a> <span>|</span> <a href="https://donate.rsf.org/mentions-legales" title="Mentions l&eacute;gales">Mentions l&eacute;gales</a> <span>|</span> <a href="https://donate.rsf.org/contactez-nous" title="Contact">Contact</a> </p> </div> </div> </div> <!-- End Footer --> </div> <!-- End Container --> <!-- Google tag (gtag.js) - Installé par Nicolas Kyriacou HOPENING le 20/12/2024 --> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-10794068052"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-10794068052'); </script> <!-- Meta Pixel Code Installé par Nicolas Kyriacou HOPENING le 20/12/2024 --> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '911761252804785'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=911761252804785&ev=PageView&noscript=1" /></noscript> <!-- End Meta Pixel Code → </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10