
var NUM_DIGITOS_CPF  = 11;
var NUM_DIGITOS_CNPJ = 14;
var NUM_DGT_CNPJ_BASE = 8;
var DATE_PATTERN = 'dd/MM/yyyy';
var DATE_HOUR_PATTERN = 'dd/MM/yyyy hh:mm';
var SEPARADOR_DECIMAL = ',';
var SEPARADOR_MILHAR = '.';

/*
	Metodo que zera os valores selcionados do ninja box.
	Para ser usado antes do submit, para evitar o erro "não é uma opção válida."
*/
function zeraNinjaBox(selectId, formId) {
	
	var select = document.getElementById(formId+':'+selectId+'_SELECTED');

	document.getElementById(formId+':'+selectId+'_HIDDEN').value = '';

    for (i = select.length - 1; i>=0; i--) {

		select.options[i] = null; 
	}
}

function soNumeroPontoVirgula(campo) {
			
			  var caracteresIvalidos = "1234567890.,";
			  for (i = 0; i < campo.value.length; i++) {
			    if (caracteresIvalidos.indexOf(campo.value.charAt(i)) == -1) {
			      temp1 = campo.value.substr(0, i);
			      temp2 = campo.value.substr(i + 1, campo.value.length);
			      campo.value = temp1 + temp2;
			      i = 0;
			    }
			  }
			}
			

function soNumeroDuasCasasDecimais(campo){
	var v = campo.value;
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d{2})/,"$1.$2") //Esse é tão fácil que não merece explicações
    campo.value = v;
}

function soNumeros(campo){
	var v = campo.value;
    v = v.replace(/\D/g,"");//\D/g ou \[^0-9]
    campo.value = v;
}

function soNumero(campo) {
	//soNumeros(campo);
	var caracteresIvalidos = "1234567890";
	for (i = 0; i < campo.value.length; i++) {
	  if (caracteresIvalidos.indexOf(campo.value.charAt(i)) == -1) {
	    temp1 = campo.value.substr(0, i);
	    temp2 = campo.value.substr(i + 1, campo.value.length);
	    campo.value = temp1 + temp2;
	    i = 0;
	  }
	}
}

 
 function mascaraData(component,componentFocus){
 	var v = component.value;
    v=v.replace(/\D/g,"") 					//Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1/$2")     //Coloca barra entre o segundo e o terceiro dígitos
    v=v.replace(/(\d{2})(\d)/,"$1/$2")      //Coloca hífen entre o quarto e o quinto dígitos
	
    component.value = v;
    if(component.value.length > 9){
    	componentFocus.focus();
    }
 }


function mascara (formato, objeto){
campo = eval (objeto);

// cep
if (formato=='cep'){
separador = '-';
conjunto1 = 5;
if (campo.value.length == conjunto1){
campo.value = campo.value + separador;}
}

// cpf
if (formato=='cpf'){
separador1 = '.';
separador2 = '-';
conjunto1 = 3;
conjunto2 = 7;
conjunto3 = 11;
if (campo.value.length == conjunto1)
  {
  campo.value = campo.value + separador1;
  }
if (campo.value.length == conjunto2)
  {
  campo.value = campo.value + separador1;
  }
if (campo.value.length == conjunto3)
  {
  campo.value = campo.value + separador2;
  }
}

// nascimento
if (formato=='nascimento'){
separador = '/';
conjunto1 = 2;
conjunto2 = 5;
if (campo.value.length == conjunto1)
  {
  campo.value = campo.value + separador;
  }
if (campo.value.length == conjunto2)
  {
  campo.value = campo.value + separador;
  }
}

// telefone
if (formato=='telefone'){
separador1 = '(';
separador2 = ')';
separador3 = '-';
conjunto1 = 0;
conjunto2 = 3;
conjunto3 = 8;
if (campo.value.length == conjunto1){
campo.value = campo.value + separador1;
}
if (campo.value.length == conjunto2){
campo.value = campo.value + separador2;
}
if (campo.value.length == conjunto3){
campo.value = campo.value + separador3;
}
}


}

	function soNumeroHifen(campo) {
			
			  var caracteresIvalidos = "1234567890-";
			  for (i = 0; i < campo.value.length; i++) {
			    if (caracteresIvalidos.indexOf(campo.value.charAt(i)) == -1) {
			      temp1 = campo.value.substr(0, i);
			      temp2 = campo.value.substr(i + 1, campo.value.length);
			      campo.value = temp1 + temp2;
			      i = 0;
			    }
			  }
			}

function soNumeroPontoBarra(campo) {
			
			  var caracteresIvalidos = "1234567890-.";
			  for (i = 0; i < campo.value.length; i++) {
			    if (caracteresIvalidos.indexOf(campo.value.charAt(i)) == -1) {
			      temp1 = campo.value.substr(0, i);
			      temp2 = campo.value.substr(i + 1, campo.value.length);
			      campo.value = temp1 + temp2;
			      i = 0;
			    }
			  }
			}


function mascara_telefone(nm_campo){
		
	tam_campo = (nm_campo.value).length;
	if(tam_campo == 4){
		nm_campo.value = nm_campo.value + "-";
	}
} 


function mascara_cep(nm_campo){
				
	tam_campo = (nm_campo.value).length;
	if(tam_campo == 2){
		nm_campo.value = nm_campo.value + ".";
	}
	
	if(tam_campo == 6){
		nm_campo.value = nm_campo.value + "-";
	}
} 


	
// FUNCTION MELHOR PARA MASCARA DE TELEFONE
function mascaraTelefone(campo){
	var v = campo.value;
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    campo.value = v;
}

	
	
	function contadorTexto(field, countfield, maxlimit) {
		if (field.value.length > maxlimit) {
			// if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
		} else  {
			// otherwise, update 'characters left' counter
			countfield.value = maxlimit - field.value.length;
		}
	}
	
	function confirmaExclusao(){
	return confirm("Deseja realmente excluir?");
	
}
	

 function maskFormatDate(component,componentFocus){
			var date = component.value;
			var size = date.length;
			if(  size > 2 ){
				var element = date.substring(2,3);
				if( element != "/" ){
					date = date.substring(0,2) + "/" + date.substring(2);  
					component.value = date;
					return;	}}
			if(  size > 5 ){
				var element = date.substring(5,6);
				if( element != "/" ){
					date = date.substring(0,5) + "/" + date.substring(5);  
					component.value = date;
					return;	}}
		    
		    if(size > 9){
		    	if (doDate(component)){
		    		componentFocus.focus();
		    		
		    	}	
		    
		    }
				
		}
	
//valida data no formato dd/mm/aaaa (express?o regular)
function doDate(pStr)
{
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
var reDate = reDate4;

	eval("reDate = reDate5" );
	if (reDate.test(pStr.value)) {
		return true;
	} else if (pStr.value != null && pStr.value != "") {
		alert(pStr.value +  " Data incorreta.");
		pStr.value = '';
		pStr.focus();
		return false;
		//pStr.focus();

	}
}

function soNumeroBarra(campo) {
			
			  var caracteresIvalidos = "1234567890/";
			  for (i = 0; i < campo.value.length; i++) {
			    if (caracteresIvalidos.indexOf(campo.value.charAt(i)) == -1) {
			      temp1 = campo.value.substr(0, i);
			      temp2 = campo.value.substr(i + 1, campo.value.length);
			      campo.value = temp1 + temp2;
			      i = 0;
			    }
			  }
			}

function soNumeroPonto(campo) {
			
			  var caracteresIvalidos = "1234567890.";
			  for (i = 0; i < campo.value.length; i++) {
			    if (caracteresIvalidos.indexOf(campo.value.charAt(i)) == -1) {
			      temp1 = campo.value.substr(0, i);
			      temp2 = campo.value.substr(i + 1, campo.value.length);
			      campo.value = temp1 + temp2;
			      i = 0;
			    }
			  }
			}
				

	function refreshOpener() {
	
		var update = document.getElementById('update');

		if (update.value == 'true') {
			
			window.opener.fecharPopup();
			window.close();
		}
	}
				
				
function formataValorMonetario(campooriginal,decimais)
{
 
 if(campooriginal.value.length<8){
 
		  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
		   }
		   // Trata valor monetário sem decimais
		   else
		   {
		      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
		   }
    
   		campooriginal.value = resultado;
   }
}

function soNumeroTresCasasDecimais(nm_campo){

	soNumeroPonto(nm_campo);

	var cont = 0;
	var cont2 = 0
	var caracteresIvalidos = ".";
	
	for (i = 0; i < nm_campo.value.length; i++) {
		
		if (caracteresIvalidos.indexOf(nm_campo.value.charAt(i)) != -1) {
			cont++;
		}
			    
		if(cont>0){
			cont2++;
		}
	}
			
	if(cont2>4){
		nm_campo.value = nm_campo.value.substr(0, nm_campo.value.length -1);
		return true;   
	}
			    
	if(cont>1){
		nm_campo.value = nm_campo.value.substr(0, nm_campo.value.length -1);
		return true;
	}
				
	tam_campo = (nm_campo.value).length;
	
	if(tam_campo > 3 && cont<1){
		sub1 = nm_campo.value.substr(0, 3);
		sub2 = nm_campo.value.substr(4, nm_campo.value.length);
		nm_campo.value = sub1 + "." + sub2;
	}
	
} 

function BlockKeybord()
{
if((event.keyCode < 48) || (event.keyCode > 57))
{
event.returnValue = false;
}
}

function troca(str,strsai,strentra)
{
while(str.indexOf(strsai)>-1)
{
str = str.replace(strsai,strentra);
}
return str;
}

function FormataMoeda(campo,tammax,teclapres,caracter)
{
if(teclapres == null || teclapres == "undefined")
{
var tecla = -1;
}
else
{
var tecla = teclapres.keyCode;
}

if(caracter == null || caracter == "undefined")
{
caracter = ".";
}

vr = campo.value;
if(caracter != "")
{
vr = troca(vr,caracter,"");
}
vr = troca(vr,"/","");
vr = troca(vr,",","");
vr = troca(vr,".","");

tam = vr.length;
if(tecla > 0)
{
if(tam < tammax && tecla != 8)
{
tam = vr.length + 1;
}

if(tecla == 8)
{
tam = tam - 1;
}
}
if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)
{
if(tam <= 2)
{ 
campo.value = vr;
}
if((tam > 2) && (tam <= 5))
{
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 6) && (tam <= 8))
{
campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 9) && (tam <= 11))
{
campo.value = vr.substr(0, tam - 8) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 12) && (tam <= 14))
{
campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 15) && (tam <= 17))
{
campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
}

function maskKeyPress(objEvent) 
{
var iKeyCode; 
iKeyCode = objEvent.keyCode; 
if(iKeyCode>=48 && iKeyCode<=57) return true;
return false;
}

	function habilitaTaxaComBaseTipoParcela(valor) {
		if ( valor == 1 ) {
			document.getElementById('taxa').value = "0.0";
			document.getElementById('taxa').disabled = true;
		} else {
			document.getElementById('taxa').disabled = false;
		}
	}

/**
 * Adiciona método lpad() à classe String.
 * Preenche a String à esquerda com o caractere fornecido,
 * até que ela atinja o tamanho especificado.
 */
String.prototype.lpad = function(pSize, pCharPad)
{
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = ch + str;
	return (str);
} //String.lpad


/**
 * Adiciona método trim() à classe String.
 * Elimina brancos no início e fim da String.
 */
String.prototype.trim = function()
{
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
} //String.trim

/**
 * Elimina caracteres de formatação e zeros à esquerda da string
 * de número fornecida.
 * @param String pNum
 *      String de número fornecida para ser desformatada.
 * @return String de número desformatada.
 */
function unformatNumber(pNum)
{
	return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
} //unformatNumber

/**
 * Formata a string fornecida como CNPJ ou CPF, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCpfCnpj
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String de CPF ou CNPJ devidamente formatada.
 */
function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	if (pUseSepar==null) pUseSepar = true;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var numero = unformatNumber(pCpfCnpj);

	numero = numero.lpad(maxDigitos, '0');
	if (!pUseSepar) return numero;

	if (pIsCnpj)
	{
		reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
		numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	}
	else
	{
		reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
		numero = numero.replace(reCpf, "$1.$2.$3-$4");
	}
	return numero;
} //formatCpfCnpj

/**
 * Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
 * CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
 * informa se o número-efetivo fornecido é CNPJ (default = false).
 * @param String pEfetivo
 *      String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é de um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String com os dois dígitos verificadores.
 */
function dvCpfCnpj(pEfetivo, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
	calculado = calculado.substring(2, maxDigitos);
	var result = "";

	for(j = 1; j <= 2; j++)
	{
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)
		{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}

	return result;
} //dvCpfCnpj

/**
 * Testa se a String pCnpj fornecida é um CNPJ válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CNPJ válido.
 */
function isCnpj(pCnpj)
{
	var numero = formatCpfCnpj(pCnpj, false, true);
	var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
	var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;

	// Valida dígitos verificadores
	if (numero != base + ordem + digitos) return false;

	/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
	 * 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
	 * 66.666.666, 77.777.777, 88.888.888, 99.999.999.
	 */
	algUnico = numero.charAt(0) != '0';
	for (i=1; i<NUM_DGT_CNPJ_BASE; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	if (algUnico) return false;

	/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
	 * Não será considerado válido CNPJ com número de ORDEM maior do que 0300
	 * e com as três primeiras posições do número BÁSICO com 000 (zeros).
	 * Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
	 */
	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
} //isCnpj

/**
 * Testa se a String pCpf fornecida é um CPF válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpf
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF válido.
 */
function isCpf(pCpf)
{
	var numero = formatCpfCnpj(pCpf, false, false);
	var base = numero.substring(0, numero.length - 2);
	var digitos = dvCpfCnpj(base, false);
	var algUnico, i;

	// Valida dígitos verificadores
	if (numero != base + digitos) return false;

	/* Não serão considerados válidos os seguintes CPF:
	 * 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
	 * 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
	 */
	algUnico = true;
	for (i=1; i<NUM_DIGITOS_CPF; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	return (!algUnico);
} //isCpf

/**
 * Testa se a String pCpfCnpj fornecida é um CPF ou CNPJ válido.
 * Se a String tiver uma quantidade de dígitos igual ou inferior
 * a 11, valida como CPF. Se for maior que 11, valida como CNPJ.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpfCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF ou CNPJ válido.
 */
function isCpfCnpj(type, pCpfCnpj)
{
	var numero = pCpfCnpj.replace(/\D/g, "");
	if (type == 2 && numero.length == NUM_DIGITOS_CNPJ)
		return isCnpj(pCpfCnpj)
	else if (type == 1 && numero.length == NUM_DIGITOS_CPF)
		return isCpf(pCpfCnpj);
	else
		return false;
} //isCpfCnpj

function validarCpfCnpj(type, field)
{
	if ( type == 2 )
	{
		if ( ! isCpfCnpj( type, field.value ) ) 
		{
			alert("CNPJ inválido!");
			field.value = "";
		}
	} 
	else if ( type == 1 )
	{
		if ( ! isCpfCnpj( type, field.value ) ) 
		{
			alert("CPF inválido!");
			field.value = "";
		}
	}
}

function validarCnpj(field)
{
	if ( field.value == "" )
	{
		alert("CNPJ inválido!");
		field.value = "";
	} 
	else if ( ! isCnpj( field.value ) )
	{
		alert("CNPJ inválido!");
		field.value = "";
	}
}

function abrirPopup(url, largura, altura) {

	newwindow = window.open(url ,'Popup' , 'width='+largura+',height='+altura+',menubar=no,resizable=yes,scrollbars='+scroll+',status=yes,toolbar=no,location=no');
	
	if (window.focus) {
	   newwindow.focus()
	}
	
    return false;
	

}


function identificaCnpjCpf(campo) {

	var tipoPessoa = document.getElementById('tipoPessoa');
	
	if (isCnpj(campo.value)) {
	
		tipoPessoa.value = 2;
		return true;
		
	} else if (isCpf(campo.value)) {
	
		tipoPessoa.value = 1;
		return true;
	}
	
	alert("CPF/CNPJ incorreto!");
	return false;
}


function validarCpfCnpjComRetorno(type, field)
{
	if ( type == 2 )
	{
		if ( ! isCpfCnpj( type, field.value ) ) 
		{
			alert("CNPJ inválido!");
			field.value = "";
			return false;
		}
		
		return true;
	} 
	else if ( type == 1 )
	{
		if ( ! isCpfCnpj( type, field.value ) ) 
		{
			alert("CPF inválido!");
			field.value = "";
			return false;
		}
		
		return true;
	}
}

function validaemail(email) {
	  var objRegExp  = /^[A-Za-z]([\w\.]*)@([A-Za-z0-9\.]*)\.(([A-Za-z]{3}\.[A-Za-z]{2}$)|([A-Za-z]{3}$)|([a-z]{2}$))/i;
	  return objRegExp.test(email);
}


function excetoCharEspec(campo) {
			
  var caracteresInvalidos = "\"!'#$%¨&*()´`{}[]^~<>:;?+=/|\\";
  for (i = 0; i < campo.value.length; i++) {
    if (caracteresInvalidos.indexOf(campo.value.charAt(i)) > -1) {
      temp1 = campo.value.substr(0, i);
      temp2 = campo.value.substr(i + 1, campo.value.length);
      campo.value = temp1 + temp2;
      i = 0;
    }
  }
}

function excetoCharEspecBusca(campo) {
	
	  var caracteresInvalidos = "\"!'#$%¨&*()´`{}[]^~<>:;?+=/|\\@-_.,";
	  for (i = 0; i < campo.value.length; i++) {
	    if (caracteresInvalidos.indexOf(campo.value.charAt(i)) > -1) {
	      temp1 = campo.value.substr(0, i);
	      temp2 = campo.value.substr(i + 1, campo.value.length);
	      campo.value = temp1 + temp2;
	      i = 0;
	    }
	  }
	}

function excetoCharEspecMensagem(campo) {
			
  var caracteresInvalidos = "\"'#%¨&*()´`{}[]^~<>+=/|\\";
  for (i = 0; i < campo.value.length; i++) {
    if (caracteresInvalidos.indexOf(campo.value.charAt(i)) > -1) {
      temp1 = campo.value.substr(0, i);
      temp2 = campo.value.substr(i + 1, campo.value.length);
      campo.value = temp1 + temp2;
      i = 0;
    }
  }
}



