
var outp;
var oldins;
var posi = -1;
var words = new Array();
var input;
var key;
var idArt;
var mens;
var foc;
var cualSeleccione;
var ddlZ;
var idZ;
var sonIguales=0;

function setVisible(visi) {
    var x = document.getElementById("shadow");
    var t = document.getElementsByName("text")[0];
    x.style.position = 'absolute';
    
    if (navigator.appName == "Netscape") {
        x.style.top = (findPosY(t) + 3) + "px";
        x.style.left = (findPosX(t) + 2) + "px";
    }
    else {
        x.style.top = (findPosY(t) + 3) + "px";
        x.style.left = (findPosX(t) + 12) + "px";

    }
    x.style.visibility = visi;

}

function init(idArticulo, mensaje, ddl, idZona) {

   

    idArt = idArticulo;
    idZ = idZona; 
    mens = mensaje;
    ddlZ = ddl;
    outp = document.getElementById("output");
    window.setInterval("lookAt()", 100);
    setVisible("hidden");
    document.onkeydown = keygetter; //needed for Opera...
    document.onkeyup = keyHandler;


if (document.getElementById(idZ).value == 0) {
           document.getElementById(ddlZ).length = 1;
    document.getElementById(ddlZ)[0].text = "Seleccione una zona";
    document.getElementById(ddlZ)[0].value = 0;
}
   




}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        curtop += obj.offsetHeight;
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    else if (obj.y) {
        curtop += obj.y;
        curtop += obj.height;
    }
    return curtop;
}

function lookAt() {

   
    var ins = document.getElementsByName("text")[0].value;


    if (oldins == ins) return;

    else if (posi > -1);
    else if (ins.length > 0) {
        words = getWord(ins);

        if (words.length > 0 ) {
            clearOutput();
            for (var i = 0; i < words.length; ++i) addWord(words[i]);
            setVisible("visible");
            input = document.getElementsByName("text")[0].value;

        }
        else {
            setVisible("hidden");
            document.getElementById(idArt).value = "";
            if (ins == "Escriba una ciudad") {
                document.getElementById(mens).style.display = "none";
            }
            else {
                document.getElementById(mens).style.display = "";
            }
            
//            document.getElementById(ddlZ).length = 0;
 
            posi = -1;
        }
    }
    else {
        setVisible("hidden");
        posi = -1;
    }
    if (sonIguales == 1) {
        setVisible("hidden");
    }
    oldins = ins;
}

function addWord(word) {

    var palabra = word.split(",");
    var nodo;
    var nodoId;
    var sp = document.createElement("div");
    sonIguales = 0;

    nodo = document.createTextNode(palabra[0]);
    sp.id = palabra[1];

    sp.appendChild(nodo);
    sp.onmouseover = mouseHandler;
    sp.onmouseout = mouseHandlerOut;
    sp.onclick = mouseClick;

    outp.appendChild(sp);

    cualSeleccione = "o";

    if (document.getElementsByName("text")[0].value.toLowerCase() == palabra[0].toLowerCase()) {

        for (var i = 0; i < outp.childNodes.length; ++i) {
            //  ----------------------------------------------------------------------------------------------------
            if (palabra[0] == outp.childNodes[i].firstChild.nodeValue) {
                cualSeleccione = i;
                outp.childNodes[i].style.color = "white";
                outp.childNodes[i].style.background = "blue";
                controlCaracteres(outp.childNodes[i]);
                sonIguales = 1;

            }
        }

    }

}


function clearOutput() {
    while (outp.hasChildNodes()) {
        noten = outp.firstChild;
        outp.removeChild(noten);
        document.getElementById(idArt).value = "";
        //        document.getElementById("ctl00_ContentPlaceHolder1_ingresoArticulos1_lblMensaje").style.display = "";
    }
    posi = -1;
}

function getWord(beginning) {
    var words = new Array();

    for (var i = 0; i < suggestions.length; ++i) {
        var j = -1;
        var correct = 1;
        while (correct == 1 && ++j < beginning.length) {

            //if (suggestions[i].charAt(j) != beginning.charAt(j)) correct = 0;
            if (suggestions[i].toLowerCase().charAt(j) != beginning.toLowerCase().charAt(j)) correct = 0; //si se descomenta no compara mayusculas y minusculas
        }
        if (correct == 1) words[words.length] = suggestions[i];
    }

    return words;
}

function setColor(_posi, _color, _forg) {
    outp.childNodes[_posi].style.background = _color;
    outp.childNodes[_posi].style.color = _forg;
}

function keygetter(event) {
    if (!event && window.event) event = window.event;
    if (event) key = event.keyCode;
    else key = event.which;
}

function keyHandler(event) {

    if (document.getElementById("shadow").style.visibility == "visible") {
        var textfield = document.getElementsByName("text")[0];

        if (key == 40) { //Key down
            //alert (words);
            if (words.length > 0 && posi < words.length - 1) {
                if (posi >= 0) setColor(posi, "#fff", "black");
                else input = textfield.value;
                setColor(++posi, "blue", "white");
                textfield.value = outp.childNodes[posi].firstChild.nodeValue;
            }
        }
        else if (key == 38) { //Key up
            if (words.length > 0 && posi >= 0) {
                if (posi >= 1) {
                    setColor(posi, "#fff", "black");
                    setColor(--posi, "blue", "white");
                    textfield.value = outp.childNodes[posi].firstChild.nodeValue;
                }
                else {
                    setColor(posi, "#fff", "black");
                    textfield.value = input;
                    textfield.focus();
                    posi--;
                }
            }
        }
        else if (key == 27) { // Esc
            textfield.value = input;
            setVisible("hidden");
            posi = -1;
            oldins = input;
        }
        else if (key == 8) { // Backspace
            posi = -1;
            oldins = -1;
        }

        if (key == 13) {

            controlCaracteres(outp.childNodes[posi]);
        }
    }
}

var mouseHandler = function() {
    for (var i = 0; i < words.length; ++i)
        setColor(i, "white", "black");

    this.style.background = "blue";
    this.style.color = "white";
}

var mouseHandlerOut = function() {
    this.style.background = "white";
    this.style.color = "black";
}

var mouseClick = function() {

    document.getElementsByName("text")[0].value = this.firstChild.nodeValue;
    document.getElementById(idArt).value = this.id
    document.getElementById(mens).style.display = "none";
    setVisible("hidden");
    posi = -1;
    oldins = this.firstChild.nodeValue;
    cargaZonas(this.id);
    //document.getElementById(foc).focus();
}

function cargaZonas(idCiudad) {
   
    //document.getElementById(idZ).value = 0;
    var zonasSelecionadas = "";
    var idCdad;
    var miCombo;
    miCombo = document.getElementById(ddlZ);
    miCombo.length = 0;
    for (var i = 0; i < zona.length; i++) {
        idCdad = zona[i].split(",")[2];

        if (idCiudad == idCdad) {
            zonasSelecionadas += zona[i] + "@";
        }

    }
    zonasSelecionadas = zonasSelecionadas.substring(0, zonasSelecionadas.length - 1)
    zonasSelecionadas = zonasSelecionadas.split("@");
    miCombo.length = zonasSelecionadas.length + 1;
    miCombo[0].text = "Seleccione una zona";
    miCombo[0].value = 0;

    for (var i = 0; i < zonasSelecionadas.length; i++) {

        miCombo[i + 1].text = zonasSelecionadas[i].split(",")[0];
        miCombo[i + 1].value = zonasSelecionadas[i].split(",")[1];

        if (miCombo[i + 1].value == document.getElementById(idZ).value) {
        miCombo[i + 1].selected = true;
}
    }




}

function controlCaracteres(obj) {
    if (obj != undefined) {


        document.getElementsByName("text")[0].value = obj.firstChild.nodeValue;
        document.getElementById(idArt).value = obj.id;
        document.getElementById(mens).style.display = "none";
        setVisible("hidden");
        posi = -1;
        oldins = obj.firstChild.nodeValue;
        //document.getElementById(foc).focus();
        cargaZonas(obj.id);

    }
    else {
        var nObj = outp.childNodes[cualSeleccione]
        if (nObj != undefined) {
            document.getElementsByName("text")[0].value = nObj.firstChild.nodeValue;
            document.getElementById(idArt).value = nObj.id;
           document.getElementById(mens).style.display = "none";
            setVisible("hidden");
            posi = -1;
            oldins = nObj.firstChild.nodeValue;
            // document.getElementById(foc).focus();
            cargaZonas(nObj.id);

        }
    }

}

//-->
       
     
