MediaWiki:Resources/landingpage.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
No edit summary |
blank - all moved to MediaWiki:Common.js (not deleting so history stays visible) Tag: Blanking |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<html> |
|||
<script> |
|||
function getQuerystring( key ) { |
|||
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]; |
|||
} |
|||
function checkPaymentOutages() { |
|||
/* Check against the scheduled payment method outages |
|||
* in global variable "outages" (loaded cross-wiki from meta) |
|||
* and hide the relevant button for any which are ongoing. |
|||
*/ |
|||
// var outages = outages || []; // don't die if it hasn't loaded... |
|||
var now = new Date(); |
|||
for (var i = outages.length - 1; i >= 0; i--) { |
|||
if ( now > outages[i]['start'] ) { |
|||
if ( now < outages[i]['end'] ) { |
|||
if ( (typeof outages[i]['country'] === 'undefined') || (outages[i]['country'] == country) ) { |
|||
$('.paymentmethod-' + outages[i]['method']).hide(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
function adjustHPC() { |
|||
// Highest previous contribution adjustments (for emails) |
|||
var hpc = getQuerystring( 'hpc' ); |
|||
if( hpc == '' || isNaN( parseFloat( hpc ) ) ){ |
|||
// go ahead and try mrc as well |
|||
hpc = getQuerystring( 'mrc' ); |
|||
if( hpc == '' || isNaN( parseFloat( hpc ) ) ){ |
|||
return; |
|||
} |
|||
} |
|||
hpc = parseFloat( hpc ); |
|||
var asks = { |
|||
'USD' : { |
|||
0 : [5, 10, 20, 25, 35, 50, 100], |
|||
10 : [10, 20, 25, 35, 50, 100, 150], |
|||
20 : [20, 25, 35, 50, 75, 100, 250], |
|||
35 : [20, 35, 50, 100, 150, 200, 250], |
|||
50 : [20, 35, 50, 100, 150, 200, 250], |
|||
75 : [25, 50, 75, 100, 200, 300, 500], |
|||
100 : [25, 50, 100, 150, 250, 500, 1000], |
|||
150 : [50, 100, 150, 200, 350, 500, 1000], |
|||
200 : [50, 100, 200, 300, 400, 500, 1000] |
|||
}, |
|||
'EUR' : { |
|||
0 : [3, 5, 10, 20, 30, 50, 100], |
|||
4 : [5, 10, 15, 20, 30, 50, 100], |
|||
27 : [5, 10, 20, 30, 50, 100, 150], |
|||
136 : [5, 10, 20, 50, 100, 150, 200] |
|||
}, |
|||
'JPY' : { |
|||
0 : [300, 500, 1000, 2000, 3000, 5000, 10000], |
|||
3 : [500, 1000, 1500, 2000, 3000, 5000, 10000], |
|||
5 : [1000, 1500, 2000, 3000, 5000, 10000, 15000] |
|||
}, |
|||
'SEK' : { |
|||
0 : [20, 50, 100, 200, 300, 500, 1000], |
|||
3 : [30, 50, 100, 200, 300, 500, 1000], |
|||
5 : [50, 100, 150, 200, 300, 500, 1000], |
|||
23 : [50, 100, 200, 300, 500, 750, 1000] |
|||
} |
|||
}; |
|||
asks['AUD'] = asks['USD']; |
|||
asks['CAD'] = asks['USD']; |
|||
asks['GBP'] = asks['USD']; |
|||
asks['NZD'] = asks['USD']; |
|||
var appealasks = { |
|||
'USD' : { |
|||
0 : [5, 10, 20], |
|||
10 : [10, 20, 50], |
|||
20 : [20, 30, 50], |
|||
35 : [20, 30, 50], |
|||
50 : [20, 50, 100], |
|||
75 : [50, 75, 100], |
|||
100 : [75, 100, 150], |
|||
150 : [75, 100, 200], |
|||
200 : [100, 200, 300] |
|||
}, |
|||
'EUR' : { |
|||
0: [3, 5, 10], |
|||
4: [5, 10, 20], |
|||
7: [10, 20, 50], |
|||
14: [15, 20, 50], |
|||
20: [20, 50, 100], |
|||
40: [30, 50, 100], |
|||
68: [50, 100, 150] |
|||
}, |
|||
'JPY' : { |
|||
0: [300, 500, 1000], |
|||
3: [500, 1000, 1500], |
|||
5: [1000, 1500, 2000], |
|||
10: [1500, 2000, 5000], |
|||
20: [2000, 3000, 5000], |
|||
50: [2000, 5000, 10000], |
|||
100: [5000, 10000, 15000] |
|||
}, |
|||
'SEK' : { |
|||
0: [20, 50, 100], |
|||
3: [30, 50, 100], |
|||
5: [50, 100, 150], |
|||
15: [100, 150, 200], |
|||
23: [100, 200, 300], |
|||
38: [100, 200, 500], |
|||
75: [100, 500, 750], |
|||
112: [100, 500, 1000] |
|||
} |
|||
}; |
|||
appealasks['AUD'] = appealasks['USD']; |
|||
appealasks['CAD'] = appealasks['USD']; |
|||
appealasks['GBP'] = appealasks['USD']; |
|||
appealasks['NZD'] = appealasks['USD']; |
|||
var symbols = { |
|||
'USD' : '$\t', |
|||
'AUD' : '$\t', |
|||
'CAD' : '$\t', |
|||
'EUR' : '€\t', |
|||
'GBP' : '£\t', |
|||
'NZD' : '$\t', |
|||
'JPY' : '¥\t', |
|||
'SEK' : '\t kr' |
|||
}; |
|||
var ask = null; |
|||
var symbol = ''; |
|||
var currency = $("input[name='currency_code']").val(); |
|||
if( currency in symbols ){ |
|||
symbol = symbols[currency]; |
|||
} |
|||
if( currency in asks ){ |
|||
if( asks[currency].length < 1 ){ |
|||
return; |
|||
} |
|||
for( var prev in asks[currency] ){ |
|||
// this assumes that JS returns keys in sorted order, most do |
|||
if( prev > hpc ){ |
|||
break; |
|||
} |
|||
ask = asks[currency][prev]; |
|||
} |
|||
if( ask != null ){ |
|||
for( var j = 0; j < ask.length; j++ ){ |
|||
var radio = $("#input_amount_" + j); |
|||
var label = $("label[for='input_amount_" + j + "']"); |
|||
if( radio != null ){ |
|||
if( label != null ){ |
|||
// I know an && could be used here, but they are getting escaped |
|||
radio.val( ask[j] ); |
|||
label.text( symbol.replace('\t', ask[j]) ); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if( currency in appealasks ){ |
|||
if( appealasks[currency].length < 1 ){ |
|||
return; |
|||
} |
|||
for( var prev in appealasks[currency] ){ |
|||
// this assumes that JS returns keys in sorted order, most do |
|||
if( prev > hpc ){ |
|||
break; |
|||
} |
|||
appealask = appealasks[currency][prev]; |
|||
} |
|||
var considerAmountString = ""; |
|||
for( var k = 0; k < appealask.length; k++ ) { |
|||
considerAmountString += symbol.replace('\t', appealask[k]) + ', '; |
|||
} |
|||
considerAmountString = considerAmountString.trim(); |
|||
$('.consider-amounts').html(considerAmountString); |
|||
} |
|||
} |
|||
function adjustOtherVal() { |
|||
// prefill other amount box if param provided |
|||
var otherVal = getQuerystring( 'otherVal' ); |
|||
if( otherVal == '' || isNaN( parseFloat( otherVal ) ) ){ |
|||
return; |
|||
} |
|||
otherVal = parseFloat( otherVal ); |
|||
$("#input_amount_other").attr( 'checked', true ); |
|||
$("#input_amount_other_box").val( otherVal ); |
|||
} |
|||
$(document).ready(function(){ |
|||
// Load list of payment outages from meta, and hide any which are current |
|||
$.getScript('//meta.wikimedia.org/w/index.php?' + $.param( { title:'MediaWiki:FR2013/Resources/PaymentOutages.js', action:'raw', ctype:'text/javascript' } ), |
|||
function() { |
|||
setTimeout(checkPaymentOutages(), 250); // allow time for script to have _executed_ (not just loaded) |
|||
}); |
|||
// Disable submitting form with return key |
|||
$( 'form' ).bind( 'keypress', function(e) { |
|||
var code = ( e.keyCode ? e.keyCode : e.which ); |
|||
if ( code == 13 ) return false; |
|||
} ); |
|||
// Disable logo link |
|||
$("#p-logo a").attr("href", "#"); |
|||
$("#p-logo a").attr("title", ""); |
|||
adjustHPC(); |
|||
adjustOtherVal(); |
|||
}); |
|||
</script> |
|||
</html> |