var selecText;
var ingTemp;

function initAutocompletar(){
    ingTemp = flechaIDing[0];
    selecText = document.getElementById("selecText");   //Casilla (de texto) de busqueda
    selecText.onkeypress = posiciona;
    tablaIng.getElementsByTagName("input")[0].focus();  //hago foco en el primero
    tablaIng.getElementsByTagName("input")[0].parentNode.parentNode.bgColor = "GoldenRod"; //resalto el primer elemento
    selecText.focus();  //hago foco en la casilla
}
function seleccion(obj, sel){
    var ingSel = null;
    if (sel) ingSel = obj;
    //else ingSel = this;
    else ingSel = this.getElementsByTagName("input")[0];
        
    var fila = ingSel.parentNode.parentNode;
    //if(ingSel.parentNode.parentNode.parentNode.parentNode.id == "divIng"){  //aca!  
    if(ingSel.parentNode.parentNode.parentNode.parentNode.parentNode.id == "divIng"){    
        ingSel.src="images/x.png"
        ingSel.parentNode.parentNode.bgColor = "";
        tablaIngSel.appendChild(fila);
    }
    else{
        ingSel.src="images/flechita.png"
        ingSel.parentNode.parentNode.bgColor = "";
        var a =parseInt(ingSel.id.substring(11));
        var b = 0;
        var cantNode = tablaIng.childNodes.length;
        b = parseInt(tablaIng.childNodes[1].id.substring(7));
        if (a < b) {
            tablaIng.insertBefore(fila, tablaIng.childNodes[1]);
            return;
        }
        var i = 0;
        for (i=0; i < cantNode; i++){
            b = parseInt(tablaIng.childNodes[cantNode - i - 1].id.substring(7));
            if(a >= b){
                tablaIng.insertBefore(fila, tablaIng.childNodes[cantNode - i]);
                return;
            }
        }
    }
}

function posiciona(e){
    var texto;
    var evento = e || window.event;
    var codigo = evento.charCode || evento.keyCode;
    var caracter = String.fromCharCode(codigo); //caracter es el ultimo ingresado, y puede ser leido en cualquier navegador
    
    
    var nodo = tablaIng.lastChild;
    
    if (codigo==13){ //si aprieto enter
        seleccion(ingTemp, 1);
        ingTemp.parentNode.parentNode.bgColor = ""; //todo: color de fondo
        texto="";   //borro el texto
        selecText.value=""; //borro la casilla
        tablaIng.getElementsByTagName("input")[0].focus();  //hago foco en el primero
        tablaIng.getElementsByTagName("input")[0].parentNode.parentNode.bgColor = "GoldenRod"; //resalto el primer elemento
        selecText.focus();  //hago foco en la casilla
    }
    else {
        if (codigo==8) texto = selecText.value; //si el ultimo es "borrar", no lo leo
        else texto = selecText.value+caracter;
    }
    
    
    if (texto != "") {  //si hay algun texto, voy haciendo foco
        nodo.getElementsByTagName("input")[0].focus();
        selecText.focus();
    }
    else {  //si no hay texto, hago foco en el primero y lo resalta
        tablaIng.getElementsByTagName("input")[0].focus();
        tablaIng.getElementsByTagName("input")[0].parentNode.parentNode.bgColor = "GoldenRod"; //todo: color de resaltado
        selecText.focus();
    }
    var i = 0;
    
    ingTemp.parentNode.parentNode.bgColor = ""; //todo: color de fondo
    
    ingTemp = tablaIng.childNodes[1].getElementsByTagName("input")[0];
    
    //alert(ingTemp.getAttribute("name"));
    
    
    do {
        
        if (texto.toUpperCase() > nodo.getElementsByTagName("input")[0].getAttribute("name").toUpperCase()){
            ingTemp = nodo.nextSibling.getElementsByTagName("input")[0];
            nodo = null;
        }

        else if (texto.toUpperCase() == nodo.getElementsByTagName("input")[0].getAttribute("name").toUpperCase()){
            ingTemp = nodo.getElementsByTagName("input")[0];
            nodo = null;
        }
        
            
        if (nodo) nodo = nodo.previousSibling;
        
    } while (nodo);
    
    //alert(ingTemp.getAttribute("name"));
    
    
    
    ingTemp.parentNode.parentNode.bgColor = "GoldenRod"; //todo: color de resaltado
    
    ingTemp.focus();
    selecText.focus();
}