function unpack(_items, fields) {
  var items = {};
  for (var i = 0; i < _items.length; i++) {
    var _item = _items[i];
    var item = {};
    for (var j = 0; j < fields.length; j++) {
      item[fields[j]] = _item[j+1];
    }
    items[_item[0].toString()] = item;
  }
  return items;
}
    
var platform_map = unpack(platforms, ['label', 'code']);
var region_map = unpack(regions, ['label', 'code']);
var company_map = unpack(companies, ['label']);
var identifier_map = unpack(identifiers, ['label', 'code', 'l', 'm', 's']);

function dw(s) {
  document.write(s);
}

function randomHeader() {
  var id = Math.ceil(Math.random() * 201).toString();
  while (id.length < 3) id = '0' + id;
  return ('<img src="/images/head_' + id + '.jpg" alt="" width="400" height="60" />');
}

function year() {
  return (new Date()).getFullYear();
}

function regionFlag(id, xtra) {
  var region = region_map[id.toString()];
  var html = '<img src="/images/flag_' + region['code'].toLowerCase() + '.gif" width="22" height="16" border="0" title="' + region['label'] + '"';
  if (xtra) {
   html += ' ' + xtra + ' ';
  }
  html += ' />';
  return html;
}

var rf = regionFlag;

function platformIcon(id) {
  var platform = platform_map[id.toString()];
  return '<img src="/images/icon_' + platform['code'].toLowerCase() + '.gif" width="16" height="16" border="0" title="' + platform['label'] + '" />';
}

var pi = platformIcon;

function companyLabel(id) {
  return company_map[id.toString()]['label'];
}

function gameIdentifiers(ids, size) {
  var snippets = [];
  for (var i = 0; i < ids.length; i++) {
    var identifier = identifier_map[ids[i].toString()];
    if (size != '' && identifier[size] == 1) {
      var snippet = '<img src="/images/identifier_' + identifier['code'].toLowerCase() + '_' + size + '.gif" alt="';
      snippet += identifier['label'] + '" title="' + identifier['label'] + '" border="0" align="top">';
    } else {
      var snippet = identifier['label'];
    }
    snippets.push(snippet);
  }
  return snippets.join(', ');
}

