* @type {Number}
* @const
* @private */
-var SCRIPT_VERSION = 2016032200;
+var SCRIPT_VERSION = 2016032201;
/**
* The current backend URL.
* name: string,
* url: string,
* id: string,
- * score: Object
+ * score: =Object,
+ * result: =string,
* }>}
* @private
*/
game_span.appendChild(game_a);
}
- var score = " (" + format_short_score(game['score']) + ")";
+ var score;
+ if (game['result']) {
+ score = " (" + game['result'] + ")";
+ } else {
+ score = " (" + format_short_score(game['score']) + ")";
+ }
game_span.appendChild(document.createTextNode(score));
games_div.appendChild(game_span);
if (current_data['games']) {
current_games = current_data['games'];
possibly_switch_game_from_hash();
- update_game_list(current_data['games']);
} else {
current_games = null;
- update_game_list(null);
}
+ update_game_list(current_games);
// The headline. Names are always fetched from current_data;
// the rest can depend a bit.
// The <title> contains a very brief headline.
var title_elems = [];
- if (data['score']) {
- title_elems.push(format_short_score(data['score']).replace(/^ /, ""));
+ if (data['position'] && data['position']['result']) {
+ title_elems.push(data['position']['result']);
+ } else if (data['score']) {
+ title_elems.push(format_short_score(data['score']));
}
if (last_move !== null) {
title_elems.push(last_move);
update_clock();
// The score.
- if (current_display_line) {
+ if (current_display_line && !current_display_line_is_history) {
if (current_display_line.score) {
$("#score").text(format_long_score(current_display_line.score));
} else {
}
window['next_move'] = next_move;
+var next_game = function() {
+ if (current_games === null) {
+ return;
+ }
+
+ // Try to find the game we are currently looking at.
+ for (var game_num = 0; game_num < current_games.length; ++game_num) {
+ var game = current_games[game_num];
+ if (game['url'] === backend_url) {
+ var next_game_num = (game_num + 1) % current_games.length;
+ switch_backend(current_games[next_game_num]['url'], current_games[next_game_num]['hashurl']);
+ return;
+ }
+ }
+
+ // Couldn't find it; give up.
+}
+
var update_historic_analysis = function() {
if (!current_display_line_is_history) {
return;
}
// End of dragging-related code.
-var pad = function(val, num_digits) {
- var s = val.toString();
- while (s.length < num_digits) {
- s = " " + s;
- }
- return s;
-}
-
var fmt_cp = function(v) {
if (v === 0) {
return "0.00";
}
if (score[0] === 'm') {
if (score[2]) { // Is a bound.
- return score[2] + "\u00a0M" + pad(score[1], 3);
+ return score[2] + "\u00a0M " + score[1];
} else {
- return "M" + pad(score[1], 3);
+ return "M " + score[1];
}
} else if (score[0] === 'd') {
return "TB draw";
if (score[2]) { // Is a bound.
return score[2] + "\u00a0" + fmt_cp(score[1]);
} else {
- return pad(fmt_cp(score[1]), 5);
+ return fmt_cp(score[1]);
}
}
return null;
redraw_arrows();
});
$(window).keyup(function(event) {
- if (event.which == 39) {
+ if (event.which == 39) { // Left arrow.
next_move();
- } else if (event.which == 37) {
+ } else if (event.which == 37) { // Right arrow.
prev_move();
+ } else if (event.which >= 49 && event.which <= 57) { // 1-9.
+ var num = event.which - 49;
+ if (current_games && current_games.length >= num) {
+ switch_backend(current_games[num]['url'], current_games[num]['hashurl']);
+ }
+ } else if (event.which == 78) { // N.
+ next_game();
}
});
window.addEventListener('hashchange', possibly_switch_game_from_hash, false);