+ // Go through and remove all the elements that are not supposed to be there.
+ var main = document.getElementById("main");
+ var children = main.children;
+ var to_remove = [];
+ for (var i = 0; i < children.length; i++) {
+ var child = children[i];
+ var inum = null;
+ if (child.className === "fsimg") {
+ inum = parseInt(child.id);
+ } else if (child.className === "fsbox") {
+ inum = parseInt(child.id.replace("_box", ""));
+ } else {
+ continue;
+ }
+
+ // FIXME: For whatever reason, if we don't actually remove an item
+ // and then scroll it out of view, Chrome scrolls to it.
+ // So don't keep anything that's going to be a preload;
+ // we'll have to recreate the element entirely.
+ //if (inum !== global_image_num - 1 &&
+ // inum !== global_image_num &&
+ // inum !== global_image_num + 1) {
+ // to_remove.push(child);
+ //}
+ if (inum !== global_image_num) {
+ to_remove.push(child);
+ }
+ }
+ for (let child of to_remove) {
+ child.parentNode.removeChild(child);
+ }
+
+ // Add any missing elements. Note that we add the main one first,
+ // so that the preloads have an element to fire onload off of.
+ display_image_num(global_image_num, 0);
+ if (can_go_previous()) {
+ display_image_num(global_image_num - 1, -1);
+ }