var currentWidth = 0;

removeClassName = function (elm, toRemove){
  var classnames = elm.className.split(" ");
  var result = [];
  for (classname in classnames) {
    if (classname = toRemove) {
      continue;
    }
    result.push(classname);
  }
  elm.className = result.join(" ");
}

addClassName = function (elm, toAdd){
  elm.className += " " + toAdd;
}

function updateLayout() {
  if (window.innerWidth != currentWidth) {
    currentWidth = window.innerWidth;

    var orient = currentWidth == 320 ? "portrait" : "landscape";
    var body = document.getElementsByTagName("BODY")[0]

    removeClassName(body, orient == "portrait" ? "landscape" : "portrait");
    addClassName(body, orient);

    $$("div.group > div.elm:last-child").each(function(e) {e.style.marginBottom = "-8px"});

    setTimeout(function() {
      window.scrollTo(0, 1);
    }, 100);
  }
}

addEventListener("load", function() {setTimeout(updateLayout, 0);}, false);

/* safari does not support last-child selector. */
addEventListener("load", function() {
  var elements = document.evaluate(".//div[contains(concat(' ', @class, ' '), ' group ')]/div[position()=last()]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  for (var i = 0, length = elements.snapshotLength; i < length; i++) {
    var element = elements.snapshotItem(i);
    element.style.marginBottom = "-8px";
  }
}, false);

setInterval(updateLayout, 400);

