/*! * cookies.js - 0.4.0 * * copyright (c) 2014, scott hamper * licensed under the mit license, * http://www.opensource.org/licenses/mit */ !function(e){"use strict";var t=function(e,n,o){return 1===arguments.length?t.get(e):t.set(e,n,o)};t._document=document,t._navigator=navigator,t.defaults={path:"/"},t.get=function(e){return t._cacheddocumentcookie!==t._document.cookie&&t._renewcache(),t._cache[e]},t.set=function(n,o,r){return r=t._getextendedoptions(r),r.expires=t._getexpiresdate(o===e?-1:r.expires),t._document.cookie=t._generatecookiestring(n,o,r),t},t.expire=function(n,o){return t.set(n,e,o)},t._getextendedoptions=function(n){return{path:n&&n.path||t.defaults.path,domain:n&&n.domain||t.defaults.domain,expires:n&&n.expires||t.defaults.expires,secure:n&&n.secure!==e?n.secure:t.defaults.secure}},t._isvaliddate=function(e){return"[object date]"===object.prototype.tostring.call(e)&&!isnan(e.gettime())},t._getexpiresdate=function(e,n){switch(n=n||new date,typeof e){case"number":e=new date(n.gettime()+1e3*e);break;case"string":e=new date(e)}if(e&&!t._isvaliddate(e))throw new error("`expires` parameter cannot be converted to a valid date instance");return e},t._generatecookiestring=function(e,t,n){e=e.replace(/[^#$&+\^`|]/g,encodeuricomponent),e=e.replace(/\(/g,"%28").replace(/\)/g,"%29"),t=(t+"").replace(/[^!#$&-+\--:<-\[\]-~]/g,encodeuricomponent),n=n||{};var o=e+"="+t;return o+=n.path?";path="+n.path:"",o+=n.domain?";domain="+n.domain:"",o+=n.expires?";expires="+n.expires.toutcstring():"",o+=n.secure?";secure":""},t._getcookieobjectfromstring=function(n){for(var o={},r=n?n.split("; "):[],i=0;it?e.length:t,{key:decodeuricomponent(e.substr(0,t)),value:decodeuricomponent(e.substr(t+1))}},t._renewcache=function(){t._cache=t._getcookieobjectfromstring(t._document.cookie),t._cacheddocumentcookie=t._document.cookie},t._areenabled=function(){var e="cookies.js",n="1"===t.set(e,1).get(e);return t.expire(e),n},t.enabled=t._areenabled(),"function"==typeof define&&define.amd?define(function(){return t}):"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=t),exports.cookies=t):window.cookies=t}();