var path = "//" + location.host,
    validations = {
        localizadorResult: false,
        localizadorValidation: function(jQueryform, submit) {
            var localizador = jQuery('input[name="localizador"]').val(),
                submit = submit || false;

            jQuery
                .ajax({
                    url      : path + "/wp-content/plugins/visitas/modules/visitas/reservas/ajax/validacion_compra.php",
                    data     : {
                        localizador : localizador,
                        CecaTpv     : jQueryform.is("#CecaTpv")
                    },
                    dataType : "json",
                    type     : "POST",
                    cache    : false
                })
                .done(function(json) {
                    if (json) {
                        if (!submit) {
                            validations.localizadorResult = true;
                        } else {
                            jQueryform[0].submit();
                        }
                    } else {
                        var dom = '<div id="session-caducada-msg" class="col-xs-12 col-sm-12"><label class="error">Lo sentimos, su sesión ha caducado. Inténtelo de nuevo.</label></div>';

                        jQuery(".finalizar_compra").before(dom);

                        setTimeout(function() {
                            window.location = path;
                        }, 5000);
                    }
                });

                setTimeout(function() {
                    if(validations.localizadorResult){
                        var localizador = jQuery('#localizador').val();
                        var id_pedido   = jQuery('#id_pedido').val(); 
                        jQuery
                            .ajax({
                                url   : path + "/wp-content/plugins/visitas/modules/visitas/reservas/ajax/comprobar_pedido.php",
                                data  : { 
                                    id_pedido   : id_pedido, 
                                    localizador : localizador 
                                },
                                type  : "POST",
                                cache : false
                            })
                            .done(function(response) {                         
                                if(response == 0){ 
                                   
                                   var dom = '<div id="session-caducada-msg" class="col-xs-12 col-sm-12"><label class="error">Lo sentimos, el id de pedido no coincide. Inténtelo de nuevo.</label></div>';

                                   jQuery(".finalizar_confirmacion").before(dom);

                                    validations.localizadorResult = false
                                }else{
                                    validations.localizadorResult = true
                                }
                            }); 
                    }
                }, 500);
        },
        preguntasResult: false,
        preguntasValidation: function() {
            var jQueryform  = jQuery("#formPreguntas"),
                data        = jQueryform.serialize(),
                localizador = jQuery('input[name="localizador"]').val();

            if (data.length) {
                jQuery
                    .ajax({
                        url   : path + "/wp-content/plugins/visitas/modules/visitas/reservas/ajax/validacion_preguntas.php",
                        data  : { 
                            preguntas   : data, 
                            localizador : localizador
                        },
                        type  : "POST",
                        cache : false
                    })
                    .done(function() {
                        validations.preguntasResult = true;
                    });
            } else {
                validations.preguntasResult = true;
            }
        }
    };

jQuery(function() {
    var jQueryform = jQuery("#Redsys, #Paypal, #modulo_reservas");

    // Realizamos las validaciones oportunas
    jQueryform.find('input[type="submit"]').on("click", function() {

        validations.localizadorValidation(jQueryform, false);
        
        // Intervalo, espera hasta que se completen los ajax, si ambos son true, envia el formulario
        var interval = setInterval(function() {
            if (validations.localizadorResult) {
                clearInterval(interval);
                jQueryform[0].submit();
            }else{
                  
            }
        }, 5000);

        // Por motivos de seguridad, un timeout para borrar el intervalo si en 10s no ha habido respuesta
        setTimeout(function() {
            clearInterval(interval);
        }, 10000);

        return false;
    });
});
