/* 
+---------------------------------------------+
| Bibblioteca de funções gerais em JavaScript |
| Funções coletadas por: Felipe Rebelo Lopes  |
| Empresa: BCJ Soluções Inteligentes          |
| Contato: suporte@bcj.com.br                 |
+---------------------------------------------+
*/

// Valida se o conteúdo da string email é um e-mail válido
function validaEmail(email) {
    invalidChars = " ~\'^\`\"*+=\\|][(){}$&!#%/:,;";

    if (email == "") {
        return false;
    }

    for (i=0; i<invalidChars.length; i++) {
        badChar = invalidChars.charAt(i);
        if (email.indexOf(badChar,0) > -1) {
            return false;
        }
    }
    lengthOfEmail = email.length;
    if ((email.charAt(lengthOfEmail - 1) == ".") || (email.charAt(lengthOfEmail - 2) == ".")) {
        return false;
    }
    Pos = email.indexOf("@",1);
    if (email.charAt(Pos + 1) == ".") {
        return false;
    }
    while ((Pos < lengthOfEmail) && ( Pos != -1)) {
        Pos = email.indexOf(".",Pos);
        if (email.charAt(Pos + 1) == ".") {
            return false;
        }
        if (Pos != -1) {
            Pos++;
        }
    }

    atPos = email.indexOf("@",1);
    if (atPos == -1) {
        return false;
    }

    if (email.indexOf("@",atPos+1) != -1) {
        return false;
    }

    periodPos = email.indexOf(".",atPos);
    if (periodPos == -1) {
        return false;
    }
    if (periodPos+3 > email.length) {
        return false;
    }
    return true;
}

function numbersonly(e){
  if(document.all) { //it's IE 
    var en = window.event.keyCode; 
  }
  else
  { 
    en = e.which; 
  } 

  if ( (en == 8) || (en == 13) || (en == 0) ) 
    return true
  else if (en < 48 || en > 57)
    return false
}
	
// Funcação que valida o con
function validaCPF(sCPF) {
        cpf = sCPF;
        erro = new String;
        if (cpf.length < 11) erro += "Um CPF deve conter 11 digitos! ";
        var nonNumbers = /\D/;
        if (nonNumbers.test(cpf)) erro += "O CPF deve conter apenas números! ";
        if (cpf == "00000000000" || 
			cpf == "11111111111" || 
			cpf == "22222222222" || 
			cpf == "33333333333" || 
			cpf == "44444444444" || 
			cpf == "55555555555" || 
			cpf == "66666666666" || 
			cpf == "77777777777" || 
			cpf == "88888888888" || 
			cpf == "99999999999"){
                erro += "Numero de CPF invalido!"
       }
       var a = [];
       var b = new Number;
       var c = 11;
       for (i=0; i<11; i++){
               a[i] = cpf.charAt(i);
               if (i < 9) b += (a[i] * --c);
       }
       if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
       b = 0;
       c = 11;
       for (y=0; y<10; y++) b += (a[y] * c--);
       if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
       if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
               erro +="Digito verificador incorreto!";
       }
       if (erro.length > 0){
               alert(erro);
               return false;
       }
       return true;
}

/*
 <script language="Javascript">
         function validaCNPJ(oCNPJ) {
                 CNPJ = oCNPJ.value;
                 erro = new String;
                 if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! ";
                 if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
                 if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! ";
                 }
                 //substituir os caracteres que não são números
               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 verificação de CNPJ suporta apenas números! ";
               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 +="Dígito verificador com problema!";
               }
               if (erro.length > 0){
                       alert(erro);
                       return false;
               } else {
                       return true;
               }
       }
 </script>
*/

// Registra o Flash para o Update do Internet Explorer
function clearObject(obj){
	if(obj==null){
		var theObjects = document.getElementsByTagName("object");
		for (var i=0; i < theObjects.length; i++) {
			 theObjects[i].outerHTML=theObjects[i].outerHTML;
		}
	}
	else{
		obj.outerHTML = obj.outerHTML;
	}
}

function clearAllIeObjects(){
	if(document.all){
		for(i = 0; i < document.all.length; i++){
			if(document.all[i].tagName == "OBJECT"){
				clearObject(document.all[i]);
			}
		}
	}
}

/*----------------------------------------------------------------------------
Formatação para qualquer mascara. 
# é input de dado. qualquer outra coisa é formato de máscara exemplo
Formatar Telefone: 
onkeypress="formatarCampo(this, '(##) ####-####')" 
-----------------------------------------------------------------------------*/
function formatarCampo(src, mask){
	var i = src.value.length;
	var saida = mask.substring(1,2);
	var texto = mask.substring(i);
	if (texto.substring(0,1) != saida){
		src.value += texto.substring(0,1);
		formatarCampo(src, mask);
	}

} 
