var querying = false;
var last_query = "";
$(document).ready(function(){
  $("#search_field").focus(function(){
    if($(this).val()=="Search..."){
      $(this).val("");
    }
  }).blur(function(){
    if($(this).val()==""){
      $(this).val("Search...");
    }
  }).bind('change keyup', function(){
    if($(this).val()!="Search..." && $(this).val() != last_query && $(this).val().length > 3 && !querying){
      query_google();
      last_query = $(this).val();
    }
  });
  $("#searchbox_demo").submit(function(e){
    e.preventDefault();
    if($(this).val()!="Search..." && $(this).val() != last_query && !querying){
      query_google();
    }
    return false;
  });
  $("#search_results").slideUp("fast");
});

function query_google(){
  querying = true;
  $("#search_results").html("<img src='/images/ajax-loader.gif' id='search_spinner' />");
  $.getJSON(
    "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&callback=?", 
    {
      rsz : 8,
      start : 0,
      q : "site:http://estria.com " + $("#search_field").val()
    },
    function(r){
       var results = "";
       if(r.responseData != null) results = r.responseData.results;
       if(results.length){
         $("#search_results").stop().slideDown("fast");
         $("#search_results").append("<ul>");
         for(var i=0;i<results.length;i++){
           $("#search_results ul").append(result(results[i]));
         }
         $("#search_results").append("</ul><a href='#clear' id='close_search_results'>Close Search Results</a>");
         
         $("#close_search_results").click(function(e){
           e.preventDefault();
           $("#search_results").stop().slideUp("fast",function(){
              $(this).html("");
            }); 
         })
       }else{
         $("#search_results").stop().slideDown("fast");
         $("#search_results").html("<span id='no_results'>no results for '"+$("#search_field").val()+"' ...</span>");
         $("#no_results").stop().fadeIn("slow").delay(2000).fadeIn("fast", function(){
           $(this).stop().fadeOut("fast");
           $("#search_results").stop().slideUp("fast");
         });

       }
       if($("#search_spinner").length > 0){
         $("#search_spinner").detach();
       }
       querying = false;
    }
  );
  
}

function result(r){
  return '<li><h2><a href="'+r.url+'">'+r.title+'</a></h2>'+
  '<p>'+r.content+'</p>'+
  '<a href="'+r.url+'">'+r.visibleUrl+'</a>'+
  '</li>';
}
