function validacnpj(cnpj,req) { 
	var msg = '';
	if ((cnpj.length == 0) && (req)){
		msg = 'obrigatório';
	}else if (cnpj.length > 0){
		cnpj = tiraSimb(cnpj); 
		if (cnpj.length == 14) { 
			g=cnpj.length-2;
			if(realTestaCnpj(cnpj,g) == 1){ 
				g=cnpj.length-1;
				if(realTestaCnpj(cnpj,g) == 1){
					msg = '';
				}else{
					msg = 'inválido';
				}
			}else{
				msg = 'inválido';
			}
		}else	if (cnpj.length == 15) { 
			g=cnpj.length-2;
			if(realTestaCnpj(cnpj,g) == 1){ 
				g=cnpj.length-1;
				if(realTestaCnpj(cnpj,g) == 1){
					msg = '';
				}else{
					msg = 'inválido';
				}
			}else{
				msg = 'inválido';
			}
		}else	{
			msg = 'inválido';
		}
	}
	return(msg);
}
function realTestaCnpj(cnpj,g){
	var verCnpj=0;
	var ind=2;
	var tam;
	for(f=g;f>0;f--){
		verCnpj += parseInt(cnpj.charAt(f-1)) * ind;
		if (ind > 8) {
			ind = 2;
		}else{
			ind++;
		}
	}
	verCnpj %= 11;
	if ((verCnpj == 0) || (verCnpj == 1)){
		verCnpj = 0;
	}else{
		verCnpj = 11 - verCnpj;
	}
	if (verCnpj != parseInt(cnpj.charAt(g))){
		return(0);
	}else{
		return(1);
	}
}