Now two libraries made the news: the excellent chess.js, which features support for FEN, PGN, legal moves, checkmate conditions and much more.
Chessboard.js on the other hand presents a board.
The two can be integrated easily. To make this task trivial I wrote the idea.js jQuery plugin that does just that: and connects to the ideachess.com server to present chess problems.
This would have not been possible with these great libraries:
All server code on ideachess
chess.js by Jeff Hlywa
powers the local game logic
chessboard.js by Chris Oakman
manages the board
jQuery.scrollintoview by Robert Koritnik
to scroll solutions easily
base64_decode by Kevin van Zonneveld
to overcome IE's lack of atob function.