Another solution would be using Metamask on the client-side. They would do all the heavy lifting and provide you with all the functionality that you need.
To download: https://metamask.io/ Guide
Guide: https://github.com/MetaMask/faq/blob/master/DEVELOPERS.md
Another option you could use is directly as a browser module CNN: https://github.com/ethereum/web3.js/#as-browser-module
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script>