if (typeof vagas == 'undefined') {
	var vagas = {};
}

vagas.candidato = {
	validador: {},
	
	preparaValidacao: function(form) {
		if (form == 'historico') {
			vagas.candidato.historico.preparaValidacao();
			vagas.candidato.participacao.preparaValidacao();
		} else if (form == 'conhecimentos') {
			vagas.candidato.curso.preparaValidacao();
		} else {
			vagas.candidato.validador = $('#FormCandidato').jForm({
				CandidatoNome:			$('#CandidatoNome').jField({ name: 'Nome Completo', empty: 'no', minLength: 6 }),
				CandidatoCpf:			$('#CandidatoCpf').jField({ name: 'CPF', type: 'cpf', empty: 'no' }),
				CandidatoNascimento:	$('#CandidatoNascimento').jField({ name: 'Data de Nascimento', type: 'date', empty: 'no' }),
				CandidatoEmail:			$('#CandidatoEmail').jField({ name: 'E-mail', type: 'email', empty: 'no' }),
				CandidatoTelefone:		$('#CandidatoTelefone').jField({ name: 'Telefone', type: 'tel', empty: 'no' }),
				CandidatoCelular:		$('#CandidatoCelular').jField({ name: 'Celular', type: 'tel', empty: 'yes' }),
				CandidatoCep:			$('#CandidatoCep').jField({ name: 'CEP', empty: 'no', minLength: 9 })
			}, 'msgErro', false);
			
			$('#CandidatoCep').unmask();
			$('#CandidatoCep').mask('99999-999');
			
			$('#FormCandidato').bind('submit', vagas.candidato.salva);
			vagas.candidato.objetivo.preparaValidacao();
		}
	},
	
	login: function() {
		$('#CandidatoLogin').jForm({
			LoginCpf: $('#LoginCpf').jField({ name: 'CPF', type: 'cpf', empty: 'no' }),
			LoginNascimento: $('#LoginNascimento').jField({ name: 'Data de Nascimento', type: 'date', empty: 'no' }) 
		});
	},
	
	salva: function() {
		return $.jForm.checkFields(vagas.candidato.validador);
	}
};

vagas.candidato.objetivo = {
	validador: {},
	
	preparaValidacao: function() {
		vagas.candidato.objetivo.validador = $('#FormCandidato').jForm({
			CandidatoObjetivoAreaId:		$('#CandidatoObjetivoAreaId').jField({ name: 'Área', empty: 'no', type: 'select' }),
			CandidatoObjetivoContratacao:	$('#CandidatoObjetivoContratacao').jField({ name: 'Tipo de Contratação', empty: 'no', type: 'select' }),
			CandidatoObjetivoPretensaoId:	$('#CandidatoObjetivoPretensaoId').jField({ name: 'Pretensão', empty: 'no', type: 'select' }),
			CandidatoObjetivoExperienciaId:	$('#CandidatoObjetivoExperienciaId').jField({ name: 'Experiência', empty: 'no', type: 'select' })
		}, 'msgErro', false);
	},
	
	adiciona: function() {
		if (!$.jForm.checkFields(vagas.candidato.objetivo.validador)) {
			return false;
		}
		
		var postData = {
			'candidato_id': 	$('#CandidatoId').val(),
			'area_id':			$('#CandidatoObjetivoAreaId :selected').val(),
			'contratacao':		$('#CandidatoObjetivoContratacao :selected').val(),
			'pretensao_id':		$('#CandidatoObjetivoPretensaoId :selected').val(),
			'experiencia_id':	$('#CandidatoObjetivoExperienciaId :selected').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_objetivos/adiciona', postData, function(data) {
			$('#CandidatoObjetivo').html(data);
			
			vagas.candidato.objetivo.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	edita: function(id) {
		if (!$.jForm.checkFields(vagas.candidato.objetivo.validador)) {
			return false;
		}
		
		var postData = {
			'id':				id,
			'candidato_id': 	$('#CandidatoId').val(),
			'area_id':			$('#CandidatoObjetivoAreaId :selected').val(),
			'contratacao':		$('#CandidatoObjetivoContratacao :selected').val(),
			'pretensao_id':		$('#CandidatoObjetivoPretensaoId :selected').val(),
			'experiencia_id':	$('#CandidatoObjetivoExperienciaId :selected').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_objetivos/edita/' + id, postData, function(data) {
			$('#CandidatoObjetivo').html(data);
			
			vagas.candidato.objetivo.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	exibe: function(id) {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_objetivos/edita/' + id, function(data) {
			$('#CandidatoObjetivo').html(data);
			
			vagas.candidato.objetivo.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	lista: function() {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_objetivos/lista/' + $('#CandidatoId').val(), function(data) {
			$('#CandidatoObjetivo').html(data);
			
			vagas.candidato.objetivo.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	remove: function(id) {
		if (!confirm('Deseja remover este objetivo?')) {
			return false;
		}
		
		var postData = {
			'id': id,
			'candidato_id': $('#CandidatoId').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_objetivos/delete', postData, function(data) {
			$('#CandidatoObjetivo').html(data);
			
			vagas.candidato.objetivo.preparaValidacao();
			idk.loading.toggle();
		});
	}
};

vagas.candidato.conhecimento = {
	validador: {},
	
	preparaValidacao: function() {
		vagas.candidato.conhecimento.validador = $('#FormCandidato').jForm({
			CandidatoOutroConhecimentoNome:		$('#CandidatoOutroConhecimentoNome').jField({ name: 'Conhecimento', empty: 'no' }),
			CandidatoOutroConhecimentoNivel:	$('#CandidatoOutroConhecimentoNivel').jField({ name: 'Nível', empty: 'no', type: 'select' })
		}, 'msgErro', false);
	},
	
	adiciona: function() {
		if (!$.jForm.checkFields(vagas.candidato.conhecimento.validador)) {
			return false;
		}
		
		var postData = {
			'candidato_id': 	$('#CandidatoId').val(),
			'nome':				$('#CandidatoOutroConhecimentoNome').val(),
			'nivel':			$('#CandidatoOutroConhecimentoNivel :selected').val(),
			'experiencia_id':	$('#CandidatoOutroConhecimentoExperienciaId :selected').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_conhecimentos/adiciona', postData, function(data) {
			$('#CandidatoOutroConhecimento').html(data);
			
			vagas.candidato.conhecimento.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	remove: function(id) {
		if (!confirm('Deseja remover este conhecimento?')) {
			return false;
		}
		
		var postData = {
			'id': id,
			'candidato_id': $('#CandidatoId').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_conhecimentos/delete', postData, function(data) {
			$('#CandidatoOutroConhecimento').html(data);
			
			vagas.candidato.conhecimento.preparaValidacao();
			idk.loading.toggle();
		});
	}
};

vagas.candidato.curso = {
	validador: {},
	
	preparaValidacao: function() {
		vagas.candidato.curso.validador = $('#FormCandidato').jForm({
			CandidatoCursoTipo:			$('#CandidatoCursoTipo').jField({ name: 'Tipo', empty: 'no', type: 'select' }),
			CandidatoCursoSituacao:		$('#CandidatoCursoSituacao').jField({ name: 'Situação', empty: 'no', type: 'select' }),
			CandidatoCursoNome:			$('#CandidatoCursoNome').jField({ name: 'Curso', empty: 'no' }),
			CandidatoCursoInstituicao:	$('#CandidatoCursoInstituicao').jField({ name: 'Instituição / Escola', empty: 'no' })
		}, 'msgErro', false);
	},
	
	adiciona: function() {
		if (!$.jForm.checkFields(vagas.candidato.curso.validador)) {
			return false;
		}
		
		var postData = {
			'candidato_id': $('#CandidatoId').val(),
			'tipo':			$('#CandidatoCursoTipo :selected').val(),
			'situacao':		$('#CandidatoCursoSituacao :selected').val(),
			'nome':			$('#CandidatoCursoNome').val(),
			'instituicao':	$('#CandidatoCursoInstituicao').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_cursos/adiciona', postData, function(data) {
			$('#CandidatoCurso').html(data);
			
			vagas.candidato.curso.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	edita: function(id) {
		if (!$.jForm.checkFields(vagas.candidato.curso.validador)) {
			return false;
		}
		
		var postData = {
			'id':			id,
			'candidato_id': $('#CandidatoId').val(),
			'tipo':			$('#CandidatoCursoTipo :selected').val(),
			'situacao':		$('#CandidatoCursoSituacao :selected').val(),
			'nome':			$('#CandidatoCursoNome').val(),
			'instituicao':	$('#CandidatoCursoInstituicao').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_cursos/edita/' + id, postData, function(data) {
			$('#CandidatoCurso').html(data);
			
			vagas.candidato.curso.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	exibe: function(id) {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_cursos/edita/' + id, function(data) {
			$('#CandidatoCurso').html(data);
			
			vagas.candidato.curso.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	lista: function() {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_cursos/lista/' + $('#CandidatoId').val(), function(data) {
			$('#CandidatoCurso').html(data);
			
			vagas.candidato.curso.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	remove: function(id) {
		if (!confirm('Deseja remover este curso?')) {
			return false;
		}
		
		var postData = {
			'id': id,
			'candidato_id': $('#CandidatoId').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_cursos/delete', postData, function(data) {
			$('#CandidatoCurso').html(data);
			
			vagas.candidato.curso.preparaValidacao();
			idk.loading.toggle();
		});
	}
};

vagas.candidato.historico = {
	validador: {},
	
	preparaValidacao: function() {
		vagas.candidato.historico.validador = $('#FormCandidato').jForm({
			CandidatoHistoricoNome:			$('#CandidatoHistoricoNome').jField({ name: 'Empresa', empty: 'no' }),
			CandidatoHistoricoAdmissao:		$('#CandidatoHistoricoAdmissao').jField({ name: 'Data de Admissão', empty: 'no', type: 'date' }),
			CandidatoHistoricoDemissao:		$('#CandidatoHistoricoDemissao').jField({ name: 'Data de Demissão', empty: 'yes', type: 'date' }),
			CandidatoHistoricoCargo:		$('#CandidatoHistoricoCargo').jField({ name: 'Cargo', empty: 'no' }),
			CandidatoHistoricoSalario:		$('#CandidatoHistoricoSalario').jField({ name: 'Salário', empty: 'no', type: 'currency' }),
			CandidatoHistoricoContratacao:	$('#CandidatoHistoricoContratacao').jField({ name: 'Tipo de contratação', empty: 'no' }),
			CandidatoHistoricoDescricao:	$('#CandidatoHistoricoDescricao').jField({ name: 'Atividades desempenhadas', empty: 'no' })
		}, 'msgErro', false);
	},
	
	adiciona: function() {
		if (!$.jForm.checkFields(vagas.candidato.historico.validador)) {
			return false;
		}
		
		var postData = {
			'candidato_id': $('#CandidatoId').val(),
			'nome':			$('#CandidatoHistoricoNome').val(),
			'admissao':		$('#CandidatoHistoricoAdmissao').val(),
			'demissao':		$('#CandidatoHistoricoDemissao').val(),
			'cargo':		$('#CandidatoHistoricoCargo').val(),
			'salario':		$('#CandidatoHistoricoSalario').val(),
			'contratacao':	$('#CandidatoHistoricoContratacao :selected').val(),
			'descricao':	$('#CandidatoHistoricoDescricao').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_historicos/adiciona', postData, function(data) {
			$('#CandidatoHistorico').html(data);
			
			vagas.candidato.historico.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	edita: function(id) {
		if (!$.jForm.checkFields(vagas.candidato.historico.validador)) {
			return false;
		}
		
		var postData = {
			'id':			id,
			'candidato_id': $('#CandidatoId').val(),
			'nome':			$('#CandidatoHistoricoNome').val(),
			'admissao':		$('#CandidatoHistoricoAdmissao').val(),
			'demissao':		$('#CandidatoHistoricoDemissao').val(),
			'cargo':		$('#CandidatoHistoricoCargo').val(),
			'salario':		$('#CandidatoHistoricoSalario').val(),
			'contratacao':	$('#CandidatoHistoricoContratacao :selected').val(),
			'descricao':	$('#CandidatoHistoricoDescricao').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_historicos/edita/' + id, postData, function(data) {
			$('#CandidatoHistorico').html(data);
			
			vagas.candidato.historico.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	exibe: function(id) {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_historicos/edita/' + id, function(data) {
			$('#CandidatoHistorico').html(data);
			
			vagas.candidato.historico.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	lista: function() {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_historicos/lista/' + $('#CandidatoId').val(), function(data) {
			$('#CandidatoHistorico').html(data);
			
			vagas.candidato.historico.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	remove: function(id) {
		if (!confirm('Deseja remover esta atividade?')) {
			return false;
		}
		
		var postData = {
			'id': id,
			'candidato_id': $('#CandidatoId').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_historicos/delete', postData, function(data) {
			$('#CandidatoHistorico').html(data);
			
			vagas.candidato.historico.preparaValidacao();
			idk.loading.toggle();
		});
	}
};

vagas.candidato.participacao = {
	preparaValidacao: function() {
		vagas.candidato.participacao.validador = $('#FormCandidato').jForm({
			CandidatoParticipacaoNome:		$('#CandidatoParticipacaoNome').jField({ name: 'URL', empty: 'no', minLength: 10 }),
			CandidatoParticipacaoDescricao:	$('#CandidatoParticipacaoDescricao').jField({ name: 'Participa��o', empty: 'no', minLength: 20 })
		}, 'msgErro', false);
	},
	
	adiciona: function() {
		if (!$.jForm.checkFields(vagas.candidato.participacao.validador)) {
			return false;
		}
		
		var postData = {
			'candidato_id': $('#CandidatoId').val(),
			'nome':			$('#CandidatoParticipacaoNome').val(),
			'descricao':	$('#CandidatoParticipacaoDescricao').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_participacoes/adiciona', postData, function(data) {
			$('#CandidatoParticipacao').html(data);
			
			vagas.candidato.participacao.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	edita: function(id) {
		if (!$.jForm.checkFields(vagas.candidato.participacao.validador)) {
			return false;
		}
		
		var postData = {
			'id':			id,
			'candidato_id': $('#CandidatoId').val(),
			'nome':			$('#CandidatoParticipacaoNome').val(),
			'descricao':	$('#CandidatoParticipacaoDescricao').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_participacoes/edita/' + id, postData, function(data) {
			$('#CandidatoParticipacao').html(data);
			
			vagas.candidato.participacao.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	exibe: function(id) {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_participacoes/edita/' + id, function(data) {
			$('#CandidatoParticipacao').html(data);
			
			vagas.candidato.participacao.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	lista: function() {
		idk.loading.toggle();
		$.get(baseURL + 'candidato_participacoes/lista/' + $('#CandidatoId').val(), function(data) {
			$('#CandidatoParticipacao').html(data);
			
			vagas.candidato.participacao.preparaValidacao();
			idk.loading.toggle();
		});
	},
	
	remove: function(id) {
		if (!confirm('Deseja remover esta participação?')) {
			return false;
		}
		
		var postData = {
			'id': id,
			'candidato_id': $('#CandidatoId').val()
		};
		
		idk.loading.toggle();
		$.post(baseURL + 'candidato_participacoes/delete', postData, function(data) {
			$('#CandidatoParticipacao').html(data);
			
			vagas.candidato.participacao.preparaValidacao();
			idk.loading.toggle();
		});
	}
};