
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

/*------------------------------------------------------------------------
						GLOBAL VARIABLES
-------------------------------------------------------------------------*/
var G_ESTADO_DEF = 33;
var G_MUNICI_DEF = 3303500;

/*------------------------------------------------------------------------
        				Change Background FUNCTION
-------------------------------------------------------------------------*/
function resetColorLabels(is,ls)
{
	var obj = document.getElementsByTagName('input');
	for (var i=0; i < obj.length; i++)
		if (obj[i].type == "text" || obj[i].type == "checkbox")
			obj[i].className = is;

	var l = document.getElementsByTagName('label');
	for (var i=0; i < l.length; i++)
		l[i].className = ls;

	var os = document.getElementsByTagName('select');
	for (var i=0; i < os.length; i++)
		os[i].className = is;
}

/*------------------------------------------------------------------------
        				Change Background FUNCTION
-------------------------------------------------------------------------*/
function changeBack(nLabel, nField, sLabel, sField)
{
	var oLabel = document.getElementById(nLabel);
	var oField = document.getElementById(nField);

	if (oLabel)
		oLabel.className = sLabel;

	if (oField)
	{
		oField.className = sField;
		/*oField.focus();*/
	}
}

/*------------------------------ END -------------------------------------*/


function cleanAndDisableGeoIguacu()
{
	var oLC = document.getElementById('form_logradouroCidadeAluno');
	var oNC = document.getElementById('form_logradouroNaoCadastrado');
	var oLG = document.getElementById('form_logradouroGeoiguacuAluno');

	/* SE CIDADE DO ALUNO DIFERENTE DE NOVA IGUACU */
	if (oLC.value != '3303500')
	{
		oNC.checked = true;
		/* oNC.disabled = true; */

		oLG.value = '';
		oLG.disabled = true;
	}
	else
	{
		oNC.checked = false;
		/* oNC.disabled = false; */

		oLG.value = '';
		oLG.disabled = false;
	}
}

function disableFatherMotherByCheck(nCheck,nText,nRadio,nText2,nRadio2,v1,v2,v3,v4)
{
	if (document.getElementById(nCheck).checked == true)
	{
		document.getElementById(nText).value = '';
		document.getElementById(nText).disabled = true;

		cleanAndDisableAllBoxes(nRadio);

		document.getElementById(nText2).value = '';
		document.getElementById(nText2).disabled = true;

		cleanAndDisableAllBoxes(nRadio2);
	}
	else
	{
		document.getElementById(nText).disabled = false;
		document.getElementById(nText).value = v1;

		enableAllSetValue(nRadio,v2);

		document.getElementById(nText2).disabled = false;
		document.getElementById(nText2).value = v3;

		enableAllSetValue(nRadio2,v4);
	}
}

function enableAllSetValue(nBox, v)
{
	var field = document.getElementsByName(nBox);
	for (i = 0; i < field.length; i++)
	{
		field[i].disabled = false;
		if (field[i].value == v)
		{
			field[i].checked = true;
			break;
		}
	}
}

function disableByNoBrothers()
{
	document.getElementById('form_nomeIrmao1').value='';
	document.getElementById('form_nomeIrmao1').disabled=true;
	document.getElementById('form_codigoEscolaIrmao1').options[0].selected=true;
	document.getElementById('form_codigoEscolaIrmao1').disabled = true;
	cleanAndDisableAllBoxes('form_escolaridadeIrmao1');

	document.getElementById('form_nomeIrmao2').value='';
	document.getElementById('form_nomeIrmao2').disabled=true;
	document.getElementById('form_codigoEscolaIrmao2').options[0].selected=true;
	document.getElementById('form_codigoEscolaIrmao2').disabled = true;
	cleanAndDisableAllBoxes('form_escolaridadeIrmao2');

	document.getElementById('form_nomeIrmao3').value='';
	document.getElementById('form_nomeIrmao3').disabled=true;
	document.getElementById('form_codigoEscolaIrmao3').options[0].selected=true;
	document.getElementById('form_codigoEscolaIrmao3').disabled = true;
	cleanAndDisableAllBoxes('form_escolaridadeIrmao3');

	document.getElementById('form_nomeIrmao4').value='';
	document.getElementById('form_nomeIrmao4').disabled=true;
	document.getElementById('form_codigoEscolaIrmao4').options[0].selected=true;
	document.getElementById('form_codigoEscolaIrmao4').disabled = true;
	cleanAndDisableAllBoxes('form_escolaridadeIrmao4');

	document.getElementById('form_nomeIrmao5').value='';
	document.getElementById('form_nomeIrmao5').disabled=true;
	document.getElementById('form_codigoEscolaIrmao5').options[0].selected=true;
	document.getElementById('form_codigoEscolaIrmao5').disabled = true;
	cleanAndDisableAllBoxes('form_escolaridadeIrmao5');

}

function enableByYesBrothers()
{
	document.getElementById('form_nomeIrmao1').disabled=false;
	document.getElementById('form_nomeIrmao1').value='';
	document.getElementById('form_codigoEscolaIrmao1').disabled = false;
	document.getElementById('form_codigoEscolaIrmao1').options[0].selected=true;
	cleanAndEnableAllBoxes('form_escolaridadeIrmao1');

	document.getElementById('form_nomeIrmao2').disabled=false;
	document.getElementById('form_nomeIrmao2').value='';
	document.getElementById('form_codigoEscolaIrmao2').disabled = false;
	document.getElementById('form_codigoEscolaIrmao2').options[0].selected=true;
	cleanAndEnableAllBoxes('form_escolaridadeIrmao2');

	document.getElementById('form_nomeIrmao3').disabled=false;
	document.getElementById('form_nomeIrmao3').value='';
	document.getElementById('form_codigoEscolaIrmao3').disabled = false;
	document.getElementById('form_codigoEscolaIrmao3').options[0].selected=true;
	cleanAndEnableAllBoxes('form_escolaridadeIrmao3');

	document.getElementById('form_nomeIrmao4').disabled=false;
	document.getElementById('form_nomeIrmao4').value='';
	document.getElementById('form_codigoEscolaIrmao4').disabled = false;
	document.getElementById('form_codigoEscolaIrmao4').options[0].selected=true;
	cleanAndEnableAllBoxes('form_escolaridadeIrmao4');

	document.getElementById('form_nomeIrmao5').disabled=false;
	document.getElementById('form_nomeIrmao5').value='';
	document.getElementById('form_codigoEscolaIrmao5').disabled = false;
	document.getElementById('form_codigoEscolaIrmao5').options[0].selected=true;
	cleanAndEnableAllBoxes('form_escolaridadeIrmao5');
}

function cleanAndDisableAllBoxes(nBox)
{
	var field = document.getElementsByName(nBox);
	for (i = 0; i < field.length; i++) {
		field[i].checked = false;
		field[i].disabled = true;
	}
}

function cleanAndEnableAllBoxes(nBox)
{
	var field = document.getElementsByName(nBox);
	for (i = 0; i < field.length; i++) {
		field[i].checked = false;
		field[i].disabled = false;
	}
}

function disableAllBoxes(nBox)
{
	var field = document.getElementsByName(nBox);
	for (i = 0; i < field.length; i++)
		field[i].disabled = true;
}

function enableAllBoxes(nBox)
{
	var field = document.getElementsByName(nBox);
	for (i = 0; i < field.length; i++)
		field[i].disabled = false;
}

function cleanByChecked(fText, fCheck, v)
{
	if (document.getElementById(fCheck).checked == true)
	{
		document.getElementById(fText).value = '';
		document.getElementById(fText).disabled = true
		unblockByGeoIguacu();
	}
	else
	{
		document.getElementById(fText).disabled = false;
		document.getElementById(fText).value = v;
		blockByGeoIguacu();
	}
}

function cleanByCheckedLogradouro(v1, v2)
{
	if (document.getElementById('form_logradouroNaoCadastrado').checked == true)
	{
		document.getElementById('form_logradouroGeoiguacuAluno').value = '';
		document.getElementById('form_logradouroGeoiguacuAluno').disabled=true

		document.getElementById('form_logradouroGeoiguacuJustificativa').value = v2;
		document.getElementById('form_logradouroGeoiguacuJustificativa').disabled = false;

		unblockByGeoIguacu();
	}
	else
	{
		document.getElementById('form_logradouroGeoiguacuAluno').disabled = false;
		document.getElementById('form_logradouroGeoiguacuAluno').value = v1;

		document.getElementById('form_logradouroGeoiguacuJustificativa').value = '';
		document.getElementById('form_logradouroGeoiguacuJustificativa').disabled = true;

		/* CHAMA NOVAMENTE PARA PREENCHER OS DADOS DE GEOIGUACU */
		do_getGeoIguacuData('form_logradouroGeoiguacuAluno');

		blockByGeoIguacu();
	}
}

function uncheckByText(fCheck,fText)
{
	if (document.getElementById(fText).value != '')
	{
		document.getElementById(fCheck).checked = false;
	}
	else
	{
		document.getElementById(fCheck).checked = true;
	}
}

function cleanNationalityCountrySource()
{
	var field = document.getElementsByName('form_nacionalidadeAluno');
	var destField = document.getElementById('form_codigoPaisAluno');

	/* CASO NO CAMPO UF NASCIMENTO ESTEJA VALOR N/A */
	if (document.getElementById('form_ufNascimentoAluno').value == 0)
	{
		/* DESABILITA TODOS OS CAMPOS DE NACIONALIDADE */
		for (var i=0; i < field.length; i++)
		{
			field[i].checked = false;
		}

		/* DESMARCA PAIS DE ORIGEM */
		destField.options[0].selected = true;
	}
	else /* CASO CAMPO DE UF SEJA ALGUM ESTADO */
	{
		/* PARA TODOS OS RADIOS DE NACIONALIDADE */
		for (var i=0; i < field.length; i++)
		{
			/* DESMARCA NACIONALIDADES */
			field[i].checked = false;

			/* CASO SEJA BRASILEIRA */
			if ( field[i].value == 1 )
			{
				/* MARCA NACIONALIDADE BRASILEIRA */
				field[i].checked = true;
				break;
			}
		}

		/* PARA TODOS OS VALORES DE SELECT */
		for (var i=0; i < destField.length; i++)
		{
			/* SE A OPCAO E BRASIL */
			if (destField.options[i].text=='BRASIL')
			{
				/* MARCA O PAIS DE ORIGEM BRASIL */
				destField.options[i].selected = true;
				break;
			}
		}
	}
}

function checkNationality()
{
	var field = document.getElementsByName('form_nacionalidadeAluno');
	var destField = document.getElementById('form_codigoPaisAluno');

	var fieldUFNasc = document.getElementById('form_ufNascimentoAluno');
	var fieldMuniNasc = document.getElementById('form_codigoMunicipioNascimentoAluno');

	if (!field)
	{
		alert('Campo ' + field + ' nao existe!');
		return false;
	}

	var index=0;
	for (var i=0; i < field.length; i++)
	{
		/* SE EXTRANGEIRA */
		if(field[i].checked && (field[i].value == 2 || field[i].value == 3))
		{
			/* SELECIONA O PRIMEIRO ITEM DA LISTA DE PAISES */
			destField.options[index].selected = true;

			/* SELECIONA A UF N/A DA LISTA DE UFs */
			fieldUFNasc.options[fieldUFNasc.length-1].selected = true;

			/* LIMPANDO A LISTA DE MUNICIPIOS */
			/* fieldMuniNasc.innerHTML = null; */
			select_innerHTML(fieldMuniNasc,null);

			return false;
		}
		/* SE BRASILEIRA */
		if(field[i].checked && (field[i].value == 1))
		{
			/* SELECIONA UF NASCIMENTO PARA PRIMEIRO DA LISTA */
			fieldUFNasc.options[index].selected = true;

			/* SELECIONA AS LISTAS DE MUNICIPIOS BASEADO NO ESTADO */
			do_cityByState('form_ufNascimentoAluno');

			return false;
		}

	}

	/* SE BRASILEIRA value == 1 */
	for (var i=0; i < destField.length; i++)
	{
		if (destField.options[i].text=='BRASIL')
		{
			destField.options[i].selected = true;
			break;
		}
	}
}

function checkCountryStudent()
{
	var field = document.getElementById('form_codigoPaisAluno');
	var destField = document.getElementsByName('form_nacionalidadeAluno');

	if (!field)
	{
		alert('Campo ' + field + ' nao existe!');
		return false;
	}

	/* SE SELECIONOU NA LISTA O PAIS BRASIL */
	if(field[field.selectedIndex].text=='BRASIL')
	{
		for (var i=0; i < destField.length; i++)
		{
			/* SE EXTRANGEIRA */
			if(destField[i].value == 2 || destField[i].value == 3)
			{
				/* DESMARCA A OPCAO EXTRANGEIRA */
				destField[i].checked = false;
			}
			else
			{
				/* MARCA A OPCAO BRASILEIRA */
				destField[i].checked = true;
			}
		}
	}
	else
	{
		for (var i=0; i < destField.length; i++)
		{
			/* SE EXTRANGEIRA */
			if (destField[i].checked && destField[i].value == 1)
			{
				/* MARCA A OPCAO BRASILEIRA */
				destField[i].checked = false;

				/* MARCA A OPCAO EXTRANGEIRA */
				destField[2].checked = true;

				break;
			}
		}
	}

	return true;
}

function uncheckBoxByYesNo(oRadio)
{
	var field = document.getElementsByName(oRadio);

	if (!field)
	{
		alert('Campo ' + field + ' nao existe!');
		return false;
	}

	for (var i=0; i < field.length; i++)
	{
		field[i].checked = false;
		field[i].disabled = true;
	}
}

function checkBoxByYesNo(oRadio)
{
	var field = document.getElementsByName(oRadio);

	if (!field)
	{
		alert('Campo ' + field + ' nao existe!');
		return false;
	}

	for (var i=0; i < field.length; i++)
	{
		field[i].disabled = false;
		if (field[i].value == 1)
		{
			field[i].checked = true;
		}
	}
}

/*[]---------------------------------------------------------------------------------------------[]
  |FUNCOES PARA AJAX                                                                             |
  []---------------------------------------------------------------------------------------------[]*/
function do_cityByStateMuniNasciAluno_cb(s) {
	document.getElementById('form_codigoMunicipioNascimentoAluno').innerHTML = null;
	select_innerHTML(document.getElementById('form_codigoMunicipioNascimentoAluno'), s);

	/*document.getElementById('form_codigoMunicipioNascimentoAluno').innerHTML = null;
	document.getElementById('form_codigoMunicipioNascimentoAluno').innerHTML = s;*/
}

function do_cityByStateLogUfAluno_cb(s) {
	document.getElementById('form_logradouroCidadeAluno').innerHTML = null;
	select_innerHTML(document.getElementById('form_logradouroCidadeAluno'), s);

/*	document.getElementById('form_logradouroCidadeAluno').innerHTML = null;
	document.getElementById('form_logradouroCidadeAluno').innerHTML = s;*/
}

function do_cityByState(n) {
	var f = document.getElementById(n);
	var idx = f.selectedIndex;
	var val = f.options[idx].value;

	if (n == 'form_ufNascimentoAluno') {
		x_cityByState(val, do_cityByStateMuniNasciAluno_cb);
		cleanNationalityCountrySource();
	}
	else {
		x_cityByState(val, do_cityByStateLogUfAluno_cb);
	}
}

function blockByGeoIguacu()
{
	if (document.getElementById('form_logradouroNomeAluno').value != '')
		document.getElementById('form_logradouroNomeAluno').readOnly = true;

	if (document.getElementById('form_logradouroNumeroAluno').value != '')
		document.getElementById('form_logradouroNumeroAluno').readOnly = true;

	if (document.getElementById('form_logradouroComplementoAluno').value != '')
		document.getElementById('form_logradouroComplementoAluno').readOnly = true;

	if (document.getElementById('form_logradouroBairroAluno').value != '')
		document.getElementById('form_logradouroBairroAluno').readOnly = true;

	if (document.getElementById('form_logradouroCepAluno').value != '')
		document.getElementById('form_logradouroCepAluno').readOnly = true;

	if (document.getElementById('form_logradouroTipoAluno').value != '')
		document.getElementById('form_logradouroTipoAluno').readOnly = true;

	if (document.getElementById('form_logradouroGeoiguacuJustificativa').value != '')
		document.getElementById('form_logradouroGeoiguacuJustificativa').readOnly = true;
}

function unblockByGeoIguacu()
{
	document.getElementById('form_logradouroNomeAluno').readOnly				= false;
	document.getElementById('form_logradouroNumeroAluno').readOnly				= false;
	document.getElementById('form_logradouroComplementoAluno').readOnly			= false;
	document.getElementById('form_logradouroBairroAluno').readOnly				= false;
	document.getElementById('form_logradouroCepAluno').readOnly					= false;
	document.getElementById('form_logradouroTipoAluno').readOnly				= false;
	document.getElementById('form_logradouroGeoiguacuJustificativa').readOnly	= false;
}

function do_getGeoIguacuData_cb(s) {

	if (!s)
	{
		alert('Numero de GeoIguacu nao encontrado!');
		document.getElementById('form_logradouroGeoiguacuAluno').value = '';
		unblockByGeoIguacu();
		return false;
	}

	var pattern = /\#/;

	var result = new Array();

	result = s.split(pattern);

	document.getElementById('form_logradouroNomeAluno').value = '';
	document.getElementById('form_logradouroNomeAluno').value = result[0];

	document.getElementById('form_logradouroNumeroAluno').value =  null;
	document.getElementById('form_logradouroNumeroAluno').value =  result[1];

	document.getElementById('form_logradouroComplementoAluno').value =  null;
	document.getElementById('form_logradouroComplementoAluno').value =  result[2];

	document.getElementById('form_logradouroBairroAluno').value =  null;
	document.getElementById('form_logradouroBairroAluno').value =  result[3];

	document.getElementById('form_logradouroCepAluno').value =  null;
	document.getElementById('form_logradouroCepAluno').value =  result[4];

	document.getElementById('form_logradouroTipoAluno').value = '';
	document.getElementById('form_logradouroTipoAluno').value = result[5];

	//if(result[1]=="")
		unblockByGeoIguacu();
	//else
		blockByGeoIguacu();
}

function do_getGeoIguacuData(n) {

	var f = document.getElementById(n);

	if(!f){
		//unblockByGeoIguacu();
		return false;
	}

	var v = f.value;

	if (v == ''){
		//unblockByGeoIguacu();
		return false;
	}
	if (v.length != 8){
		//unblockByGeoIguacu();
		return false;
	}

	x_getGeoIguacuData(f.value, do_getGeoIguacuData_cb);
}

/*[]---------------------------------------------------------------------------------------------[]
  |Fun��o Auxiliar.                                                                               |
  []---------------------------------------------------------------------------------------------[]*/
function isEmpty(s) {
	return ((s == null) || s == '' ||(s.length == 0));
}

function isDigit(c){
	return ( (c >="0") && (c <="9") );
}

function isInteger( s )
{
	var i;
	var success= true;

	if( isEmpty(s) )
		return false;

	// search for all characters for being a proper no.
	for(i=0; i< s.length; i++){
		var c = s.charAt(i);
		if( !isDigit(c) )
			success = false;
	}

	if (!success)
		return success;

	return success;
}

function select_innerHTML(objeto,innerHTML) {
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Vers�o: 2.1 - 04/09/2007
* Autor: Micox - N�iron Jos� C. Guimar�es - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
	if(!document.all)
	{
		objeto.innerHTML = innerHTML;
		return true;
	}

	objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if (innerHTML.toLowerCase().indexOf("<option")<0) { //se n�o � option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML


    for (var i=0;i<selTemp.childNodes.length;i++) {
		var spantemp = selTemp.childNodes[i];

        if(spantemp.tagName) {
        	opt = document.createElement("OPTION")

			if(document.all)
			{ //IE
				objeto.add(opt)
			}
			else
			{
				objeto.appendChild(opt)
			}

			//getting attributes
			for(var j=0; j<spantemp.attributes.length ; j++) {
				var attrName = spantemp.attributes[j].nodeName;
				var attrVal  = spantemp.attributes[j].nodeValue;
				if (attrVal)
				{
					try
					{
						opt.setAttribute(attrName,attrVal);
						opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
					}
					catch(e){}
				}
			}
			//getting styles
			if (spantemp.style)
			{
				for (var y in spantemp.style)
				{
					try
					{
						opt.style[y] = spantemp.style[y];
					}
					catch(e){}
				}
			}
			//value and text
			opt.value = spantemp.getAttribute("value")
			opt.text = spantemp.innerHTML
			//IE
			opt.selected = spantemp.getAttribute('selected');
			opt.className = spantemp.className;
		  }
	}
	document.body.removeChild(selTemp)
	selTemp = null
}