//Mostra todas as propriedades de um objeto com o seus valores
//Só e usado para debug
function show_props(obj, obj_name) {
	var result = ""
	for (var i in obj)
		result += obj_name + "." + i + " = " + obj[i] + "\n"
	return result
}

//Chama as funções que validam o cpf e o cnpj
function valida_cpfcnpj(tipo,campo){
	//Se o primeiro radio button estiver selecionado
	if (tipo.selectedIndex == 0) return val_cpf(campo)
		else return val_cnpj(campo);
}

//Valida o cpf
function val_cpf(campo) {
	var resto,i;
	var dig_1 = 0;
	var dig_2 = 0;
	var controle_1 = 10;
	var controle_2 = 11;
	var lsucesso = 1;
	var numero = campo.value
	numero = numero.replace('-','');
	numero = numero.replace(/\./g,'');
	re = /\d{11}/;
	if (!re.test(numero)) {
		erro(campo, "CPF inválido!");
		return false;
	} else {
		//coloca o numero no formato padrao
		padrao = numero.substr(0,3) + '.' + numero.substr(3,3) + '.' + numero.substr(6,3)  + '-' + numero.substr(9,2)
		campo.value = padrao

		for ( i=0 ; i < 9 ; i++) {
			dig_1 = dig_1 + parseInt(numero.substring(i, i+1) * controle_1);
			controle_1 = controle_1 - 1;
		}

		resto = dig_1 % 11;
		dig_1 = 11 - resto;

		if ((resto == 0) || (resto == 1)) {
			dig_1 = 0;
		}

		for ( i=0 ; i < 9 ; i++) {
			dig_2 = dig_2 + parseInt(numero.substring(i, i + 1) * controle_2);
			controle_2 = controle_2 - 1;
		}

		dig_2 = dig_2 + 2 * dig_1;
		resto = dig_2 % 11;
		dig_2 = 11 - resto;

		if ((resto == 0) || (resto == 1)) {
			dig_2 = 0;
		}

		dig_ver = (dig_1 * 10) + dig_2;

		if (dig_ver != parseFloat(numero.substring(numero.length-2,numero.length))) {
			erro(campo, "Número de CPF inválido!");
 			return false;
		}
	}

	return true;
}

//Valida o cnpj
function val_cnpj(campo) {
	var resto, i, padrao;
	var dig_1 = 0;
	var dig_2 = 0;
	var controle_1 = 5;
	var controle_2 = 6;
	var numero = campo.value;
	numero = numero.replace(/\./g,'');
	numero = numero.replace('/','');
	numero = numero.replace('-','');
	if (numero.length != 14) {
		erro(campo, "CNPJ inválido! Por favor preencha da forma xx.xxx.xxx/xxxx-xx");
		return false;
	} else {
		//coloca no formato padrao
		padrao = numero.substr(0,2) + '.' + numero.substr(2,3) + '.' + numero.substr(5,3) + '/' + numero.substr(8,4) + '-' + numero.substr(12,2)
		campo.value = padrao
		for ( i=0 ; i < 12 ; i++) {
			dig_1 = dig_1 + parseFloat(numero.substring(i, i+1) * controle_1);
			controle_1 = controle_1 - 1;
			if (i == 3) {
				controle_1 = 9;
			}
		}
		resto = dig_1 % 11;
		dig_1 = 11 - resto;
		if ((resto == 0) || (resto == 1)){
	 		dig_1 = 0;
		}
		for ( i=0 ; i < 12 ; i++) {
			dig_2 = dig_2 + parseInt(numero.substring(i, i+1) * controle_2);
			controle_2 = controle_2 - 1;
			if (i == 4) {
				controle_2 = 9;
			}
		}
		dig_2 = dig_2 + (2 * dig_1);
		resto = dig_2 %11;
		dig_2 = 11 - resto;
		if ((resto == 0) || (resto == 1)){
	 		dig_2 = 0;
		}
		dig_ver = (dig_1 * 10) + dig_2;
		if (dig_ver != parseFloat(numero.substring(numero.length-2,numero.length))) {
			erro(campo, "Número de CNPJ inválido!");
 			return false;
		}
	}
 	return true;
}

