|
From: Raymond I. <xw...@us...> - 2003-03-26 02:22:35
|
Update of /cvsroot/dynapi/dynapi3x/src/util
In directory sc8-pr-cvs1:/tmp/cvs-serv6593/src/util
Modified Files:
cookie.js
Log Message:
updated/added by raymond
Index: cookie.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi3x/src/util/cookie.js,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -r1.1.1.1 -r1.2
*** cookie.js 10 Feb 2003 22:35:59 -0000 1.1.1.1
--- cookie.js 26 Mar 2003 02:22:31 -0000 1.2
***************
*** 10,15 ****
var c = new Cookie('mycookieset');
! c.set('name','MyName'); // re-saves cookie each time a value is added
! c.add('array',[1,2,3]);
var c = new Cookie('mycookieset'); // auto-retrieves saved cookie object
--- 10,14 ----
var c = new Cookie('mycookieset');
! c.add('array',[1,2,3]); // re-saves cookie each time a value is added
var c = new Cookie('mycookieset'); // auto-retrieves saved cookie object
***************
*** 21,32 ****
*/
! function Cookie(name) {
!
this.DynObject = DynObject;
this.DynObject();
- this.name = name;
this.data = {};
this.exists = false;
var c = dynapi.functions.getCookie(this.name);
if (c) {
--- 20,32 ----
*/
!
! function Cookie(name,pDType) {
this.DynObject = DynObject;
this.DynObject();
this.data = {};
+ this.name = name;
this.exists = false;
+ this._pdt=pDType;
var c = dynapi.functions.getCookie(this.name);
if (c) {
***************
*** 34,41 ****
var a = c.split(',');
var x,n,v;
! for (var i=0;i<a.length;a++) {
x = a[i].split('=');
n = x[0];
! v = x[1];
if (n && v) this.data[n] = v;
}
--- 34,41 ----
var a = c.split(',');
var x,n,v;
! for (var i=0;i<a.length;i++) {
x = a[i].split('=');
n = x[0];
! v = Cookie.decode(x[1]);
if (n && v) this.data[n] = v;
}
***************
*** 44,48 ****
}
else this._save();
! }
var p = dynapi.setPrototype('Cookie','DynObject');
p.get = function(name) {
--- 44,113 ----
}
else this._save();
! };
! // to-do: replace escape(),unescape() with better encoding functions
! Cookie.decode = function(t,_lvl){
! var dt = (t+'').substring(0,2);
! if(isNaN(_lvl)) _lvl=0; else _lvl++;
! if(dt=='a[') { //array
! t=t.substring(2,t.length-1);
! t=t.split('\\'+_lvl);
! for(var i=0;i<t.length;i++) t[i]=Cookie.decode(t[i],_lvl);
! }
! else if(dt=='o[') { //object
! var a,n,v;
! t=t.substring(2,t.length-1);
! a=t.split('\\'+_lvl);
! t={};
! for(var i=0;i<a.length;i++) {
! n=a[i].substring(0,a[i].indexOf(':'));
! if(n) v=a[i].substring(n.length+1);
! else v=null;
! t[n]=Cookie.decode(v,_lvl);
! }
! }
! else if(dt=='n[') { //number:float, integer
! t=parseFloat(t.substring(2,t.length-1));
! }
! else if(dt=='d[') { //date
! t=new Date(unescape(t.substring(2,t.length-1)));
! }
! else if(dt=='b[') { //boolean
! t=(t.substring(2,t.length-1)=="1")? true:false;
! }
! else if(dt=='u[') { //null
! t=null;
! }
! else{ //string
! t=unescape(t);
! }
! return t;
! };
! // to-do: replace escape(),unescape() with better encoding functions
! Cookie.encode = function(t,pDType,_lvl){
! if (!pDType) t=escape(t);
! if (t==null) t='u[]';
! else if(typeof(t)=='number') t='n['+t+']';
! else if(typeof(t)=='boolean') t='b['+((t)? 1:0)+']';
! else if(typeof(t)!='object') t=escape(t);
! else {
! if(isNaN(_lvl)) _lvl=0; else _lvl++;
! if(t.constructor==Date) t='d['+escape(t)+']';
! else if(t.constructor==Array){
! //encode array = a[n1\0n2...\0nN]
! var a=[];
! for(var i=0;i<t.length;i++) a[i]=Cookie.encode(t[i],pDType);
! t='a['+a.join('\\'+_lvl)+']';
! }
! else {
! //encode object = o[name1:value1\0name2:value2...\0nameN:valueN]
! var a=[];
! for(var i in t){
! a[a.length]=(i+':'+Cookie.encode(t[i],pDType,_lvl));
! }
! t='o['+a.join('\\'+_lvl)+']';
! }
! }
! return t;
! };
var p = dynapi.setPrototype('Cookie','DynObject');
p.get = function(name) {
***************
*** 61,64 ****
--- 126,133 ----
this._save();
};
+ p.removeAll = function(){
+ this.data = {};
+ this._save();
+ };
p.setExpires = function(days) {
this.expires = days;
***************
*** 71,75 ****
for (var i in this.data) {
var v = this.data[i];
! if (v) s += i + '=' + escape(v) + ',';
}
s = s.substring(0,s.length-1);
--- 140,144 ----
for (var i in this.data) {
var v = this.data[i];
! if (v) s += i + '=' + Cookie.encode(v,this._pdt) + ',';
}
s = s.substring(0,s.length-1);
***************
*** 91,97 ****
dynapi.functions.getCookie = function(name) {
var nameEQ = name+"=";
! var ca = dynapi.frame.document.cookie.split(';');
for(var i=0;i<ca.length;i++) {
! var c=ca[i];
while (c.charAt(0)==' ') c=c.substring(1,c.length);
if (c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
--- 160,166 ----
dynapi.functions.getCookie = function(name) {
var nameEQ = name+"=";
! var c,ca = dynapi.frame.document.cookie.split(';');
for(var i=0;i<ca.length;i++) {
! c=ca[i];
while (c.charAt(0)==' ') c=c.substring(1,c.length);
if (c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
|