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:"2024-11-27:08.58.46-6746d13673414",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=ddb0461c6ec36bc51449a0f8bbafad7b" ></script> <script type="text/javascript" src="https://donate.rsf.org/themes/default/js/step2.min.js?hash=52f2b25c91cfb4ff1b559c7b186e6da6" ></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.956993,"AFN":73.384976,"ALL":98.092982,"AMD":415.86344,"ANG":1.936492,"AOA":983.059531,"ARS":1070.546996,"AUD":1.623284,"AWG":1.941878,"AZN":1.829496,"BAM":1.953289,"BBD":2.169491,"BDT":128.404924,"BGN":1.955383,"BHD":0.406053,"BIF":3171.992676,"BMD":1.077325,"BND":1.425554,"BOB":7.451421,"BRL":6.134071,"BSD":1.074509,"BTC":1.4166497e-5,"BTN":90.665021,"BWP":14.346423,"BYN":3.516447,"BYR":21115.57004,"BZD":2.165895,"CAD":1.496732,"CDF":3086.53628,"CHF":0.940699,"CLF":0.037391,"CLP":1031.73253,"CNY":7.721837,"CNH":7.669795,"COP":4657.545315,"CRC":548.989129,"CUC":1.077325,"CUP":28.549113,"CVE":110.124447,"CZK":25.264357,"DJF":191.342236,"DKK":7.458051,"DOP":64.596356,"DZD":143.695021,"EGP":53.114601,"ERN":16.159875,"ETB":132.271725,"EUR":1,"FJD":2.437984,"FKP":0.824336,"GBP":0.832207,"GEL":2.93571,"GGP":0.824336,"GHS":17.622508,"GIP":0.824336,"GMD":77.026244,"GNF":9264.0043,"GTQ":8.292301,"GYD":224.803082,"HKD":8.374963,"HNL":27.107899,"HRK":7.421724,"HTG":141.356961,"HUF":404.923322,"IDR":16895.149344,"ILS":4.011797,"IMP":0.824336,"INR":90.896818,"IQD":1407.603465,"IRR":45360.769778,"ISK":148.304868,"JEP":0.824336,"JMD":170.049807,"JOD":0.763929,"JPY":164.46605,"KES":138.608088,"KGS":92.86414,"KHR":4365.347434,"KMF":491.206134,"KPW":969.592259,"KRW":1495.628539,"KWD":0.330394,"KYD":0.895457,"KZT":528.165898,"LAK":23584.461142,"LBP":96577.6337,"LKR":314.402889,"LRD":204.156591,"LSL":18.783278,"LTL":3.18106,"LVL":0.651663,"LYD":5.206259,"MAD":10.626539,"MDL":19.271046,"MGA":4955.583154,"MKD":61.627871,"MMK":3499.109583,"MNT":3660.750387,"MOP":8.602221,"MRU":42.808568,"MUR":49.990431,"MVR":16.602024,"MWK":1863.187411,"MXN":21.337394,"MYR":4.729353,"MZN":68.84645,"NAD":18.783626,"NGN":1811.554287,"NIO":39.538802,"NOK":11.763462,"NPR":145.063162,"NZD":1.796272,"OMR":0.414769,"PAB":1.074519,"PEN":4.061416,"PGK":4.312416,"PHP":62.867291,"PKR":298.632809,"PLN":4.321797,"PYG":8340.200508,"QAR":3.916302,"RON":4.975626,"RSD":117.008358,"RUB":105.57055,"RWF":1472.59318,"SAR":4.046934,"SBD":8.993323,"SCR":15.128581,"SDG":648.01436,"SEK":11.573509,"SGD":1.425764,"SHP":0.824336,"SLE":24.552667,"SLL":22590.963184,"SOS":614.104813,"SRD":37.657896,"STD":22298.452431,"SVC":9.401869,"SYP":2706.811676,"SZL":18.777685,"THB":36.848068,"TJS":11.422063,"TMT":3.770638,"TND":3.343786,"TOP":2.523207,"TRY":37.01951,"TTD":7.288562,"TWD":34.632231,"TZS":2898.003815,"UAH":44.422878,"UGX":3943.966286,"USD":1.077325,"UYU":44.672362,"UZS":13763.433626,"VEF":218043921113.59,"VES":136836.34,"VND":27256.322551,"VUV":127.902221,"WST":3.017786,"XAF":655.108718,"XAG":0.031938,"XAU":0.000396,"XCD":2.911525,"XDR":0.805657,"XOF":655.108718,"XPF":119.331742,"YER":269.169559,"ZAR":18.761211,"ZMK":9697.213435,"ZMW":29.119294,"ZWL":346.898211,"CYP":1.7086,"SSP":633.704955} 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 (38 caract\u00e8res maximum)"; DntErrors.errorMsg.address2 = "Le compl\u00e9ment d'adresse ne doit pas exc\u00e9der 38 caract\u00e8res"; DntErrors.errorMsg.postcode = "Vous devez saisir votre code postal (10 caract\u00e8res maximum)"; DntErrors.errorMsg.city = "Vous devez saisir votre ville (38 caract\u00e8res maximum)"; 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_2024-11-27.08:58:46_6746d13671f282.56324793&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_2024-11-27.08:58:46_6746d13671f282.56324793","campaign":"32","version":"b","lang":"fr_FR","amount":{"amount":"0","amount_donation":0,"frequency":"once","free_amount":false,"currency":"EUR"},"reserved":"[]","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":"100","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":"21298","sum":"228509014","min":"200","max":"984000","avg":"107.29","progress":"100","last_donators":[{"firstname":"MYRIAM","total":"10000","currency":"EUR","date":"2024-11-26 23:26:00","campaign":"32","city":"ANNECY","message":"","avatar":""},{"firstname":"Serge","total":"6000","currency":"EUR","date":"2024-11-26 22:40:00","campaign":"32","city":"FRONCLES","message":"","avatar":""},{"firstname":"Sylvia","total":"10000","currency":"EUR","date":"2024-11-26 21:53:00","campaign":"32","city":"STUTTGART","message":"","avatar":""},{"firstname":"Ron","total":"4000","currency":"USD","date":"2024-11-26 21:23:00","campaign":"32","city":"SEATTLE","message":"","avatar":""},{"firstname":"Nicola","total":"2000","currency":"EUR","date":"2024-11-26 21:17:00","campaign":"32","city":"SINT-PIETERS-LEEUW","message":"","avatar":""},{"firstname":"Jean-Claude","total":"50000","currency":"EUR","date":"2024-11-26 21:00:00","campaign":"32","city":"78560","message":"","avatar":""},{"firstname":"Mich\u00e8le","total":"10000","currency":"EUR","date":"2024-11-26 14:07:00","campaign":"32","city":"SEVRIER","message":"","avatar":""},{"firstname":"Emmanuel","total":"10000","currency":"EUR","date":"2024-11-26 13:27:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Michel","total":"2000","currency":"EUR","date":"2024-11-26 12:55:00","campaign":"32","city":"77470 - TRILPORT","message":"","avatar":""},{"firstname":"sandrine","total":"6000","currency":"EUR","date":"2024-11-26 12:51:00","campaign":"32","city":"LAVOUX","message":"","avatar":""},{"firstname":"Nicole","total":"10000","currency":"EUR","date":"2024-11-26 12:20:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"jacques","total":"10000","currency":"EUR","date":"2024-11-26 10:11:00","campaign":"32","city":"SAINT-FORGEUX","message":"","avatar":""},{"firstname":"Isabelle","total":"15000","currency":"EUR","date":"2024-11-25 21:34:00","campaign":"32","city":"URT","message":"","avatar":""},{"firstname":"COLUSSI","total":"3000","currency":"EUR","date":"2024-11-25 20:01:00","campaign":"32","city":"RIGNIEUX LE FRANC","message":"","avatar":""},{"firstname":"Karel et Madeleine","total":"250000","currency":"EUR","date":"2024-11-25 19:13:00","campaign":"32","city":"BLOTZHEIM","message":"","avatar":""},{"firstname":"Patrick","total":"20000","currency":"EUR","date":"2024-11-25 18:48:00","campaign":"32","city":"BRIVE LA GAILLARDE","message":"","avatar":""},{"firstname":"Marie-France","total":"3000","currency":"EUR","date":"2024-11-25 18:15:00","campaign":"32","city":"VILLENAVE D'ORNON","message":"","avatar":""},{"firstname":"marie christine","total":"3000","currency":"EUR","date":"2024-11-25 16:39:00","campaign":"32","city":"THORIGN\u00e9 D'ANJOU","message":"","avatar":""},{"firstname":"Reynold","total":"20000","currency":"EUR","date":"2024-11-25 16:27:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"veronique","total":"1500","currency":"EUR","date":"2024-11-25 15:52:00","campaign":"32","city":"TOUTRY","message":"","avatar":""},{"firstname":"Danielle","total":"3000","currency":"EUR","date":"2024-11-25 13:58:00","campaign":"32","city":"MOLIERES (LES)","message":"","avatar":""},{"firstname":"Jean","total":"6000","currency":"EUR","date":"2024-11-25 11:53:00","campaign":"32","city":"CACHAN","message":"","avatar":""},{"firstname":"Fr\u00e9d\u00e9rique","total":"10000","currency":"EUR","date":"2024-11-25 11:34:00","campaign":"32","city":"BORDEAUX","message":"","avatar":""},{"firstname":"Gabrielle","total":"10000","currency":"EUR","date":"2024-11-25 10:46:00","campaign":"32","city":"RIANTEC","message":"","avatar":""},{"firstname":"Martine","total":"6000","currency":"EUR","date":"2024-11-25 08:24:00","campaign":"32","city":"BLOEMENDAAL","message":"","avatar":""},{"firstname":"Mathieu","total":"12000","currency":"EUR","date":"2024-11-24 23:58:00","campaign":"32","city":"ISSY-LES-MOULINEAUX","message":"","avatar":""},{"firstname":"Prunelle","total":"15000","currency":"EUR","date":"2024-11-24 20:33:00","campaign":"32","city":"BOULAZAC ISLE MANOIRE","message":"","avatar":""},{"firstname":"Franck","total":"4100","currency":"EUR","date":"2024-11-24 18:13:00","campaign":"32","city":"SAINT ANDR\u00e9 SUR ORNE","message":"","avatar":""},{"firstname":"Brigitte","total":"4000","currency":"EUR","date":"2024-11-24 17:03:00","campaign":"32","city":"BRON","message":"","avatar":""},{"firstname":"Nathalie","total":"10000","currency":"EUR","date":"2024-11-24 16:32:00","campaign":"32","city":"LE PERREUX","message":"","avatar":""},{"firstname":"Claudine","total":"3000","currency":"EUR","date":"2024-11-24 16:26:00","campaign":"32","city":"PRUNAY SUR ESSONNE","message":"","avatar":""},{"firstname":"Damien","total":"12600","currency":"EUR","date":"2024-11-24 16:02:00","campaign":"32","city":"RENNES","message":"","avatar":""},{"firstname":"h.","total":"5000","currency":"EUR","date":"2024-11-24 11:41:00","campaign":"32","city":"CHARBONNIERES","message":"","avatar":""},{"firstname":"Josette","total":"2000","currency":"EUR","date":"2024-11-24 11:16:00","campaign":"32","city":"LAMBERSART","message":"","avatar":""},{"firstname":"Nathalie","total":"20000","currency":"EUR","date":"2024-11-24 09:01:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Nathalie","total":"40000","currency":"EUR","date":"2024-11-24 00:02:00","campaign":"32","city":"SENE","message":"","avatar":""},{"firstname":"Guilhem","total":"30000","currency":"EUR","date":"2024-11-23 17:57:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Gr\u00e2ce","total":"10000","currency":"EUR","date":"2024-11-23 17:24:00","campaign":"32","city":"LA ROCHELLE","message":"","avatar":""},{"firstname":"Philippe","total":"10000","currency":"EUR","date":"2024-11-23 17:20:00","campaign":"32","city":"LA ROCHELLE","message":"","avatar":""},{"firstname":"Chantal","total":"20000","currency":"EUR","date":"2024-11-23 16:44:00","campaign":"32","city":"BRIAN\u00e7ON","message":"","avatar":""},{"firstname":"Michel","total":"10000","currency":"EUR","date":"2024-11-23 16:26:00","campaign":"32","city":"FEUILLADE","message":"","avatar":""},{"firstname":"L\u00e9one","total":"12000","currency":"EUR","date":"2024-11-23 15:50:00","campaign":"32","city":"AURSEULLES","message":"","avatar":""},{"firstname":"joelle","total":"5000","currency":"EUR","date":"2024-11-23 14:41:00","campaign":"32","city":"CAEN","message":"","avatar":""},{"firstname":"isabelle","total":"2000","currency":"EUR","date":"2024-11-23 13:45:00","campaign":"32","city":"DAMPREMY","message":"","avatar":""},{"firstname":"Philippe","total":"15000","currency":"EUR","date":"2024-11-23 11:59:00","campaign":"32","city":"MONTR\u00e9AL LA CLUSE","message":"","avatar":""},{"firstname":"pierre","total":"6000","currency":"EUR","date":"2024-11-23 11:46:00","campaign":"32","city":"ANNECY","message":"","avatar":""},{"firstname":"nicolas","total":"20000","currency":"EUR","date":"2024-11-23 11:38:00","campaign":"32","city":"GRENOBLE","message":"","avatar":""},{"firstname":"CECILE","total":"4000","currency":"EUR","date":"2024-11-23 09:32:00","campaign":"32","city":"BRUXELLES","message":"","avatar":""},{"firstname":"MICHEL","total":"10000","currency":"EUR","date":"2024-11-23 09:05:00","campaign":"32","city":"L'ISLE D'ABEAU","message":"","avatar":""},{"firstname":"Michel","total":"5000","currency":"EUR","date":"2024-11-22 20:35:00","campaign":"32","city":"BISCHHEIM","message":"","avatar":""}],"date_cache":"2024-11-27"}; campaign_stats_last_donators = [{"firstname":"MYRIAM","total":"10000","currency":"EUR","date":"2024-11-26 23:26:00","campaign":"32","city":"ANNECY","message":"","avatar":""},{"firstname":"Serge","total":"6000","currency":"EUR","date":"2024-11-26 22:40:00","campaign":"32","city":"FRONCLES","message":"","avatar":""},{"firstname":"Sylvia","total":"10000","currency":"EUR","date":"2024-11-26 21:53:00","campaign":"32","city":"STUTTGART","message":"","avatar":""},{"firstname":"Ron","total":"4000","currency":"USD","date":"2024-11-26 21:23:00","campaign":"32","city":"SEATTLE","message":"","avatar":""},{"firstname":"Nicola","total":"2000","currency":"EUR","date":"2024-11-26 21:17:00","campaign":"32","city":"SINT-PIETERS-LEEUW","message":"","avatar":""},{"firstname":"Jean-Claude","total":"50000","currency":"EUR","date":"2024-11-26 21:00:00","campaign":"32","city":"78560","message":"","avatar":""},{"firstname":"Mich\u00e8le","total":"10000","currency":"EUR","date":"2024-11-26 14:07:00","campaign":"32","city":"SEVRIER","message":"","avatar":""},{"firstname":"Emmanuel","total":"10000","currency":"EUR","date":"2024-11-26 13:27:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Michel","total":"2000","currency":"EUR","date":"2024-11-26 12:55:00","campaign":"32","city":"77470 - TRILPORT","message":"","avatar":""},{"firstname":"sandrine","total":"6000","currency":"EUR","date":"2024-11-26 12:51:00","campaign":"32","city":"LAVOUX","message":"","avatar":""},{"firstname":"Nicole","total":"10000","currency":"EUR","date":"2024-11-26 12:20:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"jacques","total":"10000","currency":"EUR","date":"2024-11-26 10:11:00","campaign":"32","city":"SAINT-FORGEUX","message":"","avatar":""},{"firstname":"Isabelle","total":"15000","currency":"EUR","date":"2024-11-25 21:34:00","campaign":"32","city":"URT","message":"","avatar":""},{"firstname":"COLUSSI","total":"3000","currency":"EUR","date":"2024-11-25 20:01:00","campaign":"32","city":"RIGNIEUX LE FRANC","message":"","avatar":""},{"firstname":"Karel et Madeleine","total":"250000","currency":"EUR","date":"2024-11-25 19:13:00","campaign":"32","city":"BLOTZHEIM","message":"","avatar":""},{"firstname":"Patrick","total":"20000","currency":"EUR","date":"2024-11-25 18:48:00","campaign":"32","city":"BRIVE LA GAILLARDE","message":"","avatar":""},{"firstname":"Marie-France","total":"3000","currency":"EUR","date":"2024-11-25 18:15:00","campaign":"32","city":"VILLENAVE D'ORNON","message":"","avatar":""},{"firstname":"marie christine","total":"3000","currency":"EUR","date":"2024-11-25 16:39:00","campaign":"32","city":"THORIGN\u00e9 D'ANJOU","message":"","avatar":""},{"firstname":"Reynold","total":"20000","currency":"EUR","date":"2024-11-25 16:27:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"veronique","total":"1500","currency":"EUR","date":"2024-11-25 15:52:00","campaign":"32","city":"TOUTRY","message":"","avatar":""},{"firstname":"Danielle","total":"3000","currency":"EUR","date":"2024-11-25 13:58:00","campaign":"32","city":"MOLIERES (LES)","message":"","avatar":""},{"firstname":"Jean","total":"6000","currency":"EUR","date":"2024-11-25 11:53:00","campaign":"32","city":"CACHAN","message":"","avatar":""},{"firstname":"Fr\u00e9d\u00e9rique","total":"10000","currency":"EUR","date":"2024-11-25 11:34:00","campaign":"32","city":"BORDEAUX","message":"","avatar":""},{"firstname":"Gabrielle","total":"10000","currency":"EUR","date":"2024-11-25 10:46:00","campaign":"32","city":"RIANTEC","message":"","avatar":""},{"firstname":"Martine","total":"6000","currency":"EUR","date":"2024-11-25 08:24:00","campaign":"32","city":"BLOEMENDAAL","message":"","avatar":""},{"firstname":"Mathieu","total":"12000","currency":"EUR","date":"2024-11-24 23:58:00","campaign":"32","city":"ISSY-LES-MOULINEAUX","message":"","avatar":""},{"firstname":"Prunelle","total":"15000","currency":"EUR","date":"2024-11-24 20:33:00","campaign":"32","city":"BOULAZAC ISLE MANOIRE","message":"","avatar":""},{"firstname":"Franck","total":"4100","currency":"EUR","date":"2024-11-24 18:13:00","campaign":"32","city":"SAINT ANDR\u00e9 SUR ORNE","message":"","avatar":""},{"firstname":"Brigitte","total":"4000","currency":"EUR","date":"2024-11-24 17:03:00","campaign":"32","city":"BRON","message":"","avatar":""},{"firstname":"Nathalie","total":"10000","currency":"EUR","date":"2024-11-24 16:32:00","campaign":"32","city":"LE PERREUX","message":"","avatar":""},{"firstname":"Claudine","total":"3000","currency":"EUR","date":"2024-11-24 16:26:00","campaign":"32","city":"PRUNAY SUR ESSONNE","message":"","avatar":""},{"firstname":"Damien","total":"12600","currency":"EUR","date":"2024-11-24 16:02:00","campaign":"32","city":"RENNES","message":"","avatar":""},{"firstname":"h.","total":"5000","currency":"EUR","date":"2024-11-24 11:41:00","campaign":"32","city":"CHARBONNIERES","message":"","avatar":""},{"firstname":"Josette","total":"2000","currency":"EUR","date":"2024-11-24 11:16:00","campaign":"32","city":"LAMBERSART","message":"","avatar":""},{"firstname":"Nathalie","total":"20000","currency":"EUR","date":"2024-11-24 09:01:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Nathalie","total":"40000","currency":"EUR","date":"2024-11-24 00:02:00","campaign":"32","city":"SENE","message":"","avatar":""},{"firstname":"Guilhem","total":"30000","currency":"EUR","date":"2024-11-23 17:57:00","campaign":"32","city":"PARIS","message":"","avatar":""},{"firstname":"Gr\u00e2ce","total":"10000","currency":"EUR","date":"2024-11-23 17:24:00","campaign":"32","city":"LA ROCHELLE","message":"","avatar":""},{"firstname":"Philippe","total":"10000","currency":"EUR","date":"2024-11-23 17:20:00","campaign":"32","city":"LA ROCHELLE","message":"","avatar":""},{"firstname":"Chantal","total":"20000","currency":"EUR","date":"2024-11-23 16:44:00","campaign":"32","city":"BRIAN\u00e7ON","message":"","avatar":""},{"firstname":"Michel","total":"10000","currency":"EUR","date":"2024-11-23 16:26:00","campaign":"32","city":"FEUILLADE","message":"","avatar":""},{"firstname":"L\u00e9one","total":"12000","currency":"EUR","date":"2024-11-23 15:50:00","campaign":"32","city":"AURSEULLES","message":"","avatar":""},{"firstname":"joelle","total":"5000","currency":"EUR","date":"2024-11-23 14:41:00","campaign":"32","city":"CAEN","message":"","avatar":""},{"firstname":"isabelle","total":"2000","currency":"EUR","date":"2024-11-23 13:45:00","campaign":"32","city":"DAMPREMY","message":"","avatar":""},{"firstname":"Philippe","total":"15000","currency":"EUR","date":"2024-11-23 11:59:00","campaign":"32","city":"MONTR\u00e9AL LA CLUSE","message":"","avatar":""},{"firstname":"pierre","total":"6000","currency":"EUR","date":"2024-11-23 11:46:00","campaign":"32","city":"ANNECY","message":"","avatar":""},{"firstname":"nicolas","total":"20000","currency":"EUR","date":"2024-11-23 11:38:00","campaign":"32","city":"GRENOBLE","message":"","avatar":""},{"firstname":"CECILE","total":"4000","currency":"EUR","date":"2024-11-23 09:32:00","campaign":"32","city":"BRUXELLES","message":"","avatar":""},{"firstname":"MICHEL","total":"10000","currency":"EUR","date":"2024-11-23 09:05:00","campaign":"32","city":"L'ISLE D'ABEAU","message":"","avatar":""},{"firstname":"Michel","total":"5000","currency":"EUR","date":"2024-11-22 20:35:00","campaign":"32","city":"BISCHHEIM","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.14/arya.js?v=24070" ></script> <link type="text/css" href="https://donate.rsf.org/themes/default/arya/dist/v3.14/arya.css?v=24070" rel="stylesheet" /> <!-- 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çais</option> <option data-value="es_ES" value="/b/mi-donativo?cid=32&_cv=1">Españ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 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> <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> <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-20000"><data class='price_amount'>200</data> <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> <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> <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> <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ères :</p> <ul> <li><strong>Défend les journalistes</strong> et collaborateurs des médias emprisonnés ou persécutés pour leur activité professionnelle, et dé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 à restreindre la liberté de la presse</li> <li>Accorde chaque année presque trois cent bourses d’assistance afin de <strong>venir en aide à un journaliste ou à un média en difficulté</strong> (frais d’avocats, frais médicaux, achat de matériel, etc.), ainsi qu’aux familles de reporters emprisonnés</li> <li>Agit pour <strong>améliorer la sécurité des journalistes</strong>, notamment dans les zones de conflit.</li> </ul> Au-delà de 100 EUR de don, et sauf mention contraire de votre part adressée à <a href="mailto:don@rsf.org" target="_blank">don@rsf.org</a>, chaque donateur est considéré comme membre bienfaiteur de Reporters sans frontiè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="paypal-connect" class=""> <div type="submit" class="button paypal_button" name="paypal_connect" data-scope="paypal" id="paypal_connect"> <div class="paypal_img"> <img style="height: 20px;" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAyNCAzMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeG1sbnM9Imh0dHA6JiN4MkY7JiN4MkY7d3d3LnczLm9yZyYjeDJGOzIwMDAmI3gyRjtzdmciPjxwYXRoIGZpbGw9IiMwMDljZGUiIG9wYWNpdHk9IjEiIGQ9Ik0gMjAuOTI0IDcuMTU3IEMgMjEuMjA0IDUuMDU3IDIwLjkyNCAzLjY1NyAxOS44MDEgMi4zNTcgQyAxOC41ODMgMC45NTcgMTYuNDMgMC4yNTcgMTMuNzE2IDAuMjU3IEwgNS43NTggMC4yNTcgQyA1LjI5IDAuMjU3IDQuNzI5IDAuNzU3IDQuNjM0IDEuMjU3IEwgMS4zNTggMjMuNDU3IEMgMS4zNTggMjMuODU3IDEuNjM5IDI0LjM1NyAyLjEwNyAyNC4zNTcgTCA2Ljk3NSAyNC4zNTcgTCA2LjY5NCAyNi41NTcgQyA2LjYgMjYuOTU3IDYuODgxIDI3LjI1NyA3LjI1NSAyNy4yNTcgTCAxMS4zNzUgMjcuMjU3IEMgMTEuODQ0IDI3LjI1NyAxMi4zMTEgMjYuOTU3IDEyLjQwNSAyNi40NTcgTCAxMi40MDUgMjYuMTU3IEwgMTMuMjQ3IDIwLjk1NyBMIDEzLjI0NyAyMC43NTcgQyAxMy4zNDEgMjAuMjU3IDEzLjgwOSAxOS44NTcgMTQuMjc3IDE5Ljg1NyBMIDE0Ljg0IDE5Ljg1NyBDIDE4Ljg2NCAxOS44NTcgMjEuOTU0IDE4LjE1NyAyMi44OSAxMy4xNTcgQyAyMy4zNTggMTEuMDU3IDIzLjE3MiA5LjM1NyAyMi4wNDggOC4xNTcgQyAyMS43NjcgNy43NTcgMjEuMjk4IDcuNDU3IDIwLjkyNCA3LjE1NyBMIDIwLjkyNCA3LjE1NyI+PC9wYXRoPjxwYXRoIGZpbGw9IiMwMTIxNjkiIG9wYWNpdHk9IjEiIGQ9Ik0gMjAuOTI0IDcuMTU3IEMgMjEuMjA0IDUuMDU3IDIwLjkyNCAzLjY1NyAxOS44MDEgMi4zNTcgQyAxOC41ODMgMC45NTcgMTYuNDMgMC4yNTcgMTMuNzE2IDAuMjU3IEwgNS43NTggMC4yNTcgQyA1LjI5IDAuMjU3IDQuNzI5IDAuNzU3IDQuNjM0IDEuMjU3IEwgMS4zNTggMjMuNDU3IEMgMS4zNTggMjMuODU3IDEuNjM5IDI0LjM1NyAyLjEwNyAyNC4zNTcgTCA2Ljk3NSAyNC4zNTcgTCA4LjI4NiAxNi4wNTcgTCA4LjE5MiAxNi4zNTcgQyA4LjI4NiAxNS43NTcgOC43NTQgMTUuMzU3IDkuMzE1IDE1LjM1NyBMIDExLjY1NSAxNS4zNTcgQyAxNi4yNDMgMTUuMzU3IDE5LjgwMSAxMy4zNTcgMjAuOTI0IDcuNzU3IEMgMjAuODMxIDcuNDU3IDIwLjkyNCA3LjM1NyAyMC45MjQgNy4xNTciPjwvcGF0aD48cGF0aCBmaWxsPSIjMDAzMDg3IiBvcGFjaXR5PSIxIiBkPSJNIDkuNTA0IDcuMTU3IEMgOS41OTYgNi44NTcgOS43ODQgNi41NTcgMTAuMDY1IDYuMzU3IEMgMTAuMjUxIDYuMzU3IDEwLjM0NSA2LjI1NyAxMC41MzIgNi4yNTcgTCAxNi43MTEgNi4yNTcgQyAxNy40NjEgNi4yNTcgMTguMjA4IDYuMzU3IDE4Ljc3MiA2LjQ1NyBDIDE4Ljk1OCA2LjQ1NyAxOS4xNDYgNi40NTcgMTkuMzMzIDYuNTU3IEMgMTkuNTIgNi42NTcgMTkuNzA3IDYuNjU3IDE5LjgwMSA2Ljc1NyBDIDE5Ljg5NCA2Ljc1NyAxOS45ODcgNi43NTcgMjAuMDgyIDYuNzU3IEMgMjAuMzYyIDYuODU3IDIwLjY0MyA3LjA1NyAyMC45MjQgNy4xNTcgQyAyMS4yMDQgNS4wNTcgMjAuOTI0IDMuNjU3IDE5LjgwMSAyLjI1NyBDIDE4LjY3NyAwLjg1NyAxNi41MjUgMC4yNTcgMTMuODA5IDAuMjU3IEwgNS43NTggMC4yNTcgQyA1LjI5IDAuMjU3IDQuNzI5IDAuNjU3IDQuNjM0IDEuMjU3IEwgMS4zNTggMjMuNDU3IEMgMS4zNTggMjMuODU3IDEuNjM5IDI0LjM1NyAyLjEwNyAyNC4zNTcgTCA2Ljk3NSAyNC4zNTcgTCA4LjI4NiAxNi4wNTcgTCA5LjUwNCA3LjE1NyBaIj48L3BhdGg+PC9zdmc+" alt="PP"> <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTAwIDMyIiB4bWxucz0iaHR0cDomI3gyRjsmI3gyRjt3d3cudzMub3JnJiN4MkY7MjAwMCYjeDJGO3N2ZyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCI+PHBhdGggZmlsbD0iIzAwMzA4NyIgZD0iTSAxMiA0LjkxNyBMIDQuMiA0LjkxNyBDIDMuNyA0LjkxNyAzLjIgNS4zMTcgMy4xIDUuODE3IEwgMCAyNS44MTcgQyAtMC4xIDI2LjIxNyAwLjIgMjYuNTE3IDAuNiAyNi41MTcgTCA0LjMgMjYuNTE3IEMgNC44IDI2LjUxNyA1LjMgMjYuMTE3IDUuNCAyNS42MTcgTCA2LjIgMjAuMjE3IEMgNi4zIDE5LjcxNyA2LjcgMTkuMzE3IDcuMyAxOS4zMTcgTCA5LjggMTkuMzE3IEMgMTQuOSAxOS4zMTcgMTcuOSAxNi44MTcgMTguNyAxMS45MTcgQyAxOSA5LjgxNyAxOC43IDguMTE3IDE3LjcgNi45MTcgQyAxNi42IDUuNjE3IDE0LjYgNC45MTcgMTIgNC45MTcgWiBNIDEyLjkgMTIuMjE3IEMgMTIuNSAxNS4wMTcgMTAuMyAxNS4wMTcgOC4zIDE1LjAxNyBMIDcuMSAxNS4wMTcgTCA3LjkgOS44MTcgQyA3LjkgOS41MTcgOC4yIDkuMzE3IDguNSA5LjMxNyBMIDkgOS4zMTcgQyAxMC40IDkuMzE3IDExLjcgOS4zMTcgMTIuNCAxMC4xMTcgQyAxMi45IDEwLjUxNyAxMy4xIDExLjIxNyAxMi45IDEyLjIxNyBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzAwMzA4NyIgZD0iTSAzNS4yIDEyLjExNyBMIDMxLjUgMTIuMTE3IEMgMzEuMiAxMi4xMTcgMzAuOSAxMi4zMTcgMzAuOSAxMi42MTcgTCAzMC43IDEzLjYxNyBMIDMwLjQgMTMuMjE3IEMgMjkuNiAxMi4wMTcgMjcuOCAxMS42MTcgMjYgMTEuNjE3IEMgMjEuOSAxMS42MTcgMTguNCAxNC43MTcgMTcuNyAxOS4xMTcgQyAxNy4zIDIxLjMxNyAxNy44IDIzLjQxNyAxOS4xIDI0LjgxNyBDIDIwLjIgMjYuMTE3IDIxLjkgMjYuNzE3IDIzLjggMjYuNzE3IEMgMjcuMSAyNi43MTcgMjkgMjQuNjE3IDI5IDI0LjYxNyBMIDI4LjggMjUuNjE3IEMgMjguNyAyNi4wMTcgMjkgMjYuNDE3IDI5LjQgMjYuNDE3IEwgMzIuOCAyNi40MTcgQyAzMy4zIDI2LjQxNyAzMy44IDI2LjAxNyAzMy45IDI1LjUxNyBMIDM1LjkgMTIuNzE3IEMgMzYgMTIuNTE3IDM1LjYgMTIuMTE3IDM1LjIgMTIuMTE3IFogTSAzMC4xIDE5LjMxNyBDIDI5LjcgMjEuNDE3IDI4LjEgMjIuOTE3IDI1LjkgMjIuOTE3IEMgMjQuOCAyMi45MTcgMjQgMjIuNjE3IDIzLjQgMjEuOTE3IEMgMjIuOCAyMS4yMTcgMjIuNiAyMC4zMTcgMjIuOCAxOS4zMTcgQyAyMy4xIDE3LjIxNyAyNC45IDE1LjcxNyAyNyAxNS43MTcgQyAyOC4xIDE1LjcxNyAyOC45IDE2LjExNyAyOS41IDE2LjcxNyBDIDMwIDE3LjQxNyAzMC4yIDE4LjMxNyAzMC4xIDE5LjMxNyBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzAwMzA4NyIgZD0iTSA1NS4xIDEyLjExNyBMIDUxLjQgMTIuMTE3IEMgNTEgMTIuMTE3IDUwLjcgMTIuMzE3IDUwLjUgMTIuNjE3IEwgNDUuMyAyMC4yMTcgTCA0My4xIDEyLjkxNyBDIDQzIDEyLjQxNyA0Mi41IDEyLjExNyA0Mi4xIDEyLjExNyBMIDM4LjQgMTIuMTE3IEMgMzggMTIuMTE3IDM3LjYgMTIuNTE3IDM3LjggMTMuMDE3IEwgNDEuOSAyNS4xMTcgTCAzOCAzMC41MTcgQyAzNy43IDMwLjkxNyAzOCAzMS41MTcgMzguNSAzMS41MTcgTCA0Mi4yIDMxLjUxNyBDIDQyLjYgMzEuNTE3IDQyLjkgMzEuMzE3IDQzLjEgMzEuMDE3IEwgNTUuNiAxMy4wMTcgQyA1NS45IDEyLjcxNyA1NS42IDEyLjExNyA1NS4xIDEyLjExNyBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzAwOWNkZSIgZD0iTSA2Ny41IDQuOTE3IEwgNTkuNyA0LjkxNyBDIDU5LjIgNC45MTcgNTguNyA1LjMxNyA1OC42IDUuODE3IEwgNTUuNSAyNS43MTcgQyA1NS40IDI2LjExNyA1NS43IDI2LjQxNyA1Ni4xIDI2LjQxNyBMIDYwLjEgMjYuNDE3IEMgNjAuNSAyNi40MTcgNjAuOCAyNi4xMTcgNjAuOCAyNS44MTcgTCA2MS43IDIwLjExNyBDIDYxLjggMTkuNjE3IDYyLjIgMTkuMjE3IDYyLjggMTkuMjE3IEwgNjUuMyAxOS4yMTcgQyA3MC40IDE5LjIxNyA3My40IDE2LjcxNyA3NC4yIDExLjgxNyBDIDc0LjUgOS43MTcgNzQuMiA4LjAxNyA3My4yIDYuODE3IEMgNzIgNS42MTcgNzAuMSA0LjkxNyA2Ny41IDQuOTE3IFogTSA2OC40IDEyLjIxNyBDIDY4IDE1LjAxNyA2NS44IDE1LjAxNyA2My44IDE1LjAxNyBMIDYyLjYgMTUuMDE3IEwgNjMuNCA5LjgxNyBDIDYzLjQgOS41MTcgNjMuNyA5LjMxNyA2NCA5LjMxNyBMIDY0LjUgOS4zMTcgQyA2NS45IDkuMzE3IDY3LjIgOS4zMTcgNjcuOSAxMC4xMTcgQyA2OC40IDEwLjUxNyA2OC41IDExLjIxNyA2OC40IDEyLjIxNyBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzAwOWNkZSIgZD0iTSA5MC43IDEyLjExNyBMIDg3IDEyLjExNyBDIDg2LjcgMTIuMTE3IDg2LjQgMTIuMzE3IDg2LjQgMTIuNjE3IEwgODYuMiAxMy42MTcgTCA4NS45IDEzLjIxNyBDIDg1LjEgMTIuMDE3IDgzLjMgMTEuNjE3IDgxLjUgMTEuNjE3IEMgNzcuNCAxMS42MTcgNzMuOSAxNC43MTcgNzMuMiAxOS4xMTcgQyA3Mi44IDIxLjMxNyA3My4zIDIzLjQxNyA3NC42IDI0LjgxNyBDIDc1LjcgMjYuMTE3IDc3LjQgMjYuNzE3IDc5LjMgMjYuNzE3IEMgODIuNiAyNi43MTcgODQuNSAyNC42MTcgODQuNSAyNC42MTcgTCA4NC4zIDI1LjYxNyBDIDg0LjIgMjYuMDE3IDg0LjUgMjYuNDE3IDg0LjkgMjYuNDE3IEwgODguMyAyNi40MTcgQyA4OC44IDI2LjQxNyA4OS4zIDI2LjAxNyA4OS40IDI1LjUxNyBMIDkxLjQgMTIuNzE3IEMgOTEuNCAxMi41MTcgOTEuMSAxMi4xMTcgOTAuNyAxMi4xMTcgWiBNIDg1LjUgMTkuMzE3IEMgODUuMSAyMS40MTcgODMuNSAyMi45MTcgODEuMyAyMi45MTcgQyA4MC4yIDIyLjkxNyA3OS40IDIyLjYxNyA3OC44IDIxLjkxNyBDIDc4LjIgMjEuMjE3IDc4IDIwLjMxNyA3OC4yIDE5LjMxNyBDIDc4LjUgMTcuMjE3IDgwLjMgMTUuNzE3IDgyLjQgMTUuNzE3IEMgODMuNSAxNS43MTcgODQuMyAxNi4xMTcgODQuOSAxNi43MTcgQyA4NS41IDE3LjQxNyA4NS43IDE4LjMxNyA4NS41IDE5LjMxNyBaIj48L3BhdGg+PHBhdGggZmlsbD0iIzAwOWNkZSIgZD0iTSA5NS4xIDUuNDE3IEwgOTEuOSAyNS43MTcgQyA5MS44IDI2LjExNyA5Mi4xIDI2LjQxNyA5Mi41IDI2LjQxNyBMIDk1LjcgMjYuNDE3IEMgOTYuMiAyNi40MTcgOTYuNyAyNi4wMTcgOTYuOCAyNS41MTcgTCAxMDAgNS42MTcgQyAxMDAuMSA1LjIxNyA5OS44IDQuOTE3IDk5LjQgNC45MTcgTCA5NS44IDQuOTE3IEMgOTUuNCA0LjkxNyA5NS4yIDUuMTE3IDk1LjEgNS40MTcgWiI+PC9wYXRoPjwvc3ZnPg==" alt="paypal"> </div> </div> <script> $('[name=paypal_connect]').click(function(){ $(this).after('<input data-scope="paypal" class="temp_field" type="hidden" name="private_paypal_connect" value="1"/>'); $(this).after('<input data-scope="paypal" class="temp_field" type="hidden" name="step2_pass" value="1"/>'); $('[name=paypal_submit]').click(); }); </script> </fieldset> <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"); Common.select("[data-scope='stripe_apple_pay']").hide(); }, 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="US">ÉTATS-UNIS</option> <option value="FR">FRANCE</option> <option value="NL">PAYS-BAS</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_6746d1368550b" 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_6746d1368550b = function(){ var reserved_phone_input_reserved_phone_number_id_6746d1368550b = $("#reserved_phone_number_id_6746d1368550b input[name=reserved_phone_number]"); var iti_reserved_phone_number_id_6746d1368550b = window.intlTelInput(document.querySelector("#reserved_phone_number_id_6746d1368550b 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_6746d1368550b)").submit(function() { const reserved_phone_input_reserved_phone_number_id_6746d1368550b_tmp = reserved_phone_input_reserved_phone_number_id_6746d1368550b.val(); reserved_phone_input_reserved_phone_number_id_6746d1368550b.val(iti_reserved_phone_number_id_6746d1368550b.getNumber()); if(reserved_phone_input_reserved_phone_number_id_6746d1368550b.val() == ''){ reserved_phone_input_reserved_phone_number_id_6746d1368550b.val(reserved_phone_input_reserved_phone_number_id_6746d1368550b_tmp); } }); try { if (reserved_phone_input_reserved_phone_number_id_6746d1368550b.val() == '') iti_reserved_phone_number_id_6746d1368550b.setCountry('sg'); }catch(e){} $( document ).ready(function(){ $('select[name=country],input[name=country]').change(function(){ try { if(reserved_phone_input_reserved_phone_number_id_6746d1368550b.val() == '') iti_reserved_phone_number_id_6746d1368550b.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_6746d1368550b); }else{ load_phone_input_reserved_phone_number_id_6746d1368550b(); } }); </script> <p name="reserved_optin_newsletter" id="reserved_optin_newsletter_id_6746d13685578" 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ées nous sont indispensables pour vous envoyer votre reçu fiscal. Conformément à la loi informatique et libertés du 6 janvier 1978, vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données vous concernant. Pour exercer ce droit, adressez-vous à :<br /> <br /> <strong>Service Relations Donateurs</strong><br /> <strong>Reporters sans frontiè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écurité</strong></span><br /> <br /> Ce site internet est <strong>100% sécurisé</strong>.<br /> Toutes les informations bancaires pour traiter le paiement sont totalement sécurisées. Elles ne sont en aucun cas conservées sur nos systèmes informatiques. Grâce au cryptage SSL de vos données bancaires, vous êtes assurés de la fiabilité de vos transactions sur Internet. Pour en être certain : l’espace est sécurisé dès que l’URL de Reporters sans frontières commence par <strong>https</strong>.<br /> Notre service donateurs est à votre disposition pour répondre à toutes vos questions. N'hésitez pas à 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ées bancaires saisies sont incorrectes. Merci de les vérifier et de les saisir à 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é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="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="ccfrfr-r" data-logo="https://assets.fintecture.com/img/providers/svg/ccfrfr-r.svg"> Crédit Commercial de France CCF </option> <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> </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) : <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ées bancaires saisies sont incorrectes. Merci de les vérifier et de les saisir à 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édits">Crédits</a> <span>|</span> <a href="https://donate.rsf.org/mentions-legales" title="Mentions légales">Mentions lé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 --> </body></html>