A while back I posted this link as a proof of concept. It was well received. So here is an seriously updated version built upon the input I got. Thanks for taking the time to look.