blob: fc3376840b40971db468c67d9fe9df2ee453f9ea [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function() {
var searchBox = document.getElementById('search_input');
var samples = document.getElementsByClassName('sample');
var SEARCH_PREFIX = 'search:';
function filterSamples() {
var searchText = searchBox.value.toLowerCase();
window.location.hash = SEARCH_PREFIX + encodeURIComponent(searchText);
for (var i = 0; i < samples.length; ++i) {
var sample = samples[i];
var sampleTitle = '';
if (sample.getElementsByTagName('h2').length > 0)
sampleTitle = sample.getElementsByTagName('h2')[0].textContent;
if (sample.getAttribute('tags').toLowerCase().indexOf(searchText) < 0 &&
sampleTitle.toLowerCase().indexOf(searchText) < 0)
sample.style.display = 'none';
else
sample.style.display = '';
}
}
function updateSearchBox(value) {
searchBox.value = value;
filterSamples();
}
searchBox.addEventListener('search', filterSamples);
searchBox.addEventListener('keyup', filterSamples);
var apiFilterItems = document.getElementById('api_filter_items');
apiFilterItems.addEventListener('click', function(event) {
if (event.target instanceof HTMLAnchorElement) {
updateSearchBox(event.target.innerText);
}
});
// If we have a #fragment that corresponds to a search, prefill the search box
// with it.
var fragment = window.location.hash.substr(1);
if (fragment.substr(0, SEARCH_PREFIX.length) == SEARCH_PREFIX) {
updateSearchBox(decodeURIComponent(fragment.substr(SEARCH_PREFIX.length)));
}
})();