Mercurial > web-gnusto
annotate base64.js @ 93:817aa2851339 default tip
Added a very simple index.html.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Fri, 23 May 2008 03:50:44 -0700 |
parents | 5c35e18a9d1a |
children |
rev | line source |
---|---|
27
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
1 /* Taken from: |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
2 * |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
3 * http://ecmanaut.blogspot.com/2007/11/javascript-base64-singleton.html |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
4 * |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
5 * With minor modifications to decode a b64 string to a byte array instead |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
6 * of a string. */ |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
7 |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
8 var base64_tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
9 |
73
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
10 function encode_base64(data) { |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
11 var out = "", c1, c2, c3, e1, e2, e3, e4; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
12 for (var i = 0; i < data.length; ) { |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
13 c1 = data[i++]; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
14 c2 = data[i++]; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
15 c3 = data[i++]; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
16 e1 = c1 >> 2; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
17 e2 = ((c1 & 3) << 4) + (c2 >> 4); |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
18 e3 = ((c2 & 15) << 2) + (c3 >> 6); |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
19 e4 = c3 & 63; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
20 if (isNaN(c2)) |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
21 e3 = e4 = 64; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
22 else if (isNaN(c3)) |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
23 e4 = 64; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
24 out += (base64_tab.charAt(e1) + |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
25 base64_tab.charAt(e2) + |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
26 base64_tab.charAt(e3) + |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
27 base64_tab.charAt(e4)); |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
28 } |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
29 return out; |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
30 } |
5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
31 |
27
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
32 function decode_base64(data) { |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
33 var out = [], c1, c2, c3, e1, e2, e3, e4; |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
34 for (var i = 0; i < data.length; ) { |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
35 e1 = base64_tab.indexOf(data.charAt(i++)); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
36 e2 = base64_tab.indexOf(data.charAt(i++)); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
37 e3 = base64_tab.indexOf(data.charAt(i++)); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
38 e4 = base64_tab.indexOf(data.charAt(i++)); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
39 c1 = (e1 << 2) + (e2 >> 4); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
40 c2 = ((e2 & 15) << 4) + (e3 >> 2); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
41 c3 = ((e3 & 3) << 6) + e4; |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
42 out.push(c1); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
43 if (e3 != 64) |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
44 out.push(c2); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
45 if (e4 != 64) |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
46 out.push(c3); |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
47 } |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
48 return out; |
174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
49 } |