/**
 * Zasktrne vybrana policka ve formulari podle hodnoty.
 *
 * @param form Jmeno formulare
 * @param name Jmeno zaskrtavane polozky
 * @param value Nastaveni hodnoty
 */
function check_all(form, name, value)
{
  for (var i = 0; i < form.elements.length; i++)
  {
    var element = form.elements[i];

    if (element.name == name)
    {
      if (value == 1)
      { // zasktrnout
        element.checked = true;
      }
      else if (value == 0)
      { // odskrtnuti
        element.checked = false;
      }
      else if (value == -1)
      { // obratit
        element.checked = !element.checked;
      }
    }
  }
} // check_all()


/**
 * Zjisti jestli hodnota polozky je cislo.
 *
 * @param item Polozka
 * @return Vraci TRUE pri uspechu
 */
function is_numeric(item, must)
{
  if (item.value != "")
  { // neni prazdna
  	re = new RegExp("^[0-9]+$");

  	if  (!re.test(item.value))
  	{
  	  alert ("Musí být číselná hodnota!");
  	  item.focus();

  	  return false;
  	}
  }
  else if (must)
  { // nesmi byt prazdne
    alert ("Musí být číselná hodnota!");
  	item.focus();

		return false;
  }

  return true;
} // is_numeric()


/**
 * Zjisti jestli hodnota polozky je telefoni cislo.
 *
 * @param item Polozka
 * @return Vraci TRUE pri uspechu
 */
function is_phone(item, must)
{
  if (item.value != "")
  { // neni prazdna
  	re = new RegExp("^[+]?[0-9]{9,}$");

  	if  (!re.test(item.value))
  	{
  	  alert ("Není telefoním číslem!");
  	  item.focus();

  	  return false;
  	}
  }
  else if (must)
  { // nesmi byt prazdne
    alert ("Není telefoním číslem!");
  	item.focus();

		return false;
  }

  return true;
} // is_phone()


/**
 * Zjisti jestli hodnota polozky je datum.
 *
 * @param item Polozka
 * @return Vraci TRUE pri uspechu
 */
function is_date(item, must)
{
  if (item.value != "")
  {
    re = new RegExp("^(0?[1-9]|[12][0-9]|3[01])\. ?(0?[1-9]|1[0-2])\. ?(19|20)[0-9]{2}$");

  	if  ((!re.test(item.value)))
  	{
  	  alert ("Nesprávně zadané datum.\nPovolený formát:\ndd.mm.RRRR");
  		item.focus();

  		return false;
  	}
  }
  else if (must)
  { // nesmi byt prazdne
    alert ("Nesprávně zadané datum.\nPovolený formát:\ndd.mm.RRRR");
		item.focus();

		return false;
  }

	return true;
} // is_date()


/**
 * Zjisti jestli hodnota polozky obsahuje datum a cas.
 *
 * @param item Polozka
 * @return Vraci TRUE pri uspechu
 */
function is_datetime(item, must)
{
  if (!must && item.value == '')
  { // muze byt prazdny
    return true;
  }

  re = new RegExp("^(0?[1-9]|[12][0-9]|3[01])\. ?(0?[1-9]|1[0-2])\. ?(19|20)[0-9]{2} ([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9])$");
	if  ((!re.test(item.value)))
	{ // nesouhlasi s regularnim vyrazem
	  alert ("Nesprávně zadané datum.\nPovolený formát:\ndd.mm.RRRR HH:mm:ss");
		item.focus();
		return false;
	}

	return true;
} // is_datetime()


/**
 * Zajisti, aby text zacinal velkym pismenem.
 *
 * @param elem Polozka z textem
 */
function ucfirst(elem)
{
  var value = elem.value.toLowerCase();
  var strlen = value.length;

  if (strlen > 0)
  {
  	var first = value.substring(0, 1).toUpperCase();
  	value = first + value.substring(1, strlen);
  }

  elem.value = value;
} // ucfirst()


/**
 * Zjisti jestli vybrana polozka je prazdna.
 *
 * @param item Polozka
 * @return Vraci TRUE pri uspechu
 */
function is_empty(item)
{
  re = new RegExp("^\s*$");

  return re.test(item.value)
} // is_empty(