1/*! 2 * jQuery Cookie Plugin v1.3 3 * https://github.com/carhartl/jquery-cookie 4 * 5 * Copyright 2011, Klaus Hartl 6 * Dual licensed under the MIT or GPL Version 2 licenses. 7 * http://www.opensource.org/licenses/mit-license.php 8 * http://www.opensource.org/licenses/GPL-2.0 9 */ 10(function ($, document, undefined) { 11 12 var pluses = /\+/g; 13 14 function raw(s) { 15 return s; 16 } 17 18 function decoded(s) { 19 return decodeURIComponent(s.replace(pluses, ' ')); 20 } 21 22 var config = $.cookie = function (key, value, options) { 23 24 // write 25 if (value !== undefined) { 26 options = $.extend({}, config.defaults, options); 27 28 if (value === null) { 29 options.expires = -1; 30 } 31 32 if (typeof options.expires === 'number') { 33 var days = options.expires, t = options.expires = new Date(); 34 t.setDate(t.getDate() + days); 35 } 36 37 value = config.json ? JSON.stringify(value) : String(value); 38 39 return (document.cookie = [ 40 encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value), 41 options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 42 options.path ? '; path=' + options.path : '', 43 options.domain ? '; domain=' + options.domain : '', 44 options.secure ? '; secure' : '' 45 ].join('')); 46 } 47 48 // read 49 var decode = config.raw ? raw : decoded; 50 var cookies = document.cookie.split('; '); 51 for (var i = 0, l = cookies.length; i < l; i++) { 52 var parts = cookies[i].split('='); 53 if (decode(parts.shift()) === key) { 54 var cookie = decode(parts.join('=')); 55 return config.json ? JSON.parse(cookie) : cookie; 56 } 57 } 58 59 return null; 60 }; 61 62 config.defaults = {}; 63 64 $.removeCookie = function (key, options) { 65 if ($.cookie(key) !== null) { 66 $.cookie(key, null, options); 67 return true; 68 } 69 return false; 70 }; 71 72})(jQuery, document); 73