
function pageLoad() {
		
	$(".RelativeTime").each(function() {
		var date = new Date();
		date.setISO8601($(this).attr('title'));
		$(this).html(relative_time(date));
		$(this).attr('title', date.toLocaleString());
		$(this).addClass('Date');
	});
	
	
    var prettify = false;
    $("code").parent().each(function() {
        $(this).addClass('prettyprint');
        prettify = true;
    });
    if ( prettify ) {
		 $.getScript("http://samxnet.inetstatic.com/pp/prettify.js", function() { prettyPrint();}); 
    }
}
function str_map_replace(text, map) {
	for (x in map) {  
		text = text.replace(new RegExp(x), map[x]);
	}
	return text;
}
function delay_login(time)
{
	if ( time > 0) {
		$('#loginSubmit').val('Login ('+time+')');
		$('#delayTime').html(time);
		time-= 1;
		setTimeout('delay_login('+time+')',1000);
	} else {
		$('#loginSubmit').val('Login').removeAttr('disabled');
		$('#delayMessage').hide(250);
	}
}

/* linkify function is from from http://code.google.com/p/twitterjs/ 
Copyright (c) 2008 Remy Sharp, http://remysharp.com/
See http://www.opensource.org/licenses/mit-license.php
*/
function tweet_relative_time(time_value) {
        var values = time_value.split(" ");
        time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
        var parsed_date = Date.parse(time_value);
		return relative_time(parsed_date);
	}

var timeUnits = new Array;
timeUnits['minute'] = 60;
timeUnits['hour'] = timeUnits['minute'] * 60;
timeUnits['day'] = timeUnits['hour'] * 24;
timeUnits['month'] = timeUnits['day'] * 30;
timeUnits['year'] = timeUnits['day'] * 364;
var timeUnitOrder = ['year', 'month', 'day', 'hour', 'minute'];

function relative_time(date) {
    var now = new Date();
    var offset = date.getTime() - now.getTime();
    var seconds = Math.round(Math.abs(offset) / 1000);

    var ret = "";
    var shown = 0;
    for (i = 0; i < timeUnitOrder.length; i++) {
        var unit = timeUnitOrder[i];
        if (seconds >= timeUnits[unit]) {
            var num = Math.floor(seconds / timeUnits[unit]);
            seconds -= num * timeUnits[unit];
            if (ret)
                ret += "and ";
            ret += num + " " + unit + (num > 1 ? "s" : "") + " ";

            if (++shown == 2)
                break;
        }
        else if (shown)
            break;
    }

    if (! ret)
        ret = "less than a minute "

    return ret + (offset < 0 ? "ago" : "from now");
}

function linkify(s) {
        return s.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g, function(m) {
            return m.link(m);
        }).replace(/@[\S]+/g, function(m) {
            return '<a href="http://twitter.com/' + m.substr(1) + '">' + m + '</a>';
        });
    }
	
Date.prototype.setISO8601 = function(dString){
	var regexp = /(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)(:)?(\d\d)(\.\d+)?(Z|([+-])(\d\d)(:)?(\d\d))/;

	if (dString.toString().match(new RegExp(regexp))) {
		var d = dString.match(new RegExp(regexp));
		var offset = 0;

		this.setUTCDate(1);
		this.setUTCFullYear(parseInt(d[1],10));
		this.setUTCMonth(parseInt(d[3],10) - 1);
		this.setUTCDate(parseInt(d[5],10));
		this.setUTCHours(parseInt(d[7],10));
		this.setUTCMinutes(parseInt(d[9],10));
		this.setUTCSeconds(parseInt(d[11],10));
		if (d[12])
		this.setUTCMilliseconds(parseFloat(d[12]) * 1000);
		else
		this.setUTCMilliseconds(0);
		if (d[13] != 'Z') {
			offset = (d[15] * 60) + parseInt(d[17],10);
			offset *= ((d[14] == '-') ? -1 : 1);
			this.setTime(this.getTime() - offset * 60 * 1000);
		}
	}
	else {
		this.setTime(Date.parse(dString));
	}
	return this;
};

$(document).ready(pageLoad);