the glitch I saw is this.

var mode = data.objects.mode_occupied.state;
results in undefined this causes the browser to load a bad image.

I am testing against my Pi and its not fully configured and I have not set the current mode.

By moving buttons what i was referring to is this.
  I see in the code that it will display the icons from left to right but it will show the "current' mode icon first so if I am home it will be on the left if I am at work then work will be first. It just seemed a little odd. When I get home I will touch this tab and click on "home" and it should highlight that I am now home. I figure It would be easier to not change the order of the icons just show one as Active and then I press the same part of my touch screen every day I come home and every time I leave.

I see these icons as indicators as well as buttons to change the mode and so I guess I feel that buttons should not move around the screen as it seems they will with this code

          for (var i = 0;i < count; i++) {
            if (modes[i] != mode) {
              modestable += '<td align="center"><img src="images/icons/' + modes[i] + '_mode.png" alt="' + modes[i] + ' mode" /></td>';

I have an older Archos A10 running an old version of a hacked android 2.2.1 froyo. In firefox it looks fine and it also works with the stock android browser.

A simple button to reach the top "main" menu on every screen would be a typical design or a back button on every sub page. I agree a timer could easily be implemented to force the screen back to home after idle. Several idle detection methods exist for jquery.

 Sean M