// JavaScript Document
/* Google Search API */
canarie.gApi = function(containerID, formID, options){
	this.options = {lang: 'en', value: '', msg: {empty: 'No results'}};
	$.extend(this.options, options);
	this.container = $('#' + containerID);
	this.control = null;
	this.formContainer = $('#' + formID);
	return this.initialize();
};

canarie.gApi.prototype = {
	initialize: function(){
		this.control = new google.search.SearchControl();
		this.control.setResultSetSize(google.search.Search.LARGE_RESULTSET);
		var webSearcher = new google.search.WebSearch();
		if(this.options.restrictions) webSearcher.setQueryAddition(this.options.restrictions);
		this.control.addSearcher(webSearcher, this._apiSetWebSearchOptions());
		this.control.draw(document.getElementById(this.container.attr('id')), this._apiDrawOptions());
		if(this.control){
			this.control.setSearchStartingCallback(this, canarie.gApi.prototype.onStartCallback);
			this.control.setSearchCompleteCallback(this, canarie.gApi.prototype.onCompleteCallback);
			if(this.options.value){
				this.execute();
			}
		}
		
		return this;
	}, 
	
	execute: function(){
		if(!this.control) return;
		this.control.execute(this.options.value);
		return this;
	}, 
	
	onCompleteCallback: function(e, s){
		
		return this;
	},
	
	onStartCallback: function(e, s, q){
		
		return this;
	}, 
	
	_apiSetWebSearchOptions: function(){
		var options = new google.search.SearcherOptions();
		options.setNoResultsString(this.options.msg.empty);
		return options;
	}, 
	
	_apiDrawOptions: function(){
		var options = new google.search.DrawOptions();
  	options.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
		options.setSearchFormRoot(document.getElementById(this.formContainer.attr('id')));
		return options;
	}
};

$(document).ready(function(e){
	$('#menu li a').animate_menu();	
	$('.accordeon').accordeon();
	$('a.print').print();
	$('.size a').size();
	Cufon.replace('.font');	
});
