var target;

var callbackFunc = favoriteToggle;

var changeFavoriteClass = true;

//optionTextToggle is used to change the innerHTML on the forum page

function favoriteContent(xrefID, type, user_id, action, el, optionTextToggle, classChange)
{
	target = el;

	if (action == 'add') {
		revAction = 'remove';
	} else {
		revAction = 'add';
	}
	
	if (!type) {
		type == 'content';
	}
	
	el.onclick = function () {
		favoriteContent(xrefID, type, user_id, revAction, el, optionTextToggle);
	};
	
	//Initialize the array
	var params = new Array();

	params['responseFunction'] = callbackFunc;
	
	if (optionTextToggle) {
		params['responseFunction'] = textToggle;
	} 
	
	if (classChange != null) {
		changeFavoriteClass = classChange;
	}
	
	params['action'] = action + 'Favorite';
	params['responseFormat'] = 'json';
	params['responseType'] = 'JSON';        
	params['handlerName'] = 'svcFavorites';
	params['requestType'] = 'service';    
	params['xrefID'] = xrefID; 
	params['type'] = type; 
	params['userID'] = user_id;
	params['includeStatus'] = 1;

	//make a OneAjax request
	OneAjax.request(params);
}

function textToggle(o)
{
	if (o['code'] != 1) {
		return false;
	}
	
	var trimmedHTML = target.innerHTML.replace(/^\s+|\s+$/g, '') ;
	if (target.innerHTML.match(/Add Favorite/)) {
		target.innerHTML = "<span>Remove Favorite</span>";
	} else {
		target.innerHTML = "<span>Add Favorite</span>";
	}
	
	favoriteToggle(o);
}

function favoriteToggle(o)
{
	
	if (o['code'] != 1) {
		return false;
	}
	
	toggleFavoritesDiv();
}


function toggleFavoritesDiv()
{
	if (!target || ! changeFavoriteClass) {
		return false;
	}
	
	if (target.className == 'favorite') {
		target.className = 'not-favorite';
	} else {
		target.className = 'favorite';
	}
	
}

function removeElement(elName)
{
	var element = document.getElementById(elName);
	var par = element.parentNode;
	
	par.removeChild(element);
}

function showFavoriteTooltip(el)
{
	document.getElementById(el).style.display = 'block';	
}

function hideFavoriteTooltip(el)
{
	document.getElementById(el).style.display = 'none';
}