function fuzzyTime() {
	var now = new Date();
	var now_ms = now.getTime();
	var offset = now.getTimezoneOffset();
	offset = offset * 60 * 1000;
	
	$(".fuzzy").each(function () {
		var timeString = $(this).attr("timestamp");
		
		if (!timeString) {
			return;
		}
		
		var year = timeString.substring(0,4);
		var month = timeString.substring(4,6);
		var day = timeString.substring(6,8);
		var hour = timeString.substring(8,10);
		var minute = timeString.substring(10,12);
		var second = timeString.substring(12,14);
		
		var newDate = new Date();
		newDate.setFullYear(year);
		newDate.setMonth(month - 1, day);
		newDate.setHours(hour);
		newDate.setMinutes(minute);
		newDate.setSeconds(second);
		
		var ms = newDate.getTime();
		ms -= offset;
		
		// The times in the database are Central time.
		ms += 6 * 60 * 60 * 1000;
		
		newDate.setTime(ms);
		
		var difference = now_ms - newDate.getTime();
		var dateString = "";
		
		if (difference >= (1000 * 60 * 60 * 24 * 60)) {
			dateString = newDate.toDateString() + " " + ((newDate.getHours() == 0) ? "12" : ((newDate.getHours() <= 12) ? "12" : newDate.getHours() % 12)) + ":" + ((newDate.getMinutes() < 10) ? "0" : "") + newDate.getMinutes() + ((newDate.getHours()) > 11 ? "pm" : "am");
		}
		else if (difference >= (1000 * 60 * 60 * 24)) {
			dateString = newDate.toDateString() + " " + ((newDate.getHours() == 0) ? "12" : ((newDate.getHours() <= 12) ? "12" : newDate.getHours() % 12)) + ":" ((newDate.getMinutes() < 10) ? "0" : "") + newDate.getMinutes() + ((newDate.getHours()) > 11 ? "pm" : "am");
			/*
			var days = Math.floor(difference / (1000 * 60 * 60 * 24));
			dateString = days + " day";
			if (days != 1) dateString += "s"
			dateString += " ago";
			*/
		}
		else if (difference >= (1000 * 60 * 60)) {
			var hours = Math.floor(difference / (1000 * 60 * 60));
			dateString = hours + " hour";
			if (hours != 1) dateString += "s";
			dateString += " ago";
		}
/*		else if (difference < 0) {
			dateString = "In the future.";
		}
*/		else {
			var minutes = Math.floor(difference / (1000 * 60));
			
			if (minutes < 1) {
				dateString = "Less than a minute ago";
			}
			else {
				dateString = minutes + " minute";
				if (minutes != 1) dateString += "s";
				dateString += " ago";
			}
		}
		
		$(this).html(dateString);
	});
}

$(document).ready(function () {
	fuzzyTime();
});