Contributed by Rob Cernich.
work in progress - feedback welcome ;)
/max
http://about.me/maxandersen