/********************************************************************************
* Todas funções contidas neste arquivo foram escritas integralmente por
* Márcio Brener Costa (marciobrener@hotmail.com), Fevereiro/2001
*
* TODO CONTEÚDO É LIVRE PARA UTILIZAÇÃO DESDE QUE SEJA MANTIDO O NOME DO AUTOR
*
* Última atualização: segunda-feira, 14/06/2004
********************************************************************************/

//Constantes padrões
var STATUS_OK 		  = "OK";
var STATUS_NOVO 	  = "NOVO";
var STATUS_EDITAR   = "EDITAR";
var STATUS_EXCLUIR  = "EXCLUIR";
var STATUS_CONFIRMA = "CONFIRMA";
var STATUS_CANCELA  = "CANCELA";

//Níveis de acesso dos usuários
var ACESSO_ADMINISTRADOR = 1;
var ACESSO_USUARIO = 2;
var ACESSO_APENAS_CONSULTA = 3;

//Variáveis padrões
var NomeDoForm = "frm";
var ProximaPagina = "";
var ProximaPaginaTitulo = "";
var DataPagina = "";
var Informacoes = "";
var ListaObjetos = "";
var ListaExcecao = "";
var TimerEsmaecerDIV = null;
var MensagemProcessamento = "Processando..."; //REVISAR: SEM USO

@if (@_jscript_version < 4.0)
	window.alert("O navegador atual não suporta todas as funcionalidades implementadas neste site!\nAtualize para Microsoft Internet Explorer 6.0SP1 ou superior.");
	window.location = "http://www.ntu.org.br";
@end

//Inicialização padrão para as páginas HTML
window.defaultStatus = "NTU - Associação Nacional das Empresas de Transportes Urbanos";
window.setInterval("InicioDaPaginaHTML();", 500, 0);

//Função padrão Macromedia DreamWeaver MX
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

//Início das funções
function SetCookie(Cookie, Valor) {
	document.cookie = Cookie + "=" + escape(Valor);
}

function getCookie(cookie) {
  var cookies = document.cookie.split("; ");
  for (var i = 0; i < cookies.length; i++) {
    var cookieN = cookies[i].split("=");
    if (unescape(cookie).toUpperCase() == unescape(cookieN[0]).toUpperCase())
      return unescape(cookieN[1]);
  }

  return null;
}

function encode(string) {
	var stringCode = string;
	string = "";

	for (var i = 0; i < stringCode.length; i++)
		string += String.fromCharCode(stringCode.charCodeAt(i) + i);

	string += "kjwi@03940209masADFQ23@!mn90439802jmasKJ)(UJ#sa0qjaiO#IUND*3i32A";
	string += "0Q´NM	0Jolkjafklqk32imfsdiqjIOP(I@#)_MNc0230mnsdfoiqhqindfn23+_";

	var n = string.length;
	for (var i = 16; i < n; i++) {
		stringCode += String.fromCharCode(string.charCodeAt(i) - 13 * Math.random());
	}

	stringCode  = string;
	stringCode += string.charAt(05);
	stringCode += string.charAt(15);
	stringCode += string.charAt(08);
	stringCode += string.charAt(10);
	stringCode += string.charAt(11);
	stringCode += string.charAt(01);
	stringCode += string.charAt(03);
	stringCode += string.charAt(09);
	stringCode += string.charAt(00);
	stringCode += string.charAt(04);
	stringCode += string.charAt(13);
	stringCode += string.charAt(12);
	stringCode += string.charAt(06);
	stringCode += string.charAt(02);
	stringCode += string.charAt(07);
	stringCode += string.charAt(14);

	return stringCode;
}

//Restaura as informações dos objetos contidos em um formulário
function RetornaInformacoesForm(Form) {
	if (typeof(Form) == "undefined") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função RetornaInformacoesForm(), Parâmetro(s): Form\nValor passado: " + typeof(Form));
		return false;
	}

	for(var i = 0; i < Form.elements.length; i++) {
		if (CanDo(typeof(Form.elements[i]), "button,submit,hidden")) continue;

		var StringObj = Form.name + "." + Form.elements[i].name + ".value = " + unescape(Form.name + Form.elements[i].name);
		eval(StringObj);
	}

	return true;
}


function MaximizaBrowser() {
	self.resizeTo(screen.availWidth + 5, screen.availHeight + 5);
	self.moveTo(-5, -5);
}


function InicioDaPaginaHTML() {
	if(window.status.length < 110) window.status = "Carregando" + Replicate(".", window.status.length + 1 - "Carregando".length);
	else window.status = "Carregando";
}

function FimDaPaginaHTML() {
	var Status = true;

	try {window.clearInterval(0);}
	catch(Erro) {Status = false;}

	try {Processamento.style.visibility = "hidden";}
	catch(Erro) {Status = false;}

	window.status = "Concluído";

	return Status;
}

//Baseado na função original em linguagem Progress 4GL
function CanDo(Texto, Lista, Delimitador) {
	if(typeof(Texto) == "object") var Texto = Texto.value;
	if(typeof(Lista) == "object") var Lista = Lista.value;

	if(Delimitador == null) var Delimitador = ",";

	var ArrayLista = Lista.split(Delimitador);

	for(var i = 0; i < ArrayLista.length; i++) {
		if(ArrayLista[i].toLowerCase() == Texto.toLowerCase() || ArrayLista[i] == "*") return true;
	}

	return false;
}

//Baseado na função original em linguagem Progress 4GL
function NumEntries(Lista, Delimitador) {
	if(typeof(Lista) == "object") var Lista = Lista.value;

	if(Delimitador == null) var Delimitador = ",";

	var ArrayLista = Lista.split(Delimitador);

	return ArrayLista.length;
}

//Observação: esta função tem base 0 (zero), conforme padrão Java/JavaScript
//Baseado na função original em linguagem Progress 4GL
function Entry(ElementoN, Lista, Delimitador) {
	if(typeof(ElementoN) == "object") var ElementoN = ElementoN.value;
	if(typeof(Lista) == "object") var Lista = Lista.value;

	if(Delimitador == null) var Delimitador = ",";

	var ElementoN = parseInt(ElementoN, 10);

	var ArrayLista = Lista.split(Delimitador);

	if(ElementoN > ArrayLista.length) return "";

	return ArrayLista[ElementoN];
}

function urlArrayParametros(url) {
	if (url == null) URL = window.location.toString();

	var url = escape(url);
	var url = url.substring(url.indexOf("%3F") + 3).split("%3D").toString().split("%26");

	var arrayParametros = new Array((url.length + 1) * 2 - 3);

	var n = 0;
	for(var i = 0; i < arrayParametros.length; i++) {
		arrayParametros[i] = unescape(url[n].split(",")[0]);
		arrayParametros[++i] = unescape(url[n++].split(",")[1]);
	}

	return arrayParametros;
}

function urlParametros(parametro, url) {
	if(typeof(parametro) != "string") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função [ValorParâmetroURL]\nValor passado: " + typeof(parametro));
		return "";
	}

	if (url == null) url = window.location.href;

	parametro = parametro.toLowerCase();

	var URL = urlArrayParametros(url);
	for(var i = 0; i < URL.length; i += 2) {
		if(URL[i].toLowerCase() == parametro) return unescape(URL[i + 1]);
	}

	return "";
}




function checkbox_readOnly(Obj) {
	try {
		if(!Obj.readOnly) return Obj.checked;

		Obj.checked = !Obj.checked;
		return Obj.checked;
	}
	catch(e) {return -1;}
}


function radio_readOnly(Obj) {
	try {
		if(!Obj.readOnly) return Obj.checked;

		Obj.checked = !Obj.checked;
		return Obj.checked;
	}
	catch(e) {return -1;}
}


function ObtemValorRadioForm(Formulario, TextoNomeGrupo)
{
	var TipoObj = typeof(Formulario) == "object";
	if (!TipoObj) {
		window.alert("Erro de programação!\nParâmetro formulário não é um objeto válido!");
		return -1;
	}

	var TipoObj = typeof(TextoNomeGrupo) == "object";
	if (TipoObj) {
		window.alert("Erro de programação!\nParâmetro TextoNomeGrupo não é uma string válida!");
		return -1;
	}

	for (var i = 0; i < Formulario.elements.length; i++) {
		if(Formulario.elements[i].name == TextoNomeGrupo) {
			if(Formulario.elements[i].checked) return Formulario.elements[i].value;
		}
	}

	return false;
}

function ObtemValorRadio(TextoNomeGrupo)
{
	for (var i=0; i < document.frm.elements.length; i++) {
		if(document.frm.elements[i].name == TextoNomeGrupo) {
			if(document.frm.elements[i].checked) return document.frm.elements[i].value;
		}
	}

	return false;
}

function GoToURL(URL) {
	window.location = URL.href;
	return true;
}

function ValidaInteiro(Obj) {
	var TipoObj = typeof(Obj) == "object";

	if(TipoObj) var Texto = Obj.value;
	else var Texto = Obj;

	if(TipoObj && Obj.type == "hidden") TipoObj = false;

	var Numeros = "0123456789";

	for(var i = 0; i < Texto.length; i++) {
		if(Numeros.indexOf(Texto.charAt(i)) == -1) {
			if(TipoObj) {
				Obj.focus();
				window.alert("Numero inválido! '" + Texto + "'");
			}
			return false;
		}
	}

	return true;
}


function Inteiro(Obj) {
	var TipoObj = typeof(Obj) == "object";

	if(TipoObj) var Texto = Obj.value;
	else var Texto = Obj;

	var Resultado = "";

	for(var i = 0; i < Texto.length; i++) {
		if(ValidaInteiro( Texto.charAt(i))) Resultado += Texto.charAt(i);
	}

	return Resultado;
}

function validaIntervaloValores(objValorA, objValorB, operacaoOpcional, mensagemOpcional) {
	var tipoObjValorA = (typeof(objValorA) == "object");
	var tipoObjValorB = (typeof(objValorB) == "object");

	if(tipoObjValorA) var valorA = objValorA.value;
	else var valorA = objValorA;

	if(tipoObjValorB) var valorB = objValorB.value;
	else var valorB = objValorB;

	if(!ValidaDecimal(objValorA)) return false;
	if(!ValidaDecimal(objValorB)) return false;

	if(tipoObjValorA && objValorA.type == "hidden") tipoObjValorA = false;
	if(tipoObjValorB && objValorA.type == "hidden") tipoObjValorA = false;

	if(typeof(operacaoOpcional) == "undefined" || operacaoOpcional == "") operacaoOpcional = ">=";
	if(typeof(mensagemOpcional) == "undefined" || mensagemOpcional == "") mensagemOpcional = "";

	if(operacaoOpcional == ">=") {
		if(parseFloat(valorA) <= parseFloat(valorB)) {
			if(mensagemOpcional == "")
				window.alert("Valor final " + valorA + " menor que o valor inicial " + valorB)
			else
				window.alert(mensagemOpcional.replace("%1", valorA).replace("%2", valorB));

			if(tipoObjValorA) objValorA.focus();
			if(tipoObjValorB) objValorB.focus();

			return false;
		}
	}

	else if(operacaoOpcional == "<=") {
		if(parseFloat(valorA) >= parseFloat(valorB)) {
			if(mensagemOpcional == "")
				window.alert("Valor final " + valorB + " menor que o valor inicial " + valorA)
			else
				window.alert(mensagemOpcional.replace("%1", valorA).replace("%2", valorB));

			if(tipoObjValorA) objValorA.focus();
			if(tipoObjValorB) objValorB.focus();

			return false;
		}
	}

	else if(operacaoOpcional == "=") {
		if(parseFloat(valorA) != parseFloat(valorB)) {
			if(mensagemOpcional == "")
				window.alert("Valor " + valorA + " diferente do valor " + valorB)
			else
				window.alert(mensagemOpcional.replace("%1", valorA).replace("%2", valorB));

			if(tipoObjValorA) objValorA.focus();
			if(tipoObjValorB) objValorB.focus();

			return false;
		}
	}

	return true;
}

function validaData(Obj) {
	var TipoObj = typeof(Obj) == "object";

	if(TipoObj) var Data = Obj.value;
	else var Data = Obj;

	if(TipoObj && Obj.type == "hidden") TipoObj = false;

	if(Data.length != 10) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Data invalida!");
		}
		return false;
	}

	else if(!(Data.charAt(2) == "/" && Data.charAt(5) == "/")) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Data invalida!");
		}

		return false;
	}

	else if(!ValidaInteiro(Data.replace("/", "").replace("/", ""))) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Data invalida!");
		}

		return false;
	}

	var Dia = parseInt(Data.substring(0, 2));
	var Mes = parseInt(Data.substring(3, 5));
	var Ano = parseInt(Data.substring(6, 10));

	//BUGS/PROBLEMA JAVASCRIPT:
	//parseInt("01") é 0 (zero)

	if (Dia == 0) var Dia = parseInt(Data.substring(1, 2));
	if (Mes == 0) var Mes = parseInt(Data.substring(4, 5));

	if(Dia == 0 || Dia > 31) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Dia inválido!");
		}

		return false;
	}

	else if(Mes == 0 || Mes > 12) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Mes inválido!");
		}

		return false;
	}

	else if(Ano == 0) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Ano inválido!");
		}

		return false;
	}

	else if(Mes == 2 && Dia > 29) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Dia inválido para o mês de fevereiro!");
		}

		return false;
	}

	else if(Mes == 2 && Dia > 28 && Ano % 4 != 0) {
		if(TipoObj) {
			Obj.focus();
			window.alert("Dia inválido para ano nao bisexto!");
		}

		return false;
	}

	return true;
}

//STRING: BASEADA NA FUNCAO CLIPPER REPLICATE(STRING, n)
function Replicate(Texto, n) {
	var Resultado = "";

	for(var i = 0; i < n; i++) Resultado += Texto;

	return Resultado;
}

function digitacaoData(Obj) {
	var Texto = Inteiro(Obj.value);

	if(Texto.length > 0) {
		if(Texto.length > 2 && Texto.length < 5) Texto = Texto.substring(0, 2) + "/" + Texto.substring(2, 8);
		else if(Texto.length > 4) Texto = Texto.substring(0, 2) + "/" + Texto.substring(2, 4) + "/" + Texto.substring(4, 8);
		Obj.value = Texto;

		return true;
	}

	return false;
}

function ValidaDecimal(Obj) {
	var TipoObj = typeof(Obj) == "object";

	if(TipoObj) var Valor = Obj.value;
	else var Valor = Obj;

	if(TipoObj && Obj.type == "hidden") TipoObj = false;

	if(isNaN(Valor)) {
		if(TipoObj) {
			window.alert("Valor inválido! " + Valor);
			Obj.focus();
		}

		return false;
	}

	return true;
}

function ValorDecimal(Valor) {
	if(typeof(Valor) != "string") {
		window.alert("ERRO DE PROGRAMACAO!\nTipo de dado inválido para a funcao [ValidaDecimal]");
		return Valor;
	}

	Valor = Valor.replace(",", "@");

	while ( Valor.indexOf(".") > -1 ) Valor = Valor.replace(".", "");

	Valor = Valor.replace("@", ".");

	return parseFloat(Valor);
}

function DataToInt(Obj) {
	var TipoObj = typeof(Obj) == "object";

	if(TipoObj) var Data = Obj.value;
	else var Data = Obj;

	validaData(Obj);

	var Retorno = parseInt(Data.substring(6, 10) + Data.substring(3, 5) + Data.substring(0, 2));

	if(TipoObj) {
		Obj.value = Retorno;
		return Retorno;
	}

	return Retorno;
}

function validaIntervaldoData(objDataA, objDataB, operacaoOpcional, mensagemOpcional) {
	var tipoobjDataA = (typeof(objDataA) == "object");
	var tipoobjDataB = (typeof(objDataB) == "object");

	if(tipoobjDataA) var DataA = objDataA.value;
	else var DataA = objDataA;

	if(tipoobjDataB) var DataB = objDataB.value;
	else var DataB = objDataB;

	if(!validaData(objDataA)) return false;
	else if(!validaData(objDataB)) return false;

	if(tipoobjDataA && objDataA.type == "hidden") tipoobjDataA = false;
	if(tipoobjDataB && objDataB.type == "hidden") tipoobjDataB = false;

	if(typeof(operacaoOpcional) == "undefined" || operacaoOpcional == "") operacaoOpcional = ">=";
	if(typeof(mensagemOpcional) == "undefined" || mensagemOpcional == "") mensagemOpcional = "";

	if(operacaoOpcional == ">=") {
		if(DataToInt(DataA) < DataToInt(DataB)) {
			if(mensagemOpcional == "")
				window.alert("Data final " + DataA + " menor que a data inicial " + DataB)
			else
				window.alert(mensagemOpcional.replace("%1", DataA).replace("%2", DataB));

			if(tipoobjDataA) objDataA.focus();
			if(tipoobjDataB) objDataB.focus();

			return false;
		}
	}

	else if(operacaoOpcional == "<=") {
		if(DataToInt(DataA) > DataToInt(DataB)) {
			if(mensagemOpcional == "")
				window.alert("Data final " + DataB + " menor que a data inicial " + DataA)
			else
				window.alert(mensagemOpcional.replace("%1", DataA).replace("%2", DataB));

			if(tipoobjDataA) objDataA.focus();
			if(tipoobjDataB) objDataB.focus();

			return false;
		}
	}

	else if(operacaoOpcional == "=") {
		if(DataToInt(DataA) != DataToInt(DataB)) {
			if(mensagemOpcional == "")
				window.alert("Data " + DataA + " diferente da data " + DataB)
			else
				window.alert(mensagemOpcional.replace("%1", DataA).replace("%2", DataB));

			if(tipoobjDataA) objDataA.focus();
			if(tipoobjDataB) objDataB.focus();

			return false;
		}
	}

	return true;
}

function resetForm(Form, ObjetosExcecao) {
	if(document.forms.length == 0) return false;

	//if(window.location.toString().indexOf("?") == -1) return false;

	if(Form == null) var Form = document.forms[0];

	if(ObjetosExcecao == null || typeof(ObjetosExcecao) == "undefined") var ObjetosExcecao = "";

	//try {
		for(var i = 0; i < Form.elements.length; i++) {
			if (typeof(Form.elements[i].type) == null || typeof(Form.elements[i].type) == "undefined") continue;

			if(CanDo(Form.elements[i].type, "hidden,button,submit,reset") || CanDo(Form.elements[i].name, ObjetosExcecao)) continue;

			if(CanDo(Form.elements[i].type, "text,textarea,file,password")) {
				if (Form.elements[i].attributes.getNamedItem("initial") != null)
					Form.elements[i].value = Form.elements[i].initial;

				else if (Form.elements[i].attributes.getNamedItem("datatype") != null &&
					     Form.elements[i].datatype.toLowerCase() == "integer")
					Form.elements[i].value = 0;

				else if (Form.elements[i].attributes.getNamedItem("defaultValue") != null)
					Form.elements[i].value = Form.elements[i].defaultValue;

				else
					Form.elements[i].value = "";

			}

			//Usa o valor default do objeto
			if(CanDo(Form.elements[i].type, "radio,checkbox"))
				if (Form.elements[i].attributes.getNamedItem("initial") != null)
					Form.elements[i].checked = Form.elements[i].initial;
				else
					Form.elements[i].checked = Form.elements[i].defaultChecked;

			else if(CanDo(Form.elements[i].type, "select-one,select-multiple")) {
				try {
					Form.elements[i].options[0].selected = Form.elements[i].options.defaultSelected;
				} catch(Erro) {return false;}
			}
		}
	//}
	//catch(Erro) {return false;}

	return true;
}

//Márcio Brener: 14/11/2003, sexta-feira
//Retorna o primeiro item selecionado em um objeto select (one ou multiple)
function firstSelectedIndex(ObjSelect) {
	if (typeof(ObjSelect) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função firstSelectedIndex(), Parâmetro(s): ObjSelect passado: " + typeof(ObjSelect));
		return false;
	}

	if (ObjSelect.options.length < 1) return -1;

	for (var i = 0; i < ObjSelect.options.length; i++) {
		if (!ObjSelect.options[i].selected) continue;

		return i;
	}

	return -1;
}

//Márcio Brener: 14/11/2003, sexta-feira
//Retorna o último item selecionado em um objeto select (one ou multiple)
function lastSelectedIndex(ObjSelect) {
	if (typeof(ObjSelect) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função firstSelectedIndex(), Parâmetro(s): ObjSelect passado: " + typeof(ObjSelect));
		return false;
	}

	if (ObjSelect.options.length < 1) return -1;

	for (var i = ObjSelect.options.length - 1; i > -1; i--) {
		if (!ObjSelect.options[i].selected) continue;

		return i;
	}

	return -1;
}

function iif(condicao, opcaoTrue, opcaoFalse) {
	if (condicao) return opcaoTrue;

	return opcaoFalse;
}

//Márcio Brener: 09/10/2003, quinta-feira
//Adiciona elementos de uma lista origem em uma destino
function adicionaItemSelectList(selectOrigem, selectDestino, removeItemOrigem, mantemIndexZeroOrigem, mantemIndexZeroDestino) {
	//Definição de tipo selectOrigem
	if (typeof(selectOrigem) == "string")
		var selectOrigem = document.getElementById(selectOrigem);
	else if (typeof(selectOrigem) == "object")
		if (selectOrigem.id != "")
			var selectOrigem = document.getElementById(selectOrigem.id);
		else
			var selectOrigem = document.getElementById(selectOrigem.name);
	else {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função adicionaItemSelectList(), Parâmetro(s) selectOrigem passado: " + typeof(selectOrigem));
		return false;
	}

	//Definição de tipo selectDestino
	if (typeof(selectDestino) == "string")
		var selectDestino = document.getElementById(selectDestino);
	else if (typeof(selectDestino) == "object")
		if (selectDestino.id != "")
			var selectDestino = document.getElementById(selectDestino.id);
		else
			var selectDestino = document.getElementById(selectDestino.name);
	else {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função adicionaItemSelectList(), Parâmetro(s) selectDestino passado: " + typeof(selectDestino));
		return false;
	}

	if (typeof(removeItemOrigem) != "boolean") var removeItemOrigem = false;
	if (typeof(mantemIndexZeroDestino) != "boolean") var mantemIndexZeroDestino = false;
	if (typeof(mantemIndexZeroOrigem) != "boolean") var mantemIndexZeroOrigem = false;

	Origem:
	for (var i = selectOrigem.options.length - 1; i > -1 ; i--) {
		if (!selectOrigem.options(i).selected) continue;
		else if (mantemIndexZeroOrigem && i == 0) continue;

		//Verificar se já há na origem o objeto
		for (var j = 0; j < selectDestino.options.length; j++) {
			if (selectDestino.options(j).innerText.toLowerCase() == selectOrigem.options(i).innerText.toLowerCase()) continue Origem;
		}

		var option = document.createElement("OPTION");

		if (mantemIndexZeroDestino && selectDestino.options.length > 0)
			selectDestino.options.add(option, 1);
		else
			selectDestino.options.add(option, 0);

		option.innerText = selectOrigem.options(i).innerText;
		option.value = selectOrigem.options(i).value;


		//Selecionar o item incluído no destino
		if (mantemIndexZeroDestino && selectDestino.options.length > 0)
			selectDestino.options(1).selected = true;
		else
			selectDestino.options(0).selected = true;
	}

	//Remover os itens da origem
	if (removeItemOrigem)
	while (selectOrigem.options.selectedIndex != -1) {
		if (mantemIndexZeroOrigem && selectOrigem.options.length > 0)
			selectOrigem.options(0).selected = false;

		for (var i = 0; i <	selectOrigem.options.length; i++) {
			if (!selectOrigem.options(i).selected) continue;

			selectOrigem.options.remove(i);
		}
	}
}

function RecarregaForm(Form, ObjetosExcecao) {
	if(document.forms.length == 0) return false;

	if(window.location.toString().indexOf("?") == -1) return false;

	if(Form == null) var Form = document.forms[0];

	if(ObjetosExcecao == null || typeof(ObjetosExcecao) == "undefined") var ObjetosExcecao = "";

	try {
		ObjetoN:
		for(var i = 0; i < Form.elements.length; i++) {
			if(CanDo(Form.elements[i].type, "button,submit") || CanDo(Form.elements[i].name, ObjetosExcecao)) continue ObjetoN;

			if(CanDo(Form.elements[i].type, "text,textarea,file,password")) {
				Form.elements[i].value = urlParametros(Form.elements[i].name);
			}
			else if(CanDo(Form.elements[i].type, "radio,checkbox")) {
				if(Form.elements[i].value == urlParametros(Form.elements[i].name)) Form.elements[i].checked = true;
			}

			else if(CanDo(Form.elements[i].type, "select-one,select-multiple")) {
				for(var j = 0; j < Form.elements[i].length; j++) {
					if(Form.elements[i].options[j].value == urlParametros(Form.elements[i].name)) Form.elements[i].options[j].selected = true;
				}
			}
		}
	}
	catch(Erro) {return false;}

	return true;
}

function Time() {
	var Data = new Date();
	return StrZero(Data.getHours(), 2) + ":" + StrZero(Data.getMinutes(), 2) + ":" + StrZero(Data.getSeconds(), 2);
}

function getDay() {
	var data = new Date();
	return data.getDate();
}

function getDayOfWeek() {
	var data = new Date();
	return data.getDay();
}

function getMonth() {
	var data = new Date();
	return data.getMonth() + 1;
}

function getYear() {
	var data = new Date();
	return data.getYear();
}

function ultimoDiaMes(mes, ano) {
	var data = new Date();
	var dia = 0;
	var mes = parseInt(mes);
	if (ano == null) var ano = data.getYear();

	var data = new Date(ano, mes, dia);

	return data.getDate();
}

function ultimaDataMes(mes, ano) {
	var data = new Date();
	if (ano == null) var ano = data.getYear();
	var dia = ultimoDiaMes(mes, ano);

	mes = (mes < 10) ? "0" + mes : mes.toString();
	dia = (dia < 10) ? "0" + dia: dia.toString();

	return (dia + "/" + mes + "/" + ano);
}

function primeiraDataMes(mes, ano) {
	var data = new Date();

	if (ano == null) var ano = data.getYear().toString();

	var mes = parseInt(mes);
	var mes = (mes < 10) ? "0" + mes.toString(): mes.toString();

	return "01/" + mes + "/" + ano;
}

function nomeMes(data) {
	if (typeof(data) == null) var data = new Date();

	var mesesTexto = "Janeiro,Fevereiro,Março,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro";
	var mesesNomes = mesesTexto.split(",");

	return mesesNomes[data.getMonth()];
}

function semanaDia(data) {
	if (typeof(data) == "undefined") var data = new Date();

	var diasTexto = "Domingo,Segunda,Terça,Quarta,Quinta,Sexta,Sábado";
	var diasNomes = diasTexto.split(",");

	return  diasNomes[data.getDay()];
}

function exibeData(data) {
	var data = new Date();
	return semanaDia(data) + ", " + StrZero(data.getDay(), 2) + " de " + nomeMes(data) + " de " + data.getYear() + ".";
}

function LookUp(Texto, Lista, Delimitador) {
	if(Delimitador == null) var Delimitador = ",";

	var ArrayLista = Lista.split(Delimitador);

	for(var i = 0; i < ArrayLista.length; i++) if(Texto.toLowerCase() == ArrayLista[i].toLowerCase()) return i;

	return -1;
}

function Today() {
	var Data = new Date();
	var Data = Data.toGMTString();
	var Data = Data.split(" ");

	var StringDia = StrZero(Data[1], 2);
	var StringMes = StrZero(LookUp(Data[2], "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec") + 1, 2);
	var StringAno = StrZero(Data[3], 4);

	return StringDia + "/" + StringMes + "/" + StringAno;
}


function StrZero(Valor, Tamanho) {
	if(typeof(Valor) == "object") var Valor = Valor.value;

	var Tamanho = parseInt(Tamanho);
	var Retorno = Valor.toString(10);

	for(var i = Retorno.length; i < Tamanho; i++) Retorno =+ "0" + Retorno;

	return Retorno;
}


function Rigth(Texto, N) {
	return Texto.substring(Texto.length - parseInt(N, 10), Texto.length);
}


function Left(Texto, N) {
	return Texto.substr(0, parseInt(N, 10));
}


function ReplaceAll(Texto, StringOrigem, StringDestino) {
	if(StringOrigem == StringDestino) return Texto;

	while(Texto.lastIndexOf(StringOrigem) > -1) Texto = Texto.replace(StringOrigem, StringDestino);

	/*
	if(StringOrigem == StringOrigem.toLowerCase())
		while(Texto.lastIndexOf(StringOrigem) > -1) Texto = Texto.replace(StringOrigem, StringDestino);
	else
		while(Texto.toUpperCase().lastIndexOf(StringOrigem.toUpperCase()) > -1) Texto = Texto.replace(StringOrigem.toUpperCase(), StringDestino);		
	*/

	return Texto;
}


function RemoveAcento(Texto) {
	if(typeof(Texto) == "object") var Texto = Texto.value;

	var StringRetorno = "";
	for(var i = 0; i < Texto.length; i++) {
		if("Á,Â,Ã,À,Ä".indexOf(Texto.charAt(i)) > -1)		StringRetorno += "A";
		else if("á,â,ã,à,ä".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "a";
		else if("É,Ê,Ë,È".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "E";
		else if("é,ê,ë,è".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "e";
		else if("Í,Î,Ï,Ì".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "I";
		else if("í,î,ï,ì".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "i";
		else if("Ó,Ô,Ö,Õ,Ò".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "O";
		else if("ó,ô,ö,õ,ò".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "o";
		else if("Ú,Û,Ü,Ù".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "U";
		else if("ú,û,ü,ù".indexOf(Texto.charAt(i)) > -1)	StringRetorno += "u";
		else if("Ç".indexOf(Texto.charAt(i)) > -1)		StringRetorno += "C";
		else if("ç".indexOf(Texto.charAt(i)) > -1)		StringRetorno += "c";
		else							StringRetorno += Texto.charAt(i);
	}

	return StringRetorno;
}

function ReadOnlyObjeto(Obj, Status) {
	if (typeof(Status) != "boolean") {
		window.alert("Erro de programação!\nParâmetro Status não é valor boolean válido! Função [ReadOnlyObjeto]");
		return false;
	}

	//Testar se objeto válido
	if (typeof(Obj) != "object") {
		window.alert("Erro de programação!\nParâmetro Obj não é um objeto válido! Função [ReadOnlyObjeto]");
		return false;
	}

	if (Obj.type == "hidden") return false;

	if (!CanDo(Obj.type, "text,password,file,textarea,select-one,select-multiple,button,submit,radio,checkbox")) {
		window.alert("Erro de programação!\nParâmetro Obj não tem um tipo '" + Obj.type + "' não previsto para a função! Função [ReadOnlyObjeto]");
		return false;
	}

	//else if (CanDo(Obj.type, "radio,select-one,checkbox,button")) Obj.disabled = Status;
	//else Obj.readOnly = Status;
	else Obj.disabled = Status;

	if (Status) Obj.style.backgroundColor = "inactivecaptiontext";
	else Obj.style.backgroundColor = "";

	return false;
}


function ReadOnlyForm(Formulario, Status, ListaExcecao) {
	if (typeof(Formulario) != "object") {
		window.alert("Erro de programação!\nParâmetro formulário não é um objeto válido! Função [ReadOnlyForm]");
		return false;
	}
	else if (typeof(Status) != "boolean") {
		window.alert("Erro de programação!\nParâmetro Status não é valor boolean válido! Função [ReadOnlyForm]");
		return false;
	}

	if (typeof(ListaExcecao) == "undefined") var ListaExcecao = "";

	for (var i = 0; i < Formulario.elements.length; i++) {
		if (CanDo(Formulario.elements[i].name, ListaExcecao)) continue;

		ReadOnlyObjeto(Formulario.elements[i], Status);
	}
}

function Trim(Obj) {
	if (typeof(Obj) == "object") var Texto = Obj.value;
	else if (typeof(Obj) == "string") var Texto = Obj;
	else {
		window.alert("Erro de programação!\nParâmetro Obj não é um objeto ou string válido! Função [Trim()]");
		return false;
	}

	var lengthTexto = Texto.length - 1;

	//Remove os espaços à esquerda
	for (var i = 0; i <= lengthTexto; i++) {
		if (Texto.charAt(0) == " ") Texto = Texto.slice(1);
		else break;
	}

	//Remove os espaços à direita
	var lengthTexto = Texto.length - 1;
	for (var i = lengthTexto; i > -1; i--) {
		if (Texto.charAt(Texto.length - 1) == " ") Texto = Texto.substring(0, Texto.length - 1);
		else break;
	}

	return Texto;
}

function _EsmaecerDIV(ObjDIV, RevelarOcultar) {
	//Método implementado para operar sobre diversos Divs simultaneamente
	//sem alterar a chamada do método

	if (ObjDIV.length == null) {
		var ObjDIV = new Array (ObjDIV);
	}
	
	for (i = 0; i < ObjDIV.length; i++) {
		if (RevelarOcultar) { //Exibir o Div
			var flag = true;
			for (j = 0; j < ObjDIV.length; j++) {
				if (!ObjDIV[j].filters.alpha.opacity >= 100) {
					flag = false;
					break;
				}
			}

			if (flag) {
				window.clearInterval(TimerEsmaecerDIV);
				return true;
			}

			var n = 2;
		}
		else { //Esconder o Div
			var flag = true;
			for (j = 0; j < ObjDIV.length; j++) {
				if (!ObjDIV[j].filters.alpha.opacity <= 0) {
					flag = false;
					break;
				}
			}

			if (flag) {
				window.clearInterval(TimerEsmaecerDIV);
				for (j = 0; j < ObjDIV.length; j++) ObjDIV[j].style.visibility = "hidden";
				return true;
			}

			var n = -2;
		}
	}

	for (j = 0; j < ObjDIV.length; j++)
		ObjDIV[j].filters.alpha.opacity = ObjDIV[j].filters.alpha.opacity + n;

	return false;
}

function EsmaecerDIV(ObjDIV, RevelarOcultar, Loop) {
	if (RevelarOcultar) var RevelarOcultar = "true"; else var RevelarOcultar = "false";

	//Método implementado para operar sobre diversos Divs simultaneamente
	//sem alterar a chamada do método
	if (ObjDIV.length == null) {
		var ObjDIV = new Array (ObjDIV);
	}

	//Parar se algum Div em processamento
	try {
		window.clearInterval(TimerEsmaecerDIV);
	} catch (Erro) {}

	//Exibir, se objeto oculto
	var stringFuncao = "";
	for (i = 0; i < ObjDIV.length; i++) {
		ObjDIV[i].style.visibility = "visible";
		stringFuncao += "," + ObjDIV[i].id;
	}

	stringFuncao = stringFuncao.substring(1);

	if ((typeof(Loop) != "boolean") || !Loop)
		var stringFuncao = "_EsmaecerDIV(Array(" + stringFuncao + ") , " + RevelarOcultar + ")";
	else
		var stringFuncao = "LoopEsmaecerDIV(Array(" + stringFuncao + "))";

	TimerEsmaecerDIV = window.setInterval(stringFuncao, 150);

	return true;
}

function LoopEsmaecerDIV(ObjDIV) {
	var n = 0;

	try {
		for (i = 0; i < ObjDIV.length; i++) {
			if (ObjDIV[i].flag == "true") n = -2; else n = 2;

			ObjDIV[i].filters.alpha.opacity = ObjDIV[i].filters.alpha.opacity + n;

			if (ObjDIV[i].filters.alpha.opacity <= 0) ObjDIV[i].flag = "false";
			else if (ObjDIV[i].filters.alpha.opacity >= 100) ObjDIV[i].flag = "true";
		}

		return true;
	} catch (Erro) {
		window.clearInterval(TimerEsmaecerDIV);
		return false;
	}
}

//IMPORTANTE: Este método não pode ser iniciado quando o html já estiver terminado,
//            ou seja, não poderá ser iniciado a partir de um botao ou objeto dinamicamente
function animacaoProcessamento(statusProcesamento, Mensagem, corMensagem) {
	if (typeof(statusProcesamento) != "boolean") {
	}

	if (typeof(corMensagem) == "undefined") corMensagem = "black";

	//Escreve o html para exibição de processamento
	if (typeof(divProcessamento) == "undefined") {
		document.write('<div id="divProcessamento" flag="true" style="position=absolute;  ');
		document.write('align=center; filter:alpha (opacity = \'25\'); left:15; top:420"> ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('    <img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('    <img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento0.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento1.gif">               ');
		document.write('	<img src="/Padroes/Imagens/processamento2.gif">               ');
		document.write('</div>                                                            ');

		document.write('<div id="divMensagem" style="position=absolute; align=center;                     ');
		document.write('	filter:alpha (opacity = \'80\'); left:20; top:420" flag="true">               ');
		document.write('<font face="Verdana" size="2"><b><var id="textDivMensagem"></var></b></font></div>');
	}

	textDivMensagem.innerText = Mensagem;
	textDivMensagem.style.color = corMensagem;

	if (statusProcesamento) EsmaecerDIV(divMensagem, statusProcesamento, statusProcesamento);
	else {
		divMensagem.filters.alpha.opacity = divProcessamento.filters.alpha.opacity + 35;
		EsmaecerDIV(Array(divProcessamento, divMensagem), statusProcesamento, statusProcesamento);
	}
}

//Funções para tratamento de menus em html
function expandeMenu(objMenu) {
	if (typeof(objMenu) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo objMenu não é um objeto inválido para função expandeMenu(), Parâmetro(s) objMenu: " + typeof(objMenu));
		return false;
	}

	var objMenu = document.getElementById(objMenu.id);

	if ("none" == objdocument.getElementById("Menu").style.display) {
		objdocument.getElementById("Menu").style.display = "";

		try {			
			var objImagem = document.getElementById("imagemNode" + objMenu.id);
			objImagem.src = objImagem.src.replace("mais", "menos");
		} catch (Erro) {}


	}
	else {
		objdocument.getElementById("Menu").style.display = "none";

		try {
			var objImagem = document.getElementById("imagemNode" + objMenu.id);
			objImagem.src = objImagem.src.replace("menos", "mais");
		} catch (Erro) {}

	}
}

function recolheMenu(menuID) {
	var menu = document.getElementById(menuID);

	if ("" == document.getElementById("Menu").style.display) document.getElementById("Menu").style.display = "none";
	else document.getElementById("Menu").style.display = "";
}

function abreMenu(menuID, menuObj) {
	expandeMenu(menuID);

	if (document.all(menuObj).menuState == "down")
		document.all(menuObj).menuState = "up";
	else
		document.all(menuObj).menuState = "down";
}

function digitacaoNumero(Obj, flagInteiroDecimal, flagAceitaNegativo, valorMaximo) {
	if (typeof(Obj) == "undefined" || Obj == null) var Obj = document.activeElement;

	if (typeof(flagInteiroDecimal) == "undefined" || flagInteiroDecimal == null) var flagInteiroDecimal = false;

	if (typeof(flagAceitaNegativo) == "undefined" || flagAceitaNegativo == null) var flagAceitaNegativo = false;

	if (typeof(valorMaximo) == "string") var valorMaximo = parseFloat(valorMaximo);
	else if (typeof(valorMaximo) == "undefined" || valorMaximo == null) var valorMaximo = 0;

	//Conteúdo do objeto
	var text = Obj.value;

	//"," e "." Vírgula e Ponto
	if ((event.keyCode.toString() == "44" || event.keyCode.toString() == "46") && flagInteiroDecimal && Trim(text) != "" && (text.indexOf(".") < 0)) {
		event.keyCode = 46;
		return true;
	}

	//"-" Negativo
	if (event.keyCode.toString() == "45" && flagAceitaNegativo && Trim(text) == "" && (text.indexOf("-") < 0)) {
		event.keyCode = event.keyCode;
		return true;
	}

	//0-9
	if (((event.keyCode) >= 48) && ((event.keyCode) <= 57)) {

		//Testar o valor máximo
		if (valorMaximo != 0 && parseFloat(text + String.fromCharCode(event.keyCode)) > valorMaximo) {
			window.alert("O valor máximo permitido são: " + valorMaximo);
			event.keyCode = 0;
			return false;		
		}

		event.keyCode;
		return true;
	}

	event.keyCode = 0;
	return false;
}

//Eventos específicos para cadastros
function desabilitaBotoes(Status) {
	if (document.forms.length == 0) return false;

	if (typeof(Status) != "boolean") var Status = true;

	var Form = document.forms[0];

	for(var i = 0; i < Form.elements.length; i++) {
		if(CanDo(Form.elements[i].type, "button,submit,reset")) continue;

		try {
			Form.elements[i].type.disabled = Status;
		} catch (Erro) {}		
	}	
}

function habilitaObjetosPK(Status) {
	if (document.forms.length == 0) {
		window.alert("Não há no documento nenhum form definido!");
		return false;
	}

	if (typeof(Status) != "boolean") var Status = true;

	Status = !Status;
	var frm = document.forms[0];

	for (var i = 0; i < frm.elements.length; i++) {
		if (typeof(frm.elements[i].PK) == "undefined") continue;

		if (frm.elements[i].PK.toLowerCase() == "true")
			ReadOnlyObjeto(frm.elements[i], Status);
	}

	return true;
}


//Verificação se estão definidos os campos e objetos padrões
function cadastroObjetosPadroes() {
	if (document.forms.length == 0) {
		window.alert("Não há no documento nenhum form definido!");
		return false;
	}

	var frm = document.forms[0];
	var flagErro = false;

	if (typeof(frm.EVENTO) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nO objeto EVENTO não foi criado no form!");
		flagErro = true;
	}

	if (typeof(frm.ID) != "object" && typeof(frm.PRIMARYKEY) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nO objeto ID ou PRIMARYKEY não foi criado no form!");
		flagErro = true;
	}

	if (typeof(frm.STATUS_ERRO) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nO objeto STATUS_ERRO não foi criado no form!");
		flagErro = true;
	}

	if (typeof(document.getElementById("divUsuarioLogado")) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nO objeto divUsuarioLogado não foi criado no form!");
		flagErro = true;
	}

	if (typeof(frm.MOSTRAR_ESPECIFICACOES) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nO objeto MOSTRAR_ESPECIFICACOES não foi criado no form!");
		flagErro = true;
	}


	return !flagErro;
}

function cadastroBodyOnLoad() {
	//Verificação se estão criados os objetos padrões
	if (!cadastroObjetosPadroes()) return false;

	//Exibir o usuário logado
	if (document.getElementById("divNomeUsuario") != null)
	if (divNomeUsuario.innerText == "") {
		//revisar divData.innerText = Today() + " " + Time();
		divNomeUsuario.innerText 		  = getCookie("LOGIN_NOME");
		document.forms[0].LOGIN.value = getCookie("LOGIN_ID");
	}

	//Trocar a classe de cores conforme o status de erro
	if (toBoolean(frm.STATUS_ERRO.value))
		divMENSAGEM_RETORNO.style.color = "red";
	else
		divMENSAGEM_RETORNO.style.color = "blue";

	if (frm.EVENTO.value.toLowerCase() == "incluir") {
		//Ocultar os demais botões
		BotoesCadastroAcoes.style.display = "inline";
		BotoesCadastroEventos.style.display = "none";
		ReadOnlyForm(frm, false, "");
	}
	else {
		ReadOnlyForm(frm, true, "BotaoPesquisar,BotaoIncluir,BotaoEditar,BotaoExcluir,BotaoConfirmar,BotaoCancelar");

		//Habilitar os campos Identificadores (ID)/Primary Key (PK)
		habilitaObjetosPK(true);
	}

	//Desabilitar o STATUS_ERRO, esse dado é somente de entrada
	try {
		frm.STATUS_ERRO.disabled = true;
	} catch (Erro) {}

	return true;
}

//Função global/padrão das páginas de cadastro
function eventoCadastro(BotaoAcao) {
	//To Do: Incluir verificação se há o método "eventoCadastroEspecifico" na página de cadastro

	if (BotaoAcao.name == "BotaoPesquisar") {
		frm.EVENTO.value = "Pesquisar";

		if (!eventoCadastroEspecifico(frm.EVENTO.value, false)) return false;

		frm.submit();
	}

	else if (BotaoAcao.name == "BotaoCancelar") {
		frm.EVENTO.value = "Cancelar";
	
		document.forms[0].MENSAGEM_RETORNO.value = "Ação cancelada";
		document.all.divMENSAGEM_RETORNO.innerText = document.forms[0].MENSAGEM_RETORNO.value;

		if (!eventoCadastroEspecifico(frm.EVENTO.value, false)) return false;

		ReadOnlyForm(frm, false, "");
		desabilitaBotoes(false);
		habilitaObjetosPK(true);
		frm.submit();
	}

	else if (BotaoAcao.name == "BotaoEditar") {
		if (Trim(frm.ID.value) == "") {
			window.alert("Não há registro para edição.\nEscolha a opção Pesquisar para escolher os dados para edição.");

			//Ocultar os botões de eventos de cadastro (Pesquisar, Incluir, Editar, Excluir)
			BotoesCadastroEventos.style.display = "inline";
			BotoesCadastroAcoes.style.display = "none";

			//Habilita os controles para edição
			ReadOnlyForm(frm, true, "BotaoPesquisar,BotaoIncluir,BotaoEditar,BotaoExcluir,BotaoConfirmar,BotaoCancelar");

			//Desabilita os controles de Chave Primária (PK)
			habilitaObjetosPK(true);
			return false;
		}

		frm.EVENTO.value = "Editar";

		if (!eventoCadastroEspecifico(frm.EVENTO.value, false)) return false;

		document.forms[0].MENSAGEM_RETORNO.value = "Registro em edição";
		document.all.divMENSAGEM_RETORNO.innerText = document.forms[0].MENSAGEM_RETORNO.value;

		//Ocultar os botões de eventos de cadastro (Pesquisar, Incluir, Editar, Excluir)
		BotoesCadastroEventos.style.display = "none";
		BotoesCadastroAcoes.style.display = "inline";

		//Habilita os controles para edição
		ReadOnlyForm(frm, false, "");

		//Desabilita os controles de Chave Primária (PK)
		habilitaObjetosPK(false);

		try {
			divNomeUsuario.innerText = getCookie("LOGIN_NOME");
			document.forms[0].LOGIN.value = getCookie("LOGIN_ID");
		} catch (e) {}
	}

	else if (BotaoAcao.name == "BotaoExcluir") {
		if (Trim(frm.ID.value) == "") {
			window.alert("Não há registro para exclusão.\nEscolha a opção Pesquisar para escolher os dados para exclusão.");

			//Ocultar os botões de eventos de cadastro (Pesquisar, Incluir, Editar, Excluir)
			BotoesCadastroEventos.style.display = "inline";
			BotoesCadastroAcoes.style.display = "none";

			//Habilita os controles para edição
			ReadOnlyForm(frm, true, "BotaoPesquisar,BotaoIncluir,BotaoEditar,BotaoExcluir,BotaoConfirmar,BotaoCancelar");

			//Desabilita os controles de Chave Primária (PK)
			habilitaObjetosPK(true);

			return false;
		}

		frm.EVENTO.value = "Excluir";
		if (!eventoCadastroEspecifico(frm.EVENTO.value, false)) return false;

		divMENSAGEM_RETORNO.innerText = "Clique em Confirmar para excluir o registro.";

		//Ocultar os botões de eventos de cadastro (Pesquisar, Incluir, Editar, Excluir)
		BotoesCadastroEventos.style.display = "none";
		BotoesCadastroAcoes.style.display = "inline";

		try {
			divNomeUsuario.innerText 		  = getCookie("LOGIN_NOME");
			document.forms[0].LOGIN.value = getCookie("LOGIN_ID");
		} catch(e) {}
	}

	else if (BotaoAcao.name == "BotaoIncluir") {
		frm.EVENTO.value = "Incluir";

		ReadOnlyForm(frm, false, "");
		resetForm(frm);

		if (!eventoCadastroEspecifico(frm.EVENTO.value)) return false;

		document.forms[0].MENSAGEM_RETORNO.value = "Registro em inclusão";
		document.all.divMENSAGEM_RETORNO.innerText = document.forms[0].MENSAGEM_RETORNO.value;

		//Ocultar os botões de eventos de cadastro (Pesquisar, Incluir, Editar, Excluir)
		BotoesCadastroEventos.style.display = "none";
		BotoesCadastroAcoes.style.display = "inline";

		try {
			divNomeUsuario.innerText 		  = getCookie("LOGIN_NOME");
			document.forms[0].LOGIN.value = getCookie("LOGIN_ID");
		} catch(e) {}
	}

	//Confirmação dos eventos
	else if (BotaoAcao.name == "BotaoConfirmar") {
		if (frm.EVENTO.value == "Incluir") {
			if (eventoCadastroEspecifico(frm.EVENTO.value, true)) {
				desabilitaBotoes(true);
				habilitaObjetosPK(true);
				frm.submit();
			}
		}

		else if (frm.EVENTO.value == "Editar") {
			if (eventoCadastroEspecifico(frm.EVENTO.value, true)) {
				desabilitaBotoes(true);
				habilitaObjetosPK(true);
				frm.submit();
			}
		}

		else if (frm.EVENTO.value == "Excluir") {
			if (eventoCadastroEspecifico(frm.EVENTO.value, true)) {
				desabilitaBotoes(true);
				habilitaObjetosPK(true);
				frm.submit();
			}
		}
	}

	return true;
}

//Informa o usuário logado
function exibeNomeUsuario() {
	window.alert(getCookie("NomeUsuario"));

	if (getCookie("NomeUsuario") != null) {
		document.write(getCookie("NomeUsuario"));
		return true;
	}
	else {
		document.write("Usuário desconhecido!");
		return false;
	}

	return true;
}

//Verifica se há Ids e nomes duplicados na página
function verificaIDsENomesDuplicados(exibeMensagemDeErros) {
	if (typeof(exibeMensagemDeErros) != "boolean") var exibeMensagemDeErros = true;

	var frm = document.forms[0];
	var e = document.all;
	var flagErro = false;

	var arrayIdsDuplicados = new Array();
	var arrayNomesDuplicados = new Array();

	var stringIDsDuplicados = "ERRO DE PROGRAMAÇÃO! Método verificaIDsENomesDuplicados()\nOs objeto(s) têm IDs duplicados!\n\n";
	var stringNomesDuplicados = "ERRO DE PROGRAMAÇÃO! Método verificaIDsENomesDuplicados()\nOs objeto(s) têm Nomes duplicados!\n\n";

	//Verifica se há outro objeto com o mesmo Id
	for(var i = 0; i < e.length; i++) {
		if (e[i].id == "" || e[i].id == "undefined" || e[i].id == null) continue;

		for (var j = i + 1; j < e.length; j++)
		if(e[i].id == e[j].id)
			arrayIdsDuplicados[arrayIdsDuplicados.length] = e[i].id + ", tag <" + e[i].tagName + ">";
	}

	if (arrayIdsDuplicados.length > 0) {
		flagErro = true;
		for (var i = 0; i < arrayIdsDuplicados.length; i++)
			stringIDsDuplicados += arrayIdsDuplicados[i] + "\n";
	}

	//Verifica se há outro objeto com o mesmo nome (name)
	for(var i = 0; i < e.length; i++) {
		if (e[i].name == "" || e[i].name == "undefined" || e[i].name == null) continue;

		for (var j = i + 1; j < e.length; j++)
		if(e[i].name == e[j].name)
			arrayNomesDuplicados[arrayNomesDuplicados.length] = e[i].name + ", tag <" + e[i].tagName + ">";
	}
	if (arrayNomesDuplicados.length > 0) {
		flagErro = true;
		for (var i = 0; i < arrayNomesDuplicados.length; i++)
			stringNomesDuplicados += arrayNomesDuplicados[i] + "\n";
	}

	//Exibição de mensagem de erros
	if (flagErro && exibeMensagemDeErros) {
		if (arrayIdsDuplicados.length > 0) window.alert(stringIDsDuplicados);
		if (arrayNomesDuplicados.length > 0) window.alert(stringNomesDuplicados);
	}

	return flagErro;
}


function limitaTamanhoTexto(Obj, tamanhoMaximo) {
	if (!typeof(Obj) == "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função limitaTamanhoTexto(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	if (!CanDo(Obj.type, "textarea")) {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de objeto inválido para função limitaTamanhoTexto(), tipo do objeto passado: " + Obj.type);
		return false;
	}

	if (Obj.type.toLowerCase() == "textarea") var tamanhoTexto = Obj.innerText.length;

	if (tamanhoTexto > tamanhoMaximo) {
		event.keyCode = 0;
		return false;
	}

	return true;
}

//Adiciona um objeto OPTION em um SELECT-LIST ou SELECT-MULTIPLE
function adicionaOption(obj, text, value, uniqueText, uniqueValue) {
	if (uniqueText == null || typeof(uniqueText) != "boolean") var uniqueText = true;

	if (uniqueValue == null || typeof(uniqueValue) != "boolean") var uniqueValue = false;

	if (typeof(obj) == "string") var obj = document.getElementById(obj);

	if (typeof(obj) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nTipo de dado inválido para a função adicionaOption(), Parâmetro(s): obj: " + typeof(obj));
		return false;
	}

	//Verifica se OPTION.text já existente no objeto SELECT-LIST
	if (uniqueText && findOptionByText(obj, text)) {
		window.alert("Parâmetro " + text + " já existe na lista!");
		return false;
	}

	//Verifica se OPTION.value já existente no objeto SELECT-LIST
	if (uniqueValue && findOptionByValue(obj, value)) {
		window.alert("O Valor " + value + " já existe na lista!");
		return false;
	}

	var option = document.createElement("OPTION");

	obj.options.add(option); option.value = value;
	option.innerText = text;

	obj.options[obj.length - 1].selected = true;

	return true;
}

//Inclui as Unidades Federativas do Brasil em um objeto <SELECTION>
function adicionaOptionsUFs(Obj, selecionaUF, valorIgualTexto) {
	if (!typeof(Obj) == "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função adicionaOptionsUF(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	if (!CanDo(Obj.type, "select-one,select-multiple")) {
		window.alert("Erro de programação!\nParâmetro Obj não tem um tipo '" + Obj.type + "' não previsto para o método adicionaOptionsUF(Obj).");
		return false;
	}

	if (valorIgualTexto == null) var valorIgualTexto = false;

	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "AC"; option.innerText = "Acre" 								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "AL"; option.innerText = "Alagoas"							;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "AM"; option.innerText = "Amazonas"						;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "AP"; option.innerText = "Amapá"								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "BA"; option.innerText = "Bahia"								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "CE"; option.innerText = "Ceará"								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "DF"; option.innerText = "Distrito Federal"		;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "ES"; option.innerText = "Espírito Santo"			;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "GO"; option.innerText = "Goiás"								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "MA"; option.innerText = "Maranhão"						;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "MG"; option.innerText = "Minas Gerais"				;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "MS"; option.innerText = "Mato Grosso do Sul"	;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "MT"; option.innerText = "Mato Grosso"					;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "PA"; option.innerText = "Pará"								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "PB"; option.innerText = "Paraíba"							;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "PE"; option.innerText = "Pernambuco"					;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "PI"; option.innerText = "Piauí"								;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "PR"; option.innerText = "Paraná"							;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "RJ"; option.innerText = "Rio de Janeiro"			;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "RN"; option.innerText = "Rio Grande do Norte"	;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "RO"; option.innerText = "Rondônia"						;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "RR"; option.innerText = "Roraima"							;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "RS"; option.innerText = "Rio Grande do Sul"		;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "SC"; option.innerText = "Santa Catarina"			;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "SE"; option.innerText = "Sergipe"							;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "SP"; option.innerText = "São Paulo"						;	if (valorIgualTexto) option.value = option.innerText;
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "TO"; option.innerText = "Tocantins"						;	if (valorIgualTexto) option.value = option.innerText;

	if (typeof(selecionaUF) == "string") selecionaOption(Obj, selecionaUF);

	return true;
}

/*Márcio Brener (marciobrener@hotmail.com)
  Inclui os Paises em um objeto <SELECTION>
  Implementação a partir das informações do registro do Windows 2000
  com codificação dos países de acordo com o Código Telefônico Internacional (propriedade value) */
function adicionaOptionsPaises(Obj, selecionaPais) {
	if (typeof(Obj) != "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função adicionaOptionsPaises(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	if (!CanDo(Obj.type, "select-one,select-multiple")) {
		window.alert("Erro de programação!\nParâmetro Obj não tem um tipo '" + Obj.type + "' não previsto para o método adicionaOptionsPaises(Obj).");
		return false;
	}

	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "93"  ; option.innerText = "Afeganistão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "27"  ; option.innerText = "África do Sul";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "355" ; option.innerText = "Albânia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "49"  ; option.innerText = "Alemanha";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "213" ; option.innerText = "Algéria";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "376" ; option.innerText = "Andorra";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "244" ; option.innerText = "Angola";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "101" ; option.innerText = "Anguila";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "5901"; option.innerText = "Antilhas Francesas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "599" ; option.innerText = "Antilhas Holandesas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "102" ; option.innerText = "Antígua";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "54"  ; option.innerText = "Argentina";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "374" ; option.innerText = "Armênia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "297" ; option.innerText = "Aruba";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "966" ; option.innerText = "Arábia Saudita";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "61"  ; option.innerText = "Austrália";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "43"  ; option.innerText = "Áustria";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "994" ; option.innerText = "Azerbaijão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "103" ; option.innerText = "Bahamas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "880" ; option.innerText = "Bangladesh";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "104" ; option.innerText = "Barbados";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "120" ; option.innerText = "Barbuda";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "973" ; option.innerText = "Barein";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "5399"; option.innerText = "Baía de Guantânamo";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "375" ; option.innerText = "Belarus";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "501" ; option.innerText = "Belize";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "229" ; option.innerText = "Benin";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "105" ; option.innerText = "Bermuda";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "591" ; option.innerText = "Bolívia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "267" ; option.innerText = "Botsuana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "55"  ; option.innerText = "Brasil";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "673" ; option.innerText = "Brunei";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "359" ; option.innerText = "Bulgária";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "226" ; option.innerText = "Burkina Faso";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "257" ; option.innerText = "Burundi";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "975" ; option.innerText = "Butão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "32"  ; option.innerText = "Bélgica";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "387" ; option.innerText = "Bósnia-Herzegovina";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "238" ; option.innerText = "Cabo Verde";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "237" ; option.innerText = "Camarões";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "855" ; option.innerText = "Camboja";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "107" ; option.innerText = "Canadá";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "705" ; option.innerText = "Cazaquistão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "235" ; option.innerText = "Chade";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "56"  ; option.innerText = "Chile";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "86"  ; option.innerText = "China";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "357" ; option.innerText = "Chipre";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "65"  ; option.innerText = "Cingapura";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "57"  ; option.innerText = "Colômbia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "2691"; option.innerText = "Comores";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "109" ; option.innerText = "Comunidade Dominicana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "242" ; option.innerText = "Congo";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "243" ; option.innerText = "Congo, República Democrática do";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "850" ; option.innerText = "Coréia do Norte";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "225" ; option.innerText = "Costa do Marfim";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "506" ; option.innerText = "Costa Rica";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "385" ; option.innerText = "Croácia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "53"  ; option.innerText = "Cuba";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "246" ; option.innerText = "Diego Garcia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "45"  ; option.innerText = "Dinamarca";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "253" ; option.innerText = "Djibuti";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "20"  ; option.innerText = "Egito";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "503" ; option.innerText = "El Salvador";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "971" ; option.innerText = "Emirados Árabes Unidos";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "593" ; option.innerText = "Equador";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "291" ; option.innerText = "Eritréia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "386" ; option.innerText = "Eslovênia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "34"  ; option.innerText = "Espanha";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "1"   ; option.innerText = "Estados Unidos";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "372" ; option.innerText = "Estônia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "251" ; option.innerText = "Etiópia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "679" ; option.innerText = "Fiji";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "63"  ; option.innerText = "Filipinas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "358" ; option.innerText = "Finlândia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "886" ; option.innerText = "Formosa";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "33"  ; option.innerText = "França";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "241" ; option.innerText = "Gabão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "233" ; option.innerText = "Gana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "995" ; option.innerText = "Geórgia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "350" ; option.innerText = "Gibraltar";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "111" ; option.innerText = "Granada";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "299" ; option.innerText = "Groenlândia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "30"  ; option.innerText = "Grécia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "590" ; option.innerText = "Guadalupe";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "124" ; option.innerText = "Guam";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "502" ; option.innerText = "Guatemala";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "594" ; option.innerText = "Guiana Francesa";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "592" ; option.innerText = "Guiana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "240" ; option.innerText = "Guiné Equatorial";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "224" ; option.innerText = "Guiné";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "245" ; option.innerText = "Guiné-Bissau";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "220" ; option.innerText = "Gâmbia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "509" ; option.innerText = "Haiti";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "504" ; option.innerText = "Honduras";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "852" ; option.innerText = "Hong Kong República Popular da China";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "36"  ; option.innerText = "Hungria";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "247" ; option.innerText = "Ilha Ascensão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "672" ; option.innerText = "Ilha Christmas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "269" ; option.innerText = "Ilha Mayotte";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "6722"; option.innerText = "Ilha Norfolk";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "262" ; option.innerText = "Ilha Reunião";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "6701"; option.innerText = "Ilha Rota";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "6702"; option.innerText = "Ilha Tinian";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "108" ; option.innerText = "Ilhas Cayman";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "6101"; option.innerText = "Ilhas Cocos-Keeling";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "682" ; option.innerText = "Ilhas Cook";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "298" ; option.innerText = "Ilhas Faroés";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "500" ; option.innerText = "Ilhas Malvinas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "692" ; option.innerText = "Ilhas Marshall";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "677" ; option.innerText = "Ilhas Salomão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "248" ; option.innerText = "Ilhas Seychelles";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "690" ; option.innerText = "Ilhas Tokelau";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "118" ; option.innerText = "Ilhas Turks e Caicos";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "123" ; option.innerText = "Ilhas Virgens Americanas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "106" ; option.innerText = "Ilhas Virgens Britânicas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "681" ; option.innerText = "Ilhas Wallis e Futuna";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "91"  ; option.innerText = "Índia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "62"  ; option.innerText = "Indonésia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "874" ; option.innerText = "INMARSAT (Atlântico Ocidental)";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "871" ; option.innerText = "INMARSAT (Atlântico Oriental)";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "872" ; option.innerText = "INMARSAT (Pacífico)";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "873" ; option.innerText = "INMARSAT (Índico)";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "870" ; option.innerText = "INMARSAT";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "964" ; option.innerText = "Iraque";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "353" ; option.innerText = "Irlanda";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "98"  ; option.innerText = "Irã";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "354" ; option.innerText = "Islândia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "972" ; option.innerText = "Israel";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "39"  ; option.innerText = "Itália";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "381" ; option.innerText = "Iugoslávia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "967" ; option.innerText = "Iêmen";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "112" ; option.innerText = "Jamaica";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "81"  ; option.innerText = "Japão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "962" ; option.innerText = "Jordão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "686" ; option.innerText = "Kiribati";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "965" ; option.innerText = "Kuwait";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "856" ; option.innerText = "Laos";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "266" ; option.innerText = "Lesoto";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "371" ; option.innerText = "Letônia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "231" ; option.innerText = "Libéria";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "423" ; option.innerText = "Liechtenstein";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "370" ; option.innerText = "Lituânia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "352" ; option.innerText = "Luxemburgo";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "961" ; option.innerText = "Líbano";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "218" ; option.innerText = "Líbia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "853" ; option.innerText = "Macau";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "261" ; option.innerText = "Madagascar";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "960" ; option.innerText = "Maldivas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "223" ; option.innerText = "Mali";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "356" ; option.innerText = "Malta";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "60"  ; option.innerText = "Malásia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "265" ; option.innerText = "Malávi";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "212" ; option.innerText = "Marrocos";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "596" ; option.innerText = "Martinica";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "222" ; option.innerText = "Mauritânia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "230" ; option.innerText = "Maurício";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "691" ; option.innerText = "Micronésia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "373" ; option.innerText = "Moldávia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "976" ; option.innerText = "Mongólia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "113" ; option.innerText = "Montserrat";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "258" ; option.innerText = "Moçambique";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "95"  ; option.innerText = "Myanma";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "52"  ; option.innerText = "México";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "377" ; option.innerText = "Mônaco";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "264" ; option.innerText = "Namíbia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "674" ; option.innerText = "Nauru";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "977" ; option.innerText = "Nepal";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "505" ; option.innerText = "Nicarágua";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "234" ; option.innerText = "Nigéria";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "683" ; option.innerText = "Niue";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "47"  ; option.innerText = "Noruega";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "687" ; option.innerText = "Nova Caledônia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "64"  ; option.innerText = "Nova Zelândia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "227" ; option.innerText = "Níger";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "968" ; option.innerText = "Omã";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "680" ; option.innerText = "Palau";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "507" ; option.innerText = "Panamá";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "675" ; option.innerText = "Papua-Nova Guiné";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "92"  ; option.innerText = "Paquistão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "595" ; option.innerText = "Paraguai";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "31"  ; option.innerText = "Países Baixos";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "51"  ; option.innerText = "Peru";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "689" ; option.innerText = "Polinésia Francesa";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "48"  ; option.innerText = "Polônia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "121" ; option.innerText = "Porto Rico";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "351" ; option.innerText = "Portugal";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "974" ; option.innerText = "Qatar";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "254" ; option.innerText = "Quênia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "44"  ; option.innerText = "Reino Unido";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "236" ; option.innerText = "República Centro-Africana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "82"  ; option.innerText = "República da Coréia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "389" ; option.innerText = "República da Macedônia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "221" ; option.innerText = "República do Senegal";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "110" ; option.innerText = "República Dominicana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "421" ; option.innerText = "República Elovaca";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "996" ; option.innerText = "República Quirgiz";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "420" ; option.innerText = "República Tcheca";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "40"  ; option.innerText = "Romênia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "250" ; option.innerText = "Ruanda";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "7"   ; option.innerText = "Rússia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "670" ; option.innerText = "Saipan";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "684" ; option.innerText = "Samoa Americana";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "685" ; option.innerText = "Samoa";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "378" ; option.innerText = "San Marino";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "290" ; option.innerText = "Santa Helena";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "122" ; option.innerText = "Santa Lúcia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "232" ; option.innerText = "Serra Leoa";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "252" ; option.innerText = "Somália";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "94"  ; option.innerText = "Sri Lanka";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "508" ; option.innerText = "St. Pierre e Miquelon";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "268" ; option.innerText = "Suazilândia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "249" ; option.innerText = "Sudão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "597" ; option.innerText = "Suriname";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "46"  ; option.innerText = "Suécia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "41"  ; option.innerText = "Suíça";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "115" ; option.innerText = "São Cristóvão e Névis";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "239" ; option.innerText = "São Tomé e Príncipe";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "116" ; option.innerText = "São Vincente e Granadinas";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "963" ; option.innerText = "Síria";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "992" ; option.innerText = "Tadjiquistão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "66"  ; option.innerText = "Tailândia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "255" ; option.innerText = "Tanzânia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "228" ; option.innerText = "Togo";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "676" ; option.innerText = "Tonga";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "117" ; option.innerText = "Trindade e Tobago";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "216" ; option.innerText = "Tunísia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "993" ; option.innerText = "Turcomenistão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "90"  ; option.innerText = "Turquia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "688" ; option.innerText = "Tuvalu";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "380" ; option.innerText = "Ucrânia";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "256" ; option.innerText = "Uganda";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "598" ; option.innerText = "Uruguai";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "998" ; option.innerText = "Uzbequistão";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "678" ; option.innerText = "Vanuatu";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "379" ; option.innerText = "Vaticano";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "58"  ; option.innerText = "Venezuela";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "84"  ; option.innerText = "Vietnã";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "263" ; option.innerText = "Zimbábue";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value =   "260" ; option.innerText = "Zâmbia";

	if (typeof(selecionaPais) == "string") selecionaOption(Obj, selecionaPais);
	else selecionaOption(Obj, "55");

	return true;
}


function findOptionByText(obj, text) {
	for (var i = 0; i < obj.options.length; i++)
	if (obj.options[i].text.toLowerCase() == text.toLowerCase()) return true;

	return false;
}

function findOptionByValue(obj, value) {
	for (var i = 0; i < obj.options.length; i++)
	if (obj.options[i].value.toLowerCase() == value.toLowerCase()) return true;

	return false;
}

//Inclui os Dias da semana em um objeto <SELECTION>
function adicionaOptionsDiasSemana(Obj) {
	if (!typeof(Obj) == "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função adicionaOptionsDiasSemana(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	if (!CanDo(Obj.type, "select-one,select-multiple")) {
		window.alert("Erro de programação!\nParâmetro Obj não tem um tipo '" + Obj.type + "' não previsto para o método adicionaOptionsUF(Obj).");
		return false;
	}

	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "1"; option.innerText = "Domingo";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "2"; option.innerText = "Segunda";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "3"; option.innerText = "Terça";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "4"; option.innerText = "Quarta";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "5"; option.innerText = "Quinta";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "6"; option.innerText = "Sexta";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = "7"; option.innerText = "Sábado";

	selecionaOption(Obj, getDayOfWeek().toString());
	return true;
}

function adicionaOptionsDias(Obj) {
	if (!typeof(Obj) == "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função adicionaOptionsDias(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	if (!CanDo(Obj.type, "select-one,select-multiple")) {
		window.alert("Erro de programação!\nParâmetro Obj não tem um tipo '" + Obj.type + "' não previsto para o método adicionaOptionsDias(Obj).");
		return false;
	}

	for (var i = 1; i <= 31; i++) {
		var option = document.createElement("OPTION");
		Obj.options.add(option);
		option.value = i;
		if (i < 10) option.value =+ "0";
		option.innerText = i.toString();
	}

	selecionaOption(Obj, getDay().toString());
	return true;
}


//Inclui os Meses do ano em um objeto <SELECTION>
function adicionaOptionsMeses(Obj) {
	if (!typeof(Obj) == "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função adicionaOptionsUF(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	if (!CanDo(Obj.type, "select-one,select-multiple")) {
		window.alert("Erro de programação!\nParâmetro Obj não tem um tipo '" + Obj.type + "' não previsto para o método adicionaOptionsUF(Obj).");
		return false;
	}

	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 01; option.innerText = "Janeiro";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 02; option.innerText = "Fevereiro";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 03; option.innerText = "Março";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 04; option.innerText = "Abril";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 05; option.innerText = "Maio";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 06; option.innerText = "Junho";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 07; option.innerText = "Julho";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 08; option.innerText = "Agosto";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 09; option.innerText = "Setembro";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 10; option.innerText = "Outubro";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 11; option.innerText = "Novembro";
	var option = document.createElement("OPTION"); Obj.options.add(option); option.value = 12; option.innerText = "Dezembro";

	var mes = getMonth().toString();
	if (mes < 10) var mes = "0" + mes;

	//selecionaOption(Obj, mes);

	return true;
}

function selecionaOption(Obj, listaValores) {
	if (!typeof(Obj) == "object") {
		window.alert("ERRO DE PROGRAMAÇÃO!\nObjeto inválido para função selecionaOption(), Parâmetro(s) Obj passado: " + typeof(Obj));
		return false;
	}

	var flag = false;

	if (Obj.type == "select-one")
	for (var i = 0; i < Obj.options.length; i++)
	if (Obj.options[i].value.toLowerCase() == listaValores.toLowerCase()) {
		Obj.options[i].selected = true;
		flag = true;
	}

	if (Obj.type == "select-multiple")
	for (var i = 0; i < Obj.options.length; i++)
	if (CanDo(Obj.options[i].value.toLowerCase(), listaValores.toLowerCase())) {
		Obj.options[i].selected = true;
		flag = true;
	}

	return flag;
}

function toBoolean(value) {
	if (typeof(value) == "string") {
		if (Trim(value.toLowerCase()) == "true") return true;
		return false;
	}
	else if (typeof(value) == "number") {
		if (value < 0) return false;

		return true;
	}
	else if (typeof(value) == "boolean") return value;

	return false;
}

function ignoraCaracteresInvalidos() {
	//34 (" Aspa Duplas)
	var flag = false;
	if (event.keyCode.toString(10) == "34") flag = true;

	if (flag) {
		event.keyCode = 0;
		return !flag;
	}

	event.keyCode;
	return true;
}


/*------------------------------------------------------------------------------
// Classes
------------------------------------------------------------------------------*/
/* Baseado no código fonte de http://jsguide.net/ (Site em Japonês)
	Implementações por Márcio Brener Costa (marciobrener@hotmail.com)

Usar como abaixo
----------------
<body onload="ProgressBar.initialize()">
<progressbar id=pb2 border=3 bgcolor=white color=black value=70> */
ProgressBar = {
	initialize: function() {
		var pbColl = document.getElementsByTagName("PROGRESSBAR");

		for(var i = 0, len = pbColl.length; i < len; i++) {
			var frame = document.createElement("SPAN");

			frame.style.width = pbColl[i].getAttribute("WIDTH") == null ? 200:
			 					     pbColl[i].getAttribute("WIDTH");

			frame.style.height = pbColl[i].getAttribute("HEIGHT") == null ? 20:
										pbColl[i].getAttribute("HEIGHT");

			frame.style.borderWidth = pbColl[i].getAttribute("BORDER") == null ? 1:
                                   pbColl[i].getAttribute("BORDER");

			frame.style.backgroundColor = pbColl[i].getAttribute("BGCOLOR") == null ? "white":
													pbColl[i].getAttribute("BGCOLOR");

			frame.style.borderStyle = "solid";

			frame.style.textAlign = "left";

			pbColl[i].insertAdjacentElement("afterend", frame);

			var body = document.createElement("SPAN");

			body.value = new Number(pbColl[i].getAttribute("VALUE"));

			body.style.height = parseInt(frame.style.height) -	parseInt(frame.style.borderWidth) * 2;

			body.style.width = body.value + "%";

			body.style.backgroundColor = pbColl[i].getAttribute("COLOR") == null ? "black":
                                      pbColl[i].getAttribute("COLOR");

			frame.appendChild(body);

			pbColl[i]._impl = body;

			pbColl[i].setValue = function(progress) {this._impl.style.width = progress + "%";}
		}
	}
}

function zoom(paginaZoom, width, heigth) {
	var location = paginaZoom + '?TABELA=' + document.forms[0].TABELA.value;
	location += '&PRIMARYKEY=' + document.forms[0].PRIMARYKEY.value;
	location += '&VIEW=' + document.forms[0].VIEW.value;
	location += '&URL=' + document.forms[0].URL_ORIGEM.value;

	var url = window.showModalDialog(location, window, 'help: no; resizable: false; status: yes;scroll:yes;unadorned:yes;edge:raised', true);
	//var w = window.open(location, document, 'help: no; resizable: false; status: yes;scroll:yes;unadorned:yes;edge:raised', true);

	/*
	if (url != null) {

		window.alert(url);
		window.alert(urlParametros("evento", url));
		document.forms[0].EVENTO.value = urlParametros("EVENTO", url);
		document.forms[0].TABELA.value = urlParametros("TABELA", url);
		document.forms[0].PRIMARYKEY.value = urlParametros("PRIMARYKEY", url);
		document.forms[0].VIEW.value = urlParametros("VIEW", url);

		document.forms[0].action = url;
		document.forms[0].method = "GET";
		document.forms[0].submit();

		window.alert(url);
		window.location = "www.google.com.br";
		window.alert('qak');
		return true;
	}
	*/
	return false;
}


/* Inicialização das classes */
ProgressBar.initialize();

//Verificação dos objetos
verificaIDsENomesDuplicados(true);

MM_reloadPage(true);

//FIM DO ARQUIVO DE SCRIPTS

function emailCheck (email, showMessage) {
	/* The following variable tells the rest of the function whether or not
	to verify that the address ends in a two-letter country or well-known
	TLD.  1 means check it, 0 means don't. */

	if (typeof(email) == "object") var emailStr = email.value;
	else var emailStr = email;

	if (showMessage == null) var showMessage = false;

	var checkTLD=1;
	
	/* The following is the list of known TLDs that an e-mail address must end with. */
	
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	
	/* The following pattern is used to check if the entered e-mail address
	fits the user@domain format.  It also is used to separate the username
	from the domain. */
	
	var emailPat=/^(.+)@(.+)$/;
	
	/* The following string represents the pattern for matching all special
	characters.  We don't want to allow special characters in the address. 
	These characters include ( ) < > @ , ; : \ " . [ ] */
	
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	
	/* The following string represents the range of characters allowed in a 
	username or domainname.  It really states which chars aren't allowed.*/
	
	var validChars="\[^\\s" + specialChars + "\]";
	
	/* The following pattern applies if the "user" is a quoted string (in
	which case, there are no rules about which characters are allowed
	and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
	is a legal e-mail address. */
	
	var quotedUser="(\"[^\"]*\")";
	
	/* The following pattern applies for domains that are IP addresses,
	rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
	e-mail address. NOTE: The square brackets are required. */
	
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	
	/* The following string represents an atom (basically a series of non-special characters.) */
	
	var atom=validChars + '+';
	
	/* The following string represents one word in the typical username.
	For example, in john.doe@somewhere.com, john and doe are words.
	Basically, a word is either an atom or quoted string. */
	
	var word="(" + atom + "|" + quotedUser + ")";
	
	// The following pattern describes the structure of the user
	
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	
	/* The following pattern describes the structure of a normal symbolic
	domain, as opposed to ipDomainPat, shown above. */
	
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	
	/* Finally, let's start trying to figure out if the supplied address is valid. */
	
	/* Begin with the coarse pattern to simply break up user@domain into
	different pieces that are easy to analyze. */
	
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		/* Too many/few @'s or something; basically, this address doesn't
		even fit the general mould of a valid e-mail address. */

		if (showMessage) {
			window.alert("Email inválido");
			if (typeof(email) == "object") email.focus();
		}
		
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	// Start by checking that only basic ASCII characters are in the strings (0-127).
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			if (showMessage) {
				window.alert("Email inválido");
				if (typeof(email) == "object") email.focus();
			}

			return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			if (showMessage) {
				window.alert("Email inválido");
				if (typeof(email) == "object") email.focus();
			}

			return false;
		}
	}
	
	// See if "user" is valid 
	
	if (user.match(userPat)==null) {
		// user is not valid
		if (showMessage) {
			window.alert("Email inválido");
			if (typeof(email) == "object") email.focus();
		}

		return false;
	}
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic
	host name) make sure the IP address is valid. */
	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	
	// this is an IP address
	
	for (var i=1;i<=4;i++) {
		if (IPArray[i] > 255) {
			if (showMessage) {
				window.alert("Email inválido");
				if (typeof(email) == "object") email.focus();
			}

			return false;
		}
	}
	return true;
	}
	
	// Domain is symbolic name.  Check if it's valid.
	 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;

	for (i = 0; i < len; i++) {
		if (domArr[i].search(atomPat) == -1) {
			if (showMessage) {
				window.alert("Email inválido");
				if (typeof(email) == "object") email.focus();
			}

			return false;
		}
	}
	
	/* domain name seems valid, but now make sure that it ends in a
	known top-level domain (like com, edu, gov) or a two-letter word,
	representing country (uk, nl), and that there's a hostname preceding 
	the domain or country. */
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		if (showMessage) {
			window.alert("Email inválido");
			if (typeof(email) == "object") email.focus();
		}

		return false;
	}
	
	// Make sure there's a host name preceding the domain.
	
	if (len < 2) {
		if (showMessage) {
			window.alert("Email inválido");
			if (typeof(email) == "object") email.focus();
		}

		return false;
	}
	
	// If we've gotten this far, everything's valid!
	return true;
}
