ginebra/chrome/js/SearchSuggest.js
changeset 0 1450b09d0cfd
--- /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;
+}