function Nume_ChecaForm()
{
  required = document.formulario.required.value;
	
  if (required.length > 1 && required.search("|") != -1)
  {
	required = required.split("|");

	for (i = 1; i <= required.length; i++)
	{
		atual_igual = 0;
		checa = 1;

		atual_inteiro = required[i-1];

		if (atual_inteiro.search(":") != -1)
		{
			atual_total = atual_inteiro.split(":");
			atual = atual_total[0];
			atual_nome = atual_total[1];
		}
		else
		{
			atual = atual_inteiro;
			atual_nome = atual;
			atual_igual = 1;
		}

		if (atual.search("/") != -1 && atual.search("=") != -1)
		{
			atual_if = atual.split("/");

			atual = atual_if[0];
			atual_expr = atual_if[1];
			atual_expr = atual_expr.split("=");

			atual_param = atual_expr[0];
			atual_arg = atual_expr[1];

			campo_param = eval('document.formulario.'+atual_param);
			campo_arg = "";

		  	if (campo_param.length > 1)
		  	{
   				for (counter = 0; counter < campo_param.length; counter++)
				{
       				if (campo_param[counter].checked || (campo_param[counter].selected && campo_param.value.length > 1))
					{
						campo_arg = campo_param[counter].value;
	   				}
   				}
		  	}
		  	else
		  	{
				campo_arg = campo_param.value;
		  	}

			if (atual_arg != 'notnull' && campo_arg != atual_arg)
			{
				checa = 0;
			}
			else if (atual_arg == 'notnull' && campo_arg.length == 0)
			{
				checa = 0;
			}
		}

		if (atual_igual == 1)
		{
			atual_nome = atual;
		}

		campo_atual = eval('document.formulario.'+atual);
		valor_atual = campo_atual.value;
		msg_erro = "O campo \"" + atual_nome + "\" parece estar em branco.\nPor gentileza, verifique.";

		if (checa == 1)
		{
		  if (campo_atual.length > 1)
		  {
   			marcou = 0;
   			for (counter = 0; counter < campo_atual.length; counter++)
			{
       			if (campo_atual[counter].checked || (campo_atual[counter].selected && valor_atual.length > 1))
				{
					marcou = 1;
	   			}
   			}

   			if (marcou < 1)
			{
				alert (msg_erro);
   				return false;
   			}
		  }
		  else
		  {
			if (valor_atual.length < 1)
			{
				alert (msg_erro);
				return false;
			}
		  }
		}
	}
  }
}
