Index: viewslivefilters.js
===================================================================
--- viewslivefilters.js
+++ viewslivefilters.js	(working copy)
@@ -14,7 +14,7 @@
  */
 
 Drupal.behaviors.viewsLiveFilters = function() {
-  $('.view-filters form:not(.viewsLiveFilters-processed)').each(function() {
+  $('form:not(.viewsLiveFilters-processed).viewslivefilters-enabled').each(function() {
     var form = this;
     var timeout = undefined;
     var delay = 1000;
Index: viewslivefilters.module
===================================================================
--- viewslivefilters.module
+++ viewslivefilters.module	(working copy)
@@ -17,8 +17,90 @@
 /**
  * Implementation of hook_form_alter().
  */
-function viewslivefilters_form_alter(&$form, $form_state, $form_id) {
-  if ($form_id == 'views_exposed_form') {
-    drupal_add_js(drupal_get_path('module', 'viewslivefilters') .'/viewslivefilters.js');
+function viewslivefilters_form_views_exposed_form_alter(&$form, &$form_state) {
+  $ids = viewslivefilters_get_ids();
+  if (in_array($form['#id'], $ids)) {
+    $form['#attributes']['class'] .= ' viewslivefilters-enabled';
+    $form['#after_build'][] = 'viewslivefilters_add_js';
   }
 }
+
+/**
+ * Load JavaScript file.
+ */
+function viewslivefilters_add_js($form) {
+  drupal_add_js(drupal_get_path('module', 'viewslivefilters') .'/viewslivefilters.js');
+  return $form;
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function viewslivefilters_menu() {
+  $items = array();
+  $items['admin/build/views/viewslivefilters'] = array(
+    'title' => 'Views Live Filters',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('viewslivefilters_admin_settings'),
+    'access arguments' => array('administer views'),
+    'weight' => 10,
+    'type' => MENU_LOCAL_TASK,
+  );
+  return $items;
+}
+
+/**
+ * Admin settings for Views Live Filters.
+ */
+function viewslivefilters_admin_settings(&$form_state) {
+  $form = array();
+  $form['viewslivefilters'] = array(
+    '#tree' => TRUE,
+  );
+  $views = views_get_all_views();
+  $values = variable_get('viewslivefilters', array());
+  foreach ($views as $view) {
+    if (!$view->disabled) {
+      $empty = TRUE;
+      $form['viewslivefilters'][$view->name] = array(
+        '#type' => 'fieldset',
+        '#title' => $view->name,
+        '#weight' => $view->vid,
+        '#collapsible' => TRUE,
+        '#collapsed' => FALSE,
+      );
+      foreach ($view->display as $display) {
+        if (is_array($display->display_options['filters'])) {
+          foreach ($display->display_options['filters'] as $filter) {
+            if ($filter['exposed']) {
+              $empty = FALSE;
+            }
+          }
+        }
+        $form['viewslivefilters'][$view->name][$display->id] = array(
+          '#type' => 'checkbox',
+          '#title' => $display->display_title,
+          '#default_value' => $values[$view->name][$display->id],
+        );
+      }
+      // If none of the displays have exposed filters, remove from options.
+      if ($empty) {
+        unset($form['viewslivefilters'][$view->name]);
+      }
+    }
+  }
+  return system_settings_form($form);
+}
+
+function viewslivefilters_get_ids() {
+  $values = variable_get('viewslivefilters', array());
+  $ids = array();
+  foreach ($values as $view => $displays) {
+    foreach ($displays as $filter => $enabled) {
+      if ($enabled) {
+        $ids[] = 'views-exposed-form-' . str_replace('_', '-', $view . '-' . $filter);
+      }
+    }
+  }
+  return $ids;
+}
