var moves = [];
var move_override = 0;
+var entity_map = {
+ "&": "&",
+ "<": "<",
+ ">": ">",
+ '"': '"',
+ "'": ''',
+};
+
+function escape_html(string) {
+ return String(string).replace(/[&<>"']/g, function (s) {
+ return entity_map[s];
+ });
+}
+
var get_game = function() {
var game = new Chess();
for (var i = 0; i < move_override; ++i) {
[ "AWin%", TYPE_RATIO ],
];
var sort_by = 1;
+var direction = 1;
var show_lines = function(data, game) {
var moves = data['moves'];
$('#numviewers').text(data['opening']);
+
+ if (data['root_game']) {
+ var text = escape_html(data['root_game']['white']);
+ if (data['root_game']['white_elo']) {
+ text += " (" + escape_html(data['root_game']['white_elo']) + ")";
+ }
+ text += " – " + escape_html(data['root_game']['black']);
+ if (data['root_game']['black_elo']) {
+ text += " (" + escape_html(data['root_game']['black_elo']) + ")";
+ }
+ text += " " + escape_html(data['root_game']['result']).replace(/-/, "–") + "<br />";
+ if (data['root_game']['eco']) {
+ text += "[" + escape_html(data['root_game']['eco']) + "] ";
+ }
+ text += "(" + data['root_game']['moves'] + ") ";
+ text += escape_html(data['root_game']['event']) + " " + escape_html(data['root_game']['date']);
+ $('#gamesummary').html(text);
+ }
+
var total_num = 0;
for (var i = 0; i < moves.length; ++i) {
var move = moves[i];
$(th).text(headings[i][0]);
(function(new_sort_by) {
$(th).click(function() {
- sort_by = new_sort_by;
+ if (sort_by == new_sort_by) {
+ direction = -direction;
+ } else {
+ sort_by = new_sort_by;
+ direction = 1;
+ }
show_lines(data, game);
});
})(i);
lines.push(line);
}
- lines.sort(function(a, b) { return b[sort_by] - a[sort_by]; });
+ lines.sort(function(a, b) { return direction * ( b[sort_by] - a[sort_by]); });
var tbl = $("#lines");
tbl.empty();
var line = lines[i];
var tr = document.createElement("tr");
+ if (line[0] === undefined || line[0] === null) {
+ $(tr).addClass("totals");
+ }
+
for (var j = 0; j < line.length; ++j) {
if (line[j] === null) {
add_td(tr, "");