blob: cc35b1c11fd29c25663c8cb1c2852e519432b07b [file] [log] [blame]
$(document).ready(function() {
$('input[type=text]#searchbox').keyup(function() {
input = $(this).val();
if (input.length != 0) {
var filter = input.split(' ');
var regexps = new Array();
var idx = 0;
for (var i = 0; i < filter.length; i++) {
if (!$.trim(filter[i]).length == 0) {
regexps[idx++] = new RegExp(filter[i],"i");
}
}
}
// filtering apis
$('div#checkboxes-check > ul > li > input[type=button].button').each(function(i, val) {
var toShow = false;
if (input.length == 0) {
toShow = true;
} else {
for (var i = 0; i < regexps.length; i++) {
if (regexps[i].test($(val).attr('value'))) {
toShow = true;
break;
}
}
}
if (toShow) {
$(val).show('fast');
} else {
$(val).hide();
}
});
// used only in click-filtering mode
$('#api-info').hide();
});
});
var close = ' X';
var selectedClasses = new Array(); // classes to use
var correspondingExamples = new Array(); // classes to use
function filterExamples($button) {
// resetting filter by text input
$('#searchbox').val('');
// selecting the clicked button
if ($button.selected) {
$button.value = $button.value.substring(0, $button.value.length - close.length);
for (var i = 0; i < selectedClasses.length; i++) {
if (selectedClasses[i] == $($button).attr('api')) {
selectedClasses.splice(i, 1);
correspondingExamples.splice(i, 1);
break;
}
}
} else {
$button.value = $button.value.concat(close);
selectedClasses.push($($button).attr('api'));
correspondingExamples.push($($button).attr('class'));
}
$button.selected = !$button.selected;
// refreshing
var filteringForExamples = ''; // for examples
if (selectedClasses.length > 0) {
filteringForExamples = '.'.concat(selectedClasses.join('.'));
}
var filteringForButtons = ''; // for buttons
if (correspondingExamples.length > 0) {
for (var i = 0; i < correspondingExamples.length; i++) {
filteringForButtons = filteringForButtons.concat(' ').concat(correspondingExamples[i]);
}
var examplesForButtons = $.unique(filteringForButtons.split(' '));
filteringForButtons = '.'.concat(examplesForButtons.join('.'));
}
// filtering examples
$('div#examples').find('li' + filteringForExamples).show('fast');
if (selectedClasses.length > 0) {
$('div#examples').find('li:not(' + filteringForExamples + ').example').hide();
}
// filtering buttons (apis)
if (correspondingExamples.length > 0) {
var examples = new Array();
$('div#examples').find('li' + filteringForExamples).each(function(i, val) {
examples.push($(val).attr('example'));
});
examples = filterArray(examples);
$('div#checkboxes-check > ul > li > input[type=button].button').hide();
for (var i = 0; i < examples.length; i++) {
$('li[example="' + examples[i].substring(examples[i].lastIndexOf('_') + 1, examples[i].length) + '"]').each(function(i, val) {
$buttons = $(val).attr('class');
$buttons = $buttons.substring('example '.length, $buttons.length);
$buttonsArray = $buttons.split(' ');
for (var b = 0; b < $buttonsArray.length; b++) {
if (shouldIHideIt(examples, $buttonsArray[b]) && selectedClasses.indexOf($buttonsArray[b]) == -1) {
$('input[api="' + $buttonsArray[b] + '"]').hide();
} else {
$('input[api="' + $buttonsArray[b] + '"]').show('fast');
}
}
});
}
$('#api-info').show();
$('#api-info').text(examples.length + ' examples are matching');
} else {
$('div#checkboxes-check > ul > li > input[type=button].button').show('fast');
$('#api-info').hide();
}
}
function filterArray(list) {
var out = new Array();
for (var i = 0; i < list.length; i++) {
if (list[i].length > 0) {
out.push(list[i]);
}
}
return out;
}
function shouldIHideIt(list, api) {
for (var i = 0; i < list.length; i++) {
$item = $('li[example="' + list[i].substring(list[i].lastIndexOf('_') + 1, list[i].length) + '"]').next().attr('class');
if ($item != undefined && $item != false) {
$apis = $item.split(' ');
if ($apis.indexOf(api) == -1) {
return false;
}
}
}
return true;
}