// Copyright 2008 Subsume Technologies, Inc.

function UpdateCookieListItems(cookieID)
{
	var itemCookie = getCookie(cookieID);
	var items = itemCookie ? unescape(itemCookie).split(",") : [];
	var theList = document.getElementById(cookieID);
	var baseItem = document.createElement("li");
	
	//baseItem.setAttribute("class", itemClass);
	
	// Out with the old.
	while (theList.hasChildNodes())
	{
		theList.removeChild(theList.lastChild);
	}

	// In with the new.
	for (var itemIndex in items)
	{
		var newItem = baseItem.cloneNode(true);
		
		newItem.textContent = items[itemIndex];
		theList.appendChild(newItem);
	}
}

function AddCookieListItem(cookieID, newItem)
{
	var itemCookie = getCookie(cookieID);
	var items = itemCookie ? unescape(itemCookie).split(",") : [];
	
	items.unshift(newItem);
	setCookie(cookieID, escape(items.toString()), 365);
	UpdateCookieListItems(cookieID);
	DeleteCookieListItem(cookieID, '');	// Easier than a comma check.
}

function DeleteCookieListItem(cookieID, oldItem)
{
	var itemCookie = getCookie(cookieID);
	var items = itemCookie ? unescape(itemCookie).split(",") : [];
	
	// It'd be nice if Safari had more functional arrays.
	for (var itemIndex in items)
	{
		if (items[itemIndex] == oldItem)
		{
			items.splice(itemIndex, 1);
			break;
		}
	}
	setCookie(cookieID, escape(items.toString()), 365);
	UpdateCookieListItems(cookieID);
}

function ClickedCookieListItem(e)
{
	if (e.target.nodeName.toLowerCase() == "li")
	{
		DeleteCookieListItem(e.target.parentNode.id, e.target.innerHTML);
	}
}
