$(document).ready(function(){
	var config = {
		siteURL		: 'kariokebar.com',
		searchSite	: true,
		type		: 'web',
		append		: false,
		perPage		: 8,
		page		: 0
	}
	$('#search_frm').submit(function(event){
		event.preventDefault();
		googleSearch();
		return false;
	});
	function googleSearch(settings){
		settings = $.extend({},config,settings);
		settings.term = settings.term || $('#q').val();
		
		if(settings.searchSite){
			settings.term = 'site:'+settings.siteURL+' '+settings.term;
		}
		
		// URL of Google's AJAX search API
		var apiURL = 'http://ajax.googleapis.com/ajax/services/search/'+settings.type+'?v=1.0&callback=?';
		var resultsDiv = $('#search_container');

		//resultsDiv.empty();
		//$('<h1>RESULTS</h1>').appendTo(resultsDiv)
		//alert(resultsDiv.text());
		//return;
		
		$.getJSON(apiURL,{q:settings.term,rsz:settings.perPage,start:settings.page*settings.perPage},function(r){
			var results = r.responseData.results;
			$('#more').remove();
			
			//alert(results.length);
			if(results.length){
				var pageContainer = $('<div>',{className:'pageContainer'});
				
				//pageContainer.append('<h2></h2><br/>');
				
				for(var i=0;i<results.length;i++){
					pageContainer.append(new result(results[i]) + '');
				}
				
				if(!settings.append){
					resultsDiv.empty();
				}
				
				pageContainer.append('<br /><br />')
							 .hide().appendTo(resultsDiv)
							 .fadeIn('slow');

				var cursor = r.responseData.cursor;
				
				
				if( +cursor.estimatedResultCount > (settings.page+1)*settings.perPage){
					$('<a style="font-size:26px" id="more" href="javascript:void(0);"><u>View More Results</u></a>').appendTo(resultsDiv).click(function(){
						googleSearch({append:true,page:settings.page+1});
						$(this).fadeOut();
					});
				}
				
				//alert(resultsDiv.text());
			}
			else {
				// No results were found for this search.
				resultsDiv.empty();
				$('<p>',{className:'notFound',html:'No Results Were Found!'}).hide().appendTo(resultsDiv).fadeIn();
			}
		});
	}
	function result(r){
		var arr = [];
		// GsearchResultClass is passed by the google API
		switch(r.GsearchResultClass){
			case 'GwebSearch':
				//console.log(r);
				arr = [
					'<div class="webResult">',
					'<h2><a style="background: #FFFFFF; color: #0066B3; text-transform:propercase; margin-left: 10px; margin-right: 30%"" href="',r.unescapedUrl,'" target="_blank"><u>',r.title,'</u></a></h2>',
					'<p style="margin-left: 15px; margin-right: 30%" >',r.content,'</p>',
					'<a style="margin-left: 15px; border: solid 1px #000000; background: #BFE3FE; color: #000000; padding: 5px" href="',r.unescapedUrl,'" target="_blank"><b> view </b></a>',
					'</div>'
				];
			break;
		}
		// The toString method.
		this.toString = function(){
			return arr.join('');
		}
	}
});
