(1)
One thing that you need to keep in mind is that the image and all code that can manipulate the image must be executed on the server. The image is not stored on the client like it could be in an ActiveX, No-Touch Deploy, or Java applet, so only basic things will be available on the client side using JavaScript.
Zooming in or out is something that the control was designed to handle on the client right out of the box. This is why you can zoom in or out using JavaScript. Zooming in or out doesn't actually change the image at all, it just changes what we see. A rotate does alot more to the image than a zoom, and since the underlying image changes size there is work that needs to be done on the server.
You can set all of the WebImageViewer's properties (get/set) using JavaScript, you cannot 'do work' on the image in JavaScript. A basic rule of thumb is that if the underlying image changes in any way, you will need to use RemoteInvoke. For viewing changes, like panning, zooming, or fitting, we can take shortcuts (these are properties). We use these shortcuts to optimize the user experience.
(2)
The .js files were never meant to be viewed, as the documentation describes all public 'atala' functions that you have access to. The .js files have been compressed to make the control load faster. The statement is in the documentation so that you can name your own public methods without conflict.
In the past, certain components have named their constructors so generically that they interfered with our users' code. We prefix all of our functions with atala so if you (or any 3rd party components) name a JavaScript function WebImageViewer on the same page, it won't conflict with ours (atalaWebImageViewer).
David Cilley
My AJAX Imaging BlogAtalasoft Development Team