(function ($) {
    $.fn.twitterfeed = function (f, g) {
        var h = {
            count: 12,
            timer: 20000,
            type: "query",
            autoplay: 0,
            multiple: false
        };
        var j = {};
        var k = {};
        var l = 0;
        var n = $.extend(h, g);
        if (n.type == "query") {
            if (n.multiple == false || n.multiple == '') {
                var o = "http://search.twitter.com/search.json?q=" + escape(f) + "&callback=?"
            } else {
                var o = "http://search.twitter.com/search.json?ors=" + escape(f) + "&callback=?"
            }
        } else {
            var o = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=" + escape(f) + "&count=12&callback=?"
        }
        if (this) {
            var p = this
        }
        searchtwitter();

        function searchtwitter() {
            jQuery.getJSON(o, function (a) {
                if (n.type == "query") {
                    var b = a.results
                } else {
                    var b = a
                }
                if (b) {
                    var i = -1;
                    var c;
                    var d = [];
                    while ((c = b[++i]) && !j[c.id]) {
                        j[c.id] = c.id;
                        if (n.type == "query") {
                            name = c.from_user;
                            prof_img = c['profile_image_url'];
                            username = c.from_user
                        } else {
                            name = c.name;
                            prof_img = a[0].user.profile_image_url;
                            username = a[i].user.screen_name
                        }
                        d.push('<li id="TwitterId');
                        d.push(c.id);
                        d.push('"><a href="http://www.twitter.com/');
                        d.push(name);
                        d.push('" title="Visit Teknicks Twitter page" target="_blank" class="imgleft"><img src="/_Files/twitter/teknicks-logo-24x24-white.png" alt="Teknicks Logo Icon"  class="userImg"/></a>');
                        d.push('<div class="feedtext">');
                        d.push(c.text.makeLink());
                        d.push('<span class="feedInfo">');
                        d.push(get_time(c.created_at));
                        d.push('</span></div><div class="clear"></div></li>');
                        idgot = c.id;
                        if (l != 0) {
                            break
                        }
                    }
                    var e = d.join("");
                    l = 1;
                    //if (e !== '') p.prepend(e).find('li:hidden').slideToggle('fast');
                    if (e !== '') p.prepend(e).find('li:hidden').show();
                    if (!k[idgot]) {
                        element = jQuery("#TwitterId" + idgot);
                        animatebackground(element, 5, 0);
                        k[idgot] = idgot
                    }
                    p.children("li:gt(" + n.count + ")").remove()
                }
            })            
        }
        $.fn.start = function () {
            timerInst = setInterval(function () {
                searchtwitter()
            }, n.timer)            
        };
        $.fn.pause = function () {
            clearInterval(timerInst)
        };
        if (typeof String.prototype.makeLink === "undefined") {
            String.prototype.makeLink = function () {
                return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/~.=]+/, function (m) {
                    return m.link(m)
                })
            }
        }
        function get_time(a) {
            if (n.type == "query") {
                var b = a.split(" ");
                a = b[2] + " " + b[1] + ", " + b[3] + " " + b[4]
            } else {
                a = a.replace(/(\+[0-9]{4}\s)/ig, "")
            }
            var c = Date.parse(a);
            var d = (arguments.length > 1) ? arguments[1] : new Date();
            var e = parseInt((d.getTime() - c) / 1000, 10);
            e = e + (d.getTimezoneOffset() * 60);
            var r = '';
            if (e <= 60) {
                r = '1 minute ago'
                //r = e + ' seconds ago'
            } else if (e < 120) {
                r = 'couple minutes ago'
            } else if (e < (45 * 60)) {
                r = parseInt((e / 60), 10).toString() + ' minutes ago'
            } else if (e < (90 * 60)) {
                r = '1 hour ago'
            } else if (e < (24 * 60 * 60)) {
                r = '' + parseInt((e / 3600), 10).toString() + ' hours ago'
            } else if (e < (48 * 60 * 60)) {
                r = '1 day ago'
            } else {
                r = parseInt((e / 86400), 10).toString() + ' days ago'
            }
            return r
        }
        function animatebackground(a, b, c) {
            b += b > c ? -1 : 1;
            if (!jQuery.support.opacity) {
                if (b != c) {
                    var d = (Math.round(b * 25.5)).toString(16);
                    a.css({
                        background: 'transparent',
                        filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#" + d + "15c332, endColorstr=#" + d + "15c332)"
                    })
                } else {
                    a.css({
                        background: 'transparent',
                        filter: "none"
                    })
                }
            } else {
                a.css("backgroundColor", "rgba(21, 195, 50, " + (b) / 10 + ")")
            }
            if (b != c) {
                setTimeout(function () {
                    animatebackground(a, b, c)
                }, 300)
            }
        }
        if (n.autoplay == 1) {
            timerInst = setInterval(function () {
                searchtwitter()
            }, n.timer)
        }
    }

})(jQuery);
