function utf8_encode ( str_data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
 
    str_data = str_data.replace(/\r\n/g,"\n");
    var utftext = "";
 
    for (var n = 0; n < str_data.length; n++) {
        var c = str_data.charCodeAt(n);
        if (c < 128) {
            utftext += String.fromCharCode(c);
        } else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        } else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
 
    return utftext;
}
function StringBuffer() {
	this.length = 0;
	
	this._cache = null;
	this._data = [];
	this._joiner = (arguments.length == 1) ? arguments[0] : "";
	
	if (arguments.length > 0) {
		for (var i = 0; i < arguments.length; i++) {
			this.append(arguments[i]);
		}
	}
}


var _p = StringBuffer.prototype;


_p.append = function (s) {
	this.length += String(s).length;
	this._data[this._data.length] = String(s);
}


_p.clear = function () {
	this._cache = null;
	
	for (var i = 0; i < this._data.length; i++) {
		this._data[i] = null;
	}
	
	this._data = [];
}


_p.toString = function () {
	if (this._cache != null) {
		return this._cache;
	}
	
	return (this._cache = this._data.join(this._joiner));
}

function limpaDiv(div){
	$(div).innerHTML = "";
	$(div).className = "desaparece";
}

function LimpaResposta() {
	$('resposta').innerHTML = "";
}
function AjaxLimpaConteudo(NomeConteudo){
	xajax_LimpaConteudoAjax(NomeConteudo);	
}

function Espera(){
    $('carregando').className = "aparece";
}

function verificaHomonimoPaciente(idPaciente,nome,dataNascimento,idUnidade){
	// SE JÁ TIVER O IDPACIENTE, É PQ O PACIENTE JÁ FOI SALVO, NÃO PRECISA AVISAR
	if(idPaciente=='' && nome!='' && dataNascimento != '' && idUnidade!='0'){
		$('carregando').className = "aparece";
		xajax_verificaHomonimoPaciente(nome,dataNascimento,idUnidade);
	}
}

function NomeMedicoPeloCrm(Crm,NomeCampoMedico){
  LimpaResposta;
  $('carregando').className = "aparece";
  NomeCampoMedico.value = 'Aguarde...';
  xajax_MostraNomeMedicoPeloCrm(Crm.value);
}
function AjaxNomePaciente(NomeCampoCodigo,NomeCampoNome){
  LimpaResposta;
  $('carregando').className = "aparece";
  NomeCampoNome.value = 'Aguarde...';
  xajax_MostraNomePaciente(NomeCampoCodigo.value);
}
function AjaxCriarTabela(NumColunas,NumLinhas){
	LimpaResposta;
	$('carregando').className = "aparece";
	xajax_CriarTabela(NumColunas,NumLinhas);
}

function buscaNomePaciente(retorno,idPaciente){
	if(idPaciente)
		xajax_buscaNomePaciente(retorno,idPaciente);
}

function DropDown() {
	LimpaResposta();
	$('carregando').className = "aparece";
	xajax_ExibeConteudoDropDown();
}

function limpaDropDown(nomeCampo) {
	var qtd_dados = $(nomeCampo).options.length;
	var i;
	for ( i = 0; i < qtd_dados; i++ ) {
		$(nomeCampo).remove(0);
	}
	$(nomeCampo).options[0] = new Option(" ","");
}



// ESSA FUNÇÃO RECEBE O NOME DO CAMPO DO ESTADO, E O NOME DO CAMPO DA CIDADE QUE IRA RECEBER AS CIDADES
function exibeDropDown(nomeCampoEstado,nomeCampoCidade) {
	$('carregando').className = "aparece";
	limpaDropDown(nomeCampoCidade);
	xajax_buscaCidades(nomeCampoCidade,$(nomeCampoEstado).value);
	return true;
}

function carregaProfissionaisCboUnidade(campoProfissionais,campoCbo,idUnidade){
	if(idUnidade != ""){
		limpaDropDown(campoProfissionais); 
		if(campoCbo){
			limpaDropDown(campoCbo);
		}
		xajax_carregaProfissionaisCboUnidade(campoProfissionais,campoCbo,idUnidade);
	}else{
		limpaDropDown(campoProfissionais);
		limpaDropDown(campoCbo);
	}
}
function carregaProfissionaisUnidade(campoProfissionais,idUnidade){ 
	limpaDropDown(campoProfissionais);
	xajax_carregaProfissionaisUnidade(campoProfissionais,idUnidade);
}

function carregaCboProfissional(campoCbo){
	idProfissional	= $('idProfissional').value;
	idUnidade		= $('unidade').value;
	//limpaDropDown(campoCbo); // NÃO PODE LIMPAR O DROPDOWN SE NÃO VAI DAR PROBLEMA
	xajax_carregaCboProfissional(idProfissional,campoCbo,idUnidade);
}
function carregaFornecedoresUnidade(campoFornecedores,idUnidade){
	limpaDropDown(campoFornecedores);
	xajax_carregaFornecedoresUnidade(campoFornecedores,idUnidade);
}

// DADO UM CEP UM CAMPO DE ESTADO E UM CAMPO DE CIDADE, CARREGA O ESTADO E A CIDADE PARA O CAMPO CORRESPONDENTE
function carregaEstadoCidade(cep,campoEstado,campoCidade){
	xajax_carregaEstadoCidade(cep,campoEstado,campoCidade);
}

function CarregarDados(modulo,chave){
	
	if(modulo=='profissionais'){
		window.parent.$('idProfissional').value=chave;
		window.parent.document.fProfissionais.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo=='autorizadores'){
		window.parent.$('idAutorizador').value=chave;
		window.parent.document.fAutorizador.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo=='unidades'){
		window.parent.$('idUnidadeSaude').value=chave;
		window.parent.document.fUnidades.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo=='terceiros'){
		window.parent.$('idTerceiro').value=chave;
		window.parent.document.fTerceiros.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo=='usuarios'){
		window.parent.$('idUsuario').value=chave;
		window.parent.document.fUsuarios.submit();
		window.parent.Windows.closeAll();
	}
	else
	if(modulo=='pacientes'){
		window.parent.$('idPaciente').value=chave;
		window.parent.document.fPacientes.submit();
		window.parent.Windows.closeAll();
	}
	else
	if(modulo=='auditores'){
		window.parent.$('idAuditor').value=chave;
		window.parent.document.fAuditores.submit();
		window.parente.Windows.closeAll();
	}
	else
	if(modulo=='aih'){
		window.parent.$('idAih').value=chave;
		window.parent.document.fAih.submit();
		window.parent.Windows.closeAll();
	}
	
	// A PARTIR DAQUI É USADO NO GA - GERENCIAMENTO AMBULATORIAL
	else
	if(modulo == 'vacinas'){
		window.parent.$('idVacina').value=chave;
		window.parent.document.fVacinas.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'fornecedores'){
		window.parent.$('idFornecedor').value=chave;
		window.parent.document.fFornecedores.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'unidadesMedidas'){
		window.parent.$('idUnidadeMedida').value=chave;
		window.parent.document.fUnidadesMedidas.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'programasGoverno'){
		window.parent.$('idProgramaGoverno').value=chave;
		window.parent.document.fProgramasGoverno.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'gruposMateriais'){
		window.parent.$('idGrupoMaterial').value=chave;
		window.parent.document.fGruposMateriais.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'materiais'){
		window.parent.$('idMaterial').value=chave;
		window.parent.document.fMateriais.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'producaoConsolidado'){
		window.parent.$('idProducaoConsolidado').value=chave;
		window.parent.document.fProducaoConsolidado.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'producaoIndividual'){
		window.parent.$('idProducaoIndividual').value=chave;
		window.parent.document.fProducaoIndividual.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'producaoProntoAtendimento'){
		window.parent.$('idProducaoProntoAtendimento').value=chave;
		window.parent.document.fProducaoProntoAtendimento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'estoqueEntrada'){
		window.parent.$('idEstoqueEntrada').value=chave;
		window.parent.document.fEstoqueEntrada.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'estoqueSaida'){
		window.parent.$('idEstoqueSaida').value=chave;
		window.parent.document.fEstoqueSaida.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'estoqueSaidaDanos'){
		window.parent.$('idEstoqueSaidaDanos').value = chave;
		window.parent.document.fEstoqueSaidaDanos.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'estoqueSaidaUnidade'){
		window.parent.$('idEstoqueSaidaUnidade').value=chave;
		window.parent.document.fEstoqueSaidaUnidade.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'agendamento'){
		window.parent.$('idAgendamentoConsulta').value=chave;
		window.parent.document.fAgendamento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'agendamentoUrgencia'){
		window.parent.$('idAgendamentoUrgencia').value=chave;
		window.parent.document.fAgendamento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'apac'){
		window.parent.$('idApac').value=chave;
		window.parent.document.fApac.submit();
		window.parent.Windows.closeAll();
	}
	
	// VIGILÂNCIA SANITÁRIA:
	
	else
	if(modulo == 'estabelecimentos'){
		window.parent.$('idEstabelecimento').value=chave;
		window.parent.document.fEstabelecimento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'bancos'){
		window.parent.$('idBanco').value=chave;
		window.parent.document.fBancos.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'finalidadesAlvara'){
		window.parent.$('idFinalidadeAlvara').value=chave;
		window.parent.document.fFinalidadesAlvara.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'naturezaEstabelecimento'){
		window.parent.$('idNaturezaEstabelecimento').value=chave;
		window.parent.document.fNaturezaEstabelecimento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'configuracoesVisa'){
		window.parent.$('idConfiguracao').value=chave;
		window.parent.document.fConfiguracoes.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'guiaRecolhimento'){
		window.parent.$('idGuiaRecolhimento').value=chave;
		window.parent.document.fGuiaRecolhimento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'guiasBaixa'){
		window.parent.$('idGuiaRecolhimento').value=chave;
		window.parent.document.fGuiaBaixa.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'alvaraSanitario'){
		window.parent.$('idAlvaraSanitario').value=chave;
		window.parent.document.fAlvaraSanitario.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'termoIntimacao'){
		window.parent.$('idTermoIntimacao').value=chave;
		window.parent.document.fTermoIntimacao.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'autoInfracao'){
		window.parent.$('idAutoInfracao').value=chave;
		window.parent.document.fAutoInfracao.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'autoImposicaoPenalidade'){
		window.parent.$('idAutoImposicaoPenalidade').value=chave;
		window.parent.document.fAutoImposicaoPenalidade.submit();
		window.parent.Windows.closeAll();
	}
	
	// LABORATORIO:
	
	else
	if(modulo == 'laboratorios'){
		window.parent.$('idLaboratorio').value=chave;
		window.parent.document.fLaboratorios.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'pedidos'){
		window.parent.$('idPedido').value=chave;
		window.parent.document.fPedidos.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'exames'){
		window.parent.$('idExame').value=chave;
		window.parent.document.fExames.submit();
		window.parent.Windows.closeAll();
	}
	
	// ADMINISTRAÇÃO ADM
	if(modulo == 'tipoTransporte'){
		window.parent.$('idTipoTransporte').value=chave;
		window.parent.document.fTipoTransporte.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'tipoAtendimento'){
		window.parent.$('idTipoAtendimento').value=chave;
		window.parent.document.fTipoAtendimento.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'servicos'){
		window.parent.$('idTipoServico').value=chave;
		window.parent.document.fServicos.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'acompanhamento'){
		window.parent.$('idAcompanhamento').value=chave;
		window.parent.document.fAcompanhamento.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'autorizacao'){
		window.parent.$('idAutorizacao').value=chave;
		window.parent.document.fAutorizacao.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'registroServico'){
		window.parent.$('idRegistroServico').value=chave;
		window.parent.document.fRegistroServico.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'combustivel'){
		window.parent.$('idCombustivel').value=chave;
		window.parent.document.fCombustivel.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'maodeobra'){
		window.parent.$('idMaodeobra').value=chave;
		window.parent.document.fMaodeobra.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'grupoVeiculos'){
		window.parent.$('idGrupoVeiculos').value=chave;
		window.parent.document.fGrupoVeiculos.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'marcasMontadoras'){
		window.parent.$('idMarcasMontadoras').value=chave;
		window.parent.document.fMarcasMontadoras.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'pecas'){
		window.parent.$('idPecas').value=chave;
		window.parent.document.fPecas.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'veiculos'){
		window.parent.$('idVeiculos').value=chave;
		window.parent.document.fVeiculos.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'relacaoPassageiros'){
		window.parent.$('idRelacaoPassageiros').value=chave;
		window.parent.document.fRelacaoPassageiros.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'casaApoio'){
		window.parent.$('idCasaApoio').value=chave;
		window.parent.document.fCasaApoio.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'movimentacaoFrota'){
		window.parent.$('idMovimentacaoFrota').value=chave;
		window.parent.document.fMovimentacaoFrota.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'portaria'){
		window.parent.$('idPortaria').value=chave;
		window.parent.document.fPortaria.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'juarezBarbosa'){
		window.parent.$('idJuarezBarbosa').value=chave;
		window.parent.document.fJuarezBarbosa.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'pedidoEncaminhamentoExames'){
		window.parent.$('idPedidoEncaminhamentoExames').value=chave;
		window.parent.document.fPedidoEncaminhamentoExames.submit();
		window.parent.Windows.closeAll();
	}
	
	//CONV - CONVÊNIOS
	if(modulo == 'ipasgo'){
		window.parent.$('idInternacao').value=chave;
		window.parent.document.fIpasgo.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'ipasgoMateriaisMedicamentos'){
		window.parent.$('idMateriaisMedicamentosValores').value=chave;
		window.parent.document.fMateriaisMedicamentos.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'ipasgoProcedimentos'){
		window.parent.$('idProcedimento').value=chave;
		window.parent.document.fProcedimentos.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'ipasgoServicosHospitalares'){
		window.parent.$('idServicosHospitalaresValores').value=chave;
		window.parent.document.fServicosHospitalares.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'ipasgoProfissionais'){
		window.parent.$('idProfissional').value=chave;
		window.parent.document.fProfissionais.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'ipasgoPrestadores'){
		window.parent.$('idPrestador').value=chave;
		window.parent.document.fPrestadores.submit();
		window.parent.Windows.closeAll();
	}else if(modulo == 'convenios'){
		window.parent.$('idConvenio').value=chave;
		window.parent.document.fConvenios.submit();
		window.parent.Windows.closeAll();
	}
	
	// PROVISORIO:
	if(modulo == 'producaoConsolidado2'){
		window.parent.$('idProducaoConsolidado').value=chave;
		window.parent.document.fProducaoConsolidado.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'producaoIndividual2'){
		window.parent.$('idProducaoIndividual').value=chave;
		window.parent.document.fProducaoIndividual.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'producaoProntoAtendimento2'){
		window.parent.$('idProducaoProntoAtendimento').value=chave;
		window.parent.document.fProducaoProntoAtendimento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'autorizadores'){
		window.parent.$('idAutorizador').value=chave;
		window.parent.document.fAutorizador.submit();
		window.parent.Windows.closeAll();
	}
	if(modulo =='guiaAtendimentoInternacao'){
		window.parent.$('idGuiaAtendimento').value=chave;
		window.parent.document.fGuiaAtendimento.submit();
		window.parent.Windows.closeAll();
	}else
	if(modulo == 'guiaAtendimentoMac'){
		window.parent.$('idGuiaAtendimento').value=chave;
		window.parent.document.fGuiaAtendimento.submit();
		window.parent.Windows.closeAll();
	}
}

function retornarChave(nomeCampo,chave){
	if(nomeCampo=='')
		return;
	window.parent.$(nomeCampo).value=chave;
	window.parent.Windows.closeAll();
	window.parent.$(nomeCampo).focus();//tem que passar o foco para o campo, pois é na hora que ele recebe o foco que aparece a descrição na frente do campo ou executa qualquer outra ação mandada(evento onfocus)
}

function usuariosOn(div){
	//$(div).innerHTML = "Carregando...<br> ----Buscando Usuários On-Line ---<br><br><br><br><br><br>";
	//sleep(1500);
	$(div).className = 'usuariosOn';
	
	xajax_usuariosOn(div);
}
function usuariosOnIcs(div){// USADO PARA O CHAT www.icsgo.com.br/chat
	//$(div).innerHTML = "Carregando...<br> ----Buscando Usuários On-Line ---<br><br><br><br><br><br>";
	//sleep(1500);
	xajax_usuariosOnIcs(div);
}
function suporteOn(div){
	xajax_suporteOn(div);
}

function retornarDiaCampo(campoRetornoDia,data){
	$(campoRetornoDia).value = data;
	$(campoRetornoDia).focus();
	
}

function calendario(mes,ano,campoRetornoDia,retorno){
	xajax_calendario(mes,ano,campoRetornoDia,retorno);
}

function verificaCrm(){
	xajax_verificaCrm();
}

function informacoesIndex(){
	xajax_informacoesIndex();
}
