1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- $(function() {
- /* socket.io */
- $socket.on('move', function (data) {
- movePiece(from=data.move.from, to=data.move.to, promotion=data.move.promotion, rcvd=true);
- if (typeof document.hidden === undefined) return;
- if (document.hidden) {
- var title = $('title').text();
- $('title').text('* ' + title);
- $(window).on('focus', removeAsterisk);
- function removeAsterisk(e) {
- $('title').text(title);
- $(window).off('focus', removeAsterisk);
- }
- }
- });
- function movePieceFromHandler(e) {
- var piece = $(this);
- if ((piece.hasClass('white') && $side !== 'w') ||
- (piece.hasClass('black') && $side !== 'b')) {
- if ($piece) {
- movePiece(
- from=$piece.parent().data('id').toLowerCase(),
- to=$(this).parent().data('id').toLowerCase(),
- promotion=$('#promotion option:selected').val()
- );
- }
- } else {
- if ($chess.turn() !== $side) {
- return false;
- }
- if (e && $piece && isSelected($(this).parent())) {
- unselectPiece($piece.parent());
- $piece = null;
- } else {
- if ($piece) {
- unselectPiece($piece.parent());
- $piece = null;
- }
- $piece = $(this);
- selectPiece($piece.parent());
- }
- }
- if (e) { // only on click event, not drag and drop
- e.stopImmediatePropagation();
- e.preventDefault();
- }
- }
- function dndSupported() {
- return 'draggable' in document.createElement('span');
- }
- function dragstartHandler(e) {
- var el = $(this);
- $drgSrcEl = el;
- $drgSrcEl.parent().addClass('moving');
- e.originalEvent.dataTransfer.effectAllowed = 'move';
- e.originalEvent.dataTransfer.setData('text/html', el.html());
- movePieceFromHandler.call(this, undefined);
- }
- function dropHandler(e) {
- e.stopPropagation();
- e.preventDefault();
- movePieceToHandler.call(this, undefined);
- }
- });
|