//+----------------------------------------------------------------------------------------------------+
//| Programador...........: Marcos Roberto Nava                                                        |
//| Data..................: 17/08/2007                                                                 |
//| Nome do programa......: curriculo.js                                                               |
//| Descrição do programa.: Funções JavaScript para os currículos.                                     |
//+----------------------------------------------------------------------------------------------------+

var request = false;
try 
{
	request = new XMLHttpRequest();
} 
catch (trymicrosoft) 
{
	try 
	{
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (othermicrosoft) 
	{
		try 
		{
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch (failed) 
		{
			request = false;
		}
	}
}

if (!request)
{
	alert("Error initializing XMLHttpRequest!");
}

function ajxCarregaCidades(estado, cidade)
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: ajxCarregaCidades                                                      |
	//| Parâmetros................: (COMPONENTE) estado, (COMPONENTE) cidade                               |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 17/08/2007                                                             |
	//| Descrição.................: Busca as cidades de um determinado estado.                             |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	var ajxIdEstado = document.getElementById(estado);
	var ajxIdCidade = document.getElementById(cidade);
	var opcao;
	
	ajxIdCidade.options.length = 0;
	opcao = new Option('Atualizando...', '');
	ajxIdCidade.options[0] = opcao;
	var url;
	
	url = "/curriculo/buscaCidades.asp?id_estado=" + encodeURI(ajxIdEstado.value) + "&cmp_cidade=" + encodeURI(cidade) + "&ts=" + encodeURI(new Date().getMilliseconds());
	request.open("GET", url, true);
	request.onreadystatechange = ajxMostraCidades;
	request.send(null);
}

function ajxMostraCidades()
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: ajxMostraCidades                                                       |
	//| Parâmetros................:                                                                        |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 17/08/2007                                                             |
	//| Descrição.................: Monta o combo de acordo com o seguinte XML retornado:                  |
	//|                             <estado>                                                               |
	//|                                 <cmp_cidade>xxx</cmp_cidade>                                       |
	//|                                 <cidade>                                                           |
	//|                                     <id_cidade>123</id_cidade>                                     |
	//|                                     <nm_cidade>abc</nm_cidade>                                     |
	//|                                 </cidade>                                                          |
	//|                             </estado>                                                              |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	var resposta;
	var elementos;
	var opcao;
	if(request.readyState == 4)
	{
		if(request.status == 200)
		{
			resposta = request.responseXML;
			var ajxIdCidade = document.getElementById(resposta.getElementsByTagName("cmp_cidade")[0].firstChild.nodeValue);
			var elementos = resposta.getElementsByTagName("cidade");
			for (var x=0; x<elementos.length; x++)
			{
				opcao = new Option(elementos[x].getElementsByTagName("nm_cidade")[0].firstChild.nodeValue, elementos[x].getElementsByTagName("id_cidade")[0].firstChild.nodeValue);
				ajxIdCidade.options[x] = opcao;
			}
		}
		else
		{
			alert("Problemas no sistema. Erro = " + request.status)
			document.getElementById("erro").innerHTML = request.responseText;
		}
	}
}

function enableDescricao()
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: enableDescricao                                                        |
	//| Parâmetros................:                                                                        |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 17/08/2007                                                             |
	//| Descrição.................: Habilita o campo para descrição de descrição de deficiências.          |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	document.getElementById("trDeficiencia").style.display = "block";
}

function disableDescricao()
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: disableDescricao                                                       |
	//| Parâmetros................:                                                                        |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 17/08/2007                                                             |
	//| Descrição.................: Desabilita o campo para descrição de descrição de deficiências.        |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	document.getElementById("trDeficiencia").style.display = "none";
}

function mostraPais()
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: mostraPais                                                             |
	//| Parâmetros................:                                                                        |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 17/08/2007                                                             |
	//| Descrição.................: Mostra os dados dos pais quando for estágio.                           |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	if(document.getElementById("id_tipo").selectedIndex == 2)
	{
		document.getElementById("tablePais").style.display = "block";
		document.getElementById("tableEstagio").style.display = "block";
	}
	else
	{
		document.getElementById("tablePais").style.display = "none";
		document.getElementById("tableEstagio").style.display = "none";
	}
}

function ajxCarregaCargos(area, cargo)
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: ajxCarregaCargos                                                       |
	//| Parâmetros................: (COMPONENTE) area, (COMPONENTE) cargo                                  |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 20/08/2007                                                             |
	//| Descrição.................: Busca os cargos de uma determinada área.                               |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	var ajxIdArea = document.getElementById(area);
	var ajxIdCargo = document.getElementById(cargo);
	var opcao;
	
	ajxIdCargo.options.length = 0;
	opcao = new Option('Atualizando...', '');
	ajxIdCargo.options[0] = opcao;
	var url;
	
	url = "/curriculo/buscaCargos.asp?id_area=" + encodeURI(ajxIdArea.value) + "&cmp_cargo=" + encodeURI(cargo) + "&ts=" + encodeURI(new Date().getMilliseconds());
	request.open("GET", url, true);
	request.onreadystatechange = ajxMostraCargos;
	request.send(null);
}

function ajxMostraCargos()
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: ajxMostraCargos                                                        |
	//| Parâmetros................:                                                                        |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 20/08/2007                                                             |
	//| Descrição.................: Monta o combo de acordo com o seguinte XML retornado:                  |
	//|                             <cargos>                                                               |
	//|                                 <cmp_cargo>xxx</cmp_cargo>                                         |
	//|                                 <cargo>                                                            |
	//|                                     <id_cargo>123</id_cargo>                                       |
	//|                                     <nm_cargo>abc</nm_cargo>                                       |
	//|                                 </cargo>                                                           |
	//|                             </cargos>                                                              |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	var resposta;
	var elementos;
	var opcao;
	if(request.readyState == 4)
	{
		if(request.status == 200)
		{
			resposta = request.responseXML;
			var ajxIdCargo = document.getElementById(resposta.getElementsByTagName("cmp_cargo")[0].firstChild.nodeValue);
			var elementos = resposta.getElementsByTagName("cargo");
			for (var x=0; x<elementos.length; x++)
			{
				opcao = new Option(elementos[x].getElementsByTagName("nm_cargo")[0].firstChild.nodeValue, elementos[x].getElementsByTagName("id_cargo")[0].firstChild.nodeValue);
				ajxIdCargo.options[x] = opcao;
			}
		}
		else
		{
			alert("Problemas no sistema. Erro = " + request.status)
			document.getElementById("erro").innerHTML = request.responseText;
		}
	}
}

function consistir(frm)
{
	//+----------------------------------------------------------------------------------------------------+
	//|                                        Descrição da Função                                         |
	//+----------------------------------------------------------------------------------------------------+
	//| Nome......................: consistir                                                              |
	//| Parâmetros................: (FORMULÁRIO) frm                                                       |
	//| Retorno...................:                                                                        |
	//| Programador...............: Marcos Roberto Nava                                                    |
	//| Data......................: 20/08/2007                                                             |
	//| Descrição.................: Faz a consistência do formulário de currículos de acordo com as regras |
	//|                             abaixo:                                                                |
	//|                                                                                                    |
	//|                                Campos obrigatórios:                                                |
	//|                                    - id_tipo                                                       |
	//|                                    - nm_curriculo                                                  |
	//|                                    - nr_cpf                                                        |
	//|                                    - id_estado_civil                                               |
	//|                                    - in_sexo                                                       |
	//|                                    - dt_nascimento                                                 |
	//|                                    - en_curriculo                                                  |
	//|                                    - nr_curriculo                                                  |
	//|                                    - ds_bairro                                                     |
	//|                                    - nr_cep                                                        |
	//|                                    - id_estado                                                     |
	//|                                    - id_cidade                                                     |
	//|                                    - nr_ddd_tel                                                    |
	//|                                    - nr_telefone                                                   |
	//|                                    - in_deficiencia                                                |
	//|                                    - ds_deficiencia                                                |
	//|                                    - ds_objetivo                                                   |
	//|                                    - id_area1                                                      |
	//|                                    - ds_minicurriculo                                              |
	//|                                    - id_grau1                                                      |
	//|                                    - ds_curso1                                                     |
	//|                                    - dt_conclusao1                                                 |
	//|                                    - id_fase1                                                      |
	//|                                    - id_cursando1                                                  |
	//|                                    - id_periodo1                                                   |
	//|                                Campos obrigatórios se for currículo profissional:                  |
	//|                                    - nm_empresa1                                                   |
	//|                                    - dt_entrada1                                                   |
	//|                                    - dt_saida1                                                     |
	//|                                    - id_area_empresa1                                              |
	//|                                    - id_cargo_empresa1                                             |
	//|                                    - id_area2_empresa1                                             |
	//|                                    - id_cargo2_emrpesa1                                            |
	//|                                    - ds_atividades1                                                |
	//|                                Campos obrigatórios se for currículo de estagiário:                 |
	//|                                    - en_pais                                                       |
	//|                                    - nr_pais                                                       |
	//|                                    - ds_bairro_pais                                                |
	//|                                    - id_cidade_pais                                                |
	//|                                    - id_estado_pais                                                |
	//|                                    - nm_pais_pais                                                  |
	//|                                    - nr_ddd_tel_pais                                               |
	//|                                    - nr_telefone_pais                                              |
	//+----------------------------------------------------------------------------------------------------+
	//|                                       Alterações do programa                                       |
	//+----------------------------------------------------------------------------------------------------+
	//| Programador...............:                                                                        |
	//| Data......................:                                                                        |
	//| Detalhamendo da alteração.:                                                                        |
	//+----------------------------------------------------------------------------------------------------+
	
	if(frm.nm_curriculo.value == "")
	{
		alert("O campo Nome é obrigatório");
		frm.nm_curriculo.focus();
		return false;
	}
	if(frm.nr_cpf.value == "")
	{
		alert("O campo CPF é obrigatório");
		frm.nr_cpf.focus();
		return false;
	}
	if(frm.in_sexo.selectedIndex == 0)
	{
		alert("O campo Sexo é obrigatório");
		frm.in_sexo.focus();
		return false;
	}
	if(frm.id_estado_civil.selectedIndex == 0)
	{
		alert("O campo Estado Civil é obrigatório");
		frm.id_estado_civil.focus();
		return false;
	}
	if(frm.dt_nascimento.value == "")
	{
		alert("O campo Data de Nascimento é obrigatório");
		frm.dt_nascimento.focus();
		return false;
	}
	if(frm.en_curriculo.value == "")
	{
		alert("O campo Endereço é obrigatório");
		frm.en_curriculo.focus();
		return false;
	}
	if(frm.nr_curriculo.value == "")
	{
		alert("O campo Número é obrigatório");
		frm.nr_curriculo.focus();
		return false;
	}
	if(frm.ds_bairro.value == "")
	{
		alert("O campo Bairro é obrigatório");
		frm.ds_bairro.focus();
		return false;
	}
	if(frm.nr_cep.value == "")
	{
		alert("O campo CEP é obrigatório");
		frm.nr_cep.focus();
		return false;
	}
	if(frm.id_estado.selectedIndex == 0)
	{
		alert("O campo Estado é obrigatório");
		frm.id_estado.focus();
		return false;
	}
	if(frm.id_cidade.selectedIndex == -1)
	{
		alert("O campo Cidade é obrigatório");
		frm.id_cidade.focus();
		return false;
	}
	if((!frm.in_deficiencia[0].checked) && (!frm.in_deficiencia[1].checked))
	{
		alert("O campo É portador de deficiência é obrigatório");
		frm.in_deficiencia[0].focus();
		return false;
	}
	if(frm.ds_deficiencia.value == "" && frm.in_deficiencia[0].checked)
	{
		alert("O campo Descreva suscintamente é obrigatório");
		frm.ds_deficiencia.focus();
		return false;
	}
	if(frm.nr_ddd_tel.value == "")
	{
		alert("O campo Telefone1 é obrigatório");
		frm.nr_ddd_tel.focus();
		return false;
	}
	if(frm.nr_telefone.value == "")
	{
		alert("O campo Telefone1 é obrigatório");
		frm.nr_telefone.focus();
		return false;
	}
	if(frm.id_tipo.selectedIndex == 0)
	{
		alert("O campo Tipo de currículo é obrigatório");
		frm.id_tipo.focus();
		return false;
	}
	if(frm.id_tipo.selectedIndex == 2)
	{
		if(frm.en_pais.value == "")
		{
			alert("O campo Endereço é obrigatório");
			frm.en_pais.focus();
			return false;
		}
		if(frm.nr_pais.value == "")
		{
			alert("O campo Número é obrigatório");
			frm.nr_pais.focus();
			return false;
		}
		if(frm.ds_bairro_pais.value == "")
		{
			alert("O campo Bairro é obrigatório");
			frm.ds_bairro_pais.focus();
			return false;
		}
		if(frm.id_estado_pais.selectedIndex == 0)
		{
			alert("O campo Estado é obrigatório");
			frm.id_estado_pais.focus();
			return false;
		}
		if(frm.id_cidade_pais.selectedIndex == -1)
		{
			alert("O campo Cidade é obrigatório");
			frm.id_cidade_pais.focus();
			return false;
		}
		if(frm.nm_pais_pais.value == "")
		{
			alert("O campo País é obrigatório");
			frm.nm_pais_pais.focus();
			return false;
		}
		if(frm.nr_ddd_tel_pais.value == "")
		{
			alert("O campo Telefone1 é obrigatório");
			frm.nr_ddd_tel_pais.focus();
			return false;
		}
		if(frm.nr_telefone_pais.value == "")
		{
			alert("O campo Telefone1 é obrigatório");
			frm.nr_telefone_pais.focus();
			return false;
		}
	}
	if(frm.ds_objetivo.value == "")
	{
		alert("O campo Objetivo é obrigatório");
		frm.ds_objetivo.focus();
		return false;
	}
	if(frm.id_area1.selectedIndex == 0)
	{
		alert("O campo Área de interesse 1 é obrigatório");
		frm.id_area1.focus();
		return false;
	}
	if(frm.ds_minicurriculo.value == "")
	{
		alert("O campo Síntese das Qualificações é obrigatório");
		frm.ds_minicurriculo.focus();
		return false;
	}
	if(frm.id_grau1.selectedIndex == 0)
	{
		alert("O campo Grau de formação é obrigatório");
		frm.id_grau1.focus();
		return false;
	}
	if(frm.ds_curso1.value == "")
	{
		alert("O campo Curso é obrigatório");
		frm.ds_curso1.focus();
		return false;
	}
	if(frm.dt_conclusao1.value == "")
	{
		alert("O campo Conclusão é obrigatório");
		frm.dt_conclusao1.focus();
		return false;
	}
	if(frm.id_fase1.selectedIndex == 0)
	{
		alert("O campo Fase é obrigatório");
		frm.id_fase1.focus();
		return false;
	}
	if(frm.id_cursando1.selectedIndex == 0)
	{
		alert("O campo Cursando é obrigatório");
		frm.id_cursando1.focus();
		return false;
	}
	if(frm.id_periodo1.selectedIndex == 0)
	{
		alert("O campo Período é obrigatório");
		frm.id_periodo1.focus();
		return false;
	}
	if(frm.id_tipo.selectedIndex == 1)
	{
		if(frm.nm_empresa1.value == "")
		{
			alert("O campo Empresa é obrigatório");
			frm.nm_empresa1.focus();
			return false;
		}
		if(frm.dt_entrada1.value == "")
		{
			alert("O campo Data de Entrada é obrigatório");
			frm.dt_entrada1.focus();
			return false;
		}
		if(frm.id_area_empresa1.selectedIndex == 0)
		{
			alert("O campo Área é obrigatório");
			frm.id_area_empresa1.focus();
			return false;
		}
		if(frm.id_cargo_empresa1.selectedIndex == -1)
		{
			alert("O campo Cargo de Entrada é obrigatório");
			frm.id_cargo_empresa1.focus();
			return false;
		}
		if(frm.dt_saida1.value == "")
		{
			alert("O campo Data de Saída é obrigatório");
			frm.dt_saida1.focus();
			return false;
		}
		if(frm.id_area2_empresa1.selectedIndex == 0)
		{
			alert("O campo Área é obrigatório");
			frm.id_area2_empresa1.focus();
			return false;
		}
		if(frm.id_cargo2_empresa1.selectedIndex == -1)
		{
			alert("O campo Cargo de Saída é obrigatório");
			frm.id_cargo2_empresa1.focus();
			return false;
		}
		if(frm.ds_atividades1.value == "")
		{
			alert("O campo Descrição das Atividades é obrigatório");
			frm.ds_atividades1.focus();
			return false;
		}
	}
	return true;
}
