/* (c) Sam Gratrix */


function paste(id, cont)
{
  document.getElementById(id).innerHTML = cont;
}


var global_id_person = '000.001';
var global_id_tree   = '000.001';

var global_do_control  = 1;
var global_do_stats    = 0;
var global_do_index    = 0;
var global_do_tree     = 0;
var global_do_chain    = 1;
var global_do_person   = 1;
var global_do_map      = 0;
var global_do_birth    = 1;
var global_do_baptism  = 1;
var global_do_marriage = 1;
var global_do_death    = 1;
var global_do_census   = 0;


/* ----------------------------------------------------------------------------------------- */

function front_page()
{
  update_tree(0);
  update_stats(0);
  update_index(0);

  update_chain(0);
  update_person(0);
  update_map(0);
  update_birth(0);
  update_baptism(0);
  update_marriage(0);
  update_death(0);
  update_census(0);

  paste('control', control_front());
}

function main_init(myid)
{
  global_id_person = myid;
  global_id_tree   = myid;

  update_tree(0);
  update_stats(0);
  update_index(0);

  update_chain(1);
  update_person(1);
  update_map(0);
  update_birth(1);
  update_baptism(1);
  update_marriage(1);
  update_death(1);
  update_census(0);

  update_control(1);
}

function paste_update(myid)
{
  global_id_person = myid;

  update_chain(global_do_chain);
  update_person(global_do_person);
  update_map(global_do_map);
  update_birth(global_do_birth);
  update_baptism(global_do_baptism);
  update_marriage(global_do_marriage);
  update_death(global_do_death);
  update_census(global_do_census);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_control()
{
  update_control(1 - global_do_control);
}

function update_control(state)
{
  global_do_control = state;

  var html = '';

  if(global_do_control)
  {
    html += '<table cellspacing=1 cellpadding=0 border=0 class="bor1"><tr>';
    html += '<td class="button2"><a href="#" onclick="front_page();"><b>Home</b></a></td>'
    html += '<td class="button' + global_do_control  +'"><a href="#" onclick="toggle_control();  "><b>Control</b></a></td>'
    html += '<td class="buttonX">&nbsp;</td>';
    html += '<td class="button' + global_do_stats    +'"><a href="#" onclick="toggle_stats();    "><b>Stats</b></a></td>'
    html += '<td class="button' + global_do_index    +'"><a href="#" onclick="toggle_index();    "><b>Index</b></a></td>'
    html += '<td class="button' + global_do_tree     +'"><a href="#" onclick="toggle_tree();     "><b>Tree</b></a> &#8226; <a href="#" onclick="contol_tree_sync();"><b>Sync</b></a></td>'
    html += '<td class="buttonX">&nbsp;</td>';
    html += '<td class="button' + global_do_chain    +'"><a href="#" onclick="toggle_chain();    "><b>Line</b></a></td>'
    html += '<td class="button' + global_do_person   +'"><a href="#" onclick="toggle_person();   "><b>Person</b></a></td>'
    html += '<td class="button' + global_do_map      +'"><a href="#" onclick="toggle_map();      "><b>Map</b></a></td>'
    html += '<td class="cycle'  + global_do_birth    +'"><a href="#" onclick="toggle_birth();    "><b>Birth</b></a></td>'
    html += '<td class="cycle'  + global_do_baptism  +'"><a href="#" onclick="toggle_baptism();  "><b>Baptism</b></a></td>'
    html += '<td class="cycle'  + global_do_marriage +'"><a href="#" onclick="toggle_marriage(); "><b>Marriage</b></a></td>'
    html += '<td class="cycle'  + global_do_death    +'"><a href="#" onclick="toggle_death();    "><b>Death</b></a></td>'
    html += '<td class="button' + global_do_census   +'"><a href="#" onclick="toggle_census();   "><b>Census</b></a></td>'
    html += '</tr></table>';
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('control', html);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_stats()
{
  update_stats(1 - global_do_stats);
}

function update_stats(state)
{
  global_do_stats = state;

  var html = '';

  if(global_do_stats)
  {
    html += '<br>&nbsp;&nbsp;Births    &nbsp;&nbsp;&nbsp;' + birth_set.report();
    html += '<br>&nbsp;&nbsp;Baptisms  &nbsp;&nbsp;&nbsp;' + baptism_set.report();
    html += '<br>&nbsp;&nbsp;Marriages &nbsp;&nbsp;&nbsp;' + marriage_set.report();
    html += '<br>&nbsp;&nbsp;Deaths    &nbsp;&nbsp;&nbsp;' + death_set.report();
    html += '<p>';
    html += '<br>&nbsp;&nbsp;1851 Census &nbsp;&nbsp;&nbsp;' + census_set_1851.report();
    html += '<br>&nbsp;&nbsp;1861 Census &nbsp;&nbsp;&nbsp;' + census_set_1861.report();
    html += '<br>&nbsp;&nbsp;1871 Census &nbsp;&nbsp;&nbsp;' + census_set_1871.report();
    html += '<br>&nbsp;&nbsp;1881 Census &nbsp;&nbsp;&nbsp;' + census_set_1881.report();
    html += '<br>&nbsp;&nbsp;1891 Census &nbsp;&nbsp;&nbsp;' + census_set_1891.report();
    html += '<br>&nbsp;&nbsp;1901 Census &nbsp;&nbsp;&nbsp;' + census_set_1901.report();
    html += '<p>';
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('stats', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_index()
{
  update_index(1 - global_do_index);
}

function update_index(state)
{
  global_do_index = state;

  var html = '';

  if(global_do_index)
  {
    html = paste_index();
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('index', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function contol_tree_sync()
{
  global_id_tree = global_id_person;

  update_tree(1);
}

function toggle_tree()
{
  update_tree(1 - global_do_tree);
}

function update_tree(state)
{
  global_do_tree = state;

  var html = '';

  if(global_do_tree)
  {
    html = paste_tree(global_id_tree, 3);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('tree', html);

  if(global_do_tree)
  {
    paste_tree_execute();
  }

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_chain()
{
  update_chain(1 - global_do_chain);
}

function update_chain(state)
{
  global_do_chain = state;

  var html = '';

  if(global_do_chain)
  {
    html = paste_chain(global_id_person);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('chain', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_person()
{
  update_person(1 - global_do_person);
}

function update_person(state)
{
  global_do_person = state;

  var html = '';

  if(global_do_person)
  {
    html = paste_person(global_id_person);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('person', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_map()
{
  update_map(1 - global_do_map);
}

function update_map(state)
{
  global_do_map = state;

  document.getElementById("map").style.display = ((state) ? 'block' : 'none');

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_birth()
{
  update_birth(global_do_birth + 1);
}

function update_birth(state)
{
  global_do_birth = state % 3;

  var html = ''

  if(global_do_birth)
  {
    html = birth_set.display(global_id_person, 2 - global_do_birth);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('birth', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_baptism()
{
  update_baptism(global_do_baptism + 1);
}

function update_baptism(state)
{
  global_do_baptism = state % 3;

  var html = ''

  if(global_do_baptism)
  {
    html = baptism_set.display(global_id_person, 2 - global_do_baptism);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('baptism', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_marriage()
{
  update_marriage(global_do_marriage + 1);
}

function update_marriage(state)
{
  global_do_marriage = state % 3;

  var html = ''

  if(global_do_marriage)
  {
    html = marriage_set.display(global_id_person, 2 - global_do_marriage);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('marriage', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_death()
{
  update_death(global_do_death + 1);
}

function update_death(state)
{
  global_do_death = state % 3;

  var html = ''

  if(global_do_death)
  {
    html = death_set.display(global_id_person, 2 - global_do_death);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('death', html);

  update_control(1);
}


/* ----------------------------------------------------------------------------------------- */

function toggle_census()
{
  update_census(1 - global_do_census);
}

function update_census(state)
{
  global_do_census = state;

  var html = '';

  if(global_do_census)
  {
    html += census_set_1841.display(global_id_person);
    html += census_set_1851.display(global_id_person);
    html += census_set_1861.display(global_id_person);
    html += census_set_1871.display(global_id_person);
    html += census_set_1881.display(global_id_person);
    html += census_set_1891.display(global_id_person);
    html += census_set_1901.display(global_id_person);
  }

  if(html == '') html = '<table class="voidtable"></table>';

  paste('census', html);

  update_control(1);
}

