1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 var searchBox = document.getElementById('search_input');
7 var samples = document.getElementsByClassName('sample');
8 var SEARCH_PREFIX = 'search:';
10 function filterSamples() {
11 var searchText = searchBox.value.toLowerCase();
12 window.location.hash = SEARCH_PREFIX + encodeURIComponent(searchText);
13 for (var i = 0; i < samples.length; ++i) {
14 var sample = samples[i];
16 if (sample.getElementsByTagName('h2').length > 0)
17 sampleTitle = sample.getElementsByTagName('h2')[0].textContent;
18 if (sample.getAttribute('tags').toLowerCase().indexOf(searchText) < 0 &&
19 sampleTitle.toLowerCase().indexOf(searchText) < 0)
20 sample.style.display = 'none';
22 sample.style.display = '';
25 function updateSearchBox(value) {
26 searchBox.value = value;
29 searchBox.addEventListener('search', filterSamples);
30 searchBox.addEventListener('keyup', filterSamples);
32 var apiFilterItems = document.getElementById('api_filter_items');
33 apiFilterItems.addEventListener('click', function(event) {
34 if (event.target instanceof HTMLAnchorElement) {
35 updateSearchBox(event.target.innerText);
39 // If we have a #fragment that corresponds to a search, prefill the search box
41 var fragment = window.location.hash.substr(1);
42 if (fragment.substr(0, SEARCH_PREFIX.length) == SEARCH_PREFIX) {
43 updateSearchBox(decodeURIComponent(fragment.substr(SEARCH_PREFIX.length)));