(function () {



function index_bundle (list, index) {
  if (!list.length) {return []}
  let bundles = []
  let offset = 0
  let value = list[0].item[index]
  for (var i = 0; i < list.length; i++) {
    if (list[i].item[index] != value) {
      offset++
      value = list[i].item[index]
    }
    if (offset > bundles.length - 1) {
      bundles[offset] = []
    }
    bundles[offset].push(list[i])
  }
  return bundles
}



/*
 * DOM
 */

const exhibitions_cont = document.createElement('div');


function render_header (root_el) {
  const header_row = document.createElement('div');
  header_row.className = 'row';
  root_el.appendChild(header_row);

  const header_col = document.createElement('div');
  header_col.className = 'col_10 sm_col_11 selecta_h1';
  header_row.appendChild(header_col);

  const title_cont = document.createElement('div');
  title_cont.className = 'exhibition_index_page__title_cont';
  header_col.appendChild(title_cont);

  const title_h1 = document.createElement('h1');
  title_h1.innerText = 'Exhibitions';
  title_cont.appendChild(title_h1);
}


function update_exhibitions () {
  exhibitions_cont.innerHTML = '';

  const bundled_items = index_bundle(window_api_data.page_fields.items,  'year');
  render_bundled_items(bundled_items);
}




function render_bundled_items (bundled_items) {
  for (let i=0; i<bundled_items.length; i++) {
    const index_html = bundled_items[i].length ? bundled_items[i][0].item.year : '';

    const section_cont = document.createElement('div');
    exhibitions_cont.appendChild(section_cont);

    const index_cont = document.createElement('div');
    index_cont.className = 'exhibition_index_page__index_cont selecta_h4';
    section_cont.appendChild(index_cont);

    const index_el = document.createElement('div');
    index_el.className = 'exhibition_index_page__index';
    index_el.innerHTML = index_html;
    index_cont.appendChild(index_el);

    window.render_discovery_stream(exhibitions_cont, {items: [bundled_items[i]]});
  }
}



function render_exhibition_index_page (root_el) {
  const exhibition_index_page = document.createElement('div');
  exhibition_index_page.className = 'exhibition_index_page';
  root_el.appendChild(exhibition_index_page);

  render_header(exhibition_index_page);

  exhibition_index_page.appendChild(exhibitions_cont);

  update_exhibitions();
}

window.render_exhibition_index_page = render_exhibition_index_page;

})();
