--- /dev/null
+<!DOCTYPE html>
+<head>
+ <title>GapFinder</title>
+ <script src=Atom.js></script>
+ <script>
+ // Add Blob.prototype.slice if it does not already exist:
+ if (typeof(Blob.prototype.slice) == 'undefined' && typeof(Blob.prototype.webkitSlice) != 'undefined')
+ Blob.prototype.slice = Blob.prototype.webkitSlice;
+
+ function readAtoms(file, offset, length) {
+ function tryToReadAtom(file, offset) {
+ return new Promise((resolve, reject) => {
+ var reader = new FileReader();
+ reader.onload = (event) => {
+ var atom = new Atom();
+ atom.parse(reader.result, 0);
+ resolve(atom);
+ };
+ reader.onerror = (error) => {
+ reject(error);
+ };
+ var subset = file.slice(offset, offset + 36);
+ reader.readAsArrayBuffer(subset);
+ });
+ }
+
+ return new Promise((resolve, reject) => {
+ var atoms = [];
+ var offset = 0;
+ tryToReadAtom(file, offset).then((atom) => {
+ var reader = new FileReader();
+ reader.onload = function(e) {
+ var atom = Atom.create(reader.result);
+ resolve(atom);
+ };
+ reader.onerror = (error) => {
+ reject(error);
+ };
+ var subset = file.slice(offset, offset + length);
+ reader.readAsArrayBuffer(subset);
+ }, (error) {
+ reject(error);
+ })
+ })
+ }
+
+
+
+ function onFileSelect(e) {
+ var file = e.target.files[0];
+
+
+ readAtom(file, 0, file.size).then((atom) => {
+ console.log(atom);
+ }, () => {
+ // do some failed stuff
+ });
+ }
+
+ function setup() {
+ document.getElementById('file').addEventListener('change', onFileSelect, false);
+ }
+ </script>
+ <style>
+ dl { border: 1px solid black; padding: 1px; }
+ dt, dd { display: inline; }
+ dt:after { content:": " }
+ dd:after { content:"\A"; white-space:pre; }
+ dd dl { margin: 0; vertical-align: top }
+ dd span { display: inline-block; vertical-align: top; }
+
+ dt, dd { display: inline-block; min-width: 14em; }
+ dd { margin-left: 1em; }
+ dd th { font-weight: normal; text-align: right; }
+ .description { text-align: center; font-weight: bold; }
+
+ /* make the output display as a table */
+ /*
+ dl { display: table; }
+ dl div { display: table-row; }
+ dt, dd { display: table-cell; }
+ */
+ </style>
+</head>
+<body id="atomtester" onload="setup()">
+ <input type="file" id="file" name="file" />
+ <div id=output>
+</body>
\ No newline at end of file