http://www.ozonehouse.com/mark/blog/code/PeriodicTable.html

(Post originally written by Lennart Regebro on the old Nuxeo blogs.)