I've had success with this for almost a year now.
It allows you to define a starting point then width and height to indicate
your crop area.
You then send those numbers to your server side image processing script.
You will need to look for something else using flash and/or <canvas> if you
really want to create the thumbnails on the client side.
Also the way I use this cropper does not involve Ajax at all. I upload the
file through the browser normally then choose from a list of files the one
I want to crop.
The only trick then is to send the message back to the outer page that the
> upload is complete.
That's not so tricky if using pop up windows rather than iframes (I imagine
it should be a similar process with iframes)
Have a link on your main page that opens a new window with the form to
upload the image. Upload the image without ajax, show the uploaded image to
the user with the cropping UI. Submit the numbers of the selected area back
to the server to create the actual thumbnail then show a success message to
thumbnail. When the user clicks to close that window you can have the JS
variables passed to the parent window then script in that window can insert
the thumbnail into that page.