
function ListaConsulta(idListaConsulta, tamanhoVisivel, tamanhoTotal, idCampoPosicaoActual, vectorChaves)
{
	this.idListaConsulta = idListaConsulta;
	this.tamanhoVisivel = tamanhoVisivel;
	this.tamanhoTotal = tamanhoTotal;
	this.campoPosicaoActual = document.getElementById(idCampoPosicaoActual);
	this.objLegenda = document.getElementById('legendaListaConsulta_'+idListaConsulta);
	this.browser = navigator.appName;
   if (this.browser == "Microsoft Internet Explorer")       // hack para contornar a não implementação da display:table no IE :|
      this.mostrarComo = 'block';
      else
      this.mostrarComo = 'table-row';
   this.obj = document.getElementById(this.idListaConsulta);
   this.vectorChaves = vectorChaves;
   this.onLineShow = null;
   this.onLineHide = null;
	

	ListaConsulta.prototype.mudarPagina = function(nova)
	{		
		inicio = parseInt(this.campoPosicaoActual.value);      
		for (i=parseInt(inicio); i<parseInt(inicio) + parseInt(this.tamanhoVisivel); ++i)
		{
			if (i>=this.tamanhoTotal)
				break;
			document.getElementById(this.idListaConsulta+"_linha"+i).style.display = 'none';
		}				
      if (this.onLineHide!=null)
      {
         for (i=parseInt(inicio); i<parseInt(inicio) + parseInt(this.tamanhoVisivel); ++i)
            {
               eval(this.onLineHide[i]);
            }
      }         
		
		for (i=parseInt(nova); i<parseInt(nova)+parseInt(this.tamanhoVisivel); ++i)
		{
			if (i>=this.tamanhoTotal)
				break;
         
		   document.getElementById(this.idListaConsulta+"_linha"+i).style.display = this.mostrarComo;         
		}
      if (this.onLineShow!=null)
      {
         for (i=parseInt(nova); i<parseInt(nova)+parseInt(this.tamanhoVisivel); ++i)
         {
            eval(this.onLineShow[i]);
         }
      }
		
		this.campoPosicaoActual.value = nova;
		this.objLegenda.innerHTML=this.getLegenda();
      
      if (this.browser == "Netscape")
         {
            this.obj.innerHTML = this.obj.innerHTML;
         }        
      
	}	
	
	ListaConsulta.prototype.anterior = function()
	{
		nova = parseInt(this.campoPosicaoActual.value) - parseInt(this.tamanhoVisivel);
		if (nova<0)
			nova=0;
		this.mudarPagina(nova);
	}
	
	ListaConsulta.prototype.seguinte = function()
	{   
      nova = parseInt(this.campoPosicaoActual.value) + parseInt(this.tamanhoVisivel);            
		if (nova < this.tamanhoTotal)
			this.mudarPagina(nova);
	}
	
	ListaConsulta.prototype.getLegenda = function()
	{
		total  = Math.ceil(this.tamanhoTotal / this.tamanhoVisivel);
		actual = 1+total-parseInt((total-Math.ceil(this.campoPosicaoActual.value / this.tamanhoVisivel)));
      
      if (total==0)
         total=1;
		
		return ("&nbsp;&nbsp;"+actual+" / "+total+"&nbsp;&nbsp;");
	}
   
   ListaConsulta.prototype.getVectorChaves = function()
   {
      return this.vectorChaves;
   }
   

   ListaConsulta.prototype.setOnShowArray = function(vector)
   {
      this.onLineShow=vector;
   }
   

   ListaConsulta.prototype.setOnHideArray = function(vector)
   {
      this.onLineHide=vector;
   }
   
   this.objLegenda.innerHTML=this.getLegenda();
}

