

////////////////////////////////////////////////////////////
//
//  class CPsCookieMgr
//
//  manages cookies for js code
//



var CPsCookieMgr =
{

    set:    function(name, value, expires, path, domain, secure)
            {
                // set time, it's in milliseconds
                var now = new Date();

                //
                //  if the expires variable is set, make the correct 
                //  expires time, the current script below will set 
                //  it for x number of days, to make it for hours, 
                //  delete * 24, for minutes, delete * 60 * 24

                expires = (expires || 1) * 1000 * 60 * 60 * 24;
                var expires_date = new Date(now.getTime() + expires);

                var szCookie = name + "=" +
                                    escape(value) +
                                    (expires ? ";expires=" + expires_date.toGMTString() : "") + 
                                    ";path=" + (path || '/') +
                                    (domain ? ";domain=" + domain : "") +
                                    (secure ? ";secure" : "");

                document.cookie = szCookie;
            },

    setDomain:  function(name, value, expires)
                {
                    CPsCookieMgr.set(name, value, expires, '/', CPsSystem.MAIN_DOMAIN_COOKIES);
                },

    get:    function(name)
            {
                // first we'll split this cookie up into name/value pairs
                // note: document.cookie only returns name=value, not the other components
                var a_all_cookies = document.cookie.split( ';' );
                var a_temp_cookie = '';
                var cookie_name = '';
                var cookie_value = '';
                var b_cookie_found = false; // set boolean t/f default f
                
                for ( i = 0; i < a_all_cookies.length; i++ )
                {
                    // now we'll split apart each name=value pair
                    a_temp_cookie = a_all_cookies[i].split( '=' );
                    
                    
                    // and trim left/right whitespace while we're at it
                    cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
                
                    // if the extracted name matches passed check_name
                    if ( cookie_name == name )
                    {
                        // we need to handle case where cookie has no value but exists (no = sign, that is):
                        if ( a_temp_cookie.length > 1 )
                        {
                            cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
                        }
                        // note that in cases where cookie is initialized but no value, null is returned
                        return cookie_value;
                    }
                    a_temp_cookie = null;
                    cookie_name = '';
                }

                return null;
            },

    del:    function(name, path, domain)
            {
                if (CPsCookieMgr.get(name))
                {
                    document.cookie = name + "=" +
                                        (path ? ";path=" + path : "") +
                                        (domain ? ";domain=" + domain : "") +
                                        ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
                }
            },

    delDomain:  function(name)
                {
                    CPsCookieMgr.del(name, '/', CPsSystem.MAIN_DOMAIN_COOKIES);
                }

};
