61 |
|
|
62 |
// modified binary search to find first element with substring |
// modified binary search to find first element with substring |
63 |
function binarySearch(arr, find) { |
function binarySearch(arr, find) { |
64 |
if (!arr || |
if (!arr || typeof (find) == "undefined" || !arr.length) { |
|
typeof (arr) != "object" || |
|
|
typeof (find) == "undefined" || !arr.length) { |
|
65 |
return null; |
return null; |
66 |
} |
} |
67 |
var low = 0; |
var low = 0; |
72 |
var mid = (low + high) / 2; |
var mid = (low + high) / 2; |
73 |
var aTry = (mid < 1) ? 0 : parseInt(mid); |
var aTry = (mid < 1) ? 0 : parseInt(mid); |
74 |
|
|
75 |
var curr = arr[aTry].substr(0,find.length).toLowerCase(); |
var curr = arr[aTry][1].substr(0,find.length).toLowerCase(); |
76 |
if (debug) { results("low="+low+" high="+high+" lastTry="+lastTry+" "+aTry+": "+curr+"<br>"); } |
if (debug) { results("low="+low+" high="+high+" lastTry="+lastTry+" "+aTry+": "+curr+"<br>"); } |
77 |
if (curr < find) { |
if (curr < find) { |
78 |
low = aTry + 1; |
low = aTry + 1; |
127 |
if (find.length == min_len) { |
if (find.length == min_len) { |
128 |
var html = ''; |
var html = ''; |
129 |
for (var i = 0; i < arr[part].length; i++) { |
for (var i = 0; i < arr[part].length; i++) { |
130 |
html += "<li>"; |
html += html_pre + |
131 |
|
arr[part][i][0] + |
132 |
|
html_mid + |
133 |
|
(hits % 2 == 0 ? '<span style="background: #e0e0e0">' : ''); |
134 |
if (debug) { $html += i+": "; } |
if (debug) { $html += i+": "; } |
135 |
html += arr[part][i]+"</li>\n"; |
html += arr[part][i][1] + |
136 |
|
(hits % 2 == 0 ? '</span>' : '') + |
137 |
|
html_post + "\n"; |
138 |
hits++; |
hits++; |
139 |
} |
} |
140 |
results(html); |
results(html); |
149 |
var html = ''; |
var html = ''; |
150 |
|
|
151 |
for(var i = from ; i < arr[part].length ; i++) { |
for(var i = from ; i < arr[part].length ; i++) { |
152 |
if (arr[part][i].substring(0,find.length).toLowerCase() != find_lc) { |
if (arr[part][i][1].substring(0,find.length).toLowerCase() != find_lc) { |
153 |
break; |
break; |
154 |
} |
} |
155 |
|
html += html_pre + |
156 |
|
arr[part][i][0] + |
157 |
|
html_mid + |
158 |
|
(hits % 2 == 0 ? '<span style="background: #e0e0e0">' : ''); |
159 |
if (debug) { html += i+": "; } |
if (debug) { html += i+": "; } |
160 |
html += arr[part][i]+"<br>\n"; |
html += arr[part][i][1] + |
161 |
|
(hits % 2 == 0 ? '</span>' : '') + |
162 |
|
html_post + "\n"; |
163 |
hits++; |
hits++; |
164 |
} |
} |
165 |
|
|
166 |
results(html); |
results(html); |
|
} else { |
|
|
// clean results list |
|
|
// results("",1); |
|
167 |
} |
} |
168 |
|
|
169 |
} |
} |