/*
 * Hide an element if visible or show it if hidden
 */
function toggleDisplay(elementID)
{
  if (isHidden(elementID))
  {
    showElement(elementID);
  }
  else
  {
    hideElement(elementID);
  }
}

/*
 * Hide an element
 */
function hideElement(elementID)
{
  if (document.getElementById)
  {
    document.getElementById(elementID).style.display = 'none';
  }
}

/*
 * Show an element
 */
function showElement(elementID)
{
  if (document.getElementById)
  {
    document.getElementById(elementID).style.display = 'block';
  }
}

/*
 * Return true if an element is hidden, false otherwise
 */
function isHidden(elementID)
{
  d = document.getElementById(elementID).style.display;

  return (d == null || d == 'none');
}

/*
 * Return all the elements described with a given tag, starting from a given parent node
 */
function getElementsByTagFromParent(tag, parent)
{
  if (!document.getElementsByTagName)
  {
    return false;
  }
  else
  {
    return parent.getElementsByTagName(tag);
  }
}

/*
 * Return all the elements described with a given tag
 */
function getElementsByTag(tag)
{
    return document.getElementsByTagName(tag);
}

/*
 * Limit the number of characters that a user can type in a textarea
 */
function limitTextArea(limitField, limitCount, limitNum)
{
	if (limitField.value.length > limitNum)
  {
		limitField.value = limitField.value.substring(0, limitNum);
	}
  else
  {
		limitCount.value = limitNum - limitField.value.length;
	}
}

/*
 * Return the current date in common "dd/mm/yyyy" format
 */
function getCurrentDate()
{
  var currentTime = new Date();
  var month = currentTime.getMonth() + 1;
  var day = currentTime.getDate();
  var year = currentTime.getFullYear();

  return (padNumber(day) + "/" + padNumber(month) + "/" + year);
}

/*
 * Pad a single-digit number to a double-digit number (eg: "5" --> "05")
 */
function padNumber(number)
{
  return (number < 10) ? '0' + number : number;
}

