<!-----//

function fTrim(str){
	/************************************************************************************
		FTRIM (STR)
		Função genérica utilizando expressões regulares para retornar campo
		sem espaços.
	************************************************************************************/
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

function checkFields(form, fields){
	/*************************************************************************************
		CHECKFIELDS (FORM, FIELDS)
		Função Genérica que verifica se os campos estão vazios,
		ele recebe o form da página como primeiro argumento
		e os nomes dos campos e seus respectivos rótulo.		
		ex.: checkFields(this, [["nome","Nome"],["end","Endereço"]]);
		Premissa: Função inArray().
	**************************************************************************************/
	// Cria as variáveis que serão utilizadas na função
	var obj;
	var cont1;
	var cont2;
	var checked;
	var types;
	var typesPass; 
		
	
	// Inicia as variáveis com seus valores		
	cont1     = fields.length;
	types     = ["text", "textarea", "password", "select-one", "select-multiple", "file"];
	typesPass = ["submit", "button", "reset", "hidden"];

	// Inicia a verificação
	for(var i = 0; i < cont1; i++) {
		obj = eval("form." + fields[i][0]);
		
		if(inArray(types, obj.type) == false && inArray(typesPass, obj.type) == false) { 
			cont2 = obj.length;
			checked = false;
			for(var j = 0; j < cont2; j++ )
				if (obj[j].checked == true) { checked = true; }
			if(checked == false) {
				alert("Por favor preencha o campo " + fields[i][1] + " corretamente!" );
				obj[0].focus();
				return false;
			}
		} else {
			if(inArray(types, obj.type)) {
				
				if(fTrim(obj.value) == "") {
					alert("Por favor preencha o campo " + fields[i][1] + " corretamente!" );
					obj.focus();
					return false;
				}
			}
		}

	}
	return true;		  
}

function inArray(list, type) {
	/****************************************************????ª?I??????????????†???????????????????????????????????????????????????????????????????…????????????????????????†????????????????????????????????????????????????????†??????????†????????????†?????????????????????†?????????????????????????????????????????†????????????†???????????????????????????????????????????†????????????????????????????????????????????????????????????†??????????????J? ??E`EH? ??E?E????????????????????????????????>?*??E?E??????????????????????????ç*********************************
		INARRAY (LIST, TYPE)
		Função que retorna true (verdadeiro) se o o valor que chega pelo parâmetro TYPE 
		estiver dentro do array do parâmetro LIST e false (falso) caso não esteja.
		ex.: inArray(["text", "textarea"], "text");
	**************************************************************************************/	
	// Cria as variáveis que serão utilizadas na função
	var cont;
	var result;
	
	// Inicia as variáveis com os seus valores
	cont   = list.length;
	result = false;
	
	// Inicia a verificação
	for(var i = 0; i < cont; i++) 
		if(list[i] == type) 
			result = true;
	
	return result;					
}


function keyInterger( tecla ) {
  /*******************************************************************************
  	keyInterger ( tecla )
  	Funçao para permitir a digitação somente de números.
  	A funçao dá suporte para números do tipo moeda, portando valores como:
  	17.50  ou 17,50 são permitidos.
  	TECLAS PERMITIDAS
	  -> 48 a 57  => Números do teclado alfa numérico
	  -> 96 a 105 => Números do teclado numérico
	  -> 46 => Tecla [Delete]
	  -> 8 => Tecla [Back space]
	  -> 188 e 110 => Virgula
	  -> 190 e 194 => Ponto
	  EXEMPLO:
	  <INPUT type="text" name="fldValor" onKeyPress="return keyInterger( event.keyCode );">
  ********************************************************************************/
/*
  if( ( tecla == 44 ) || ( tecla == 46 ) || ( tecla == 47 ) || (tecla < 46 | tecla > 57) && (tecla <= 98 | tecla >= 99) && ( (tecla != 8) && (tecla != 0 ) && (tecla != 9) ) ) {
*/
  if( ( tecla == 47 ) | (tecla < 46 | tecla > 57) && (tecla <= 98 | tecla >= 99) && (tecla != 8) ) {
   return false;
  }
  else{
  	return true;
  }
}

function keyInterger2( tecla ) {
  /*******************************************************************************
  	keyInterger ( tecla )
  	Funçao para permitir a digitação SOMENTE de números. nao permite pontos nem virgula
  	TECLAS PERMITIDAS
	  -> 48 a 57  => Números do teclado alfa numérico
	  -> 96 a 105 => Números do teclado numérico
	  -> 46 => Tecla [Delete]
	  ????ª?I??????????????†???????????????????????????????????????????????????????????????????…????????????????????????†????????????????????????????????????????????????????†??????????†????????????†?????????????????????†?????????????????????????????????????????†????????????†???????????????????????????????????????????†????????????????????????????????????????????????????????????†??????????????J? ??E`EH? ??E?E????????????????????????????????>?*??E?E??????????????????????????ç-> 8 => Tecla [Back space]
	  -> 188 e 110 => Virgula
	  -> 190 e 194 => Ponto
	  EXEMPLO:
	  <INPUT type="text" name="fldValor" onKeyPress="return keyInterger2( this.event.keyCode );">
  ********************************************************************************/
  if(
  	 ( tecla == 44 ) || ( tecla == 46 ) || ( tecla == 47 ) || (tecla < 46 | tecla > 57) && (tecla <= 98 | tecla >= 99) && ( (tecla != 8) )  
	) 
  {
   //alert("Tecla não permitida para este campo.\nFavor utilizar apenas números, [vírgula] e [ponto]");
   return false;
  }
  else{
  	return true;
  }
}

function keyInterger3( tecla ) {
  /*******************************************************************************
  	keyInterger ( tecla )
  	Funçao para permitir a digitação SOMENTE de números. nao permite pontos nem virgula
  	TECLAS PERMITIDAS
	  -> 48 a 57  => Números do teclado alfa numérico
	  -> 96 a 105 => Números do teclado numérico
	  -> 46 => Tecla [Delete]
	  -> 8 => Tecla [Back space]
	  -> 9 => Tecla [tab]
	  -> 188 e 110 => Virgula
	  -> 190 e 194 => Ponto
	  EXEMPLO:
	  <INPUT type="text" name="fldValor" onKeyPress="return keyInterger2( this.event.keyCode );">
  ********************************************************************************/
  if(
  	 ( tecla == 44 ) || ( tecla == 46 ) || ( tecla == 47 ) || (tecla < 46 | tecla > 57) && (tecla <= 98 | tecla >= 99) && ( (tecla != 8) && (tecla != 0 ) && (tecla != 9) )  
	) 
  {
   //alert("Tecla não permitida para este campo.\nFavor utilizar apenas números, [vírgula] e [ponto]");
   return false;
  }
  else{
  	return true;
  }
}

function checkDate( Input )
{
	var Data = Input.value;

	if (Data.length == 0) return true;

	/*Expressão Regular comentada para modelo mais específico /^([0-9]{2})[\/]([0-9]{2})[\/]([0-9]{4})$/; */
	var DataRegEx = /^([012][0-9]|3[01])\/(0[1-9]|1[012])\/([0-9]{4})$/;

	if(!(Matches = Data.match(DataRegEx))){
		alert("Formato de data inválido.\nPor favor preencha o campo novamente!");
		Input.focus();
return false;
	}

	// quebra a data em DIA, MES e ANO
	var Dia = Matches[1], Mes = Matches[2], Ano = Matches[3];

	if(Dia<1 || Dia>31){ alert("Data inválida.\nPor favor preencha o campo novamente!"); Input.focus(); return false; }
	if(Mes<1 || Mes>12){ alert("Data inválida.\nPor favor preencha o campo novamente!"); Input.focus(); return false; }
	if ((Mes==4 || Mes==6 || Mes==9 || Mes==11) && Dia>30){ alert("Data inválida.\nPor favor preencha o campo novamente!"); Input.focus(); return false; }

	if (Mes==2) {
		var Resto = (Ano % 4); 
	
		if (Resto==0 && Dia>29){ alert("Em anos bissextos, o mês de fevereiro só tem 29 dias.\nPor favor preencha o campo novamente!"); Input.focus(); return false; }
		if (Resto != 0 && Dia>28){ alert("Data inválida.\nPor favor preencha o campo novamente!"); Input.focus(); return false; }	
	}
	
	return true;
}// fim checkDate


function maskDate( Field ){
	var tamanho = Field.value.length;

	if( tamanho == 2 ){ Field.value = Field.value + '/'; }
	else if( tamanho == 5 ){ Field.value = Field.value + '/'; }
}

function checkHours( Field ){
	var Hora = Field.value;

	if (Hora.length == 0) return true;

	var RegExp = /^([01][0-9]|2[0-3])\:([0-5][0-9])$/; //-> Expressão regular para definir formato do horário HH:MM ( 00:00 a 23:59 )
 
	if(!(arrVal = Hora.match(RegExp))){
		alert("Horário inválido.\nPor favor digite o horário correto!");
		Field.focus();
		return false;
	}
	return true
} //checkHours

function formatHours( Field ){	
	var sizeHora = Field.value.length;
	// adicionar o ':' automático
	if( sizeHora == 2 ){
		Field.value = Field.value + ':'
		Field.value.length++;
	}
	return true
}// formatHours

/*************************************************************************/
function formatCurrency(num) {
//coloca data no formatao 1.000,00
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+'.'+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '' + num + ',' + cents);
}

function formatCurrencyContas(num) {
//converte valor de 1.000,00 para 1,000.00
//alert (num);
	if (num.value!=""){
		num = num.toString().replace(/\$|\./g,'@');
		num = num.toString().replace(/\$|\,/g,'.');
		num = num.toString().replace(/\$|\@/g,',');
		//alert (num);
		if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
		if(cents<10)
		cents = "0" + cents;
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
		return (((sign)?'':'-') + '' + num + '.' + cents);
	}else{
		return 0.00;
	}
}


function formatCurrency3(num) {
	// retorna o valor exatode 2 casas decimais
	// precisa receber valor no formato 1000.00
	var numero,num_formatado, centavos, ponto,tres, num_retorno;
	
	num = new String(num);
	centavos= new String();
	numero= new String();
	num_formatado= new String();
	num_retorno= new String();			
	//pegar centavos
	
	for (cont=0;cont<num.length;cont++){	
		if(ponto!=1 && num.charAt(cont) != "."){
			numero=numero+num.charAt(cont);
		}
		if(ponto==1 && num.charAt(cont) != "."){
			if (centavos.length<2){
				centavos=centavos+num.charAt(cont);
			}
		}		
		if (num.charAt(cont) == "."){
			ponto=1;
		}
		///alert (numero+" "+centavos);
	}

	//formatar o numero
	tres=0;
	for (cont=0;cont<=numero.length;cont++){		
		if (tres>3){
			num_formatado=num_formatado+".";
			tres=0;
		}		
		num_formatado=num_formatado+numero.charAt(eval(numero.length)-cont);
		tres++;		
	}
	// desvirando o numero
	for (cont=0;cont<=num_formatado.length;cont++){
		num_retorno=num_retorno+num_formatado.charAt(eval(num_formatado.length)-cont);
	}
	if (centavos.length==0) centavos = "00";
	if (centavos.length==1) centavos = centavos + "0";
	//alert (num_retorno+","+centavos);
	return num_retorno+","+centavos;

}

function formata_numero(num, decimais){
	// transforma 1.000,00 em 1000.00 traz a qtd de decimais ou 2 decimais como default
	var valor, resultado="", ponto, qt_decimais;
	valor = new String(num);
	if (!decimais) decimais=2;
	//alert ('@@'+valor);
	if (valor.length>0){			
		for (cont=0;cont<valor.length;cont++){
			if (valor.charAt(cont)!="."){
				if (valor.charAt(cont)==","){			
					resultado=resultado+".";
					ponto=1;
					qt_decimais=0;
				}else{
					if (ponto==1){
						//alert (qt_decimais+ ' '+decimais);
						if (  eval(qt_decimais) < eval(decimais)  ){
							resultado=resultado+valor.charAt(cont);	
							qt_decimais++;			
						}					
					}else{
						resultado=resultado+valor.charAt(cont);
					}					
				}
			}
		}
		//alert (valor+'@@');
		return resultado;
	}else{
		return 0;
	}
}


function checkHora( objFrm, horaInicio, horaTermino ){
	var hrIni, hrFim;
	var ctlHr1, ctlHr2;
	// obter o value do campo
	var hrInicio	= eval( "objFrm." + horaInicio );
	var hrTermino	= eval( "objFrm." + horaTermino );

	ctlHr1	= hrInicio.value.split(":");
	ctlHr2	= hrTermino.value.split(":");

	hrIni	= ctlHr1[1] + ctlHr1[0];
	hrFim	= ctlHr2[1] + ctlHr2[0];

/*
	dtIni	= ctlDt1[2] + ctlDt1[1] + ctlDt1[0];
	dtFim	= ctlDt2[2] + ctlDt2[1] + ctlDt2[0];
*/
	if ( parseInt(hrIni) > parseInt(hrFim) ){
		alert( "Hora Inválida!\nPeriodo menor que a hora atual." );
		hrTermino.focus();
		return false;
	}
	return true;
}
function checkPeriodoBanner( objFrm, dataInicio, dataTermino )
{
	var dtIni, dtFim;
	var ctlDt1, ctlDt2;
	// obter o value do campo
	var dtInicio	= eval( "objFrm." + dataInicio );
	var dtTermino	= eval( "objFrm." + dataTermino );

	ctlDt1	= dtInicio.value.split("/");
	ctlDt2	= dtTermino.value.split("/");


	dtIni	= ctlDt1[2] + ctlDt1[1] + ctlDt1[0];
	dtFim	= ctlDt2[2] + ctlDt2[1] + ctlDt2[0];

	if ( parseInt(dtIni) > parseInt(dtFim) ){
		alert( "Data Inválida!\nPeriodo menor que a data atual." );
		dtTermino.focus();
		return false;
	}
	return true;
}
//-->

function checkPeriodo( objFrm, dataInicio, dataTermino )
{
/*********************************************************************************
	VALIDARPERIODO( FORM, DATA1, DATA2 );
		Função genérica para validação de período entre datas.
		Tem como objetivo verificar se a data de término é menor que
		a data de inicio do período.

	Exemplo de como chamar a função:
		<input type="button" name="botao" value="! validar !" onClick="checkPeriodo( frm, 'fldDataIni', 'fldDataFim' );">

	Nota: Veja que os campos aonde estão as datas são passados como string comum.
***********************************************************************************/
	var dtIni, dtFim;
	var ctlDt1, ctlDt2;
	// obter o value do campo
	var dtInicio	= eval( "objFrm." + dataInicio );
	var dtTermino	= eval( "objFrm." + dataTermino );

	// retirar a barra de separação para transformar
	// em um numero inteiro
	// ex.:  27/01/1982 - 27011982
	ctlDt1	= dtInicio.value.split("/");
	ctlDt2	= dtTermino.value.split("/");

	// para validar o período deve-se iniciar do Ano para o Dia
	dtIni	= ctlDt1[2] + ctlDt1[1] + ctlDt1[0];
	dtFim	= ctlDt2[2] + ctlDt2[1] + ctlDt2[0];

	if ( parseInt(dtIni) > parseInt(dtFim) ){
		alert( "Período inválido!\nA data final é menor que a data de início do período." );
		dtTermino.focus();
		return false;
	}
	return true;
}
//-->


function checkPeriodo2( objFrm, dataInicio, dataTermino, flMsg, msg )
{
/*********************************************************************************
	VALIDARPERIODO( FORM, DATA1, DATA2 );
		Função genérica para validação de período entre datas com a passagem dos parâmetros mensagem e flag de exibição.
		Tem como objetivo verificar se a data de término é menor que
		a data de inicio do período.

	Exempl????ª?I??????????????†???????????????????????????????????????????????????????????????????…????????????????????????†????????????????????????????????????????????????????†??????????†????????????†?????????????????????†?????????????????????????????????????????†????????????†???????????????????????????????????????????†????????????????????????????????????????????????????????????†??????????????J? ??E`EH? ??E?E????????????????????????????????>?*??E?E??????????????????????????ço de como chamar a função:
		<input type="button" name="botao" value="! validar !" onClick="checkPeriodo( frm, 'fldDataIni', 'fldDataFim' );">

	Nota: Veja que os campos aonde estão as datas são passados como string comum.
***********************************************************************************/
	var dtIni, dtFim;
	var ctlDt1, ctlDt2;
	// obter o value do campo
	var dtInicio	= eval( "objFrm." + dataInicio );
	var dtTermino	= eval( "objFrm." + dataTermino );
 
	
	// retirar a barra de separação para transformar
	// em um numero inteiro
	// ex.:  27/01/1982 - 27011982
	ctlDt1	= dtInicio.value.split("/");
	ctlDt2	= dtTermino.value.split("/");

	// para validar o período deve-se iniciar do Ano para o Dia
	dtIni	= ctlDt1[2] + ctlDt1[1] + ctlDt1[0];
	dtFim	= ctlDt2[2] + ctlDt2[1] + ctlDt2[0];

	if ( parseInt(dtIni) > parseInt(dtFim) ){
		if( flMsg  )
			alert(msg);
			dtTermino.focus();			
		return false;	
	}
	else
		return true;
}
//-->

function tirarZerosEsquerda(STR){

  var sAux='';
  var i=0;
  STR=new String(STR);
  
  while (i < STR.length ){
    if ((STR.charAt(i)!='.') && (STR.charAt(i)!=',')){
	  sAux += STR.charAt(i);
    }
	i++
  }
  
  
  STR = new String(sAux);
  sAux = '';
  i=0;
  
  while (i < STR.length ){
    if (STR.charAt(i) != '0'){
      sAux = STR.substring(i,STR.length)
	  i = STR.length;
	}
    i++;
  }
  
  return  sAux;
}

function formatarOnKeyUp(OBJ){
/*********************************************************************************
	formatarOnKeyUp( objeto );
	Exemplo de como chamar a função:
		<input type="text" name="text" value="! validar !" onkeyup="formatarOnKeyUp(this);">
***********************************************************************************/
  var decimal,inteiro;
  var i,count;
  STR = new String(OBJ.value); 
  STR = tirarZerosEsquerda(STR);
  inteiro='';
		if (STR.length == 1){
			  inteiro  = '0';
			  decimal = '0' + STR;
			}
			else { 
			  if (STR.length == 2){
				  inteiro  = '0';
				  decimal = STR;
				}
				else{
				  decimal = STR.substring(STR.length-2,STR.length);
				  i=3;
				  count=0;
				  while (i<=STR.length){
			 		if (count==3) {
					  inteiro = '.' + inteiro;
					  count = 0;
					}
				    inteiro = STR.charAt(STR.length-i) + inteiro;
					count++;
					i++;
				  }
				}
			}
    
  
		if (inteiro == '') {
		  inteiro = '0';
		}
  
		if (decimal == '') {
		  decimal = '00';
		}
		OBJ.value = inteiro+','+decimal;
  
}




function emailCheck (emailStr) {
/*
 funcao para verificar email emailCheck(frm.email.value)
*/

var checkTLD=1;

var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

var emailPat=/^(.+)@(.+)$/;

var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

var validChars="\[^\\s" + specialChars + "\]";

var quotedUser="(\"[^\"]*\")";

var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

var atom=validChars + '+';

var word="(" + atom + "|" + quotedUser + ")";

var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

var matchArray=emailStr.match(emailPat);

if (matchArray==null) {

alert("O Email digitado está incorreto");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).

for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
   }
}

// See if "user" is valid 

if (user.match(userPat)==null) {

// user is not valid

alert("O Email digitado está incorreto");
return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address

for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
   }
}
return true;
}

// Domain is symbolic name.  Check if it's valid.
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("O Email digitado está incorreto.");
return false;
   }
}

if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("O Email digitado está incorreto");
return false;
}

if (len<2) {
alert("O Email digitado está incorreto");
return false;
}

// If we've gotten this far, everything's valid!
return true;
}

// rotina para verificar cnpj
//valida_cnpj(frm.cnpj.value)
function validaCnpj(s)
{
 var i;
// s = limpa_string(s);
 var c = s.substr(0,12);
 var dv = s.substr(12,2);
 var d1 = 0;
 
 	for (i = 0; i < 12; i++)
 	{
  		d1 += c.charAt(11-i)*(2+(i % 8));
 	}
	
    if (d1 == 0){ 
		alert("CNPJ Invalido");  
		return false;
	}
	
d1 = 11 - (d1 % 11);

	 if (d1 > 9) d1 = 0;
		 if (dv.charAt(0) != d1)
 		{
 			alert("CNPJ Invalido") ;  
  			return false;
 		}

 d1 *= 2;
	 for (i = 0; i < 12; i++)
 	{
 		 d1 += c.charAt(11-i)*(2+((i+1) % 8));
 	}
	
 d1 = 11 - (d1 % 11);
 
 if (d1 > 9) d1 = 0;
 		if (dv.charAt(1) != d1)
 		{
 			alert("CNPJ Invalido") ;  	
return false;
 		}
		
return true;
}// fim valida_cnpj

// rotina para a verificacao de cpf
// validacpf(frm.cpf.value)
function validacpf(s){ 
  
var i;   
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 Invalido")   
return false;   
}   
d1 = 11 - (d1 % 11);   
if (d1 > 9) d1 = 0;   
if (dv.charAt(0) != d1)   
{   
alert("CPF Invalido")   
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 Invalido") 
return false; 
} 
return true; 
} 

// fim da rotina de verificacao de cpf



// data final , data inicial formato dd/mm/yyyy
function dias_diferenca(data1,data2){

	split_data1=data1.split("/");
	split_data2=data2.split("/");
	
	data_verificar1=new Date(split_data1[2],split_data1[1]-1,split_data1[0]);
	data_verificar2=new Date(split_data2[2],split_data2[1]-1,split_data2[0]);	
	today=new Date()
		
	var one_day=1000*60*60*24;
	
	return Math.ceil((data_verificar1.getTime()-data_verificar2.getTime())/(one_day));
}

function mes_diferenca(data1,data2){

	split_data1=data1.split("/");
	split_data2=data2.split("/");
	
	data_verificar1=new Date(split_data1[2],split_data1[1]-1,split_data1[0]);
	data_verificar2=new Date(split_data2[2],split_data2[1]-1,split_data2[0]);	
	today=new Date()
		
	var one_day=(1000*60*60*24)*30;
	
	return Math.abs(Math.ceil((data_verificar1.getTime()-data_verificar2.getTime())/(one_day)));
}

function data_dia(data1,dias){
	var dia, mes;
	split_data1=data1.split("/");
	data_verificar1=new Date(split_data1[2],split_data1[1]-1,split_data1[0]-dias);
	
	dia=data_verificar1.getDate();
	if(dia ==1) dia="0"+dia;
	if(dia ==2) dia="0"+dia;
	if(dia ==3) dia="0"+dia;
	if(dia ==4) dia="0"+dia;			
	if(dia ==5) dia="0"+dia;
	if(dia ==6) dia="0"+dia;
	if(dia ==7) dia="0"+dia;
	if(dia ==8) dia="0"+dia;				
	if(dia ==9) dia="0"+dia;	
	mes=eval(data_verificar1.getMonth())+1;
	if(mes ==1) mes="0"+mes;
	if(mes ==2) mes="0"+mes;
	if(mes ==3) mes="0"+mes;
	if(mes ==4) mes="0"+mes;
	if(mes ==5) mes="0"+mes;
	if(mes ==6) mes="0"+mes;
	if(mes ==7) mes="0"+mes;
	if(mes ==8) mes="0"+mes;
	if(mes ==9) mes="0"+mes;		
		
		
	return (dia+"/"+mes+"/"+data_verificar1.getYear());
}

function keyChar( tecla ) {
 /*******************************************************************************
  	keyChar ( tecla )
  	Funçao para permitir a digitação SOMENTE letras sem acentos.
  	TECLAS PERMITIDAS
	  -> 65 a 90  => "a" a "z"
	  -> 97 a 122 => "A" a "Z"
	  EXEMPLO:
	  <INPUT type="text" name="fldValor" onKeyPress="return keyChar( this.event.keyCode );">
  ********************************************************************************/
  if( (tecla >= 65 && tecla <= 90) || (tecla >= 97 && tecla <= 122) )	
  {
   //alert("Tecla não permitida para este campo.\nFavor utilizar apenas letras sem acentos.");
   return true;
  }
  else{
  	return false;
  }	
}