cache-min.js revision 77a69e0fbb19ec24aa131bfaefe1c9374e6bf163
YUI.add("cache-base",function(C){var A=C.Lang,B=function(){B.superclass.constructor.apply(this,arguments);};C.mix(B,{NAME:"cache",ATTRS:{max:{value:0,setter:"_setMax"},size:{readOnly:true,getter:"_getSize"},uniqueKeys:{value:false},entries:{readOnly:true,getter:"_getEntries"}}});C.extend(B,C.Base,{_entries:null,initializer:function(D){this.publish("add",{defaultFn:this._defAddFn});this.publish("flush",{defaultFn:this._defFlushFn});this._entries=[];},destructor:function(){this._entries=[];},_setMax:function(E){var D=this._entries;if(E>0){if(D){while(D.length>E){D.shift();}}}else{E=0;this._entries=[];}return E;},_getSize:function(){return this._entries.length;},_getEntries:function(){return this._entries;},_defAddFn:function(G){var E=this._entries,D=this.get("max"),F=G.entry;if(this.get("uniqueKeys")&&(this.retrieve(G.entry.request))){E.shift();}while(D&&E.length>=D){E.shift();}E[E.length]=F;},_defFlushFn:function(D){this._entries=[];},_isMatch:function(E,D){return(E===D.request);},add:function(E,D){if(this.get("initialized")&&((this.get("max")===null)||this.get("max")>0)&&(A.isValue(E)||A.isNull(E)||A.isUndefined(E))){this.fire("add",{entry:{request:E,response:D,cached:new Date()}});}else{}},flush:function(){this.fire("flush");},retrieve:function(H){var D=this._entries,G=D.length,F=null,E=G-1;if((G>0)&&((this.get("max")===null)||(this.get("max")>0))){this.fire("request",{request:H});for(;E>=0;E--){F=D[E];if(this._isMatch(H,F)){this.fire("retrieve",{entry:F});if(E<G-1){D.splice(E,1);D[D.length]=F;}return F;}}}return null;}});C.Cache=B;},"@VERSION@",{requires:["base"]});YUI.add("cache-offline",function(F){function E(){E.superclass.constructor.apply(this,arguments);}var A=F.config.win.localStorage,C=F.Lang.isDate,D=F.JSON,G={NAME:"cacheOffline",ATTRS:{sandbox:{value:"default",writeOnce:"initOnly"},expires:{value:86400000,validator:function(H){return F.Lang.isDate(H)||(F.Lang.isNumber(H)&&H>=0);}},max:{value:null,readOnly:true},uniqueKeys:{value:true,readOnly:true,setter:function(){return true;}}},flushAll:function(){var H=A,I;if(H){if(H.clear){H.clear();}else{for(I in H){if(H.hasOwnProperty(I)){H.removeItem(I);delete H[I];}}}}else{}}},B=A?{_setMax:function(H){return null;},_getSize:function(){var J=0,I=0,H=A.length;for(;I<H;++I){if(A.key(I).indexOf(this.get("sandbox"))===0){J++;}}return J;},_getEntries:function(){var H=[],K=0,J=A.length,I=this.get("sandbox");for(;K<J;++K){if(A.key(K).indexOf(I)===0){H[K]=D.parse(A.key(K).substring(I.length));}}return H;},_defAddFn:function(M){var L=M.entry,K=L.request,J=L.cached,H=this.get("expires");L.cached=J.getTime();L.expires=C(H)?H.getTime():(H?new Date().getTime()+this.get("expires"):null);try{A.setItem(this.get("sandbox")+D.stringify({"request":K}),D.stringify(L));}catch(I){this.fire("error",{error:I});}},_defFlushFn:function(J){var I,H=A.length-1;for(;H>-1;--H){I=A.key(H);if(I.indexOf(this.get("sandbox"))===0){A.removeItem(I);}}},retrieve:function(K){this.fire("request",{request:K});var J,H,I;try{K=this.get("sandbox")+D.stringify({"request":K});try{J=D.parse(A.getItem(K));}catch(M){}}catch(L){}if(J){J.cached=new Date(J.cached);H=J.expires;H=!H?null:new Date(H);if(!H||new Date()<H){J.expires=H;this.fire("retrieve",{entry:J});return J;}}return null;}}:{_setMax:function(H){return null;},_defAddFn:function(I){var H=this.get("expires");I.entry.expires=C(H)?H:(H?new Date(new Date().getTime()+this.get("expires")):null);E.superclass._defAddFn.call(this,I);},_isMatch:function(I,H){if(!H.expires||new Date()<H.expires){return(I===H.request);}return false;}};F.mix(E,G);F.extend(E,F.Cache,B);F.CacheOffline=E;},"@VERSION@",{requires:["cache-base","json"]});YUI.add("cache",function(A){},"@VERSION@",{use:["cache-base","cache-offline"]});