]> gitweb @ CieloNegro.org - Rakka.git/blob - js/base64.js
f4775ae59ecce21947f7c918e401225ee974b9e1
[Rakka.git] / js / base64.js
1 (function () {
2
3     var b64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
4
5     Rakka.encodeBase64 = function (src) {
6         var len = src.length;
7         var i   = 0;
8         var ret = "";
9
10         while (i < len) {
11             var c1 = src.charCodeAt(i++);
12             
13             if (i == len) {
14                 ret += b64Chars.charAt(c1 >> 2);
15                 ret += b64Chars.charAt((c1 & 0x03) << 4);
16                 ret += "==";
17             }
18             else {
19                 var c2 = src.charCodeAt(i++);
20
21                 if (i == len) {
22                     ret += b64Chars.charAt(c1 >> 2);
23                     ret += b64Chars.charAt(((c1 & 0x03) << 4) | ((c2 & 0xF0) >> 4));
24                     ret += b64Chars.charAt((c2 & 0x0F) << 2);
25                     ret += "=";
26                 }
27                 else {
28                     var c3 = src.charCodeAt(i++);
29
30                     ret += b64Chars.charAt(c1 >> 2);
31                     ret += b64Chars.charAt(((c1 & 0x03) << 4) | ((c2 & 0xF0) >> 4));
32                     ret += b64Chars.charAt(((c2 & 0x0F) << 2) | ((c3 & 0xC0) >> 6));
33                     ret += b64Chars.charAt(c3 & 0x3F);
34                 }
35             }
36         }
37
38         return ret;
39     };
40
41 })();