github.com/dougm/docker@v1.5.0/docs/theme/mkdocs/js/jquery.cookie.js (about) 1 /*! 2 * jQuery Cookie Plugin v1.3.1 3 * https://github.com/carhartl/jquery-cookie 4 * 5 * Copyright 2013 Klaus Hartl 6 * Released under the MIT license 7 */ 8 (function ($, document, undefined) { 9 10 var pluses = /\+/g; 11 12 function raw(s) { 13 return s; 14 } 15 16 function decoded(s) { 17 return unRfc2068(decodeURIComponent(s.replace(pluses, ' '))); 18 } 19 20 function unRfc2068(value) { 21 if (value.indexOf('"') === 0) { 22 // This is a quoted cookie as according to RFC2068, unescape 23 value = value.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); 24 } 25 return value; 26 } 27 28 function fromJSON(value) { 29 return config.json ? JSON.parse(value) : value; 30 } 31 32 var config = $.cookie = function (key, value, options) { 33 34 // write 35 if (value !== undefined) { 36 options = $.extend({}, config.defaults, options); 37 38 if (value === null) { 39 options.expires = -1; 40 } 41 42 if (typeof options.expires === 'number') { 43 var days = options.expires, t = options.expires = new Date(); 44 t.setDate(t.getDate() + days); 45 } 46 47 value = config.json ? JSON.stringify(value) : String(value); 48 49 return (document.cookie = [ 50 encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value), 51 options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 52 options.path ? '; path=' + options.path : '', 53 options.domain ? '; domain=' + options.domain : '', 54 options.secure ? '; secure' : '' 55 ].join('')); 56 } 57 58 // read 59 var decode = config.raw ? raw : decoded; 60 var cookies = document.cookie.split('; '); 61 var result = key ? null : {}; 62 for (var i = 0, l = cookies.length; i < l; i++) { 63 var parts = cookies[i].split('='); 64 var name = decode(parts.shift()); 65 var cookie = decode(parts.join('=')); 66 67 if (key && key === name) { 68 result = fromJSON(cookie); 69 break; 70 } 71 72 if (!key) { 73 result[name] = fromJSON(cookie); 74 } 75 } 76 77 return result; 78 }; 79 80 config.defaults = {}; 81 82 $.removeCookie = function (key, options) { 83 if ($.cookie(key) !== null) { 84 $.cookie(key, null, options); 85 return true; 86 } 87 return false; 88 }; 89 90 })(jQuery, document);