var timerSgt;

function stopSgt()
{
    if (timerSgt) clearTimeout(timerSgt);
}//stopSgt

function startSgt()
{
    timerSgt = setTimeout('meSgt(0)',200);
}//startSgt

function getSuggest(e, url, idxnav, qntnav, qntlet)
{
    var evt = (!e)?event:e;
    getSuggestKeyCode(evt.keyCode, url, idxnav, qntnav, qntlet);
}//getSuggest

function getSuggestKeyCode(intKeyCode, url, idxnav, qntnav, qntlet)
{		
	var txt = new getObj('txtBuscaPpl');
	
	if(url == '')
    {
	    url = '/ajax/suggest.asp';
    }
    // Verifica se não acionou enter, shift, ctrl, alt, esc, setas, pgup, pgdown, home, end, enter 
	if ((intKeyCode != 13) && (intKeyCode != 16) && (intKeyCode != 17) && (intKeyCode != 18) && (intKeyCode != 27) && (intKeyCode != 33) && (intKeyCode != 34) && (intKeyCode != 35) && (intKeyCode != 36) && (intKeyCode != 37) && (intKeyCode != 38) && (intKeyCode != 39) && (intKeyCode != 40))
	{			    
	    url += '?busca=' + txt.obj.value + '&idxnav=' + idxnav + '&qntnav=' + qntnav + '&qntlet=' + qntlet; 
		LoadUrl(url, "lblResult");			    
		if(intKeyCode != 20)//navegacao pelas paginas
		{
    	    zeraPag();
		}
		if(txt.obj.value.length < qntlet)
		{
		    meSgt(0);
		}
		else
		{
		    meSgt(1);
		}
	}	
	else
	{
	    try
	    {	    	    	        
	        var posLii = new getObj('posLi');
	        if(posLii.obj.value < 0)
	        {
	            posLii.obj.value = 0;
	        }
	        if(posLii.obj.value>-1)
	        {
	            if(isVisible('lblResult'))
	            {            
	                switch (intKeyCode)
	                {
	                    case 27://esc
	                    {
	                        meSgt(0);
	                        txt.obj.value = ''; 
	                        break;
	                    }
	                    case 37://volta
	                    {
	                        var idxnavAux = new getObj('idxnavAux');
	                        previousPage(url, idxnavAux.obj.value, qntnav, qntlet);
	                        break;
	                    }
	                    case 39://frente
	                    {	                    
	                        var idxnavAux = new getObj('idxnavAux');
	                        nextPage(url, idxnavAux.obj.value, qntnav, qntlet);
	                        break;
	                    }
	                    case 38://cima
	                    {
	                        if(posLii.obj.value > 0)
	                        {
	                            mOutLi('item_'+posLii.obj.value);
	                        }
                            if(posLii.obj.value > 1)
                            {
	                            posLii.obj.value --;
	                        }
	                        else
	                        {
	                            posLii.obj.value = qntnav;
	                        }
	                        mOverLi('item_'+posLii.obj.value);
	                        break;
	                    }
	                    case 40://baixo
	                    {
	                        if(posLii.obj.value > 0)
	                        {
	                            mOutLi('item_'+posLii.obj.value);
	                        }
	                        if(posLii.obj.value < qntnav)
	                        {
	                            posLii.obj.value ++;
	                        }
	                        else
	                        {
	                            posLii.obj.value = 1;
	                        }
	                        mOverLi('item_'+posLii.obj.value);
	                        break;
	                    }
	                }
	            }
	            else
	            {
	                if(intKeyCode==37 || intKeyCode==39 || intKeyCode==38 || intKeyCode==40)
	                {
	                    getSuggestKeyCode(0,'',1,10, qntlet);
	                }
	            }
	        }
	        else
	        {
	            posLii.obj.value ++;
	        }
	    }
	    catch(e)
	    {
	        posLii.obj.value = 1;
	        mOverLi('item_1');
	    }
	}
}//getSuggestKeyCode

function nextPage(url, pag, qntpag, qntlet)
{
    meSgt(1);
    var idxLastPage = new getObj('idxLastPage');
    pag++;
    if(pag <= idxLastPage.obj.value)
    {        
        var idxnavAux = new getObj('idxnavAux');
        idxnavAux.obj.value = pag;
        getSuggestKeyCode(20, url, pag, qntpag, qntlet);
        setFocoTxt('txtBuscaPpl');   
    } 
}//nextPage

function previousPage(url, pag, qntpag, qntlet)
{    
    meSgt(1);
    if(pag > 1)
    {
        pag--;
        var idxnavAux = new getObj('idxnavAux');
        idxnavAux.obj.value = pag;
        getSuggestKeyCode(20, url, pag, qntpag, qntlet);
        setFocoTxt('txtBuscaPpl');
    }
}//previousPage

function mOverLi(obj)
{
	try
	{
	    changeCss(obj, 'sgtLiOver');
	    var objI = new getObj(obj);
	    var objValLi = new getObj('valLi');
	    objValLi.obj.value = objI.obj.innerHTML;	
	}
	catch(e)
	{
	    var posLii = new getObj('posLi');
	    posLii.obj.value = 1;
	    changeCss('item_1', 'sgtLiOver');
	}
}//mOverLi

function mOutLi(obj)
{
	try
	{
	    changeCss(obj, 'sgtLi');
	}
	catch(e)
	{
	    var posLii = new getObj('posLi');
	    posLii.obj.value = 1;
	    mOverLi('item_1');
	    changeCss('item_1', 'sgtLiOver');
	}
}//mOutLi

function mClickLi(valor)
{
	try
	{
	    var objI = new getObj('txtBuscaPpl');
	    var arrValor = valor.split('-');
	    if(arrValor.length > 1)
	    {
	        valor = arrValor[0];
	        objI.obj.value = trim(valor);
	    }	    
	}
	catch(ex)
	{}
	meSgt(0);
}//mClickLi

function setSuggest(e)
{
    var evt = (!e)?event:e;
    if (evt.keyCode == 13)
    {
	    var objValLi = new getObj('valLi');
	    mClickLi(objValLi.obj.value);
	    return false;
    }
    else
    {
        return true;
    }
}//setSuggest

function setFocoTxt(strObj)
{
    var txt = new getObj(strObj);
    txt.obj.focus();
}//setFocoTxt

function zeraPag()
{
    var idxAux = new getObj('idxnavAux');
	idxAux.obj.value = 1;
}//zeraPag

function meSgt(strP)
{
    var result = new getObj('lblResult');
    switch (strP)
    {
        case 0:
        {            
            zeraPag();
            result.style.visibility = 'hidden';   
            var objValLi = new getObj('valLi');
	        objValLi.obj.value = '';        
            break;
        }
        case 1:
        {
            var posLii = new getObj('posLi');
    	    posLii.obj.value = 0;
            result.style.visibility = 'visible';
            break;
        }        
    } 
}//meSgt

function isVisible(objN)
{
    var result = new getObj(objN);
    saida = true;
    if(result.style.visibility == 'hidden')
    {
        saida = false;
    }
    return saida;
}//isVisible