MediaWiki:Centralnotice-template-B15 0304 enUS dsk tp amz n txt msn

From Meta, a Wikimedia project coordination wiki

<script> /* MediaWiki:CentralNotice/Resources/SeenCount.js

* Don't do any fancy hiding logic, but track the number of banners seen
* This number might be used later in the banner code
* e.g. to decide which 'sub-banner' to show
* and is also passed in utm_key
*/

(function(mw) {

   var cookieCount = parseInt($.cookie('centralnotice_bannercount_fr15')) || 0;
   if(!mw.centralNotice.bannerData.hideResult) {
       cookieCount += 1;
   }
   $.cookie('centralnotice_bannercount_fr15', cookieCount, { expires: 365, path: '/' });
   mw.centralNotice.bannerData.cookieCount = cookieCount;

})(mediaWiki);

mediaWiki.centralNotice.bannerData.alterImpressionData = function( impressionData ) {

   // Returning true from this function indicates the banner was shown
   if (mediaWiki.centralNotice.bannerData.hideReason) {
       impressionData.reason = mediaWiki.centralNotice.bannerData.hideReason;
   }
   if (mediaWiki.centralNotice.bannerData.cookieCount) {
       impressionData.banner_count = mediaWiki.centralNotice.bannerData.cookieCount;
   }
   return !mediaWiki.centralNotice.bannerData.hideResult;

}; </script>

<style> .paymentmethod-amazon { display: none !important; } .frbanner-form { min-width: 370px; }

   /* For IE9 */
   @media screen {
       #centralNotice {
          display: block !important;
       }
   }
   #centralNotice.collapsed .frbanner {
       display: none;
   }
   .frbanner {
       display: none;
       position: absolute;
       top: 0;
       left: 0;
       right: 0;
       z-index: 9999;
       background: transparent;
       font-family: Arial, Helvetica, Verdana, sans-serif;
       cursor: pointer;
   }
   #frbanner-main {
       background: #cedff1;
       padding: 0;
       width: 100%;
       border: none;
       border-spacing: 0; /* because border-collapse hides shadow in IE */
   }
   #frbanner-facts p {
       margin: 0;
       padding: 10px 10px 10px 40px;
       background: url(//upload.wikimedia.org/wikipedia/donate/thumb/9/96/I.svg/20px-I.svg.png) no-repeat 10px 8px;
       color: #000;
       font-size: 17px;
       line-height: 1.2;
       font-weight: bold;
       text-align: justify;
   }
   body.rtl div.frbanner #frbanner-facts p {
       padding-left: 10px;
       padding-right: 40px;
       background-position: top 10px right 8px;
   }
   @media (max-width: 982px) {
       #frbanner-facts p {
           font-size: 15px;
       }
   }
   .frbanner-greeting {
       font-style: italic;
       text-transform: uppercase;
   }
   .frbanner-highlight {
       background: #fff64c;
       color: black;
       padding: 1px 0;
   }
   .frbanner-form-wrapper {
       width: 330px;
       background: #f5faff;
       padding: 0;
       border-left: 1px solid #a8bedf;
   }
   .frbanner-form {
       height: 100%;
       font-size: 14px;
       font-weight: bold;
       padding: 4px 8px;
   }
   .frbanner-form table {
       border: none;
       border-collapse: collapse;
       width: 100%;
       height: 100%;
   }
   .frbanner-form td {
       min-width: 55px;
       white-space: nowrap;
       margin: 0;
       vertical-align: middle;
       padding: 2px;
   }
   .frbanner-form span label {
       margin-left: 2px;
   }
   .frbanner-form .amount-options {
       height: 20%;
       color: #091d41;
   }
   .frbanner-form #input_label_other input {
       direction: ltr;
   }
   .frbanner-form .paymentmethod-options td {
       text-align: center;
       padding: 12px 4px 8px 4px ;
   }
   .frbanner-form button,
   #frbanner-nag button {
       display: inline-block;
       min-width: 110px;
       min-height: 26px;
       margin: 0 1px;
       border: 1px solid #626f90;
       border-radius: 5px;
       background: #ffffff;
       background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
       background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e5e5e5));
       background: -webkit-linear-gradient(top, #ffffff 0%,#e5e5e5 100%);
       background: -o-linear-gradient(top, #ffffff 0%,#e5e5e5 100%);
       background: -ms-linear-gradient(top, #ffffff 0%,#e5e5e5 100%);
       background: linear-gradient(to bottom, #ffffff 0%,rgb(240, 240, 240) 100%);
       box-shadow: 0 1px 1px #eee;
       color: black;
       font-size: 12px;
       font-weight: bold;
       cursor: pointer;
   }
   .frbanner-form button:hover,
   #frbanner-nag button:hover {
       color: #0645ad;
   }
   #frbanner-close,
   .frbanner-nag-close {
       display: block;
       position: absolute;
       top: 0;
       right: 0;
       width: 16px;
       height: 16px;
       background: url(//upload.wikimedia.org/wikipedia/donate/c/cf/Close-trilogy.png) no-repeat center center;
       background-size: contain;
       cursor: pointer;
       opacity: 0.8;
       margin: 8px;
   }
   .frbanner-nag-close {
       right: 16px;
   }
   #frbanner-close:hover,
   .frbanner-nag-close:hover {
       opacity: 1;
   }
   body.rtl #frbanner-close {
       right: auto;
       left: 0;
   }
   body.rtl .frbanner-nag-close {
       right: auto;
       left: 16px;
   }
   #frbanner-legal {
       display: none;
       position: relative;
       margin: 0;
       padding: 10px 40px 5px 40px;
       background: #cedff1;
       font-size: 11px;
       line-height: 1;
       font-weight: normal;
   }
   #frbanner-nag {
       display: none;
       position: fixed;
       top: 0;
       left: 0;
       background-color: #ffcc00;
       padding: 6px;
       width: 100%;
       text-align: center;
       font-size: 17px;
       font-weight: bold;
   }
   .frbanner-nag-link {
       vertical-align: middle;
   }
   .frbanner-nag-link:hover {
       text-decoration: underline;
   }

</style>

DEAR WIKIPEDIA READERS, We’ll get right to it: This week we ask our readers to help us. To protect our independence, we'll never run ads. We survive on donations averaging about %AVERAGE%. Only a tiny portion of our readers give. If everyone reading this right now gave %MINIMUM%, our fundraiser would be done within an hour. That’s right, the price of a cup of coffee is all we need. We’re a small non-profit with costs of a top website: servers, staff and programs. If Wikipedia is useful to you, please give whatever you can to make the information on Wikipedia freely available to every single person on the planet. That's our commitment. Thank you.

               <style>

/* hide methods which aren't monthly capable when monthly option is selected */ .form-monthly button.no-monthly {

   display: none !important;

} </style> <form id="{{{banner}}}-form" class="frbanner-form" method="GET" name="paypalcontribution">

   <input type="hidden" name="utm_medium" value="sitenotice">
   <input type="hidden" name="utm_campaign" value="{{{campaign}}}">
   <input type="hidden" name="utm_source" value="{{{banner}}}">
   <input type="hidden" name="utm_key" value="">
   <input type="hidden" name="language" value="">
   <input type="hidden" name="country" value="">
   <input type="hidden" name="currency_code" id="input_currency_code" value="">
   <input type="hidden" name="payment_method" value="">
   <input type="hidden" name="payment_submethod" value="">
   <input type="hidden" name="recurring" value="">
   <input type="hidden" name="gateway" value="">
   <input type="hidden" name="ffname" value="">
   <input type="hidden" name="bannerhistlog" value="">
<input type="radio" name="frequency" id="frequency_onetime" onclick="toggleMonthly(false);" value="onetime" checked="checked"><label for="frequency_onetime">One-time</label> <input type="radio" name="frequency" id="frequency_monthly" onclick="toggleMonthly(true);" value="monthly"><label for="frequency_monthly">Monthly*</label>
               <input type="radio" name="amount" id="input_amount_0" onclick="document.paypalcontribution.amountGiven.value=" value="3">
               <label for="input_amount_0">$3</label>
               <input type="radio" name="amount" id="input_amount_1" onclick="document.paypalcontribution.amountGiven.value=" value="5">
               <label for="input_amount_1">$5</label>
               <input type="radio" name="amount" id="input_amount_2" onclick="document.paypalcontribution.amountGiven.value=" value="10">
               <label for="input_amount_2">$10</label>
               <input type="radio" name="amount" id="input_amount_3" onclick="document.paypalcontribution.amountGiven.value=" value="20">
               <label for="input_amount_3">$20</label>
               <input type="radio" name="amount" id="input_amount_4" onclick="document.paypalcontribution.amountGiven.value=" value="30">
               <label for="input_amount_4">$30</label>
               <input type="radio" name="amount" id="input_amount_5" onclick="document.paypalcontribution.amountGiven.value=" value="50">
               <label for="input_amount_5">$50</label>
               <input type="radio" name="amount" id="input_amount_6" onclick="document.paypalcontribution.amountGiven.value=" value="100">
               <label for="input_amount_6">$100</label>
               <input type="radio" name="amount" id="input_amount_other" value="Other">

$<input style="height: 1em;" type="text" name="amountGiven" size="3" autocomplete="off" onfocus="$('#input_amount_other').prop('checked', true);" id="input_amount_other_box">

               <button class="paymentmethod-ideal no-monthly" onclick="redirectPayment('rtbt', 'rtbt_ideal'); return false;" style="display:none;">
                   iDEAL
               </button>
               <button class="paymentmethod-cc" onclick="redirectPayment('cc'); return false;">
                   Credit Card
               </button>
               <button class="paymentmethod-cc-wp no-monthly" onclick="redirectPayment('cc-wp'); return false;" style="display:none;">
                   Credit Card
               </button>
               <button class="paymentmethod-sofort no-monthly" onclick="redirectPayment('rtbt', 'rtbt_sofortuberweisung'); return false;" style="display:none;">
                   Online Bank Transfer
               </button>
               <button class="paymentmethod-bt no-monthly" onclick="redirectPayment('bt'); return false;" style="display:none;">
                   Bank Transfer
               </button>
               <button class="paymentmethod-cash no-monthly" onclick="redirectPayment('cash'); return false;" style="display: none;">
                   Cash
               </button>
               <button class="paymentmethod-pp" onclick="redirectPayment('paypal'); return false;">
                   PayPal
               </button>
               <button class="paymentmethod-amazon no-monthly" onclick="redirectPayment('amazon'); return false;" style="display:none;">
                   Amazon
               </button>
               <button class="paymentmethod-bpay no-monthly" onclick="redirectPayment('obt', 'bpay'); return false;" style="display:none;">
                   BPay
               </button>
               <button class="paymentmethod-enets no-monthly" onclick="redirectPayment('rtbt', 'rtbt_enets'); return false" style="display:none;">
                   eNETS
               </button>
               <button class="paymentmethod-pp-usd" onclick="redirectPayment('paypal', undefined, true); return false;" style="display: none;">
                   PayPal (USD)
               </button>

</form>

                
       <img src="//upload.wikimedia.org/wikipedia/donate/thumb/c/c8/I-blue.svg/20px-I-blue.svg.png">
       If we all gave %MINIMUM%, the fundraiser would be over in an hour.
       <button class="frbanner-nag-donate">Donate now</button>
       

<script> var fundraisingBanner = {};

fundraisingBanner.addSpace = function() {

   /* add space for the banner, and extra px if given below. called on load and window resize */
   var extra = 0;
   var bannerHeight = $('#{{{banner}}}').height();
   $('#mw-panel').css('top', bannerHeight+160+extra);
   $('#mw-head').css('top', bannerHeight+extra);
   $('#mw-page-base').css('margin-top', bannerHeight+extra);

};

fundraisingBanner.show = function() {

   $('body').prepend($('#centralNotice'));
   $('#{{{banner}}}').css('display', 'block');
   fundraisingBanner.addSpace();
   $(window).resize(function() {
       fundraisingBanner.addSpace();
   });

};

fundraisingBanner.hide = function() {

   /* hide the banner, and remove the extra space which was added for it */
   mw.centralNotice.hideBanner();
   $('#{{{banner}}}').hide();
   $('#mw-panel').css('top', '160px');
   $('#mw-head').css('top', '0px');
   $('#mw-page-base').css('margin-top', '0');
   return false;

}; </script>

<script> /**

* NOTE: The following currency mapping is WMF-specific based on payment
* provider availability, NOT necessarily the official currency of the country
*/

function getCurrency() {

   switch(Geo.country) {
       // Big 5 at the top for speed
       case "US": return "USD";
       case "CA": return "CAD";
       case "GB": return "GBP";
       case "AU": return "AUD";
       case "NZ": return "NZD";
       // Euro countries
       case "AD":
       case "AL":
       case "AM":
       case "AT":
       case "AW":
       case "AZ":
       case "BE":
       case "BY":
       case "CI":
       case "CY":
       case "DE":
       case "EE":
       case "ES":
       case "FI":
       case "FR":
       case "GF":
       case "GR":
       case "IE":
       case "IT":
       case "LT":
       case "LU":
       case "LV":
       case "LY":
       case "MC":
       case "ME":
       case "MG":
       case "MT":
       case "NL":
       case "PT":
       case "RE":
       case "RS":
       case "SI":
       case "SK":
       case "SM":
       case "SR":
       case "VA":
           return "EUR";
       // The rest
       case "AE": return "AED";
       case "AR": return "ARS";
       case "BA": return "BAM";
       case "BB": return "BBD";
       case "BD": return "BDT";
       case "BG": return "BGN";
       case "BH": return "BHD";
       case "BM": return "BMD";
       case "BO": return "BOB";
       case "BR": return "BRL";
       case "BZ": return "BZD";
       case "CH": return "CHF";
       case "CK": return "NZD";
       case "CL": return "CLP";
       case "CN": return "CNY";
       case "CO": return "COP";
       case "CR": return "CRC";
       case "CZ": return "CZK";
       case "DK": return "DKK";
       case "DO": return "DOP";
       case "DZ": return "DZD";
       case "EG": return "EGP";
       case "FJ": return "FJD";
       case "FO": return "DKK";
       case "GL": return "DKK";
       case "GT": return "GTQ";
       case "HK": return "HKD";
       case "HN": return "HNL";
       case "HR": return "HRK";
       case "HU": return "HUF";
       case "ID": return "IDR";
       case "IL": return "ILS";
       case "IN": return "INR";
       case "IS": return "ISK";
       case "JM": return "JMD";
       case "JO": return "JOD";
       case "JP": return "JPY";
       case "KE": return "KES";
       case "KI": return "AUD";
       case "KR": return "KRW";
       case "KZ": return "KZT";
       case "LB": return "LBP";
       case "LI": return "CHF";
       case "LK": return "LKR";
       case "MA": return "MAD";
       case "MK": return "MKD";
       case "MV": return "MVR";
       case "MW": return "GBP";
       case "MX": return "MXN";
       case "MY": return "MYR";
       case "NI": return "NIO";
       case "NO": return "NOK";
       case "NP": return "INR";
       case "NR": return "AUD";
       case "OM": return "OMR";
       case "PA": return "PAB";
       case "PE": return "PEN";
       case "PG": return "AUD";
       case "PH": return "PHP";
       case "PK": return "PKR";
       case "PL": return "PLN";
       case "PY": return "PYG";
       case "QA": return "QAR";
       case "RO": return "RON";
       case "RU": return "RUB";
       case "SA": return "SAR";
       case "SD": return "GBP";
       case "SE": return "SEK";
       case "SG": return "SGD";
       case "TH": return "THB";
       case "TM": return "RUB";
       case "TN": return "TND";
       case "TR": return "TRY";
       case "TT": return "TTD";
       case "TW": return "TWD";
       case "UA": return "UAH";
       case "UY": return "UYU";
       case "UZ": return "RUB";
       case "VE": return "VEF";
       case "VN": return "VND";
       case "VU": return "AUD";
       case "ZA": return "ZAR";
       // small multi-country currencies
       case "CW":
       case "SX":
           return "ANG";
       case "AG":
       case "DM":
       case "GD":
       case "KN":
       case "LC":
           return "XCD";
       case "BJ":
       case "BF":
       case "CI":
       case "GW":
       case "ML":
       case "NE":
       case "SN":
       case "TG":
           return "XOF";
       case "PF":
       case "NC":
       case "WF":
           return "XPF";
       // fall back to USD
       default:
           return "USD";
   }

} </script> <script> function currencyLocalize(currency, amount, language){

   // Do some basic number formatting - digit separators etc
   if (window.Intl && typeof window.Intl === "object") {
       if (Geo.country) {
           var locale = language + '-' + Geo.country;
       } else {
           var locale = language;
       }
       var formatter = new Intl.NumberFormat(locale);
   } else {
       // boo, bad browser! let's just have a thing that throws it back unformatted for now
       var formatter = {};
       formatter.format = function(number) {
           return number.toString();
       };
   }
   if (isNaN(amount) || amount == "") {
       // it's probably the "other" string or box
       var fmAmount = amount;
   } else {
       var fmAmount = formatter.format(amount);
   }
   // End number formatting
   var currencies = {
       "USD" : "$\t",
       "EUR" : {
           "en" : "€\t",
           "cy" : "€\t",
           "ga" : "€\t",
           "mt" : "€\t",
           "nl" : "€ \t",
           "lv" : "€ \t",
           "tr" : "€ \t",
           "default" : "\t €"
       },
       "AED" : " د.إ \t",
       "ANG" : "ƒ\t",
       "ARS" : "$\t",
       "AUD" : "$\t",
       "BAM" : "\t KM",
       "BBD" : "Bcs$\t",
       "BDT" : "৳\t",
       "BGN" : "лв\t",
       "BHD" : "د.ب\t",
       "BMD" : "BD$\t",
       "BOB" : "$b\t",
       "BRL" : "R$\t",
       "BZD" : "BZ$\t",
       "CAD" : {
           "fr" : "$\t",
           "default" : "$\t"
       },
       "CHF" : "Fr. \t",
       "CLP" : "$\t",
       "CNY" : "\t ¥",
       "COP" : "$\t",
       "CRC" : "\t ₡",
       "CZK" : "\t Kč",
       "DKK" : "\t kr.",
       "DOP" : "RD$\t",
       "DZD" : "د.ج\t",
       "EEK" : "\t kr",
       "EGP" : {
           "en" : "E£\t",
           "default" : "\t جنيه"
       },
       "FJD" : "FJ$\t",
       "GBP" : "£\t",
       "GTQ" : "Q\t",
       "HKD" : "HK$\t",
       "HNL" : "L\t",
       "HRK" : "\t kn",
       "HUF" : "\t Ft",
       "IDR" : "Rp \t",
       "ILS" : {
           "he" : "\t ₪",
           "yi" : "\t ₪",
           "ar" : "\t ₪",
           "default" : "₪ \t"
       },
       "INR" : "₹ \t",
       "ISK" : "\t kr",
       "JMD" : "J$ \t",
       "JOD" : "دينار\t",
       "JPY" : "¥\t",
       "KES" : "\t KSh",
       "KRW" : "₩\t",
       "KWD" : "د.ك \t",
       "KZT" : "〒 \t", // TODO: don't use the JP postal code symbol once KZT works in unicode
       "LBP" : "LBP \t",
       "LKR" : "\t Rs.",
       "LTL" : "\t Lt",
       "LVL" : "\t Ls",
       "MAD" : "د.م.\t",
       "MKD" : "\t ден",
       "MOP" : "MOP$\t",
       "MUR" : "\t Rs",
       "MXN" : "$\t",
       "MVR" : "Rf. \t",
       "MYR" : "RM\t",
       "NIO" : "C$\t",
       "NOK" : "\t kr",
       "NZD" : "$\t",
       "OMR" : "ر.ع\t",
       "PAB" : "\t B/.",
       "PEN" : "S/. \t",
       "PHP" : "₱\t",
       "PKR" : "Rs \t",
       "PLN" : "\t zł",
       "PYG" : "\t ₲",
       "QAR" : "ر.ق\t",
       "RON" : "\t lei",
       "RUB" : "\t руб",
       "SAR" : "﷼\t",
       "SCR" : "SR \t",
       "SEK" : "\t kr",
       "SGD" : "S$ \t",
       "SVC" : "\t ₡",
       "THB" : {
           "th" : "\t บาท",
           "default" : "\t ฿"
       },
       "TND" : "\t د.ت",
       "TRY" : "₺\t",
       "TTD" : "TT$\t",
       "TWD" : "NT$\t",
       "TZS" : "\t/=",
       "UAH" : "₴\t",
       "UYU" : "$U \t",
       "UZS" : "\t сўм",
       "VEF" : "Bs.F. \t",
       "VND" : "\t₫",
       "VUV" : "VT\t",
       "XAF" : "FCFA\t",
       "XCD" : "EC$\t",
       "XOF" : "CFA \t",
       "XPF" : "\t F",
       "ZAR" : "R \t"
   };
   if(currencies[currency] == null){
       return currency + " " + fmAmount;
   }
   if( currencies[currency] instanceof Object ){ // not a string
       if(currencies[currency][language] != null){
           return currencies[currency][language].replace("\t", fmAmount);
       }
       return currencies[currency]["default"].replace("\t", fmAmount);
   }
   return currencies[currency].replace("\t", fmAmount);

} </script> <script> function getMinimum(currency){

   var minimums = {
       'ADF' : 5.95,
       'ADP' : 150.87,
       'AED' : 3.67,
       'AFA' : 60.47,
       'AFN' : 60.47,
       'ALL' : 124.74,
       'AMD' : 473.47,
       'ANG' : 1.82,
       'AOA' : 122.35,
       'AON' : 122.35,
       'ARS' : 14, // Astropay
       'ATS' : 12.48,
       'AUD' : 1.35,
       'AWG' : 1.79,
       'AZM' : 3926.19,
       'AZN' : 1.05,
       'BAM' : 1.77,
       'BBD' : 2,
       'BDT' : 76.04,
       'BEF' : 36.58,
       'BGL' : 1.77,
       'BGN' : 1.77,
       'BHD' : 0.37,
       'BIF' : 1599.65,
       'BMD' : 1,
       'BND' : 1.33,
       'BOB' : 6.71,
       'BRL' : 3.2,
       'BSD' : 0.99,
       'BTN' : 63.52,
       'BWP' : 9.89,
       'BYR' : 15378.7,
       'BZD' : 1.96,
       'CAD' : 1.27,
       'CDF' : 912.52,
       'CHF' : 0.95,
       'CLP' : 980, // Astropay
       'CNY' : 6.09,
       'COP' : 4000, // Astropay
       'CRC' : 523.08,
       'CUC' : 1,
       'CUP' : 23.15,
       'CVE' : 99.81,
       'CYP' : 0.53,
       'CZK' : 24.59,
       'DEM' : 1.77,
       'DJF' : 177.72,
       'DKK' : 6.77,
       'DOP' : 44.46,
       'DZD' : 99.04,
       'ECS' : 25588.54,
       'EEK' : 14.19,
       'EGP' : 7.81,
       'ESP' : 150.87,
       'ETB' : 20.5,
       'EUR' : 0.91,
       'FIM' : 5.39,
       'FJD' : 2.11,
       'FKP' : 0.65,
       'FRF' : 5.95,
       'GBP' : 0.65,
       'GEL' : 2.25,
       'GHC' : 37964.2,
       'GHS' : 3.8,
       'GIP' : 0.65,
       'GMD' : 38.45,
       'GNF' : 7251.79,
       'GRD' : 308.97,
       'GTQ' : 7.43,
       'GYD' : 197.27,
       'HKD' : 7.75,
       'HNL' : 21.27,
       'HRK' : 6.87,
       'HTG' : 52.41,
       'HUF' : 287.8,
       'IDR' : 13333.3,
       'IEP' : 0.71,
       'ILS' : 3.79,
       'INR' : 63.39,
       'IQD' : 1141.95,
       'IRR' : 29360,
       'ISK' : 133.46,
       'ITL' : 1755.66,
       'JMD' : 113.71,
       'JOD' : 0.71,
       'JPY' : 121.58,
       'KES' : 98.48,
       'KGS' : 62.13,
       'KHR' : 3995.54,
       'KMF' : 445,
       'KPW' : 135.01,
       'KRW' : 1134.04,
       'KWD' : 0.3,
       'KYD' : 0.82,
       'KZT' : 183.31,
       'LAK' : 7923.05,
       'LBP' : 1480.9,
       'LKR' : 130.3,
       'LRD' : 85,
       'LSL' : 12.5,
       'LTL' : 3.13,
       'LUF' : 36.58,
       'LVL' : 0.64,
       'LYD' : 1.34,
       'MAD' : 9.77,
       'MDL' : 18.71,
       'MGA' : 3252.88,
       'MGF' : 9149.13,
       'MKD' : 55.45,
       'MMK' : 1111.03,
       'MNT' : 1958,
       'MOP' : 7.79,
       'MRO' : 320.47,
       'MTL' : 0.39,
       'MUR' : 34.3,
       'MVR' : 14.97,
       'MWK' : 441.83,
       'MXN' : 24, // Astropay
       'MYR' : 3.8,
       'MZM' : 38000,
       'MZN' : 38,
       'NAD' : 12.5,
       'NGN' : 196.44,
       'NIO' : 26.24,
       'NLG' : 2,
       'NOK' : 8.2,
       'NPR' : 99.74,
       'NZD' : 1.5,
       'OMR' : 0.38,
       'PAB' : 1,
       'PEN' : 3.12,
       'PGK' : 2.68,
       'PHP' : 45.15,
       'PKR' : 100.4,
       'PLN' : 3.83,
       'PTE' : 181.78,
       'PYG' : 5065.03,
       'QAR' : 3.64,
       'ROL' : 40637.3,
       'RON' : 4.06,
       'RSD' : 108.68,
       'RUB' : 57.16,
       'RWF' : 721.7,
       'SAR' : 3.75,
       'SBD' : 7.83,
       'SCR' : 12.33,
       'SDD' : 592.4,
       'SDG' : 5.92,
       'SDP' : 2272.21,
       'SEK' : 8.5,
       'SGD' : 1.35,
       'SHP' : 0.62,
       'SIT' : 217.29,
       'SKK' : 27.32,
       'SLL' : 4158,
       'SOS' : 673,
       'SRD' : 3.24,
       'SRG' : 3240,
       'STD' : 22115.7,
       'SVC' : 8.54,
       'SYP' : 217.65,
       'SZL' : 12.5,
       'THB' : 33.94,
       'TJS' : 6.26,
       'TMM' : 14285.71,
       'TMT' : 2.85,
       'TND' : 1.97,
       'TOP' : 2.16,
       'TRL' : 2687990,
       'TRY' : 2.69,
       'TTD' : 6.25,
       'TWD' : 31.04,
       'TZS' : 2185.91,
       'UAH' : 21.25,
       'UGX' : 3454.24,
       'USD' : 1,
       'UYU' : 40, // Astropay
       'UZS' : 2541,
       'VEB' : 6290.36,
       'VEF' : 6.29,
       'VND' : 21482.8,
       'VUV' : 104.5,
       'WST' : 2.36,
       'XAF' : 595.84,
       'XAG' : 0.07,
       'XAU' : 0,
       'XCD' : 2.69,
       'XEU' : 0.91,
       'XOF' : 595.83,
       'XPD' : 0,
       'XPF' : 108.27,
       'XPT' : 0,
       'YER' : 214.8,
       'YUN' : 108.68,
       'ZAR' : 12.5,
       'ZMK' : 5327.65,
       'ZWD' : 376.36
   };
   if($.inArray(currency, minimums)){
       return minimums[currency];
   }
   return 1;

} </script> <script> var fundraisingAmounts = fundraisingAmounts || {};

fundraisingAmounts.asks = {

   "USD" : {
       "default" : [3, 5, 10, 20, 30, 50, 100]
   },
   "EUR" : {
       "default" : [2, 5, 10, 20, 30, 50, 100]
   },
   "GBP" : [2, 5, 10, 20, 30, 50, 100],
   "CAD" : [3, 5, 10, 20, 30, 50, 100],
   "AUD" : [3, 5, 10, 20, 30, 50, 100],
   "NZD" : [3, 5, 10, 20, 30, 50, 100],
   "AED" : [25, 50, 100, 200, 300, 500, 1000],
   "ANG" : [5, 10, 20, 35, 50, 100, 200],
   "ARS" : [30, 50, 100, 200, 500, 750, 1000],
   "BAM" : [3, 5, 10, 25, 40, 70, 140],
   "BBD" : [5, 10, 20, 40, 60, 100, 200],
   "BDT" : [200, 400, 800, 1500, 2000, 4000, 7500],
   "BGN" : [10, 25, 50, 75, 100, 150, 200],
   "BHD" : [1, 2, 4, 8, 10, 20, 40],
   "BMD" : [3, 5, 10, 20, 30, 50, 100],
   "BOB" : [20, 30, 60, 140, 200, 300, 600],
   "BRL" : [10, 20, 30, 50, 100, 250, 500],
   "BZD" : [5, 10, 20, 40, 60, 100, 200],
   "CLP" : [1500, 2500, 5000, 10000, 15000, 25000, 50000],
   "CNY" : [50, 75, 100, 300, 500, 1000, 1500],
   "COP" : [7000, 10000, 20000, 50000, 100000, 150000, 200000],
   "CRC" : [2500, 5000, 10000, 20000, 50000, 75000, 100000],
   "CZK" : [50, 100, 200, 400, 600, 1000, 2000],
   "DKK" : [20, 100, 150, 200, 300, 500, 1000],
   "DOP" : [200, 500, 1000, 2000, 5000, 7500, 10000],
   "DZD" : [200, 400, 750, 1500, 2000, 4000, 7500],
   "FJD" : [5, 10, 20, 40, 50, 100, 200],
   "GTQ" : [20, 40, 80, 150, 200, 350, 750],
   "HKD" : [20, 50, 100, 150, 200, 500, 1000],
   "HNL" : [50, 100, 200, 400, 600, 1000, 1800],
   "HRK" : [35, 50, 100, 250, 500, 1000, 1500],
   "HUF" : [500, 1000, 2000, 4000, 5000, 7000, 10000],
   "IDR" : [35000, 50000, 75000, 100000, 150000, 250000, 500000],
   "ISK" : [300, 500, 1000, 2000, 3000, 5000, 10000],
   "ILS" : [15, 50, 100, 200, 300, 500, 1000],
   "INR" : [100, 200, 300, 500, 1000, 2000, 3000],
   "JMD" : [300, 500, 1000, 2000, 3000, 5000, 10000],
   "JPY" : [300, 1000, 1500, 2000, 3000, 5000, 10000],
   "KRW" : [5000, 10000, 20000, 30000, 50000, 75000, 100000],
   "KWD" : [2, 5, 10,15, 25, 30, 75],
   "KZT" : [750, 1500, 3000, 7500, 12000, 15000, 35000],
   "LBP" : [7500, 15000, 30000, 75000, 120000, 175000, 350000],
   "LTL" : [15, 25, 50, 100, 200, 250, 600],
   "MKD" : [100, 200, 400, 800, 1200, 2000, 4000],
   "MVR" : [40, 75, 150, 300, 450, 750, 1500],
   "MXN" : [35, 50, 100, 200, 500, 750, 1000],
   "MYR" : [10, 30, 50, 100, 200, 300, 500],
   "NIO" : [100, 250, 500, 1000, 1500, 2500, 5500],
   "NOK" : [20, 100, 150, 200, 500, 750, 1000],
   "OMR" : [1, 2, 4, 8, 10, 20, 40],
   "PAB" : [3, 5, 10, 20, 30, 50, 100],
   "PEN" : [10, 30, 50, 150, 200, 275, 700],
   "PHP" : [200, 500, 750, 1000, 2000, 3000, 5000],
   "PLN" : [10, 20, 50, 100, 200, 300, 500],
   "PYG" : [10000, 20000, 40000, 80000, 120000, 200000, 400000],
   "QAR" : [20, 50, 75, 185, 250, 350, 1000],
   "RON" : [10, 50, 75, 100, 200, 300, 500],
   "RUB" : [100, 150, 200, 500, 1000, 2000, 3000],
   "SAR" : [20, 50, 100, 200, 500, 1000, 1500],
   "SEK" : [30, 50, 100, 200, 300, 500, 1000],
   "SGD" : [3, 5, 10, 20, 30, 50, 100],
   "THB" : [50, 100, 250, 500, 750, 1000, 2000],
   "TND" : [5, 10, 15, 30, 50, 75, 150],
   "TRY" : [5, 10, 20, 40, 50, 100, 200],
   "TTD" : [20, 30, 60, 120, 200, 300, 600],
   "TWD" : [150, 300, 500, 1000, 1500, 2000, 5000],
   "UAH" : [50, 75, 150, 300, 500, 750, 1000],
   "UYU" : [70, 100, 200, 400, 1000, 1500, 2000],
   "VEF" : [20, 30, 50, 100, 200, 300, 600],
   "VND" : [60000, 100000, 200000, 400000, 600000, 1000000, 2000000],
   "XCD" : [5, 10, 20, 50, 80, 120, 250],
   "XOF" : [1000, 2000, 5000, 10000, 150000, 200000, 400000],
   "XPF" : [250, 400, 800, 1600, 2500, 4000, 8000],
   "ZAR" : [30, 50, 100, 200, 300, 500, 1000],
   "CHF" : [3, 5, 10, 20, 30, 50, 100]

};

/* Usual formula: take 1st, 3rd, 4th, 6th and 7th from desktop asks */ fundraisingAmounts.mobileAsks = {

   "USD" : [3, 15, 20, 50, 100],
   "CAD" : [3, 15, 20, 50, 100],
   "AUD" : [3, 15, 20, 50, 100],
   "NZD" : [3, 15, 20, 50, 100],
   "GBP" : [2, 10, 20, 50, 100],
   "EUR" : [2, 10, 20, 50, 100],
   "ARS" : [30, 100, 200, 750, 1000],
   "BRL" : [10, 30, 50, 100, 250],
   "CHF" : [3, 15, 20, 50, 100],
   "CLP" : [1500, 5000, 10000, 25000, 50000],
   "CNY" : [50, 100, 300, 500, 1000],
   "COP" : [7000, 20000, 50000, 150000, 200000],
   "DKK" : [20, 100, 200, 500, 1000],
   "HKD" : [20, 100, 150, 500, 1000],
   "HUF" : [500, 2500, 4000, 7000, 10000],
   "ILS" : [15, 50, 200, 600, 1000],
   "INR" : [100, 300, 500, 2000, 3000],
   "JPY" : [300, 1500, 2000, 5000, 10000],
   "MXN" : [35, 100, 200, 750, 1000],
   "MYR" : [10, 50, 100, 300, 500],
   "NOK" : [20, 100, 200, 500, 1000],
   "PEN" : [10, 50, 150, 300, 700],
   "PLN" : [10, 50, 100, 300, 500],
   "RON" : [10, 50, 100, 200, 1000],
   "SEK" : [30, 100, 200, 500, 1000],
   "UAH" : [50, 150, 300, 750, 1000],
   "UYU" : [70, 200, 400, 1500, 2000],
   "ZAR" : [30, 100, 200, 500, 1000]

};

fundraisingAmounts.averages = {

   "USD" : 15,
   "EUR" : 10,
   "GBP" : 10,
   "CAD" : 15,
   "AUD" : 15,
   "NZD" : 15,
   "AED" : 50,
   "ALL" : 1500,
   "AMD" : 5000,
   "ANG" : 25,
   "ARS" : 100,
   "AZN" : 10,
   "BAM" : 20,
   "BBD" : 30,
   "BDT" : 1000,
   "BGN" : 20,
   "BHD" : 6,
   "BMD" : 15,
   "BND" : 20,
   "BOB" : 100,
   "BRL" : 25,
   "BSD" : 15,
   "BZD" : 30,
   "CHF" : 15,
   "CLP" : 8000,
   "CNY" : 100,
   "COP" : 30000,
   "CRC" : 7500,
   "CZK" : 250,
   "DKK" : 100,
   "DOP" : 600,
   "DZD" : 1000,
   "EGP" : 100,
   "ETB" : 250,
   "FJD" : 25,
   "GEL" : 25,
   "GNF" : 100000,
   "GTQ" : 100,
   "HKD" : 100,
   "HNL" : 250,
   "HRK" : 80,
   "HUF" : 2500,
   "IDR" : 150000,
   "ILS" : 50,
   "INR" : 750,
   "IQD" : 15000,
   "ISK" : 1500,
   "JMD" : 1500,
   "JOD" : 10,
   "JPY" : 1500,
   "KES" : 1000,
   "KRW" : 15000,
   "KWD" : 5,
   "KZT" : 2000,
   "LBP" : 20000,
   "LKR" : 2000,
   "LTL" : 40,
   "LVL" : 10,
   "MAD" : 120,
   "MKD" : 600,
   "MOP" : 100,
   "MUR" : 500,
   "MVR" : 200,
   "MXN" : 150,
   "MYR" : 50,
   "MZN" : 50,
   "NGN" : 2500,
   "NIO" : 350,
   "NOK" : 100,
   "OMR" : 5,
   "PAB" : 15,
   "PEN" : 40,
   "PHP" : 600,
   "PKR" : 1500,
   "PLN" : 50,
   "PYG" : 60000,
   "QAR" : 50,
   "RON" : 50,
   "RSD" : 1200,
   "RUB" : 500,
   "SAR" : 50,
   "SBD" : 100,
   "SEK" : 100,
   "SGD" : 20,
   "THB" : 500,
   "TND" : 25,
   "TRY" : 25,
   "TTD" : 100,
   "TWD" : 500,
   "UAH" : 150,
   "UYU" : 300,
   "VEF" : 100,
   "VND" : 300000,
   "XCD" : 40,
   "XOF" : 7000,
   "XPF" : 1000,
   "ZAR" : 150,
   "CHF" : 15

};

// Mostly the same as first asks option. // For backwards compatibility, these need to be given as an array of one number fundraisingAmounts.ifEveryone = {

   "USD" : {
       "default" : [3]
   },
   "EUR" : {
       "default" : [2]
   },
   "GBP" : [2],
   "CAD" : [3],
   "AUD" : [3],
   "NZD" : [3],
   "AED" : [25],
   "ANG" : [5],
   "ARS" : [30],
   "BAM" : [3],
   "BBD" : [5],
   "BDT" : [200],
   "BGN" : [10],
   "BHD" : [1],
   "BMD" : [3],
   "BOB" : [20],
   "BRL" : [10],
   "BZD" : [5],
   "CLP" : [1500],
   "CNY" : [50],
   "COP" : [7000],
   "CRC" : [2500],
   "CZK" : [50],
   "DKK" : [20],
   "DOP" : [200],
   "DZD" : [200],
   "FJD" : [5],
   "GTQ" : [20],
   "HKD" : [20],
   "HNL" : [50],
   "HRK" : [35],
   "HUF" : [500],
   "IDR" : [35000],
   "ILS" : [15],
   "INR" : [100],
   "ISK" : [300],
   "JMD" : [300],
   "JPY" : [300],
   "KRW" : [5000],
   "KWD" : [2],
   "KZT" : [750],
   "LBP" : [7500],
   "LTL" : [15],
   "MKD" : [100],
   "MVR" : [40],
   "MXN" : [35],
   "MYR" : [10],
   "NIO" : [100],
   "NOK" : [20],
   "OMR" : [1],
   "PAB" : [3],
   "PEN" : [10],
   "PHP" : [200],
   "PLN" : [10],
   "PYG" : [10000],
   "QAR" : [20],
   "RON" : [10],
   "RUB" : [100],
   "SAR" : [20],
   "SEK" : [30],
   "SGD" : [3],
   "THB" : [50],
   "TND" : [5],
   "TRY" : [5],
   "TTD" : [20],
   "TWD" : [150],
   "UAH" : [50],
   "UYU" : [70],
   "VEF" : [20],
   "VND" : [60000],
   "XCD" : [5],
   "XOF" : [1000],
   "XPF" : [250],
   "ZAR" : [30],
   "CHF" : [3]

}; </script> <script> var fundraisingAmounts = fundraisingAmounts || {};

fundraisingAmounts.pick = function(source, currency, country) {

   /*
    * Select the correct amount or array of amounts from object in "source"
    * In future may extend to allow a language parameter too
    * 
    * @param {object} source   - the amounts object e.g. fundraisingAmounts.asks, fundraisingAmounts.averages
    * @param {string} currency - ISO code of currency
    * @param {string} country  - ISO code of country (optional)
    * @return {array/number}   - depending on source
    */
   if ( source[currency]["default"] ) { // we need to go deeper
       if ( source[currency][country] !== undefined ) {
           return source[currency][country];
       } else {
           return source[currency]["default"];
       }
   } else {
       return source[currency];
   }

};

function convertAsk(amount, currency, country) {

   /*
    * Given an amount in USD, find an "equivalent" local ask amount for the given currency and country
    * @TODO: namespace this
    * 
    * @param {number} amount   - USD amount
    * @param {string} currency - ISO code of currency
    * @param {string} country  - ISO code of country
    * @return {number}         - local amount
    */
   var usdbase = [3, 5, 10, 20, 30, 50, 100];
   var usdamount = parseInt(amount, 10);
   if(isNaN(usdamount)){
       return 0;
   }

   var index = $.inArray(usdamount, usdbase);
   if (index == -1) {
       // the amount is not in the USD ask array, find a near neighbor
       index = 0;
       while (usdbase[index+1] < usdamount && index < usdbase.length + 1) {
           index++;
       }
   }
   var array = fundraisingAmounts.pick(fundraisingAmounts.asks, currency, country);
   if (array === undefined) {
       // in case we don't have amounts for this currency
       return usdamount;
   } else {
       return array[index];
   }

}

function getAverage(currency, country, language) {

   /*
    * Return a formatted string with the "average" donation amount in the given currency, country and language
    * @TODO: just move this into banner code
    * 
    * @param {string} currency - ISO code of currency
    * @param {string} country  - ISO code of country
    * @param {string} country  - ISO code of language     
    * @return {string}         - formatted amount 
    */
   var amount = fundraisingAmounts.pick(fundraisingAmounts.averages, currency, country);
   return currencyLocalize(currency, amount, language);

}

function getMinimumString(currency, country, language) {

   /*
    * Return a formatted string with the "if everyone" amount in the given currency, country and language
    * @TODO: just move this into banner code
    * 
    * @param {string} currency - ISO code of currency
    * @param {string} country  - ISO code of country
    * @param {string} country  - ISO code of language     
    * @return {string}         - formatted amount 
    */
   var amount = fundraisingAmounts.pick(fundraisingAmounts.ifEveryone, currency, country)[0];
   return currencyLocalize(currency, amount, language);

} </script> <script> // Various common actions for banner setup.

var getQuerystring = function(key) {

   // Should not be used any more, use mw.util.getParamValue() instead
   // Kept for now though because this returns  instead of null if key is not present
   key = key.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' );
   var regex = new RegExp( '[\\?&]' + key + '=([a-zA-Z0-9\_\-]*)' );
   var qs = regex.exec( window.location.search );
   return qs == null ?  : qs[1];

};

$(document).ready( function () {

   // Allow overriding the geolocation for testing different countries
   if(mw.util.getParamValue('country')) {
       Geo.country = mw.util.getParamValue('country');
   }
   var language = mw.config.get('wgUserLanguage'),
       currency = getCurrency(Geo.country);
   // Localize links in the smallprint
   $('#{{{banner}}}-legal a, #frbanner-legal a, .frbanner-legal a').each(function(index) {
       // Add parameters for LandingCheck
       var uri = new mw.Uri( $(this).attr("href") );
       uri.extend({
           country:      Geo.country,
           language:     language,
           uselang:      language,
           utm_medium:   'sitenotice',
           utm_campaign: mw.centralNotice.getDataProperty('campaign'),
           utm_source:   mw.centralNotice.getDataProperty('banner')
       });
       $(this).attr( "href", uri.toString() );
       // Make links open in new tab
       $(this).attr("target", "_blank");
   });
   // Show the correct legal text variant
   if (Geo.country === 'US') {
       $('.informationsharing-US').show();
       $('.informationsharing-NL').hide();
       $('.informationsharing-nonUS').hide();
   }
   if (Geo.country === 'NL') {
       $('.informationsharing-US').hide();
       $('.informationsharing-NL').show();
       $('.informationsharing-nonUS').hide();
   }
   // Find instances of %AVERAGE% in banner text, and replace with correct average for currency & country
   $(".frbanner, div#{{{banner}}}, #frbanner3").each(function(index){
       var avgString = getAverage(currency, Geo.country, language).replace(/\.$/, ); // strip any period from end for use in running text
       var newHtml = $(this).html().replace(/%AVERAGE%/g, avgString );
       $(this).html(newHtml);
   });
   // Find instances of %MINIMUM% in banner text, and replace with correct minimum for currency & country
   $(".frbanner, div#{{{banner}}}, #frbanner3").each(function(index){
       var ifString = getMinimumString(currency, Geo.country, language).replace(/\.$/, ); // strip any period from end for use in running text
       var newHtml = $(this).html().replace(/%MINIMUM%/g, ifString );
       $(this).html(newHtml);
   });
   
   /* Replace class "frbanner-currencycode" with currency ISO code */
   $('.frbanner-currencycode').html(currency);

}); </script> <script> /**

 * Core code for forms in banners.
 * Handles showing the correct payment methods, validating input, and sending on to payments wiki.
 * (Note that localizing amount options is done elsewhere, in BannerFormAmountOptions.js)
 *
 * Dependencies:
 *     MediaWiki:FR2013/Resources/CurrencyMinimums.js
 *     MediaWiki:FR2013/Resources/Country2Currency.js
 *     MediaWiki:FR2013/Resources/PaymentOutages.js
 *     MediaWiki:FR2015/Resources/MethodLocalize.js
 *
 */

function checkPaymentOutages() {

   /* Check against the scheduled payment method outages below
    * and hide the relevant button for any which are ongoing.
    */
   /* This file can be used to schedule hiding of individual payment methods from banners
* e.g. if they have scheduled downtime.
*
* Valid methods are:
*	ideal, cc, pp, amazon, bpay, webmoney, cash, pp-usd
* (most of the time it's 'ideal'...)
* Can also limit outage to a specific country with country: "XX" (where XX is an ISO code)
*
* Note that in JavaScript dates the months (and only the months) start at 0.
* Jan=0, Feb=1, Mar=2, Apr=3 etc. How hateful.
*
* Be sure to also update donatewiki if needed e.g. by commenting the method templates
* found at https://donate.wikimedia.org/wiki/Template:2012FR/Form-section/Paymentmethods
* 
*/

var outages = [

   {
       start:      new Date(Date.UTC(2016, 8, 18, 1)),
       end:        new Date(Date.UTC(2016, 8, 18, 7)),
       method:     "ideal"
   }

];

   var now = new Date();
   for (var i = outages.length - 1; i >= 0; i--) {
       if ( now > outages[i]['start'] && now < outages[i]['end'] ) {
           if (outages[i]['country'] === undefined || outages[i]['country'] == Geo.country) {
               $('.paymentmethod-' + outages[i]['method']).hide();
           }
       }
   }

}

function validateForm(form) {

   /* Check the form, especially the amount submitted 
    * Return the amount if valid, otherwise return false
    */
   var error = true;
   var amount = null;
   if (form.amount) {
       // If there are some amount radio buttons, then look for the checked one
       for (var i = 0; i < form.amount.length; i++) {
           if (form.amount[i].checked) {
               amount = form.amount[i].value;
           }
       }
   }
   // Check the "other" amount box
   if (form.amountGiven.value != ) {
       var otherAmount = form.amountGiven.value;
       otherAmount = otherAmount.replace(/[,.](\d)$/, ':$10');
       otherAmount = otherAmount.replace(/[,.](\d)(\d)$/, ':$1$2');
       otherAmount = otherAmount.replace(/[$£€¥,.]/g, );
       otherAmount = otherAmount.replace(/:/, '.');
       form.amountGiven.value = otherAmount;
       amount = otherAmount;
   }
   // Check amount is a real number
   error = ( amount == null || isNaN(amount) || amount.value <= 0 );
   // Check amount is at least the minimum
   var currency = form.currency_code.value;
   if (amount < getMinimum(currency) || error) {
       alert('You must contribute at least $1'.replace('$1', getMinimum(currency) + ' ' + currency));
       error = true;
   }
   if ( error ) {
       return false;
   } else {
       return amount;
   }

}

function redirectPayment(paymentMethod, paymentSubMethod, skipValidation) {

   if ( skipValidation || validateForm(document.paypalcontribution) ) {
       if (typeof paymentSubMethod == 'undefined') {
           paymentSubMethod = ;
       }
       var form = document.paypalcontribution; // we should really change this some day
       var paymentsURL = 'https://payments.wikimedia.org/index.php/Special:GatewayFormChooser';
       form.action = paymentsURL;
       if ( form.language.value === 'pt' && Geo.country === 'BR' ) {
           form.language.value = 'pt-br';
       }
       // WorldPay override for cc
       if( paymentMethod === 'cc-wp' ) {
           paymentMethod = 'cc';
           form.payment_method.value = 'cc';
           form.gateway.value = 'worldpay';
           form.ffname.value = 'worldpay';
       }
       
       // Adyen override for cc
       if( paymentMethod === 'cc-adyen' ) {
           paymentMethod = 'cc';
           form.payment_method.value = 'cc';
           form.gateway.value = 'adyen';
       }
       // Express Checkout override for PayPal
       if( paymentMethod === 'paypal-ec' ) {
           paymentMethod = 'paypal';
           form.payment_method.value = 'paypal';
           form.gateway.value = 'paypal_ec';
       }
       var frequency = $("input[name='frequency']:checked").val();
       if( frequency !== 'monthly' ){
           frequency = 'onetime';
           form.recurring.value = 'false';
       } else {
           form.recurring.value = 'true';
       }
       var mixins = mw.centralNotice.getDataProperty( 'mixins' );
       if ( mixins && mixins.bannerHistoryLogger ) {
           form.bannerhistlog.value = mw.centralNotice.bannerHistoryLogger.id;
       }
       form.utm_key.value = mw.centralNotice.bannerData.cookieCount || 0;
       form.payment_method.value = paymentMethod;
       form.payment_submethod.value = paymentSubMethod;
       
       var full_dotted_payment_method = paymentMethod;
       if ( form.recurring.value == 'true' ) {
           full_dotted_payment_method = 'r' + full_dotted_payment_method;
       }
       if ( paymentSubMethod ) {
           full_dotted_payment_method = form.payment_method.value + '.' + paymentSubMethod;
       }
       form.utm_source.value += '.no-LP.' + full_dotted_payment_method;
       $('.frbanner-form button').attr('disabled', 'disabled'); // Disable to prevent double submission
       if ( mixins && mixins.bannerHistoryLogger ) {
           mw.centralNotice.bannerHistoryLogger.ensureLogSent().always(function() {
               form.submit();
           });
       } else {
           form.submit();
       }
       
   }

}

function toggleMonthly( monthly ){

   if( monthly.type === 'checkbox' ){
       monthly = monthly.checked;
   }
   if (monthly) {
       $('#{{{banner}}}-form').addClass('form-monthly');
   } else {
       $('#{{{banner}}}-form').removeClass('form-monthly');
   }

}


$(document).ready( function() {

   mw.loader.using(['mediawiki.util']).then(function() {
       // Allow overriding the geolocation for testing different countries
       if(mw.util.getParamValue('country') !== null) {
           Geo.country = mw.util.getParamValue('country');
       }
       var currency = getCurrency(Geo.country);
       var language = mw.config.get('wgUserLanguage');
       // Display correct payment methods
       /** MediaWiki:FR2015/Resources/MethodLocalize.js
 * Display the correct payment methods for current country. Used by both desktop and mobile banners.
 */

// Countries with no credit card option (currently none) var noCC = []; if ($.inArray(Geo.country, noCC) !== -1) {

   $(".paymentmethod-cc").remove();

}

// Can't do monthly credit card in Brazil if (Geo.country === 'BR') {

   $(".paymentmethod-cc").addClass("no-monthly");

}

// Remove any leftover WorldPay $(".paymentmethod-cc-wp").remove();

// Countries using Adyen for credit card if (Geo.country === 'FR' || Geo.country === 'IL') {

   $(".paymentmethod-cc").remove();
   $(".paymentmethod-cc-adyen").show();

} else {

   $(".paymentmethod-cc-adyen").remove();

}

// Countries with no PayPal option var noPP = ['IN', 'RU', 'SG', 'AE', 'QA', 'JP', 'OM', 'BD', 'BO', 'PA',

           'PE', 'PY', 'GT', 'JM', 'TT', 'DZ'];

if ($.inArray(Geo.country, noPP) !== -1) {

   $(".paymentmethod-pp").remove();
   $(".paymentmethod-pp-usd").remove();

}

// Countries where PayPal must be in USD var ppUSD = ['BG', 'HR', 'LT', 'MK', 'RO', 'UA', 'SA', 'CN', 'ID', 'KR',

            'KZ', 'MY', 'VN', 'AR', 'CL', 'DO', 'CO', 'NI', 'UY', 'ZA',
            'BH', 'LB', 'VE', 'TR', 'IS', 'BA', 'MV', 'BB', 'BM', 'BZ',
            'CR', 'CW', 'SX', 'HN', 'KN', 'DM', 'AG', 'LC', 'GD', 'FJ',
            'TN', 'BJ', 'BF', 'CI', 'GW', 'ML', 'NE', 'SN', 'TG', 'BR'];

if ($.inArray(Geo.country, ppUSD) !== -1) {

   $(".paymentmethod-pp").remove();
   $(".paymentmethod-pp-usd").show();

} else {

   $(".paymentmethod-pp").show();
   $(".paymentmethod-pp-usd").remove();

}

// Show any extra local payment methods, or remove them if not needed var extrapaymentmethods = {

   'amazon'     : ['US'],
   'bpay'       : ['AU'],
   'ideal'      : ['NL'],
   'yandex'     : ['RU'],
   'webmoney'   : ['RU'],
   'dd'         : ['AT', 'DE', 'ES', 'NL'],
   'enets'      : ['SG'],
   'sofort'     : [],
   'bt'         : ['AR', 'BR', 'CL', 'CO'],      // Bank Transfer (Astropay)
   'cash'       : ['AR', 'BR', 'CO', 'MX', 'UY'] // "Cash" methods (Astropay)

};

// Methods with different labels per country if (Geo.country === 'AR') {

   $('.paymentmethod-bt button, button.paymentmethod-bt').html('Santander');

} if (Geo.country === 'CO') {

   $('.paymentmethod-bt button, button.paymentmethod-bt').html('PSE Pagos');

} if (Geo.country === 'UY') {

   $('.paymentmethod-cash button, button.paymentmethod-cash').html('RedPagos');

} if (Geo.country === 'CL' && mw.config.get('wgUserLanguage') == 'es') {

   $('.paymentmethod-bt button, button.paymentmethod-bt').html('Trans. bancaria');

}

for (var method in extrapaymentmethods) {

   var $methodbutton = $('.paymentmethod-' + method);
   if ( $.inArray(Geo.country, extrapaymentmethods[method]) !== -1 ) { // country is in the list
       $methodbutton.show();
   } else {
       $methodbutton.remove();
   }

}

       checkPaymentOutages();
       // If there are no recurring payment methods available, disable the "monthly" option
       if ( !$('#{{{banner}}}-form *[class^="paymentmethod-"]:not(.no-monthly)').length ) {
           $('#frequency_monthly').prop('disabled', 'disabled');
       }
       // Set the form fields
       $("input[name='country']").val(Geo.country);
       $("input[name='currency_code']").val(currency);
       $("input[name='language']").val(language);
       $("input[name='return_to']").val( encodeURI('Special:LandingCheck?basic=true&landing_page=Thank_You&uselang=' + mw.config.get('wgUserLanguage')) );
       // Handle pressing Enter on "Other" field
       $(document).on('keydown', 'input[name="amountGiven"]', function(e) {
           if (e.keyCode == 13) {
               e.preventDefault();
               $('.paymentmethod-options button, .frbanner-submit button').filter(':visible').first().click();
               return false;
           }
       });
   });

}); </script> <script> /**

* Localize amount options in banner forms.
*
* Dependencies: FR2013/Resources/Country2Currency.js
*               FR2013/Resources/CurrencyLocalize.js
*/

$(document).ready( function () {

   var currency = getCurrency(Geo.country);
   var language = mw.config.get('wgUserLanguage');
   // do fun things to localize currency in the banner and form
   $("input[name='amount']").each(function(index){
       var id = $(this).attr("id");
       var $label = $("label[for='" + id + "']");
       var amount = convertAsk($(this).val(), currency, Geo.country);
       $(this).val(amount);
       $label.html(currencyLocalize(currency, amount, language));
   });
   $otherLabel = $("#input_label_other");
   $otherLabel.html( 
       currencyLocalize(
           currency,
           $otherLabel.html().replace('$',), // strip the $ sign already on there
           language
       )
   );

}); </script>

<script> $(document).ready(function() {

   /* code for sticky "nag" banner */
   $(window).scroll(function() {
       if ($(window).scrollTop() <= 160) {
           $('#frbanner-nag').finish();
           $('#frbanner-nag').css('display', 'none');
       } else {
           $('#frbanner-nag').delay(1500).slideDown();
       }
   });
   $('#frbanner-nag').click(function() {
       window.scrollTo(0,0);
   });
   $('.frbanner-nag-close').click(function(e) {
       fundraisingBanner.hide();
       e.stopPropagation();
   });
   /* end code for nag box */
   /* code for legal text */
   $('.frbanner').mouseenter( function() {
       $('#frbanner-legal').show();
   });
   $('.frbanner').mouseleave( function() {
       $('#frbanner-legal').hide();
   });
   /* end code for legal text */
   if (!mw.centralNotice.bannerData.hideResult) {
       fundraisingBanner.show();
   }

}); </script>