/**
 * Simple singleton object for handling cookies.
 */
var Cookies = {
    
    // Seconds in a single day.
    ONE_DAY: 86400,

    // Returns the value of the specified cookie, or null if it's not defined.
    get: function (name) {
        var re = new RegExp(name + "=([^;]*)");
        var a = re.exec(document.cookie);
        return (a != null) ? unescape(a[1]) : null;
    },
    
    // Sets the value of the specified cookie.
    set: function (name, value, maxAgeSecs, domain, path, secure) {
        var c = name + "=" + escape(value);
        if (maxAgeSecs)
            c += "; expires=" + new Date(
                new Date().getTime() + maxAgeSecs * 1000 ).toGMTString();
        if (domain)
            c += "; domain=" + domain;
        if (path)
            c += "; path=" + path;
        if (secure)
            c += "; secure";
        document.cookie = c;
    },
    
    // Deletes the specified cookie (by setting it to expire immediately).
    clear: function (name, domain, path) {
        var c = name + "=";
        if (domain)
            c += "; domain=" + domain;
        if (path)
            c += "; path=" + path;
        c += "; expires=" + new Date().toGMTString();
        document.cookie = c;
    }
}
