misc js, misc fixes
rewrite hide.js, add hide reasons