// FUNCAO DESABILITA BOTAO
function fnc_desabilita(campo)
{
//	document.getElementById('carregando').style.display = 'block';
	campo.value = 'Aguarde';
	document.submit;
	return true;
//	campo.disabled = true;
}

function fnc_reabilita(campo,valor)
{
	document.getElementById('carregando').style.display = 'none';
	campo.value = valor;
}

// FUNCAO VALIDACPF
function validacpf(campo)
{ 
	cpf = campo.value;
	var i;
	if (cpf != '')
	{
		if (cpf.length < 14)
		{
			alert("CPF Inválido.")
			campo.value = '';
			campo.focus();
			return false;
		}
		s = cpf
		s = s.replace(".","");
		s = s.replace(".","");
		s = s.replace(".","");
		s = s.replace("-","");
		
		switch (s)
		{
			case '00000000000':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '11111111111':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '22222222222':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '33333333333':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '44444444444':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '55555555555':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '66666666666':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '77777777777':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '88888888888':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
			case '99999999999':
				alert("CPF Inválido.")
				campo.value = '';
				campo.focus();
				return false;
				break;
		}
	
		var c = s.substr(0,9);
		var dv = s.substr(9,2);  
		var d1 = 0;  
		for (i = 0; i < 9; i++)  
		{  
			d1 += c.charAt(i)*(10-i);
		} 
		if (d1 == 0)
		{  
			alert("CPF Inválido.")
			campo.value = '';
			campo.focus();
			return false;  
		}
		d1 = 11 - (d1 % 11);  
		if (d1 > 9) d1 = 0;  
		if (dv.charAt(0) != d1) 
		{
			alert("CPF Inválido.")
			campo.value = '';
			campo.focus();
			return false;
		}
		d1 *= 2;  
		for (i = 0; i < 9; i++)  
		{  
			d1 += c.charAt(i)*(11-i);  
		}  
		d1 = 11 - (d1 % 11);  
		if (d1 > 9) d1 = 0;  
		if (dv.charAt(1) != d1)  
		{  
			alert("CPF Inválido.")
			campo.value = '';
			campo.focus();
			return false;  
		}  
		return false;
	}
} 


// FUNCAO ValidarExclusao(this)

function ValidarExclusao(frm)
{
	if(confirm("Deseja realmente excluir?"))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// FUNCAO CHECKEMAIL
function checkEmail(campo)
{
	EmailText = campo.value;
	if (EmailText != '')
	{
		if ((EmailText.search(/;/i) == -1) &&
			(EmailText.search(/,/i) == -1) &&
			(EmailText.indexOf("..") == -1) &&
			(EmailText.indexOf(".@") == -1) &&
			(EmailText.indexOf("@.") == -1) &&
			(EmailText.search(/ /i) == -1) &&
			(EmailText.search(/'"'/i) == -1) &&
			(EmailText.search(/"'"/i) == -1) &&
			(EmailText.indexOf("^") == -1) &&
			(EmailText.search(/`/i) == -1) &&
			(EmailText.search(/~/i) == -1) &&
			(EmailText.search(/ç/i) == -1) &&
			(EmailText.length != 0) &&
			(EmailText.search(/@/i) >= 2) &&
			(EmailText.substr(0,1) != ".") && /*Não pode começar com ponto*/
			(EmailText.substr(EmailText.length-1) != ".") && /*Não pode terminar com ponto*/
			(EmailText.indexOf("globo.com.br") == -1) &&
			(EmailText.indexOf("hotmail.com.br") == -1) &&
			(EmailText.indexOf("aol.com.br") == -1))
			return true;
		else if (EmailText.indexOf("globo.com.br") >= 0)
		{
			alert("Atenção: O E-mail GLOBO não termina com .BR\nEle será automaticamente corrigido");
			campo.value = EmailText.replace("globo.com.br", "globo.com");
			campo.focus();
			return false;
		}
		else if (EmailText.indexOf("hotmail.com.br") >= 0)
		{
			alert("Atenção: O E-mail HOTMAIL não termina com .BR\nEle será automaticamente corrigido");
			campo.value = EmailText.replace("hotmail.com.br", "hotmail.com");
			campo.focus();
			return false;
		}
		else if (EmailText.indexOf("aol.com.br") >= 0)
		{
			alert("Atenção: O E-mail AOL não termina com .BR\nEle será automaticamente corrigido");
			campo.value = EmailText.replace("aol.com.br", "aol.com");
			campo.focus();
			return false;
		}
		else if (EmailText.indexOf(" ") >= 0)
		{
			alert("Atenção: O E-mail não deve conter espaços em branco\nEle será automaticamente corrigido");
			while(EmailText.indexOf(" ") >= 0)
				EmailText= EmailText.replace(" ", "");
			campo.value = EmailText
			campo.focus();
			return false;
		}
		else
		{
			alert("Formato do endereço de E-mail Incorreto!");
			campo.select();
			campo.focus();
			return false; 
		}
	}
}

/*
-----------------------------------------------------------------------------
Nome da Função: Seleciona(campo)
Objetivo: Seleciona o conteúdo do campo.
Parâmetros:
		campo -> campo a ser apagado (this).
Chamada: onClick="Seleciona(this)"
-----------------------------------------------------------------------------
*/
function Seleciona(campo)
{
	campo.select();
}

/*
-----------------------------------------------------------------------------
Função: Mascara(campo, tipo)
Objetivo: Aplica Máscara a um campo. 
Parâmetros:
		campo -> campo a ser aplicado a máscara.
		tipo -> tipo de máscara(data, telefone, cpf..)
Chamada: OnKeyUp="Mascara(this,'##/##/####')"
-----------------------------------------------------------------------------
*/

function Mascara(campo, tipo)
{
    var valorAtual = campo.value;        
    var valorNumerico = '';
    var nIndexModelo = 0;
    var nIndexString = 0;
    var valorFinal = '';
    var adicionarValor = true;
    
	switch(tipo)
	{
		case 'tel':
			Modelo = '(##) ####-####'
			break;
		case 'cgc':
			Modelo = '##.###.###/####-##'
			break;
		case 'placaveiculo':
			Modelo = '###-####'
			break;
		case 'motor':
			Modelo = '#.#'
			break;
		case 'quilometragem':
			Modelo = '###.###'
			break;
		case 'cartao':
			Modelo = '####-####-####-####-####'
			break;
		case 'telefone':
			Modelo = '####-####'
			break;
		case 'data':
			Modelo = '##/##/####'
			break;
		case 'cpf':
			Modelo = '###.###.###-##'
			break;
		case 'cnpj':
			Modelo = '##.###.###/####-##'
			break;
		case 'ie':
			Modelo = '###.###.###'
			break;
		case 'cep':
			Modelo = '#####-###'
			break;
	}
     
    // limpa a string valor atual para verificar 
    // se todos os caracteres são números
    for (i=0;i<Modelo.length;i++){
      if (Modelo.substr(i,1) != '#'){
        valorAtual = valorAtual.replace(Modelo.substr(i,1),'');
    }}
    
    // verifica se todos os caracteres são números
    for (i=0;i<valorAtual.length;i++){
      if (!isNaN(parseFloat(valorAtual.substr(i,1)))){
        valorNumerico = valorNumerico + valorAtual.substr(i,1);
    }}
     
    // aplica a máscara ao campo informado usando
    // o modelo de máscara informado no script
    for (i=0;i<Modelo.length;i++){
      
      if (Modelo.substr(i,1) == '#'){
        if (valorNumerico.substr(nIndexModelo,1) != ''){
          valorFinal = valorFinal + valorNumerico.substr(nIndexModelo,1);
          nIndexModelo++;nIndexString++;
        } 
          else {
            adicionarValor = false;
      }}
        
        else {
          if (adicionarValor && valorNumerico.substr(nIndexModelo,1) != ''){
          valorFinal = valorFinal + Modelo.substr(nIndexString,1)
          nIndexString++;
        }}
     }
     campo.value = valorFinal 
  }


/* -----------------------------------
Verifica se apenas numeros são digitados
No campo Numérico onKeyPress="return fnc_numeros(event);"
-------------------------------------*/

function fnc_numeros(e)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla > 47 && tecla < 58) // numeros de 0 a 9
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}

/* -----------------------------------
Verifica se o usuasio está conectado 
-------------------------------------*/
function fnc_login(user,catid,varhttps)
{
	if (user == '')
	{
//		alert ('Antes de começar, por favor entre com os Dados de Acesso');
		window.location=varhttps+'cadastro.asp?cat_id='+catid+'&uzlgt=0';
		return false;
	}
	return true;
}


/*
-----------------------------------------------------------------------------
Função: FormataMoeda(numero)
Objetivo: Formata um valor moeda. Usada na soma dos campos do DUA.
Parâmetros:
		numero -> número a ser formatado.
Chamada: NumFormatado = FormataMoeda(NumNaoFormatado)
-----------------------------------------------------------------------------
*/
function FormataMoeda(numero) 
{ 
        posv = numero.indexOf(","); //posicao da virgula 
        tamint = posv; //tamanho da parte inteira 
        strint = numero.substr(0,tamint); 
        strdec = numero.substr(tamint,numero.length); 
        numformatado = ''; 
        if (tamint > 3) 
        { 
                qpt = tamint/3; 
                qpt = qpt.toString(); 
                qpt = Number(qpt.substr(0,1)); 
                if ((tamint % 3) == 0) 
                        qpt = qpt - 1; 
                ini = 0; 
                fim = tamint - qpt*3; 
                q = 0; 
                numold = strint; 
                while(q != qpt) 
                {       
                        numformatado += numold.substr(ini, fim) + '.' 
                        numold = numold.substr(fim,numold.length); 
                        fim = 3; 
                        q += 1; 
                } 
                numformatado += numold.substr(0,3); 
                numformatado += strdec; 
        } 
        else 
                numformatado = numero; 

        return numformatado; 
} 

/*
-----------------------------------------------------------------------------
Função: RoundTo(numero,pow)
Objetivo: Arrendonda um valor numérico.
Parâmetros:
		numero -> número a ser arredondado.
		pow -> casas decimais.
Chamada: NumArredondado = RoundTo(NumNaoArredondado,2)
-----------------------------------------------------------------------------
*/
function RoundTo(numero,pow)
{ 
  if( isNaN( numero ) )
  { 
    numero = 0; 
  } 

  numero *= Math.pow(10,pow); 
  numero = (Math.round(numero)/Math.pow(10,pow))+ "" ; 
  if(numero.indexOf(".") == -1) 
    numero += "." ; 
  while(numero.length - numero.indexOf(".") - 1 < pow) 
    numero += "0" ; 

  return numero; 
} 

/*
-----------------------------------------------------------------------------
Função: IniciaNumero(numero)
Objetivo: Inicializar valores numéricos. String -> Número.
Parâmetros:
		numero -> String / Número a ser inicializado.
Chamada: NumSemPontosEVirgulas = IniciaNumero(Numero)
-----------------------------------------------------------------------------
*/
function IniciaNumero(numero)
{
	//se vazio, entao é ZERO.
	if (numero == '')
	{
		numero = 0;
	}
	//senão, troca vírgula por ponto para calcular.
	else
	{
		numero = numero.replace("R$","");		
		numero = numero.replace(".","");
		numero = numero.replace(".","");	
		numero = numero.replace(",",".");
		numero = Number(numero);
	}
	return numero;
}

/*
-----------------------------------------------------------------------------
Nome da Função: FormataValor(this,2,event)
Objetivo: Formatar e validar campos de valores Moeda
Parâmetros:
		campo -> campo a ser formatado (this).
		tammax -> quantos numeros devem ser digitados para a virgula ficar na
					posicao certa.
		teclapress -> codtecla pressionada pelo usuário (event)
Validacoes:
		1 - Não deixa digitar numero negativo;
Chamada:
	onKeyUp="FormataValor(this,2,event)"
-----------------------------------------------------------------------------
*/
function FormataValor(campo,tammax,teclapres) {
	var codtecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ",", "" );
	tam = vr.length;
	if (tam < tammax && codtecla != 8){ tam = vr.length + 1 ; }
	
	if ( codtecla == 8 || codtecla >= 48 && codtecla <= 57 || codtecla >= 96 && codtecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}
}

/*
-----------------------------------------------------------------------------
Nome da Função: FormataReais(variavel)
Objetivo: Formatar e validar campos de valores Moeda
Parâmetros:
		variavel -> campo a ser formatado (this).
Validacoes:
		1 - Não deixa digitar numero negativo;
Chamada:
	onKeyUp="FormataReais(this,2,event)"
-----------------------------------------------------------------------------
*/
function FormataReais(variavel)
{
	vr = variavel;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ",", "" );
	tam = vr.length;

 	if ( (tam > 2) && (tam <= 17) ){
 		variavel = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if ( (tam >= 6) && (tam <= 8) ){
 		variavel = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if ( (tam >= 9) && (tam <= 11) ){
 		variavel = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if ( (tam >= 12) && (tam <= 14) ){
 		variavel = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if ( (tam >= 15) && (tam <= 17) ){
 		variavel = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}

	return variavel;
}


function FormataMotorizacao(campo,tammax,teclapres) {
	var codtecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ",", "" );
	tam = vr.length;
	if (tam < tammax && codtecla != 8){ tam = vr.length + 1 ; }
	
	if ( codtecla == 8 || codtecla >= 48 && codtecla <= 57 || codtecla >= 96 && codtecla <= 105 ){
		if ( tam <= 1 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 1) && (tam <= 2) ){
	 		campo.value = vr.substr( 0, tam - 1 ) + '.' + vr.substr( tam - 1, tam ) ; }
	}
}


function FormataQuilometragem(campo,tammax,teclapres) {
	var codtecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ",", "" );
	tam = vr.length;
	if (tam < tammax && codtecla != 8){ tam = vr.length + 1 ; }
	
	if ( codtecla == 8 || codtecla >= 48 && codtecla <= 57 || codtecla >= 96 && codtecla <= 105 ){
		if ( tam <= 3 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 3) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 3 ) + '.' + vr.substr( tam - 3, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, tam ) ; }
	}
}

