YAHOO.namespace("util");YAHOO.util.Cookie={_createCookieString:function(L,J,K,G){var H=YAHOO.lang;var I=encodeURIComponent(L)+"="+(K?encodeURIComponent(J):J);if(H.isObject(G)){if(G.expires instanceof Date){I+="; expires="+G.expires.toGMTString()}if(H.isString(G.path)&&G.path!=""){I+="; path="+G.path}if(H.isString(G.domain)&&G.domain!=""){I+="; domain="+G.domain}if(G.secure===true){I+="; secure"}}return I},_createCookieHashString:function(H){var F=YAHOO.lang;if(!F.isObject(H)){throw new TypeError("Cookie._createCookieHashString(): Argument must be an object.")}var G=new Array();for(var E in H){if(F.hasOwnProperty(H,E)&&!F.isFunction(H[E])&&!F.isUndefined(H[E])){G.push(encodeURIComponent(E)+"="+encodeURIComponent(String(H[E])))}}return G.join("&")},_parseCookieHash:function(I){var J=I.split("&");var H=null;var K=new Object();for(var L=0,G=J.length;L<G;L++){H=J[L].split("=");K[decodeURIComponent(H[0])]=decodeURIComponent(H[1])}return K},_parseCookieString:function(P,N){var O=new Object();if(YAHOO.lang.isString(P)&&P.length>0){var M=(N===false?function(A){return A}:decodeURIComponent);if(/[^=]+=[^=;]?(?:; [^=]+=[^=]?)?/.test(P)){var R=P.split(/;\s/g);var Q=null;var L=null;var T=null;for(var K=0,S=R.length;K<S;K++){T=R[K].match(/([^=]+)=/i);if(T instanceof Array){Q=decodeURIComponent(T[1]);L=M(R[K].substring(Q.length+1))}else{Q=decodeURIComponent(R[K]);L=Q}O[Q]=L}}}return O},get:function(E,H){var F=YAHOO.lang;var G=this._parseCookieString(document.cookie);if(!F.isString(E)||E===""){throw new TypeError("Cookie.get(): Cookie name must be a non-empty string.")}if(F.isUndefined(G[E])){return null}if(!F.isFunction(H)){return G[E]}else{return H(G[E])}},getSub:function(F,I,J){var G=YAHOO.lang;var H=this.getSubs(F);if(H!==null){if(!G.isString(I)||I===""){throw new TypeError("Cookie.getSub(): Subcookie name must be a non-empty string.")}if(G.isUndefined(H[I])){return null}if(!G.isFunction(J)){return H[I]}else{return J(H[I])}}else{return null}},getSubs:function(C){if(!YAHOO.lang.isString(C)||C===""){throw new TypeError("Cookie.getSubs(): Cookie name must be a non-empty string.")}var D=this._parseCookieString(document.cookie,false);if(YAHOO.lang.isString(D[C])){return this._parseCookieHash(D[C])}return null},remove:function(D,C){if(!YAHOO.lang.isString(D)||D===""){throw new TypeError("Cookie.remove(): Cookie name must be a non-empty string.")}C=C||{};C.expires=new Date(0);return this.set(D,"",C)},set:function(J,I,F){var G=YAHOO.lang;if(!G.isString(J)){throw new TypeError("Cookie.set(): Cookie name must be a string.")}if(G.isUndefined(I)){throw new TypeError("Cookie.set(): Value cannot be undefined.")}var H=this._createCookieString(J,I,true,F);document.cookie=H;return H},setSub:function(L,J,K,G){var H=YAHOO.lang;if(!H.isString(L)||L===""){throw new TypeError("Cookie.setSub(): Cookie name must be a non-empty string.")}if(!H.isString(J)||J===""){throw new TypeError("Cookie.setSub(): Subcookie name must be a non-empty string.")}if(H.isUndefined(K)){throw new TypeError("Cookie.setSub(): Subcookie value cannot be undefined.")}var I=this.getSubs(L);if(!H.isObject(I)){I=new Object()}I[J]=K;return this.setSubs(L,I,G)},setSubs:function(J,I,F){var G=YAHOO.lang;if(!G.isString(J)){throw new TypeError("Cookie.setSubs(): Cookie name must be a string.")}if(!G.isObject(I)){throw new TypeError("Cookie.setSubs(): Cookie value must be an object.")}var H=this._createCookieString(J,this._createCookieHashString(I),false,F);document.cookie=H;return H}};YAHOO.register("cookie",YAHOO.util.Cookie,{version:"2.5.2",build:"1076"})
