some more client-side js stuff