/*******************************************************************************
cookie_db.js - クッキーを使って,テキストやオブジェクトを保存するライブラリ
Usage:
…
*******************************************************************************/
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
function xEncode(src) {
var chr,
sbc = true,
que = [], dst="";
for(var i=0; i=3) {
dst += b64.charAt(que[0]>>2 & 0x3f)
+ b64.charAt((que[0]<<4 | que[1]>>4) & 0x3f)
+ b64.charAt((que[1]<<2 | que[2]>>6) & 0x3f)
+ b64.charAt(que[2] & 0x3f);
que.splice(0,3);
}
}
switch (que.length) {
case 0:
break;
case 1:
dst += b64.charAt(que[0]>>2 & 0x3f)
+ b64.charAt(que[0]<<4 & 0x3f);
break;
case 2:
dst += b64.charAt(que[0]>>2 & 0x3f)
+ b64.charAt((que[0]<<4 | que[1]>>4) & 0x3f)
+ b64.charAt(que[1]<<2 & 0x3f);
}
return dst;
}
function xDecode(src) {
var s0, s1, s2, s3,
bpc = 1, /* bytes per char */
chr,
que = []; dst="";
for(var i=0; i>4);
if (s2<64) que.push(s1<<4 & 0xf0 | s2>>2);
if (s3<64) que.push(s2<<6 & 0xf0 | s3);
while (que.length >= bpc) {
if (bpc==1) {
chr = que.shift();
if (chr==0x0e) bpc=2;
else dst += String.fromCharCode(chr);
} else /* bpc==2 */ {
chr = 256*que.shift() + que.shift();
if (chr==0x000f) bpc=1;
else dst += String.fromCharCode(chr);
}
}
}
return dst;
}
function cut(str, len) {
var arr = [];
for (var i=0; i