/******************************************************************


				OBJETO DE TRATAMENTO DE PESQUISA
		

*******************************************************************/

function ItemResultadoPesquisa()
{
	this.descricao = "";
	this.nivel = 0;
	this.codigo = 0;
}

function ListaResultadoPesquisa()
{
	this.lista = new Array();
}

ListaResultadoPesquisa.prototype.parseialista = parseialista;
ListaResultadoPesquisa.prototype.item = item;
ListaResultadoPesquisa.prototype.adiciona = adiciona;
ListaResultadoPesquisa.prototype.qtd = qtditems;

function adiciona(item)
{
	this.lista[this.lista.length] = item;
}

function qtditems()
{
	return this.lista.length;
}

function item(indice)
{
	return this.lista[indice];
}

function parseialista(resultado)
{
	var ItemResultado = null;
	var i = 0;
	var lista = resultado.split('#');
	var item = null;
	
	for (i = 0; i < lista.length; i++)
	{
		item = lista[i].split('=');
		ItemResultado = new ItemResultadoPesquisa();
		ItemResultado.descricao = item[0];
		ItemResultado.nivel = eval(item[1]);
		ItemResultado.codigo = eval(item[2]);
		this.adiciona(ItemResultado);
	}
}

/******************************************************************


				ROTINAS de MONTAGEM e TRATAMENTOS
		

*******************************************************************/

function PopulaListaBancos(area, container)
{
	AreaAtiva = area;
	var Resultado = retornavalor(ajax_listabancos(area), "RESULTADO").split('#');
	var Aux = null;
	var i = 0;
	var id = "";
	var descricao = "";
	var atz = "";
	var hint = "";
	var AuxStr = "";
	var Cores = ["#FFFFFF", "#F7F7F7"];
	var TableClass = ["tabela_par", "tabela_impar"];
	
	if (!Resultado) return;
	
	for (i=0; i < Resultado.length; i++)
	{
		Aux = Resultado[i].split("=");
		descricao = Aux[0];
		hint = Aux[1];
		atz = Aux[2];
		id = Aux[3];
//		alert(sprintf("ID: %s\r\nDescricao: %s\r\nHint: %s\r\nAtz Até: %s", id, descricao, hint, atz));
		AuxStr = AuxStr + sprintf('<div style="position:relative;overflow:hidden" id="%s" title="%s" onmouseover="destaca(\'tabela_%s\', \'#eef7fc\')" onmouseout="destaca(\'tabela_%s\', \'%s\')" onclick="checkar(\'ckb_%s\')" ondblclick="tratadblclick(\'ckb_%s\')"><table class="%s" id="tabela_%s"><tr><td class="col_check"><img src="/imagens/spacer.gif" class="checkbox_off" id="ckb_%s" banco="%s"></td><td class="coluna1">%s</td><td class="coluna2">%s</td><td class="coluna3">%s</td></tr></table></div>', id, hint.split("|")[1], id, id, Cores[i%2], id, id, TableClass[i%2], id, id, id, descricao, hint.split("|")[0], atz);
	}
	container.innerHTML = AuxStr;
}


function PopulaListaLocalizaBancos(resultado, container)
{
	var i = 0;
	var rand = 0;
	var AuxStr = "";
	var Cores = ["#FFFFFF", "#F7F7F7"];
	var TableClass = ["tabela_par", "tabela_impar"];
	
	container.innerHTML = "";
	
	if ((!resultado) || (!resultado.qtd())) return;
	

/*
	
  result := format('<div id="%d" title="%s" onmouseover="destaca(''%d'', ''#eef7fc'')" onmouseleave="destaca(''%d'', ''%s'')" onclick="checkar(''%d'')" ondblclick="clicou(''%d'')"><table class="%s"><tr>'+
  '<td class="col_check"><img src="<#LOCAL_DIR>\spacer.gif" class="checkbox_off" id="checkbox" banco="%d"></td><td class="coluna1">%s</td><td class="coluna2">%s</td><td class="coluna3">%s</td></tr></table></div>',
                   [Banco.Codigo,
                    GetLongHint(Banco.Hint),
                    Banco.Codigo,
                    Banco.Codigo,
                    Cor,
                    Banco.Codigo,
                    Banco.Codigo,
                    TableClass,
                    Banco.Codigo,
                    Banco.Banco,
                    GetShortHint(Banco.Hint),
                    AuxData]);
*/	
	for (i=0;i<resultado.qtd();i++)
	{
		rand = Math.round(Math.random() * 1000000);//preciso disso para garantir um código uno. Dava problema com duas pesquisas que apresentassem o mesmo banco como resultado ( criava dois divs com nomes iguais ).
		//AuxStr = AuxStr + sprintf('<div style="position:relative;overflow:hidden" id="%s" title="%s" onmouseover="destaca(localizabanco_%s, \'#eef7fc\')" onmouseleave="destaca(localizabanco_%s, \'%s\')" onclick="checkar(ckblocaliza%s_%s)" ondblclick="tratadblclick(ckblocaliza%s_%s)"><table class="%s" id="localizabanco_%s"><tr><td class="col_check"><img src="/cgi-bin/imagens/spacer.gif" class="checkbox_off" id="ckblocaliza%s_%s" banco="%s"></td><td class="coluna1">%s</td><td class="coluna2">%s</td><td class="coluna3">%s</td></tr></table></div>', resultado.item(i).codigo, resultado.item(i).descricaolonga, resultado.item(i).codigo, resultado.item(i).codigo, Cores[i%2], rand, resultado.item(i).codigo, rand, resultado.item(i).codigo, TableClass[i%2], resultado.item(i).codigo, rand, resultado.item(i).codigo, resultado.item(i).codigo, resultado.item(i).apelido, resultado.item(i).descricao, resultado.item(i).atzate);
		AuxStr = AuxStr + sprintf('<div style="position:relative;overflow:hidden" id="%s" title="%s" onmouseover="destaca(\'localizabanco_%s\', \'#eef7fc\')" onmouseout="destaca(\'localizabanco_%s\', \'%s\')" onclick="checkar(\'ckblocaliza%s_%s\')" ondblclick="tratadblclick(\'ckblocaliza%s_%s\')"><table class="%s" id="localizabanco_%s"><tr><td class="col_check"><img src="/imagens/spacer.gif" class="checkbox_off" id="ckblocaliza%s_%s" banco="%s"></td><td class="coluna1">%s</td><td class="coluna2">%s</td><td class="coluna3">%s</td></tr></table></div>', rand, resultado.item(i).descricaolonga, rand, rand, Cores[i%2], rand, resultado.item(i).codigo, rand, resultado.item(i).codigo, TableClass[i%2], rand, rand, resultado.item(i).codigo, resultado.item(i).codigo, resultado.item(i).apelido, resultado.item(i).descricao, resultado.item(i).atzate);
	}
	
	container.innerHTML = AuxStr;
}



function PopulaListaAreasBancos(areas, container)
{
	var i = 0;
	var auxstr = "";
	var item = null;
	var opcao = null;
	var spam = null;
	
	container.innerHTML = "";	
	
	for (i = 0; i < areas.length; i++)
	{
		item = areas[i].split('=');
		//item[0] = area
		//item[1] = código
		opcao = document.createElement('input');
		opcao.type = "checkbox";
		opcao.id = "checkboxareasbancos";
		opcao.codigo = item[1];
		
		spam = document.createElement('spam');
		spam.innerHTML = item[0];
		
    container.appendChild(opcao);
    container.appendChild(spam);
    container.appendChild(document.createElement('br'));
	}
}

function PopulaAreaListaBancosAbertos(container)
{
	/////
	//
	// ROTINA ESPECÍFICA PARA A MONTAGEM DA LISTA DE BANCOS ABERTOS NO MOMENTO... 
	//
	////
	var i = 0;
	var AuxStr = "";
	var Cores = ["#FFFFFF", "#F7F7F7"];
	var TableClass = ["tabela_par", "tabela_impar"];
	
	for (i = 0; i<Frames.lista.length; i++)
		if (!Frames.lista[i].ehresultadopesquisa())
		{
			rand = Math.round(Math.random() * 1000000);//preciso disso para garantir um código uno. Dava problema com dois elementos que apresentassem o mesmo banco como resultado ( criava dois divs com nomes iguais ).
			AuxStr = AuxStr + sprintf('<div style="position:relative;overflow:hidden" id="%d" title="%s" onmouseover="destaca(\'listabancos_%s\', \'#eef7fc\')" onmouseout="destaca(\'listabancos_%s\', \'%s\')" onclick="checkar(\'ckblistabancos%s_%s\')" ondblclick="tratadblclick(\'ckblistabancos%s_%s\')"><table class="%s" id="listabancos_%s"><tr><td class="col_check"><img src="/imagens/spacer.gif" class="checkbox_off" id="ckblistabancos%s_%s" banco="%s"></td><td class="coluna1">%s</td><td class="coluna2">%s</td><td class="coluna3">%s</td></tr></table></div>', 
										rand, 
										Frames.lista[i].descricaobanco, 
										rand, 
										rand, 
										Cores[i%2], 
										rand, 
										Frames.lista[i].codigobanco, 
										rand, 
										Frames.lista[i].codigobanco, 
										TableClass[i%2], 
										rand, 
										rand, 
										Frames.lista[i].codigobanco, 
										Frames.lista[i].codigobanco, 
										Frames.lista[i].nomebanco, 
										Frames.lista[i].apelidobanco,
										Frames.lista[i].bancoatualizadoate);
		}

	container.innerHTML = AuxStr;
}

function PopulaAreaListaPesquisasAbertas(container)
{
	/////
	//
	// ROTINA ESPECÍFICA PARA A MONTAGEM DA LISTA DE PESQUISAS ABERTAS NO MOMENTO... 
	//
	////
	var i = 0;
	var AuxStr = "";
	var Cores = ["#FFFFFF", "#F7F7F7"];
	var TableClass = ["tabela_par", "tabela_impar"];
	
	for (i = 0; i<Frames.lista.length; i++)
		if (Frames.lista[i].ehresultadopesquisa())
		{
			rand = Math.round(Math.random() * 1000000);//preciso disso para garantir um código uno. Dava problema com dois elementos que apresentassem o mesmo banco como resultado ( criava dois divs com nomes iguais ).
			AuxStr = AuxStr + sprintf('<div style="position:relative;overflow:hidden" id="%d" title="Pesquisa com a(s) palavra(s): %s" onmouseover="destaca(\'listabancos_%s\', \'#eef7fc\')" onmouseout="destaca(\'listabancos_%s\', \'%s\')" onclick="checkar(\'ckblistabancos%s_%s\')" ondblclick="tratadblclickpesquisa(ckblistabancos%s_%s)"><table class="%s" id="listabancos_%s"><tr><td class="col_check"><img src="/imagens/spacer.gif" class="checkbox_off" id="ckblistabancos%s_%s" banco="%s"></td><td class="coluna1">%s</td><td class="coluna2">%s</td></tr></table></div>', 
										rand, 
										Frames.lista[i].palavraspesquisadas, 
										rand, 
										rand, 
										Cores[i%2], 
										rand, 
										Frames.lista[i].sid, 
										rand, 
										Frames.lista[i].sid, 
										TableClass[i%2], 
										rand, 
										rand, 
										Frames.lista[i].sid, 
										rand, 
										Frames.lista[i].palavraspesquisadas, 
										Frames.lista[i].qtdocorrencias);
		}

	container.innerHTML = AuxStr;
}


///
//
//   ROTINAS DE TRATAMENTO DE COOKIES
//
///

function SetCookie(nome, valor)
{
  var cookie = nome + "=" + escape(valor);
  document.cookie = cookie;
}

function DelCookie(nome)
{
  var cookie = nome + "=vazio; expires=0";
  document.cookie = cookie;
}

function GetCookie(nome)
{
  // cookies are separated by semicolons
  var cookies = document.cookie.split("; ");
  
  var cookie = "";
  var i = 0;
  for (i=0; i < cookies.length; i++)
  {
    cookie = cookies[i].split('=');
    if (cookie[0] == nome) return unescape(cookie[1]);
  }
  // a cookie with the requested name does not exist
  return null;
}

