// Formata o campo de acordo com a máscara informada.
function FormatarCampo(objCampo, strMascara){
	/*
	Exemplos: 
	- Data: '**-**-****', '##/##/####'.
	- CEP: '**.***-***', '##.###-###'.
	- CPF: '###.###.###-##'
	*/
	var intDigito = event.keyCode;

	// Expressão regular para validação de caractere dígitado.
	// São aceitos apenas números entre "0-9", são feitos dois testes pois existem "dois teclados numéricos" e seus caracteres ASCII são diferentes.
	var objER = /^(4[8-9]|5[0-7]|9[6-9]|10[0-5])$/;

	if(objER.test(intDigito)){
		var intTamanho   = objCampo.value.length;
		var strCaractere = strMascara.charAt(0);
		var strMascara   = strMascara.substring(intTamanho)

		if (strMascara.charAt(0) != strCaractere)
			objCampo.value += strMascara.charAt(0);
	}
}
function FormatarCampo1(objCampo, c, strMascara){
	/*
	Exemplos: 
	- Data: '**-**-****', '##/##/####'.
	- CEP: '**.***-***', '##.###-###'.
	- CPF: '###.###.###-##'
	*/
	var intDigito = event.keyCode;

	// Expressão regular para validação de caractere dígitado.
	// São aceitos apenas números entre "0-9", são feitos dois testes pois existem "dois teclados numéricos" e seus caracteres ASCII são diferentes.
	var objER = /^(4[8-9]|5[0-7]|9[6-9]|10[0-5])$/;

	if(objER.test(intDigito)){
		var intTamanho   = objCampo.value.length;
		var strCaractere = c;
		var strMascara   = strMascara.substring(intTamanho)

		if (strMascara.charAt(0) != strCaractere)
			objCampo.value += strMascara.charAt(0);
	}
}

// Inícío da Função de Mascara da Data 
	function MascaraData(campo,e) 
		/*Esta função além de inserir a mascara na data, impede 
		  de que o usuário digite caracteres não numéricos.*/
		{
			// Verifica se não foi pressionada nenhuma que não seja númerica
			var cod="";
				if(document.all) 
					{
						cod=event.keyCode;
					} 
				else 
					{
						cod=e.which;
					} 
				if (cod == 8 || cod == 0) 
					{
						return;
					} 
				if ((cod < 48) || cod > 57) 
					{ 
						if ((cod < 45) || cod > 57) 
						cod=0; 
						campo.focus(); 
						return false;
					}
			// Impede que seja digitado mais que 10 caracteres
			tam = campo.value.length;
				if(tam > 9) 
					return false;
			// Rotina de Inserção da Mascara na Data
			var caract = String.fromCharCode(cod); 
				if(tam == 2 || tam == 5 ) 
					{
						campo.value+="/"+caract; 
						return false;
					}
				campo.value+=caract; 
				return false; 
		}
	// Fim da Função de Mascara da Data 
	
	// Inícío da Função de Mascara da CEP 
	function MascaraCEP(campo,e)
	/* Esta função além de inserir a mascara na CEP, impede 
	  de que o usuário digite caracteres não numéricos.*/
		{
			// Verifica se não foi pressionada nenhuma que não seja númerica
			var cod="";
				if(document.all) 
					{
						cod=event.keyCode;
					} 
				else 
					{ 
						cod=e.which;
					} 
				if (cod == 8 || cod == 0) 
					{
						return;
					} 
				if ((cod < 48) || cod > 57) 
					{ 
						if ((cod < 45) || cod > 57) 
						cod=0; 
						campo.focus(); 
						return false;
					}
			// Impede que seja digitado mais que 10 caracteres
			tam=campo.value.length;
				if(tam > 9) 
					return false;
			
			// Rotina de Inserção da Mascara na Data
			var caract = String.fromCharCode(cod); 
				if(tam == 2 ) 
					{
						campo.value+="."+caract; 
						return false;
					}
				if(tam == 6 ) 
					{
						campo.value+="-"+caract; 
						return false;
					}
				campo.value+=caract; 
				return false; 
		}
	// Fim da Função de Mascara da CEP 
	
	// Inícío da Função de Validação de Data 
	function VerificaData (campo) 
		{ 
			dia = (campo.value.substring(0,2)); 
			mes = (campo.value.substring(3,5)); 
			ano = (campo.value.substring(6,10)); 
			
			situacao = ""; 
		
				// Verifica o dia válido para cada mes 
				if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) 
					{ 
						situacao = "falsa"; 
					} 
				
				// Verifica se o mês é Válido 
				if (mes < 01 || mes > 12 ) 
					{ 
						situacao = "falsa"; 
					} 

				// verifica se e ano bissexto 
				if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) 
					{ 
						situacao = "falsa"; 
					} 

				//Verifica se o campo foi preenchido
				if (campo.value == "") 
					{ 
						situacao = "nula"; 
					} 
				/* Verifica se a situacao e nula se for retorna 
				   um alerta dizendo que a Data não foi Informada */
				if (situacao == "nula") 
					{ 
						alert("Data não Informada!");
					} 
				/*Verifica se em algum momento a situacao da data 
				  se tornou falsa, se sim ele retorna um alerta 
				  informando que a data e inválida */
				if (situacao == "falsa") 
					{ 
						alert("Data inválida!");
						campo.value = ""; 
						campo.focus(); 
					} 
		}
	// Fim da Função de Validação de Data 
	
	// Inícío da Função da Mascara do Telefone 
	
	function MascaraTelefone(Campo, x) { 
	/* Esta Função permite que seja digitado somente 
	   caracteres numéricos e que não seja digitado 
	   nenhum telefone maior que 10 caracteres */
		var key = ''; 
		var len = 0; 
		var strCheck = '0123456789'; 
		var aux = ''; 
		var whichCode = (window.Event) ? x.which : x.keyCode; 
	 
			if (whichCode == 13 || whichCode == 8 || whichCode == 0 || whichCode < 48 || whichCode > 57) 
				{ 
					return false;  // Enter backspace ou FN qualquer um que não seja alfa numerico 
				} 
		
		key = String.fromCharCode(whichCode); 
		
			if (strCheck.indexOf(key) == -1)
				{ 
					return false;  //NÃO E VALIDO 
				} 
	 
		aux =  TelefoneRemoveFormat(Campo.value); 
		len = aux.length; 
	
			if(len>=10) 
				{ 
					return false;    //impede de digitar um telefone maior que 10 
				} 
		
		aux += key; 
		Campo.value = TelefoneMontFormat(aux); 
		return false; 
	} 

function  TelefoneMontFormat(Telefone) 
	{ 
		var aux = len = ''; 
		len = Telefone.length; 
		
			if(len<=9) 
				{ 
					tmp = 5; 
				} 
				else 
					{ 
						tmp = 6; 
					} 
					 
		aux = ''; 
	
			for(i = 0; i < len; i++) 
				{ 
					if(i==0) 
						{ 
							aux = '('; 
						} 
				aux += Telefone.charAt(i); 
					
					if(i+1==2) 
						{ 
							aux += ')'; 
						} 
					 
					if(i+1==tmp) 
						{ 
							aux += '-'; 
						} 
				} 
				return aux ; 
		} 

	function  TelefoneRemoveFormat(Telefone) 
		{ 
			var strCheck = '0123456789'; 
			var len = i = aux = ''; 
			len = Telefone.length; 
			for(i = 0; i < len; i++) 
			{ 
				if (strCheck.indexOf(Telefone.charAt(i))!=-1) 
				{ 
					aux += Telefone.charAt(i); 
				} 
			} 
			return aux; 
		} 
	
	function SoNumerosCPF(campo,e) 
		{
			var cod="";
				if(document.all) 
					{
						cod=event.keyCode;
					} 
				else 
					{
						cod=e.which;
					} 
				if (cod == 8 || cod == 0) 
					{
						return;
					} 
				if ((cod < 48) || cod > 57) 
					{ 
						if ((cod < 45) || cod > 57) 
						cod=0; 
						campo.focus(); 
						return false;
					}
					tam=campo.value.length;
						if(tam > 13) 
							return false;
					var caract = String.fromCharCode(cod); 
						if(tam == 3 || tam == 7 ) 
							{
								campo.value+="."+caract; 
								return false;
							}
						if(tam == 11) 
							{
								campo.value+="-"+caract; 
								return false;
							}
						campo.value+=caract; 
						return false;
						 
			}
	function Boleto(campo,e) 
		{
			var cod="";
				if(document.all) 
					{
						cod=event.keyCode;
					} 
				else 
					{
						cod=e.which;
					} 
				if (cod == 8 || cod == 0) 
					{
						return;
					} 
				if ((cod < 48) || cod > 57) 
					{ 
						if ((cod < 45) || cod > 57) 
						cod=0; 
						campo.focus(); 
						return false;
					}
					tam=campo.value.length;
						if(tam > 11) 
							return false;
					var caract = String.fromCharCode(cod); 
						if(tam == 10) 
							{
								campo.value+="-"+caract; 
								return false;
							}
						campo.value+=caract; 
						return false;
						 
			}

	function SoNumerosCNPJ(campo,e) 
		{
			var cod="";
				if(document.all) 
					{
						cod=event.keyCode;
					} 
				else 
					{
						cod=e.which;
					} 
				if (cod == 8 || cod == 0) 
					{
						return;
					} 
				if ((cod < 48) || cod > 57) 
					{ 
						if ((cod < 45) || cod > 57) 
						cod=0; 
						campo.focus(); 
						return false;
					}
					tam=campo.value.length;
						if(tam > 17) 
							return false;
					var caract = String.fromCharCode(cod); 
						if(tam == 2 || tam == 6 ) 
							{
								campo.value+="."+caract; 
								return false;
							}
						if(tam == 10) 
							{
								campo.value+="/"+caract; 
								return false;
							}
						if(tam == 15) 
							{
								campo.value+="-"+caract; 
								return false;
							}
							
						campo.value+=caract; 
						return false;
						 
			}

	function ValidarCPF(numCPF) 
		{ 
			semForm = numCPF.value.toString().replace(/\-|\./g,''); 
				if (semForm.length == 0) 
					{
						alert("Número CPF não Informado.");
						return false;
					}
				if (semForm.length < 11 && semForm.length > 1) 
					{
						alert("Número CPF não possui 11 algarismos.");
						numCPF.value = ""; 
						numCPF.focus();
						return false;
					}
			//Início crítica CPF com todos os algarismos iguais
			 var c=0, igual = false;
				 while (c < 11)
					{
						if (semForm.charAt(c) != semForm.charAt(0))
							{ 
								igual=false; 
								break;
							}
							else 
							igual=true;
							c++;
					}
				
				 if (igual==true) 
					{
						alert("Número de CPF Inválido! \nNúmero do CPF contém 11 algarismos idênticos.");
						numCPF.value = "";
						numCPF.focus();
						return false;
					} 
		 //Final crítica CPF com todos os algarismos iguais
		 
				if (!ValidaCPF(semForm)) 
					{
						alert("Número de CPF Inválido!"); 
						numCPF.value = ""; 
						numCPF.focus();
						return false;
					}
						 else 
							{
								return true;
							}
		}

	function ValidaCPF(Valor) 
		{ 
			for (SomaProd=0, P=10; P < 12; P++)
				{
					for (i=0; i <(P-1); i ++)
						{
							SomaProd += (Valor.charAt(i)) * (P - i);
						}
					Resto = (SomaProd % 11); 
					if (Resto == 0 || Resto == 1) 
						DV = 0;
					else
						DV = 11 - Resto;
							//alert("Comparação:"+"\n"+"DV1 " +((Valor.charAt(P-1) != DV)? "diferente de" : "igual a")+" DV2" );
					if (DV != (Valor.charAt(P-1))) 
						return false; 
						SomaProd = 0; 
				}
				return true; 
		}
	
	function ValidaEmail(email) 
		{
			var ok = true;
				if (email.value == "" )
					{
						alert("E-mail não Informado!");
						return false;
					}
					// "[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1"
					// "^[A-Za-z0-9]+([._+]{1}[a-zA-Z0-9]+)*[@]{1}[A-Za-z0-9]+([._]{1}[a-zA-Z0-9]+)*"
				if  (email.value.search("@") == -1 || email.value.search("[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1") == -1)
					{
					  alert("E-mail inválido!");
					  email.value = "";
					  email.focus();
					  ok = false;
					  return false;
					 }
		
		}
		
function isNUMB(c) 
 { 
 if((cx=c.indexOf(","))!=-1) 
  { 
  c = c.substring(0,cx)+"."+c.substring(cx+1); 
  } 
 if((parseFloat(c) / c != 1)) 
  { 
  if(parseFloat(c) * c == 0) 
   { 
   return(1); 
   } 
  else 
   { 
   return(0); 
   } 
  } 
 else 
  { 
  return(1); 
  } 
 } 

function LIMP(c) 
 { 
 while((cx=c.indexOf("-"))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf("/"))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf(","))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf("."))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf("("))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf(")"))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf(" "))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 return(c); 
 } 

function VerifyCNPJ(CNPJ) 
 { 
 CNPJ = LIMP(CNPJ); 
 if(isNUMB(CNPJ) != 1) 
  { 
  return(0); 
  } 
 else 
  { 
  if(CNPJ == 0) 
   { 
   return(0); 
   } 
  else 
   { 
   g=CNPJ.length-2; 
   if(RealTestaCNPJ(CNPJ,g) == 1) 
    { 
    g=CNPJ.length-1; 
    if(RealTestaCNPJ(CNPJ,g) == 1) 
     { 
     return(1); 
     } 
    else 
     { 
     return(0); 
     } 
    } 
   else 
    { 
    return(0); 
    } 
   } 
  } 
 } 
function RealTestaCNPJ(CNPJ,g) 
 { 
 var VerCNPJ=0; 
 var ind=2; 
 var tam; 
 for(f=g;f>0;f--) 
  { 
  VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind; 
  if(ind>8) 
   { 
   ind=2; 
   } 
  else 
   { 
   ind++; 
   } 
  } 
  VerCNPJ%=11; 
  if(VerCNPJ==0 || VerCNPJ==1) 
   { 
   VerCNPJ=0; 
   } 
  else 
   { 
   VerCNPJ=11-VerCNPJ; 
   } 
 if(VerCNPJ!=parseInt(CNPJ.charAt(g))) 
  { 
  return(0); 
  } 
 else 
  { 
  return(1); 
  } 
 } 
  
function TestaCNPJ() 
 { 
 if(VerifyCNPJ(document.CadastraNovoClientePJ.NRCNPJ.value) == 1) 
  { 

  } 
 else 
  { 
  alert("CNPJ não é válido!"); 
   document.CadastraNovoClientePJ.NRCNPJ.value = "";
   //document.CadastraNovoClientePJ.NRCNPJ.focus(); 
  } 

 return; 
 } 
function FormataNumero(v, isMoney, dec, sep) {		
	if (dec == null){dec = 2;}
	if (sep == null){sep = ",";}	
	vatual = v.value;		
	vatual = RetiraSinais(vatual);
	if ((vatual.length >= 3) && (vatual.indexOf("0") == 0))
		vatual = vatual.substr(1, vatual.length -1);		
	if (vatual.length > dec) {
		if (isMoney) {
			Ndecimal = vatual.substr((vatual.length - dec),dec);
			vr = vatual.substring(0,(vatual.length - dec));											
		}
		else {
			vr = vatual;
		}
		tam = vr.length;	
		if (tam > 3) {
			indice = parseInt(tam / 3);
			resto = (tam % 3);		
			valor = ""
			for (i = 1; i <= indice; i++){			
				valor = vr.substr((tam - (3 * i)), 3) + valor ;			
				if ((indice != i) || (resto > 0))
					valor = "." + valor;			
			}
			if (resto >= 1)
				valor = vr.substr(0,resto) + valor;				
		}
		else {
			valor = vr;			
		}
		if (isMoney){
			valor = valor + sep + Ndecimal;
		}
		v.value = valor;
	}	
	else {
		if (isMoney) {
			if (vatual.length == 1)
				v.value = "0" + sep + "0" + vatual;
			else				
				v.value = "0" + sep + vatual;
		}		
	}	
}

function SoNumerosHora(campo,e) 
		{
			var cod="";
				if(document.all) 
					{
						cod=event.keyCode;
					} 
				else 
					{
						cod=e.which;
					} 
				if (cod == 8 || cod == 0) 
					{
						return;
					} 
				if ((cod < 48) || cod > 57) 
					{ 
						if ((cod < 45) || cod > 57) 
						cod=0; 
						campo.focus(); 
						return false;
					}
					tam=campo.value.length;
						if(tam > 4) 
							return false;
					var caract = String.fromCharCode(cod); 
						if(tam == 2  ) 
							{
								campo.value+=":"+caract; 
								return false;
							}
							
						campo.value+=caract; 
						return false;
						 
			}

function VerificaHora(hora){ 
  hrs = (hora.value.substring(0,2)); 
  min = (hora.value.substring(3,5)); 
  
  
  situacao = ""; 
  // verifica data e hora 
  if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){ 
	  situacao = "falsa"; 
  } 
   
  if (hora.value == "") { 
	  alert("Hora não Informada!"); 
  } 

  if (situacao == "falsa") { 
	  alert("Hora inválida!"); 
	  hora.value = "";
	  hora.focus();
	  
  } 
} 
function numberOnly(){
	var key	= event.keyCode;
	var reg	= "0123456789";
	event.keyCode = (reg.indexOf(String.fromCharCode(key))!=-1) ? key : 0 ;
}

function RetiraSinais(vatual){	
	if ((vatual == null) || (vatual == "")) vatual = "0,00"
	while (vatual.indexOf(".") > -1)
		vatual = vatual.replace(".","");
	vatual = vatual.replace(",","");	
	return(vatual);
}