	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;
	}
	
	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));
	}

	// For testing
	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";
		}
	}

	var qs = location.search.substring(1);
	var nv = qs.split('&');
	var url = new Object();
	for(i = 0; i < nv.length; i++)
	{
		eq = nv[i].indexOf('=');
		url[nv[i].substring(0,eq).toLowerCase()] = unescape(nv[i].substring(eq + 1));
	}
	
	if (url.info) 
	{
		var now = new Date();
		now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); 
		setCookie("info", url.info, now, '/');
	}
	else
	{
		var info = getCookie("info");
		if (!info)
		{
			var now = new Date();
			now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); 
			setCookie("info", "No code", now, '/');
		}
	}
	
	// For testing
	if (url.reset) 
	{
		deleteCookie("info");
	}

// If from an external site, store the referrer in a cookie that lasts 2 hours.
var referrer = top.document.referrer;
if (referrer == "") referrer = "joshfreedman.com";
if (referrer.indexOf("joshfreedman.com") != -1) {
	;
} else {
	var now = new Date();
	now.setTime(now.getTime() + 2 * 60 * 60 * 1000); 
	setCookie("referrer",top.document.referrer, now, '/');
};
