X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/53686d73c4a758bc3ca80e2f0def103f37e37fa3..a0f942a8498d6f1574c57c5943a7d21eb9634898:/latinsample.js diff --git a/latinsample.js b/latinsample.js index c17242a..cff51e3 100644 --- a/latinsample.js +++ b/latinsample.js @@ -1,14 +1,7 @@ function appendsample() { var rows = document.getElementsByClassName('glyphs')[0].rows; for (var row of rows) { - cols = [ row.cells[0] ]; - for (var col = 1; col <= 26; col++) { - cols[col] = cols[ col - 1 ].nextSibling; - for (var span = 1; span < cols[col].colSpan; span++) { - var same = cols[col]; - cols[++col] = same; - } - } + // append sample column var samplecol = row.getElementsByClassName('sample'); if (samplecol.length) { samplecol = samplecol[0]; @@ -18,15 +11,29 @@ function appendsample() { samplecol.className = 'sample'; } + // prepare alphabet lookup table + cols = [ row.cells[0] ]; + for (var col = 1; col <= samplecol.cellIndex; col++) { + var next = cols[col - 1].nextSibling; + if (next == samplecol) break; + cols[col] = next; + for (var span = 1; span < cols[col].colSpan; span++) { + var same = cols[col]; + cols[++col] = same; + } + } + + // copy letters into sample var output = ''; var input = this.value.toUpperCase(); for (var i = 0; i < input.length; i++) { var col = input.charCodeAt(i) - 64; - if (col < 1 || col > 26) { - output += '   '; + if (col < 1) col = 27; // space + if (col < cols.length) { + output += '' + cols[col].innerHTML.trimRight() + ''; } else { - output += '' + cols[col].innerHTML.trimRight() + ''; + output += ' '; } } samplecol.innerHTML = output;