var datos = {
    'productos': [],
    'tareas': [],
    'categorias': []
};


let categorias = [];
var categoriaProductosFiltro = -1;
var estadoProductosFiltro = 1;


//MENU
window.fn = {};
window.fn.open = function open() {
    var menu = document.getElementById('menu');
    menu.open();
};

window.fn.load = function(page) {
    var content = document.getElementById('myNavigator');
    var menu = document.getElementById('menu');
    content.resetToPage(page);
    menu.close();
};


//$(document).ready(function() {
ons.ready(function() {
    leer();
});


document.addEventListener('init', function(event) {
    if (event.target.matches('#pageListaCompra')) {
        leerProductos(pintarDatos);
        var actualizar = function() {
            var fun = function() {
                leerProductos(pintarDatos);
            }
            leerkey('productos', fun);
        }
        actualizarListas(actualizar);
    }

    if (event.target.matches('#pageTareas')) {
        leerTareas(listadoTareas);
        var actualizar = function() {
            var fun = function() {
                leerTareas(listadoTareas);
            }
            leerkey('tareas', fun);
        }
        actualizarListas(actualizar);
    }

    if (event.target.matches('#pageListaCompraNuevo')) {
        $.each(datos['categorias'], function(key, value) {
            var o = new Option(value, key);
            $("#categorias").append(o);
        });

        var ordenado = $("#categorias option");
        ordenado.sort(function(a, b) {
            if (a.text > b.text) return 1;
            else if (a.text < b.text) return -1;
            else return 0
        })
        $("#categorias").empty().append(ordenado);
        pintarProductosNuevos();
    }
});


function leer(fn = nohagona) {
    $.each(datos, function(key, val) {
        $.ajax({
                method: "GET",
                url: "./includes/" + key + ".php"
            })
            .done(function(msg) {
                datos[key] = JSON.parse(msg);
            });
    });
    fn();
}

function leerkey(key, fn = nohagona) {
    $.ajax({
            method: "GET",
            url: "./includes/" + key + ".php"
        })
        .done(function(msg) {
            datos[key] = JSON.parse(msg);
            fn();
        });
}


//actualizar listas, DESLIZABLE
function actualizarListas(fn, id = 'pull-hook') {
    var pullHook = document.getElementById(id);
    var icon = document.getElementById(id + '-icon');
    pullHook.addEventListener('changestate', function(event) {
        switch (event.state) {
            case 'initial':
                icon.setAttribute('icon', 'fa-arrow-down');
                icon.removeAttribute('rotate');
                icon.removeAttribute('spin');
                break;
            case 'preaction':
                icon.setAttribute('icon', 'fa-arrow-down');
                icon.setAttribute('rotate', '180');
                icon.removeAttribute('spin');
                break;
            case 'action':
                icon.setAttribute('icon', 'fa-spinner');
                icon.removeAttribute('rotate');
                icon.setAttribute('spin', true);
                break;
        }
    });

    pullHook.onAction = function(done) {
        setTimeout(done, 250);
        fn(done);
    };
}

//reconocimiento de voz
function reconocerVozBuscar(input, boton = 'botonvoz') {
    if ("speechSynthesis" in window) {
        $("#" + boton).css('background-color', 'green');
        $("#" + boton).html("<ons-icon icon='fa-play'></ons-icon> &nbsp; CAPTURANDO ...");
        const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
        recognition = new SpeechRecognition();
        recognition.continuous = true;
        recognition.start();
        recognition.onresult = function(event) {
            var transcript = event.results[0][0].transcript;
            transcript = transcript[0].toUpperCase() + transcript.slice(1);
            $("#" + input).val("");
            $("#" + input).val(transcript);
            $("#" + input).keyup();
            recognition.stop();
            $("#" + boton).html("<ons-icon icon='fa-microphone'></ons-icon> &nbsp; CAPTURAR AUDIO");
            $("#" + boton).css("background-color", "rgb(30, 136, 229");
        };
    }
}


function nohagona() {}