/*
 * jGFeed 1.0 - Google Feed API abstraction plugin for jQuery
 *
 * Copyright (c) 2009 jQuery HowTo
 *
 * Licensed under the GPL license:
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Author URL:
 *   http://tm.com
 *
 */



(function ($) {
    $.fn.jGFeed = function (settings, callback) {
        // 4 parameters
        // url - url of feed to get
        // num - number of posts to display
        // key - your api key
        // ajaxImageUrl - "loading" image to display

        var settings = $.extend({ url: '', num: 3, key: '' }, settings || {});

        return this.each(function () {

            var $parent;
            $parent = $(this);

            // Build Google Feed API URL
            var gurl = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=" + settings.url;
            if (settings.num != '') gurl += "&num=" + settings.num;
            if (settings.key != '') gurl += "&key=" + settings.key;

            if (settings.ajaxImageUrl) {
                $parent.html("<img src=\"" + settings.ajaxImageUrl + "\">");
            }

            $.getJSON(gurl, function (data) {
                //if (typeof callback == "function") callback.call(this, data.responseData.feed);
                if (typeof callback == "function") {
                    callback(data.responseData.feed);
                }
                else {
                    var feeds = data.responseData.feed;

                    var htmlOut = "<p>" + feeds.title + "</p>";
                    htmlOut += "<ul>\n";
                    for (var i = 0; i < feeds.entries.length; i++) {
                        var entry = feeds.entries[i];

                        htmlOut += "<li>";

                        if (entry.mediaGroups) {
                            htmlOut += "<img src='" + entry.mediaGroups[0].contents[0].url + "'>";
                        }

                        htmlOut += "<div class=\"author\">" + entry.author + "</div>"
                        htmlOut += "<div class=\"link\"><a href='" + entry.link + "' target='_blank'>" + entry.title + "</a></div>";
                        htmlOut += "<div class=\"snippet\">" + entry.contentSnippet + "</div>";
                        htmlOut += "</li>\n";
                    }
                    htmlOut += "</ul>\n";
                    $parent.html(htmlOut);
                }
            });


        });
    };
})(jQuery);
