(function($) {
    $.fn.jemTweets = function(data, options) {
        var defaults = {
            username: 'jem_id',
            time: false,
            replies: false,
            cycle: true,
            twitterlink: true
        };
        var options = $.extend(defaults, options);
        return this.each(function(options) {
            var act = $(this);
            $.each(data, function(i, item) {
                if (i == 0) {
                    $(act).prepend('<ul class="tweetList">');
                }
                if (defaults.replies === false) {
                    //if (item.in_reply_to_status_id === null) {
                        $('.tweetList').append('<li class="tweet_content_' + i + '"><p class="tweet_link_' + i + '">' + item.text.replace(/#(.*?)(\s|$)/g, '<label class="hash">#$1 </label>').replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, '<a href="$&">$&</a> ').replace(/@(.*?)(\s|\(|\)|$)/g, '<a href="http://twitter.com/$1">@$1 </a>$2'));
                        if (defaults.time == true) {
                            $('.tweet_content_' + i).append('<small> ' + relative_time(item.created_at) + '</small>');
                        }
                    //}
                } else {
                $('.tweetList').append('<li class="tweet_content_' + i + '"><p class="tweet_link_' + i + '">' + item.text.replace(/#(.*?)(\s|$)/g, '<label class="hash">#$1 </label>').replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, '<a href="$&">$&</a> ').replace(/@(.*?)(\s|\(|\)|$)/g, '<a href="http://twitter.com/$1">@$1 </a>$2'));
                    if (defaults.time == true) {
                        $('.tweet_content_' + i).append('<small> ' + relative_time(item.created_at) + '</small>');
                    }
                }
            });
            if (defaults.twitterlink === true) {
                $('.tweetList').append("<li class='twitterLink'><a href='http://www.twitter.com/" + username + "' target='_new'>Ga naar twitter</a></li>");
            }
        });

        function parse_date(date_str) {
            return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
        }

        function relative_time(time_value) {
            var parsed_date = parse_date(time_value);
            var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
            var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
            var r = '';
            if (delta < 60) {
                r = delta + ' seconden geleden';
            } else if (delta < 120) {
                r = 'een minuut geleden';
            } else if (delta < (45 * 60)) {
                r = (parseInt(delta / 60, 10)).toString() + ' minuten geleden';
            } else if (delta < (2 * 60 * 60)) {
                r = 'een uur geleden';
            } else if (delta < (24 * 60 * 60)) {
                r = '' + (parseInt(delta / 3600, 10)).toString() + ' uur geleden';
            } else if (delta < (48 * 60 * 60)) {
                r = 'een dag geleden';
            } else {
                r = (parseInt(delta / 86400, 10)).toString() + ' dagen geleden';
            }
            return '- ' + r;
        }
    }
})(jQuery)


