/* Remove the last lap. */
function remove_lap(table) {
var lap = table.rows[0].cells.length - 1;
- for (row of table.rows) row.removeChild(row.cells[lap]);
+ for (var row of table.rows) row.removeChild(row.cells[lap]);
}
/* Delete empty laps other than the final one. */
remove_lap(table);
/* Readonly if retrieving an entry but allow joker toggling. */
if (entry_id) {
- for (input of document.getElementsByTagName('INPUT')) {
+ for (var input of document.getElementsByTagName('INPUT')) {
if (input.name == 'endorsement_j') input.disabled = false;
else {
input.disabled = true;
/* Switch between HTML and bbcode. */
function toggle_classification(event) {
- for (div of event.currentTarget.getElementsByTagName('div')) {
+ for (var div of event.currentTarget.getElementsByTagName('div')) {
if (window.getComputedStyle(div).getPropertyValue('display') == 'none') {
div.style.display = 'block';
}
function validate() {
var flags = 0;
var stations = [];
- for (select of document.getElementsByClassName('station')) {
+ for (var select of document.getElementsByClassName('station')) {
var value = parseInt(select.value);
var flag = value & mandatory_flags;
if (value && ! flag) stations.push(select);
if (valid) {
/* Either all stations must be ordered or none. */
var ordered = {};
- for (input of document.getElementsByTagName('input')) {
+ for (var input of document.getElementsByTagName('input')) {
if (! input.name.match(/^station\d+order$/)) continue;
if (input.value) {
ordered[input.value] = input;
var keys = Object.keys(ordered);
if (keys.length) {
/* If one station is ordered they all must be. */
- for (select of stations) {
+ for (var select of stations) {
var input = document.getElementById(select.name + "order");
if (input && ! input.value) input.setCustomValidity("Missing order");
}
/* Action of a waypoint was changed. */
function changed_waypoint(event) {
- for (input of document.getElementsByClassName('station')) {
+ for (var input of document.getElementsByClassName('station')) {
if (input == event.target) continue;
input.value &= ~(event.target.value & mandatory_flags);
}
if (order) {
var select = document.getElementById(event.target.name.replace(/order$/, ''));
if (select) select.value = 1;
- for (input of document.getElementsByTagName('input')) {
+ for (var input of document.getElementsByTagName('input')) {
if (input == event.target) continue;
if (! input.name.match(/^station\d+order$/)) continue;
if (parseInt(input.value) == order) input.value = '';
/* Document onload. */
function loaded() {
- for (classification of document.getElementsByClassName('classification')) {
+ for (var classification of document.getElementsByClassName('classification')) {
classification.addEventListener('dblclick', copy_classification, true);
}
var waypoints = document.getElementsByClassName('station');
if (waypoints.length) {
var div = document.getElementById('waypoints');
if (div && div.offsetHeight > window.innerHeight * 0.9) div.style.height = '80%';
- for (input of waypoints) {
+ for (var input of waypoints) {
input.id = input.name;
input.addEventListener('change', changed_waypoint, true);
input.addEventListener('focusout', changed_waypoint, true);
}
- for (input of document.getElementsByTagName('input')) {
+ for (var input of document.getElementsByTagName('input')) {
var m = input.name.match(/^station\d+order$/);
if (! m) continue;
input.autocomplete = 'off';
/* Set the background for a leg element. */
function leg_background(classes, colour) {
var changed = false;
- for (c of classes) {
- for (element of document.getElementsByClassName(c)) {
+ for (var c of classes) {
+ for (var element of document.getElementsByClassName(c)) {
if (! element.classList.contains('leg')) continue;
element.style.backgroundColor = colour;
changed = true;
/* Document onload. */
function loaded() {
- for (span of document.getElementsByTagName('span')) {
+ for (var span of document.getElementsByTagName('span')) {
if (! span.classList.length) continue;
span.addEventListener('mouseenter', enter, true);
span.addEventListener('mouseleave', leave, true);