Hello,
1 - The classname is added and removed by the function within hikashop.js file.
And yes, there is a javascript trigger ; trigger which are used by cart notification plugins to interact when a product is added to the cart or wishlist. These triggers are using the "registerAjax / fireAjax" system which is also define in the hikashop.js file.
But there is just a trigger when a product has been added ; not a trigger before that.
2 - That button is handle in the checkout / show_block_buttons view. If you want to customize it, it's the best way.
Regards,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.