You could look at the OpenLayers API, particularly the Geometry classes. You can check for intersects, and have access to vertices etc. I've implemented point buffers in the past just with OpenLayers. Unions may be trickier though.
For more complex operations you may want to do the processing server-side, and pass results back in WKT or GeoJSON, both of which OpenLayers can display. See this Union tutorial for an example.
I'm pretty much done with my port of JTS which is a pure JS port and it's available at https://github.com/bjornharrtell/jsts
At the current version (0.9.1) it supports the core functionality of JTS by which I mean predicates and overlays.
You could have a look on geoscript (implemented in severals langauages including JS)
If you need this for Google AppEngine, from what I read, JTS is officially compatible with Google App Engine. There is a basic demo at http://giscloud.appspot.com/