var cookieMagic = new String("");
var cookiesInit = new String("");
var Cookies = new Array();

function setCookie (name, value, properties)
{
	var cVal = value ? escape(value) : true;
	name = cookieMagic + name;

	/*
	** We don't set Cookies[name] = cVal here any more, in case
	** the luser denies permission for the cookie to set. We do
	** initCookies() instead.
	*/

	document.cookie = name + '=' + cVal
		+ (properties ? "; " + properties : "");

	initCookies();
}

function unsetCookie (name)
{
	setCookie(name, "DELETED", "expires=Fri, 02-Jan-1970 00:00:00 GMT");
}

function initCookies ()
{
	var allCookies = new String();

	if ((allCookies = document.cookie) == cookiesInit)
	{
		/*
		** No change since last run
		*/
		return false;
	}

	c = allCookies.split("; ");

	for (var i = 0; i != c.length; i++)
	{
		var ac = c[i].split("=");
		var v;

		if (! ac[1])
		{
			v = true;
		}
		else
		{
			var sc;

			v = ac[1].substr(0, (sc = ac[1].indexOf(";")) != -1
				? sc : ac[1].length);

			/*
			** One of ours?
			*/
			if ((!cookieMagic)
				|| ac[0].substr(0, cookieMagic.length) == cookieMagic)
			{
				v = unescape(v);
				ac[0] = ac[0].substr(cookieMagic.length);
			}
		}

		Cookies[ac[0]] = v;
	}

	cookiesInit = allCookies;

	return true;
}

function getCookie (name)
{
	initCookies();
	return Cookies[name] || Cookies[cookieMagic + name] || null;
}
