function formataCep(campo, formulario, proximo) { 
	var proximo 
	
	if (campo.value.length == 5) {
		campo.value = campo.value + "-"  ;
	}
	
	
	if (campo.value.length > 8) {
		//campo1 = eval('document.' + formulario + '.' + proximo + '.focus()') ;
		//campo1 ;
	}
}

function formataData(campo, proximo){
	if (campo.value.length == 2 || campo.value.length == 5) {
		campo.value += "/"  ;
	 }
	 
	if (campo.value.length > 9) {
		if(typeof proximo != "undefined")
		proximo.focus();
	}

}

function formataDataNascimento(campo, proximo){
	if (campo.value.length == 2 || campo.value.length == 5) {
		campo.value += "/"  ;
	 }
	 
	if (campo.value.length > 9) {
		if(validaDataNascimento(campo)) {
			if(typeof proximo != "undefined") {
				proximo.focus();
			}
		} else {
			campo.value = '';
		}
	}
}

function formataDataNascimentoSemAno(campo, proximo){
	if (campo.value.length == 2 || campo.value.length == 5) {
		campo.value += "/"  ;
	 }
	 
	if (campo.value.length > 9) {
		if(validaDataNascimentoSemAno(campo)) {
			if(typeof proximo != "undefined") {
				proximo.focus();
			}
		} else {
			campo.value = '';
		}
	}
}

function validaDataNascimento(campo){
	erro=0;
	hoje = new Date();
	diaAtual = hoje.getUTCDate();
	mesAtual = hoje.getUTCMonth()+1;
	anoAtual = hoje.getFullYear();
	barras = campo.value.split("/");
	if (barras.length == 3){
		  dia = barras[0];
		  mes = barras[1];
		  ano = barras[2];
		  resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1902));
		  if (!resultado) {
			    if(ano > anoAtual) {
			    	alert("Data de nascimento deve ser menor que a data atual!");
			    	campo.focus();
			    	return false;
			    } 
			    else if (ano < 1902) {	    			    
				    alert("Data de Nascimento anterior a 1902!");
				    campo.focus();
				    return false;
			    }		    			    
			    else {
				    alert("Formato de data inválido!");
				    campo.focus();
				    return false;
			    }
		  } else {
		  		if((dia == 29)&& (mes == 2)){
		  			var x = ano%4;
		  			if(x != 0) {
		  				alert("Fevereiro so tem 29 dias em ano bissexto!")
		  				return false;
		  			} else {
		  				return true;
		  			}
		  		}else if((dia >= 30) && (mes == 2)) {
		  			alert("Fevereiro tem no maximo 29 dias! ");
		  			return false;
		  		} else if((dia >= 31)&&!((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12))) {
		  			if(mes == 4) {
		  				alert("Abril tem no maximo 30 dias");
		  			} else if(mes == 6) {
		  				alert("Junho tem no maximo 30 dias");
		  			} if(mes == 9) {
		  				alert("Setembro tem no maximo 30 dias");
		  			} else if(mes == 11) {
		  				alert("Novembro tem no maximo 30 dias");
		  			}
		  			return false;
		  		} else {
		  			if(ano == anoAtual) {
			  			if(mes == mesAtual) {
			  				if(dia <= diaAtual) {		  					
			  					return true;
			  				}	else {
			  					alert("Data de nascimento deve ser menor que a data atual!");
			  					return false;
			  				}
			  			} else {
			  				if(mes > mesAtual) {
			  					alert("Data de nascimento deve ser menor que a data atual!");
			  					return false;
			  				} else {
			  					return true;
			  				}
			  			}
		  			} else if(ano > anoAtual) {
		  				alert("Data de nascimento deve ser menor que a data atual!");
		  				return false;
		  			} else if(ano < anoAtual) {
		  				return true;
		  			}
		  		}
		  }	
	} else {
		  alert("Formato de data inválido!");
		  campo.focus();
		  return false;
	}
}
function validaDataNascimentoSemAno(campo){
	erro=0;
	hoje = new Date();
	diaAtual = hoje.getUTCDate();
	mesAtual = hoje.getUTCMonth()+1;
	anoAtual = hoje.getFullYear();
	barras = campo.value.split("/");
	if (barras.length == 3){
		  dia = barras[0];
		  mes = barras[1];
		  ano = barras[2];
		  resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual));
		  if (!resultado) {
			    if(ano > anoAtual) {
			    	alert("Data de nascimento deve ser menor que a data atual!");
			    	campo.focus();
			    	return false;
			    } else {
				    alert("Formato de data invalido!");
				    campo.focus();
				    return false;
			    }
		  } else {
		  		if((dia == 29)&& (mes == 2)){
		  			var x = ano%4;
		  			if(x != 0) {
		  				alert("Fevereiro so tem 29 dias em ano bissexto!")
		  				return false;
		  			} else {
		  				return true;
		  			}
		  		}else if((dia >= 30) && (mes == 2)) {
		  			alert("Fevereiro tem no maximo 29 dias! ");
		  			return false;
		  		} else if((dia >= 31)&&!((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12))) {
		  			if(mes == 4) {
		  				alert("Abril tem no maximo 30 dias");
		  			} else if(mes == 6) {
		  				alert("Junho tem no maximo 30 dias");
		  			} if(mes == 9) {
		  				alert("Setembro tem no maximo 30 dias");
		  			} else if(mes == 11) {
		  				alert("Novembro tem no maximo 30 dias");
		  			}
		  			return false;
		  		} else {
		  			if(ano == anoAtual) {
			  			if(mes == mesAtual) {
			  				if(dia <= diaAtual) {		  					
			  					return true;
			  				}	else {
			  					alert("Data de nascimento deve ser menor que a data atual!");
			  					return false;
			  				}
			  			} else {
			  				if(mes > mesAtual) {
			  					alert("Data de nascimento deve ser menor que a data atual!");
			  					return false;
			  				} else {
			  					return true;
			  				}
			  			}
		  			} else if(ano > anoAtual) {
		  				alert("Data de nascimento deve ser menor que a data atual!");
		  				return false;
		  			} else if(ano < anoAtual) {
		  			
		  		}	return true;
		  			}
		  }	
	} else {
		  alert("Formato de data invalido!");
		  campo.focus();
		  return false;
	}
}

function formataCNPJ(cnpj) {
	while(cnpj.lenght < 14)
		cnpj = "0" + cnpj;
		
	cnpj = cnpj.substr(0, 2) + '.' + cnpj.substr(2, 3) + '.' + cnpj.substr(5, 3) + '/' + cnpj.substr(8, 4) + '-' + cnpj.substr(12, 2)
	
	return cnpj
}

function formataTempoRealCPF(cpf) {
	if (cpf.value.length == 3 || cpf.value.length == 7) {
		cpf.value += "."  ;
	 }
	if (cpf.value.length == 11 && cpf.value.substring(3,4) == '.' ) {
		cpf.value += "-";
	}
}

function formataCPF(cpf) {

	if (cpf.value.length == 11) {
		var cpfForm = cpf.value.substring(0,3);
		cpfForm += ".";
		
		cpfForm += cpf.value.substring(3,6);
		cpfForm += ".";

		cpfForm += cpf.value.substring(6,9);
		cpfForm += "-";
		
		cpfForm += cpf.value.substring(9,11);
		//alert(cpfForm);
				
		cpf.value = cpfForm;
	}
}

function validaPeriodoDatas(oDataInicial, oDataFinal) {
	dd = oDataInicial.value.substring(0,2)  * 1 
  mm = oDataInicial.value.substring(3,5)  * 1 
  aa = oDataInicial.value.substring(6,20) * 1

	ddf = oDataFinal.value.substring(0,2)  * 1 
  mmf = oDataFinal.value.substring(3,5)  * 1 
  aaf = oDataFinal.value.substring(6,20) * 1

//Cria variaveis com Data atual do Sistema.
 	hoje = new Date();
	diaAtual = hoje.getUTCDate();
	mesAtual = hoje.getUTCMonth()+1;
	anoAtual = hoje.getFullYear();

	//Verifica se ano V?lido
	if (aa < 1980 || aa > anoAtual){
		alert(" Ano da data inicial invalido ")
		oDataInicial.value = ""
		oDataInicial.focus()
		return false
	}

	//Verifica se ano final V?lido
	if (aaf < 1980 || aaf > anoAtual){
		alert(" Ano da data final invalido ")
		oDataFinal.value = ""
		oDataFinal.focus()
		return false
	}

//Verifica se m?s V?lido
	if (mm < 1 || mm > 12){
		alert(" Mês da data inicial invalido ")
		oDataInicial.value = ""
		oDataInicial.focus()
		return false
	}
	//Verifica se m?s final V?lido
	if (mmf < 1 || mmf > 12){
		alert(" Mês da data final invalido ")
		oDataFinal.value = ""
		oDataFinal.focus()
		return false
	}
	//Verifica se dia V?lido
	if (dd < 1 || dd > 31){
		alert(" Dia da data inicial invalido ")
		oDataInicial.value = ""
		oDataInicial.focus()
		return false;
	}
	//Verifica se dia final V?lido
	if (ddf < 1 || ddf > 31){
		alert(" Dia da data final invalido ")
		oDataFinal.value = ""
		oDataFinal.focus()
		return false
	}
	//Verifica se dia V?lido para Fevereiro
	if (mm == 2){
		if (dd > 29){
			alert(" Dia da data inicial invalido ")
			oDataInicial.value = ""
			oDataInicial.focus()
			return false
		}
	}
	//Verifica se dia final V?lido para Fevereiro
	if (mmf == 2){
		if (ddf > 29){
			alert(" Dia da data inicial invalido ")
			oDataFinal.value = ""
			oDataFinal.focus()
			return false
		}
	}

//Compara data inicial com a final (Inicial deve ser menor)
	if (aa == aaf) {
		if (mm > mmf) {
			alert(" A data inicial e maior do que a data final ") 
			oDataInicial.value = "" 
			oDataFinal.value = "" 
			oDataInicial.focus ()
			return false 
		} 
		else if (mm == mmf && dd >= ddf) {
			alert(" A data inicial e maior do que a data final ") 
			oDataInicial.value = "" 
			oDataFinal.value = "" 
			oDataInicial.focus ()
			return false 
		}
	} 
	else if (aa > aaf) {
		alert(" A data inicial e maior do que a data final ") 
		oDataInicial.value = "" 
		oDataFinal.value = "" 
		oDataInicial.focus ()
		return false 
	}
	return true
}



function Trim(s) {  
			
	// Remove leading spaces and carriage returns    
	while ( (s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r') )  {    
		s = s.substring(1,s.length);  
	}  
	
	// Remove trailing spaces and carriage returns  
	while ( (s.substring(s.length-1,s.length) == ' ') || 
			(s.substring(s.length-1,s.length) == '\n') || 
			(s.substring(s.length-1,s.length) == '\r') )  {    
		s = s.substring(0,s.length-1);  
	}  
		
	return s;
}





//***********************************************************************************************
	// Formata double com a m?scara 00.000.000,00 (8,2)
	// Descri??o das teclas:
	// tecla: 44 = ,
	// tecla: 46 = .
	// tecla: de 48 a 57 = 0 a 9
function formataDouble(objeto,teclapress){
	
	var tecla = teclapress.keyCode;


	if  ( ( (tecla == 8) || (tecla == 88) || (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) ) && 
		  ( objeto.value.length <= (13) ) 
		 ){
	
		vr = objeto.value;
		

		
		// Retirar pontua??o
		vr = vr.replace( ",", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		
		tam = vr.length;
		
		if (tam <=10)
		{
		  if (tecla != 10) 
		  {
		    tam = vr.length + 1 ;
		  }
		}
		else
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		
		
		
		if ((tecla == 10) && (tam > 1))
		{
			tam = tam - 1 ;
			objeto.value = vr.substr(0,tam);
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		
		
		objeto.value = inserirMascaraMoeda(vr, tecla);
		
	}
	else{
	    if( (window.event.keyCode != 8)  && 
	    	(window.event.keyCode != 9)  && 
	    	(window.event.keyCode != 13) && 
	    	(window.event.keyCode != 35) && 
	    	(window.event.keyCode != 36) && 
	    	(window.event.keyCode != 46) )
	    {
		  event.returnValue = false;
		}
	}
			
	
}
//***********************************************************************************************





//***********************************************************************************************
/* Fun??o para modificar um campo do tipo 00.000.000,00 para 00000000.00 */
function fomatarValorToDouble(objeto){

	vr = objeto.value;

	// Retirar pontua??o
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );	

	// Trocar ponto por v?rgula.
	vr = vr.replace( ",", "." );
		
	return vr;	

}
//***********************************************************************************************



//***********************************************************************************************
/* Completar com zeros ap?s o caracter de pesquisa. */
/* Inserir no m?ximo dois zeros */
function formatarDecimalZerosDireita(conteudoPesquisa, caracterPesquisa){
	var valorDecimal = "0";
	var valorRetorno = null;
	var tamanhoConteudoPesquisa = conteudoPesquisa.length;
	var posicaoInicioPesquisa = tamanhoConteudoPesquisa - 3;
	var posicao = conteudoPesquisa.indexOf(caracterPesquisa, posicaoInicioPesquisa);

	if ( posicao == (-1) ) //Inserir 2 zeros
		valorRetorno = conteudoPesquisa + caracterPesquisa + valorDecimal + valorDecimal; 
	 else
	 	if ( posicao == tamanhoConteudoPesquisa - 2 ) //Inserir 1 zero
	 		valorRetorno = conteudoPesquisa + valorDecimal;
	 	else	//N?o Inserir zeros
	 		valorRetorno = conteudoPesquisa;
		
	return valorRetorno;	

}
//***********************************************************************************************




//***********************************************************************************************
/* Inserir zeros a esquerda (0,00) */
function formatarDecimalZerosEsquerda(conteudoPesquisa){	
	var valorDecimal = "0";
	var separadorDecimal = ',';
	var valorRetorno = null;
	
	
	tamanho = 4 - conteudoPesquisa.length;
		
	if (tamanho == 4)
		valorRetorno = valorDecimal + separadorDecimal + valorDecimal + valorDecimal;
	else	
	 	if (tamanho == 3)
	 		valorRetorno = valorDecimal + separadorDecimal + valorDecimal + conteudoPesquisa;
	 	else
	 		if (tamanho == 2)	
		 		valorRetorno = valorDecimal + separadorDecimal + conteudoPesquisa;
			else
				valorRetorno = conteudoPesquisa;

	return valorRetorno;
}		
//***********************************************************************************************






//***********************************************************************************************
/* Fun??o para retirar pontua?ao de uma string */
/* Caracteres retirados=  .(ponto) ,(v?rgula) */
function retirarPontuacao(objeto){

	vr = objeto.value;
	
	// Retirar pontua??o
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );	
	vr = vr.replace( ",", "" );
		
	return vr;	

}
//***********************************************************************************************
	

	
	

//***********************************************************************************************
/*Fun??o para inserir a m?scara em campo do tipo custo 00.000.000,00 (8,2) */
/*M?scara aplicada aos campos com inser??o da direita para a esquerda */ 
function inserirMascaraMoeda(valor, tecla){	
	var valorDecimal = "0";
	var separadorDecimal = ',';
	var retornoFormatado = null;

	vr = valor;
	
	

	
	
	/* --------------------------------------------------- */
	/* Retirar zeros a esquerda */
	/* O valor n?o dever? conter pontua??o */

	while ( vr.charAt(0) == valorDecimal)	
		vr = vr.substring(1, vr.length);
		
	/* --------------------------------------------------- */		 
	
 
			 
	
	tam = vr.length;
	
			 

	if ( (tam <= 2) && (tecla != 8) )
	{ 
 		retornoFormatado = vr;
	}
	
	
	if ( (tam > 2) && (tam < 6) )
	{
		var decimal = vr.substr(vr.length - 2, 2);
		var centena = vr.substr(0, vr.length - 2);
		retornoFormatado = vr.substr(0, vr.length - 2) + ',' + decimal; 
	}
	
	
	if ( (tam >= 6) && (tam < 9) )
	{
       var decimal = vr.substr(vr.length - 2, 2);
       var centena = vr.substr(vr.length - 5, 3);
       var milhar = vr.substr(0, vr.length - 5);
       retornoFormatado = milhar + '.' +  centena + ',' + decimal;				
	}
	
	
	if ( (tam >= 9) && (tam <= 11) )
	{
        var decimal = vr.substr(vr.length - 2, 2);
        var centena = vr.substr(vr.length - 5, 3);
        var milhar = vr.substr(vr.length - 8, 3);
       	var milhao = vr.substr(0, vr.length - 8);
        retornoFormatado = milhao + '.' + milhar + '.' +  centena + ',' + decimal;				
	}
		
	
	
	if ( ( tam == (11) ) && (tecla != 8) )
	{
				
		if(tecla >=96 && tecla <=105)
		{
			tecla = tecla - 48;
		}

		window.event.cancelBubble = true;
		window.event.returnValue = false;
		
	}
	
	

	
	/* --------------------------------------------------- */
	/* Inserir zeros a esquerda */
	retornoFormatado = formatarDecimalZerosEsquerda(retornoFormatado);
	/* --------------------------------------------------- */
	

	
	return retornoFormatado;
	

}
//***********************************************************************************************







	
