Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / encoding / easy64.js @ 12

History | View | Annotate | Download (1.1 KB)

1
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6

    
7

    
8
if(!dojo._hasResource["dojox.encoding.easy64"]){
9
dojo._hasResource["dojox.encoding.easy64"]=true;
10
dojo.provide("dojox.encoding.easy64");
11
(function(){
12
var c=function(_1,_2,_3){
13
for(var i=0;i<_2;i+=3){
14
_3.push(String.fromCharCode((_1[i]>>>2)+33),String.fromCharCode(((_1[i]&3)<<4)+(_1[i+1]>>>4)+33),String.fromCharCode(((_1[i+1]&15)<<2)+(_1[i+2]>>>6)+33),String.fromCharCode((_1[i+2]&63)+33));
15
}
16
};
17
dojox.encoding.easy64.encode=function(_4){
18
var _5=[],_6=_4.length%3,_7=_4.length-_6;
19
c(_4,_7,_5);
20
if(_6){
21
var t=_4.slice(_7);
22
while(t.length<3){
23
t.push(0);
24
}
25
c(t,3,_5);
26
for(var i=3;i>_6;_5.pop(),--i){
27
}
28
}
29
return _5.join("");
30
};
31
dojox.encoding.easy64.decode=function(_8){
32
var n=_8.length,r=[],b=[0,0,0,0],i,j,d;
33
for(i=0;i<n;i+=4){
34
for(j=0;j<4;++j){
35
b[j]=_8.charCodeAt(i+j)-33;
36
}
37
d=n-i;
38
for(j=d;j<4;b[++j]=0){
39
}
40
r.push((b[0]<<2)+(b[1]>>>4),((b[1]&15)<<4)+(b[2]>>>2),((b[2]&3)<<6)+b[3]);
41
for(j=d;j<4;++j,r.pop()){
42
}
43
}
44
return r;
45
};
46
})();
47
}