 facetapi.tokens.inc | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/facetapi.tokens.inc b/facetapi.tokens.inc
index 24cf072..b900332 100644
--- a/facetapi.tokens.inc
+++ b/facetapi.tokens.inc
@@ -123,6 +123,10 @@ function facetapi_token_info() {
  */
 function facetapi_tokens($type, $tokens, array $data = array(), array $options = array()) {
   $replacements = array();
+  // Attempt to initialize tokens based on current active searchers.
+  if (empty($data[$type])) {
+    $data = facetapi_tokens_defaults($type, $data);
+  }
 
   if ('facetapi_results' == $type && !empty($data['facetapi_results']['facetapi_adapter'])) {
 
@@ -220,3 +224,43 @@ function facetapi_tokens($type, $tokens, array $data = array(), array $options =
 
   return $replacements;
 }
+
+/**
+ * Helper function called by facetapi_tokens to attempt to initialize
+ * facetapi and search token values based on facetapi_get_active_searchers.
+ *
+ * @see facetapi_tokens()
+ */
+function facetapi_tokens_defaults($type, $data = array()){
+
+  if ($searchers = facetapi_get_active_searchers()) {
+    // Select the first active searcher.
+    $searcher = reset($searchers);
+    $adapter = facetapi_adapter_load($searcher);
+
+    // Provide default $data if it was not initialized.
+    switch ($type){
+      case 'facetapi_results':
+        $data['facetapi_results'] = array('facetapi_adapter' => $adapter);
+        break;
+
+      case 'facetapi_active':
+        // Take the item that was added last (so the most recently added filter).
+        if ($item = end($adapter->getAllActiveItems())) {
+          $item['adapter'] = $adapter;
+          $data['facetapi_active_item'] = $item;
+        }
+        break;
+
+      case 'facetapi_facet':
+        if ($item = end($adapter->getAllActiveItems())) {
+          $facet_name = $item['facets'][0];
+          $data = array('facetapi_facet' => facetapi_facet_load($facet_name, $searcher));
+        }
+        break;
+
+      default: break;
+    }
+  }
+  return $data;
+}
