/* Sky Slavin, Ludopoli. MIT license.
* based on	
* JavaScript Pretty Date
* Copyright (c) 2008 John Resig (jquery.com)
* Licensed under the MIT license.
*/

// Takes an ISO time and returns a string representing how
// long ago the date represents.
window.prettify = function (time) {
	return prettyDate(time)
};

var say = {};
say.just_now = " just now",
say.minute_ago = " 1 minute ago",
say.minutes_ago = " minutes ago",
say.hour_ago = " 1 hour ago",
say.hours_ago = " hours ago",
say.yesterday = " Yesterday",
say.days_ago = " days ago",
say.weeks_ago = " weeks ago"

function parse_date(time) {
    var dates = time.replace(/(-|T|:|\.)/gi, ",").substr(0, 23).split(",");
    return new Date(Date.UTC(dates[0], dates[1] - 1, dates[2], dates[3], dates[4], dates[5], dates[6]));
}

function prettyDate(time) {
	var current_date = new Date();
	current_date_time = current_date.getTime();
	current_date_full = current_date_time + (1 * 60000);

	var date = new Date(time);
	var diff = ((current_date_full - date.getTime()) / 1000);

	if ($.browser.msie) {
	    date = parse_date(time).getTime();
		diff = ((current_date_full - date) / 1000);
	};

	var day_diff = Math.floor(diff / 86400);

	if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31)
		return;

	return day_diff == 0 && (
       diff < 60 && "gerade eben" ||
      diff < 120 && "Vor 1 Minute" ||
      diff < 3600 && "Vor " + Math.floor(diff / 60) + " Minuten" ||
      diff < 7200 && "Vor einer Stunde" ||
      diff < 86400 && "Vor " + Math.floor(diff / 3600) + " Stunden") ||
    day_diff == 1 && "Gestern" ||
    day_diff < 7 && "Vor " + day_diff + " Tagen" ||
    day_diff < 31 && "Vor " + Math.ceil(day_diff / 7) + " Wochen";
}

// If jQuery is included in the page, adds a jQuery plugin to handle it as well
if (typeof jQuery != "undefined") {
    jQuery.fn.prettyDate = function () {
        return this.each(function () {
            var _ = $(this).attr("datetime");
            var date = prettyDate(_);
            if ($.type(date) === "undefined") {
                var months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
                var d = new Date(_);
                if ("Invalid Date" == d || "NaN" == d) {
                    d = parse_date(_);
                }
                date = d.getDate() + " " + months[d.getMonth()] + " " + d.getFullYear();
            }
            $(this).text(date);
        });
    };
	jQuery("document").ready(function () {
		jQuery("time.human").prettyDate();
	});
};
