$(document).ready(function() {
  function updatePrice(form) {
    $(form).addClass("updating");
    var params = {quantity: form['quantity'].value};
    if (form['id']) params.product_id = form['id'].value;
    $("input[name^='param']", form).each(function() {
      params[this.name] = this.value;
    });
    $.getJSON("price/", params, function(json) {
      $("td.price span", form).html(json.price);
      $("td.surcharge span", form).html(json.surcharge)
      $("td.taxinfo span", form).html(json.taxinfo);
      $(form).removeClass("updating");
    });
  }

  $("fieldset.add-to-cart")
    .find("input").change(function() { updatePrice(this.form) }).end()
    .find("select").change(function() { updatePrice(this.form) }).end();
});
