MediaWiki:Centralnotice-template-B14 1020 enUS dsk rpta
<style>
#centralNotice.collapsed #{{{banner}}}{
display: none;
}
div#{{{banner}}} {
display: none;
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 9999;
background: transparent;
font-family: Arial, Helvetica, Verdana, sans-serif;
cursor: pointer;
}
div#{{{banner}}} #{{{banner}}}-main {
background: #cedff1;
padding: 0;
width: 100%;
border: none;
border-spacing: 0; /* because border-collapse hides shadow in IE */
}
body.rtl div#{{{banner}}} #{{{banner}}}-main {
box-shadow: -5px 5px 5px #aaa;
}
div#{{{banner}}} #{{{banner}}}-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#{{{banner}}} #{{{banner}}}-facts p {
padding-left: 10px;
padding-right: 40px;
background-position: top 10px right 8px;
}
.{{{banner}}}-highlight {
background: #fff64c;
color: black;
padding: 1px 0;
}
#{{{banner}}}-form-wrapper {
width: 330px;
background: #f5faff;
padding: 0;
border-left: 1px solid #a8bedf;
}
#{{{banner}}}-form {
height: 100%;
font-size: 14px;
font-weight: bold;
padding: 4px 8px;
}
#{{{banner}}}-form table {
border: none;
border-collapse: collapse;
width: 100%;
height: 100%;
}
#{{{banner}}}-form td {
min-width: 55px;
white-space: nowrap;
margin: 0;
vertical-align: middle;
padding: 2px;
}
#{{{banner}}}-form span label {
margin-left: 2px;
}
#{{{banner}}}-form .amount-options {
height: 20%;
color: #091d41;
}
#{{{banner}}}-form .paymentmethod-options td {
text-align: center;
padding: 12px 4px 8px 4px ;
}
#{{{banner}}}-form button,
#{{{banner}}}-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;
}
#{{{banner}}}-form button:hover,
#{{{banner}}}-nag button:hover {
color: #0645ad;
}
div#{{{banner}}} span#{{{banner}}}-close {
display: block;
position: absolute;
right: 0px;
top: 0px;
width: 21px;
height: 21px;
background: url(//upload.wikimedia.org/wikipedia/donate/2/27/Small-white-close.png) no-repeat center center black;
cursor: pointer;
}
body.rtl div#{{{banner}}} span#{{{banner}}}-close {
right: auto;
left: 0;
}
div#{{{banner}}} p#{{{banner}}}-legal {
display: none;
position: relative;
margin: 0;
padding: 10px 40px 5px 40px;
background: #cedff1;
font-size: 11px;
line-height: 1;
font-weight: normal;
}
#{{{banner}}}-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;
}
.{{{banner}}}-nag-link {
vertical-align: middle;
}
.{{{banner}}}-nag-link:hover {
text-decoration: underline;
}
.{{{banner}}}-nag-close {
position: absolute;
top: 0px;
right: 11px;
z-index: 100;
background: url(//upload.wikimedia.org/wikipedia/donate/2/27/Small-white-close.png) no-repeat center center black;
width: 21px;
height: 21px;
display: block;
}
</style>
<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 = $('div#{{{banner}}}').height();
$('#mw-panel').css('top', bannerHeight+160+extra);
$('#mw-head').css('top', bannerHeight+extra);
$('#mw-page-base').css('padding-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 */
$('#{{{banner}}}').hide();
$('#mw-panel').css('top', '160px');
$('#mw-head').css('top', '0px');
$('#mw-page-base').css('padding-top', '0');
return false;
};
fundraisingBanner.showLegal = function() {
$('#{{{banner}}}-legal').show();
} fundraisingBanner.hideLegal = function() {
$('#{{{banner}}}-legal').hide();
} </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 "nag" box */
$(window).scroll(function() {
if ($(window).scrollTop() <= 160) {
$('#{{{banner}}}-nag').css('display', 'none');
}
window.setTimeout(function() {
if ($(window).scrollTop() > 160) {
$('#{{{banner}}}-nag').slideDown();
}
}, {{{delay}}} );
});
$('.{{{banner}}}-nag-close').click(function(event) {
$('#{{{banner}}}-nag').remove();
event.stopPropagation();
});
$('#{{{banner}}}-nag').click(function() {
window.scrollTo(0,0);
});
/* end code for nag box */
$('#{{{banner}}}').mouseenter(fundraisingBanner.showLegal);
$('#{{{banner}}}').mouseleave(fundraisingBanner.hideLegal);
if (!mw.centralNotice.bannerData.hideResult) {
fundraisingBanner.show();
}
}); </script>