/**
 * @class CookiesUtil
 * @singleton
 */
CookiesUtil = function(){

    var getCookieVal = function(offset){
        var endstr = document.cookie.indexOf(";", offset);
        if (endstr == -1) {
            endstr = document.cookie.length;
        }
        return unescape(document.cookie.substring(offset, endstr));
    };
    
    return {
        set: function(name, value, days){
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
            document.cookie = name + "=" + escape(value) + "; expires=" + date.toGMTString() + "; path=/";
        },
        
        get: function(name){
            var arg = name + "=";
            var alen = arg.length;
            var clen = document.cookie.length;
            var i = 0;
            var j = 0;
            while (i < clen) {
                j = i + alen;
                if (document.cookie.substring(i, j) == arg) {
                    return getCookieVal(j);
                }
                i = document.cookie.indexOf(" ", i) + 1;
                if (i === 0) {
                    break;
                }
            }
            return null;
        },
        
        clear: function(name){
            if (this.get(name)) {
                document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
            }
        }
    };

}();
