//// namespace
var CBSi = (typeof CBSi == 'undefined' || !CBSi) ? {} : CBSi;
CBSi.util = (typeof CBSi.util == 'undefined' || !CBSi.util) ? {} : CBSi.util;
CBSi.util.CookieJar = (typeof CBSi.util.CookieJar == 'undefined' || !CBSi.util.CookieJar) ? {} : CBSi.util.CookieJar;

/*******************************************************
* CookieJar
*
* createCookie - create a cookie
*   PARAMS:
*       name: cookie name
*       value: value to set
*       days: how many days to keep
*
*   RETURNS:
*       boolean
*
* readCookie - read a cookie
*   PARAMS:
*       name: cookie name
*
*   RETURNS:
*       cookie value
*
* eraseCookie - delete a cookie
*   PARAMS:
*       name: cookie name
*
*   RETURNS:
*       boolean
*
******************************************************/

CBSi.util.CookieJar = {
    createCookie : function(name,value,days) {
        try {
            if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
            }
            else var expires = "";
            document.cookie = name+"="+value+expires+"; path=/";
        }
        catch (ex) {
            return false;
        }
        return true;
    },
    readCookie : function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var 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;
    },
    eraseCookie : function(name) {
        try {
            this.createCookie(name,"",-1);
        }
        catch (ex) {
            return false;
        }
        return true;
    }
};
