

var xhr = null;

function SubmitFavorite(tid, action) {
	if(xhr && xhr.readyState!=0) {
		xhr.abort()
	}
	xhr=GetXmlHttpObject();
	if(xhr){
		var url = APP_PATH + "/Members/FavoriteCommand.aspx?tid="+tid+"&action=" + action
		xhr.open("GET", url, true);
		xhr.onreadystatechange=function() {
			if(xhr.readyState==4&&xhr.responseText){
				retVal = xhr.responseText;
				if (retVal != null) {
					if (retVal == "login") {
						//if not logged in - do redirect with returnUri
						returnUri = "&returnUri=" + document.location;
						document.location.replace(APP_PATH + "/Login.aspx");
					} else { 
						ChangeFavoriteDisplay(tid, action, true);
						UpdateFavorite(tid, action);
					}
				}
			}
		}
		xhr.send(null);
	}
}

function ChangeFavoriteDisplay(tid, action, isNew) {
	var favDiv = document.getElementById(tid + "fav");
	if (favDiv && favDiv != "") {
		if (action=="add" && isNew) {		
			favDiv.innerHTML = 'Added to Favorites! | ';
		} else if (action=="add") {
			favDiv.innerHTML = '<A href="javascript: SubmitFavorite('+tid+', \'remove\');">Remove from Favorites</A> | ';
		} else if (action=="remove" && isNew) {
			favDiv.innerHTML = 'Removed from Favorites! | ';;
		} else if (action=="remove") {
			favDiv.innerHTML = '<A href="javascript: SubmitFavorite('+tid+', \'add\');">Add to Favorites</A> | ';
		}
	}
}



//  COOKIE STUFF:
var FAVORITE_COOKIE_NAME	= "f"
var favoriteArray = new Array();

function InitFavorites() {
	favoriteArray = LoadFavoriteCookie();
}

function UpdateFavorite(tid, action) {
	var ln = 0;
	if (favoriteArray != null)
		ln = favoriteArray.length;
	if (IsFavorite(tid) == false) {
		favoriteArray[ln] = tid;
		SaveFavoriteCookie(favoriteArray);
	} else {
		var newArray = new Array();
		var counter = 0;
		for (i=0; i<favoriteArray.length; i++) {
			if (favoriteArray[i] != tid) {
				newArray[counter] = favoriteArray[i];
				counter++;
			}
		}
		favoriteArray = newArray;
		SaveFavoriteCookie(favoriteArray);
	}
}
function IsFavorite(tid) { 
	var favorite = false;
	for (i=0; i<favoriteArray.length; i++) {
		if (favoriteArray[i] == tid) 
		favorite = true;
		break;
	}
	return favorite;
}

function SaveFavoriteCookie(favoriteArray) {
	var rawCookieValue = "";
	for (i=0; i<favoriteArray.length; i++) {
		if (i!=0)
			rawCookieValue += '#';
		rawCookieValue += favoriteArray[i];
	}
	SetCookieParam(FAVORITE_COOKIE_NAME, FAVORITE_COOKIE_NAME, rawCookieValue);
}

function LoadFavoriteCookie() {
	var returnArray = new Array();
	var rawCookieValue = GetCookieParamValue(FAVORITE_COOKIE_NAME, FAVORITE_COOKIE_NAME);
	if (rawCookieValue != null && rawCookieValue != "") {
		returnArray = rawCookieValue.split('#');
		for (i=0; i<returnArray.length; i++) {
			ChangeFavoriteDisplay(returnArray[i], "add", false);
		}	
	}
	return returnArray;
}

