Jelly.Pages.add("Receipts", {
  show: function() {
    var $form = $('#enter-password');
    var $anchor = $('#save-receipt');
    var $password = $('input[type=password]', $form);
    var $statusMessage = $('#password-status-message');
    var $lengthWarning = $('p', $form);

    $form.hide();
    $statusMessage.hide();
    $anchor.show();
    $password.val("");

    $anchor.click(function() {
      var focusPassword = function() { $password.focus(); };
      $form.effect('slide', {direction: "left", easing: "easeOutQuart"}, 800, focusPassword);
      $(this).hide();
      return false;
    });

    var setErrorMessage = function(xhr) {
      $statusMessage.html("Sorry, we could not save your password. Please try again.");
    };

    var showStatusMessage = function() {
      $form.fadeOut("normal", function() {
        $statusMessage.show();
      });
    };

    $form.submit(function() {
      if ($password.val().length < 8) {
        $lengthWarning.css({color: "red"});
        $form.effect('shake', {distance: 10, times: 3}, 70);
      } else {
        $.ajax({
          url: $form.attr("action"),
          data: $form.serialize(),
          error: setErrorMessage,
          complete: showStatusMessage,
          type: "POST"
        });
      }
      return false;
    });
  }
});
