diff --git a/client/catalog-dev/js/catalog.js b/client/catalog-dev/js/catalog.js
index bdc9f54..29cd6f3 100644
--- a/client/catalog-dev/js/catalog.js
+++ b/client/catalog-dev/js/catalog.js
@@ -139,6 +139,13 @@
         scope.getResults(scope.page - 1);
       }
     });
+    this.resultMenu.find('.clearResults').click(function(){
+      ga('send', 'event', 'button', 'click', 'resultClear');
+      scope.clearResults();
+      $('#results').fadeOut(function(){
+        $(this).addClass('hidden');
+      });
+    });
 
     //Change the number of results per page handler
     var rpps = $('.resultsPerPageSelector').click(function(){
@@ -336,7 +343,7 @@
       $('#results').removeClass('hidden').slideDown();
     }
 
-    $.scrollTo("#results", 700);
+    $.scrollTo("#results", 500, {interrupt: true});
 
     if ((this.results.length === this.resultCount) || (this.resultsPerPage * (index + 1) < this.results.length)){
       //console.log("We already have index", index);
diff --git a/client/catalog-dev/js/treeExplorer.js b/client/catalog-dev/js/treeExplorer.js
index 6b67804..c4bee42 100644
--- a/client/catalog-dev/js/treeExplorer.js
+++ b/client/catalog-dev/js/treeExplorer.js
@@ -3,7 +3,18 @@
   "use strict";
   jQuery.fn.extend({
 
-    treeExplorer: function(getChildren){
+    treeExplorer: function(getChildren, settings){
+
+      this.settings = {
+        autoScroll : false
+      }
+
+      for (var value in settings) {
+        if (this.settings[value] !== undefined){
+          this.settings[value] = settings[value];
+        }
+      }
+
       var cache = {}; //Cache previously requested paths.
 
       var tree = $('<div class="treeExplorer"></div>');
@@ -37,7 +48,13 @@
         });
       }
 
-      tree.on('click', '.treeExplorerNode > .nodeContent > a', function(){
+      var scope = this;
+
+      tree.on('click', '.treeExplorerNode > .nodeContent > a', function(e){
+        if (!scope.settings.autoScroll){
+          e.preventDefault();
+        }
+
         var node = $(this).parent().parent();
 
         if (node.hasClass('open')){ //Are we open already?
