/* requires prototype.js */ var Cookie = { /* * Options: * - expires: number of days from now * - path: request path, defaults to '/' * - domain: domain name * - secure: true or false */ set: function(name, value) { var options = Object.extend($H({ path: '/' }), arguments[2] || {}); var cookie = escape(name) + '=' + escape(value || ''); if(options.expires == false) { cookie += '; expires=' + new Date(2038, 0, 17, 19, 14, 07).toGMTString(); } else if(options.expires) { var d = new Date(); d.setTime(d.getTime() + (86400000 * parseFloat(options.expires))); cookie += '; expires=' + d.toGMTString(); } if(options.path) cookie += '; path=' + options.path; if(options.domain) cookie += '; domain=' + options.domain; if(options.secure) cookie += '; secure'; return (document.cookie = cookie); }, get: function(name) { var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)')); return (cookie ? unescape(cookie[2]) : null); }, all: function() { return document.cookie.split(/\s*;\s*/).collect(function(cookie) { return cookie.split('=')[0] }); }, erase: function(name) { var cookie = Cookie.get(name) || true; Cookie.set(name, '', {expires: -1}); return cookie; }, accept: function() { if (typeof navigator.cookieEnabled == 'boolean') { return navigator.cookieEnabled; } Cookie.set('_test', '1'); return (Cookie.erase('_test') === '1'); } };