66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
$(function() {
|
|
/* Convert score to numeric number for sorting */
|
|
$.tablesorter.addParser({
|
|
id: 'score',
|
|
format: function(s, table, cell, cellIndex) {
|
|
return s.replace(/¼/,'.25');
|
|
return s.replace(/½/,'.5');
|
|
return s.replace(/¾/,'.75');
|
|
},
|
|
type: 'numeric'
|
|
});
|
|
|
|
/* Sort a tournament table with tablesorter */
|
|
$('.tablesorter th.result').data('sorter', false);
|
|
$('.tablesorter th.points').data('sorter', 'score');
|
|
$('.tablesorter th.berger').data('sorter', 'score');
|
|
$('.tablesorter').tablesorter({
|
|
theme : 'blue',
|
|
widgets : ['zebra'],
|
|
sortReset : true,
|
|
sortRestart : true
|
|
});
|
|
|
|
/* Navigate through game moves by mouse wheel over the chess board */
|
|
$('#GameBoard').mousewheel(function(event) {
|
|
if (event.deltaY == -1) {
|
|
$('#forwardButton').click();
|
|
} else if (event.deltaY == 1) {
|
|
$('#backButton').click();
|
|
}
|
|
event.stopPropagation();
|
|
return false;
|
|
});
|
|
})
|
|
|
|
function customFunctionOnPgnGameLoad() {
|
|
/* Stylize pgn4web elements by Bootstrap */
|
|
$('#GameSelSelect').addClass('form-control');
|
|
$('#autoplayButton').click(refreshButtonset);
|
|
|
|
/* No titles for mouse wheel over the chess board */
|
|
$('#GameBoard .pieceImage').removeAttr('title');
|
|
}
|
|
|
|
function customFunctionOnMove() {
|
|
refreshButtonset();
|
|
|
|
/* Scroll the game text to the current move */
|
|
var $gameText = $('#GameText');
|
|
var $moveOn = $gameText.find('.moveOn:first');
|
|
var gtHeight = $gameText.height();
|
|
if ($moveOn.length) {
|
|
var height = $moveOn.height();
|
|
var y = $moveOn.position().top;
|
|
if (y < height * 5) {
|
|
$gameText.scrollTop($gameText.scrollTop() + y - height * 5);
|
|
} else if (y > (gtHeight - height * 6)) {
|
|
$gameText.scrollTop($gameText.scrollTop() + y + height * 6 - gtHeight);
|
|
}
|
|
}
|
|
}
|
|
|
|
function refreshButtonset() {
|
|
$('#GameButtons input').addClass('btn btn-default');
|
|
}
|