﻿function registroJQuerySuggest() {
    $("tr.sugerencia").click(
                        function() {
                            var tablaSugerencia = $(this).parents(".busquedaConSugerencia").find(".tablaSugerencias");
                            var inputUbicacion = $(this).parents(".busquedaConSugerencia").find(".inputUbicacion");
                            
                            inputUbicacion.val($(this).children("td.sugerenciaZona").text());
                            tablaSugerencia.hide();
                        }
                    );

        $("body").click(
                    function() {
                        $(".tablaSugerencias").hide();
                    }
                );

    $("tr.sugerencia").mouseover(
                        function() {
                            var tablaSugerencia = $(this).parents(".busquedaConSugerencia").find(".tablaSugerencias");
                            var inputUbicacion = $(this).parents(".busquedaConSugerencia").find(".inputUbicacion");

                            inputUbicacion.val($(this).children("td.sugerenciaZona").text());
    
                            $("tr.sugerencia").removeClass("seleccionada");
                            $(this).addClass("seleccionada");
                        }
                    );

    $("tr.sugerencia").mouseout(
                        function() {
                            $("tr.sugerencia").removeClass("seleccionada");
                        }
                    );

   $(".inputUbicacion").unbind("keydown");
   $(".inputUbicacion").keydown(
                        function(e) {
                            var tablaSugerencia = $(this).parents(".busquedaConSugerencia").find(".tablaSugerencias");
                            if (e.keyCode == 40) {//abajo
                                //alert('keyDown');
                                if (tablaSugerencia.find("tr.seleccionada").text() == '') {
                                    //no hay ninguna seleccionada, selecciono la primera
                                    tablaSugerencia.find("tr.sugerencia").filter(":first").addClass("seleccionada");
                                } else {
                                    var siguiente = tablaSugerencia.find("tr.seleccionada").next();
                                    tablaSugerencia.find("tr.seleccionada").removeClass("seleccionada");
                                    siguiente.addClass("seleccionada");
                                }
                            } else if (e.keyCode == 38) {//arriba
                                //alert('keyDown');
                                if (tablaSugerencia.find("tr.seleccionada").text() == '') {
                                    //no hay ninguna seleccionada, selecciono la ultima
                                    tablaSugerencia.find("tr.sugerencia").filter(":last").addClass("seleccionada");
                                } else {
                                    var anterior = tablaSugerencia.find("tr.seleccionada").prev();
                                    tablaSugerencia.find("tr.seleccionada").removeClass("seleccionada");
                                    anterior.addClass("seleccionada");
                                }
                            } else if (e.keyCode == 27) {//escape
                                //alert('keyDown');
                                tablaSugerencia.hide();
                            } else if (e.keyCode == 13) {//enter
                                //alert('keyDown');
                                if (tablaSugerencia.find("tr.seleccionada").text() != '') {
                                    $(this).val($("tr.seleccionada").children("td.sugerenciaZona").text());
                                    tablaSugerencia.hide();
                                    return false; //para evitar q haga postback
                                } else {
                                    //form1.submit();
                                    return true;
                                }
                            }
                        }
                    );
}

var arrayCtrls = new Array();
function indiceEnArray(array, control) {
    for (i = 0; i < array.length; i++) {
        if (array[i][0] == control.attr('id')) {
            return i;
        }
    }
    return -1;
}

function keyUpZonas(key, control) {
    if (key != 40 && key != 38 && key != 27 && key != 13) {
        var txtIngresado = control.val();
        var ind = indiceEnArray(arrayCtrls, control);

        if (ind == -1) {
            var i = arrayCtrls.length;
            arrayCtrls[i] = new Array(2);
            arrayCtrls[i][0] = control.attr('id');
            arrayCtrls[i][1] = txtIngresado;
            ind = i;
        } else {
            arrayCtrls[ind][1] = txtIngresado;
        }

        var xmlHttp = new XMLHttpRequest();
        var url = "/Servicios.svc/GetSuggestedZones";
        var body = '{"text":"' + txtIngresado + '"}';
        xmlHttp.open("POST", url, true);
        xmlHttp.setRequestHeader("Content-type", "application/json");
        xmlHttp.send(body);

        
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4) {
                var json = eval('(' + xmlHttp.responseText + ')');
                var sugerencias = json; //json.d
                var tablaSugerencia = control.parents(".busquedaConSugerencia").find(".tablaSugerencias");
                if (sugerencias.length > 1) {
                    if (sugerencias[0] == arrayCtrls[ind][1]) {
                        tablaSugerencia.children().empty();
                        for (i = 1; i < sugerencias.length; i++) {
                            var txt = '<tr class="sugerencia">' +
                        '<td class="sugerenciaZona">' + sugerencias[i] + '</td>' +
                        '<td class="sugerenciaCantidad"></td></tr>';
                            tablaSugerencia.append(txt);

                            tablaSugerencia.css({ "left": control.position().left });
                            tablaSugerencia.css({ "top": control.position().top + control.height() + 12 });
                            tablaSugerencia.css({ "width": control.width() + 3 });
                        }
                        tablaSugerencia.show();
                    }

                } else {
                    tablaSugerencia.children().empty();
                    tablaSugerencia.hide();
                }
                registroJQuerySuggest();
            }
        };
    }
}

function keyUpCalles(key, control) {
    if (key != 40 && key != 38 && key != 27 && key != 13) 
    {
        var txtIngresado = control.val();

        var ind = indiceEnArray(arrayCtrls, control);

        if (ind == -1) {
            var i = arrayCtrls.length;
            arrayCtrls[i] = new Array(2);
            arrayCtrls[i][0] = control.attr('id');
            arrayCtrls[i][1] = txtIngresado;
            ind = i;
        } else {
            arrayCtrls[ind][1] = txtIngresado;
        }
        
        var xmlHttp = new XMLHttpRequest();
        var url = "/Servicios.svc/GetSuggestedStreets";
        var body = '{"text":"' + txtIngresado + '"}';
        xmlHttp.open("POST", url, true);
        xmlHttp.setRequestHeader("Content-type", "application/json");
        xmlHttp.send(body);
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4) {
                var json = eval('(' + xmlHttp.responseText + ')');
                var sugerencias = json; //json.d
                var tablaSugerencia = control.parents(".busquedaConSugerencia").find(".tablaSugerencias");
                if (sugerencias.length > 1) {
                    if (sugerencias[0] == arrayCtrls[ind][1]) { 
                        tablaSugerencia.children().empty();
                        for (i = 1; i < sugerencias.length; i++) {
                            var txt = '<tr class="sugerencia">' +
                            '<td class="sugerenciaZona">' + sugerencias[i] + '</td>' +
                            '<td class="sugerenciaCantidad"></td></tr>';
                            tablaSugerencia.append(txt);

                            tablaSugerencia.css({ "left": control.position().left });
                            tablaSugerencia.css({ "top": control.position().top + control.height() + 12 });
                            tablaSugerencia.css({ "width": control.width() + 3 });
                        }
                        tablaSugerencia.show();
                    }
                } else {
                    tablaSugerencia.children().empty();
                    tablaSugerencia.hide();
                }
                registroJQuerySuggest();
            }
        };
    }
}
