function getelement(id) {
  var element;

  if (document.all)
    element = document.all[id];
  else
    element = document.getElementById(id);
  
  return (element);
}

function show_elements() {
  for (var i=0; i<arguments.length; i++) {
    element = getelement(arguments[i]);
    element.style.visibility = "visible";
  }
}

function hide_elements() {
  for (var i=0; i<arguments.length; i++) {
    element = getelement(arguments[i]);
    if (element)
      element.style.visibility = "hidden";
  }
}

function toggle_visibility() {
  var element, vistax;

  for (var i=0; i<arguments.length; i++) {
    element = getelement(arguments[i]);
    vista = (element.style.visibility == "hidden") ? "visible"  : "hidden";
    element.style.visibility = vista;
  }
}

function give_focus(id) {
  var element;

  element = getelement(id);
  element.focus();
}

function toggle_focus() {
  var element;

  for (var i=0; i<arguments.length; i++) {
    element = getelement(arguments[i]);
    if ((element.offsetLeft > 0) && (element.offsetTop > 0)) {
      element.focus();
      return;
    }
  }
}

function move_from_left(id, from, to, nbstep) {
  var element;

  element =  getelement(id);
  if (nbstep > 0) {
    from += (to - from) / nbstep;
    nbstep--;
    element.style.left = from+"%";
    setTimeout('move_from_left("'+id+'",'+from+','+to+','+nbstep+')', 20);
  }
}

function move_from_top(id, from, to, nbstep) {
  var element;

  element =  getelement(id);
  if (nbstep > 0) {
    from += (to - from) / nbstep;
    nbstep--;
    element.style.top = from+"%";
    setTimeout('move_from_top("'+id+'",'+from+','+to+','+nbstep+')', 20);
  }
}

function switch_auth_reg() {
  
  toggle_visibility("reg_but", "auth_but");

  move_from_left('auth_form', 50, -50, 100);
  move_from_top('reg_form', -50, 50, 100);

  give_focus("email");
}

function switch_reg_auth() {
  
  toggle_visibility("reg_but", "auth_but");

  move_from_left('auth_form', -50, 50, 80);
  move_from_top('reg_form', 50, -50, 80);

  give_focus("login");
}

function daylist(id, last, selected) {
  var selector;

  selector = getelement(id);
  for (var day = 1; day <= last; day++)
    selector.options[day-1] = new Option(day, day);
  selector.options.selectedIndex = selected-1;
}

function sellist(id) {
  var selector;

  selector = getelement(id);
  for (var i=1; i<arguments.length/2; i++)
    selector.options[i-1] = new Option(arguments[2*i-1], arguments[2*i]);
}

function select(id, selected) {
  var selector;

  selector = getelement(id);
  for (var i=0; i<selector.options.length; i++)
    if (selector.options[i].value == selected)
      selector.options.selectedIndex = i;
}

function monthlist(id, selected) {
  sellist(id, 'janvier', 1, 'février', 2, 'mars', 3, 'avril', 4,
	  'mai', 5, 'juin', 6, 'juillet', 7, 'août', 8, 'septembre', 9,
	  'octobre', 10, 'novembre', 11, 'décembre', 12);
  select(id, selected);
}

function entry(id, day, amount, accid, catid, desc) {
  var table;
  var row;

  table = getelement('table');
  row = table.rows[table.rows.length];
  alert('row: '+row);
  row.cells[0].innerHTML = day;
  row.cells[1].innerHTML = amount;
  row.cells[2].innerHTML = accid;
  row.cells[3].innerHTML = catid;
  row.cells[4].innerHTML = desc;
  row.cells[5].innerHTML = '';
  write(row);
}
