function rssCallback(obj) {
	if(!obj || !obj.items || !obj.items.length) return;

	if(typeof showRssDesc == 'undefined') showRssDesc = true;
	if(typeof showRssDate == 'undefined') showRssDate = false;
	if(typeof showRssAuthor == 'undefined') showRssAuthor = false;
	if(typeof showRssByLine == 'undefined') showRssByLine = true;
	if(typeof rssItemsMax == 'undefined') rssItemsMax = 3;
	if(typeof rssItemsTag == 'undefined') rssItemsTag = 'rss_items';

	var html = "";
	for (var i=0; i<obj.items.length; i++) {
		if(rssItemsMax && i>=rssItemsMax) break;
		html += '<li class="item">';
		html += '<div class="title"><a href="' + obj.items[i].link + '">' + obj.items[i].title + '</a></div>';
		if(showRssByLine && obj.items[i].pubDate && obj.items[i].author) {
			html += '<div class="byline">' + getSimpleDate(obj.items[i].pubDate) + ' by ' + obj.items[i].author + '</div>';
		}
		if(showRssDesc && obj.items[i].description) {
			html += '<div class="desc">' + obj.items[i].description + '</div>';
		}
		if(showRssDate && obj.items[i].pubDate) {
			html += '<div class="date">' + getRelativeTime(obj.items[i].pubDate) + '</div>';
		}
		if(showRssAuthor && obj.items[i].author) {
			html += '<div class="author">' + obj.items[i].author + '</div>';
		}
		html += '</li>';
	}
	document.getElementById(rssItemsTag).innerHTML = html;
}

function getRelativeTime(C){
	var B=C.split(" ");
	C=B[1]+" "+B[2]+", "+B[4]+" "+B[3];
	var A=Date.parse(C);
	var D=(arguments.length>1)?arguments[1]:new Date();
	var E=parseInt((D.getTime()-A)/1000);
	E=E+(D.getTimezoneOffset()*60);
	if(E<60) return "just now";
	if(E<120) return "1 minute ago";
	if(E<(60*60)) return(parseInt(E/60)).toString()+" minutes ago";
	if(E<(120*60)) return "1 hour ago";
	if(E<(24*60*60)) return (parseInt(E/3600)).toString()+" hours ago";
	if(E<(48*60*60)) return "1 day ago";
	return (parseInt(E/86400)).toString()+" days ago";
}

function getSimpleDate(C){
	var B=C.split(" ");
	C= B[2] + " " + B[1] + " " + B[3];
	return C;
}

