/*
 * JavaScript Prettier Date
 * by Øyvind Smestad
 *
 * 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.
function prettierDate(time){
    var targetTime = new Date(time),
		 currentTime = new Date(),
		 sec_diff = ((currentTime.getTime() - targetTime.getTime()) / 1000);
    
    currentTime.setHours(0, 0, 0, 0);
    targetTime.setHours(0, 0, 0, 0);
    var day_diff = Math.floor((currentTime.getTime() - targetTime.getTime()) / 86400000);
    
    currentTime.setDate(1);
    targetTime.setDate(1);
    var month_diff = Math.floor((currentTime.getTime() - targetTime.getTime()) / (86400000 * 30)); //just an estimate with 30 day months
    var year_diff = currentTime.getFullYear() - targetTime.getFullYear();
    
    return day_diff == 0 &&
    (sec_diff < 60 && "Akkurat nå" ||
    sec_diff < 120 && "Ett minutt siden" ||
    sec_diff < 3600 && Math.floor(sec_diff / 60) + " minutter siden" ||
    sec_diff < 7200 && "En time siden" ||
    sec_diff < 86400 && Math.floor(sec_diff / 3600) + " timer siden") ||
    day_diff == 1 && "I går" ||
    day_diff < 14 && day_diff + " dager siden" ||
    day_diff < 31 && Math.ceil(day_diff / 7) + " uker siden" ||
    month_diff == 1 && "En måned siden" ||
    month_diff < 12 && month_diff + " måneder siden" ||
    year_diff == 1 && "Ett år siden" ||
    year_diff && year_diff + " år siden";
}

// If jQuery is included in the page, adds a jQuery plugin to handle it as well
if (typeof jQuery != "undefined") 
    jQuery.fn.prettierDate = function(){
        return this.each(function(){
            var date = prettierDate(this.title);
            if (date) 
                jQuery(this).text(date);
        });
    };
