function CCookie(exp)
{
    this.ethalon_expires = 31536000; //seconds, 1 year, 365 days
    this.default_expires = exp ? parseInt(exp*86400) : this.ethalon_expires;

    /**
     * Получить значение куки с заданным именем
     * @param {String} name
     * @return {String}
     */
    this.get = function(name)
    {
        var cookie = ' ' + document.cookie;
        var cname = ' ' + name + '=';
        var from  = cookie.indexOf(cname);
        if ( from != -1 )
        {
            from += cname.length;
            to    = cookie.indexOf(';', from );
            if ( to == -1 )
                to = cookie.length;
            return unescape( cookie.substring(from, to) );
        }
        return null;
    };

    /**
     * Установить куки с заданными параметрами
     *
     * @param {Object} name ключ
     * @param {Object} data значение
     * @param {Object} path путь для установки
     * @param {Object} domain домен
     * @param {Object} expires время жизни
     * @param {Object} secure флаг безопасности
     */
    this.set = function(name, data, path, domain, expires, secure)
    {
        if (!expires)
        {
            expires = new Date();
            expires.setTime( expires.getTime() + this.default_expires*1000);
        }
        document.cookie = name + "=" + escape(data)
            + ((expires == null) ? "" : "; expires=" + expires.toGMTString())
            + ((path == null)    ? "" : "; path=" + path)
            + ((domain == null)  ? "" : "; domain=" + domain)
            + ((secure == null)  ? "" : "; secure");
    };

    /**
     * Удалить куку. Внимание, удаление происходит при правильном повторении пути и домена
     * с которыми кука была установлена!
     *
     * @param {Object} name ключ
     * @param {Object} path путь
     * @param {Object} domain домен
     */
    this.remove = function(name, path, domain)
    {
        if (this.get(name))
        {
            document.cookie = name + "=" + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain) + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
        }
    };

    /**
     * Установить дефлтное время жизни кук.
     *
     * @param {Object} days дни жизни
     */
    this.setDefaultExpires = function(days)
    {
    	 this.default_expires = days ? parseInt(days*86400) : this.ethalon_expires;
    };
};