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 + arr[part][i][0] + html_mid; |
131 |
if (debug) { $html += i+": "; } |
if (debug) { $html += i+": "; } |
132 |
html += arr[part][i]+"</li>\n"; |
html += arr[part][i][1] + html_post + "\n"; |
133 |
hits++; |
hits++; |
134 |
} |
} |
135 |
results(html); |
results(html); |
144 |
var html = ''; |
var html = ''; |
145 |
|
|
146 |
for(var i = from ; i < arr[part].length ; i++) { |
for(var i = from ; i < arr[part].length ; i++) { |
147 |
if (arr[part][i].substring(0,find.length).toLowerCase() != find_lc) { |
if (arr[part][i][1].substring(0,find.length).toLowerCase() != find_lc) { |
148 |
break; |
break; |
149 |
} |
} |
150 |
|
html += html_pre + arr[part][i][0] + html_mid; |
151 |
if (debug) { html += i+": "; } |
if (debug) { html += i+": "; } |
152 |
html += arr[part][i]+"<br>\n"; |
html += arr[part][i][1] + html_post + "\n"; |
153 |
hits++; |
hits++; |
154 |
} |
} |
155 |
|
|
156 |
results(html); |
results(html); |
|
} else { |
|
|
// clean results list |
|
|
// results("",1); |
|
157 |
} |
} |
158 |
|
|
159 |
} |
} |