rev |
line source |
pascal@716
|
1 window.URL = window.URL || window.webkitURL;
|
pascal@716
|
2 function download(ref, range, name) {
|
pascal@716
|
3 var xhr = new XMLHttpRequest();
|
pascal@716
|
4
|
pascal@716
|
5 xhr.open('GET', ref, true);
|
pascal@716
|
6 xhr.setRequestHeader("Range", "bytes="+range);
|
pascal@716
|
7 xhr.responseType = 'blob';
|
pascal@716
|
8 xhr.onload = function () {
|
pascal@716
|
9 var a = document.createElement('a'), file;
|
pascal@716
|
10 file = new Blob([xhr.response], { type : 'application/octet-stream' });
|
pascal@716
|
11 a.href = window.URL.createObjectURL(file);
|
pascal@716
|
12 a.download = name;
|
pascal@716
|
13 a.click();
|
pascal@716
|
14 };
|
pascal@716
|
15 xhr.send();
|
pascal@716
|
16 }
|
pascal@716
|
17
|
pascal@716
|
18 function format(size) {
|
pascal@716
|
19 var max = sets[sets.length-1];
|
pascal@716
|
20 var cols = Math.floor(Math.sqrt(max/size)+2);
|
pascal@716
|
21 var lines = Math.floor(((max/size)+1)/cols+1);
|
pascal@716
|
22 var e = document.getElementById('floppies');
|
pascal@716
|
23 var s, i, j, ofs, fd, fds, curset;
|
pascal@716
|
24 for (i = 0, ofs = 0, curset = 0, fd = 1, s = ""; i < lines; i++) {
|
pascal@716
|
25 s += "<tr>";
|
pascal@716
|
26 for (j = 0; j < cols; j++) {
|
pascal@716
|
27 fds = ""+fd; if (fd < 100) fds = "0"+fds; if (fd < 10) fds = "0"+fds;
|
pascal@716
|
28 s += "<td>";
|
pascal@716
|
29 if (ofs < max) {
|
pascal@716
|
30 s += "<a href=\"javascript:download('"+dir+"/fd.img', '"+ofs+"-";
|
pascal@716
|
31 ofs = Number.parseInt(ofs)+Number.parseInt(size);
|
pascal@716
|
32 s += (ofs-1)+"', 'fd"+fds+".img')\">fd"+fds+"</a>";
|
pascal@716
|
33 if (ofs >= sets[curset]) {
|
pascal@716
|
34 curset++;
|
pascal@716
|
35 fd = (Math.floor(fd/100)+1)*100;
|
pascal@716
|
36 } else fd++;
|
pascal@716
|
37 }
|
pascal@716
|
38 if (i == lines-1 && j == cols-1) {
|
pascal@716
|
39 s += "<a href=\""+dir+"/"+size+"/md5sum\">md5</a>"
|
pascal@716
|
40 }
|
pascal@716
|
41 s += "</td>";
|
pascal@716
|
42 }
|
pascal@716
|
43 s += "</tr>";
|
pascal@716
|
44 }
|
pascal@716
|
45 e.innerHTML = s;
|
pascal@716
|
46 for (i = 0, ofs = 0, curset = 0, fd = 0; ofs < max;) {
|
pascal@716
|
47 i++; fd++;
|
pascal@716
|
48 ofs = Number.parseInt(ofs)+Number.parseInt(size);
|
pascal@716
|
49 if (ofs >= sets[curset]) {
|
pascal@716
|
50 fds = ""+fd; if (fd < 100) fds = "0"+fds; if (fd < 10) fds = "0"+fds;
|
pascal@716
|
51 e = document.getElementById('cnt'+curset);
|
pascal@716
|
52 if (e) e.innerHTML = i;
|
pascal@716
|
53 e = document.getElementById('last'+curset);
|
pascal@716
|
54 if (e) e.innerHTML = fds;
|
pascal@716
|
55 curset++;
|
pascal@716
|
56 fd = (Math.floor(fd/100)+1)*100-1;
|
pascal@716
|
57 }
|
pascal@716
|
58 }
|
pascal@716
|
59 }
|
pascal@716
|
60
|
pascal@716
|
61 var e = document.getElementById('format');
|
pascal@716
|
62 try {
|
pascal@716
|
63 var dummy = new Blob();
|
pascal@716
|
64 e.innerHTML="<select onChange='format(this.value)' style='background: #666; color: #FFF;'>" +
|
pascal@716
|
65 "<option value='368640' title='/dev/fd0h360 (2,20) or /dev/fd0d360 (2,4) 5¼'>360K</option>" +
|
pascal@716
|
66 "<option value='737280' title='/dev/fd0u720 3½ DD (2,16)'>720K</option>" +
|
pascal@716
|
67 "<option value='819200' title='/dev/fd0u800 3½ DD (2,120)'>800K</option>" +
|
pascal@716
|
68 "<option value='1228800' title='/dev/fd0h1200 5¼ (2,8)'>1.2MB</option>" +
|
pascal@716
|
69 "<option value='1474560' title='/dev/fd0u1440 3½ HD (2,28) or /dev/fd0h1440 5¼ (2,40)' selected>1.44MB</option>" +
|
pascal@716
|
70 "<option value='1638400' title='/dev/fd0u1600 3½ HD (2,124) or /dev/fd0h1600 5¼ (2,92)'>1.60MB</option>" +
|
pascal@716
|
71 "<option value='1720320' title='/dev/fd0u1680 3½ HD (2,44)'>1.68MB</option>" +
|
pascal@716
|
72 "<option value='1966080' title='/dev/fd0u1920 3½ HD (2,100)'>1.92MB</option>" +
|
pascal@716
|
73 "<option value='2949120' title='/dev/fd0u2880 3½ ED (2,32)'>2.88MB</option>" +
|
pascal@716
|
74 "<option value='3932160' title='/dev/fd0u3840 3½ ED (2,112)'>3.84MB</option>" +
|
pascal@716
|
75 "</select>";
|
pascal@716
|
76 }
|
pascal@716
|
77 catch (err) {
|
pascal@716
|
78 e.innerHTML="1.44MB";
|
pascal@716
|
79 }
|