/** * Cookie plugin * * Copyright (c) 2006 Klaus Hartl (stilbuero.de) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * *//** * Create a cookie with the given name and value and other optional parameters. * * @example $.cookie('the_cookie', 'the_value'); * @desc Set the value of a cookie. * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'http://disabilitycompendium.org/iodfontsizer/jquery.com', secure: true }); * @desc Create a cookie with all available options. * @example $.cookie('the_cookie', 'the_value'); * @desc Create a session cookie. * @example $.cookie('the_cookie', null); * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain *       used when the cookie was set. * * @param String name The name of the cookie. * @param String value The value of the cookie. * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted. *                             If set to null or omitted, the cookie will be a session cookie and will not be retained *                             when the the browser exits. * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will *                        require a secure protocol (like HTTPS). * @type undefined * * @name $.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de *//** * Get the value of a cookie with the given name. * * @example $.cookie('the_cookie'); * @desc Get the value of a cookie. * * @param String name The name of the cookie. * @return The value of the cookie. * @type String * * @name $.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de */(function ($, document) {    $.cookie = function (key, value, options) {        // key and at least value given, set cookie...        if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value == null)) {            options = $.extend({}, $.cookie.defaults, options);            if (value == null) {                options.expires = -1;            }            if (typeof options.expires === 'number') {                var days = options.expires, t = options.expires = new Date();                t.setDate(t.getDate() + days);            }            value = String(value);            return (document.cookie = [				encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE				options.path ? '; path=' + options.path : '',				options.domain ? '; domain=' + options.domain : '',				options.secure ? '; secure' : ''			].join(''));        }        // key and possibly options given, get cookie...        options = value || $.cookie.defaults || {};        var decode = options.raw ? function (s) { return s; } : decodeURIComponent;        var cookies = document.cookie.split('; ');        for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) {            if (decode(parts.shift()) === key) {                return decode(parts.join('='));            }        }        return null;    };    $.cookie.defaults = {};})(jQuery, document);