Hmmm, sorry - all of the blank lines have been stripped, making it hard to read my code - especially as there aren't many comments. [Big Grin]

Feel free to contact me directly if anyone would like more info on how this all works.

Cheers,
Michael.