}
my $tc = 40271; # 11:11:11
+ my $tc_9 = $tc * 9; # 99:99:99
+ my $tc_f = $tc * 15; # FF:FF:FF
+ my $tc_y = $tc * 34; # YY:YY:YY
+ my $tc_z = $tc * 35; # ZZ:ZZ:ZZ
my $max_digit;
+ my $extra_timers = 0;
- if ($full_timer <= $tc * 9) { #99:99:99
+ while ($timer > $tc_z) {
+ $extra_timers += 1;
+ $timer -= $tc_z;
+ $full_timer -= $tc_z;
+ }
+
+ if ($full_timer <= $tc_9) { # 99:99:99
$max_digit = 9;
}
- elsif ($full_timer <= $tc * 15) { # FF:FF:FF
+ elsif ($full_timer <= $tc_f) { # FF:FF:FF
$max_digit = 15; # F
}
- elsif ($full_timer > $tc * 34) { # YY:YY:YY
+ elsif ($full_timer > $tc_y) { # YY:YY:YY
$max_digit = 35; # Z
}
else {
return (
make_timer_digit($digit[5]).make_timer_digit($digit[4]),
make_timer_digit($digit[3]).make_timer_digit($digit[2]),
- make_timer_digit($digit[1]).make_timer_digit($digit[0])
+ make_timer_digit($digit[1]).make_timer_digit($digit[0]),
+ $extra_timers
);
}
my $timer_color_m = (($timer_unlocked >= 2) || ($ong_state >= STATE->{'ready'})) ? 'br' : 'ni';
my $timer_color_s = (($timer_unlocked >= 3) || ($ong_state >= STATE->{'ready'})) ? 'br' : 'ni';
- (my $timer_h, my $timer_m, my $timer_s) = make_timer(
+ (my $timer_h, my $timer_m, my $timer_s, my $timer_x) = make_timer(
$timer, $full_timer, $frame, $ong_state
);
print $fh ' <div id="command">'."\n";
if ($show_timer) {
- print $fh ' <span id="timer">';
- print $fh '[<span id="ongh" class="hv '.$timer_color_h.'">'.$timer_h.'</span>';
- print $fh ':<span id="ongm" class="hv '.$timer_color_m.'">'.$timer_m.'</span>';
- print $fh ':<span id="ongs" class="hv '.$timer_color_s.'">'.$timer_s.'</span>]';
- print $fh '</span><br>'."\n";
+ while ($timer_x >= 0) {
+ my $timer_n = ($timer_x > 0) ? $timer_x : '';
+ print $fh ' <span id="timer'.$timer_n.'" class="timer">';
+ print $fh '[<span id="ongh'.$timer_n.'" class="hv '.$timer_color_h.'">'.$timer_h.'</span>';
+ print $fh ':<span id="ongm'.$timer_n.'" class="hv '.$timer_color_m.'">'.$timer_m.'</span>';
+ print $fh ':<span id="ongs'.$timer_n.'" class="hv '.$timer_color_s.'">'.$timer_s.'</span>]';
+ print $fh '</span><br>'."\n";
+ $timer_h = '--';
+ $timer_m = '--';
+ $timer_s = '--';
+ $timer_x -= 1;
+ }
}
print $fh ' >';
if ($show_command_link) {
}
window.onload = function () {
- var e_h;
- var e_m;
- var e_s;
- var h;
- var m;
- var s;
+ var e_h = [];
+ var e_m = [];
+ var e_s = [];
+ var h = [];
+ var m = [];
+ var s = [];
var hms;
var digits;
var countdown;
- var timer;
+ var timer = [];
+ var n = -1;
+ var x = -1;
var base = [10, 6, 10, 6, 10, 10];
- e_h = document.getElementById("ongh");
- e_m = document.getElementById("ongm");
- e_s = document.getElementById("ongs");
-
- if (e_h == null || e_m == null || e_s == null) {
- // window.alert("NUL");
- return;
+ for (var i=0; ; ++i) {
+ var ind = i;
+ if (ind == 0)
+ ind = '';
+ e_h[i] = document.getElementById("ongh"+ind);
+ e_m[i] = document.getElementById("ongm"+ind);
+ e_s[i] = document.getElementById("ongs"+ind);
+
+ if (e_h[i] == null || e_m[i] == null || e_s[i] == null) {
+ // window.alert("NUL "+i);
+ break;
+ }
+
+ h[i] = e_h[i].innerHTML;
+ m[i] = e_m[i].innerHTML;
+ s[i] = e_s[i].innerHTML;
+
+ if (h[i].length != 2 || m[i].length != 2 || s[i].length != 2) {
+ // window.alert("LENGTH "+i);
+ break;
+ }
+
+ timer[i] = document.getElementById("timer"+ind);
+ timer[i].onclick = function () {
+ enabled = !enabled;
+ if (!(enabled && valid))
+ return;
+ for (var j=x; j > 0; --j) {
+ if (j > n) {
+ var block = timer[j].parentNode;
+ var br = timer[j].nextSibling;
+ block.removeChild(timer[j]);
+ block.removeChild(br);
+ --x;
+ continue;
+ }
+ e_h[j].innerHTML = h[j];
+ e_m[j].innerHTML = m[j];
+ e_s[j].innerHTML = s[j];
+ }
+ };
+ n = i;
+ x = n;
}
-
- h = e_h.innerHTML;
- m = e_m.innerHTML;
- s = e_s.innerHTML;
-
- if (h.length != 2 || m.length != 2 || s.length != 2) {
- // window.alert("LENGTH");
+ if (n < 0) {
+ // window.alert("NO");
return;
}
- hms = h + ":" + m + ":" + s;
+ hms = h[n] + ":" + m[n] + ":" + s[n];
if (
hms == "00:00:NG" ||
}
digits = [];
- digits[0] = d2i(s[1]);
- digits[1] = d2i(s[0]);
- digits[2] = d2i(m[1]);
- digits[3] = d2i(m[0]);
- digits[4] = d2i(h[1]);
- digits[5] = d2i(h[0]);
-
- timer = document.getElementById("timer");
- timer.onclick = function () {
- enabled = !enabled;
- if (enabled && valid) {
- e_h.innerHTML = h;
- e_m.innerHTML = m;
- e_s.innerHTML = s;
- }
- }
+ digits[0] = d2i(s[n][1]);
+ digits[1] = d2i(s[n][0]);
+ digits[2] = d2i(m[n][1]);
+ digits[3] = d2i(m[n][0]);
+ digits[4] = d2i(h[n][1]);
+ digits[5] = d2i(h[n][0]);
countdown = setInterval (function() {
var stop = true;
digits[2] == 0 && digits[3] == 0 &&
digits[4] == 0 && digits[5] == 0
) {
- h = "00";
- m = "00";
- s = "NG";
- // window.alert("ONG");
- clearInterval(countdown);
+ if (n > 0) {
+ --n;
+ h[n] = 'ZZ';
+ m[n] = 'ZZ';
+ s[n] = 'ZZ';
+ digits[0] = d2i(s[n][1]);
+ digits[1] = d2i(s[n][0]);
+ digits[2] = d2i(m[n][1]);
+ digits[3] = d2i(m[n][0]);
+ digits[4] = d2i(h[n][1]);
+ digits[5] = d2i(h[n][0]);
+ }
+ else {
+ h[n] = "00";
+ m[n] = "00";
+ s[n] = "NG";
+ // window.alert("ONG");
+ clearInterval(countdown);
+ }
}
else {
- h = i2d(digits[5]) + i2d(digits[4]);
- m = i2d(digits[3]) + i2d(digits[2]);
- s = i2d(digits[1]) + i2d(digits[0]);
+ h[n] = i2d(digits[5]) + i2d(digits[4]);
+ m[n] = i2d(digits[3]) + i2d(digits[2]);
+ s[n] = i2d(digits[1]) + i2d(digits[0]);
}
if (enabled) {
- e_h.innerHTML = h;
- e_m.innerHTML = m;
- e_s.innerHTML = s;
+ while (x > n) {
+ var block = timer[x].parentNode;
+ var br = timer[x].nextSibling;
+ block.removeChild(timer[x]);
+ block.removeChild(br);
+ --x;
+ }
+ e_h[n].innerHTML = h[n];
+ e_m[n].innerHTML = m[n];
+ e_s[n].innerHTML = s[n];
}
valid = true;
}, 1000);