Jelly.Pages.add("ActivationRequests", {
  polling_interval: 1000, // In milliseconds

  'new': function() {
    this._makeSureButtonIsEnabled();
    this._disableButtonOnClick();
  },

  create: function() {
    this._makeSureButtonIsEnabled();
    this._disableButtonOnClick();
  },

  _makeSureButtonIsEnabled: function() {
    $("input[type=submit]").removeAttr("disabled");
  },

  _disableButtonOnClick: function() {
    $("#activation-request-form").submit(function() {
      $("input[type=submit]", this).attr("disabled", "disabled");
      $("#submit-spinner").show();
    });
  },

  processing: function() {
    $.ajax({
      url: document.location,
      dataType: "json",
      success: function(data) {
        data && data.url ? $.redirectTo(data.url) : Jelly.Pages.all["ActivationRequests"]._rescheduleCreditCheck();
      },
      failure: function() {
        Jelly.Pages.all["ActivationRequests"]._rescheduleCreditCheck();
      }
    });
  },

  _rescheduleCreditCheck: function() {
    setTimeout(this.processing, this.polling_interval);
  }
});
