(function (window) {
    var self = null;
    var MantenedorMultiTag = {
        prontus_id: '',
        items_pag: 15,
        multitag_data: {},
        // ------------------------------------------------------------------
        init: function (prontus_id) {
            self = this;

            self.prontus_id = prontus_id;

            self.actions.loadData(function () {
                self.bindEvents();
            });

            self.bindNav();

            self.initCompleteFriendly();

            $('#borrar-cache-mtag').on('click', function () {
                showModalConfirm({
                    msg: "Se actualizarán las vistas. Usa esta función si has hecho cambios a los tags o a sus plantillas. ¿Deseas continuar?",
                    okTitle: 'Actualizar',
                    btnClassOk: 'hovwhite radius15 noborder txtnextwhite pad-top-bot7 pad-lef-rig20 int-nextgreen nextgreen',
                    cbBtnOK: function () {
                        $.ajax({
                            url: '/'+Admin.dir_cgi_cpn+'/multitag/prontus_multitag_mant_limpia_cache.cgi',
                            data: {_prontus_id:self.prontus_id},
                            dataType: 'json',
                            success: function (data) {
                                if (data.status === 1) {
                                    showModalAlert({
                                        title: 'Resultado',
                                        type: 'green',
                                        msg: "Se actualizaron las vistas de tags jerárquicos."
                                    });
                                } else {
                                    showModalAlert({
                                        title: 'Error',
                                        type: 'red',
                                        msg: "Ocurrió un error al tratar de actualizar las vistas de tags jerárquicos. Inténtalo nuevamente más tarde."
                                    });
                                }
                            }
                        });
                    },
                    cbBtnCancel: function () {
                        return false;
                    }
                });

                return false;
            });

            $('#acciones-tax div button.actualizar-selectores').on('click', function () {
                showModalConfirm({
                    msg: "Se actualizarán los selectores de Tags Jerárquicos. ¿Deseas continuar?",
                    okTitle: 'Actualizar',
                    btnClassOk: 'hovwhite radius15 noborder txtnextwhite pad-top-bot7 pad-lef-rig20 int-nextgreen nextgreen',
                    cbBtnOK: function () {
                        $.ajax({
                            url: '/'+Admin.dir_cgi_cpn+'/multitag/prontus_multitag_genera_select.cgi',
                            data: {_prontus_id:self.prontus_id},
                            dataType: 'json',
                            success: function (data) {
                                if (data.status === 1) {
                                    showModalAlert({
                                        title: 'Resultado',
                                        type: 'green',
                                        msg: "Vistas de selectores actualizadas."
                                    });
                                } else {
                                    showModalAlert({
                                        title: 'Error',
                                        type: 'red',
                                        msg: "Ocurrió un error al tratar de actualizar: " + data.msg
                                    });
                                }
                            }
                        });
                    },
                    cbBtnCancel: function () {
                        return false;
                    }
                });

                return false;
            });

            $('#acciones-tax').on('click', "#importar-tags-jerarquicos", function(e) {
                e.preventDefault();
                e.stopPropagation();
                MantenedorMultiTag.actions.modalImportTag();
            });

            $('#acciones-tax').on('click', "#exportar-tags-jerarquicos", function(e) {
                e.preventDefault();
                e.stopPropagation();
                MantenedorMultiTag.actions.modalExportTag();
            });

        },
        // ------------------------------------------------------------------
        initCompleteFriendly: function () {

            $('li[id^="form-"]').each(function () {
                var $inputNombre = $(this).find('.campo-nombre input');
                var $inputFriendly = $(this).find('.campo-friendly input');

                $inputNombre.keyup(function (e) {
                    var nombre = $inputNombre.val().toLowerCase();
                    nombre = nombre.replace(/á/gi, "a");
                    nombre = nombre.replace(/é/gi, "e");
                    nombre = nombre.replace(/í/gi, "i");
                    nombre = nombre.replace(/ó/gi, "o");
                    nombre = nombre.replace(/ú/gi, "u");
                    nombre = nombre.replace(/ñ/gi, "n");

                    nombre = nombre.replace(/([^a-z0-9 ]+)/gi, "");
                    nombre = nombre.replace(/ +/g, ' ');
                    nombre = nombre.replace(/ /g, "-");

                    if (nombre.length > 32) {
                        nombre = nombre.substr(0, 32);
                    }

                    $inputFriendly.val(nombre);
                });

                $inputFriendly.keyup(function (e) {
                    var friendly = $inputFriendly.val().toLowerCase();
                    friendly = friendly.replace(/á/gi, "a");
                    friendly = friendly.replace(/é/gi, "e");
                    friendly = friendly.replace(/í/gi, "i");
                    friendly = friendly.replace(/ó/gi, "o");
                    friendly = friendly.replace(/ú/gi, "u");
                    friendly = friendly.replace(/ñ/gi, "n");

                    friendly = friendly.replace(/([^a-z0-9\- ]+)/gi, "");
                    friendly = friendly.replace(/ +/g, ' ');
                    friendly = friendly.replace(/ /g, "-");

                    if (friendly.length > 32) {
                        friendly = friendly.substr(0, 32);
                    }

                    $inputFriendly.val(friendly);
                });
            });
        },
        // Sirve para cambiar de vista en el listado de tags
        navVista: function (elemento) {
            var direccion = $(elemento).data('direccion');
            var nom_vista = $(elemento).data('vista');
            var tipo = $(elemento).data('type');
            if (direccion == 'right') {
                if ($(elemento.parentElement).next().hasClass('header')) {
                    $(elemento.parentElement).hide();
                    $(elemento.parentElement).next().show();

                    $('#form-'+tipo +' .campo-nombre-'+nom_vista).hide();
                    $('#form-'+tipo +' .campo-nombre-'+nom_vista).next().show();

                    $('#multitag_'+tipo +' .campo-nombre-'+nom_vista).hide();
                    $('#multitag_'+tipo +' .campo-nombre-'+nom_vista).next().show();
                }
            } else if (direccion == 'left') {
                if ($(elemento.parentElement).prev().hasClass('header')) {
                    $(elemento.parentElement).hide();
                    $(elemento.parentElement).prev().show();

                    $('#form-'+tipo +' .campo-nombre-'+nom_vista).hide();
                    $('#form-'+tipo +' .campo-nombre-'+nom_vista).prev().show();

                    $('#multitag_'+tipo +' .campo-nombre-'+nom_vista).hide();
                    $('#multitag_'+tipo +' .campo-nombre-'+nom_vista).prev().show();
                }
            }
        },
        bindNav: function () {
            $('#tabpanels').on('click', '.ordenar-vista', function(e) {
                e.preventDefault();
                e.stopPropagation();
                MantenedorMultiTag.navVista(this);
            });
        },
        bindEvents: function () {
            // Agregar nuevo.
            $('.agrega-item').on('click', function () {
                var $parent = $(this).parents('.form');
                var type = $(this).attr('data-type');
                var nombre = $('#form-' + type).find('.campo-nombre input').val();
                var friendly = $('#form-' + type).find('.campo-friendly input').val();

                let saveItem = {
                    nombre: nombre,
                    friendly: friendly
                };
                ProntusConf.mv.forEach(function(vista) {
                    saveItem['nombre-' + vista] = $('#form-' + type).find('.campo-nombre-vista input[name="_nom-vista-'+vista+'"]').val();
                });

                $parent.find('.boton-guardar').hide();
                $parent.find('.loading').show();

                self.actions.saveData('', type, saveItem, function (data) {
                    if (data.status == 0) {
                        showModalAlert({
                            title: 'Error',
                            type: 'red',
                            msg: data.msg
                        });
                    } else if (data.status == 1) {
                        if (data.type === 'seccion') {
                            let item = {
                                MULTITAG_s_estado: data.estado,
                                MULTITAG_s_friendly: data.friendly,
                                MULTITAG_s_id: data.id,
                                MULTITAG_s_nombre: data.nombre,
                                MULTITAG_s_nom4vistas: data.nom4vistas
                            }
                            self.multitag_data[data.type].push(item);
                            self.multitag_data[data.type].sort(
                                function (a, b) {
                                    if (a.MULTITAG_s_nombre > b.MULTITAG_s_nombre) {
                                        return 1;
                                    }
                                    if (a.MULTITAG_s_nombre < b.MULTITAG_s_nombre) {
                                        return -1;
                                    }
                                    return 0;
                                });
                        } else if (data.type === 'tema') {
                            let item = {
                                MULTITAG_t_estado: data.estado,
                                MULTITAG_t_friendly: data.friendly,
                                MULTITAG_t_id: data.id,
                                MULTITAG_t_nombre: data.nombre,
                                MULTITAG_t_nom4vistas: data.nom4vistas
                            }
                            self.multitag_data[data.type].push(item);
                            self.multitag_data[data.type].sort(
                                function (a, b) {
                                    if (a.MULTITAG_t_nombre > b.MULTITAG_t_nombre) {
                                        return 1;
                                    }
                                    if (a.MULTITAG_t_nombre < b.MULTITAG_t_nombre) {
                                        return -1;
                                    }
                                    return 0;
                                });
                        } else if (data.type === 'subtema'){
                            let item = {
                                MULTITAG_st_estado: data.estado,
                                MULTITAG_st_friendly: data.friendly,
                                MULTITAG_st_id: data.id,
                                MULTITAG_st_nombre: data.nombre,
                                MULTITAG_st_nom4vistas: data.nom4vistas
                            }
                            self.multitag_data[data.type].push(item);
                            self.multitag_data[data.type].sort(
                                function (a, b) {
                                    if (a.MULTITAG_st_nombre > b.MULTITAG_st_nombre) {
                                        return 1;
                                    }
                                    if (a.MULTITAG_st_nombre < b.MULTITAG_st_nombre) {
                                        return -1;
                                    }
                                    return 0;
                                });
                        }
                        self.actions.refreshPage(data.type, 1);

                        $('#form-' + type).find('.campo-nombre input').val('');
                        $('#form-' + type).find('.campo-friendly input').val('');

                        ProntusConf.mv.forEach(function(vista) {
                            $('#form-' + type).find('.campo-nombre-vista input[name="_nom-vista-'+vista+'"]').val('');
                        });

                    }
                    $parent.find('.boton-guardar').show();
                    $parent.find('.loading').hide();
                });

                return false;
            });

        },
        bindClipboard: function(id) {
            var $copy = $(id +' .copiar-link');
            $copy.on('click', function(e) {
                e.preventDefault();
            });

            $copy.each( function() {
                // Para el copiar al Clipboard
                self.instalaClipboardHtml5($copy);
            });
        },
        instalaClipboardHtml5: function(element) {
            var $container = element;
            var clipboard = new ClipboardJS(element.get(0),{
                    text: function(trigger) {
                        return element.attr('href');
                    }
                });
            clipboard.on('success', function(e) {
                $container.animate({
                    backgroundColor: "#dff0d8"
                }, 500).animate({
                    backgroundColor: "#cccccc"
                }, 500);
                return true;
            });
        },
        // ------------------------------------------------------------------
        actions: {
            modalExportTag: function() {
                var dataURL = '/cgi-cpn/multitag/prontus_multitag_export.cgi?_prontus_id=' + Admin.prontus_id;
                $('#modal_tags .modal-content').load(dataURL,function(){
                    $('#modal_tags').modal({show:true, backdrop: 'static', keyboard: false});
                    Opciones.checkStatus('/' + Admin.prontus_id + '/cpan/procs/result_multitags_export.json');
                });
            },
            modalImportTag: function() {
                $('#modal_tags_import').modal({show:true, backdrop: 'static', keyboard: false});
                $('#FILE1').filestyle();

                var file = $('#FILE1');
                var msgError = $('#form1 .msg-error');
                var fileFormatIsValid = true;

                file.on('change', function(event) {
                    event.preventDefault();
                    fileFormatIsValid = Tags.fileValidateFormat(file, msgError);
                });

                $('#form1').on('submit', function(e){
                    e.preventDefault();

                    if (file.val() === '') {
                        alert('Debes ingresar un archivo para Importar.');
                        return;
                    }

                    var form_action = '/'+Admin.dir_cgi_cpn+'/multitag/prontus_multitag_import.cgi';
                    var form = $(this);
                    var formdata = false;

                    if (window.FormData){
                        formdata = new FormData(form[0]);
                    }

                    if (fileFormatIsValid) {
                        $.ajax({
                            url         : form_action,
                            data        : formdata ? formdata : form.serialize(),
                            cache       : false,
                            contentType : false,
                            processData : false,
                            type        : 'POST',
                            success     : function(data, textStatus, jqXHR){
                                $('#modal_tags_import .modal-content').html(data);
                                Opciones.checkStatus('/' + Admin.prontus_id + '/cpan/procs/result_multitags_import.json');
                            }
                        });
                    }
                });
            },
            // ------------------------------------------------------------------
            loadData: function (callback) {
                $.ajax({
                    url: '/'+Admin.dir_cgi_cpn+'/multitag/prontus_multitag_load_data.cgi',
                    data: {
                        _prontus_id: self.prontus_id
                    },
                    dataType: 'json',
                    success: function (data) {
                        self.multitag_data = data;
                        self.actions.refreshPage('seccion', 1);
                        self.actions.refreshPage('tema', 1);
                        self.actions.refreshPage('subtema', 1);

                        $('.paginas.seccion').on('click','a',self.actions.changePage);
                        $('.paginas.tema').on('click','a',self.actions.changePage);
                        $('.paginas.subtema').on('click','a',self.actions.changePage);

                        $("#tabpanels .fila .loading").hide();

                        if (typeof callback === "function") {
                            callback();
                        }
                    }
                });
            },
            // ------------------------------------------------------------------
            changePage: function(e){
                if (e.target.tagName.toLowerCase() == 'span') {
                    self.actions.refreshPage(e.target.parentElement.parentElement.dataset.type, e.target.parentElement.dataset.pag);
                } else {
                    self.actions.refreshPage(e.target.parentElement.dataset.type, e.target.dataset.pag);
                }
                return false;
            },
            // ------------------------------------------------------------------
            refreshPage: function(type, page) {
                var start = (page -1) * self.items_pag;
                var last = page * self.items_pag;
                if ( last > self.multitag_data[type].length) {
                    last = self.multitag_data[type].length;
                }

                var item;
                if (type === 'seccion') {
                    self.actions.updateIndex(type, page);
                    $('#multitag_'+type).html('');
                    for (start; start < last; start++) {
                        item = self.multitag_data.seccion[start];
                        self.row.addRow(item.MULTITAG_s_id, 'seccion', item.MULTITAG_s_nombre, item.MULTITAG_s_friendly, (item.MULTITAG_s_estado == 1 ? 'on' : 'off'), item.MULTITAG_s_nom4vistas);
                        self.row.bindEvents('#seccion_' + item.MULTITAG_s_id);
                    }
                } else if (type === 'tema'){
                    self.actions.updateIndex(type, page);
                    $('#multitag_'+type).html('');
                    for (start; start < last; start++) {
                        item = self.multitag_data.tema[start];
                        self.row.addRow(item.MULTITAG_t_id, 'tema', item.MULTITAG_t_nombre, item.MULTITAG_t_friendly, (item.MULTITAG_t_estado == 1 ? 'on' : 'off'), item.MULTITAG_t_nom4vistas);
                        self.row.bindEvents('#tema_' + item.MULTITAG_t_id);
                    }
                } else if (type === 'subtema') {
                    self.actions.updateIndex(type, page);
                    $('#multitag_'+type).html('');
                    for (start; start < last; start++) {
                        item = self.multitag_data.subtema[start];
                        self.row.addRow(item.MULTITAG_st_id, 'subtema', item.MULTITAG_st_nombre, item.MULTITAG_st_friendly, (item.MULTITAG_st_estado == 1 ? 'on' : 'off'), item.MULTITAG_st_nom4vistas);
                        self.row.bindEvents('#subtema_' + item.MULTITAG_st_id);
                    }
                }
            },
            // ------------------------------------------------------------------
            updateIndex: function(type, page) {
                page = parseInt(page, 10);
                var last = page * self.items_pag;
                if ( last > self.multitag_data[type].length) {
                    last = self.multitag_data[type].length;
                }
                var html_index =  "<strong>Resultados:</strong> "+((page -1) * self.items_pag + 1)+" a "+ last +" de "+ self.multitag_data[type].length +" | <strong>Páginas:</strong>";
                var total_pages = Math.ceil(self.multitag_data[type].length / self.items_pag);
                var startpage = page - 5;
                var lastpage = page + 5;
                if (startpage < 1) {
                    startpage = 1;
                } else if (startpage > (total_pages - 10)) {
                    startpage = total_pages - 10;
                }
                if (lastpage > total_pages) {
                    lastpage = total_pages;
                } else if (lastpage < total_pages && lastpage < 11) {
                    lastpage = 11;
                }

                if (page > 1) {
                    html_index += '&nbsp;&nbsp;<a data-pag="'+ (page - 1) + '" href="#" class="hovgray radius15 noborder txtnextgray2 pad-top-bot4 pad-lef-rig7 int-nextgray2 nextgray2 "><span aria-hidden="true" class="fa fa-chevron-left"></span></a>';
                }

                if (startpage > 1) {
                    html_index += "&hellip;";
                }

                for (var i = startpage; i <= lastpage; i++) {
                    if (i == page) {
                        html_index += '&nbsp;' + i +'&nbsp;|';
                    } else {
                        html_index += '&nbsp;<a data-pag="' + i + '" href="#">' + i +'</a>&nbsp;|';
                    }
                }
                html_index = html_index.slice(0, -1);
                if (lastpage < total_pages) {
                    html_index += "&hellip;";
                }
                if (page < total_pages) {
                    html_index += '&nbsp;&nbsp;<a data-pag="'+ (page + 1) + '" href="#" class="hovgray radius15 noborder txtnextgray2 pad-top-bot4 pad-lef-rig7 int-nextgray2 nextgray2 "><span aria-hidden="true" class="fa fa-chevron-right"></span></a>';
                }

                $('.paginas.' + type).html(html_index.substring(0, html_index.length -1));
            },
            // ------------------------------------------------------------------
            saveData: function (id, type, data, callback) {
                if (self.actions.validateData(id, data)) {

                    $.extend(data, {
                        _prontus_id: self.prontus_id,
                        id: id,
                        type: type
                    });
                    $.ajax({
                        url: '/'+Admin.dir_cgi_cpn+'/multitag/prontus_multitag_mant_guardar.cgi',
                        data: data,
                        type: 'POST',
                        dataType: 'json',
                        success: function (response) {
                            if (typeof callback === "function") {
                                callback(response);
                            }
                        }
                    });
                } else {
                    if (typeof callback === "function") {
                        callback(data);
                    }
                }
            },
            // ------------------------------------------------------------------
            deleteData: function (id, type, callback) {
                $.ajax({
                    url: '/'+Admin.dir_cgi_cpn+'/multitag/prontus_multitag_mant_borrar.cgi',
                    data: {_prontus_id:self.prontus_id,id:id,type:type},
                    type: 'POST',
                    dataType: 'json',
                    success: function (data) {
                        if (typeof callback === "function") {
                            callback(data);
                        }
                    }
                });
            },
            // ------------------------------------------------------------------
            validateData: function (id, data) {
                if (data.nombre == "") {
                    showModalAlert({
                        title: 'Error',
                        type: 'red',
                        msg: 'El nombre es obligatorio.'
                    });
                    return false;
                }

                if (!id) { // es nuevo.
                    if (data.friendly == "") {
                        showModalAlert({
                            title: 'Error',
                            type: 'red',
                            msg: 'La Friendly URL es obligatoria.'
                        });
                        return false;
                    }
                }

                return true;
            }
        },
        // ------------------------------------------------------------------
        row: {
            // ------------------------------------------------------------------
            getHtmlTemplate: function (id, type, nombre, friendly, estado, nom4vistas) {
                var html = document.getElementById('_multitag_row_tpl').innerHTML;

                html = html.replace(/__id__/g, id);
                html = html.replace(/___prontus_id__/g, self.prontus_id);
                html = html.replace(/__type__/g, type);
                html = html.replace(/__nombre__/g, nombre);
                html = html.replace(/__friendly__/g, friendly);
                html = html.replace(/__estado__/g, estado);

                ProntusConf.mv.forEach(function(vista) {
                    let regexp = new RegExp('__nombre_'+ vista + '__', 'g');
                    html = html.replace(regexp, (nom4vistas[vista] !== undefined)?nom4vistas[vista]:'');
                });

                var url = ProntusConf['front-protocol'] + '://' + ProntusConf['public-host'];
                if (ProntusConf['multitag-incluir-prontus_id-url'] == 1) {
                    url = url + '/' + Admin.prontus_id + '/' + type + "/" + friendly + "/p/1";
                } else {
                    url = url + '/' + type + "/" + friendly + "/p/1";
                }

                html = html.replace(/__url__/g, url);

                var btn_ticket = '';
                if (estado === 'on') {
                    btn_ticket = 'btn_ticket_green';
                } else if (estado === 'off') {
                    btn_ticket = 'btn_ticket_red';
                }

                return html.replace(/__btn_ticket__/g, btn_ticket);
            },
            // ------------------------------------------------------------------
            addRow: function (id, type, nombre, friendly, estado, nom4vistas) {
                var $html = $('<li>').addClass("iblock w100").html(self.row.getHtmlTemplate(id, type, nombre, friendly, estado, nom4vistas));
                $('#multitag_' + type).append($html);

                self.bindClipboard("#"+type+"_"+id);
            },
            // ------------------------------------------------------------------
            bindEvents: function (selector) {
                if (typeof selector === "undefined") {
                    selector = 'div.row.datos';
                }
                $(selector).find('.editar').click(function () {
                    var elementId = $(this).parents('.row.datos').attr('id');
                    self.row.editRow(elementId);
                    return false;
                });
                $(selector).find('.cancelar').click(function () {
                    var elementId = $(this).parents('.row.datos').attr('id');
                    self.row.cancelEditRow(elementId);
                    return false;
                });
                $(selector).find('.borrar').click(function () {
                    var elementId = $(this).parents('.row.datos').attr('id');
                    self.row.removeRow(elementId);
                    return false;
                });
                $(selector).find('.guardar').click(function () {
                    var elementId = $(this).parents('.row.datos').attr('id');
                    self.row.saveRow(elementId);
                    return false;
                });
            },
            // ------------------------------------------------------------------
            editRow: function (elementId) {
                var $row = $('#' + elementId);
                var html = document.getElementById('_multitag_edit_tpl').innerHTML;

                $row.find('.acciones').hide();
                $row.find('.campo-display').addClass('hide');
                $row.find('.edicion').show();

                let nombre = $row.find('.campo-nombre p').text();
                html = html.replace(/__nombre__/g, nombre);

                ProntusConf.mv.forEach(function(vista) {
                    let nombreMv = $row.find('.campo-nombre-'+vista+' p').text();
                    let regexp = new RegExp('__nombre_'+ vista + '__', 'g');
                    html = html.replace(regexp, nombreMv);
                });

                let friendly = $row.find('.campo-friendly p').text();
                html = html.replace(/__friendly__/g, friendly);

                $(html).insertAfter($row.find('.campo-id'));
            },
            // ------------------------------------------------------------------
            cancelEditRow: function (elementId) {
                var $row = $('#' + elementId);
                $row.find('.acciones').show();
                $row.find('.campo-display').removeClass('hide');
                $row.find('.edicion').hide();
                $row.find('.campo-edit').remove();
            },
            // ------------------------------------------------------------------
            removeRow: function (elementId) {
                showModalConfirm({
                    msg: "Esta operación es irreversible. ¿Estás seguro?",
                    okTitle: 'Eliminar',
                    btnClassOk: 'hovwhite radius15 noborder txtnextwhite pad-top-bot7 pad-lef-rig20 int-nextred nextred',
                    cbBtnOK: function () {
                        var $row = $('#' + elementId);
                        var item = self.helper.getIdType(elementId);

                        $row.find('.acciones').hide();
                        $row.find('.loading').show();

                        self.actions.deleteData(item.id, item.type, function (data) {
                            if (data.status === 1) {
                                $row.parent().fadeOut('fast');
                            } else {
                                showModalAlert({
                                    title: 'Error',
                                    type: 'red',
                                    msg: data.msg
                                });
                                $row.find('.acciones').show();
                                $row.find('.loading').hide();
                            }
                        });
                    },
                    cbBtnCancel: function () {
                        return false;
                    }
                });
                return false;
            },
            // ------------------------------------------------------------------
            saveRow: function (elementId) {
                var $row = $('#' + elementId);
                var nombre = $row.find('.campo-edit input[name="edit-nombre"]').val();
                var friendly = $row.find('.campo-edit input[name="edit-friendly"]').val();
                var item = self.helper.getIdType(elementId);

                $row.find('.edicion').hide();
                $row.find('.loading').show();

                let saveItem = {
                    nombre: nombre,
                    friendly: friendly
                };
                ProntusConf.mv.forEach(function(vista) {
                    saveItem['nombre-' + vista] = $row.find('.campo-edit input[name="edit-nombre-'+vista+'"]').val();
                });

                // Guardar.
                self.actions.saveData(item.id, item.type, saveItem, function (data) {
                    if (data.status == 0) {
                        showModalAlert({
                            title: 'Error',
                            type: 'red',
                            msg: data.msg
                        });
                    } else if (data.status == 1) {
                        $row.find('.campo-nombre').html('<p>' + data.nombre + '</p>');
                        ProntusConf.mv.forEach(function(vista) {
                            $row.find('.campo-nombre-' + vista).html('<p>' + data.nom4vistas[vista] + '</p>');
                        });
                        var url = ProntusConf['front-protocol'] + '://' + ProntusConf['public-host'];
                        if (ProntusConf['multitag-incluir-prontus_id-url'] == 1) {
                            url = url + '/' + Admin.prontus_id + '/' + data.type + "/" + data.friendly + "/p/1";
                        } else {
                            url = url + '/' + data.type + "/" + data.friendly + "/p/1";
                        }
                        $row.find('.campo-friendly').html('<p><a href="'+url+'" target="_blank">' + data.friendly + '</a></p>');
                        $row.find('.loading').hide();
                    }
                    self.row.cancelEditRow(elementId);
                });
            }
        },
        // ------------------------------------------------------------------
        helper: {
            // ------------------------------------------------------------------
            getIdType: function (idCompuesto) {
                var arr = idCompuesto.split('_');
                return {
                    id: arr[1],
                    type: arr[0]
                };
            }
        }
    };

    window.MantenedorMultiTag = MantenedorMultiTag;
})(this);
