/* 
 * Twitter jquery plugin.
 */
(function($){
    $.fn.lastTwitterMessage = function(username, placeholder){
        var $base = this;
        if (!username || username == "") {
            return this; // username required
        }
        $base.empty();
        var url = "http://twitter.com/statuses/user_timeline.json?callback=?";
        $.getJSON( url, { count: 3, screen_name: username },
            function(data){
                if (data && data.length >= 1) {
                    try {
                        var item = null;
                        for (var i = 0; i < data.length; i++) {
                            if (/^@/i.test(data[i].text)) {
                                continue;
                            }
                            item = data[i]; //break;
                            if (!item) {
                                return;
                            }
                            var $tweet = $("<p class='twitter-message'></p> ")
                                .html("<a href='http://twitter.com/" + username + "'>" + username + "</a> : ");
                            var $text = $('<span>').html(item.text);
                            $text.html(
                                $text.html().replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi,'<a href="$1">$1</a>')
                                .replace(/(^|\s)#(\w+)/g,'$1<a href="http://search.twitter.com/search?q=%23$2">#$2</a>')
                                .replace(/(^|\s)@(\w+)/g,'$1<a href="http://twitter.com/$2">@$2</a>')
                            );
                            $text.appendTo($tweet);
                            $tweet.append("<span class='twitter-timestamp'>" + item.created_at + ' <br />on ' + item.source + "</span>");
                            $base.append($tweet);
                        }
                        $base.show();
                        $('#' + placeholder).remove();
                    } catch (e) {

                    };
                };
            }
        );
    return this; // Don't break the chain
    };
})(jQuery);


