﻿(function ($) {

    $.fn.twitterize = function (username, options) {

        if (username) {

            var defaultSettings = {
                count: '6'
            }
            var settings = $.extend(defaultSettings, options);

            var url = "http://twitter.com/status/user_timeline/" + username + ".json?count=" + settings.count + "&lang=da&callback=?";

            var holder = this;

            $.getJSON(url,
        function (data) {

            $.each(data, function (i, item) {
                if (i == 0) {
                    if (item.text.indexOf("!") > -1) {
                        $("#twitterheadline").append('<div class="speechbubble"><div class="outer"><div class="inner">' + item.text.makeLinks() + '</div></div></div>');
                    }
                }
                holder.append('<div class="tweet"><div class="date">' + TwitterDateConverter(item.created_at) + '</div><p>' + item.text.makeLinks() + '</p></div>');

            });
        });

        } else {

            console.debug("jquery plugin twitterize requires a username! Check your parameters");

        }

        String.prototype.makeLinks = function () {
            return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function (str) {
                return str.link(str);
            });
        };


        return this;

    };

})(jQuery);
function parseDate(str) { var v = str.split(' '); return new Date(Date.parse(v[1] + " " + v[2] + ", " + v[5] + " " + v[3] + " UTC")); } 

function TwitterDateConverter(time) {
    var date = new Date(parseDate(time));
    //alert(time);
    var diff = (((new Date()).getTime() - date.getTime()) / 1000);
	var day_diff = Math.floor(diff / 86400);
    if (isNaN(day_diff) || day_diff < 0)
        return day_diff + "..";

    return day_diff == 0 && (
		diff < 60 && "lige nu" ||
		diff < 120 && "1 minut siden" ||
		diff < 3600 && Math.floor(diff / 60) + " minutter siden" ||
		diff < 7200 && "1 time siden" ||
		diff < 86400 && Math.floor(diff / 3600) + " timer siden") ||
		day_diff == 1 && "I går" ||
		day_diff < 7 && day_diff + " dage siden" ||
		day_diff < 31 && Math.ceil(day_diff / 7) + " uger siden" ||
		Math.round(Math.abs(day_diff / 30)) == 1 && "Over " + Math.round(Math.abs(day_diff / 30)) + " måned siden" ||
		Math.round(Math.abs(day_diff / 30)) > 1 && "Over " + Math.round(Math.abs(day_diff / 30)) + " måneder siden";
}
