/******************************************************************
 *                                                                *
 * Versao: 1.2.0.0                                                *
 *                                                                *
 * Historico:                                                     *
 *                                                                *
 *   26/09/2000 - Versao 1.0.0.0 Bruno Tenorio Avila              *
 *     - Verifica uma porrada de mascaras                         *
 *   06/11/2000 - Versao 1.1.0.0 Bruno Tenorio Avila              *
 *     - Verifica o CPF e o CGC                                   *
 *   28/11/2000 - Versao 1.1.1.0 Bruno Tenorio Avila              *
 *     - Corrige um BUG na validação do CPF.                      *
 *     - No campo CEP não deve ser obrigatorio, logo só verifica  *
 *       a mascara quando tiver algo digitado.                    *
 *   02/02/2001 - Versao 1.2.0.0 Bruno Tenorio Avila              *
 *     - Verifica descontos                                       *
 *   16/05/2001 - Versao 1.3.0.0 Felipe Augusto Pereira           *
 *     - Verifica se um combo box (select/option) tem um          *
 *       valor inválido - (P/ Proj. CRM Inter.Net)		          *
 *	   - Verifica tamanho máximo		                          *
 *   12/11/2001 - Felipe Augusto Pereira                          *
 *     - Verifica horário (hora e minuto)                         *
 *     - Confirmação antes de enviar formulário                   *
 ******************************************************************/


/**************************************************************
 *  Verifica se o campo especificado tem somente números.     *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          str: texto para fazer a verificação               *
 *                                                            *
 **************************************************************/

function somente_digitos(str)
{
    var i;

	if (str.length == 0) return false;

    for (i=0; i < str.length; i++)
	{
	  s = str.substring(i, i+1);
	  if (('0' > s) || ('9' < s)) return false;
	}

	return true;
}


/**************************************************************
 *  Verifica se o usuario digitou algo no campo especificado. *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *                                                            *
 **************************************************************/

function verificar_campo(campo, nome)
{

	if (campo.value.length == 0)
	{
		alert('O campo ' + nome + ' deve ser especificado.');
		campo.focus();
		return false;
	}

	return true;
}


/**************************************************************
 *  Verifica se o campo especificado tem um número especifi-  *
 *  do de caracteres.                                         *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *          len  : número de caracteres                       *
 *                                                            *
 **************************************************************/

function verificar_tamanho(campo, nome, len)
{
	if (campo.value.length != len)
	{
		alert('O campo ' + nome + ' deve ter ' + len + ' caracteres.');
		campo.focus();
		return false;
	}

	return true;
}


/**************************************************************
 *  Verifica se o campo especificado tem somente digitos.     *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *                                                            *
 **************************************************************/

function verificar_digitos(campo, nome)
{
	if (campo.value.length == 0)
	{
		alert('O campo ' + nome + ' deve ser especificado.');
		campo.focus();
		return false;
	}

	if (!somente_digitos(campo.value))
	{
		alert('O campo ' + nome + ' deve ter somente Números.');
		campo.focus();
		return false;
	}

	return true;
}

function verificar_digitos1(campo, nome)
{
	if (!somente_digitos(campo.value))
	{
		alert('O campo ' + nome + ' deve ter somente Números.');
		campo.focus();
		return false;
	}

	return true;
}
	
/**************************************************************
 *  Verifica se o campo especificado tem um email válido      *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *                                                            *
 **************************************************************/

function verificar_email(campo, nome)
{
	if (campo.value.length == 0)
	{
		alert('O campo ' + nome + ' deve ser especificado.');
		campo.focus();
		return false;
	}

	if (campo.value.indexOf('@')+1 == 0)
	{
		alert('O campo ' + nome + ' deve conter um email válido.');
		campo.focus();
		return false;
	}

    i = campo.value.indexOf('@')+1;
	if ((i == '1') || (i == campo.value.length))
	{
		alert('O campo ' + nome + ' deve conter um email válido.');
		campo.focus();
		return false;
	}

	return true;
}


/**************************************************************
 *  Verifica se o campo especificado tem um cep válido.       *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *                                                            *
 **************************************************************/

function verificar_cep(campo, nome)
{
    var i, i1, i2;

	if (campo.value.length != 8)
	{
		alert('O campo ' + nome + ' deve ter 8 números.');
		campo.focus();
		return false;
	}

	if (!somente_digitos(campo.value))
	{
		alert('O campo ' + nome + ' deve conter somente digitos.');
		campo.focus();
		return false;
	}

	return true;
}

/**************************************************************
 *  Verifica se a data é válida.                              *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *                                                            *
 **************************************************************/

function verificar_data(campo, nome)
{
	if (campo.value.length != 10)
	{
		alert('O campo ' + nome + ' não é uma data válida. O formato deve ser dd/mm/yyyy.');
		campo.focus();
		return false;
	}

    if (campo.value.indexOf('/')+1 != 3)
	{
		alert('O campo ' + nome + ' não é uma data válida. O formato deve ser dd/mm/yyyy.');
		campo.focus();
		return false;
	}

    s = campo.value.substring(campo.value.indexOf('/')+1, campo.value.length);
    if (s.indexOf('/')+1 != 3)
	{
		alert('O campo ' + nome + ' não é uma data válida. O formato deve ser dd/mm/yyyy.');
		campo.focus();
		return false;
	}
	
	if (!somente_digitos(campo.value.substring(0,2)) || !somente_digitos(campo.value.substring(3,5)) || !somente_digitos(campo.value.substring(6,10)))
	{
		alert('O campo ' + nome + ' não é uma data válida. O formato deve ser dd/mm/yyyy.');
		campo.focus();
		return false;
	}
	
	if (campo.value.substring(0,2) > 31 || campo.value.substring(0,2) == 0 || campo.value.substring(3,5) == 0 || campo.value.substring(3,5) > 12 || campo.value.substring(6,10) == 0)
	{
		alert('O campo ' + nome + ' não é uma data válida. O formato deve ser dd/mm/yyyy.');
		campo.focus();
		return false;
	}

	return true;
}

/**************************************************************
 *  Verifica se o tamanho do campo especificado não excede o  *
 *  valor fornecido.                                          *
 *                                                            *
 *  Parâmetros:                                               *
 *                                                            *
 *          campo: nome do campo no código                    *
 *          nome : nome do campo na página                    *
 *          len  : número máximo de caracteres                *
 *                                                            *
 **************************************************************/

function verificar_tamanho_maximo(campo, nome, len)
{
	if (campo.value.length > len)
	{
		alert('O campo ' + nome + ' excedeu em ' + (campo.value.length - len) + ' o limite de ' + len + ' caracteres.');
		campo.focus();
		return false;
	}

	return true;
}
