if(typeof(Prototype) == 'undefined') {
	alert("Error: Prototype not found!\nPlease add prototype.js to your list of scripts");
}

function get_time_string(timestamp, date_only) {
	var mons = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
	var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
	var dt = new Date(timestamp * 1000);
	var now = new Date();
	var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
	var hour = (dt.getHours() == 0 ? 12 : dt.getHours() % 12);
	var minute = (dt.getMinutes() < 10 ? "0" + dt.getMinutes() : dt.getMinutes());
	var ampm = (dt.getHours() <= 12 ? "AM" : "PM");
	var msDay = (60*60*24*1000);
	var timestr = (!date_only ? hour + ":" + minute + " " + ampm : "");
	var text;

	if(dt.getHours() == 0 && dt.getMinutes() == 0 && dt.getSeconds() == 0)
		date_only = true; // assume 00:00:00 is a tournament game

	if(dt.getTime() - today.getTime() > 0 && now.getDate() == dt.getDate()) { // today
		text = date_only ? "Today" : "Today, " + timestr;
	}
	else if(dt.getTime() - (today.getTime() - msDay) > 0 && now.getDate() != dt.getDate()) { // yesterday
		text = "Yesterday" + (!date_only ? ", " + timestr : "");
	}
	else if(dt.getTime() - (today.getTime() - msDay*6) > 0) { // this week
		text = days[dt.getDay()] + (!date_only ? ", " + timestr : "");
	}
	else { // the rest
		text = mons[dt.getMonth()] + " " + dt.getDate() + ", " + dt.getFullYear() + (!date_only ? ", " + timestr : "");
	}

	return text;
}

function localize_times(node) {
	var parent = node || document;
	var spans = parent.getElementsByTagName("span");

	if(spans.length > 0) {
		for(var i = 0; i < spans.length; i++) {
			var timestamp = Element.readAttribute(spans[i], "timestamp");
			if(timestamp) {
				Element.update(spans[i], get_time_string(timestamp));
			}
		}
	}
}
