/* functions */
var J = jQuery.noConflict();

/* tabelas */
function tables(){
	J('table tr:odd').addClass('odd')
}

function max_length(){
	//inputs do step 01
	J('#nome_equipe').attr('maxlength','100');
	J('#marca').attr('maxlength','20');
	J('#modelo').attr('maxlength','30');
	J('#ano').attr('maxlength','4');
	J('#cor').attr('maxlength','20');
	J('#placa').attr('maxlength','7');
	J('#proprietario_terceiros').attr('maxlength','100');
	
	//inputs do step 02
	J('#nome').attr('maxlength','100');
	J('#apelido').attr('maxlength','20');
	J('#nome_pai').attr('maxlength','100');
	J('#nome_mae').attr('maxlength','100');
	J('#local_nascimento').attr('maxlength','60');
	J('#nacionalidade').attr('maxlength','30');
	J('#cnh').attr('maxlength','15');
	J('#cpf').attr('maxlength','11');
	J('#cba').attr('maxlength','200');
	J('#email').attr('maxlength','100');
	J('#endereco_res').attr('maxlength','100');
	J('#bairro_res').attr('maxlength','100');
	J('#cidade_res').attr('maxlength','100');
	J('#cep_res').attr('maxlength','10');
	J('#tel_ddd_res').attr('maxlength','3');
	J('#tel_res').attr('maxlength','10');
	J('#endereco_com').attr('maxlength','100');
	J('#bairro_com').attr('maxlength','100');
	J('#cidade_com').attr('maxlength','100');
	J('#cep_com').attr('maxlength','10');
	J('#tel_ddd_com').attr('maxlength','3');
	J('#tel_com').attr('maxlength','10');
	J('#universidade').attr('maxlength','50');
	J('#curso').attr('maxlength','50');
	
	//inputs do step 03
	J('#conhecimento').attr('maxlength','100');
	J('#novo_login').attr('maxlength','20');
	J('#nova_senha').attr('maxlength','10');
	
	//fale_conosco
	J('#nome').attr('maxlength','100');
	J('#email').attr('maxlength','100');
	J('#cidade_fale').attr('maxlength','100');
	J('#estado_fale').attr('maxlength','100');
	
	//login e senha blog
	J('#login').attr({'minlength':5, 'maxlength':20});
	J('#senha').attr({'minlength':4, 'maxlength':10});
	
	//publicando um novo post
	J('#dscTitulo').attr({'maxlength':100});
	J('#dscMensagem').attr({'maxlength':3000});
	
	//cadastro de e-mail para receber novidades
	J('#dscNome').attr({'maxlength':100});
	J('#dscEmail').attr({'maxlength':3000});
	
	//lembrete de senha
	J('#email_lembrete').attr({'maxlength':100});
	
	//comentarios do blog
	J('#nome_comentario').attr('maxlength','100');
	J('#email_comentario').attr('maxlength','100');
	J('#mensagem_comentario').attr('maxlength','1000');

};
function applyDtNasc(){
	J("label[for='data_nascimento'] select").change(function(){
		J("#setDtNasc").val(J("#dia_nascimento").val() +"/"+ J("#mes_nascimento").val() +"/"+ J("#ano_nascimento").val());
	})
}
function validacoes(){

	//habilita o campo outros cao o radiobutton terceiros seja focado
	J('#piloto').focus(function(){J('#proprietario_terceiros').attr('disabled','true');});
	J('#navegador').focus(function(){J('#proprietario_terceiros').attr('disabled','true')});
	J('#terceiros').focus(function(){J('#proprietario_terceiros').removeAttr('disabled');});
	
	//válida step 01
	J('#inscricao_step_01').validate({
		rules: {
			'equipe.categoriaEquipeVO.idCategoriaEquipe': {
				required: true
			},
			'equipe.dscNomeEquipe': {
				required: true,
				maxlength: 100
			},
			'equipe.dscMarcaVeiculo': {
				required: true,
				maxlength: 20
			},
			'equipe.dscModeloVeiculo': {	
				required: true,
				maxlength: 30
			},
			'equipe.dscAnoVeiculo': {
				required: true,
				number: true,
				maxlength: 4
			},
			'equipe.dscCorVeiculo': {
				required: true,
				maxlength: 20
			},
			'equipe.dscPlacaVeiculo': {
				required: true,
				maxlength: 7
			},
			'equipe.indPropriedade': {
				required: true
			},
			'equipe.dscNomeProprietario': {
				required: function(element) {return J("#terceiros").is(':checked')}
			},
			'equipe.indAutorizacao': {
				required: function(element) {return J("#terceiros").is(':checked')}
			}
		},
		messages: {
			'equipe.categoriaEquipeVO.idCategoriaEquipe': {
				required: "Informe em qual categoria você se encaixa."
			},
			'equipe.dscNomeEquipe': {
				required: "Informe o nome da equipe com até 100 caracteres.",
				maxlength: "Informe o nome da equipe com até 100 caracteres."
			},
			'equipe.dscMarcaVeiculo': {
				required: "Informe o modelo do veiculo utilizado no rally.",
				maxlength: "Informe a marca do veículo com até 20 caracteres."
			},
			'equipe.dscModeloVeiculo': {
				required: "Informe a marca do veiculo utilizado no rally.",
				maxlength: "Informe o modelo do veículo com até 30 caracteres."
			},
			'equipe.dscAnoVeiculo': {
				required: "Informe o ano do veiculo utilizado no rally.",
				number: "Informe o ano apenas com números",
				maxlength: "Informe o ano do veículo com até 4 caracteres."
			},
			'equipe.dscCorVeiculo': {
				required: "Informe a cor do veiculo utilizado no rally.",
				maxlength: "Informe a cor do veículo com até 20 caracteres."
			},
			'equipe.dscPlacaVeiculo': {
				required: "Informe a placa do veiculo utilizado no rally.",
				maxlength: "Informe a placa do veículo com até 7 caracteres."
			},
			'equipe.indPropriedade': {
				required: "Qual o proprietário do veiculo?"
			},
			'equipe.dscNomeProprietario': {
				required: "Indique o nome do proprietário do veículo."
			},
			'equipe.indAutorizacao': {
				required: "Possui autorização do proprietário do veículo?"
			}
		}
	});

	//válida step 02
	J('#inscricao_step_02').validate({
		rules: {
			'piloto.dscNome': {
				required: true,
				maxlength: 100
			},
			'piloto.dscPseudonimo': {
				required: true,
				maxlength: 20
			},
			'piloto.dscTipoSanguineo':{
				required: function(element) {return J("#tipo_sanguineo").val()==0}
			},
			'piloto.dscFatorRh':{
				required: function(element) {return J("#fator").val()==0}
			},
			'piloto.dscNomePai': {
				maxlength: 100
			},
			'piloto.dscNomeMae': {
				maxlength: 100
			},
			'piloto.dscLocalNascimento': {
				maxlength: 60
			},
			'piloto.dscNacionalidade': {
				required: true,
				maxlength: 30
			},
			'setDtNasc':{
				dateBR: true
			},
			'piloto.dscEstadoCivil': {
				required: function(element) {return J("#estado_civil").val()==0}
			},
			'piloto.dscCpf': {
				required: true,
				verificaCPF: true
			},
			'piloto.dscIdentidade': {
				number: true
			},
			'piloto.dscCnh': {
				required: true,
				maxlength: 15,
				number: true
			},
			'piloto.dscCba': {
				maxlength: 200
			},
			'piloto.dscEmail': {
				required: true,
				maxlength: 100,
				email: true
			},
			'piloto.dscEnderecoRes': {
				required: true,
				maxlength: 100
			},
			'piloto.dscBairroRes': {
				required: true,
				maxlength: 100
			},
			'piloto.dscCidadeRes': {
				required: true,
				maxlength: 100
			},
			'piloto.dscEstadoRes':{
				required: function(element) {return J("#uf_res").val()==""}
			},
			'piloto.dscCepRes': {
				required: true,
				maxlength: 10,
				number: true
			},
			'piloto.codDddRes': {
				required: true,
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'piloto.dscTelefoneRes': {
				required: true,
				maxlength: 10,
				number: true
			},
			'piloto.codDddCel': {
				required: true,
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'piloto.dscTelefoneCel': {
				required: true,
				maxlength: 10,
				number: true
			},
			'piloto.dscEnderecoCom': {
				maxlength: 100
			},
			'piloto.dscBairroCom': {
				maxlength: 100
			},
			'piloto.dscCidadeCom': {
				maxlength: 100
			},
			'piloto.dscCepCom': {
				maxlength: 10,
				number: true
			},
			'piloto.codDddCom': {
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'piloto.dscFoneCom': {
				maxlength: 10,
				number: true
			},
			'piloto.dscUniversidade': {
				maxlength: 50
			},
			'piloto.dscCurso': {
				maxlength: 50
			}
		},
		messages: {
			'piloto.dscNome': {
				required: "Informe o nome do participante.",
				maxlength: "O nome do participante deve ter até 100 caracteres."
			},
			'piloto.dscPseudonimo': {
				required: "Informe o apelido do participante.",
				maxlength: "Informe um apelido com até 20 caracteres."
			},
			'piloto.dscTipoSanguineo':{
				required: "Informe seu tipo sanguineo"
			},
			'piloto.dscFatorRh':{
				required: "Informe seu fator rh"
			},
			'piloto.dscNomePai': {
				maxlength: "O nome do pai do participante, deve ter até 100 caracteres."
			},
			'piloto.dscNomeMae': {
				maxlength: "O nome da mãe do participante, deve ter até 100 caracteres."
			},
			'piloto.dscLocalNascimento': {
				maxlength: "O local de nascimento do participante, deve ter até 60 caracteres."
			},
			'piloto.dscNacionalidade': {
				required: "Informe a nacionalidade do participante",
				maxlength: "A nacionalidade do participante, deve ter até 60 caracteres."
			},
			'piloto.dscEstadoCivil': {
				maxlength: "A nacionalidade do participante, deve ter até 60 caracteres."
			},
			'piloto.dscCpf': {
				required: "Informe o CPF do participante.",
				verificaCPF: "Informe um CPF válido."
			},
			'piloto.dscIdentidade': {
				number: "Informe o RG apenas com números"
			},
			'piloto.dscCnh': {
				required: "Informe o CNH do participante.",
				maxlength: "Informe um CNH válido.",
				number: "Informe o CNH apenas com números"
			},
			'piloto.dscCba': {
				maxlength: "Informe um texto com até 200 caracteres."
			},
			'piloto.dscEmail': {
				maxlength: "Informe um e-mail com até 100 caracteres.",
				email: "Informe um e-mail válido.",
				required: "Informa o e-mail do participante"
			},
			'piloto.dscEnderecoRes': {
				required: "Informe o endereço residêncial do participante.",
				maxlength: "Informe um endereço residêncial com até 100 caracteres."
			},
			'piloto.dscBairroRes': {
				required: "Informe o bairro residêncial do participante.",
				maxlength: "Informe um bairro residêncial com até 100 caracteres."
			},
			'piloto.dscCidadeRes': {
				required: "Informe a cidade residêncial do participante.",
				maxlength: "Informe uma cidade residêncial com até 100 caracteres."
			},
			'piloto.dscEstadoRes':{
				required: "Informe o estado residêncial do participante."
			},
			'piloto.dscCepRes': {
				required: "Informe o CEP residêncial do participante.",
				maxlength: "Informe o cep residêncial com até 10 caracteres.",
				number: "Informe o CEP apenas com números"
			},
			'piloto.codDddRes': {
				required: "Informe o ddd do telefone residêncial do participante.",
				minlength: "Informe o ddd do telefone residêncial com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do telefone residêncial com até 3 caracteres.",
				number: "Informe o DDD apenas com números"
			},
			'piloto.dscTelefoneRes': {
				required: "Informe o telefone residêncial do participante.",
				maxlength: "Informe o telefone residêncial com até 10 caracteres.",
				number: "Informe o telefone apenas com números"
			},
			'piloto.codDddCel': {
				required: "Informe o ddd do celular do participante.",
				minlength: "Informe o ddd do celular com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do celular com até 3 caracteres.",
				number: "Informe o DDD apenas com números"
			},
			'piloto.dscTelefoneCel': {
				required: "Informe o celular do participante.",
				maxlength: "Informe o celular com até 10 caracteres.",
				number: "Informe o celular apenas com números"
			},
			'piloto.dscEnderecoCom': {
				maxlength: "Informe um endereço comercial com até 100 caracteres."
			},
			'piloto.dscBairroCom': {
				maxlength: "Informe um bairro comercial com até 100 caracteres."
			},
			'piloto.dscCidadeCom': {
				maxlength: "Informe uma cidade comercial com até 100 caracteres."
			},
			'piloto.dscCepCom': {
				maxlength: "Informe o cep comercial com até 10 caracteres.",
				number: "Informe o CEP apenas com números"
			},
			'piloto.codDddCom': {
				minlength: "Informe o ddd do telefone comercial com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do telefone comercial com até 3 caracteres.",
				number: "Informe o DDD apenas com números"
			},
			'piloto.dscFoneCom': {
				maxlength: "Informe o telefone residêncial com até 10 caracteres.",
				number: "Informe o telefone apenas com números"
			},
			'piloto.dscUniversidade': {
				maxlength: "Informe a universidade do inscrito com até 50 caracteres."
			},
			'piloto.dscCurso': {
				maxlength: "Informe o curso do inscrito com até 50 caracteres."
			}
		}
	});
	
	//válida step 03
	J('#inscricao_step_03').validate({
		rules: {
			'navegador.dscNome': {
				required: true,
				maxlength: 100
			},
			'navegador.dscPseudonimo': {
				required: true,
				maxlength: 20
			},
			'navegador.dscTipoSanguineo':{
				required: function(element) {return J("#tipo_sanguineo").val()==0}
			},
			'navegador.dscFatorRh':{
				required: function(element) {return J("#fator").val()==0}
			},
			'navegador.dscNomePai': {
				maxlength: 100
			},
			'navegador.dscNomeMae': {
				maxlength: 100
			},
			'navegador.dscLocalNascimento': {
				maxlength: 60
			},
			'navegador.dscNacionalidade': {
				required: true,
				maxlength: 30
			},
			'setDtNasc':{
				dateBR: true
			},
			'navegador.dscEstadoCivil': {
				required: function(element) {return J("#estado_civil").val()==0}
			},
			'navegador.dscCpf': {
				required: true,
				verificaCPF: true
			},
			'navegador.dscIdentidade': {
				number: true
			},
			'navegador.dscCnh': {
				maxlength: 15,
				number: true
			},
			'navegador.dscCba': {
				maxlength: 200
			},
			'navegador.dscEmail': {
				required: true,
				maxlength: 100,
				email: true
			},
			'navegador.dscEnderecoRes': {
				required: true,
				maxlength: 100
			},
			'navegador.dscBairroRes': {
				required: true,
				maxlength: 100
			},
			'navegador.dscCidadeRes': {
				required: true,
				maxlength: 100
			},
			'navegador.dscEstadoRes': {
				required: function(element) {return J("#uf_res").val()==""}
			},
			'navegador.dscCepRes': {
				required: true,
				maxlength: 10,
				number: true
			},
			'navegador.codDddRes': {
				required: true,
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'navegador.dscTelefoneRes': {
				required: true,
				maxlength: 10,
				number: true
			},
			'navegador.codDddCel': {
				required: true,
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'navegador.dscTelefoneCel': {
				required: true,
				maxlength: 10,
				number: true
			},
			'navegador.dscEnderecoCom': {
				maxlength: 100
			},
			'navegador.dscBairroCom': {
				maxlength: 100
			},
			'navegador.dscCidadeCom': {
				maxlength: 100
			},
			'navegador.dscCepCom': {
				maxlength: 10, 
				number: true
			},
			'navegador.codDddCom': {
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'navegador.dscFoneCom': {
				maxlength: 10,
				number: true
			},
			'navegador.dscUniversidade': {
				maxlength: 50
			},
			'navegador.dscCurso': {
				maxlength: 50
			}
		},
		messages: {
			'navegador.dscNome': {
				required: "Informe o nome do participante.",
				maxlength: "O nome do participante deve ter até 100 caracteres."
			},
			'navegador.dscPseudonimo': {
				required: "Informe o apelido do participante.",
				maxlength: "Informe um apelido com até 20 caracteres."
			},
			'navegador.dscTipoSanguineo':{
				required: "Informe seu tipo sanguineo"
			},
			'navegador.dscFatorRh':{
				required: "Informe seu fator rh"
			},
			'navegador.dscNomePai': {
				maxlength: "O nome do pai do participante, deve ter até 100 caracteres."
			},
			'navegador.dscNomeMae': {
				maxlength: "O nome da mãe do participante, deve ter até 100 caracteres."
			},
			'navegador.dscLocalNascimento': {
				maxlength: "O local de nascimento do participante, deve ter até 60 caracteres."
			},
			'navegador.dscNacionalidade': {
				required: "Informe a nacionalidade do participante",
				maxlength: "A nacionalidade do participante, deve ter até 60 caracteres."
			},
			'navegador.dscEstadoCivil': {
				maxlength: "A nacionalidade do participante, deve ter até 60 caracteres."
			},
			'navegador.dscCpf': {
				required: "Informe o CPF do participante.",
				verificaCPF: "Informe um CPF válido."
			},
			'navegador.dscIdentidade': {
				number: "Informe o RG apenas com números."
			},
			'navegador.dscCnh': {
				maxlength: "Informe um CNH válido.",
				number: "Informe o CNH apenas com números."
			},
			'navegador.dscCba': {
				maxlength: "Informe um texto com até 200 caracteres."
			},
			'navegador.dscEmail': {
				maxlength: "Informe um e-mail com até 100 caracteres.",
				email: "Informe um e-mail válido.",
				required: "Informe o e-mail do participante"
			},
			'navegador.dscEnderecoRes': {
				required: "Informe o endereço residêncial do participante.",
				maxlength: "Informe um endereço residêncial com até 100 caracteres."
			},
			'navegador.dscBairroRes': {
				required: "Informe o bairro residêncial do participante.",
				maxlength: "Informe um bairro residêncial com até 100 caracteres."
			},
			'navegador.dscCidadeRes': {
				required: "Informe a cidade residêncial do participante.",
				maxlength: "Informe uma cidade residêncial com até 100 caracteres."
			},
			'navegador.dscEstadoRes': {
				required: "Informe o estado residêncial do participante."
			},
			'navegador.dscCepRes': {
				required: "Informe o cep residêncial do participante.",
				maxlength: "Informe o cep residêncial com até 10 caracteres.",
				number: "Informe o CEP apenas com números."
			},
			'navegador.codDddRes': {
				required: "Informe o ddd do telefone residêncial do participante.",
				minlength: "Informe o ddd do telefone residêncial com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do telefone residêncial com até 3 caracteres.",
				number: "Informe o DDD apenas com números."
			},
			'navegador.dscTelefoneRes': {
				required: "Informe o telefone residêncial do participante.",
				maxlength: "Informe o telefone residêncial com até 10 caracteres.",
				number: "Informe o telefone apenas com números."
			},
			'navegador.codDddCel': {
				required: "Informe o ddd do celular do participante.",
				minlength: "Informe o ddd do celular com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do celular com até 3 caracteres.",
				number: "Informe o DDD apenas com números."
			},
			'navegador.codTelefoneCel': {
				required: "Informe o celular do participante.",
				maxlength: "Informe o celular com até 10 caracteres.",
				number: "Informe o celular apenas com números."
			},
			'navegador.dscEnderecoCom': {
				maxlength: "Informe um endereço comercial com até 100 caracteres."
			},
			'navegador.dscBairroCom': {
				maxlength: "Informe um bairro comercial com até 100 caracteres."
			},
			'navegador.dscCidadeCom': {
				maxlength: "Informe uma cidade comercial com até 100 caracteres."
			},
			'navegador.dscCepCom': {
				maxlength: "Informe o cep comercial com até 10 caracteres.",
				number: "Informe o CEP apenas com números."
			},
			'navegador.codDddCom': {
				minlength: "Informe o ddd do telefone comercial com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do telefone comercial com até 3 caracteres.",
				number: "Informe o DDD apenas com números."
			},
			'navegador.dscFoneCom': {
				maxlength: "Informe o telefone residêncial com até 10 caracteres.",
				number: "Informe o telefone apenas com números."
			},
			'navegador.dscUniversidade': {
				maxlength: "Informe a universidade do inscrito com até 50 caracteres."
			},
			'navegador.dscCurso': {
				maxlength: "Informe o curso do inscrito com até 50 caracteres."
			}
		}
	});
	
	//válida step 04
	J('#zequinha_sim').click(function(){
		if(J(this).is(':checked')){
			//J('form:eq(0) input').attr('disabled','false');
			J('form:eq(0)').attr('id','inscricao_step_02');
			J('form:eq(0) fieldset:eq(1) input').removeAttr('disabled');
			J('form:eq(0) fieldset:eq(1) select').removeAttr('disabled')
		}
	});
	
	J('#zequinha_nao').click(function(){
		if(J(this).is(':checked')){
			//J('form:eq(0) input').not(J('#escolhe_zequinha input')).attr('disabled','disabled');
			J('form:eq(0)').attr('id','inscricao_desabilitada');
			J('form:eq(0) fieldset:eq(1) input').attr('disabled','disabled');
			J('form:eq(0) fieldset:eq(1) select').attr('disabled','disabled')
		}
	});
	
	J('#inscricao_step_04').validate({
		rules: {
			'zequinha.dscNome': {
				required: true,
				maxlength: 100
			},
			'zequinha.dscPseudonimo': {
				required: true,
				maxlength: 20
			},
			'zequinha.dscTipoSanguineo':{
				required: function(element) {return J("#tipo_sanguineo").val()==0}
			},
			'zequinha.dscFatorRh':{
				required: function(element) {return J("#fator").val()==0}
			},
			'zequinha.dscNomePai': {
				maxlength: 100
			},
			'zequinha.dscNomeMae': {
				maxlength: 100
			},
			'zequinha.dscLocalNascimento': {
				maxlength: 60
			},
			'zequinha.dscNacionalidade': {
				required: true,
				maxlength: 30
			},
			'setDtNasc':{
				dateBR: true
			},
			'zequinha.dscEstadoCivil': {
				required: function(element) {return J("#estado_civil").val()==0}
			},
			'zequinha.dscCpf': {
				required: true,
				verificaCPF: true
			},
			'zequinha.dscIdentidade': {
				number: true
			},
			'zequinha.dscCnh': {
				
				maxlength: 15,
				number: true
			},
			'zequinha.dscCba': {
				maxlength: 200
			},
			'zequinha.dscEmail': {
				maxlength: 100,
				email: true,
				required: true
			},
			'zequinha.dscEnderecoRes': {
				maxlength: 100
			},
			'zequinha.dscBairroRes': {
				maxlength: 100
			},
			'zequinha.dscCidadeRes': {
				maxlength: 100
			},
			'zequinha.dscCepRes': {
				maxlength: 10,
				number: true
			},
			'zequinha.codDddRes': {
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'zequinha.dscTelefoneRes': {
				maxlength: 10,
				number: true
			},
			'zequinha.codDddCel': {
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'zequinha.codTelefoneCel': {
				maxlength: 10,
				number: true
			},
			'zequinha.dscEnderecoCom': {
				maxlength: 100
			},
			'zequinha.dscBairroCom': {
				maxlength: 100
			},
			'zequinha.dscCidadeCom': {
				maxlength: 100
			},
			'zequinha.dscCepCom': {
				maxlength: 10,
				number: true
			},
			'zequinha.codDddCom': {
				minlength: 2,
				maxlength: 3,
				number: true
			},
			'zequinha.dscFoneCom': {
				maxlength: 10,
				number: true
			},
			'zequinha.dscUniversidade': {
				maxlength: 50
			},
			'zequinha.dscCurso': {
				maxlength: 50
			}
		},
		messages: {
			'zequinha.dscNome': {
				required: "Informe o nome do participante.",
				maxlength: "O nome do participante deve ter até 100 caracteres."
			},
			'zequinha.dscPseudonimo': {
				required: "Informe o apelido do participante.",
				maxlength: "Informe um apelido com até 20 caracteres."
			},
			'zequinha.dscTipoSanguineo':{
				required: "Informe seu tipo sanguineo"
			},
			'zequinha.dscFatorRh':{
				required: "Informe seu fator rh"
			},
			'zequinha.dscNomePai': {
				maxlength: "O nome do pai do participante, deve ter até 100 caracteres."
			},
			'zequinha.dscNomeMae': {
				maxlength: "O nome da mãe do participante, deve ter até 100 caracteres."
			},
			'zequinha.dscLocalNascimento': {
				maxlength: "O local de nascimento do participante, deve ter até 60 caracteres."
			},
			'zequinha.dscNacionalidade': {
				required: "Informe a nacionalidade do participante",
				maxlength: "A nacionalidade do participante, deve ter até 60 caracteres."
			},
			'zequinha.dscEstadoCivil': {
				maxlength: "A nacionalidade do participante, deve ter até 60 caracteres."
			},
			'zequinha.dscCpf': {
				required: "Informe o CPF do participante.",
				verificaCPF: "Informe um CPF válido."
			},
			'zequinha.dscIdentidade': {
				number: "Indique o RG apenas com números"
			},
			'zequinha.dscCnh': {
				
				maxlength: "Informe um CNH válido.",
				number: "Informe o CNH apenas com números."
			},
			'zequinha.dscCba': {
				maxlength: "Informe um texto com até 200 caracteres."
			},
			'zequinha.dscEmail': {
				maxlength: "Informe um e-mail com até 100 caracteres.",
				email: "Informe um e-mail válido.",
				required: "Informe o e-mail do participante"
			},
			'zequinha.dscEnderecoRes': {
				maxlength: "Informe um endereço residêncial com até 100 caracteres."
			},
			'zequinha.dscBairroRes': {
				maxlength: "Informe um bairro residêncial com até 100 caracteres."
			},
			'zequinha.dscCidadeRes': {
				maxlength: "Informe uma cidade residêncial com até 100 caracteres."
			},
			'zequinha.dscCepRes': {
				maxlength: "Informe o cep residêncial com até 10 caracteres.",
				number: "Informe o CEP apenas com números."
			},
			'zequinha.codDddRes': {
				minlength: "Informe o ddd do telefone residêncial com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do telefone residêncial com até 3 caracteres.",
				number: "Informe o DDD apenas com números."
			},
			'zequinha.dscTelefoneRes': {
				maxlength: "Informe o telefone residêncial com até 10 caracteres.",
				number: "Informe o telefone apenas com números."
			},
			'zequinha.codDddCel': {
				minlength: "Informe o ddd do celular com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do celular com até 3 caracteres.",
				number: "Informe o DDD apenas com números."
			},
			'zequinha.codTelefoneCel': {
				maxlength: "Informe o celular com até 10 caracteres.",
				number: "Informe o celular apenas com números."
			},
			'zequinha.dscEnderecoCom': {
				maxlength: "Informe um endereço comercial com até 100 caracteres."
			},
			'zequinha.dscBairroCom': {
				maxlength: "Informe um bairro comercial com até 100 caracteres."
			},
			'zequinha.dscCidadeCom': {
				maxlength: "Informe uma cidade comercial com até 100 caracteres."
			},
			'zequinha.dscCepCom': {
				maxlength: "Informe o cep comercial com até 10 caracteres.",
				number: "Informe o CEP apenas com números."
			},
			'zequinha.codDddCom': {
				minlength: "Informe o ddd do telefone comercial com pelo menos 2 caracteres.",
				maxlength: "Informe o ddd do telefone comercial com até 3 caracteres.",
				number: "Informe o DDD apenas com números."
			},
			'zequinha.dscFoneCom': {
				maxlength: "Informe o telefone residêncial com até 10 caracteres.",
				number: "Informe o telefone apenas com números."
			},
			'zequinha.dscUniversidade': {
				maxlength: "Informe a universidade do inscrito com até 50 caracteres."
			},
			'zequinha.dscCurso': {
				maxlength: "Informe o curso do inscrito com até 50 caracteres."
			}
		}
	});
	
	//válida step 05
	J('#inscricao_step_05').validate({
		rules: {
			'equipe.dscObservacao': {
				maxlength: 100
			},
			'dscLogin': {
				maxlength: 20,
				minlength: 5,
				required: true
			},
			'dscSenha': {
				maxlength: 10,
				minlength: 4,
				senha: true,
				required: true
			},
			'dscSenhaConfirma': {
				equalTo: '#nova_senha'
			},
			'indTermo': {
				required: true
			}
		},
		messages: {
			'equipe.dscObservacao': {
				maxlength: "Descreva como você ficou sabendo do Fiat Rallt utilizando até 100 caracteres."
			},
			'dscLogin': {
				maxlength: "Crie um login com até 10 caracteres.",
				minlength: "Crie um login com pelo menos 4 caracteres.",
				required: "Crie um login."
			},
			'dscSenha': {
				maxlength: "Crie uma senha com até 10 caracteres.",
				minlength: "Crie uma senha com pelo menos 4 caracteres.",
				senha: "Não utilize repetições de algarismos ou sequências, como 0000000 e 123456",
				required: "Crie uma senha."
			},
			'dscSenhaConfirma': {
				equalTo: "Repita sua senha corretamente."
			},
			'indTermo': {
				required: "Clique na declaração de ciência dos termos e regulamentos"
			}
		}
	});
	
	//valida fale conosco
	J('#fale_conosco').validate({
		rules: {
			'dscNome': {
				required: true,
				maxlength: 100
			},
			'dscEmail': {
				required: true,
				email: true,
				maxlength: 100
			},
			'dscCidade': {
				required: true,
				maxlength: 100
			},
			'dscEstado': {
				required: true,
				maxlength: 100
			},
			'dscMensagem': {
				required: true,
				maxlength: 1000
			}
		},
		messages: {
			'dscNome': {
				required: "Informe seu nome.",
				maxlength: "Informe seu nome com até 100 caracteres."
			},
			'dscEmail': {
				required: "Informe seu e-mail.",
				email: "Informe um e-mail válido.",
				maxlength: "Informe seu email com até 100 caracteres."
			},
			'dscCidade': {
				required: "Informe sua cidade.",
				maxlength: "Informe sua cidade com até 100 caracteres."
			},
			'dscEstado': {
				required: "Informe seu estado.",
				maxlength: "Informe seu estado com até 100 caracteres."
			},
			'dscMensagem': {
				required: "Informe sua mensagem.",
				maxlength: "Escreva sua mensagem com até 1000 caracteres."
			}
		}
	});
	
	//valida login
	J('#login_sistema').validate({
		rules: {
			'dscLogin': {
				required: true,
				minlength: 5,
				maxlength: 20
			},
			'dscSenha': {
				required: true,
				minlength: 4,
				maxlength: 10
			}
		},
		messages: {
			'dscLogin': {
				required: "Informe seu login.",
				maxlength: "Login deve ter no máximo 20 digítos.",
				minlength: "Login deve ter no mínimo 5 digítos."
			},
			'dscSenha': {
				required: "Informe sua senha.",
				maxlength: "Senha deve ter no máximo 10 digítos.",
				minlength: "Senha deve ter no mínimo 4 digítos."
			}
		}
	});
	
	//valida cadastro para receber novidades
	J('#receba_novidades').validate({
		rules: {
			'dscNome': {
				required: true,
				maxlength: 100
			},
			'dscEmail': {
				required: true,
				maxlength: 100,
				email: true
			}
		},
		messages: {
			'dscNome': {
				required: "Informe seu nome.",
				maxlength: "Informe um nome com até 100 caracteres."
			},
			'dscEmail': {
				required: "Informe seu e-mail.",
				maxlength: "Informe um e-mail com até 100 caracteres.",
				email: "Informe um e-mail válido."
			}
		}
	});
	
	//valida publicação de um novo post
	J('#form_publicar_post').validate({
		rules: {
			'dscTitulo': {
				required: true,
				maxlength: 100
			},
			'dscMensagem': {
				required: true,
				maxlength: 3000
			}
		},
		messages: {
			'dscTitulo': {
				required: "Informe o título do post.",
				maxlength: "Digite o assunto com até 100 caracteres."
			},
			'dscMensagem': {
				required: "Informe o asunto do post.",
				maxlength: "Digite o texto com até 3000 caracteres."
			}
		}
	});
	
	//valida criação de comentário de algum post
	J('#comentario_blog').validate({
		rules: {
			'dscNome': {
				required: true,
				maxlength: 100
			},
			'dscEmail': {
				required: true,
				maxlength: 100,
				email: true
			},
			'dscMensagem': {
				required: true,
				maxlength: 1000
			}
		},
		messages: {
			'dscNome': {
				required: "Informe seu nome.",
				maxlength: "Digite um nome com até 100 caracteres."
			},
			'dscEmail': {
				maxlength: "Informe um e-mail com até 100 caracteres.",
				email: "Informe um e-mail válido.",
				required: "Informa o e-mail do participante"
			},
			'dscMensagem': {
				required: "Informe o comentário do post.",
				maxlength: "Digite o texto com até 1000 caracteres."
			}
		}
	});

};

/* modal*/
function modal(obj, elem){

	J('body').append("<img src='../img/load.gif' alt='Carregando...' width='16' height='16' id='load' /><div id='bg_modal'></div><div id='container_modal'></div>")
	J('#bg_modal').css('opacity', 0).width(J('html')[0].scrollWidth).height(J('html')[0].scrollHeight);
	J('#container_modal').css('opacity', 0);

	J('#bg_modal').fadeTo('fast', 0.8, function(){
		J('#container_modal').load(obj, function(){
			J('#load').remove();
			J('select').hide();

			if(J('.zoom_galeria').size()==1){
				GB_getPageScrollTop = function(){
					var yScrolltop;
					if (J('.zoom_galeria').pageYOffset){
						yScrolltop = J('.zoom_galeria').pageYOffset;
					}else if(document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft){
						yScrolltop = document.documentElement.scrollTop;
					}else if(document.body){
						yScrolltop = document.body.scrollTop;
					};
					return yScrolltop;
				};

				J('.zoom_galeria').css({
					'margin-top': parseInt(GB_getPageScrollTop() - (J('.zoom_galeria').height()/2)),
					'margin-left': -parseInt(J('.zoom_galeria').width()/2)
				});
				
				J('#container_modal').fadeTo('fast', 1);
				close_modal();
				
				if(elem!=null && elem.parent().parent().find('li').size()>1){
					thumb_nav  = '<ul class="nav_box" id="nav_modal">';
					thumb_nav += '<li class="bt_anterior"><a href="#" title="Anterior" rel="prev_image">&lt; Anterior</a></li>';
					thumb_nav += '<li class="bt_proxima"><a href="#" title="Próximo" rel="next_image">&gt; Próximo</a></li>';
					thumb_nav += '</ul>';

					J('.zoom_galeria div:eq(1)').append(thumb_nav);

					swap_image_modal(elem);
				};
				close_modal();
			}else{
				J('#container_modal').fadeTo('fast', 1);
				close_modal();
			};
			return false;
		});
	});
};

function content_modal(obj){
	J('#container_modal').fadeTo('fast', 0, function(){
		J(this).load(obj, function() {
			J(this).fadeTo('fast', 1);
			re_open_modal();
			close_modal();
			return false;
		});
	});
};

function swap_image_modal(elem){
	var elem_obj      = elem.parent().parent(),
		size_elem_obj = elem_obj.find('li').size()-1,
		prev          = J('a[rel="prev_image"]'),
		next          = J('a[rel="next_image"]'),
		x             = 0;

	if(size_elem_obj<=1) return false;

	prev.css('opacity',0.4);

	next.click(function(){
		if(x!=size_elem_obj){
			x++;
			prev.css('opacity')==0.4 ? prev.css('opacity',1) : '';
			var href_thumb = elem_obj.find('li:eq('+x+') a').attr('href').split('=')[1];
			J('#img_zoom').attr('src', '/upload/'+href_thumb);
			if(x==size_elem_obj){ J(this).css('opacity')!=0.4 ? J(this).css('opacity',0.4) : ''; };
			return false;
		};
		return false;
	});

	prev.click(function(){
		if(x!=0){
			x--;
			next.css('opacity')==0.4 ? next.css('opacity',1) : '' ;
			var href_thumb = elem_obj.find('li:eq('+x+') a').attr('href').split('=')[1];
			J('#img_zoom').attr('src', '/upload/'+href_thumb);
			if(x==0){ J(this).css('opacity')!=0.4 ? J(this).css('opacity',0.4) : ''; };
			return false;
		};
		return false;
	});
};

function open_modal(){
	J("a[@rel='open_modal']").click(function(){
		modal(J(this).attr('href'),null);
		return false;
	});
	J("a[@rel='open_modal_galeria']").click(function(){
		var elem = J(this), obj = elem.attr('href');
		modal(obj,elem);
		return false;
	});
};

function re_open_modal(){
	J("a[@rel='re_open_modal']").click(function(){
		content_modal(J(this).attr('href'));
		return false;
	});
}

function close_modal(){
	J("a[@rel='close_modal']").click(function(){
		J('#container_modal').fadeTo('fast', 0, function() {
			J(this).remove();
		});
		J('#bg_modal').fadeTo('fast', 0, function() {
			J(this).remove();
			J('select').show();
		});
		return false;
	});
};

/*sub menu*/
function sub_menu(){
	J('#nav li a').not(J('#nav li ul li a')).bind('mouseover', function(){
		if(J(this).parent().find('ul').size()!=0){
			J('#content').animate({top: '20px'}, 300);
			J(this).parent().find('ul').slideDown(300);
		}else{
			J('#content').animate({top: 0}, 150);
			J('#nav li ul').slideUp(150);
		};
	});
};

/*lista de inscritos*/
function lista_inscritos(){
	J('#inscritos').css('opacity',0);
	J('#tipo_inscritos li:eq(0) a').addClass('selected');
	
	if(J('#inscritos').size()!=0){
		J('#inscritos').load(J('#tipo_inscritos li:eq(0) a').attr('href'), function(){
			J('#inscritos').fadeTo(1, 1);
		});
	};

	J('#tipo_inscritos').each(function(i){
		J(this).find('a').click(function(){
			J('#tipo_inscritos li a').removeClass('selected');
			J(this).addClass('selected');
			J('#inscritos').fadeTo(1, 0);
			J('#inscritos').load(J(this).attr('href'), function(){
				J('#inscritos').fadeTo(500, 1);
			});
			return false;
		})
	});
};

/*links target=_blank*/
function rel_external(){
	J("a[@rel='external']").attr('target','_blank');
};

/*combo poratis*/
function combo_portais(){
	J('#portais').change(function(){
		window.open(J(this).val(),'_blank');
	})
};

/* tabelas */
function tables(){
	J('table tr:odd').addClass('odd')
};

/* bg header */
function random_header(n){
	var ran = Math.floor(Math.random()*n);
	J('#header').css('background-image', "url(/img/bg_header_"+ran+".jpg)")
}


/*classificação de uma etapa já encerrada*/
function classificacao_encerrada(){
	J('#classificacao_encerrada dd:eq(0) ol').show();
	J('#classificacao_encerrada dt').each(function(i){
		J(this).find('a').click(function(){
			J(this).parent().parent().find('dd ol').hide();
			J(this).parent().parent().find('dd:eq('+i+') ol').show();
			return false;
		});
	});
};

/* mostra login */
function show_login(){
	J('#publique_um_blog').click(function(){
		J(this).parent().parent().hide();
		J('#login_sistema fieldset').show();
		J("#login_sistema input[@type='submit']").show();
		return false;
	});
}

/* view post */
function view_post(){
	J("a[@rel='view_post']").toggle(function(){
		J(this).parent().parent().next('tr').show();
		return false;
	},function(){
		J(this).parent().parent().next('<tr>').hide();
		return false;
	});
}

/* editar post após uma edição */
function edita_post(){
	J("a[@rel='editar_post']").click(function(){
		if(J('#form_publicar_post').attr('class')=='hide'){
			J('#form_publicar_post').show();
			J('#mensagem_sucesso').hide();
		}
	});	
}

// init
J(document).ready(function() {
	window.setTimeout(function() {
		max_length();
		validacoes();
		open_modal();
		close_modal();
		sub_menu();
		rel_external();
		combo_portais();
		lista_inscritos();
		tables();
		random_header(7);
		classificacao_encerrada();
		show_login();
		view_post();
		edita_post();
		applyDtNasc()
	},100);
});