function favorite(ele){
	$.ajax({
		"type": "POST", 
		"url": "/favorite/add", 
		"data" : "c=" + $(ele).attr("id").substring(4), 
		"success": function(data){handleFavResponse(data, $(ele).attr("id"));}, 
		"error" : "showFavoriteError",
		"dataType" : "xml"
	});
}

function unfavorite(ele){
	$.ajax({
		"type": "POST", 
		"url": "/favorite/remove", 
		"data" : "c=" + $(ele).attr("id").substring(4), 
		"success": function(data){handleUnfavResponse(data, $(ele).attr("id"));}, 
		"error" : "showFavoriteError",
		"dataType" : "xml"
	});
}

function handleFavResponse(data, id){
	var msgType = $(data).find("messageType").text();
	if(msgType == "1"){
		var ele = $("#" + id);
		$(ele).text("Remove from my favorites");
		$(ele).attr("class", "rem_fav");
		$(ele).unbind("click");
		$(ele).click(function(e){unfavorite($(this)); e.preventDefault();});
		var numFavs = parseInt($("#num_favs").text());
		$("#num_favs").text(++numFavs);
	}else{
		alert($(data).find("message").text());
	}
}

function handleUnfavResponse(data, id){
	var msgType = $(data).find("messageType").text();
	if(msgType == "1"){
		var ele = $("#" + id);
		$(ele).text("Add to my favorites");
		$(ele).attr("class", "add_fav");
		$(ele).unbind("click");
		$(ele).click(function(e){favorite($(this)); e.preventDefault();});
		var numFavs = parseInt($("#num_favs").text());
		$("#num_favs").text(--numFavs);
	}else{
		alert($(data).find("message").text());
	}
}

function showFavoriteError(){
	alert("Oops, something messed up and we weren't able to save your request. Please try again in a few minutes");
}

$(document).ready(function(){
	$(".add_fav").click(function(e){favorite($(this)); e.preventDefault();});
	$(".rem_fav").click(function(e){unfavorite($(this)); e.preventDefault();});
});