/*
 * 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 prettyDate(time){
		var months = new makeArray('Jan','Feb','Mar','Apr','May',
		'Jun','July','Aug','Sep','Oct','Nov','Dec');
		var days = new makeArray('Sun','Mon','Tue','Wed','Thu','Fri','Sat');	
	var date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," ")),
	date = serverToLocal(date);
		diff = (((new Date()).getTime() - date.getTime()) / 1000),
		day_diff = Math.floor(diff / 86400);
			
		var yy = date.getYear();
		var year = (yy < 1000) ? yy + 1900 : yy;
		
	if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 )
		return ( days[date.getDay()] +", "+ date.getDate() + " " + months[date.getMonth()] + " " + year +
		" " + date.getHours() + ":" + date.getMinutes() );
			
	return day_diff == 0 && (
			diff < 60 && "just added" ||
			diff < 120 && "1 minute ago" ||
			diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" ||
			diff < 7200 && "1 hour ago" ||
			diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") ||
		day_diff == 1 && "Yesterday" ||
		day_diff < 7 && day_diff + " days ago" ||
		day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago"; 
}

function makeArray() {
for (i = 0; i<makeArray.arguments.length; i++)
this[i] = makeArray.arguments[i];
}

function serverToLocal(date){
	 var serverTime = date.getTime();
	 var serverOffSet = -8 * 3600000;
	 var utc = serverTime - serverOffSet;
	 var nowDate  = new Date();
	 var localOffset = nowDate.getTimezoneOffset();
	 // getTimezoneOffset() method. By default, this method returns the time zone offset in minutes
	 var localTime = utc + (60000*localOffset);
	 return new Date(localTime);
}
// Personal method
function prettySpanDate(){
        var spans = document.getElementsByTagName("span");       
        for ( var i = 0; i < spans.length; i++ ){
				if (spans[i].className == 'prettydate'){
                        var date = prettyDate(spans[i].innerHTML);
                        if ( date )
                          spans[i].innerHTML = date;
				}
          }
}


// 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 date = prettyDate(this.title);
			if ( date )
				jQuery(this).text( date );
		});
};
