/**
 * jQuery gSearch
 *
 * @url		http://gsearch.scottreeddesign.com/
 * @author	Brian Reed <brian@scottreeddesign.com>
 * @version	1.0.0
 */
(function($){
	
	// Main plugin function
	$.fn.gSearch = function(options)
	{
		// Build main options before element iteration
		var o = $.extend({}, $.fn.gSearch.defaults, options);
		
		// Check it Search String Entered or Empty
		if(o.search_text == undefined) return this;
		if(o.search_text == "") return this;
		
		// Iterate through each element
		return this.each(function() {
			// Set jQuery object			
			var jquery_object = $(this);
			
			// Set class on object
			jquery_object.addClass('google-search-results');
			
			// Set pagination
			o.pagination = (o.pagination == 'false' || o.pagination == false) ? false : true;
			
			// Set loading message
			//jquery_object.html('<span style="text-decoration: blink;">Loading...</span>');
			$("#sitesearch").html('');
			$("#sitesearch").hide();
			$(".siteheader").css("display", "block");
			
			// Start Google web search		
			_google_search = new google.search.WebSearch();
			if($("#sys_language_uid").val() == 0){
				_google_search.setRestriction(google.search.Search.RESTRICT_EXTENDED_ARGS, { "lr" : "lang_de"});
			}
			else{
				_google_search.setRestriction(google.search.Search.RESTRICT_EXTENDED_ARGS, { "lr" : "lang_en"});			
			}
			var results_html = "";	
			
			// Set result count
			if((o.count*1)>4)
				_google_search.setResultSetSize(google.search.Search.LARGE_RESULTSET);
			
			// Set site restriction
			if(o.site.length > 0){
				o.site = ((o.site.substring(0, 4)=='www.') ? o.site.substring(4, o.site.length) : o.site);
				if(o.site.length > 0) _google_search.setSiteRestriction(o.site);
			}
			
			// Set Google web search call back
			_google_search.setSearchCompleteCallback(this, 
			
				function(){
					results_html = "";
					// Get results 
					if (_google_search.results && _google_search.results.length > 0) {
						var results = _google_search.results;
						if(results.length > 0) {
							jquery_object.html('');		
							
							// Get results
							results_html += '<div class="results">';
							for (var i = 0; i < results.length; i++) {
								
								// Add result to object
								results_html += '<div class="result"><div class="title"><a href="'+results[i].url+'"><span>'+results[i].title+'</span></a></div><div class="snippet"><span>'+results[i].content+'</span></div><div class="url-cache"><span>'+results[i].url.replace('http://','')+'</span>&nbsp;-&nbsp;<a href="'+results[i].cacheUrl+'">Cached</a></div></div>';
								
							}
							results_html += '</div>';						
							
							// Get pagination
							if(o.pagination){
								var cursor = _google_search.cursor;
								var curPage = cursor.currentPageIndex;
								results_html += '<div class="pagination"><ul>';
								
								// Set Previous
								if(curPage > 0)
									results_html += ' <li class="prev-next prev"><a href="#" onclick="_google_search.gotoPage('+((curPage*1)-1)+');return false;">Previous'+"</a></li> \r";
									
								for (var i = 0; i < cursor.pages.length; i++) {
									
									// Set Page Number Link
									results_html += ' <li class="numbers '+((curPage == i) ? " selected": "")+'"><a href="#" onclick="_google_search.gotoPage('+i+');return false;">'+cursor.pages[i].label+"</a></li> \r";									
								}
								
								// Set Next
								if(curPage < (cursor.pages.length-1))
									results_html +=
									' <li class="prev-next next"><a href="#" onclick="_google_search.gotoPage('+((curPage*1)+1)+');return false;">Next'+"</a></li> \r";
								results_html += "</ul></div>";
							}
							
							// Output html to object
							jquery_object.html(results_html);
							$(".siteheader").css("display", "none");	
							$("#sitesearch").show();
							
						}
						else{
							$(".siteheader").css("display", "none");	
							$("#sitesearch").show();						
							if($("#sys_language_uid").val() == 0){
								$("#sitesearch").html('<div class="search_row lastchild"><span class="search_description">Keine Ergebnisse gefunden</span></div>'); 
							}
							else{
								$("#sitesearch").html('<div class="search_row lastchild"><span class="search_description">No results found</span></div>'); 
							}
						}
					}
					else{
						$(".siteheader").css("display", "none");	
						$("#sitesearch").show();
						if($("#sys_language_uid").val() == 0){
							$("#sitesearch").html('<div class="search_row lastchild"><span class="search_description">Keine Ergebnisse gefunden</span></div>'); 
						}
						else{
							$("#sitesearch").html('<div class="search_row lastchild"><span class="search_description">No results found</span></div>'); 
						}
					}
				}
												  
			, null);
		
			// Execute search
			_google_search.execute(o.search_text);
			
			// Set Object if no search results
		// Set Object if no search results
		
	});

};
	
	// Default settings
	$.fn.gSearch.defaults =
	{
		// Search text
		search_text : '',
		
		// Results Per Page
		count : '4',
		
		// Site Specific
		site : '',
		
		// Show Pagination
		pagination : true
	};
	
})(jQuery);


$(document).ready(function() {
	document.onclick = function(e) {
		if(!e) e = window.event;
		var obj = e.target ? e.target : e.srcElement ? e.srcElement : null;
		if( document.getElementById('search') != obj &&  document.getElementById('searchinput') != obj && document.getElementById('resultbox_wrap') != obj && document.getElementById('searchbutton') != obj && document.getElementById('resultbox') != obj) $("#resultbox_wrap").fadeOut();
	}
	
	
	$("#searchinput").keyup(function(event){
	  if(event.keyCode == 13){
	    sendform();
	  }
	});
	
});

function sendform(){
	if($("#resultbox_wrap").css("display") == 'none'){
		$("#resultbox_wrap").fadeIn(); 
	}
	else{
	}
/*	$("#sitesearch").html('');
	$("#sitesearch").hide()*/
	//$(".siteheader").css("display", "block");
	
	/*$.post("/suche.html?no_cache=1&L="+$("#sys_language_uid").val(), {"tx_indexedsearch[sword]": $("#searchinput").val()}, function(data){
	   		$(".siteheader").css("display", "none");	
	   		$("#sitesearch").html(data); 
			$("#sitesearch").show();
			if($("#search_success") && $("#search_success").val() == 1){
			}
			else{
				if($("#sys_language_uid").val() == 0){
					$("#sitesearch").html('<div class="search_row lastchild"><span class="search_description">Keine Ergebnisse gefunden</span></div>'); 
				}
				else{
					$("#sitesearch").html('<div class="search_row lastchild"><span class="search_description">No results found</span></div>'); 
				}
			}
		}
	);*/
	
	$("#sitesearch").gSearch({
		search_text : $("#searchinput").val(),
		count : 10,
		site : 'gimmickmedia.de',
		pagination : false	
	});
	/*
	$(".siteheader").css("display", "none");
	$("#sitesearch").show();*/
	
	
}

