Hi Jim,
it wasn't that much work. Documenting it was the larger portion ;-)
If you have any questions, please let me know. If you have any trouble understanding the code, I'll explain line-by-line if necessary.