src/cm/media/js/lib/yui/yui3.0.0/as-api/cookies.js
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
////////////////////////////////////////////////////////////////////////////////
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
//
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
//  ADOBE SYSTEMS INCORPORATED
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
//  Copyright 2006-2007 Adobe Systems Incorporated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
//  All Rights Reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
//
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
//  NOTICE: Adobe permits you to use, modify, and distribute this file
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
//  in accordance with the terms of the license agreement accompanying it.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
//
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
////////////////////////////////////////////////////////////////////////////////
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 * Read the JavaScript cookies tutorial at:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 *   http://www.netspade.com/articles/javascript/cookies.xml
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
 * Sets a Cookie with the given name and value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
 * name       Name of the cookie
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
 * value      Value of the cookie
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
 * [expires]  Expiration date of the cookie (default: end of current session)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
 * [path]     Path where the cookie is valid (default: path of calling document)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
 * [domain]   Domain where the cookie is valid
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
 *              (default: domain of calling document)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
 * [secure]   Boolean value indicating if the cookie transmission requires a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
 *              secure transmission
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
function setCookie(name, value, expires, path, domain, secure)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
    document.cookie= name + "=" + escape(value) +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
        ((path) ? "; path=" + path : "") +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
        ((domain) ? "; domain=" + domain : "") +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        ((secure) ? "; secure" : "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
 * Gets the value of the specified cookie.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
 * name  Name of the desired cookie.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
 * Returns a string containing value of specified cookie,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
 *   or null if cookie does not exist.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
function getCookie(name)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
    var dc = document.cookie;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
    var prefix = name + "=";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
    var begin = dc.indexOf("; " + prefix);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
    if (begin == -1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
    {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
        begin = dc.indexOf(prefix);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
        if (begin != 0) return null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
    else
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
    {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
        begin += 2;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    var end = document.cookie.indexOf(";", begin);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    if (end == -1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
        end = dc.length;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
    return unescape(dc.substring(begin + prefix.length, end));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
 * Deletes the specified cookie.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
 * name      name of the cookie
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
 * [path]    path of the cookie (must be same as path used to create cookie)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
 * [domain]  domain of the cookie (must be same as domain used to create cookie)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
function deleteCookie(name, path, domain)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
    if (getCookie(name))
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
    {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
        document.cookie = name + "=" + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
            ((path) ? "; path=" + path : "") +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
            ((domain) ? "; domain=" + domain : "") +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
}