       amount.html(@$new_input(amount.find('span').width()))
 
     save: (event) ->
-      @payment.update(amount: @$input().val())
-        .done(=> @show())
+      unless @payment.updating
+        @payment.update(amount: @$input().val())
+          .done(=> @show())
 
     cancel: @::show
 

        .one
          click: (event) ->
            event.preventDefault()
          mousedown: ->
            $(@).data('clicked', true)
          mouseup: =>
            @[action]()


        callback() if data.state in ['checkout', 'pending']

    update: (attributes, success) ->
      @updating = true

      jqXHR = $.ajax
        type: 'PUT'
        url:  @url.toString()
        data: { payment: attributes }
      jqXHR.always =>
        @updating = false
      jqXHR.done (data) =>
        @data = data
      jqXHR.fail ->
