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