/* Google Search Site Results v1.0.0 - Relies on CORE Query Call Function (tracking fixed) */

/* Search Call & Config */
function gsCall(settings){
        var config = {siteURL:'www.jacksonkahl.com',searchSite:true,type:'web',append:false,page:0,perPage:6/*8 is MAX*/},apiURL,results,cursor,i,resultArea=$('#search_results'),pageContainer=$('<div>',{className:'pageContainer'});
        /* Defaults taken from global */
        settings = $.extend({},config,settings);
        //settings.term=$('#search_input').val();
        settings.term=$.queryVal('gsq');
        if(settings.searchSite){settings.term = 'site:'+settings.siteURL+' '+settings.term;}
        apiURL = 'https://ajax.googleapis.com/ajax/services/search/'+settings.type+'?v=1.0&callback=?';
        /* Where results are displayed */
        $.getJSON(apiURL,{q:settings.term,rsz:settings.perPage,start:settings.page*settings.perPage},function(r){
            results = r.responseData.results;
            $('#search_more').remove();
            if(results.length){
              /* Store for DOM load at once */
                for(i=0;i<results.length;i++){
                    pageContainer.append(new gsResult(results[i]) + '');
                }
                if(!settings.append){resultArea.empty();}
                pageContainer.append('<div class="clear"></div>').appendTo(resultArea);
                cursor = r.responseData.cursor;
                /* Add more button when necessary */
                if(+cursor.estimatedResultCount>(settings.page+1)*settings.perPage){
                    $('<a id="search_more" class="siteBtnUI" href="#">More Results</a>').appendTo(resultArea).click(function(){
                        gsCall({append:true,page:settings.page+1});
                        return false;
                    });
                }
                $(".result_item:odd").addClass("zebra");
            }else {
                resultArea.empty();
                $('<p>',{className:'notFound',html:'No results were found'}).appendTo(resultArea);
            }
        });
    }
function gsResult(r){
    var arr = ['<div class="result_item">',
        '<h2><a href="',r.unescapedUrl,'" target="_blank">',r.title,'</a></h2>',
        '<p>',r.content,'</p>',
        '<a href="',r.unescapedUrl,'">',r.unescapedUrl,'</a>',
        '</div>'];
    this.toString = function(){return arr.join('');}
}

/* Ready */
jQuery(function($){
    if($("#search_results").length){
        /* Init for Result */
        if($.queryVal("gsq")!==""){
          $('#search_input').val(unescape($.queryVal("gsq")));
          gsCall();
        }else{
          $("#search_results").text("Please submit a search term.");
        }
    }
    /* Init for Query */
    $('#search_form').submit(function(){
      window.location="/search/?gsq="+escape($('#search_input').val());
      return false;
    });
});
