/*
jQuery Url Plugin
    * Version 1.0
    * 2009-03-22 19:30:05
    * URL: http://ajaxcssblog.com/jquery/url-read-get-variables/
    * Description: jQuery Url Plugin gives the ability to read GET parameters from the actual URL
    * Author: Matthias Jäggli
    * Copyright: Copyright (c) 2009 Matthias Jäggli under dual MIT/GPL license.
*/
(function ($) {
    $.url = {};
    $.extend($.url, {
        _params: {},
        init: function(){
            var paramsRaw = "";
            try{
                paramsRaw = 
                    (document.location.href.split("?", 2)[1] || "").split("#")[0].split("&") || [];
                for(var i = 0; i< paramsRaw.length; i++){
                    var single = paramsRaw[i].split("=");
                    if(single[0])
                        this._params[single[0]] = unescape(single[1]);
                }
            }
            catch(e){
                alert(e);
            }
        },
        param: function(name){
            return this._params[name] || "";
        },
        paramAll: function(){
            return this._params;
        }
    });
    $.url.init();
})(jQuery);

/*
 * jQuery.Google v.0.1
 *  Author: Roel Kramer
 *          <http://www.sterkwebwerk.nl/>
 *    Date: April 14, 2010
 *    
 *    Google json spec:
 *    http://code.google.com/apis/ajaxsearch/documentation/#fonje
 *    http://code.google.com/apis/ajaxsearch/documentation/reference.html#_intro_fonje
 */

(function($) {
    $.search = {};
    $.extend($.search, {
        settings: {
            site: "www.google.com",
            googleKey: "ABQIAAAAX-5SIgePLZ2xGUmqqHss8RSJa0DyZUkHOUxX5uryeefyMTixVRRBx6ZCPjFGWPoInVcGjZGjclad1w",
            queryFieldID: "searchQuery",
            resultFieldID: "searchResults",
            rsz: "large"
        },
        init: function(options) {
            var settings = this.settings;
            var resultField = $("#"+ $.search.settings.resultFieldID);
            var resultTemplate = $(resultField).children(".searchResult").first().clone();
            var searchResultEmtpy = $(resultField).children(".searchResultEmtpy").first().first();
            $.extend(this.settings, options);
            $.extend(this.settings, {
                resultField: resultField, 
                resultTemplate: resultTemplate, 
                searchResultEmtpy: searchResultEmtpy
            });

            $(searchResultEmtpy).hide();
            $(resultTemplate).addClass('searchResultVisible');
            $(resultField).children(".searchResult").first().hide();
                        
            // bind handlers on init
            $("#search").click(function(){
                performSearch($("#"+ settings.queryFieldID).val());
                return false; 
            });

            if($.url.param("q")) {
                performSearch($.url.param("q"));
            }            
        }
    });
    
    performSearch = function(q) {
        var settings = $.search.settings;
        var url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&key="+ settings.googleKey +"&q="+ q +" site:"+ settings.site +"&rsz="+ settings.rsz +"&callback=?";
        $.getJSON(url, function(data) {
            // Remove already displayed result divs and no result div
                            
            $(settings.searchResultEmtpy).hide();
            $(".searchResultVisible").each(function(){
                $(this).remove();
            });
            if(data.responseData.results &&
                data.responseData.results.length > 0) {
                var results = data.responseData.results;
                // Display results
                $.each(results, function(index, obj) {
                    var curResult = $(settings.resultTemplate).clone();
                    $(curResult).find(".searchResultContent").html(obj.content);
                    $(curResult).find(".searchResultUrl").attr("href", obj.url);
                    $(curResult).find(".searchResultUrl").html(obj.title);
                    $(settings.resultField).append(curResult);
                });                        
            } else {
                // No results
                $(settings.searchResultEmtpy).show();
            }
        });
    }
})(jQuery);




