Language patch pt-br for login.txt
[dokuwiki.git] / lib / scripts / cookie.js
blobe260e5919bd263feadc3f74cbe7f9b50c1095170
1 /**
2 * Handles the cookie used by several JavaScript functions
4 * Only a single cookie is written and read. You may only save
5 * simple name-value pairs - no complex types!
7 * You should only use the getValue and setValue methods
9 * @author Andreas Gohr <andi@splitbrain.org>
10 * @author Michal Rezler <m.rezler@centrum.cz>
12 var DokuCookie = {
13     data: {},
14     name: 'DOKU_PREFS',
16     /**
17      * Save a value to the cookie
18      *
19      * @author Andreas Gohr <andi@splitbrain.org>
20      */
21     setValue: function(key,val){
22         var text = [],
23             _this = this;
24         this.init();
25         if (val === false){
26             delete this.data[key];
27         }else{
28             val = val + "";
29             this.data[key] = val;
30         }
33         //save the whole data array
34         jQuery.each(_this.data, function (key, val) {
35             if (_this.data.hasOwnProperty(key)) {
36                 text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val));
37             }
38         });
39         jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIE_PARAM.path, secure: DOKU_COOKIE_PARAM.secure});
40     },
42     /**
43      * Get a Value from the Cookie
44      *
45      * @author Andreas Gohr <andi@splitbrain.org>
46      * @param def default value if key does not exist; if not set, returns undefined by default
47      */
48     getValue: function(key, def){
49         this.init();
50         return this.data.hasOwnProperty(key) ? this.data[key] : def;
51     },
53     /**
54      * Loads the current set cookie
55      *
56      * @author Andreas Gohr <andi@splitbrain.org>
57      */
58     init: function(){
59         var text, parts, i;
60         if(!jQuery.isEmptyObject(this.data)) {
61             return;
62         }
63         text = jQuery.cookie(this.name);
64         if(text){
65             parts = text.split('#');
66             for(i = 0; i < parts.length; i += 2){
67                 this.data[decodeURIComponent(parts[i])] = decodeURIComponent(parts[i+1]);
68             }
69         }
70     }