This is based on the show/hide functionality already used in the backend in various places with a nice no-js fallback.o