perl: missing minor v5.14 features
[sheet.git] / keys.js
diff --git a/keys.js b/keys.js
index e1b7038e197d66d298c5b04710b099de0bb38e97..cebd0eee376efc5243de9435d44f0eb49ed3fc3f 100644 (file)
--- a/keys.js
+++ b/keys.js
@@ -1,18 +1,23 @@
+var basetitle = document.title;
+
 function setmode(classname, restore) {
 function setmode(classname, restore) {
+       var tableref = document.getElementById('rows');
+       if (!tableref) return;
        // set style for each #rows>li>ul>li to display:none unless it matches classname
        var showclass = classname ? '^mode '+classname+'(?!\\w)' : '^(?!mode)';
        // set style for each #rows>li>ul>li to display:none unless it matches classname
        var showclass = classname ? '^mode '+classname+'(?!\\w)' : '^(?!mode)';
-       var rows = document.getElementById('rows').getElementsByTagName('TR');
+       var rows = tableref.getElementsByTagName('TR');
        for (var i = 0; i < rows.length; i++) {
                var el = rows[i];
                el.style.display = el.className.match(showclass) ? 'block' : 'none';
        }
 
        // update H2 to reflect the first part of a currently active (but hidden) row header
        for (var i = 0; i < rows.length; i++) {
                var el = rows[i];
                el.style.display = el.className.match(showclass) ? 'block' : 'none';
        }
 
        // update H2 to reflect the first part of a currently active (but hidden) row header
-       var h3s = document.getElementsByTagName('TH');
+       var h3s = tableref.getElementsByTagName('TH');
        for (var i = 0; i < h3s.length; i++) {
                if (h3s[i].parentNode.style.display != 'block') continue;
                var header = h3s[i].firstChild.data;
                document.getElementsByTagName('H2')[0].innerHTML = header;
        for (var i = 0; i < h3s.length; i++) {
                if (h3s[i].parentNode.style.display != 'block') continue;
                var header = h3s[i].firstChild.data;
                document.getElementsByTagName('H2')[0].innerHTML = header;
+               document.title = basetitle + ': ' + header;
                if (restore) break;
                history.pushState(null, header, classname ? '#'+classname : '#');
                break;
                if (restore) break;
                history.pushState(null, header, classname ? '#'+classname : '#');
                break;