// limpa os espaços à direita e à esquerda, consiste o tamanho máximo e se vazio
function consisteVazio (form, campo)
{
	var strAux; // string auxiliar

	// limpa o campo de espaços à esquerda e à direita
	eval ("strAux = Trim (form." + campo + ".value)");

	// devolde o campo limpo de espaços para o formulário
	eval ("form." + campo + ".value = strAux");

	// verifica se o campo está vazio
	if (strAux.length == 0)
	{
		alert (retornaNmCampo (campo) + ": preenchimento obrigatório.");

		eval ("form." + campo + ".focus ()");

		return 0;
	}

	return 1;
}

// limpa os espaços à direita e à esquerda e consiste o tamanho máximo
function consisteTamanho (form, campo, tammax)
{
	var strAux; // string auxiliar

	// limpa o campo de espaços à esquerda e à direita
	eval ("strAux = Trim (form." + campo + ".value)");

	// devolde o campo limpo de espaços para o formulário
	eval ("form." + campo + ".value = strAux");

	// verifica se o tamanho ultrapassou o tamanho máximo
	if (strAux.length > parseInt (tammax, 10))
	{
		alert ("Tamanho máximo do campo " + retornaNmCampo (campo) + " (" + tammax + ") excedido.");

		eval ("form." + campo + ".focus ()");

		return 0;
	}

	return 1;
}

// verifica o tamanho de um campo, consistindo se ele é composto só de caracteres numéricos
function consisteTamanhoNumerico (form, campo, tammax) 
{
	var strAux; // string auxiliar

	// limpa o campo de espaços à esquerda e à direita
	eval ("strAux = Trim (form." + campo + ".value)");

	// devolde o campo limpo de espaços para o formulário
	eval ("form." + campo + ".value = strAux");

	// verifica se o tamanho ultrapassou o tamanho máximo
	if (strAux.length > parseInt (tammax, 10))
	{
		alert ("Tamanho máximo do campo " + retornaNmCampo (campo) + " (" + tammax + ") excedido.");

		eval ("form." + campo + ".focus ()");

		return 0;
	}

	// verifica se o campo contém apenas caracteres numéricos (como é 
	// inteiro não pode ter vírgulas ou ponto também) segundo parâmetro = 1
	if (verificaNumerico (strAux, 1) != 1)
	{
		alert (retornaNmCampo (campo) + ": Digitar apenas números");

		eval ("form." + campo + ".focus ()");

		return 0;
	}

	return 1;
}

// verifica se o parâmetro é composto somente de caracteres numéricos
// - o paramametro i_f indica 1 - inteiros
//                            2 - float, separado por ponto ou vírgula
function verificaNumerico (strAver, i_f)
{
	var i = 0;
	var j = 0;
	var comp;
	var teste = "0123456789.,"
	var subteste;
	var substrAver;
	var flgvg=0;

	// se estiver em branco, retorna Ok
	if (strAver == "")
	{
		return 1;
	}

	if (i_f == 1)
	{
		comp = 10;
	}
	else
	{
		comp = 12;
	}

	// varre cada dígito do número a ser verificado
	while (j < strAver.length)
	{
		substrAver = strAver.charAt (j);

		i = 0;

		// analisa se cada dígito do número a ser verificado é válido
		while (i < comp)
		{
			if (strAver.charAt (j) == teste.charAt (i))
			{
				// se for virgula (ou ponto) decimal, não pode ter duas...
				if ((teste.charAt (i) == ".")  ||
                                    (teste.charAt (i) == ","))
				{
					if (flgvg == 1)
					{
						return 0;
					}
					else
					{
						flgvg = 1;
					}
				}

				break;
			}
			else
			{
				// se o dígito não é válido, retorna ERRO
				if (i == (comp - 1))
				{
					return 0;
				}
			}

			i++;
		}

		j++;
	}

	return 1;
}

// retira espaços em branco do lado esquerdo
function LTrim (str)
{
	var whitespace = new String (" \t\n\r");
	var s = new String (str);

	// verifica se existe algum espaço à esquerda
	if (whitespace.indexOf (s.charAt (0)) != -1)
	{
		var j = 0;
		var i = s.length;

		// Busca o indice onde termina os espaços em branco
		// ou até terminar a string (só possuía brancos)
		while ((j                                 <   i)  &&
                       (whitespace.indexOf (s.charAt (j)) != -1))
		{
			j++;
		}

		// Pega a sub-string do primeiro caracter não branco pra frente
		s = s.substring (j, i);
	}

	return s;
}

// retira espaços em branco do lado direito
function RTrim (str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String (str);

	// verifica se existe album espaço à direita
	if (whitespace.indexOf (s.charAt (s.length - 1)) != -1)
	{
		var i = (s.length - 1);

		// Busca, direta pra esquerda, o indice onde termina os espaços
		//  em branco ou até terminar a string (só possuía brancos)
		while ((i                                 >=  0)  &&
                       (whitespace.indexOf (s.charAt (i)) != -1))
		{
			i--;
		}

		// Pega a sub-string do inicio até o indice encontrado na busca
		s = s.substring (0, (i + 1));
	}

	return s;
}

// retira espaços em branco da esquerda e direita
function Trim (str)
{
	return RTrim (LTrim (str));
}
