function URLDecode(encoded) { var HEXCHARS = "0123456789ABCDEFabcdef"; var plaintext = ""; var i = 0; while (i < encoded.length) { var ch = encoded.charAt(i); if (ch == "+") { plaintext += " "; i++; } else if (ch == "%") { if (i < (encoded.length-2) && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) { plaintext += unescape( encoded.substr(i,3) ); i += 3; } else { alert( 'Bad escape combination near ...' + encoded.substr(i) ); plaintext += "%[ERROR]"; i++; } } else { plaintext += ch; i++; } } // while return plaintext; }; function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i parent.searchdata.keywords[mid][0]) { return single_query(single,mid+1,max); } else { return single_query(single,min,mid-1); } } } function run_query(test) { var res = new Array(); var aux = new Array(); test=test.toLowerCase(); var i; var j; var and_array = test.split('+'); if(and_array.length>1) { for(i=0;i0) { res = intersect_sorted(res,aux); } else { res = aux; } } return res; } else { var or_array = test.split(' '); if(or_array.length>1) { for(i=0;ia2[j]) { j++; } else { nr[nr.length]=a1[i]; i++; j++; } } } return nr; } function union_sorted(a1,a2) { var i = 0; var j =0; if(a1.length==0) return a2; if(a2.length==0) return a1; var nr = new Array(); while(i=a2.length)) { nr[nr.length]=a1[i]; i++; } else { if((i<=a1.length && j<=a2.length && a1[i]>a2[j])||(i>=a1.length)) { nr[nr.length]=a2[j]; j++; } else { nr[nr.length]=a1[i]; i++; j++; } } } return nr; } function doQuery() { parent.docs = new Array(); parent.content.window.location.reload(); query = parent.toolbar.document.getElementById('search').value; //Now perform a single query var results = run_query(query,0,parent.searchdata.keywords.length); //alert(results); for(i=0;i