// JavaScript Document
function trim(str)
{
	return str.replace(/^\s+/g,"").replace(/\s+$/g,"");
}


function numberOnly(e)
{
	if(!e)
	{
		if(window.event) e = window.event;
		else return;
	}
	
	if(/^(8|9|37|38|39|40)$/.test(e.keyCode)) return true;
		
	var keycode;
		
	if(e.charCode) keycode = String.fromCharCode(e.charCode);
	else keycode = String.fromCharCode(e.keyCode);
	
	if(!/^[0-9]$/.test(keycode)) return false;
	
	return true;
	
}

function validaCPF(cpf) 
{
	erro = new String;
	if (cpf.length < 11)
	{
		return false;
	}
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! "; 
	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
		return false;
	}
	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])){
		return false;
	}
	
	return true;
}

var FormatDataBr=
{
	format:function(str)
	{
		if(!/^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(19|20)?([0-9]{2})$/.test(str)) return str;
		
		//var sep = arguments.length == 2 ? arguments[1] : "/";
		
		return str.substr(0,2) + "/" + str.substr(2,2) + "/" + str.substr(4);
	},
	clear:function(str)
	{	
		return str.replace(/\//g,"");
	}
};

var FormatCep=
{
	format:function(str)
	{
		if(!/^\d{5,8}$/.test(str)) return str;
		
		var buf = str.substr(0,5) + "-";
		
		switch(8-str.length)
		{
			case 3: return buf + "000";
			case 2: return buf + str.substr(5) + "00";
			case 1: return buf + str.substr(5) + "0";
			default: return buf + str.substr(5);
		}
		
	},
	clear:function(str)
	{
		return str.replace(/\D/g,"");
	}
};

function validaData(str)
{
	if(/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19|20)?([0-9]{2})$/.test(str)) return true;
	
	return false;
}

function validaCep(str)
{
	return /^\d{5}-\d{3}$/.test(str);
}

document.forms[0].renda_mensal.onfocus = function()
{
	if(/^\s*$/.test(this.value)) this.value = "R$ 0,00";
}

function formataMoedaDec(dec)
{	
	var mod = dec.length%3;
		
	if(Math.floor(dec.length/3) > 0)
	{
		var str1 = mod != 0 ? dec.substr(0,mod) : "";
		var str2 = dec.substr(mod);
		dec = str1 +  str2.replace(/(\d{3})/g,".$1").replace(/\.$/,"");
	}
	
	return dec.replace(/^\./,"");
}

function formataMoedaAdd(value)
{
	if(/^0,/.test(value))
	{
		if(/^0,00$/.test(value))
		{
			value = "0,0";
		}
		
		if(/^0,0[1-9]$/.test(value))
		{
			value = value.replace(/0,0([1-9])/,"0,$1");
		}
		
		if(/^0,[1-9][0-9]$/.test(value))
		{
			value = value.replace(/0,([1-9])([0-9])/,"$1,$2");
		}
	}
	else
	{
		var buf = value.replace(/\./g,"");
		
		var er = /([1-9][0-9]*),([0-9])([0-9])/;
		
		var dec = buf.replace(er,"$1$2");
		
		value = formataMoedaDec(dec) + buf.replace(er,",$3");
	}
	
	return value;
}

function formataMoedaDel(value)
{
	if(/^[0-9],/.test(value))
	{
		if(/^0,00$/.test(value))  value = "0,00";
		
		var part = value.substr(0,value.length-1);
		
		if(/^0,0[1-9]$/.test(value)) value = "0,00"
		
		if(/^0,[1-9][0-9]$/.test(value))  value = value.replace(/^0,([1-9])[0-9]$/,"0,0$1");
		
		if(/^[1-9],[0-9][0-9]$/.test(value))  value = value.replace(/^([1-9]),([0-9])[0-9]$/,"0,$1$2");
	}
	else
	{
		var buf = value.replace(/\./g,"");
		var dec = buf.replace(/^(\d+)([0-9]),([0-9])[0-9]$/,"$1")
		value = formataMoedaDec(dec) + buf.replace(/^(\d+)([0-9]),([0-9])[0-9]$/,",$2$3");
	}
	
	return value;
}

document.forms[0].renda_mensal.onkeydown = function(e)
{
	
	if(!e)
	{
		if(window.event) e = window.event;
		else return;
	}
	
	
	if(/^(9|37|38|39|40)$/.test(e.keyCode)) return true;
	
	if(e.keyCode == 8 || e.keyCode == 46)
	{
		var value = this.value.replace(/R\$\s/,"");
		this.value = "R$ " + formataMoedaDel(value);
		return false;
	}
	
	if((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105)) return false;
	
	var value = this.value.replace(/R\$\s/,"");
	if(value.length >= 12) return false;
	this.value = "R$ " + formataMoedaAdd(value);
}

document.forms[0].cpf.onkeypress = numberOnly;
document.forms[0].data_nascimento.onkeypress = numberOnly;
//document.forms[0].digito_documento.onkeypress = numberOnly;
document.forms[0].cep_endereco.onkeypress = numberOnly;
document.forms[0].ddd_residencia.onkeypress = numberOnly;
document.forms[0].telefone_residencia.onkeypress = numberOnly;
document.forms[0].numeros_dependentes.onkeypress = numberOnly;
document.forms[0].cpf_conjuge.onkeypress = numberOnly;
document.forms[0].data_nascimento_conjuge.onkeypress = numberOnly;
document.forms[0].tempo_residencia_ano.onkeypress = numberOnly;
document.forms[0].tempo_residencia_mes.onkeypress = numberOnly;
document.forms[0].tempo_emprego_ano.onkeypress = numberOnly;
document.forms[0].tempo_emprego_mes.onkeypress = numberOnly;
document.forms[0].cep_empresa.onkeypress = numberOnly;
document.forms[0].ddd_empresa.onkeypress = numberOnly;
document.forms[0].telefone_empresa.onkeypress = numberOnly;
document.forms[0].ddd_referencia.onkeypress = numberOnly;
document.forms[0].telefone_referncia.onkeypress = numberOnly;

document.forms[0].data_nascimento.onfocus = function(){	this.value = FormatDataBr.clear(this.value); }
document.forms[0].data_nascimento.onblur = function(){ this.value = FormatDataBr.format(this.value); }

document.forms[0].data_nascimento_conjuge.onfocus = function(){	this.value = FormatDataBr.clear(this.value); }
document.forms[0].data_nascimento_conjuge.onblur = function(){ this.value = FormatDataBr.format(this.value); }

document.forms[0].cep_endereco.onfocus = function(){ this.value = FormatCep.clear(this.value); }
document.forms[0].cep_endereco.onblur = function(){ this.value = FormatCep.format(this.value); }

document.forms[0].cep_empresa.onfocus = function(){	this.value = FormatCep.clear(this.value); }
document.forms[0].cep_empresa.onblur = function(){ this.value = FormatCep.format(this.value); }

var tituloEmpresaComum = function()
{
	if(this.checked)document.getElementById("label_empresa").innerHTML = "Empresa";
}

document.getElementById("tipo_emprego_assalariado").onclick = tituloEmpresaComum;
document.getElementById("tipo_emprego_autonomo").onclick = tituloEmpresaComum;


document.getElementById("tipo_emprego_liberal").onclick = function()
{
	if(this.checked)document.getElementById("label_empresa").innerHTML = "Nº Registro";
}

document.getElementById("tipo_emprego_aponsentado").onclick = function()
{
	if(this.checked)document.getElementById("label_empresa").innerHTML = "Nº Benefício";
}


document.getElementById("bt_print").onclick = function()
{
	var campos = "";
	
	var inputs = document.forms[0].getElementsByTagName("input");

	for(i=0;i<inputs.length;i++)
	{
		if(/text/i.test(inputs[i].type)) inputs[i].style.backgroundColor = "#FFFFFF";
	}
	
	inputs = document.forms[0].getElementsByTagName("select");
	
	for(i=0;i<inputs.length;i++)
	{
		inputs[i].style.backgroundColor = "#FFFFFF";
	}
	
	if(!validaCPF(document.forms[0].cpf.value))
	{
		//alert("Por favor informe um CPF válido.");
		document.forms[0].cpf.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "CPF";
	}
	
	if(trim(document.forms[0].nome_completo.value) == "") 
	{
		//alert("Por favor informe o seu nome completo.");
		document.forms[0].nome_completo.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Nome Completo";
	}
	
	if(!validaData(document.forms[0].data_nascimento.value))
	{
		//alert("Por favor informe sua data de nascimento.");
		document.forms[0].data_nascimento.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Data de Nascimento";
	}
	
	if(!document.forms[0].tipo_documento_rg.checked && !document.forms[0].tipo_documento_rne.checked && !document.forms[0].tipo_documento_re.checked)
	{
		//alert("Por favor informe o tipo de documento de identificação.");
		campos +=  (campos == "" ? "" : ", ") + " Documento de Identificação";
		
	}
	
	if(trim(document.forms[0].numero_documento.value) == "") 
	{
		//alert("Por favor informe a numeração do seu documento.");
		document.forms[0].numero_documento.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Numeração do Documento";
	}
	
	if(trim(document.forms[0].digito_documento.value) == "") 
	{
		//alert("Por favor informe o dígito verificador da numeração do seu documento.");
		document.forms[0].digito_documento.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Dígito";
	}
	
	if(document.forms[0].estado_emissor.value == "") 
	{
		//alert("Por favor informe o estado emissor do seu documento.");
		document.forms[0].estado_emissor.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Estado Emissor";
	}
	
	if(trim(document.forms[0].endereco.value) == "") 
	{
		//alert("Por favor informe o endereço da sua residência.");
		document.forms[0].endereco.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Endereço";
	}
	
	if(trim(document.forms[0].numero_endereco.value) == "") 
	{
		//alert("Por favor informe o número do endereço da sua residência.");
		document.forms[0].numero_endereco.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Número";
	}
	
	if(trim(document.forms[0].bairro_endereco.value) == "") 
	{
		//alert("Por favor informe o bairro da sua residência.");
		document.forms[0].bairro_endereco.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Bairro";
	}
	
	if(trim(document.forms[0].cidade_endereco.value) == "") 
	{
		//alert("Por favor informe a cidade da sua residência.");
		document.forms[0].cidade_endereco.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Cidade";
	}
	
	if(document.forms[0].estado_endereco.value == "") 
	{
		//alert("Por favor informe o estado da sua residência.");
		document.forms[0].estado_endereco.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Estado";
	}
	
	if(!validaCep(document.forms[0].cep_endereco.value)) 
	{
		//alert("Por favor informe o CEP da sua residência.");
		document.forms[0].cep_endereco.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "CEP";
	}
	
	if(trim(document.forms[0].ddd_residencia.value) == "" || !(/^\d{2,3}$/.test(document.forms[0].ddd_residencia.value))) 
	{
		//alert("Por favor informe o DDD da sua residência.");
		document.forms[0].ddd_residencia.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "DDD";
	}
	
	if(trim(document.forms[0].telefone_residencia.value) == "") 
	{
		//alert("Por favor informe o telefone da sua residência.");
		document.forms[0].telefone_residencia.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Telefone";
	}
	
	if
	(
	   	!document.forms[0].estado_civil_solteiro.checked 
		&& !document.forms[0].estado_civil_casado.checked 
		&& !document.forms[0].estado_civil_viuvo.checked
		&& !document.forms[0].estado_civil_separado.checked
		&& !document.forms[0].estado_civil_divorciado.checked
	)
	{
		//alert("Por favor informe o seu estado civil.");
		campos +=  (campos == "" ? "" : ", ") + "Estado civil";
	}
	
	if
	(
	   	!document.forms[0].sexo_m.checked 
		&& !document.forms[0].sexo_f.checked 
	)
	{
		//alert("Por favor informe o seu sexo.");
		campos +=  (campos == "" ? "" : ", ") + "Sexo";
	}
	
	if
	(
	   	!document.forms[0].tipo_residencia_p.checked 
		&& !document.forms[0].tipo_residencia_a.checked 
		&& !document.forms[0].tipo_residencia_f.checked
		&& !document.forms[0].tipo_residencia_lt.checked
		&& !document.forms[0].tipo_residencia_o.checked
	)
	{
		//alert("Por favor informe o seu tipo de residência.");
		campos +=  (campos == "" ? "" : ", ") + "Tipo de residência";
	}
	
	if
	(
	 	trim(document.forms[0].tempo_residencia_ano.value) == ""
		&& trim(document.forms[0].tempo_residencia_mes.value) == ""
	) 
	{
		//alert("Por favor informe o tempo que você reside em sua casa.");
		document.forms[0].tempo_residencia_ano.style.backgroundColor = "#FF9999";
		document.forms[0].tempo_residencia_mes.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Tempo no local";
	}
	
	if(trim(document.forms[0].nome_mae.value) == "") 
	{
		//alert("Por favor informe o nome da sua mãe.");
		document.forms[0].nome_mae.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Nome da Mãe";
	}
	
	if(trim(document.forms[0].nome_conjuge.value) == "" && (trim(document.forms[0].cpf_conjuge.value) != "" || trim(document.forms[0].data_nascimento_conjuge.value) != ""))
	{
		//alert("Por favor informe o nome do seu cônjuge.");
		document.forms[0].nome_conjuge.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Nome do cônjuge";
	}
	
	if(trim(document.forms[0].cpf_conjuge.value) != "" && !validaCPF(document.forms[0].cpf_conjuge.value))
	{
		//alert("Por favor informe um CPF válido para o seu cônjuge.");
		document.forms[0].cpf_conjuge.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "CPF (Cônjuge)";
	}
	
	if(trim(document.forms[0].data_nascimento_conjuge.value) != "" && !validaData(document.forms[0].data_nascimento_conjuge.value))
	{
		//alert("Por favor informe uma data de nascimento válida para seu cônjuge.");
		document.forms[0].data_nascimento_conjuge.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Data de Nascimento (Cônjuge)";
	}
	
	if
	(
	   	!document.forms[0].dados_profissionais_titular.checked 
		&& !document.forms[0].dados_profissionais_conjuge.checked 
	)
	{
		campos +=  (campos == "" ? "" : ", ") + "\"Os dados profissionais são do\"";
	}
	
	if
	(
	   	!document.forms[0].tipo_emprego_assalariado.checked 
		&& !document.forms[0].tipo_emprego_aponsentado.checked 
		&& !document.forms[0].tipo_emprego_liberal.checked
		&& !document.forms[0].tipo_emprego_autonomo.checked
	)
	{
		campos +=  (campos == "" ? "" : ", ") + "Tipo de emprego";
	}
	
	if
	(
	 	trim(document.forms[0].tempo_emprego_ano.value) == ""
		&& trim(document.forms[0].tempo_emprego_mes.value) == ""
	) 
	{
		//alert("Por favor informe há quanto tempo você trabalha na empresa informada.");
		document.forms[0].tempo_emprego_ano.style.backgroundColor = "#FF9999";
		document.forms[0].tempo_emprego_mes.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Admissão";
	}
	
	
	if(document.getElementById("tipo_emprego_aponsentado").checked)
	{
		if(trim(document.forms[0].empresa.value) == "") 
		{
			//alert("Por favor informe o número do benefício.");
			document.forms[0].empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Empresa";
		}
	}
	else if(document.getElementById("tipo_emprego_liberal").checked)
	{
		if(trim(document.forms[0].empresa.value) == "") 
		{
			//alert("Por favor informe o seu número de registro em sua entidade de classe (CRM, CRQ, CREA, etc.) ");
			document.forms[0].empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Empresa";
		}
	}
	else if(document.getElementById("tipo_emprego_assalariado").checked)
	{
		if(trim(document.forms[0].empresa.value) == "") 
		{
			//alert("Por favor informe a empresa na qual você trabalha.");
			document.forms[0].empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Empresa";
		}
		
		if(trim(document.forms[0].cargo.value) == "") 
		{
			//alert("Por favor informe seu cargo.");
			document.forms[0].cargo.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Cargo";
		}
		
		if(trim(document.forms[0].endereco_empresa.value) == "") 
		{
			//alert("Por favor informe o endereço da empresa em que você trabalha.");
			document.forms[0].endereco_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Endereço (Empresa)";
		}
		
		if(trim(document.forms[0].numero_endereco_empresa.value) == "") 
		{
			//alert("Por favor informe o número do endereço da empresa em que você trabalha.");
			document.forms[0].numero_endereco_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Número (Empresa)";
		}
		
		if(trim(document.forms[0].bairro_empresa.value) == "") 
		{
			//alert("Por favor informe o bairro da empresa em que você trabalha.");
			document.forms[0].bairro_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Bairro (Empresa)";
		}
		
		if(trim(document.forms[0].cidade_empresa.value) == "") 
		{
			//alert("Por favor informe a cidade da empresa em que você trabalha.");
			document.forms[0].cidade_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Cidade (Empresa)";
		}
		
		if(document.forms[0].estado_endereco_empresa.value == "") 
		{
			//alert("Por favor informe o estado da empresa em que você trabalha.");
			document.forms[0].estado_endereco_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Estado (Empresa)";
		}
		
		if(!validaCep(document.forms[0].cep_empresa.value)) 
		{
			//alert("Por favor informe o CEP da empresa em que você trabalha.");
			document.forms[0].cep_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "CEP (Empresa)";
		}
		
		if(trim(document.forms[0].ddd_empresa.value) == "") 
		{
			//alert("Por favor informe o DDD da empresa em que você trabalha.");
			document.forms[0].ddd_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "DDD (Empresa)";
		}
		
		if(trim(document.forms[0].telefone_empresa.value) == "") 
		{
			//alert("Por favor informe o telefone da empresa em que você trabalha.");
			document.forms[0].telefone_empresa.style.backgroundColor = "#FF9999";
			campos +=  (campos == "" ? "" : ", ") + "Telefone (Empresa)";
		}
		
	}
	
	if(trim(document.forms[0].renda_mensal.value) == "") 
	{
		//alert("Por favor informe sua renda mensal.");
		document.forms[0].renda_mensal.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Renda Mensal (Empresa)";
	}
	
	if(trim(document.forms[0].nome_referencia.value) == "") 
	{
		//alert("Por favor informe uma referência pessoal.");
		document.forms[0].nome_referencia.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Nome (Referência Pessoal)";
	}
	
	if(trim(document.forms[0].grau_relacionamento.value) == "") 
	{
		//alert("Por favor informe o grau de relacionamento ente você e sua referência pessoal.");
		document.forms[0].grau_relacionamento.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Grau de Relacionamento";
	}
	
	if(trim(document.forms[0].ddd_referencia.value) == "") 
	{
		//alert("Por favor informe o DDD da sua referência pessoal.");
		document.forms[0].ddd_referencia.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "DDD (Referência Pessoal)";
	}
	
	if(trim(document.forms[0].telefone_referncia.value) == "") 
	{
		//alert("Por favor informe o telefone da sua referência pessoal.");
		document.forms[0].telefone_referncia.style.backgroundColor = "#FF9999";
		campos +=  (campos == "" ? "" : ", ") + "Telefone (Referência Pessoal)";
	}
	
	
	if(campos != "")
	{
		alert("Alguns campos não foram preenchidos corretamente:\n\n" + campos + "\n\nPor favor corrija-os, eles estão indicados em vermelho.");
		return;
	}
	
	alert("Imprima e envie pelo correio para o CEP 01219-905 – A/c Central de Relacionamento Cred-System");

	document.forms[0].submit();

}