var EventosReindex = {
    init: function() {
        $('#reindexar,#reindexar-todo').click(function () {
            var accion = this.id;
            var urlReindexar = 'prontus_indexer_webstart.cgi';
            var datapath = '/'+Admin.prontus_id+'/cpan/procs/reindex.json';
            var logpath = '/'+Admin.prontus_id+'/cpan/procs/prontus_reindex_log.html';
            $('#resultados_reindex').hide();
            $('#reindex_logs').hide();
            $('#errores_reindex').hide();
            showModalConfirm({
                title:'Regenerar los índices del buscador',
                msg: '¿Estás seguro de regenerar los índices del buscador?',
                type: "orange",
                icon: "glyphicon glyphicon-exclamation-sign",
                btnClassOk: 'hovwhite radius15 noborder txtnextwhite pad-top-bot7 pad-lef-rig20 int-nextyellow nextyellow',
                okTitle: 'Regenerar índices',
                cbBtnOK: function() {
                    $('#resultados_reindex').hide();
                    var linkReindexar = encodeURI(urlReindexar + '?_prontus_id=' + Admin.prontus_id);
                    if (accion === 'reindexar-todo') {
                        linkReindexar += '&forzar='+Admin.reindexar_todo+'&_' + new Date().getTime();
                    } else {
                        linkReindexar += '&forzar='+Admin.prontus_id+'&_' + new Date().getTime();
                    }

                    $('a#mostrar_log').attr('href',
                        logpath);

                    $.ajax({url: linkReindexar, dataType: 'json'})
                    .done(function(data, textStatus, jqXHR) {
                        $('#resultados_reindex #reindex_status').html(data['msg']);
                        $('#resultados_reindex').fadeIn();
                        $('#reindex_logs').fadeIn();
                        EventosReindex.checkStatus(datapath);
                    })
                    .fail(function(jqXHR, textStatus, errorThrown) {
                        $('#errores_reindex #reindex_error_message').html(errorThrown + ' ' + textStatus);
                        $('#errores_reindex').show();
                    });

                }
            });
            return false;
        });

        $('#mostrar_log').click(function() {
            $('#modal_logs div.modal-body').load($(this).attr('href'));
            $('#modal_logs').modal();
            return false;
        });

    },

    checkStatus: function(theURL) {
        $.ajax({
            url: theURL,
            dataType: 'json',
            cache: false,
            error: function (XMLHttpRequest,
                textStatus, errorThrown) {
                if (XMLHttpRequest.status == '404') {
                    showModalAlert({
                        title:'Error de servidor',
                        type:'red',
                        msg:'Error de servidor procesando consulta AJAX.<br>URL invocada:' +
                        theURL + '<br>Resultado=Archivo no encontrado.'
                    });
                } else {
                    showModalAlert({
                        title:'Error de servidor',
                        type:'red',
                        msg:'Error de servidor procesando consulta AJAX:\nURL invocada:' +
                        theURL + '<br>textStatus=' +
                        textStatus +
                        '<br>XMLHttpRequest.status=' +
                        XMLHttpRequest.status +
                        '-' + XMLHttpRequest.statusText +
                        '<br>XMLHttpRequest.responseText=[' +
                        XMLHttpRequest.responseText +
                        ']<br>ResponseHeaders=' +
                        XMLHttpRequest.getAllResponseHeaders()
                    });
                }
            },
            success: function (resp, textStatus) {
                $('#reindex_status').removeClass('alert-success').addClass('alert-info');
                if (resp === null) {
                    if (global_progress_counter >
                        10) {
                        $('#resultados_reindex').hide();
                        $('#errores_reindex #reindex_error_message').html(
                            "Error al procesar el script, refresca la página para continuar"
                        );
                        $('errores_reindex').fadeIn();
                        $('#logs_reindex').fadeIn();
                        return;
                    } else {
                        global_progress_counter++;
                    }
                    setTimeout(function () {
                        EventosReindex.checkStatus(
                            theURL);
                    }, 1000);
                    return;
                }
                if (resp.status === 0) {
                    if (typeof resp.inprogress !==
                        'undefined') {
                        $('#reindex_status').html(
                            resp.inprogress
                        );
                        $('#resultados_reindex').fadeIn();
                        $('#logs_reindex').fadeIn();
                    }
                    setTimeout(function () {
                        EventosReindex.checkStatus(
                            theURL);
                    }, 1000);
                } else {
                    $('#resultados_reindex').hide();
                    $('#errores_reindex').hide();
                    $('#logs_reindex').hide();

                    if (resp.error) {
                        $('#resultados_reindex').hide();
                        $('#errores_reindex #reindex_error_message').html(
                            resp.msg);
                        $('#errores_reindex').fadeIn();
                    } else {
                        $('#errores_reindex').hide();
                        $('#reindex_status').removeClass('alert-info alert-next-normal').addClass('alert-success');
                        $('#reindex_status').html(resp.msg);
                        $('#resultados_reindex').fadeIn();
                        $('#logs_reindex').fadeIn();
                    }
                }
            }
        });
    }
};

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