/************************************************************************************
									VALIDACOES
************************************************************************************/

/**********************************************
	FUNÇÃO PARA CONTAR QUANTIDADE DE CARACTERES DIGITADOS (ONKEYUP)
**********************************************/
function qtdCaracteres(campo,qtd,areacont){
	document.getElementById(areacont).innerHTML = qtd - campo.value.length;
}


/**********************************************
	Validação quantidade de campos do campo (ONKEYUP)
**********************************************/
function limiteCaracteres(campo,qtd){	
	if(campo.value.length > qtd){
		campo.value = campo.value.substr(0,qtd);
	}		
}

/**********************************************
	Validação de Campo obrigatório (ONBLUR)
**********************************************/

function validaCampoObrigatorio(campo, imagem){	
	if(campo.value != "" && campo.value != "0"){		
		imagem.innerHTML = "<img src='../images/icones/campo_obrigatorio_green.png' />";
	}
	else{
		imagem.innerHTML = "<img src='../images/icones/campo_obrigatorio_red.png' />";
	}		
}

/**********************************************
	Validação de campo EMAIL (ONBLUR)
**********************************************/
function validaEmail(email){
	if (email.value.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1) {
		alert("O email informado é inválido!");
		email.value = "";
		email.focus();
		return false;
	}		
}

/**********************************************
	Validação de campo CPF (ONBLUR)
**********************************************/
function validaCPF(cpf_campo){ 	
	cpf = cpf_campo.value;
	erro = new String;
	
	if (cpf.length != 11){ //exemplo: 35704637884
		erro += "Sao necessarios 11 digitos no campo CPF! \n\n";
	}
	
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)){
		erro += "O campo CPF suporta apenas numeros! \n\n"; 
	}
	
	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!";
		document.frm.cpf.focus();
	}
	
	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 com problema!";
	}
	
	if (erro.length > 0){
		alert(erro);		
		cpf_campo.focus();
		return false;
	}	
}

/**********************************************
	Validação de campo CNPJ (ONBLUR)
**********************************************/
function validaCNPJ(cnpj_campo){ 	
	CNPJ = cnpj_campo.value;
	erro = new String;
	
	if (CNPJ.length != 14) {
		erro += "É necessario preencher corretamente o número do CNPJ! \n\n"; 
	}
	/*
	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! \n\n";
		}
	}
	*/
	
	//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! \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 +="Dígito verificador com problema!";
	}
	
	if (erro.length > 0){
		alert(erro);		
		cnpj_campo.focus();
        return false;
	} 
	else {
		return true;
	}
	
}


/**********************************************
	Validação de campo Data (ONBLUR)
**********************************************/
function validaData(campo){        
         hoje     = new Date();
         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 >= 1900));
             if (!resultado) {
                alert("Formato de data inválido!");
                campo.value = "";
				campo.focus();
                return false;
             }
         } 
		 else if(campo.value != ""){
            alert("Formato de data inválido!");
			campo.value = "";
			campo.focus();
			return false;
         }

}


/**********************************************
	Validação de campo hora (ONBLUR)
**********************************************/
function validaHora(campo){         
         separacao = campo.value.split(":");         
         if (separacao.length == 2){
             hora   = separacao[0];
             minuto = separacao[1];             
			 
             resultado = (!isNaN(hora) && hora < 24) && (!isNaN(minuto) && minuto < 60);
             if (!resultado) {
                alert("Formato de hora inválido!");
                campo.value = "";
				campo.focus();
                return false;
             }
         } 
		 else if(campo.value != ""){
            alert("Formato de hora inválido!");
			campo.value = "";
			campo.focus();
			return false;
         }

}
