client/player/development-bundle/external/jquery.cookie.js
author hurons
Wed, 09 Jun 2010 16:48:35 +0200
changeset 1 436d4791d7ac
permissions -rw-r--r--
premier version du player test de commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     1
/*jslint browser: true */ /*global jQuery: true */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     2
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     3
/**
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     4
 * jQuery Cookie plugin
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     5
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     6
 * Copyright (c) 2010 Klaus Hartl (stilbuero.de)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     7
 * Dual licensed under the MIT and GPL licenses:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     8
 * http://www.opensource.org/licenses/mit-license.php
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     9
 * http://www.gnu.org/licenses/gpl.html
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    10
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    11
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    12
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    13
// TODO JsDoc
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    14
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    15
/**
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    16
 * Create a cookie with the given key and value and other optional parameters.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    17
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    18
 * @example $.cookie('the_cookie', 'the_value');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    19
 * @desc Set the value of a cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    20
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    21
 * @desc Create a cookie with all available options.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    22
 * @example $.cookie('the_cookie', 'the_value');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    23
 * @desc Create a session cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    24
 * @example $.cookie('the_cookie', null);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    25
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    26
 *       used when the cookie was set.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    27
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    28
 * @param String key The key of the cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    29
 * @param String value The value of the cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    30
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    31
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    32
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    33
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    34
 *                             when the the browser exits.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    35
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    36
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    37
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    38
 *                        require a secure protocol (like HTTPS).
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    39
 * @type undefined
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    40
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    41
 * @name $.cookie
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    42
 * @cat Plugins/Cookie
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    43
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    44
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    45
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    46
/**
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    47
 * Get the value of a cookie with the given key.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    48
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    49
 * @example $.cookie('the_cookie');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    50
 * @desc Get the value of a cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    51
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    52
 * @param String key The key of the cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    53
 * @return The value of the cookie.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    54
 * @type String
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    55
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    56
 * @name $.cookie
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    57
 * @cat Plugins/Cookie
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    58
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    59
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    60
jQuery.cookie = function (key, value, options) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    61
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    62
    // key and value given, set cookie...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    63
    if (arguments.length > 1 && (value === null || typeof value !== "object")) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    64
        options = jQuery.extend({}, options);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    65
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    66
        if (value === null) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    67
            options.expires = -1;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    68
        }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    69
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    70
        if (typeof options.expires === 'number') {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    71
            var days = options.expires, t = options.expires = new Date();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    72
            t.setDate(t.getDate() + days);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    73
        }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    74
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    75
        return (document.cookie = [
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    76
            encodeURIComponent(key), '=',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    77
            options.raw ? String(value) : encodeURIComponent(String(value)),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    78
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    79
            options.path ? '; path=' + options.path : '',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    80
            options.domain ? '; domain=' + options.domain : '',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    81
            options.secure ? '; secure' : ''
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    82
        ].join(''));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    83
    }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    84
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    85
    // key and possibly options given, get cookie...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    86
    options = value || {};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    87
    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    88
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    89
};