	function getCookieVal(offset)	{
		var endstr = document.cookie.indexOf (";", offset);
		if (endstr == -1)	{
			endstr = document.cookie.length;
		}
		return unescape(document.cookie.substring(offset, endstr));
	}		
	function FixCookieDate(date) {
		var base = new Date(0);
		var skew = base.getTime(); // dawn of (Unix) time - should be 0
		if (skew > 0)  {// Except on the Mac - ahead of its time
			date.setTime (date.getTime() - skew);
		}
	}
	function GetCookie(name) {
		var arg = name + "=";
		var alen = arg.length;
		var clen = document.cookie.length;
		var i = 0;
		while (i < clen) {
			var j = i + alen;
			if (document.cookie.substring(i, j) == arg)
				return getCookieVal(j);
			i = document.cookie.indexOf(" ", i) + 1;
			if (i == 0) {
				break;
			}
		}
		return "";
	}
	function SetCookie(name,value,expires,path,domain,secure) {
		var strValue = value;
		document.cookie = name + "=" + strValue +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	}	
	var g_CookieExpDate = new Date();
	FixCookieDate(g_CookieExpDate); // Correct for Mac date bug - call only once for given Date object!
	g_CookieExpDate.setTime(g_CookieExpDate.getTime() + (24 * 60 * 60 * 1000 * 365)); // 1 year from now