$(document).ready(
	function(){
		$(".date").each(function(){
			var val = $(this).text();
			$(this).attr("title", val + " GMT");
			$(this).text(getLocalDate(val));
	});
});

function getLocalDate(val){
	var parts = val.split(" ");
	var dp = parts[0].split("-");
	var tp = parts[1].split(":");
	var ms = Date.UTC(dp[0], dp[1] - 1, dp[2], tp[0], tp[1], tp[2]);
	var d = new Date(ms);
	var now = new Date();
	now.setHours(0, 0, 0, 0);
	if (now.getTime() <= d.getTime()){
		return "Today " + getTimePart(d);
	}
	now.setDate(now.getDate() - 1);
	if (now.getTime() <= d.getTime()){
		return "Yesterday " + getTimePart(d);
	}
	
	now.setDate(now.getDate() - 3);
	if (now.getTime() <= d.getTime()){
		return getWeekday(d) + " " + getTimePart(d);
	}
	
	now.setMonth(0, 1);
	if (now.getTime() <= d.getTime()){
		return getMonth(d) + " " + d.getDate();
	}
	
	return getMonth(d) + " " + d.getDate() +", " + d.getFullYear() ;
}
function getTimePart(d){
	var hours = d.getHours();
	var mins = d.getMinutes().toString();
	var ampm = "am";
	if (hours >= 12){
		ampm = "pm";
		hours = hours - 12;
	}
	if (hours == 0) hours = 12;
	if (mins.length == 1) mins = "0" + mins;
	return hours + ":" + mins + " " + ampm;
	
}

function getWeekday(d){
	var wd = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
	return wd[d.getDay()];
}

function getMonth(d){
	var m = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	return m[d.getMonth()];
}
