/**
 * @author Matthew Foster
 * @date   August 3rd 2007
 * @purpose A class that manages the requests and callbacks of a Gwebsearch instance.  It extends from the Ajax.Service.History class to allow back/forward capabilities
 */
var GWebSearchService = Class.create();

Object.extend(Object.extend(GWebSearchService.prototype, Ajax.Service.Base.prototype),
				{
					initialize : function(){
						
						this.createEngine();
					
						this.attachListener();
												
					},
					createEngine : function(){
						
						this.engine = new GwebSearch();
						
					},
					setSiteRestriction : function(restriction){
						
						this.engine.setSiteRestriction(restriction);
						
					},
					setResultSetSize : function(num){
						
						this.engine.setResultSetSize(num);
											
					},
					attachListener : function(){
						
						this.engine.setSearchCompleteCallback(this, this.handleSearch);
										
					},
					search : function(query){
						
						this.lastQuery = query;
						this.engine.execute(query);
					
					},
					handleSearch : function(results){
						
						this.dispatchEvent("searchComplete", { query : this.lastQuery, results : this.engine.results});
					
					}
				}
			);