var originalDisplay = new Array();

function show(id) {
  document.getElementById(id).style.visibility = 'visible';
}

function hide(id) {
  document.getElementById(id).style.visibility = 'hidden';
}

function display_obj(obj) {
  if (obj.style.display == 'none')
    obj.style.display = originalDisplay[obj];
}

function undisplay_obj(obj) {
  if (obj.style.display != 'none') {
    originalDisplay[obj] = obj.style.display;
    obj.style.display = 'none';
  }
}

function display(id) {
  display_obj(document.getElementById(id)); 
}

function undisplay(id) {
  undisplay_obj(document.getElementById(id));
}

function _get_row_of_form_field(input_elem_id) {
  var input_elem = document.getElementById(input_elem_id);
  var parent_row = input_elem.parentNode;
  while (parent_row.tagName != 'TR')
    parent_row = parent_row.parentNode;
  return parent_row;
}

function display_form_field(field_name) {
  display_obj(_get_row_of_form_field('id_' + field_name));
}

function undisplay_form_field(field_name) {
  undisplay_obj(_get_row_of_form_field('id_' + field_name));
}

function externalLinks() {
  if (!document.getElementsByTagName) return;
  var anchors = document.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href") &&
        anchor.getAttribute("rel") == "external")
      anchor.target = "_blank";
  }
}

function confirm_and_delete(record_name, delete_url) {
  if (confirm('Are you sure you want to delete ' + record_name + '?'))
    window.location = delete_url;
}

function set_focus_on_first_form_field() {
  if (!document.getElementsByTagName) return;
  var forms = document.getElementsByTagName("form");
  // skip the first two forms (help-search-form, corpus-search-form)
  if (forms.length <= 2) return;
  var form = forms[2]; 
  if (form.elements[0] == null) return;
  var i;
  for(i=0; i<form.length; i++) {
    var e = form.elements[i];
    if(e.type != "hidden" && !e.disabled && !e.readOnly && e.type == "text") {
      form.elements[i].focus();
      break;
    }
  }
}
