Thanks for the links. I'm afraid the code examples are far more advanced than my current level of understanding and whilst I don't doubt it would, if I could implement it, be a much more elegant solution than I could come up with I think I would be better sticking to a solution I can maintain...