+
+ function addSearchOptions(crates) {
+ var elem = document.getElementById('crate-search');
+
+ if (!elem) {
+ return;
+ }
+ var crates_text = [];
+ for (var crate in crates) {
+ if (crates.hasOwnProperty(crate)) {
+ crates_text.push(crate);
+ }
+ }
+ crates_text.sort(function(a, b) {
+ var lower_a = a.toLowerCase();
+ var lower_b = b.toLowerCase();
+
+ if (lower_a < lower_b) {
+ return -1;
+ } else if (lower_a > lower_b) {
+ return 1;
+ }
+ return 0;
+ });
+ for (var i = 0; i < crates_text.length; ++i) {
+ var option = document.createElement("option");
+ option.value = crates_text[i];
+ option.innerText = crates_text[i];
+ elem.appendChild(option);
+ }
+ }
+
+ window.addSearchOptions = addSearchOptions;