diff --git a/.gitignore b/.gitignore
index a551596..f46c269 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-boxes.html
mt-lag-30d.png
mt-lag.png
mt-players-30d.png
diff --git a/boxes.html b/boxes.html
new file mode 100644
index 0000000..fad03be
--- /dev/null
+++ b/boxes.html
@@ -0,0 +1,16 @@
+
+
+ Boxes
+
+
+
+
+
+ Boxes!
+
+
+
+
+
+
+
diff --git a/series.js b/series.js
new file mode 100644
index 0000000..d75f554
--- /dev/null
+++ b/series.js
@@ -0,0 +1,43 @@
+String.prototype.capitolize = function() {
+ return this.charAt(0).toUpperCase() + this.slice(1);
+}
+
+function jsonget(url)
+{
+ var r = new XMLHttpRequest();
+ r.open("GET", url, true);
+ r.setRequestHeader("Content-type", "application/json")
+
+ r.onreadystatechange = function()
+ {
+ if (r.readyState == 4 && r.status == 200)
+ {
+ var tbl = JSON.parse(r.responseText);
+ var s = "";
+
+ Object.keys(tbl).forEach(function(key, index) {
+ var series = tbl[key];
+ s += "" + series.name.capitolize() + " series
\n";
+ s += "\n";
+ s += " | Number | Name | Builder | \n";
+ var boxes = series.boxes;
+ Object.keys(boxes).forEach(function(key2, index2) {
+ s += "";
+ s += "" + index2 + " | ";
+ s += "" + boxes[key2].id + " | ";
+ s += "" + boxes[key2].name + " | ";
+ s += "" + boxes[key2].builder + " | ";
+ s += "
\n";
+ })
+
+ s += "
\n\n";
+ })
+
+ document.getElementById("series").innerHTML = s;
+ }
+ }
+ r.send();
+}
+
+jsonget("http://minetest.foo-projects.org/series.json");
+