diff --git a/js/cs.js b/js/cs.js index 46a482c..5900202 100644 --- a/js/cs.js +++ b/js/cs.js @@ -67,7 +67,8 @@ jQuery(document).ready(function($) { var elementsToScan = [ '#comments', '#site-navigation', - 'article.page' + 'article.page', + '#page-sidebar' ] $.each(elementsToScan, function(index, value){ @@ -269,7 +270,41 @@ function squareImg(img){ }; +/* + Filter Functionality for the A-Z Index + + The function will hide any text that does not match the filter input and remove letters + if there are no matches for that letter. +*/ + var filterEvent = null; + + $("#azFilterInput").keyup(function(){ + azFilter(); + }); + + function azFilter(){ + var filterInput = $("#azFilterInput").val(); + + // Show everything that could have been hidden + $(".az-letter:hidden, .az-letter-list li:hidden").each(function(){ + $(this).show(); + }); + + if(filterInput !== ""){ + // Select any az-letter-page class where the text does not match the regular expression + $("a.az-letter-page").filter( function(i){ return $(this).html().match(new RegExp(filterInput, "i")) === null }).each(function(){ + $(this).parent("li").hide(); + var numberOfVisibleListItems = $(this).parents(".az-letter-list").children("li:visible").length; + + // If there are no visible list items for a letter than we will hide the whole div + if(numberOfVisibleListItems === 0){ + $(this).parents(".az-letter").hide(); + } + }); + } + } +/* ========================================= */ $(document).ready(function(){ stickyFoot(); @@ -301,4 +336,4 @@ $(document).ready(function() { $('#uc-header .container').fadeIn('slow'); }); -}) \ No newline at end of file +}); \ No newline at end of file