function voteSort(a,b) {
	if (parseInt(a.votes)<parseInt(b.votes)) return 1;
	return -1;
}

function commentSort(a,b) {
	if (parseInt(a.comments)<parseInt(b.comments)) return 1;
	return -1;
}

do_callback = null;
function getFavorites(callback) {
	req = false;
	do_callback = callback;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
		try {
				req = new XMLHttpRequest();
		} catch(e) {
				req = false;
		}
	} else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
	if(req) {
		req.onreadystatechange = favorites_response;
		req.open("GET", "/favorites.json", true);
		req.send(null);
	} else {
	 	// something didn't work
	}
}

function favorites_response() {
	if (req && req.readyState == 4) {
		temp1 = eval(req.responseText);
		temp2 = eval(req.responseText);
		temp1.sort(commentSort);
		com_entries = temp1;

		temp2.sort(voteSort);
		fav_entries = temp2;
		if (do_callback) {
			writeFavorites(do_callback);
			do_callback = null;
		}
		document.getElementById("progress_recommended").style.display="none";
		document.getElementById("progress_commented").style.display="none";
	}
}

function writeFavorites(which) {
	if (which == "lastYear") {
		c_entries = year_com_entries;
		f_entries = year_fav_entries;
	} else if (which != "ever") {
		c_entries = eval(which +"(com_entries, 'comments')");
		f_entries = eval(which +"(fav_entries, 'votes')");
	} else {
		c_entries = ever_com_entries;
		f_entries = ever_fav_entries;
	}

	f_entries = f_entries.slice(0,25);
	c_entries = c_entries.slice(0,25);

	if (f_entries.length < 1) {
		html = "No recommendations yet, check back later!";
	} else {
		html = "<ol class=\"fav-recommends\">\n";
		for (x=0;x<f_entries.length;x++) {
			html += "<li><h3><a href=\"" + f_entries[x].link + "\">" + f_entries[x].title + "</a></h3>\n";
			html += "<p class=\"summary\">" + f_entries[x].excerpt + "[<a href=\"" + f_entries[x].link + "\">more</a>]</p>\n";
			html += "<p class=\"post-by\">Posted by <a href=\"" + f_entries[x].authorlink + "\" alt=\"" + f_entries[x].author + "\">" + f_entries[x].author + "</a> on " + f_entries[x].displaydate + " | <a href=\"" + f_entries[x].link + "\">Recommended (" + f_entries[x].votes + ")</a></p>\n";
			html +=	"</li>";
		}
		html += "</ol>";
	}
	document.getElementById("favorites").innerHTML = html;
	if (c_entries.length < 1) {
		html = "No comments yet, check back later!";
	} else {	
		html = "<ol class=\"fav-recommends\">\n";
		for (x=0;x<c_entries.length;x++) {
			html += "<li><h3><a href=\"" + c_entries[x].link + "\">" + c_entries[x].title + "</a></h3>\n";
			html += "<p class=\"summary\">" + c_entries[x].excerpt + "[<a href=\"" + c_entries[x].link + "\">more</a>]</p>\n";
			html += "<p class=\"post-by\">Posted by <a href=\"" + c_entries[x].authorlink + "\" alt=\"" + c_entries[x].author + "\">" + c_entries[x].author + "</a> on " + c_entries[x].displaydate + " | <a href=\"" + c_entries[x].link + "\">Comments (" + c_entries[x].comments + ")</a></p>\n";
			html +=	"</li>";
		}
		html += "</ol>";
	}
	document.getElementById("comments").innerHTML = html;
	
	return false;
}

function lastMonth(entries, toTest) {
	var monthAgo = new Date();
	monthAgo.setMonth(monthAgo.getMonth()-1);
	var newEntries = new Array();
	for (x=0;x<entries.length;x++) {
		if (entries[x]) {
			jsDate = Date.parse(entries[x].date);
			if (jsDate >= monthAgo.getTime() && entries[x][toTest] > 0) {
				newEntries.push(entries[x]);
			}
		}
	}
	return newEntries;
}

function lastWeek(entries, toTest) {
	var weekAgo = new Date();
	weekAgo.setDate(weekAgo.getDate()-7);
	var newEntries = new Array();
	for (x=0;x<entries.length;x++) {
		if (entries[x]) {	
			jsDate = Date.parse(entries[x].date);
			if (jsDate >= weekAgo.getTime() && entries[x][toTest] > 0) {
				newEntries.push(entries[x]);
			}
		}
	}
	return newEntries;
}

function today(entries, toTest) {
	var today = new Date();
	today.setHours(0);
	today.setMinutes(0);
	var newEntries = new Array();
	for (x=0;x<entries.length;x++) {
		if (entries[x]) {
			jsDate = Date.parse(entries[x].date);
			if (jsDate >= today.getTime() && entries[x][toTest] > 0) {
				newEntries.push(entries[x]);
			}
		}
	}
	return newEntries;
}

function ever() {
	document.getElementById("recommended").style.display = "block";
	document.getElementById("commented").style.display = "block";

	document.getElementById("favorites").style.display = "none";
	document.getElementById("comments").style.display = "none";
}

document.domain = document.domain.replace(/www\./, '');

