/****************************************************************************************************
Página: js_mascaras.js
Descrição: Contém biblioteca de scripts para trabalhar com as máscaras de números
Autor: SZAMOT Software
****************************************************************************************************/

////////////////////////////////////////////////////////////////////////////////////////////////////
//Função que permite apenas valores Numéricos na digitação
////////////////////////////////////////////////////////////////////////////////////////////////////
function fnNumerico(tecla){
 if ((tecla > 0 && tecla < 48) || tecla > 57)
  event.returnValue = false;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//Função que permite apenas valores Monetários (números com vírgulas) na digitação
////////////////////////////////////////////////////////////////////////////////////////////////////
function fnMonetario(campo,tecla){
 if (tecla>=48 && tecla<=57){		
	 event.returnValue = true;
	}else if (tecla==44 && campo.value.indexOf(',')==-1 && campo.value.length>0){
		event.returnValue = true;
	}else{
		event.returnValue = false;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//Função que formata um cmapo para valor decimal
////////////////////////////////////////////////////////////////////////////////////////////////////
function fnValorDecimal(campooriginal,decimais)
{
 var posicaoPontoDecimal;
 var campo = '';
 var resultado = '';
 var pos,sep,dec;

 //Retira possiveis separadores de milhar
 for (pos=0; pos < campooriginal.value.length; pos ++){
		if (campooriginal.value.charAt(pos)!='.'){
   campo = campo + campooriginal.value.charAt(pos);
		}
 }     

 //Formata valor monetário com decimais
 posicaoPontoDecimal = campo.indexOf(',');
 if (posicaoPontoDecimal != -1){
  sep = 0;
  for (pos=posicaoPontoDecimal-1;pos >= 0;pos--){
   sep ++;
   if (sep > 3){
    resultado = '.' + resultado;
    sep = 1;
   }
   resultado = campo.charAt(pos) + resultado;   
  }
  // Trata parte decimal
  if (parseInt(decimais) > 0 ){
   resultado = resultado + ',';      
   pos=posicaoPontoDecimal+1;
   for (dec = 1;dec <= parseInt(decimais); dec++){
    if (pos < campo.length){
     resultado = resultado + campo.charAt(pos);
     pos++;
    }else{
     resultado = resultado + '0';   
				}
   }
  } // trata decimais
 }else{ // Trata valor monetário sem decimais
  sep = 0;
  for (pos=campo.length-1;pos >= 0;pos--){
   sep ++;
   if (sep > 3){
    resultado = '.' + resultado;
    sep = 1;
   }
   resultado = campo.charAt(pos) + resultado;   
  }
  // Trata parte decimal
  if (parseInt(decimais) > 0 ){
   resultado = resultado + ',';
   for (dec = 1;dec <= parseInt(decimais); dec++){
    resultado = resultado + '0';   
   }
  } // trata decimais
 }
	if(resultado==',00'){
		resultado = '0,00'; 
	}
 campooriginal.value = resultado;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//Função que permite apenas valores Hexadecimais
////////////////////////////////////////////////////////////////////////////////////////////////////
function fnHexadecimal(tecla){
 if ((tecla > 0 && tecla < 48) || (tecla > 57 && tecla < 60) || (tecla > 70 && tecla < 97) || tecla >102)
  event.returnValue = false;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//Função que mascara a digitação de datas
////////////////////////////////////////////////////////////////////////////////////////////////////
function fnData(campo,tecla){ 
	var comp  = campo.value.length;
	var valor = campo.value;
 if ((tecla > 0 && tecla < 47) || tecla > 57){ event.returnValue = false;}
	if (comp==2 || comp==5){campo.value = campo.value + '/';}
}
/////////////////////////////////////////////////////////////////////////////////////////////
//Função para formatar o cep digitado
/////////////////////////////////////////////////////////////////////////////////////////////
function fnCEP(form,campo,tecla){
 var f     = eval('document.'+ form +'');
	var comp  = eval('f.'+ campo +'.value.length');
	var valor = eval('f.'+ campo +'.value');
 if ((tecla > 0 && tecla < 48) || tecla > 57){ event.returnValue = false;}
	if (comp==5){eval("f."+ campo +".value = f."+ campo +".value + '-'");}	
}

function FormataCep(objeto){
	if (objeto.value.indexOf("-") == -1 && objeto.value.length > 5){ objeto.value = ""; }
	if (objeto.value.length == 5){
		objeto.value += "-";
	}
}



/////////////////////////////////////////////////////////////////////////////////////////////
//Função para formatar o fone digitado
/////////////////////////////////////////////////////////////////////////////////////////////
function fnTelefone(form,campo,tecla){
 var f     = eval('document.'+ form +'');
	var comp  = eval('f.'+ campo +'.value.length');
	var valor = eval('f.'+ campo +'.value');
 if ((tecla > 0 && tecla < 48) || tecla > 57){ event.returnValue = false;}
	if (comp==3){eval("f."+ campo +".value = f."+ campo +".value + '-'");}
	if (comp==8){
	 var novo = eval("f."+ campo +".value.replace('-','');");
	 eval("f."+ campo +".value = '"+ novo +"';");
		var primeiros = eval("f."+ campo +".value.substring(0,4).toString();")
		var ultimos = eval("f."+ campo +".value.substring(4,8).toString();")
		if (primeiros=='800'){primeiros = '0800'};
		var texto = primeiros.toString() + "-" + ultimos.toString();
		//alert(texto);
		//alert(primeiros);
		//alert(ultimos);		
		//alert(eval("f."+ campo +".value;"));
		eval("f."+ campo +".value = '"+ texto +"';");
		//alert('tetse 14');
	}		
}
/////////////////////////////////////////////////////////////////////////////////////////////
//Função para formatar o fone digitado com ddd
/////////////////////////////////////////////////////////////////////////////////////////////
function fnDDDTelefone(form,campo,tecla){
 var f     = eval('document.'+ form +'');
	var comp  = eval('f.'+ campo +'.value.length');
	var valor = eval('f.'+ campo +'.value');
 if ((tecla > 0 && tecla < 48) || tecla > 57){ event.returnValue = false;}
	if (comp==0){eval("f."+ campo +".value = f."+ campo +".value + '(0'");}
	if (comp==4){eval("f."+ campo +".value = f."+ campo +".value + ') '");}	
	if (comp==9){eval("f."+ campo +".value = f."+ campo +".value + '-'");}
	if (comp==14){
	 var novo = eval("f."+ campo +".value.replace('-','');");
	 eval("f."+ campo +".value = '"+ novo +"';");
		var primeiros = eval("f."+ campo +".value.substring(0,10).toString();")
		var ultimos = eval("f."+ campo +".value.substring(10,14).toString();")
		if (primeiros=='800'){primeiros = '0800'};
		var texto = primeiros.toString() + "-" + ultimos.toString();
		//alert(texto);
		//alert(primeiros);
		//alert(ultimos);		
		//alert(eval("f."+ campo +".value;"));
		eval("f."+ campo +".value = '"+ texto +"';");
		//alert('tetse 14');
	}		
}





/////////////////////////////////////////////////////////////////
function FormataCNPJ(Campo, teclapres){

	var tecla = teclapres.keyCode;

	var vr = new String(Campo.value);
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	vr = vr.replace("/", "");
	vr = vr.replace("-", "");

	tam = vr.length + 1 ;

	
	if (tecla != 9 && tecla != 8){
		if (tam > 2 && tam < 6)
			Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam);
		if (tam >= 6 && tam < 9)
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5);
		if (tam >= 9 && tam < 13)
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8);
		if (tam >= 13 && tam < 15)
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12);
		}
}