17db96d56Sopenharmony_ci$(document).ready(function() {
27db96d56Sopenharmony_ci    // add the search form and bind the events
37db96d56Sopenharmony_ci    $('h1').after([
47db96d56Sopenharmony_ci      '<p>Filter entries by content:',
57db96d56Sopenharmony_ci      '<input type="text" value="" id="searchbox" style="width: 50%">',
67db96d56Sopenharmony_ci      '<input type="submit" id="searchbox-submit" value="Filter"></p>'
77db96d56Sopenharmony_ci    ].join('\n'));
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci    function dofilter() {
107db96d56Sopenharmony_ci        try {
117db96d56Sopenharmony_ci            var query = new RegExp($('#searchbox').val(), 'i');
127db96d56Sopenharmony_ci        }
137db96d56Sopenharmony_ci        catch (e) {
147db96d56Sopenharmony_ci            return; // not a valid regex (yet)
157db96d56Sopenharmony_ci        }
167db96d56Sopenharmony_ci        // find headers for the versions (What's new in Python X.Y.Z?)
177db96d56Sopenharmony_ci        $('#changelog h2').each(function(index1, h2) {
187db96d56Sopenharmony_ci            var h2_parent = $(h2).parent();
197db96d56Sopenharmony_ci            var sections_found = 0;
207db96d56Sopenharmony_ci            // find headers for the sections (Core, Library, etc.)
217db96d56Sopenharmony_ci            h2_parent.find('h3').each(function(index2, h3) {
227db96d56Sopenharmony_ci                var h3_parent = $(h3).parent();
237db96d56Sopenharmony_ci                var entries_found = 0;
247db96d56Sopenharmony_ci                // find all the entries
257db96d56Sopenharmony_ci                h3_parent.find('li').each(function(index3, li) {
267db96d56Sopenharmony_ci                    var li = $(li);
277db96d56Sopenharmony_ci                    // check if the query matches the entry
287db96d56Sopenharmony_ci                    if (query.test(li.text())) {
297db96d56Sopenharmony_ci                        li.show();
307db96d56Sopenharmony_ci                        entries_found++;
317db96d56Sopenharmony_ci                    }
327db96d56Sopenharmony_ci                    else {
337db96d56Sopenharmony_ci                        li.hide();
347db96d56Sopenharmony_ci                    }
357db96d56Sopenharmony_ci                });
367db96d56Sopenharmony_ci                // if there are entries, show the section, otherwise hide it
377db96d56Sopenharmony_ci                if (entries_found > 0) {
387db96d56Sopenharmony_ci                    h3_parent.show();
397db96d56Sopenharmony_ci                    sections_found++;
407db96d56Sopenharmony_ci                }
417db96d56Sopenharmony_ci                else {
427db96d56Sopenharmony_ci                    h3_parent.hide();
437db96d56Sopenharmony_ci                }
447db96d56Sopenharmony_ci            });
457db96d56Sopenharmony_ci            if (sections_found > 0)
467db96d56Sopenharmony_ci                h2_parent.show();
477db96d56Sopenharmony_ci            else
487db96d56Sopenharmony_ci                h2_parent.hide();
497db96d56Sopenharmony_ci        });
507db96d56Sopenharmony_ci    }
517db96d56Sopenharmony_ci    $('#searchbox').keyup(dofilter);
527db96d56Sopenharmony_ci    $('#searchbox-submit').click(dofilter);
537db96d56Sopenharmony_ci});
54