making the door work:

Add this to globals.js:

var g_door=true;

Change one line in set_scene:

  if (n==9 && g_door) Show('door');

door_clicked function

function door_clicked(image) {
  Hide(image.id);
  g_door=false;
  g_layout[9]=[17,8,0,0];
  set_scene(9);
}
the shapes

Click on the blue shape to see what we are aiming for next.

As you can see, it's exactly the same as the door except that I set up a shape_clicked function to deal with all the shapes but you will still need 7 global variables like g_blue.

Off you go!