// resize menu items

function copyObject(from) {
  if (from == null) return null;
  var to = {};
  for (var i in from)
    to[i] = typeof(from[i]) == 'object' ? copyObject(from[i]) : from[i];
  return to;
}

function inheritFormat(to, from) {
  if (from == null) return null;
  for (var i in from)
    if (from[i] || from[i] == null)
      to[i] = typeof(from[i]) == 'object' ? copyObject(from[i]) : from[i];
}

function resizeItems(items, format) {
  var tb = document.getElementById('Bench');
  var tbi = document.getElementById('BenchInner');
  if (!format) format = {};
  var levelFormat = copyObject(format);
  inheritFormat(levelFormat, items[0]);

  for (var i = 1; i < items.length; i++) {
    if (!items[i]) continue;
    if (!items[i].format) items[i].format = {};
    var itemFormat = copyObject(levelFormat);
    if (items[i].format) inheritFormat(itemFormat, items[i].format);
    var rw = itemFormat.size[1] - itemFormat.style.border * 2;
    if (itemFormat.image && itemFormat.imgsize) rw -= itemFormat.imgsize[1];
    if (items[i].sub && itemFormat.arrow && itemFormat.arrsize) rw -= itemFormat.arrsize[1];
    tbi.className = itemFormat.style.css.ON;
    tb.style.width = rw + 'px';
    tbi.innerHTML = items[i].code;
    var nh = tbi.offsetHeight + itemFormat.style.border * 2;
    items[i].format.size = [nh, itemFormat.size[1], itemFormat.size[0]];
    var noy = itemFormat.itemoff[0] + (i > 1 ? items[i - 1].format.size[0] - items[i - 1].format.size[2] : 0);
    items[i].format.itemoff = [noy, itemFormat.itemoff[1]];
    if (items[i].sub) resizeItems(items[i].sub, itemFormat);
  }
}
