cm-chessboard
Example: Input enabled with move validation and promotion dialog
Input enabled for white.
chess.js
does the validation and answers with random moves.