MediaWiki:Resources/validation.js

From Donate
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
<html>
<script type="text/javascript">

//Should this be here? 
var amount = null;

function DefaultSubmit(formfield,Action) {
  var keycode;
  if (window.event) keycode = window.event.keyCode;
  else if (Action) keycode = Action.which;
  else return true;

  if (keycode == 13) {
    redirectPayment(</html>{{#ifeq:block|block|'1'|'2'}}<html>);
    return false;
  }
  else
    return true;
}

function validateForm(form){

  var minimums = {</html>{{2012FR/Switch/Currency/Minimums}}<html>};

  var error = true;

  // Get amount selection
  for ( var i = 0; i < form.amount.length; i++ ) {
    if ( form.amount[i].checked ) {
      amount = form.amount[i].value;
    }
  }

  if ( form.input_amount_other_box.value != "" ) {
    var otherAmount = form.input_amount_other_box.value;
    otherAmount = otherAmount.replace(/[,.](\d)$/, '\:$10');
    otherAmount = otherAmount.replace(/[,.](\d)(\d)$/, '\:$1$2');
    otherAmount = otherAmount.replace(/[\$,.]/g, '');
    otherAmount = otherAmount.replace(/:/, '.');
    form.input_amount_other_box.value = otherAmount;
    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 ( typeof( minimums[currency] ) == 'undefined' ) {
    minimums[currency] = 1;
  }
  if ( amount < minimums[currency] || error ) {
    $( "#input_amount_other_box" ).val( '' );
    $( "#input_amount_other" ).focus(); 
    $( "#input_amount_other_box" ).focus(); 
    alert( '</html>{{int:donate_interface-smallamount-error}}<html>'.replace('$1', (minimums[currency] + ' ' + currency) ) );
    error = true;
  }
  if ( amount > 10000*minimums[currency]) {
    $( "#input_amount_other_box" ).val( '' );
    $( "#input_amount_other" ).focus(); 
    $( "#input_amount_other_box" ).focus(); 
    errorMessageLarge = "</html>{{int:Donate interface-bigamount-error}}<html>";
    errorMessageLarge = errorMessageLarge.replace('$1',10000*minimums[currency]);
    errorMessageLarge = errorMessageLarge.replace('$2',currency);
    errorMessageLarge = errorMessageLarge.replace('$3','giving@wikimedia.org');
    alert(errorMessageLarge);
    error = true;
  }

  return !error;
}

</script>
</html>