var ajax_requests = new Array();

function buscaConsulta(campo, campo_busca, campo_filtro, campo_search, nome_table, order_by, select_id, select_show) {
/*
PAI: SELECT PREENCHIDO (com onChange='buscaConsulta...) ex.: estado
FILHO: O que vai ser preenchido ex.: cidade

obj campo = SELECT que tem o id do PAI (ex.: objeto SELECT estado ... this)
str campo_busca = NOME do campo FILHO que vai ser criado (vai ser posto div_ antes para criar na interface) (ex.: cidade)
str campo_filtro = nome da coluna do banco de dados FILHO que esta sendo filtrada pelo 'campo' (ex.: id_estado)
str campo_search = nome da coluna do banco de dados FILHO que estamos dando check (geralmente em branco)
str nome_table = tabela no banco de dados FILHO (ex.: dados_cidades)
str order_by = nome da coluna do banco de dados FILHO que estamos ordenando (pode vir em branco)
str select_id = o que por dentro do value do select (campo)
str select_show = o que mostrar no select FILHO (campo)
*/

  nome_div = 'div_' + campo_busca
  tem_busca = !(mygetElement(nome_div) == null);
  if (!tem_busca) {
    alert("erro");
    return;
  }

  mygetElement(nome_div).innerHTML = "<select name='"+campo_busca+"' class=autoselect><option>Carregando...</option></select>";
  ajaxid = ajax_requests.length+1;
  URL = "campo_busca=" + campo_busca +
       "&campo_filtro=" + campo.options[campo.selectedIndex].value + 
       "&campo_filtro_nome=" + campo_filtro +
       "&campo_search=" + 
       "&select_show=" + select_show +
       "&select_id=" + select_id +
       "&campo_search_nome=" + campo_search + 
       "&nome_table=" + nome_table + 
       "&order_by=" + order_by +
       "&ajaxid=" + ajaxid;
  if (ajaxid<10) ajaxid = "0" + ajaxid + "";
  ajax_requests.push(ajaxid + "" + campo_busca);
  var ai = new AJAXInteraction("index.php?acao=ajaxremote&popup=3&haveinfo=1&"+URL, buscaConsulta_ajax);
  ai.doGet();
}

function buscaConsulta_ajax(dados) {
  // primeiros 2 bytes é o id ajax
  var pedido = dados.substring(0,2);
  dados = dados.substring(2);
  var new_ajax = new Array();
  var ok = false;
  while (ajr = ajax_requests.pop()) {
    arjp = ajr.substring(0,2);
    arjd = ajr.substring(2);    
    if (arjp == pedido) {
      mygetElement('div_' + arjd).innerHTML = dados;
      ok = true;
    } else
      new_ajax.push(ajr);
  }
  ajax_requests = new_ajax;  
  if (!ok) alert("ajaxcode de retorno não encontrado:" + pedido);
}

function buscaConsultaDireto( 
  campo_busca, // NOME do campo que vai ser criado (vai ser posto div_ antes)
  campo_filtro, // coluna no DB que vai ser usada para filtrar os dados (se é uma lista de cidades, este é o filtro do ESTADO)
  campo_filtro_id, // o que vai filtrar campo_filtro (qual estado)
  campo_search, // coluna no DB do que vamos procurar (qual o campo da cidade)
  campo_search_id, // o que vai procurar (qual cidade)
  select_id, // o que por no value do select (nome da coluna DB)
  select_show, // o que por no conteudo do select (nome da coluna DB)
  nome_table, // nome da tabela DB
  order_by // nome da coluna para ordenar    
) {

  nome_div = 'div_' + campo_busca 
  tem_busca = !(mygetElement(nome_div) == null);
  if (!tem_busca) {
    alert("erro, " + nome_div + " não encontrado");
    return;
  }
  
  mygetElement(nome_div).innerHTML = '<select class=autoselect><option>Carregando...</option></select>';

  ajaxid = ajax_requests.length+1;
  URL = "campo_busca=" + campo_busca +
   "&campo_filtro=" + campo_filtro_id + 
   "&campo_filtro_nome=" + campo_filtro +
   "&campo_search=" + campo_search_id +
   "&campo_search_nome=" + campo_search + 
   "&select_show=" + select_show +
   "&select_id=" + select_id +
   "&nome_table=" + nome_table + 
   "&order_by=" + order_by +
   "&ajaxid=" + ajaxid;
       
  if (ajaxid<10) ajaxid = "0" + ajaxid + "";
  ajax_requests.push(ajaxid + "" + campo_busca);
  
  var ai = new AJAXInteraction("index.php?acao=ajaxremote&popup=3&haveinfo=1&"+URL, buscaConsulta_ajax);
  ai.doGet();
}
