/*
|----------------------------------------------------------------------------------------------------|
|           Função: OnlyNumbers()                                                                    |
|        Descrição: Permite somente números entre 0 e 9.                                             |
|  ================================================================================================  |
|       Parâmetros: oEvent   = Objeto event, necessário para funcionar Cross-Browser                 |
|           Evento: onkeypress                                                                       |
|  Tipo de Retorno: void                                                                             |
|  ================================================================================================  |
|           Criado: ??/??/???? | Por: ?????????????                                                  |
|       Modificado: __/__/____ | Por:                                                                |
|----------------------------------------------------------------------------------------------------|
*/
function OnlyNumbers(oEvent)
{
	var inteCodigo;
	if (!oEvent)
		var oEvent = window.event;
	
	if (oEvent.keyCode)
		inteCodigo = oEvent.keyCode;
	else if (oEvent.which)
		inteCodigo = oEvent.which;
	
	if ((inteCodigo > 47 && inteCodigo < 58) || inteCodigo == 8 || inteCodigo == 9 || (inteCodigo == 37 && !oEvent.shiftKey) || inteCodigo == 39)
		return true;
	else
		return false;
}

/*
|----------------------------------------------------------------------------------------------------|
|           Função: FormatDate()                                                                     |
|        Descrição: Formata a data digitada e, DD/MM/YYYY.                                           |
|  ================================================================================================  |
|       Parâmetros: oEvent   = Objeto event, necessário para funcionar Cross-Browser                 |
|           Evento: onkeyup                                                                          |
|  Tipo de Retorno: void                                                                             |
|  ================================================================================================  |
|           Criado: ??/??/???? | Por: ?????????????                                                  |
|       Modificado: __/__/____ | Por:                                                                |
|----------------------------------------------------------------------------------------------------|
*/
function FormatDate(oEvent)
{
	var oCampo, inteCodigo;
	if (window.event)
	{
		oCampo	=	oEvent.srcElement;
		inteCodigo = oEvent.keyCode;
	}
	else
	{
		oCampo	=	oEvent.target;
		inteCodigo = oEvent.which;
	}
	
	if ((inteCodigo > 47 && inteCodigo < 58) || inteCodigo == 8 || inteCodigo == 9 || (inteCodigo == 37 && !oEvent.shiftKey) || inteCodigo == 39)
	{
		if (oCampo.value.length == 10 && inteCodigo != 8)
			return false;
		
		if (((oCampo.value.length==2)||(oCampo.value.length==5)) && inteCodigo != 8)
			oCampo.value += "/";
		
	}
	else
	{
		return false
	}
}

/*
|----------------------------------------------------------------------------------------------------|
|           Função: fctAutoTab()                                                                     |
|        Descrição: Altera o foco do cursor para o campo anterior ou posterior ao atual              |
|  ================================================================================================  |
|       Parâmetros: oEvent   = Objeto event, necessário para funcionar Cross-Browser                 |
|                   oElement = Objeto do elemento (campo) atual (this).                              |
|                   oForm    = Objeto do formulário.                                                 |
|           Evento: onkeyup                                                                          |
|  Tipo de Retorno: void                                                                             |
|  ================================================================================================  |
|           Criado: 16/03/2006 | Por: Mauro Willian                                                  |
|       Modificado: __/__/____ | Por:                                                                |
|----------------------------------------------------------------------------------------------------|
*/
function fctAutoTab(oEvent, oElement, oForm)
{
	//Variáveis da função
	var keyNumber			= null;
	var inteIndice		= null;
	var inteNovoCampo	= 0;
	
	if (window.event)
		keyNumber = oEvent.keyCode;
	else if(oEvent.which)
		keyNumber = oEvent.which;
	
	//Recupero o indice do campo atual
	for (var i = 0; i < oForm.length; i++)
	{
		if (oForm.elements[i].type != null)
		{
			if (oForm.elements[i].name.toUpperCase() == oElement.name.toUpperCase())
			{
				inteIndice	= i;
				break;
			}
		}
	}
	
	if (inteIndice == null)
		return;
	
	//Se o usuário digitou a seta para cima mudamos o foco do cursor para o campo anterior
	if (keyNumber == 38)
	{
		if (inteIndice > 0)
			inteNovoCampo	= inteIndice - 1;
	}
	//Se o usuário digitou a seta para baixo, ou a tecla Enter, ou se a quantidade de caracteres digitado for igual ao maxlength do campo mudamos o foco do cursor para o próximo campo
	else if ((keyNumber == 40) || (keyNumber == 13) || (oElement.value.length == oElement.maxLength))
	{
		inteNovoCampo	= inteIndice + 1;
		if (inteIndice >= oForm.length)
			inteNovoCampo	= 0;
	}
	else
	{
		inteNovoCampo	= inteIndice;
	}
	
	//Altera o foco do cursor para o campo correto
	if (inteNovoCampo != inteIndice)
	{
		if (!oForm.elements[inteNovoCampo].disabled)
		{
			if ((oForm.elements[inteNovoCampo].type == 'text') || (oForm.elements[inteNovoCampo].type == 'password') || (oForm.elements[inteNovoCampo].type == 'textarea'))
				oForm.elements[inteNovoCampo].select();
			oForm.elements[inteNovoCampo].focus();
		}
	}
}

/*
|----------------------------------------------------------------------------------------------------|
|           Função: IsValidCNPJ()                                                                    |
|        Descrição: Verifica se o CNPJ digitado é válido.                                            |
|  ================================================================================================  |
|       Parâmetros: charCNPJ = Número do CNPJ sem o dígito.                                          |
|                   charCTRL = Dígito do CNPJ.                                                       |
|           Evento: nenhum                                                                           |
|  Tipo de Retorno: boolean                                                                          |
|  ================================================================================================  |
|           Criado: ??/??/???? | Por: ?????????????                                                  |
|       Modificado: __/__/____ | Por:                                                                |
|----------------------------------------------------------------------------------------------------|
*/
function IsValidCNPJ(charCNPJ ,charCTRL ) {
	var inteIndice, inteSoma, intePos, TMP;
	var aVetor = new Array(13);

	if (charCNPJ.length != 12)
		return false;
	if ( charCTRL.length != 2)
		return false;
	
	intePos  = 5;
	inteSoma = 0;
	
	for (inteIndice=0; inteIndice<=11; inteIndice++) 
	{
		aVetor[inteIndice] = charCNPJ.substr( inteIndice, 1);
		inteSoma = inteSoma + (aVetor[inteIndice] * intePos)
		
		if(intePos == 2)
			intePos = 10;
		
		intePos--;
	}
	
	aVetor[12] = inteSoma % 11;
	aVetor[12] = (aVetor[12] < 2) ? 0 : 11 - aVetor[12];
	
	intePos  = 6;
	inteSoma = 0;
	
	for (inteIndice=0; inteIndice<=12; inteIndice++)
	{
		inteSoma = inteSoma + (aVetor[inteIndice] * intePos)
	
		if (intePos == 2)
			intePos = 10;
	
		intePos--;
	}
	
	aVetor[13] = inteSoma % 11;
	aVetor[13] = (aVetor[13] < 2) ? 0 : 11 - aVetor[13];

	intePos = aVetor[12] * 10 + aVetor[13];
	
	if (intePos != parseInt(charCTRL,10))
		return false;
	else
		return true;
}

/*
|----------------------------------------------------------------------------------------------------|
|           Função: textCounter()                                                                    |
|        Descrição: Conta a quantidade de caracteres do campo e limita de acordo com a quantidade.   |
|  ================================================================================================  |
|       Parâmetros: oCampo           = Objeto do campo que será contado.                             |
|                   oCampoContador   = Objeto do campo que mostrará a quantidade que ainda restam.   |
|                   inteLimiteMaximo = Limite máximo de caracteres permitidos.                       |
|           Evento: onkeypress                                                                       |
|  Tipo de Retorno: void                                                                             |
|  ================================================================================================  |
|           Criado: ??/??/???? | Por: ?????????????                                                  |
|       Modificado: __/__/____ | Por:                                                                |
|----------------------------------------------------------------------------------------------------|
*/
function textCounter(oCampo, oCampoContador, inteLimiteMaximo) {
	if (oCampo.value.length > inteLimiteMaximo)
		oCampo.value = oCampo.value.substring(0, inteLimiteMaximo);
	else if(oCampoContador != '')
		oCampoContador.value = inteLimiteMaximo - oCampo.value.length;
}

/*
|----------------------------------------------------------------------------------------------------|
|           Função: fctPopUpBuscaArquivo()                                                           |
|        Descrição: Abre uma popup para o cadastro do arquivo.                                       |
|  ================================================================================================  |
|       Parâmetros: varcURL         = URL que será chamada na popup.                                 |
|                   inteArquivoTipo = Tipo do arquivo que será cadastrado.                           |
|           Evento: onclick                                                                          |
|  Tipo de Retorno: void                                                                             |
|  ================================================================================================  |
|           Criado: ??/??/???? | Por: ?????????????                                                  |
|       Modificado: __/__/____ | Por:                                                                |
|----------------------------------------------------------------------------------------------------|
*/
function fctPopUpBuscaArquivo(varcURL, inteArquivoTipo) {
	var queryPar	= (arguments[2]==null) ? '' : arguments[2];
	var PopUp	= window.open(varcURL+'?ImagemTipo='+ inteArquivoTipo + queryPar +'&varcFormId='+ arguments[3], 'PopUpUpload', 'width=380,height=150,scrollbars=0');
	PopUp.focus();
}