
var Blog = {

	/*


0 - 60 minutes:	10 minutes ago
1 - 12 hours:	2 hours ago
12 - 24 hours:	12 hours ago
24+ hours:		n days ago (calculate days)

	*/

	postAge: function (postDate) {
		var now = new Date () ;
		var dt = Math.round ((now.getTime () - postDate.getTime ()) / 1000) ;
		var axis = 'ago' ;
		if (dt < 0) {
			axis = 'hence' ;
			dt = 0 - dt ;
		}

		var units = 'second' ;

		if (dt > 59) {
			dt = Math.round (dt / 60) ;
			if (dt < 60) {
				units = 'minute'
			} else {
				dt = Math.round (dt / 60) ;
				if (dt < 24) {
					units = 'hour' ;
				} else {
					dt = Math.round (dt / 24) ;
					if (dt < 14) {
						units = 'day' ;
					} else {
						dt = Math.round (dt / 7) ;
						units = 'week' ;
					}
				}
			}
		}

		return '' + dt + ' ' + units + ((dt != 1) ? 's' : '') + ' ' + axis ;
	},

	initEntry: function (entry, entryDate) {
		var id = entry.getAttribute ('id') ;
		var t = new Date () ;
		t.setTime (entryDate * 1000) ;
		var h = $$('#' + id + ' h1')[0] ;
		if (!h) {
			return ;
		}
		h.setAttribute ('title', t.toLocaleString ()) ;

		var auth = $$('#' + id + ' span.blog-author')[0] ;
		if (auth) {
			auth.insertBefore (document.createTextNode (' (' + this.postAge (t) + ')'), auth.firstChild.nextSibling) ;
		}

		//Event.observe (h, 'click', this.toggleEntry, false) ;
	},

	toggleEntry: function (evt) {
		var element = Event.element (evt).parentNode ;
		if (Element.hasClassName (element, 'collapsed')) {
			Element.removeClassName (element, 'collapsed') ;
		} else {
			Element.addClassName (element, 'collapsed') ;
		}
	},

	init: function () {
		var entries = $$('div.blog-entry') ;
		for (var i = 0 ; i != entries.length ; i++) {
			if (entries[i].id) {
				var entry = entries[i] ;
				if (/(?:^|\s)ut-(\d+)(?:\s|$)/.test (entry.className)) {
					this.initEntry (entry, parseInt (RegExp.$1)) ;
				}
			}
		}
	}
} ;

Event.observe (
	window,
	'load',
	function (evt) {
		Blog.init () ;
	},
	false
) ;
