var EventosBD = {
    init: function () {
        $('#mostrar_log').click(function () {
            $('#modal_logs .modal-body').load($(this).attr('href'));
            $('#modal_logs').modal();
            return false;
        });

        $('#regenerar_tablas_dam').click(function () {
            var urlRegenDamBD = 'dam/prontus_dam_regen.cgi';
            $('#resultados').hide();
            $('#resultados_regen #msg-result').hide();
            $('#resultados_regen #msg-error').hide();
            $('#resultados_regen #msg-log').hide();
            showModalConfirm({
                'title': 'Regenerar tabla de multimedia',
                'msg': '¿Está seguro de regenerar la tabla de multimedia?',
                type: "orange",
                icon: "glyphicon glyphicon-exclamation-sign",
                okTitle: 'Regenerar',
                btnClassOk: 'hovwhite radius15 noborder txtnextwhite pad-top-bot7 pad-lef-rig20 int-nextyellow nextyellow',
                cbBtnOK: function () {
                    $('#resultados_regen').hide();
                    var linkRegenerarDAM = urlRegenDamBD + '?_prontus_id=' + Admin.prontus_id + '&epoch=' + new Date().getTime();
                    $('a#mostrar_log').attr('href',
                        "/" + Admin.prontus_id + "/cpan/procs/prontus_dam_regen_log.html");
                    $('span.tipo_tabla').html('de Multimedia');

                    $.ajax(linkRegenerarDAM).done(function (data, textStatus, jqXHR) {
                        EventosBD.checkStatus(
                            '/' + Admin.prontus_id + '/cpan/procs/result_dam_regen.json'
                        );
                        $('#resultados_regen #msg-result').show();
                        $('#resultados_regen #msg-log').show();
                        $('#resultados_regen').fadeIn();
                    }).fail(function (jqXHR, textStatus, errorThrown) {
                        $('#resultados_regen #msg-error').html(errorThrown + ' ' + textStatus).show();
                        $('#resultados_regen').fadeIn();
                    });
                }
            });
        });

        $('#listar_tablas').click(function () {
            $('#resultados_regen').hide();
            var urlBD = 'prontus_set_bd.cgi';
            var linkListar = urlBD + '?_prontus_id=' + Admin.prontus_id +
                '&sbm_accion=Listar' + '&_' + new Date().getTime();
            $('#resultados').load(linkListar);
            $('#resultados').fadeIn();
        });

        $('#crear_tablas').click(function () {
            $('#resultados_regen').hide();
            var urlBD = 'prontus_set_bd.cgi';
            var linkCrear = urlBD + '?_prontus_id=' + Admin.prontus_id +
                '&sbm_accion=Crear' + '&_' + new Date().getTime();
            $('#resultados').load(linkCrear);
            $('#resultados').fadeIn();
        });

        $('#regenerar_tablas').click(function () {
            var urlRegenBD = 'prontus_regenerabd.cgi';
            $('#resultados').hide();
            $('#resultados_regen #msg-result').hide();
            $('#resultados_regen #msg-error').hide();
            $('#resultados_regen #msg-log').hide();
            showModalConfirm({
                'title': 'Regenerar tabla de artículos',
                'msg': '¿Está seguro de regenerar la tabla de artículos?',
                type: "orange",
                icon: "glyphicon glyphicon-exclamation-sign",
                okTitle: 'Regenerar',
                btnClassOk: 'hovwhite radius15 noborder txtnextwhite pad-top-bot7 pad-lef-rig20 int-nextyellow nextyellow',
                cbBtnOK: function () {
                    $('#resultados_regen').hide();
                    var linkRegenerarArt = urlRegenBD + '?_prontus_id=' + Admin.prontus_id + '&epoch=' + new Date().getTime();

                    $('a#mostrar_log').attr('href',
                        "/" + Admin.prontus_id + "/cpan/procs/prontus_art_regenbd_log.html");
                    $('span.tipo_tabla').html('de Artículos');

                    $.ajax(linkRegenerarArt).done(function (data, textStatus, jqXHR) {
                        EventosBD.checkStatus(
                            '/' + Admin.prontus_id + '/cpan/procs/result_bd_regen.json'
                        );
                        $('#resultados_regen #msg-result').show();
                        $('#resultados_regen #msg-log').show();
                        $('#resultados_regen').fadeIn();
                    }).fail(function (jqXHR, textStatus, errorThrown) {
                        $('#resultados_regen #msg-error').html(errorThrown + ' ' + textStatus).show();
                        $('#resultados_regen').fadeIn();
                    });
                }
            });
        });
    },
    checkStatus: function (theURL) {
        $.ajax({
            url: theURL,
            dataType: 'json',
            cache: false,
            error: function (XMLHttpRequest,
                textStatus, errorThrown) {
                showModalAlert({
                    title: 'Error de servidor',
                    type: 'red',
                    msg: 'Server error procesando request ajax:\nURL invocada:' +
                        theURL + '\ntextStatus=' +
                        textStatus +
                        '\nXMLHttpRequest.status=' +
                        XMLHttpRequest.status +
                        '-' + XMLHttpRequest.statusText +
                        '\nXMLHttpRequest.responseText=[' +
                        XMLHttpRequest.responseText +
                        ']\nResponseHeaders=' +
                        XMLHttpRequest.getAllResponseHeaders()
                });
            },
            success: function (resp, textStatus) {
                if (resp === null) {
                    if (global_progress_counter >
                        10) {
                        $('#msg-loading').hide();
                        $('#msg-error').html(
                            "Error al procesar el script, recargue la página para continuar"
                        );
                        $('#msg-log').fadeIn();
                        return;
                    } else {
                        global_progress_counter++;
                    }
                    setTimeout(function () {
                        EventosBD.checkStatus(
                            theURL);
                    }, 1500);
                    return;
                }
                if (resp.status === 0) {
                    $('#msg-result').hide();
                    if (typeof resp.inprogress !== 'undefined') {
                        $('#msg-loading').html(resp.inprogress).fadeIn('slow');
                    } else if (resp.msg !== 'undefined') {
                        $('#msg-loading').html(resp.msg).fadeIn('slow');
                    }
                    setTimeout(function () {
                        EventosBD.checkStatus(
                            theURL);
                    }, 1500);
                } else {
                    $('#inprogress').hide();
                    if (resp.error) {
                        $('#msg-loading').hide();
                        $('#msg-error').html(
                            resp.msg);
                        $('#msg-log').fadeIn();

                    } else if (resp.msg !== '') {
                        $('#msg-loading').hide();
                        $('#msg-result').html(resp.msg).fadeIn();
                        $('#msg-log').fadeIn();

                    } else {
                        $('#msg-loading').hide();
                        $('#msg-result').fadeIn();
                        $('#msg-log').fadeIn();
                    }
                    if (resp.total) {
                        $('#msg-loading').hide();
                        $('#msg-result').fadeIn();
                        $('#msg-log').fadeIn();
                        $('#total').html(resp.total);
                        $('#total').parent().fadeIn();
                    }
                }
            }
        });
    }
};

$(document).ready(function () {
    EventosBD.init();
});
