function Cookies() {}

Cookies.getValueFromOffset = function (offset) {
    var end = document.cookie.indexOf (';', offset);
    
    if (end == -1) {
        end = document.cookie.length;
    }
    
    return unescape(document.cookie.substring(offset, end));
}


Cookies.has = function (name) {
    var nameEQ = name + '=';
    
    var ca = document.cookie.split(';');
    var i = 0;
    var c = '';
    
    for(i = 0; i < ca.length; i++) {
        c = ca[i];
        
        while (c.charAt(0) == ' ') {
            c = c.substring(1,c.length);
        }
        
        if (c.indexOf(nameEQ) == 0) {
            return true;
        }
        
    }
    
    return false;
}

Cookies.read = function (name) {
    var nameEQ = name + '=';
    
    var ca = document.cookie.split(';');
    var i = 0;
    var c = '';
    
    for(i = 0; i < ca.length; i++) {
        c = ca[i];
        
        while (c.charAt(0) == ' ') {
            c = c.substring(1,c.length);
        }
        
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
        
    }
    
    return null;
}


Cookies.create = function (name, value) {
    var expires = arguments[2] || null;
    var path    = arguments[3] || null;
    var domain  = arguments[4] || null;
    var secure  = arguments[5] || false;
    
    var toSave = name + '=' + escape (value)
        + ((expires == null) ? '' : ('; expires=' + expires.toGMTString()))
        + ((path == null) ? '' : ('; path=' + path))
        + ((domain == null) ? '' : ('; domain=' + domain))
        + ((secure == false) ? '' : '; secure');
    
    document.cookie = toSave;
}


Cookies.remove = function (name) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    
    document.cookie = name
        + '=' + Cookies.read(name)
        + '; expires=' + exp.toGMTString();
}


