diff --git a/util.js b/util.js
index 632f393..bd7a54f 100644
--- a/util.js
+++ b/util.js
@@ -129,35 +129,6 @@ function getTagList () {
     return tagList;
 }
 
-function doFilter () {
-    $(".books").removeClass("filtered");
-    if (jQuery.isEmptyObject(filterList)) {
-        updateFilters ();
-        return;
-    }
-    
-    $(".se").each (function(){
-        var taglist = ", " + $(this).text() + ", ";
-        var toBeFiltered = false;
-        for (var filter in filterList) {
-            var onlyThisTag = filterList [filter];
-            filter = ', ' + filter + ', ';
-            var myreg = new RegExp (filter);
-            if (myreg.test (taglist)) {
-                if (onlyThisTag === false) {
-                    toBeFiltered = true;
-                }
-            } else {
-                if (onlyThisTag === true) {
-                    toBeFiltered = true;
-                }
-            }
-        }
-        if (toBeFiltered) { $(this).parents (".books").addClass ("filtered"); }
-    });
-    updateFilters ();
-}
-
 function updateFilters () {
     var tagList = getTagList ();
     
@@ -190,6 +161,35 @@ function updateFilters () {
     });
 }
 
+function doFilter () {
+    $(".books").removeClass("filtered");
+    if (jQuery.isEmptyObject(filterList)) {
+        updateFilters ();
+        return;
+    }
+    
+    $(".se").each (function(){
+        var taglist = ", " + $(this).text() + ", ";
+        var toBeFiltered = false;
+        for (var filter in filterList) {
+            var onlyThisTag = filterList [filter];
+            filter = ', ' + filter + ', ';
+            var myreg = new RegExp (filter);
+            if (myreg.test (taglist)) {
+                if (onlyThisTag === false) {
+                    toBeFiltered = true;
+                }
+            } else {
+                if (onlyThisTag === true) {
+                    toBeFiltered = true;
+                }
+            }
+        }
+        if (toBeFiltered) { $(this).parents (".books").addClass ("filtered"); }
+    });
+    updateFilters ();
+}
+
 function handleFilterEvents () {
     $("#filter ul").on ("click", "li", function(){
         var filter = $(this).text ();
@@ -223,23 +223,6 @@ function handleFilterEvents () {
  ************************************************
  */
 
-function navigateTo (url) {
-    $("h1").append (" ");
-    before = new Date ();
-    var jsonurl = url.replace ("index", "getJSON");
-    var cachedData = cache.get (jsonurl);
-    if (cachedData) {
-        history.pushState(jsonurl, "", url);
-        updatePage (cachedData);
-    } else {
-        $.getJSON(jsonurl, function(data) {
-            history.pushState(jsonurl, "", url);
-            cache.put (jsonurl, data);
-            updatePage (data);
-        });
-    }
-}
-
 function updatePage (data) {
     var result;
     filterList = {};
@@ -274,42 +257,21 @@ function updatePage (data) {
     }
 }
 
-/*exported handleLinks */
-function handleLinks () {
-    $("body").on ("click", "a[href^='index']", link_Clicked);
-    $("body").on ("submit", "#searchForm", search_Submitted);
-    $("body").on ("click", "#sort", function(){
-        $('.books').sortElements(function(a, b){
-            var test = 1;
-            if ($("#sortorder").val() === "desc")
-            {
-                test = -1;
-            }
-            return $(a).find ("." + $("#sortchoice").val()).text() > $(b).find ("." + $("#sortchoice").val()).text() ? test : -test;
+function navigateTo (url) {
+    $("h1").append (" ");
+    before = new Date ();
+    var jsonurl = url.replace ("index", "getJSON");
+    var cachedData = cache.get (jsonurl);
+    if (cachedData) {
+        history.pushState(jsonurl, "", url);
+        updatePage (cachedData);
+    } else {
+        $.getJSON(jsonurl, function(data) {
+            history.pushState(jsonurl, "", url);
+            cache.put (jsonurl, data);
+            updatePage (data);
         });
-    });
-    
-    $("body").on ("click", ".headright", function(){
-        if ($("#tool").is(":hidden")) {
-            $("#tool").slideDown("slow");
-            $("input[name=query]").focus();
-            $.cookie('toolbar', '1', { expires: 365 });
-        } else {
-            $("#tool").slideUp();
-            $.removeCookie('toolbar');
-        }
-    });
-    $("body").magnificPopup({
-        delegate: '.fancycover', // child items selector, by clicking on it popup will open
-        type: 'image',
-        gallery:{enabled:true, preload: [0,2]},
-        disableOn: function() {
-          if( getCurrentOption ("use_fancyapps") === "1" ) {
-            return true;
-          }
-          return false;
-        }
-    });
+    }
 }
 
 function link_Clicked (event) {
@@ -362,6 +324,44 @@ function search_Submitted (event) {
     navigateTo (url);
 }
 
+/*exported handleLinks */
+function handleLinks () {
+    $("body").on ("click", "a[href^='index']", link_Clicked);
+    $("body").on ("submit", "#searchForm", search_Submitted);
+    $("body").on ("click", "#sort", function(){
+        $('.books').sortElements(function(a, b){
+            var test = 1;
+            if ($("#sortorder").val() === "desc")
+            {
+                test = -1;
+            }
+            return $(a).find ("." + $("#sortchoice").val()).text() > $(b).find ("." + $("#sortchoice").val()).text() ? test : -test;
+        });
+    });
+    
+    $("body").on ("click", ".headright", function(){
+        if ($("#tool").is(":hidden")) {
+            $("#tool").slideDown("slow");
+            $("input[name=query]").focus();
+            $.cookie('toolbar', '1', { expires: 365 });
+        } else {
+            $("#tool").slideUp();
+            $.removeCookie('toolbar');
+        }
+    });
+    $("body").magnificPopup({
+        delegate: '.fancycover', // child items selector, by clicking on it popup will open
+        type: 'image',
+        gallery:{enabled:true, preload: [0,2]},
+        disableOn: function() {
+          if( getCurrentOption ("use_fancyapps") === "1" ) {
+            return true;
+          }
+          return false;
+        }
+    });
+}
+
 window.onpopstate = function(event) {
     before = new Date ();
     var data = cache.get (event.state);