diff --git a/form_builder.js b/form_builder.js
index dfeb22b..d549e82 100644
--- a/form_builder.js
+++ b/form_builder.js
@@ -696,18 +696,22 @@ Drupal.formBuilder.setActive = function(element, link) {
   Drupal.formBuilder.unsetActive();
   Drupal.formBuilder.activeElement = element;
   Drupal.formBuilder.activeLink = link;
-  $(Drupal.formBuilder.activeElement).addClass('form-builder-active');
+  var $active = $(Drupal.formBuilder.activeElement).addClass('form-builder-active');
+  $(document).trigger('formBuilder.setActive', [$active]);
 };
 
 Drupal.formBuilder.unsetActive = function() {
   if (Drupal.formBuilder.activeElement) {
-    $(Drupal.formBuilder.activeElement).removeClass('form-builder-active');
+    var $active = $(Drupal.formBuilder.activeElement).removeClass('form-builder-active');
     Drupal.formBuilder.activeElement = false;
     Drupal.formBuilder.activeLink = false;
+    $(document).trigger('formBuilder.unsetActive', [$active]);
   }
 };
 
 Drupal.formBuilder.closeActive = function(callback) {
+  var eventArgs = [];
+
   if (Drupal.formBuilder.activeElement) {
     var $activeForm = $(Drupal.formBuilder.activeElement).find('form');
 
@@ -720,11 +724,14 @@ Drupal.formBuilder.closeActive = function(callback) {
         }
       });
     }
+
+    eventArgs.push($activeForm);
   }
   else if (callback) {
     callback.call();
   }
 
+  $(document).trigger('formBuilder.closeActive', eventArgs);
   return false;
 };
 
