var favoritesKey = "favorites";

function readFavorites() {
	var cookie = document.cookie;
	var values = cookie.split(";");
	for(var i = 0; i < values.length; i++) {
		if(values[i].match(favoritesKey)) {
			if(values[i].substr(favoritesKey.length + 1, 1) == "=") {
				return values[i].substr(favoritesKey.length + 2).split(",");
			} else {
				return values[i].substr(favoritesKey.length + 1).split(",");
			}
		}
	}
	return Array();
}

function writeFavorites(favorites) {
	var favoritesString = "";
	
	for(var i = 0; i < favorites.length; i++) {
		if(favoritesString.length > 0) {
			favoritesString += ",";
		}
		favoritesString += favorites[i];
	}

	var date = new Date();
	date.setTime(date.getTime() + (3 * 60 * 60 * 1000)); // 3 hours
	var expires = "; expires=" + date.toGMTString();
	document.cookie = favoritesKey + "=" + favoritesString + expires + "; path=/";
}

function setFavorite(id) {
	var favorites = readFavorites();
	var found = false;
	for(var i = 0; i < favorites.length; i++) {
		if(favorites[i] == id) {
			found = true;
			break;
		}
	}
	
	if(!found) {
		favorites.push(id);
	}
	
	writeFavorites(favorites);	
}

function clearFavorite(id) {
	var favorites = readFavorites();
	var index = -1;
	for(var i = 0; i < favorites.length; i++) {
		if(favorites[i] == id) {
			index = i;
			break;
		}
	}
	
	if(index >= 0) {
		favorites.splice(index, 1);
		writeFavorites(favorites);	
	}
}

function isFavorite(id) {
	var favorites = readFavorites();
	for(var i = 0; i < favorites.length; i++) {
		if(favorites[i] == id) {
			return true;
		}
	}
	
	return false;
}

function getFavorites() {
	return readFavorites();
}

function clearFavorites() {
	writeFavorites(Array());
}

