(function($) {
  $.fusebox = {
    close: function() {
      $(document).trigger("close.fusebox");
      return false;
    }
  };
})(jQuery);

(function($) {
  $.fn.fusebox = function(selector) {
    if($(this).length === 0) { return; }

    $.fusebox.container.initialize();
    $(".fusebox-target").live("click", $.fusebox.bindings.click);

    return this.each(function(index) {
      var $element = $(this), $fuseboxContent, fuseboxSelector;

      $.each($element.attr("class").split(/ /), function(idx, cssClass) {
        fuseboxSelector = ".fusebox-" + cssClass;
        if($(fuseboxSelector).length == 1) {
          $element.data("fuseboxTargetSelector", fuseboxSelector);
          $fuseboxContent = $(fuseboxSelector);
          return false;
        }
      });

      if(typeof($fuseboxContent) == "undefined") { return; }

      $.fusebox.container.append($fuseboxContent);
      $element.addClass("fusebox-target");
    });
  };
})(jQuery);

(function($) {
  var fuseboxContainerClass = "fusebox-container",
      displayFuseboxContainer = function(selector) {
        $.fusebox.container()
          .children(".fusebox").hide().end()
          .find(".fusebox:has(" + selector + ")").show().end();

        $(document).trigger("showContainer.fusebox");
      };

  $.fusebox.container = function() { return $("." + fuseboxContainerClass); };

  $.extend($.fusebox.container, {
    initialize: function() {
      if($.fusebox.container().length > 0) { return; }
      $("body").append(
        $("<div class='" + fuseboxContainerClass + "'>\
            <div class='ui-widget-shadow'></div>\
          </div>")
      );
    },
    append: function(element) {
      $.fusebox.container().append(
        $("<div class='fusebox ui-widget-content'>").append(element)
      );
    },
    fx: {
      show: {fn: "fadeIn",  speed: "slow"},
      hide: {fn: "fadeOut", speed: "slow"}
    },
    show: function(selector) {
      $(document).trigger("beforeShow.fusebox");
      if($.fusebox.container().is(":visible")) {
        $(document).trigger("hideContainer.fusebox", {
          callback: function() { displayFuseboxContainer(selector); }
        });
      } else {
        $.fusebox.container().hide();
        displayFuseboxContainer(selector);
      }
      $(document).trigger("show.fusebox").trigger("afterShow.fusebox");
    },
    hide: function() {
      $(document).trigger("beforeHide.fusebox")
        .trigger("hideContainer.fusebox")
        .trigger("hide.fusebox").trigger("afterHide.fusebox");
    }
  });
})(jQuery);

(function($) {
  var handleContainer = function(action) {
    return function(event, data) {
      data = data || {};
      $.fusebox.container()
        [$.fusebox.container.fx[action].fn](    // call the show/hide method
          $.fusebox.container.fx[action].speed, // set speed
          data.callback || function() {})       // optional callback
        .css({
          left: $(window).width()/2 - ($.fusebox.container().width()/2) // center
        });
    };
  };

  $.extend($.fusebox, {
    bindings: {
      close: function() {
        $(document).unbind("keydown.fusebox");
        $.fusebox.container.hide();
      },
      keydown: function(event) {
        if(event.keyCode == 27) { $.fusebox.close(); }
        return true;
      },
      click: function() {
        $(document)
          .bind("keydown.fusebox", $.fusebox.bindings.keydown)
          .trigger("loading.fusebox");

        var fuseboxTargetSelector = $(this).data("fuseboxTargetSelector");

        if(typeof(fuseboxTargetSelector) == "undefined") return true;
        $.fusebox.container.show(fuseboxTargetSelector);
        return false;
      }
    }
  });
  $(document)
    .bind("close.fusebox", $.fusebox.bindings.close)
    .bind("showContainer.fusebox", handleContainer("show"))
    .bind("hideContainer.fusebox", handleContainer("hide"));
})(jQuery);

@@ -226,24 +226,61 @@
 %7B return; %7D%0A
+    var options = arguments%5B1%5D %7C%7C %7B%7D;
 %0A    $.fuseb
@@ -477,16 +477,77 @@
 ector;%0A%0A
+      if($element.data(%22fuseboxTargetSelector%22)) %7B return; %7D%0A
       $.
@@ -813,32 +813,262 @@
 useboxSelector);
+%0A%0A          if(selector && $element.attr(%22href%22)) %7B%0A            $fuseboxContent.data(%22fuseboxData%22, $element.attr(%22href%22) + %22 %22 + selector);%0A            $fuseboxContent.data(%22fuseboxDataCache%22, options.cache %7C%7C false);%0A          %7D
 %0A          retur
@@ -1397,32 +1397,47 @@
 ector) %7B%0A       
+ var $element =
  $.fusebox.conta
@@ -1446,28 +1446,106 @@
 er()
-%0A          .child
+.find(selector, %22.fusebox%22),%0A            showElement = function() %7B%0A              $element.pa
 ren
+ts
 (%22.f
@@ -1557,139 +1557,438 @@
 x%22).
-hide().end()%0A          .find(%22.fusebox:has(%22 + selector + %22)%22).show().end();%0A%0A        $(document).trigger(%22showContainer.fusebox%22);
+show();%0A              $(document).trigger(%22showContainer.fusebox%22);%0A            %7D;%0A%0A        $.fusebox.container().children(%22.fusebox%22).hide();%0A%0A        if(typeof($element.data(%22fuseboxData%22)) == %22undefined%22 %7C%7C%0A          ($element.data(%22fuseboxDataCache%22) === true && $element.html() != %22%22)) %7B%0A          showElement();%0A        %7D else %7B%0A          $element.load($element.data(%22fuseboxData%22), function() %7B showElement(); %7D);%0A        %7D
 %0A   

Update packaged version of fusebox to include AJAX loading of content (cached and un-cached)