else return String(n);
}
+/* Is this an existing entry we are displaying? */
+function get_entry_id() {
+ var hidden = document.getElementsByName('add_entry');
+ if (! hidden.length) return null;
+ return parseInt(hidden[0].value);
+}
+
/* Convert a 21st century date to 34th century. */
function elite_date(then) {
var now = new Date();
var last_lap = first_column(table);
var last_station = last_row(table);
var complete_laps = 0;
+ /* Last lap is removed if we are retrieving an entry. */
+ var skip = (get_entry_id()) ? 0 : 1;
/* Find the last lap and last station visited. */
- for (var j = first_column(table); valid_column(table, j, 1); j++) {
+ for (var j = first_column(table); valid_column(table, j, skip); j++) {
for (var i = last_row(table); valid_row(table, i); i--) {
var input = get_cell_input(i, j);
if (input.value.match(input.pattern)) {
var columns = table.rows[0].cells.length;
var last_time = 0;
for (var j = first_column(table); valid_column(table, j); j++) {
-//for (var c = first_column(table); valid_column(table, c); c++) {
-// var j = c - first_column(table) + 1;
var lap = j - first_column(table) + 1;
var first_leg_time = 0;
var last_leg_time = 0;
propagate_placeholder(table, date);
}
+/* 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]);
+}
+
/* Delete empty laps other than the final one. */
function delete_empty_laps(table) {
var columns = table.rows[0].cells.length;
}
/* Remove header. */
table.rows[0].removeChild(table.rows[0].cells[columns - 1]);
- /* Remove summary. */
- //table.rows[table.rows.length - 1].removeChild(table.rows[table.rows.length - 1].cells[columns - 1]);
- //table.rows[summary_row(table)].removeChild(table.rows[summary_row(table)].cells[columns - 1]);
}
}
var table = get_table();
add_lap(table);
if (typeof posted != 'undefined') {
+ var entry_id = get_entry_id();
/* Times were submitted. */
var station_order = JSON.parse(posted['station_order']);
if (station_order) {
/* Insert times. */
var input = document.getElementById(id);
input.value = posted[id];
+ if (entry_id) input.disabled = true;
changed_cell(table, parseInt(m[2]), parseInt(m[1]), input);
return;
}
/* Insert hull. */
var input = document.getElementById(id);
input.value = posted[id];
+ if (entry_id) input.disabled = true;
return;
}
});
+ /* Remove dummy last lap. */
+ remove_lap(table);
}
var joker = get_joker();
if (joker) joker.addEventListener('change', changed_joker, true);
$allotted_time = $entry->getRace()->getAllottedTime();
foreach ($entry->getLaps() as $lap) {
$lap_number = $lap->getLapNumber();
- if ($allotted_time && $lap->getHullStart() && $lap->getHullEnd()) {
+ if ($lap->getHullStart() && $lap->getHullEnd()) {
$_POST["lap${lap_number}hullstart"] = $lap->getHullStart();
$_POST["lap${lap_number}hullend"] = $lap->getHullEnd();
}
$entry->setTotalDistance($posted['stat_total_distance']);
if ($allotted_time > 0) {
$entry->setPenaltyTime($posted['stat_penalty_time']);
- $entry->setBonusTime($posted['stat_bonus_time']);
if ($posted['stat_raced_time'] < $allotted_time) $endorsements |= endorsement('c');
}
+ if ($posted['stat_bonus_time']) $entry->setBonusTime($posted['stat_bonus_time']);
$entry->setRacedTime($posted['stat_raced_time']);
$entry->setTotalTime($posted['stat_total_time']);
$entry->setFastestLap($posted['stat_fastest_lap']);
$id = preg_replace('/[^a-z0-9]/', '_', strtolower($stat));
hidden("stat_$id");
}
- if ($entry) hidden("add_entry");
+ if ($entry) hidden("add_entry", $entry->getId());
else submit("add_entry", "Submit entry");
echo "</td>";
echo "<td><p>total distance</p></td>\n"; /* Distance column. */