/* -------------------------
    
	Website search
	
	- Uses Yahooo! BOSS
	- Ajax driven
	- Requires jQuery
	- Graceful degredation
	- Needs a Yahoo! BOSS AppID
	- Developed by John Modig
	
-------------------------*/
$(document).ready(function()
  {
    $("form.search").submit(function(event) 
	{
	  if($(".search_input").val().length>0){
	    PerformSearch(1);
	  }
	  event.preventDefault();
	});
	$("form.search label").labelOver("over-apply");
  });
function PerformSearch(start)
{
      // Perform a search
	  
	  // Page size, max number of results to get
	  var page_size = 6;
	  
	  // Target div, where to show the result (css selector)
	  var target_div = "#search_result";
	  
	  // Remove link 
	  $("p.search_more").remove();
	  
	  // Loading image
	  if(start>1)
	  {
	    $(target_div).append("<p class=\"loader\"><img src=\"/images/ajax/loader_bar.gif\" alt=\"Loading...\" /></p>");
	  }
	  else
	  {
	    $(target_div).html("<p class=\"loader_start\"><img src=\"/images/ajax/loader_bar.gif\" alt=\"Loading...\" /></p>");
	  }
	  
	  // Search text
	  var search_input = $(".search_input").val();
	  var keyword = encodeURIComponent(search_input);
	  
	  // Google Search API 
	  var google_url = 'https://www.googleapis.com/customsearch/v1?key=AIzaSyAn7gjKURxu08SHNarKYEG92JrpFQoksOY&cx=005059052425111246038:vvxmf3mo-lm&q='+keyword+'&num='+page_size+'&start='+start;
	  
	  $.ajax(
	  {
	    type: "GET",
		url: google_url,
		dataType:"jsonp",
		success: function(data)
		{
		  if(start>1)
		  {
		    $("p.loader").remove();
		  }
		  else
		  {
		    $(target_div).html("<h3>Search result</h3>");
			// Close link
			$("p.search_close").remove();
			$(target_div+':parent').append("<p class=\"search_close\"><a href=\"#\">Clear search</a></p>");
			$("p.search_close").click(function(event){
			  $(target_div).html("");
			  $("p.search_close").remove();
			  $(".search_input").val("");
			  $("form.search label").addClass("over-apply");
			  event.preventDefault();
			});
		  }
		  if(data.items)
		    {
			var countResults = 0;
		    $.each(data.items, function(i,data)
			  {
			  // Result
			  countResults += 1;
			  var final = "<div class='webresult'><div class='title'><a href='"+data.link+"'>"+data.htmlTitle.replace(/^skysparc - /i, '')+"</a></div><div class='desc'>"+data.htmlSnippet+"</div><div class='url'>"+data.displayLink+"</div></div>";
			  $(target_div).append(final);
			  });
			// Allow to search for more?
			var totalResults = $("div.webresult").length;
			if(countResults >= page_size)
			  {
			  $(target_div).append("<p class=\"search_more\"><a href=\"#\">Search for more +</a></p>");
			  $("p.search_more a").click(function(event)
			    {
				PerformSearch(totalResults+1);
				event.preventDefault();
				});
			  }  
			}
		else
		  {
		  $(target_div).html("<p class=\"no_results\">No results.</p>");
		  }
		},
		error: function()
		{
		  $("p.loader").remove();
		}
	  });
}
/* -------------------------
	Label for search box	
-------------------------*/  
jQuery.fn.labelOver = function(overClass) {
	return this.each(function(){
		var label = jQuery(this);
		var f = label.attr('for');
		if (f) {
			var input = jQuery('#' + f);
			this.hide = function() {
			  label.removeClass(overClass);
			}			
			this.show = function() {
			  if (input.val() == '') label.addClass(overClass);
			}
			// handlers
			input.focus(this.hide);
			input.blur(this.show);
			label.addClass(overClass).click(function(){ input.focus() });
			if (input.val() != '') this.hide(); 
		}
	})
}
