+ns.renumber_callback = function(accepted) {
+  console.log(accepted ? "yay :)" : "oh no :(");
+  if (!accepted)
+    return;
+
+  $.ajax({
+    url:     'controller.pl?action=RequirementSpec/renumber_sections',
+    type:    'post',
+    data:    { id: $('#requirement_spec_id').val() },
+    success: kivi.eval_json_result
+  });
+};
+
+ns.renumber = function(opt) {
+  $('#rs-dialog-confirm').remove();
+
+  var text1   = kivi.t8('Re-numbering all sections and function blocks in the order they are currently shown cannot be undone.');
+  var text2   = kivi.t8('Do you really want do continue?');
+  var $dialog = $('<div id="rs-dialog-confirm"><p>' + text1 + '</p><p>' + text2 + '</p></div>').hide().appendTo('body');
+  var buttons = {};
+
+  buttons[kivi.t8('Yes')] = function() {
+    $(this).dialog('close');
+    ns.renumber_callback(true);
+  };
+
+  buttons[kivi.t8('No')] = function() {
+    $(this).dialog('close');
+    ns.renumber_callback(false);
+  };
+
+  $dialog.dialog({
+      resizable: false
+    , modal:     true
+    , title:     kivi.t8('Are you sure?')
+    , height:    250
+    , width:     400
+    , buttons:   buttons
+  });
+};
+