/*!
 * Funções básicas (GERAL) da interface do cliente
 * http://hospedaria.com.br/
 *
 * Copyright 2011,  Tiago Rafael L. Neves
 * Este é um produto comercial, Proibida a cópia, reprodução, ou alteração destas funções
 *
 * Data: 2011-06-17
 */

/*Função para mudar o domínio selecocinado no painel do cliente ao alterar o selectbox*/
function muda_dominio(){
	if(document.getElementById('txt_dominio').value == "") {
		return false;
	} else {
		document.getElementById('frm_dominios').submit();
	}	
}

 
 /*Função que exibe e esconde o elemento informado (display none, display block) */
 function mostra_esconde(elemento){
	if(document.getElementById(elemento).style.display=='block'){
		document.getElementById(elemento).style.display	='none';
	} else {
		document.getElementById(elemento).style.display	='block';
	}
 }
 
  //************************  Função para Mudar a classe se um elemento
 function muda_classe(elemento, novac){
	 document.getElementById(elemento).className		= novac;
 }
 
 // ************************  Função para o campo de pesquisa (colocar a palavra pesquisa)
 function foco_pesquisa(){
	 if( document.getElementById('campo_pesquisa').value == 'pesquisa' ){
		 document.getElementById('campo_pesquisa').value = '';
	 } else if( document.getElementById('campo_pesquisa').value == '' ){
		 document.getElementById('campo_pesquisa').value = 'pesquisa';
	 }
 }
 
 // ************************  Função para formatacao generica de campos
function formataCampo(campo, Mascara, evento) { 
    var boleanoMascara; 
    
    var Digitato = evento.keyCode;
	var campo = document.getElementById(campo);
    exp = /\-|\:|\.|\/|\(|\)| /g
    campoSoNumeros = campo.value.toString().replace( exp, "" ); 
   
    var posicaoCampo = 0;     
    var NovoValorCampo="";
    var TamanhoMascara = campoSoNumeros.length;; 
    
    if (Digitato != 8) { // backspace 
        for(i=0; i<= TamanhoMascara; i++) { 
            boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
                                || (Mascara.charAt(i) == "/") || (Mascara.charAt(i) == ":")) 
            boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") 
                                || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " ")) 
            if (boleanoMascara) { 
                NovoValorCampo += Mascara.charAt(i); 
                  TamanhoMascara++;
            }else { 
                NovoValorCampo += campoSoNumeros.charAt(posicaoCampo); 
                posicaoCampo++; 
              }            
          }     
        campo.value = NovoValorCampo;
          return true; 
    }else { 
        return true; 
    }
}


// *************** Valida formularios
function valida_form(conf_senha, conf_email){
	var campos  = document.getElementById('campos_valida').value.split(';');
	var valores = document.getElementById('valores_valida').value.split(';');
	var nomes   = document.getElementById('nomes_valida').value.split(';');
	for (i=0;i<campos.length;i++){
		if(valores[i] != 'checked'){
			if(document.getElementById(campos[i]).value == valores[i]) {
				//alert("O campo "+nomes[i]+" é obrigatório.\nPreencha o campo para prosseguir.");
				jAlert("<b>Campo obrigatório.</b><br>O campo "+nomes[i]+" é de preenchimento obrigatório.<br>Preencha este campo para prosseguir.", 'Atenção'); 
				document.getElementById(campos[i]).focus();
				return false;
			}
		} else {
			if(!document.getElementById(campos[i]).checked) {
				//alert("O campo "+nomes[i]+" é obrigatório.\nSelecione o campo para prosseguir.");
				jAlert("<b>Campo obrigatório.</b><br>O campo "+nomes[i]+" é de seleção obrigatória.<br>Marque este campo para prosseguir.", 'Atenção'); 
				document.getElementById(campos[i]).focus();
				return false;
			}
		}
	}
	if(conf_senha==1 && document.getElementById('txt_senha').value != document.getElementById('txt_conf_senha').value) {
		//alert("O campo "+nomes[i]+" é obrigatório.\nPreencha o campo para prosseguir.");
		jAlert( "<b>As senhas não são iguais.</b><br>O campo senha e sua confirmação não são iguais<br>Preencha novamente estes campos para prosseguir.", 'Atenção'); 
		document.getElementById('txt_senha').value='';
		document.getElementById('txt_conf_senha').value='';
		document.getElementById('txt_senha').focus();
		return false;
	}
	if(conf_email==1 && document.getElementById('txt_email').value != document.getElementById('txt_conf_email').value) {
		jAlert( "<b>Os e-mails não são iguais.</b><br>O campo e-mail e sua confirmação não são iguais<br>Confira estes campos para prosseguir.", 'Atenção'); 
		document.getElementById('txt_email').focus();
		return false;
	}
	if(document.getElementById('btn_envia')){
		document.getElementById('btn_envia').disabled = true;
	}
}


// ***************************** Valida digitação de DATAS (só aceita 0-9, (/) .... 
																			// ***************************** Valida digitação de datas em geral (só aceita 0-9 e /.... 
function valida_data(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9/]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9/]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: dd/mm/aaaa', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '00/00/0000', event);		
	}
}

// ***************************** Valida digitação de horas em geral (só aceita 0-9 e :.... 
function valida_hora(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9:]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9:]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: hh:mm', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '00:00', event);		
	}
}

// ***************************** Faz a confirmação se a data digitada está realmente no padrao válido dd/mm/aaaa
function confirma_data(campo, classerro){
    var dia = document.getElementById(campo).value;
	if(dia.length<10){
        //muda_classe(campo, classerro); // Muda campo para classe de erro
		jAlert( '<b>Data inválida.</b><br>Esta data deve estar no formato dd/mm/aaaa.', 'Atenção'); // chama função para mostrar balão no campo		
		document.getElementById(campo).value='';
	} 
}

// ***************************** Faz a confirmação se a hora digitada está realmente no padrao válido hh:mm
function confirma_hora(campo, classerro){
    var dia = document.getElementById(campo).value;
	if(dia.length<5){
        //muda_classe(campo, classerro); // Muda campo para classe de erro
		jAlert( '<b>Hora inválida.</b><br>Esta hora deve estar no formato hh:mm.', 'Atenção'); // chama função para mostrar balão no campo		
		document.getElementById(campo).value='';
	} 
}


// ***************************** Valida digitação de TELEFONE (só aceita 0-9, (, - e ) .... 
function valida_telefone(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9 ()-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9 ()-]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
		 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: (00) 0000-0000', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '(00) 0000-0000', event);		
	}
}

// ***************************** Valida digitação de usuário de e-mail (antes do arroba) - campo=ID do campo (this.id) - event = tecla pressionada (event) - classerro = código da class para aplicar no caso de erro - classnormal = cód. da class qdo estiver normal o campo.... 
function valida_email(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[A-Za-z0-9._-]*$"); // Caracteres permitidos
	var pesq2 = new RegExp("[@]|[@._-]{2}"); // Evitar dupla pontuação seguida pq também não pode
	var pesq3 = new RegExp("[^A-Za-z0-9._-]|[@._-]{2}", "g"); // Caracteres PROIBIDOS

	if (!document.getElementById(campo).value.match(pesq1) || document.getElementById(campo).value.match(pesq2)) { // Verifica se encontrou algo proibido
		 jAlert('<b>Caracter não permitido.</b><br>Utilize apenas letras (sem acentos), números, hífem (-), ponto (.) ou underline (_)<br>Dupla Pontuação seguida (ex: ..) também não é permitida', 'Atenção', function () { document.getElementById(campo).focus(); }); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
	}
}

// ***************************** Faz a confirmação se o CPF digitado é realmente válido
function confirma_cpf(campo, classerro){
    var cpf = document.getElementById(campo).value;
    exp = /\.|\-/g
    cpf = cpf.toString().replace( exp, "" ); 
    var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
    var soma1=0, soma2=0;
    var vlr =11;
    
    for(i=0;i<9;i++){
        soma1+=eval(cpf.charAt(i)*(vlr-1));
        soma2+=eval(cpf.charAt(i)*vlr);
        vlr--;
    }    
    soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
    soma2=(((soma2+(2*soma1))*10)%11);
    
    var digitoGerado=(soma1*10)+soma2;
    if(digitoGerado!=digitoDigitado || cpf=="11111111111" || cpf=="22222222222" || cpf=="33333333333" || cpf=="44444444444" || cpf=="55555555555" || cpf=="66666666666" || cpf=="77777777777" || cpf=="88888888888" || cpf=="99999999999" || cpf=="00000000000")  {  
        //muda_classe(campo, classerro); // Muda campo para classe de erro
		jAlert( '<b>CPF Inválido.</b><br>O número de CPF fornecido foi considerado inválido pelo nosso sistema.', 'Atenção'); // chama função para mostrar balão no campo		
		document.getElementById(campo).value='';
		//document.getElementById(campo).focus();
	}
}


// ***************************** Valida digitação de CPF (só aceita 0-9, . e - 
function valida_cpf(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9.-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9.-]", "g"); // Caracteres proibidos
	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
		 //jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: 000.000.000-00', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '000.000.000-00', event);		
	}
}

// ***************************** Faz a confirmação se o CNPJ digitado é realmente válido
function confirma_cnpj(campo, classerro){
    var CNPJ = document.getElementById(campo).value;
	erro = new String;
	if (CNPJ.length < 18) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
	if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
		if (erro.length == 0) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
	}
	//substituir os caracteres que nao sao numeros
	if(document.layers && parseInt(navigator.appVersion) == 4){
		x = CNPJ.substring(0,2);
		x += CNPJ.substring(3,6);
		x += CNPJ.substring(7,10);
		x += CNPJ.substring(11,15);
		x += CNPJ.substring(16,18);
		CNPJ = x; 
	} else {
		CNPJ = CNPJ.replace(".","");
		CNPJ = CNPJ.replace(".","");
		CNPJ = CNPJ.replace("-","");
		CNPJ = CNPJ.replace("/","");
	}
	var nonNumbers = /\D/;
	if (nonNumbers.test(CNPJ)) erro += "A verificacao de CNPJ suporta apenas numeros! \n\n"; 
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++){
		a[i] = CNPJ.charAt(i);
		b += a[i] * c[i+1];
	}
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
		b += (a[y] * c[y]); 
	}
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
		erro +="Digito verificador com problema!";
	}
	if (erro.length > 0){
        //muda_classe(campo, classerro); // Muda campo para classe de erro
		jAlert( '<b>CNPJ Inválido.</b><br>O número de CNPJ fornecido foi considerado inválido pelo nosso sistema.', 'Atenção'); // chama função para mostrar balão no campo		
		document.getElementById(campo).value='';
		//document.getElementById(campo).focus();
	}
}


// ***************************** Valida digitação de CNPJ (só aceita 0-9, . e - .... 
function valida_cnpj(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9/.-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9/.-]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
		 //jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: 00.000.000/0000-00', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '00.000.000/0000-00', event);		
	}
}

// ***************************** Valida digitação de RG (só aceita 0-9, . , - e x.... 
function valida_rg(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9xX.-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9xX.-]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: 99.999.999-X', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '00.000.000-x', event);		
	}
}

// ***************************** Valida digitação de RG (só aceita 0-9, . , - e x.... 
function valida_rg_login(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9a-zA-Z]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9a-zA-Z]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Não utilize pontos ou traços.</b><br>Utilize apenas números e dígitos neste campo.', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		//formataCampo(campo, '00.000.000-x', event);		
	}
}

// ***************************** Valida digitação de CEP (só aceita 0-9 e -)
function valida_cep(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9-]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. <br>Formato: 99999-999', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
		formataCampo(campo, '00000-000', event);		
	}
}

// ***************************** Valida digitação de e-mail - campo=ID do campo (this.id) - event = tecla pressionada (event) - classerro = código da class para aplicar no caso de erro - classnormal = cód. da class qdo estiver normal o campo.... 
function valida_end_mail(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[A-Za-z0-9@._-]*$"); // Caracteres permitidos
	var pesq2 = new RegExp("[@._-]{2}"); // Evitar dupla pontuação seguida pq também não pode
	var pesq3 = new RegExp("[^A-Za-z0-9@._-]|[@._-]{2}", "g"); // Caracteres PROIBIDOS

	if (!document.getElementById(campo).value.match(pesq1) || document.getElementById(campo).value.match(pesq2)) { // Verifica se encontrou algo proibido
		 jAlert('São permitidos apenas letras A-z, números de 0-9, ponto (.) ou underline (_)', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
	}
}

// ***************************** Valida campos FILE de imagens (só aceita jpg, gif, jpeg, png.... 
function valida_imagem(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("(jpg|gif|png|jpeg)$"); // Caracteres permitidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
		 jAlert( 'É permitido apenas o envio de arquivos png, gif ou jpeg', 'Atenção'); // chama função para mostrar balão no campo
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
	}
}

// ***************************** Valida digitação de apelidos
function valida_apelido(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[A-Za-z0-9._-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^A-Za-z0-9._-]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. ', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
	}
}

// ***************************** Valida digitação de NUMEROS (só aceita 0-9 
function valida_numero(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[0-9]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^0-9]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Utilize apenas números neste campo. ', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
	}
}


// ***************************** Valida digitação de SENHAS
function valida_senha(campo, event, classerro, classnormal){
	var pesq1 = new RegExp("^[a-zA-Z0-9!@#$%&*=_+:;.,{}?-]*$"); // Caracteres permitidos
	var pesq3 = new RegExp("[^a-zA-Z0-9!@#$%&*=_+:;.,{}?-]", "g"); // Caracteres proibidos

	if (!document.getElementById(campo).value.match(pesq1)) { // Verifica se encontrou algo proibido
			 jAlert( '<b>Caracter não permitido.</b><br>Neste campo são permitidos os caracteres de a-z, A-Z, númerais de 0-9, e os caracteres especiais ! @ # $ % & * = _ + : ; . , { } ? -', 'Atenção'); // chama função para mostrar balão no campo
		 document.getElementById(campo).value = document.getElementById(campo).value.replace(pesq3,"");
		 //muda_classe(campo, classerro); // Muda campo para classe de erro
	} else { // Se tudo estiver OK
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // Pega ultima telca apertada
		if(keyCode!='16' && keyCode!='9'){ // se não for o Shift, remove o balao
			//rem_alert_form();
		 	//muda_classe(campo, classnormal); // Muda campo para classe aceso
		}
		if(keyCode=='13'){
			document.getElementById(campo).blur();
		}
	}
}

// ************************  Função para exibir a caixa de aviso de formulário
function pos_alert_form(camporef, texto){
	var el = document.getElementById(camporef); // Campo de referencia para localização
	var x = 0; //Lado
	var y = el.offsetHeight; // Topo
	var divexib = "alerta_form"; //DIV do alerta
	//Walk up the DOM and add up all of the offset positions.
	while (el.offsetParent && el.tagName.toUpperCase() != 'BODY'){ // Pegar posição do campo do form
		x += el.offsetLeft;
		y += el.offsetTop;
		el = el.offsetParent;
	}

	x += el.offsetLeft;
	y += el.offsetTop;
	document.getElementById(divexib).style.left 		= x + 'px';
	document.getElementById(divexib).style.top 			= (y-1) + 'px';
	document.getElementById(divexib).style.display 		= 'block';
	document.getElementById(divexib).innerHTML			= texto;
}

// ************************  Função para REMOVER a caixa de alerta nos fomulários
function rem_alert_form(){
	var divexib = "alerta_form";
	document.getElementById(divexib).style.left 		= '0px';
	document.getElementById(divexib).style.top 			= '0px';
	document.getElementById(divexib).style.display 		= 'none';
	document.getElementById(divexib).innerHTML			= '&nbsp;';
}
