function show(id) {
  var docEl = document.getElementById(id);
  if (!docEl) return true;
  docEl.style.visibility = "visible";
  docEl.style.display = "block";
}

function hide(id) {
  var docEl = document.getElementById(id);
  if (!docEl) return true;
  docEl.style.visibility = "hidden";
  docEl.style.display = "none";
}

function showElement(docEl) {
  docEl.style.visibility = "visible";
  docEl.style.display = "block";
}

function hideElement(docEl) {
  docEl.style.visibility = "hidden";
  docEl.style.display = "none";
}

/**
 * Изменяет видимость элемента. 
 * То есть скрывает элемент, если он виден, и показывает, если скрыт.
 * @param id ID элемента, который нужно скрыть или показать.
 */
function toggleVisibility(id) {
  var mDiv = document.getElementById(id);
  if (mDiv.style.display == 'none') {
    mDiv.style.display = '';
  } else {
    mDiv.style.display = 'none';
  }
}

/**
 * Изменяет видимость элемента и соответственно изменяет надпись кнопки, осуществляющей действие. 
 * То есть скрывает элемент, если он виден, и показывает, если скрыт.
 * @param id ID элемента, который нужно скрыть или показать.
 * @param showId ID элемента, который содержит ссылку "скрыть/показать".
 * @param showText Текст ссылки, при нажатии на которую элемент должен быть показан.
 * @param hideText Текст ссылки, при нажатии на которую элемент должен быть скрыт. 
 */
function advancedToggleVisibility(id, showId, showText, hideText) {
  var el = document.getElementById(id);
  var showEl = document.getElementById(showId);
  if (el.style.display == 'none') {
    el.style.display = '';
    showEl.innerHTML = hideText;
  } else {
    el.style.display = 'none';
    showEl.innerHTML = showText;
  }
}