33 |
var query_left = ""; |
var query_left = ""; |
34 |
var search_err = ""; |
var search_err = ""; |
35 |
var results = null; |
var results = null; |
36 |
|
var index_path = ""; |
37 |
|
|
38 |
var watchdog_id = 0; |
var watchdog_id = 0; |
39 |
var watchdog_callback = null; |
var watchdog_callback = null; |
218 |
|
|
219 |
if(query_left.length > 0) |
if(query_left.length > 0) |
220 |
{ |
{ |
221 |
doSearch(query_left, result_handler); |
doSearch(index_path, query_left, result_handler); |
222 |
} |
} |
223 |
else |
else |
224 |
{ |
{ |
263 |
traverseTree,query,result_handler)) |
traverseTree,query,result_handler)) |
264 |
{ |
{ |
265 |
debug("Unable to locate key "+query); |
debug("Unable to locate key "+query); |
266 |
|
result_handler(new Array()); |
267 |
} |
} |
268 |
// make sure of garbage collection |
// make sure of garbage collection |
269 |
xmldoc=null; |
xmldoc=null; |
277 |
loadData, i, result_handler)) |
loadData, i, result_handler)) |
278 |
{ |
{ |
279 |
debug("ERROR: Unable to locate data "+query); |
debug("ERROR: Unable to locate data "+query); |
280 |
|
result_handler(new Array()); |
281 |
} |
} |
282 |
// make sure of garbage collection |
// make sure of garbage collection |
283 |
xmldoc=null; |
xmldoc=null; |
286 |
} |
} |
287 |
} |
} |
288 |
// Look past the end... |
// Look past the end... |
289 |
if(!loadXML(url.replace(".xml","/"+convert(i)+".xml"), |
if(keys.length == 0 || !loadXML(url.replace(".xml","/"+convert(i)+".xml"), |
290 |
traverseTree,query,result_handler)) |
traverseTree,query,result_handler)) |
291 |
{ |
{ |
292 |
debug("Unable to locate key "+query); |
debug("Unable to locate key "+query); |
293 |
|
result_handler(new Array()); |
294 |
} |
} |
295 |
// make sure of garbage collection |
// make sure of garbage collection |
296 |
xmldoc=null; |
xmldoc=null; |
297 |
return; |
return; |
298 |
} |
} |
299 |
|
|
300 |
function doSearch(query, result_func) |
function doSearch(index_name,query, result_func) |
301 |
{ |
{ |
302 |
//alert("doSearch("+query+")"); |
//alert("doSearch("+index_name+","+query+")"); |
303 |
var pos=query.search(/[\s\+]/); |
var pos=query.search(/[\s\+]/); |
304 |
|
if (index_name) index_path = index_name+'/'; |
305 |
|
|
306 |
if(pos < 0) |
if(pos < 0) |
307 |
{ |
{ |
313 |
query = query.slice(0,pos); |
query = query.slice(0,pos); |
314 |
} |
} |
315 |
|
|
316 |
if(!loadXML("0.xml", traverseTree, query.toLowerCase(), result_func)) |
if(!loadXML(index_path+"0.xml", traverseTree, query.toLowerCase(), result_func)) |
317 |
{ |
{ |
318 |
debug("ERROR: Couldn't find main index 0.xml"); |
debug("ERROR: Couldn't find main index 0.xml"); |
319 |
search_err = "INTERNAL ERROR: Unable to load main index 0.xml"; |
search_err = "INTERNAL ERROR: Unable to load main index 0.xml"; |