+      else if (action[0] == 'data')                 $(action[1]).data(action[2], action[3]);
+      else if (action[0] == 'removeData')           $(action[1]).removeData(action[2]);
+
+      // Form Events
+      else if (action[0] == 'focus')                kivi.set_focus(action[1]);
+
+      // Generic Event Handling ##
+      else if (action[0] == 'on')                   $(action[1]).on(action[2], kivi.get_function_by_name(action[3]));
+      else if (action[0] == 'off')                  $(action[1]).off(action[2], kivi.get_function_by_name(action[3]));
+      else if (action[0] == 'one')                  $(action[1]).one(action[2], kivi.get_function_by_name(action[3]));
+
+      // ## jQuery UI dialog plugin ##
+
+      // Opening and closing a popup
+      else if (action[0] == 'dialog:open')          kivi.popup_dialog(action[1]);
+      else if (action[0] == 'dialog:close')         $(action[1]).dialog('close');
+
+      // ## jQuery Form plugin ##
+      else if (action[0] == 'ajaxForm')             $(action[1]).ajaxForm({ success: eval_json_result });
+
+      // ## jstree plugin ##
+
+      // Operations on the whole tree
+      else if (action[0] == 'jstree:lock')          $.jstree._reference($(action[1])).lock();
+      else if (action[0] == 'jstree:unlock')        $.jstree._reference($(action[1])).unlock();
+
+      // Opening and closing nodes
+      else if (action[0] == 'jstree:open_node')     $.jstree._reference($(action[1])).open_node(action[2]);
+      else if (action[0] == 'jstree:open_all')      $.jstree._reference($(action[1])).open_all(action[2]);
+      else if (action[0] == 'jstree:close_node')    $.jstree._reference($(action[1])).close_node(action[2]);
+      else if (action[0] == 'jstree:close_all')     $.jstree._reference($(action[1])).close_all(action[2]);
+      else if (action[0] == 'jstree:toggle_node')   $.jstree._reference($(action[1])).toggle_node(action[2]);
+      else if (action[0] == 'jstree:save_opened')   $.jstree._reference($(action[1])).save_opened();
+      else if (action[0] == 'jstree:reopen')        $.jstree._reference($(action[1])).reopen();
+
+      // Modifying nodes
+      else if (action[0] == 'jstree:create_node')   $.jstree._reference($(action[1])).create_node(action[2], action[3], action[4]);
+      else if (action[0] == 'jstree:rename_node')   $.jstree._reference($(action[1])).rename_node(action[2], action[3]);
+      else if (action[0] == 'jstree:delete_node')   $.jstree._reference($(action[1])).delete_node(action[2]);
+      else if (action[0] == 'jstree:move_node')     $.jstree._reference($(action[1])).move_node(action[2], action[3], action[4], action[5]);
+
+      // Selecting nodes (from the 'ui' plugin to jstree)
+      else if (action[0] == 'jstree:select_node')   $.jstree._reference($(action[1])).select_node(action[2], true);
+      else if (action[0] == 'jstree:deselect_node') $.jstree._reference($(action[1])).deselect_node(action[2]);
+      else if (action[0] == 'jstree:deselect_all')  $.jstree._reference($(action[1])).deselect_all();
+
+      // ## ckeditor stuff ##
+      else if (action[0] == 'focus_ckeditor')       kivi.focus_ckeditor_when_ready(action[1]);
+
+      // ## other stuff ##
+      else if (action[0] == 'redirect_to')          window.location.href = action[1];
+      else if (action[0] == 'save_file')            kivi.save_file(action[1], action[2], action[3], action[4]);
+      else if (action[0] == 'flash')                kivi.display_flash(action[1], action[2]);
+      else if (action[0] == 'flash_detail')         kivi.display_flash_detail(action[1], action[2]);
+      else if (action[0] == 'clear_flash')          kivi.clear_flash(action[1], action[2]);
+      else if (action[0] == 'reinit_widgets')       kivi.reinit_widgets();
+      else if (action[0] == 'run')                  kivi.run(action[1], action.slice(2, action.length));
+      else if (action[0] == 'run_once_for')         kivi.run_once_for(action[1], action[2], action[3]);
+      else if (action[0] == 'scroll_into_view')     $(action[1])[0].scrollIntoView();
+      else if (action[0] == 'set_cursor_position')  kivi.set_cursor_position(action[1], action[2]);
+
+      else                                          console.log('Unknown action: ' + action[0]);