--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra/chrome/js/SearchSuggest.js Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,65 @@
+//Constructor
+function SearchSuggest(){
+}
+
+var searchArray = new Array(6);
+var arrayLimit = 6;
+var usercallback;
+
+SearchSuggest.prototype.loadYahoo = function(query){
+ var yUrl = "http://search.yahooapis.com/WebSearchService/V1/relatedSuggestion?";
+ var yAppId = "appid=rv9RNS3V34GEz5NvGPBClnQaRVtN1tO57Di0OxX24nfHx1iqNA_QfahxpBoJJw--";
+ var yOutput = "&output=json";
+ var yResults = "&results = 5";
+ var yCallBack = "&callback=SearchSuggest.prototype.processYahoo&query=";
+ var yahooSuggest = yUrl + yAppId + yOutput + yCallBack + query;
+
+ var headID = document.getElementsByTagName("head")[0];
+ var newScript = document.createElement('script');
+ newScript.type = 'text/javascript';
+ newScript.src = yahooSuggest;
+ headID.appendChild(newScript);
+}
+
+SearchSuggest.prototype.processYahoo = function(resultObject){
+ searchArray = [];
+ if(resultObject.ResultSet && resultObject.ResultSet.Result){
+ var n = arrayLimit < resultObject.ResultSet.Result.length ? arrayLimit : resultObject.ResultSet.Result.length;
+ for(var i=0; i<n; i++) {
+ searchArray[i] = resultObject.ResultSet.Result[i];
+ }
+ }
+ usercallback(searchArray);
+}
+
+SearchSuggest.prototype.loadGoogle = function(query){
+ var gUrl = "http://suggestqueries.google.com/complete/search?hl=en&json=t&jsonp=";
+ var gCallBack = "SearchSuggest.prototype.processGoogle&q=";
+ var googleSuggest = gUrl + gCallBack + query;
+
+ var headID = document.getElementsByTagName("head")[0];
+ var newScript = document.createElement('script');
+ newScript.type = 'text/javascript';
+ newScript.src = googleSuggest;
+ headID.appendChild(newScript);
+}
+
+SearchSuggest.prototype.processGoogle = function(resultObject){
+ searchArray = [];
+ if(resultObject){
+ var n = arrayLimit < resultObject[1].length ? arrayLimit : resultObject[1].length;
+ searchArray[0] = resultObject[0];
+ for(var i=1; i<n; i++) {
+ searchArray[i] = resultObject[1][i];
+ }
+ }
+ usercallback(searchArray);
+}
+
+SearchSuggest.prototype.searchSuggest = function(queryString, getSearchUrl){
+ //load yahoo suggest database. this has a limit of 5k hits/day per ip address.
+ //this.loadYahoo(queryString);
+ //load google suggest database
+ this.loadGoogle(queryString);
+ usercallback = getSearchUrl;
+}