Re-implement client code to use Browser Support

Other fixes include move errors.js to server/* directory