function calculate() {
  var serialized = Form.serializeElements($('booking').getInputs());

  // Rabatte pro Event übernehmen
  new Ajax.Updater('discount-7', './ajax/_calculate_event_discount.php', { method: 'post', parameters: {event_id:7, data:serialized} });
  new Ajax.Updater('discount-8', './ajax/_calculate_event_discount.php', { method: 'post', parameters: {event_id:8, data:serialized} });
  
  // Gesamtsummen pro Event übernehmen
  new Ajax.Updater('total-7', './ajax/_calculate_event_total.php', { method: 'post', parameters: {event_id:7, data:serialized} });
  new Ajax.Updater('total-8', './ajax/_calculate_event_total.php', { method: 'post', parameters: {event_id:8, data:serialized} });
  
  // Event-Summen für die Bestellübersicht übernehmen
  new Ajax.Updater('event-total-europameisterschaften', './ajax/_calculate_event_total.php', { method: 'post', parameters: {event_id:7, data:serialized} });
  new Ajax.Updater('event-total-europameisterschaften2', './ajax/_calculate_event_total.php', { method: 'post', parameters: {event_id:8, data:serialized} });
  
  // Versandkosten und Gesamtsumme für die Bestellung übernehmen
  new Ajax.Updater('order-total-shipping', './ajax/_calculate_order_total_shipping.php', { method: 'post', parameters: {country:document.getElementById('booking6').value} });
  new Ajax.Updater('order-total', './ajax/_calculate_order_total.php', { method: 'post', parameters: {data:serialized, country:document.getElementById('booking6').value} });
  
}

function allow_only_numbers(evt) {
  var charCode = (evt.which) ? evt.which : event.keyCode
  if (charCode > 31 && (charCode < 48 || charCode > 57)) {
    return false;
  }
  return true;
}
