Internal Tools This code is messy. I offer no apologies. I offer no support. It works, and that's all that matters. Don't like it? Don't use it.