/*
 * Javascript Pretty Date
 *
 * Copyright (c) 2008, Felix Bruns <felixbruns@web.de>
 * 
 */

function prettyDate(str){
	var date = new Date;
	var diff = (date - new Date(str.replace(/-/g,"/"))) / 1000;
	var suffix;
	
	if(diff < 0){
		suffix = 'from now';
	}
	else{
		suffix = 'ago';
	}
	
	var seconds = Math.abs(diff);
	var minutes = seconds / 60;
	var hours   = minutes / 60;
	var days    = hours / 24;
	var years   = days / 365;
	
	if(seconds < 45){
		str = 'less than a minute';
	}
	else if(seconds < 90){
		str = 'about a minute';
	}
	else if(minutes < 45){
		str = Math.round(minutes) + ' minutes';
	}
	else if(minutes < 90){
		str = 'about an hour';
	}
	else if(hours < 24){
		str = 'about ' + Math.round(hours) + ' hours';
	}
	else if(hours < 48){
		str = 'a day';
	}
	else if(days < 30){
		str = Math.round(days) + ' days';
	}
	else if(days < 60){
		str = 'about a month';
	}
	else if(days < 365){
		str = Math.round(days / 30) + ' months';
	}
	else if(years < 2){
		str = 'about a year';
	}
	else{
		str = Math.round(years) + ' years';
	}
	
	return str + ' ' + suffix;
}

if(typeof jQuery != 'undefined'){
	jQuery.fn.prettyDate = function(){
		return this.each(function(){
			var date = prettyDate(this.title);
			
			if(date && jQuery(this).text() != date){
				jQuery(this).text(date);
			}
		});
	};
}