
/*
 * 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 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 (var i = 0; i < field.length; i++)
	{
		field[i].disabled = false;
		if (field[i].value == v)
		{
			field[i].checked = true;
			break;
		}
	}
}

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 uncheckByText(fCheck,fText)
{
	if (document.getElementById(fText).value != '')
	{
		document.getElementById(fCheck).checked = false;
	}
	else
	{
		document.getElementById(fCheck).checked = 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;
	}
	
	return 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;
		}
	}
	
	return true;
}

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


/*[]---------------------------------------------------------------------------------------------[]
  |FUNCOES PARA AJAX                                                                             |
  []---------------------------------------------------------------------------------------------[]*/

function do_getGeoIguacuData(n) {

	var f = document.getElementById(n);

	if(!f){
		return false;
	}

	var v = f.value;

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

	x_getGeoIguacuData(f.value, do_getGeoIguacuData_cb);
	
	return true;
}

/*[]---------------------------------------------------------------------------------------------[]
  |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
}
