eighth post - practical uses for recursive javascript