Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / static / im / js / jquery.cookie.js @ 7763f5c6

History | View | Annotate | Download (2.3 kB)

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