How to create multiple canvas within a canvas?
===

I want to implement such a functionality that when a user chooses from provided design options, multiple canvas elements will be created dynamically within an already created canvas. The new created canvas elements must be aligned and not layered on each other. Then user can drag and drop images from outside as well as between these canvases. At the end, the whole design can be saved as a single image. 

It is exact as in the following URL,

http://custom.case-mate.com/diy/devices/iphone-4-barely-there-custom-case/

Any ideas or suggestions!