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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }