/**
 *  @param name:  		name of the cookie
 *  @param value: 		value of the cookie
 *  @param [expires]: 	expiration date of the cookie (defaults to end of current session)
 *  @param [path]: 		path for which the cookie is valid (defaults to path of calling document)
 *  @param [domain]: 	domain for which the cookie is valid (defaults to domain of calling document)
 *  @param [secure]: 	Boolean value indicating if the cookie transmission requires a secure transmission
 */
function setCookie (name, value, expires, path, domain, secure)
{
	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");

	document.cookie = curCookie;
}

/**
 * @param name: name of the desired cookie
 * @return string containing value of specified cookie or null if cookie does not exist
 */
function getCookie (name) 
{
	var dc 		= document.cookie;
	var prefix 	= name + "=";
	var begin 	= dc.indexOf("; " + prefix);

	if (begin == -1) 
	{
		begin = dc.indexOf(prefix);

		if (begin != 0)
		{
			return null;
		}
	} 
	else
	{
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);

	if (end == -1)
	{
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}

/**
 *  @param name: 		name of the cookie
 *  @param [path]: 		path of the cookie (must be same as path used to create cookie)
 *  @param [domain]: 	domain of the cookie (must be same as domain used to create cookie)
 */
function deleteCookie (name, path, domain) 
{
	if (getCookie(name)) 
	{
		document.cookie = name + "=" +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}
