define([],function(){var e,t,n=[".json",".string",".number",".function",".boolean"],r="",i=function(e,t){for(var n in t)t[n]&&t[n].constructor&&t[n].constructor===Object?(e[n]=e[n]||{},arguments.callee(e[n],t[n])):e[n]=t[n];return e},o=function(){var e=navigator.cookieEnabled?!0:!1;return"undefined"!=typeof navigator.cookieEnabled||e||(document.cookie="testcookie",e=-1!=document.cookie.indexOf("testcookie")?!0:!1),e?!0:!1},a=function(){for(var e=document.cookie.split(";"),t="",n=1;n<=e.length;n++)t+=n+" "+e[n-1]+"\n";return t},s={useSession:function(t){e=t?window.sessionStorage:window.localStorage},useMemory:function(n){n&&!t?(t=e,e={_data:{},setItem:function(e,t){return this._data[e]=String(t)},getItem:function(e){return e in this._data?this._data[e]:void 0},removeItem:function(e){return delete this._data[e]},clear:function(){return this._data={}}}):(e=t,t=!1)},events:[],on:function(e,t,n){this.events[e]||(this.events[e]=[]),n?this.events[e][n+"-key"]=t:this.events[e].push(t)},off:function(e,t){t?this.events[e][t+"-key"]&&delete this.events[e][t+"-key"]:delete this.events[e]},trigger:function(e){if(this.events[e]){var t=arguments;for(var n in this.events[e]){var r=this.events[e][n].apply(this,t);if(this.events[e][n].prototype.once&&delete this.events[e][n],void 0!==r&&r===!1)break}}},one:function(e,t){this.on(e,t),this.events[e][this.events[e].length-1].prototype.once=!0},set:function(t,i,o){var a=t,c=i,u="";if("expirations"==t)return!1;switch(t=r+t,typeof i){case"object":i=JSON.stringify(i),u=n[0];break;case"function":i=i.toString(),u=n[3];break;case"number":i=i.toString(),u=n[2];break;case"boolean":i=i.toString(),u=n[4];break;default:u=n[1]}for(var f=0;f<n.length;f++)if(e.getItem(t+n[f])){e.removeItem(t+n[f]);break}e.setItem(t+u,i),o&&s.expireKey(a,o),this.trigger("valuechange",a,c,o)},get:function(t){var i,o=t;t=r+t;for(var a=0;a<n.length;a++)if(e.getItem(t+n[a])){if(s.isExpired(o))return void e.removeItem(t+n[a]);switch(n[a]){case n[0]:i=JSON.parse(e.getItem(t+n[a]));break;case n[1]:i=e.getItem(t+n[a]);break;case n[2]:i=parseFloat(e.getItem(t+n[a]));break;case n[3]:i=new Function(e.getItem(t+n[a]));break;case n[4]:i=JSON.parse(e.getItem(t+n[a]))}break}return"undefined"==i||void 0==i?void 0:"true"==i?!0:"false"==i?!1:i},remove:function(t){var i=t;t=r+t;for(var o=0;o<n.length;o++)e.getItem(t+n[o])&&e.removeItem(t+n[o]);this.trigger("valuedelete",i)},group:function(e){return void 0==e?r:(e===!1&&(r=""),r=e+"_",void this.trigger("groupchange",r))},isGroup:function(t){var n=e;for(var r in n)if(0===r.indexOf(t))return!0;return!1},renameGroup:function(t,n,o){o=o||{};var a=t+"_"||r,s={async:o.async||!1,callback:o.callback||!1},c=Object.keys?Object.keys(e):[],u=i({},e),f=function(){if(ix>=c.length)return s.callback?s.callback():null;var t=c[ix];0===t.indexOf(a)&&(e.setItem(r+t.substring(a.length),u[t]),delete e[t]),ix++};if(r=n+"_",s.async&&Object.keys)return f();for(var v in u)0===v.indexOf(a)&&(e.setItem(r+v.substring(a.length),u[v]),delete e[v]);this.trigger("groupchange",r)},removeGroup:function(t,n){t=t?t+"_":r,n=n||{};var i={async:n.async||!1,callback:n.callback||!1,exclude:n.exclude||!1},o=e,a=Object.keys?Object.keys(e):[],s=0;if(asyncDelete=function(){if(s>=a.length)return i.callback?i.callback():null;var n=a[s],r=!1;if(0===n.indexOf(t)){if(i.exclude)for(var o in i.exclude){var c=t+i.exclude[o];if(0===n.indexOf(c+".")){r=!0;break}}r||e.removeItem(n)}s++,setTimeout(asyncDelete)},i.async&&Object.keys)return asyncDelete();for(var c in o){var u=!1;if(0===c.indexOf(t)){if(i.exclude)for(var f in i.exclude){var v=t+i.exclude[f];if(0===c.indexOf(v+".")){u=!0;break}}u||e.removeItem(c)}}},expireKey:function(t,n){var i=e.getItem("_expirations.json")||!1;try{i=JSON.parse(i),i||(i={})}catch(o){i={}}i[r+t]={"in":n,since:(new Date).getTime()};var a="_expirations.json";e.setItem(a,JSON.stringify(i))},isExpired:function(t){var n=e.getItem("_expirations.json")||!1;if(!n)return!1;try{if(n=JSON.parse(n),!n)return!1}catch(i){return!1}var o=n[r+t]||!1;if(!o)return!1;var a=new Date;return a.getTime()-o.since>=o.in},getExpiration:function(t){var n=e.getItem("_expirations.json")||!1;if(!n)return!1;try{if(n=JSON.parse(n),!n)return!1}catch(i){return!1}if(!n)return!1;var o=n[r+t]||!1;return o?o:!1}};!function(){var t;try{e=window.localStorage,e.setItem("test","test"),e.removeItem("test")}catch(n){t=!0}var i={setItem:function(e,t,n){var r=new Date;r.setTime(r.getTime()+(n||2592e6));var i="expires="+r.toUTCString();document.cookie=e+"="+t+"; "+i+"; path=/; secure"},removeItem:function(e){document.cookie=e+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"},getItem:function(e){for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var i=n[r];" "==i.charAt(0);)i=i.substring(1);if(0==i.indexOf(t))return i.substring(t.length,i.length)}return void 0}};s.setCookie=function(e,t,n){e=r+e,i.setItem(e,t,n)},s.removeCookie=function(e){e=r+e,i.removeItem(e)},s.getCookie=function(e){e=r+e;var t=i.getItem(e);return null==t?!1:"undefined"==t||void 0==t?void 0:"true"==t?!0:"false"==t?!1:t},s.expireCookie=function(e,t){e=r+e;var n=i.getItem(e);void 0!==n&&null!==n&&i.setItem(e,n,t)},t&&(o()?(s.set=function(e,t,n){s.setCookie(e,t,n),this.trigger("valuechange",e,t,n),n&&pit.expireKey(e,n)},s.get=s.getCookie,s.expireKey=function(e,t){var n=i.getItem("_expirations.json")||!1;try{n=JSON.parse(n),n||(n={})}catch(o){n={}}n[r+e]={"in":t,since:(new Date).getTime()};var a="_expirations.json";i.setItem(a,JSON.stringify(n)),s.expireCookie(e,t)},s.getExpiration=function(e){var t=i.getItem("_expirations.json")||!1;if(!t)return!1;try{if(t=JSON.parse(t),!t)return!1}catch(n){return!1}if(!t)return!1;var o=t[r+e]||!1;return o?o:!1},s.remove=function(e){s.removeCookie(e),this.trigger("valuedelete",e)},s.removeGroup=function(e){var t=a();for(var n in t)0==t[n].indexOf(e+"_")&&i.removeItem(n)},s.isExpired=function(){console.warn("not available for cookies")},s.renameGroup=function(){console.warn("not available for cookies")}):s.useMemory(!0))}();var c=e.getItem("_expirations.json")||!1;if(c)try{var u=JSON.parse(c);c=JSON.parse(c);var f=new Date;for(var v in c){var g=c[v]||!1;if(!g)return!1;if(f.getTime()-g.since>=g.in)for(var l=0;l<n.length;l++)e.getItem(v+n[l])&&(e.removeItem(v+n[l]),delete u[v])}var m="_expirations.json";e.setItem(m,JSON.stringify(u))}catch(d){}return s});