MAX_COOKIE_SIZE = 4096 * 3 / 4

function setCookie(name, value, expires, path, domain, secure) {
    var val = escape(value);
    if (document.cookie.length + val.length > MAX_COOKIE_SIZE) {
	throw new MochiKit.Base.NamedError("MochiKit.Cookies.NoMemory")
    }
    document.cookie= name + "=" + val +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

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