JS is just a bad idea for this