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 | })); |