var FacebookWall = function(useruri, feeduri, parentsel, tmplsel, num) {
	var user = null;
	var data = null;
	var MONTHS = ['Jan',
		'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

	var thenRender = function() {
		if (user == null || data == null) return;

		for (var i=0; i<data.length; i++) {
			data[i].owner = user;
			var created_time = data[i].created_time;
			created_time = created_time.substring(0,created_time.indexOf('+'));
			created_time = created_time.replace('T', ' ').replace(/-/g, '/');
			var d = new Date(created_time);
			var nice_date = MONTHS[d.getMonth()]+' '+d.getDate();
			if (d.getHours()>12) {
				var nice_time = (d.getHours()-12)+':'+d.getMinutes()+'pm';
			} else if (d.getHours() == 12) {
				var nice_time = '12:'+d.getMinutes()+'pm';
			} else if (d.getHours() > 0) {
				var nice_time = (d.getHours())+':'+d.getMinutes()+'am';
			} else {
				var nice_time = '12:'+d.getMinutes()+'am';
			}
			data[i].nice_datetime = nice_date + ' at ' + nice_time;

			var nice_message = data[i].message ? data[i].message : data[i].description;
			var words = nice_message.split(' ');
			for (var j=0; j<words.length; j++) {
				var w = words[j];
				if (w.match(/^[a-z]*:\/\/[^ ]*$/)) {
					words[j] = '<a href="'+w+'">link</a>';
				}
			}
			if (words.length>20) {
				data[i].nice_message = words.slice(0,20).join(' ')+'…';
			} else {
				data[i].nice_message = words.join(' ');
			}

			data[i].nice_img = 'http://graph.facebook.com/'+data[i].from.id+'/picture';

		}

		var r = $.tmpl( $(tmplsel), data).appendTo(parentsel);
	};

	FB.api(useruri, function(resp) {
		user = resp;
		thenRender();
	});

	FB.api(feeduri, function(resp) {
		data = resp.data.slice(0,num);
		thenRender();
	});
};

