Comunicacion Operacion UAS

Comunicacion Operacion UAS en Web del Ministerio de Interior

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Comunicacion Operacion UAS
// @namespace    http://tampermonkey.net/
// @version      2025-03-03
// @description  Comunicacion Operacion UAS en Web del Ministerio de Interior
// @author       You
// @match        https://drones.ses.mir.es/drones-web/formulario
// @icon         https://www.google.com/s2/favicons?sz=64&domain=mir.es
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Create UI elements
    const container = createContainer();
    const idText = createIdText(container);
    const operatorSelect = createOperatorSelect(container);
    const fillButton = createButton(container, 'Rellena', handleFillButtonClick);
    const saveButton = createButton(container, 'Graba', handleSaveButtonClick);
    const deleteButton = createButton(container, 'Elimina', handleDeleteButtonClick);

    // Initialize
    initialize();

    function createContainer() {
        const container = document.createElement('div');
        container.style.position = 'fixed';
        container.style.top = '10px';
        container.style.right = '10px';
        container.style.display = 'flex';
        container.style.gap = '10px';
        document.body.appendChild(container);
        return container;
    }

    function createIdText(container) {
        const idText = document.createElement('div');
        container.appendChild(idText);
        return idText;
    }

    function createOperatorSelect(container) {
        const operatorSelect = document.createElement('select');
        container.appendChild(operatorSelect);
        return operatorSelect;
    }

    function createButton(container, text, onClick) {
        const button = document.createElement('button');
        button.innerText = text;
        button.addEventListener('click', onClick);
        container.appendChild(button);
        return button;
    }

    function setCookie(name, value) {
        const expires = "expires=Fri, 31 Dec 9999 23:59:59 GMT";
        document.cookie = name + "=" + value + ";" + expires + ";path=/";
    }

    function getCookie(name) {
        const nameEQ = name + "=";
        const ca = document.cookie.split(';');
        for (let i = 0; i < ca.length; i++) {
            let c = ca[i];
            while (c.charAt(0) === ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
        }
        return null;
    }

    function updateSelect() {
        operatorSelect.innerHTML = '';
        const operators = JSON.parse(getCookie(idText.innerText) || '[]');
        operators.forEach(operator => {
            const option = document.createElement('option');
            option.value = operator.key;
            option.innerText = operator.key;
            operatorSelect.appendChild(option);
        });
    }

    function handleFillButtonClick() {
        switch (idText.innerText) {
            case 'Operador':
                fillOperatorForm();
                break;
            case 'Piloto':
                fillPilotForm();
                break;
            case 'Uas':
                fillUasForm();
                break;
            case 'Observadores':
                fillObserversForm();
                break;
            case 'Operacion':
                fillOperationForm();
                break;
            default:
                alert('No form found!');
        }
    }

    function handleSaveButtonClick() {
        switch (idText.innerText) {
            case 'Operador':
                saveOperatorForm();
                break;
            case 'Piloto':
                savePilotForm();
                break;
            case 'Uas':
                saveUasForm();
                break;
            case 'Observadores':
                saveObserversForm();
                break;
            case 'Operacion':
                saveOperationForm();
                break;
            default:
                alert('No form found!');
        }
    }

    function handleDeleteButtonClick() {
        const key = operatorSelect.value;
        let items = JSON.parse(getCookie(idText.innerText) || '[]');
        const existingItemIndex = items.findIndex(op => op.key === key);
        if (existingItemIndex !== -1) {
            const confirmDelete = confirm(`¿Estás seguro de que deseas eliminar este ${idText.innerText} "${key}"?`);
            if (!confirmDelete)
                return;

            items.splice(existingItemIndex, 1);
            setCookie(idText.innerText, JSON.stringify(items));
            updateSelect();
        }
    }

    function fillOperatorForm() {
        const operators = JSON.parse(getCookie(idText.innerText) || '[]');
        const selectedOperator = operators.find(op => op.key === operatorSelect.value);
        if (selectedOperator) {
            const formData = selectedOperator.data;
            document.querySelector('#formCampos\\:viaOPERADOR').value = formData.viaOPERADOR;

            const comboBoxViaOperador = document.querySelector('#formCampos\\:tipoViaOPERADOR_input');
            if (comboBoxViaOperador) {
                comboBoxViaOperador.value = formData.tipoViaOPERADOR;
                const event = new Event('change', { bubbles: false });
                comboBoxViaOperador.dispatchEvent(event);
            }

            setTimeout(() => {
                const comboBoxProvinciaOperador = document.querySelector('#formCampos\\:provinciaOPERADOR_input');
                if (comboBoxProvinciaOperador) {
                    comboBoxProvinciaOperador.value = formData.provinciaOPERADOR;
                    const event = new Event('change', { bubbles: false });
                    comboBoxProvinciaOperador.dispatchEvent(event);

                    setTimeout(() => {
                        const comboBoxLocalidadOperador = document.querySelector('#formCampos\\:localidadOPERADOR_input');
                        if (comboBoxLocalidadOperador) {
                            comboBoxLocalidadOperador.value = formData.localidadOPERADOR;
                            const event = new Event('change', { bubbles: false });
                            comboBoxLocalidadOperador.dispatchEvent(event);

                            setTimeout(() => {
                                document.querySelector('#formCampos\\:viaOPERADOR').value = formData.viaOPERADOR;
                                document.querySelector('#formCampos\\:numeroOPERADOR').value = formData.numeroOPERADOR;
                                document.querySelector('#formCampos\\:pisoOPERADOR').value = formData.pisoOPERADOR;
                                document.querySelector('#formCampos\\:codPostalOPERADOR').value = formData.codPostalOPERADOR;
                                document.querySelector('#formCampos\\:telefono1OPERADOR').value = formData.telefono1OPERADOR;
                                document.querySelector('#formCampos\\:telefono2OPERADOR').value = formData.telefono2OPERADOR;
                                document.querySelector('#formCampos\\:emailOPERADOR').value = formData.emailOPERADOR;
                                document.querySelector('#formCampos\\:codigoOp').value = formData.codigoOp;
                            }, 1000); // Adjust the delay as needed
                        }
                    }, 1000); // Adjust the delay as needed
                }
            }, 1000); // Adjust the delay as needed
        } else {
            alert('No hay operador seleccionado o no se ha encontrado la información del operador!');
        }
    }

    function fillPilotForm() {
        const pilots = JSON.parse(getCookie(idText.innerText) || '[]');
        const selectedPilot = pilots.find(op => op.key === operatorSelect.value);
        if (selectedPilot) {
            const formData = selectedPilot.data;


            const comboBoxTipoDocPiloto = document.querySelector('#formCampos\\:tipoDocPILOTO_input');
            if (comboBoxTipoDocPiloto) {
                comboBoxTipoDocPiloto.value = formData.tipoDocPiloto;
                const event = new Event('change', { bubbles: false });
                comboBoxTipoDocPiloto.dispatchEvent(event);
            }

            setTimeout(() => {


                const comboBoxViaPiloto = document.querySelector('#formCampos\\:tipoViaPILOTO_input');
                if (comboBoxViaPiloto) {
                    comboBoxViaPiloto.value = formData.tipoViaPILOTO;
                    const event = new Event('change', { bubbles: false });
                    comboBoxViaPiloto.dispatchEvent(event);
                }

                setTimeout(() => {
                    const comboBoxProvinciaPiloto = document.querySelector('#formCampos\\:provinciaPILOTO_input');
                    if (comboBoxProvinciaPiloto) {

                        comboBoxProvinciaPiloto.value = formData.provinciaPILOTO;
                        const event = new Event('change', { bubbles: false });
                        comboBoxProvinciaPiloto.dispatchEvent(event);

                        setTimeout(() => {
                            const comboBoxLocalidadPiloto = document.querySelector('#formCampos\\:localidadPILOTO_input');
                            if (comboBoxLocalidadPiloto) {

                                comboBoxLocalidadPiloto.value = formData.localidadPILOTO;
                                const event = new Event('change', { bubbles: false });
                                comboBoxLocalidadPiloto.dispatchEvent(event);

                                setTimeout(() => {

                                    document.querySelector('#formCampos\\:nombreRazonPILOTO').value = formData.nombreRazonPILOTO;
                                    document.querySelector('#formCampos\\:apellido1PILOTO').value = formData.apellido1PILOTO;
                                    document.querySelector('#formCampos\\:apellido2PILOTO').value = formData.apellido2PILOTO;

                                    document.querySelector('#formCampos\\:documentoPILOTO').value = formData.documentoPILOTO;
                                    document.querySelector('#formCampos\\:viaPILOTO').value = formData.viaPILOTO;

                                    document.querySelector('#formCampos\\:numeroPILOTO').value = formData.numeroPILOTO;
                                    document.querySelector('#formCampos\\:portalPILOTO').value = formData.portalPILOTO;
                                    document.querySelector('#formCampos\\:pisoPILOTO').value = formData.pisoPILOTO;
                                    document.querySelector('#formCampos\\:letraPILOTO').value = formData.letraPILOTO;
                                    document.querySelector('#formCampos\\:codPostalPILOTO').value = formData.codPostalPILOTO;
                                    document.querySelector('#formCampos\\:telefono1PILOTO').value = formData.telefono1PILOTO;
                                    document.querySelector('#formCampos\\:telefono2PILOTO').value = formData.telefono2PILOTO;

                                    document.querySelector('#formCampos\\:emailPILOTO').value = formData.emailPILOTO;

                                    document.querySelector('#formCampos\\:desCertCompetPil').value = formData.desCertCompetPil;
                                    document.querySelector('#formCampos\\:desCertFormacionPil').value = formData.desCertFormacionPil;
                                    document.querySelector('#formCampos\\:desCertSeguroPil').value = formData.desCertSeguroPil;
                                    document.querySelector('#formCampos\\:fechaVigCertSeguroPil_input').value = formData.fechaVigCertSeguroPil;
                                    document.querySelector('#formCampos\\:entidadCertSeguroPil').value = formData.entidadCertSeguroPil;
                                }, 1000); // Adjust the delay as needed
                            }
                        }, 1000); // Adjust the delay as needed
                    }
                }, 2000); // Adjust the delay as needed
            }, 2000); // Adjust the delay as needed
        } else {
            alert('no se hay piloto seleccionado o no se ha encontrado la información del piloto!');
        }
    }

    function fillUasForm() {
        const uas = JSON.parse(getCookie(idText.innerText) || '[]');
        const selectedUas = uas.find(op => op.key === operatorSelect.value);
        if (selectedUas) {
            const formData = selectedUas.data;
            const comboBoxClaseRpa = document.querySelector('#formCampos\\:codClaseRpa_input');
            if (comboBoxClaseRpa) {
                comboBoxClaseRpa.value = formData.codClaseRpa;
                const event = new Event('change', { bubbles: false });
                comboBoxClaseRpa.dispatchEvent(event);
            }

            setTimeout(() => {
                document.querySelector('#formCampos\\:nomFabricanteRpa').value = formData.nomFabricanteRpa;
                document.querySelector('#formCampos\\:codModeloRpa').value = formData.codModeloRpa;
                document.querySelector('#formCampos\\:desModeloRpa').value = formData.desModeloRpa;
                document.querySelector('#formCampos\\:numSerieRpa').value = formData.numSerieRpa;
                document.querySelector('#formCampos\\:matriculaRpa').value = formData.matriculaRpa;
                const inputMtomRpa = document.querySelector('#formCampos\\:mtomRpa_input');
                if (inputMtomRpa) {
                    inputMtomRpa.value = formData.mtomRpa;
                    const event = new Event('change', { bubbles: false });
                    inputMtomRpa.dispatchEvent(event);
                }
                const inputAutonomiaRpa = document.querySelector('#formCampos\\:autonomiaRpa_input');
                if (inputAutonomiaRpa) {
                    inputAutonomiaRpa.value = formData.autonomiaRpa;
                    const event = new Event('change', { bubbles: false });
                    inputAutonomiaRpa.dispatchEvent(event);
                }
                document.querySelector('#formCampos\\:autopilotoRpa').value = formData.autopilotoRpa;
                document.querySelector('#formCampos\\:bandaRpa').value = formData.bandaRpa;
                document.querySelector('#formCampos\\:colorRpa').value = formData.colorRpa;
                document.querySelector('#formCampos\\:lucesRpa').value = formData.lucesRpa;
                document.querySelector('#formCampos\\:cargaRpa').value = formData.cargaRpa;
                document.querySelector('#formCampos\\:vhfRpa').value = formData.vhfRpa;
                document.querySelector('#formCampos\\:eqEmergenciaRpa').value = formData.eqEmergenciaRpa;
                document.querySelector('#formCampos\\:visionRpa').value = formData.visionRpa;
                document.querySelector('#formCampos\\:modoSRpa').value = formData.modoSRpa;
            }
            , 1000); // Adjust the delay as needed
        } else {
            alert('No hay UAS seleccionado o no se ha encontrado la información del UAS!');
        }
    }

    function fillObserversForm() {
        const observers = JSON.parse(getCookie(idText.innerText) || '[]');
        const selectedObserver = observers.find(op => op.key === operatorSelect.value);

        if (selectedObserver) {
            const formData = selectedObserver.data;
            const comboBoxTipoDocObservadores = document.querySelector('#formCampos\\:tipoDocOBSERVADORES_input');
            if (comboBoxTipoDocObservadores) {
                comboBoxTipoDocObservadores.value = formData.tipoDocObservadores;
                const event = new Event('change', { bubbles: false });
                comboBoxTipoDocObservadores.dispatchEvent(event);
            }

            setTimeout(() => {
                const comboBoxViaObservadores = document.querySelector('#formCampos\\:tipoViaOBSERVADORES_input');
                if (comboBoxViaObservadores) {
                    comboBoxViaObservadores.value = formData.tipoViaOBSERVADORES;
                    const event = new Event('change', { bubbles: false });
                    comboBoxViaObservadores.dispatchEvent(event);
                }

                setTimeout(() => {
                    const comboBoxProvinciaObservadores = document.querySelector('#formCampos\\:provinciaOBSERVADORES_input');

                    if (comboBoxProvinciaObservadores) {

                        comboBoxProvinciaObservadores.value = formData.provinciaOBSERVADORES;
                        const event = new Event('change', { bubbles: false });
                        comboBoxProvinciaObservadores.dispatchEvent(event);

                        setTimeout(() => {
                            const comboBoxLocalidadObservadores = document.querySelector('#formCampos\\:localidadOBSERVADORES_input');
                            if (comboBoxLocalidadObservadores) {

                                comboBoxLocalidadObservadores.value = formData.localidadOBSERVADORES;
                                const event = new Event('change', { bubbles: false });
                                comboBoxLocalidadObservadores.dispatchEvent(event);

                                setTimeout(() => {

                                    document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value = formData.nombreRazonOBSERVADORES;
                                    document.querySelector('#formCampos\\:apellido1OBSERVADORES').value = formData.apellido1OBSERVADORES;
                                    document.querySelector('#formCampos\\:apellido2OBSERVADORES').value = formData.apellido2OBSERVADORES;
                                    document.querySelector('#formCampos\\:documentoOBSERVADORES').value = formData.documentoOBSERVADORES;
                                    document.querySelector('#formCampos\\:viaOBSERVADORES').value = formData.viaOBSERVADORES;
                                    document.querySelector('#formCampos\\:numeroOBSERVADORES').value = formData.numeroOBSERVADORES;
                                    document.querySelector('#formCampos\\:portalOBSERVADORES').value = formData.portalOBSERVADORES;
                                    document.querySelector('#formCampos\\:pisoOBSERVADORES').value = formData.pisoOBSERVADORES;
                                    document.querySelector('#formCampos\\:letraOBSERVADORES').value = formData.letraOBSERVADORES;
                                    document.querySelector('#formCampos\\:codPostalOBSERVADORES').value = formData.codPostalOBSERVADORES;
                                    document.querySelector('#formCampos\\:telefono1OBSERVADORES').value = formData.telefono1OBSERVADORES;
                                    document.querySelector('#formCampos\\:telefono2OBSERVADORES').value = formData.telefono2OBSERVADORES;
                                    document.querySelector('#formCampos\\:emailOBSERVADORES').value = formData.emailOBSERVADORES;
                                }, 1000); // Adjust the delay as needed
                            }
                        }, 1000); // Adjust the delay as needed
                    }
                }, 1000); // Adjust the delay as needed
            }, 1000); // Adjust the delay as needed
        } else {
            alert('No hay observador seleccionado o no se ha encontrado la información del observador!');
        }
    }

    function fillOperationForm() {
        const operations = JSON.parse(getCookie(idText.innerText) || '[]');
        const selectedOperation = operations.find(op => op.key === operatorSelect.value);
        if (selectedOperation) {
            const formData = selectedOperation.data;
            document.querySelector('#formCampos\\:tipo').value = formData.tipo;
            document.querySelector('#formCampos\\:fecha_input').value = formData.fecha;
            document.querySelector('#formCampos\\:horaInicio_input').value = formData.horaInicio;
            document.querySelector('#formCampos\\:minutosInicio_input').value = formData.minutosInicio;
            document.querySelector('#formCampos\\:horaFin_input').value = formData.horaFin;
            document.querySelector('#formCampos\\:minutosFin_input').value = formData.minutosFin;
            document.querySelector('#formCampos\\:lugarProteccion').value = formData.lugarProteccion;
            document.querySelector('#formCampos\\:lugarRecuperacionRem').value = formData.lugarRecuperacionRem;
            const inputAlturaRem = document.querySelector('#formCampos\\:alturaRem_input');
            if (inputAlturaRem) {
                inputAlturaRem.value = formData.alturaRem;
                const event = new Event('change', { bubbles: false });
                inputAlturaRem.dispatchEvent(event);
            }
            const inputZonaVuelo = document.querySelector('#formCampos\\:zona\\:mapa_value');
            if (inputZonaVuelo) {
                inputZonaVuelo.value = formData.ZonaVuelo;
                const event = new Event('change', { bubbles: false });
                inputZonaVuelo.dispatchEvent(event);
            }
            const ccAas = formData.ccAas;
            if (ccAas) {
                ccAas.forEach(ccAa => {
                    const inputCcAa = document.querySelector(`#formCampos\\:ccAas input[value="${ccAa}"]`);
                    if (inputCcAa) {
                        inputCcAa.click();
                    }
                });
            }
        } else {
            alert('No hay operación seleccionada o no se ha encontrado la información de la operación!');
        }
    }


    function saveOperatorForm() {
        const key = `${document.querySelector('#formCampos\\:nombreRazonOPERADOR').value} ${document.querySelector('#formCampos\\:apellido1OPERADOR').value} ${document.querySelector('#formCampos\\:apellido2OPERADOR').value}`;
        const formData = {
            viaOPERADOR: document.querySelector('#formCampos\\:viaOPERADOR').value,
            tipoViaOPERADOR: document.querySelector('#formCampos\\:tipoViaOPERADOR_input').value,
            paisOPERADOR: document.querySelector('#formCampos\\:paisOPERADOR_input').value,
            provinciaOPERADOR: document.querySelector('#formCampos\\:provinciaOPERADOR_input').value,
            localidadOPERADOR: document.querySelector('#formCampos\\:localidadOPERADOR_input').value,
            numeroOPERADOR: document.querySelector('#formCampos\\:numeroOPERADOR').value,
            portalOPERADOR: document.querySelector('#formCampos\\:portalOPERADOR').value,
            pisoOPERADOR: document.querySelector('#formCampos\\:pisoOPERADOR').value,
            letraOPERADOR: document.querySelector('#formCampos\\:letraOPERADOR').value,
            codPostalOPERADOR: document.querySelector('#formCampos\\:codPostalOPERADOR').value,
            telefono1OPERADOR: document.querySelector('#formCampos\\:telefono1OPERADOR').value,
            telefono2OPERADOR: document.querySelector('#formCampos\\:telefono2OPERADOR').value,
            emailOPERADOR: document.querySelector('#formCampos\\:emailOPERADOR').value,
            codigoOp: document.querySelector('#formCampos\\:codigoOp').value
        };

        let operators = JSON.parse(getCookie(idText.innerText) || '[]');
        const existingOperatorIndex = operators.findIndex(op => op.key === key);
        if (existingOperatorIndex !== -1) {
            const confirmOverride = confirm('Ya existen datos de este operador, quieres sobreescribirlos?');
            if (!confirmOverride)
                return;
            operators[existingOperatorIndex].data = formData;
        } else {
            operators.push({ key, data: formData });
        }

        setCookie(idText.innerText, JSON.stringify(operators));
        updateSelect();
    }

    function savePilotForm() {
        if (!document.querySelector('#formCampos\\:nombreRazonPILOTO').value) {
            alert('El campo "Nombre" es obligatorio');
            return;
        }
        if (!document.querySelector('#formCampos\\:apellido1PILOTO').value) {
            alert('El campo "Primer apellido" es obligatorio');
            return;
        }
        const key = `${document.querySelector('#formCampos\\:nombreRazonPILOTO').value} ${document.querySelector('#formCampos\\:apellido1PILOTO').value} ${document.querySelector('#formCampos\\:apellido2PILOTO').value}`;
        const formData = {
            nombreRazonPILOTO: document.querySelector('#formCampos\\:nombreRazonPILOTO').value,
            apellido1PILOTO: document.querySelector('#formCampos\\:apellido1PILOTO').value,
            apellido2PILOTO: document.querySelector('#formCampos\\:apellido2PILOTO').value,
            tipoDocPiloto: document.querySelector('#formCampos\\:tipoDocPILOTO_input').value,
            documentoPILOTO: document.querySelector('#formCampos\\:documentoPILOTO').value,
            viaPILOTO: document.querySelector('#formCampos\\:viaPILOTO').value,
            tipoViaPILOTO: document.querySelector('#formCampos\\:tipoViaPILOTO_input').value,
            paisPILOTO: document.querySelector('#formCampos\\:paisPILOTO_input').value,
            provinciaPILOTO: document.querySelector('#formCampos\\:provinciaPILOTO_input').value,
            localidadPILOTO: document.querySelector('#formCampos\\:localidadPILOTO_input').value,
            numeroPILOTO: document.querySelector('#formCampos\\:numeroPILOTO').value,
            portalPILOTO: document.querySelector('#formCampos\\:portalPILOTO').value,
            pisoPILOTO: document.querySelector('#formCampos\\:pisoPILOTO').value,
            letraPILOTO: document.querySelector('#formCampos\\:letraPILOTO').value,
            codPostalPILOTO: document.querySelector('#formCampos\\:codPostalPILOTO').value,

            telefono1PILOTO: document.querySelector('#formCampos\\:telefono1PILOTO').value,
            telefono2PILOTO: document.querySelector('#formCampos\\:telefono2PILOTO').value,
            emailPILOTO: document.querySelector('#formCampos\\:emailPILOTO').value,
            desCertCompetPil: document.querySelector('#formCampos\\:desCertCompetPil').value,
            desCertFormacionPil: document.querySelector('#formCampos\\:desCertFormacionPil').value,
            desCertSeguroPil: document.querySelector('#formCampos\\:desCertSeguroPil').value,
            fechaVigCertSeguroPil: document.querySelector('#formCampos\\:fechaVigCertSeguroPil_input').value,
            entidadCertSeguroPil: document.querySelector('#formCampos\\:entidadCertSeguroPil').value
        };

        let pilots = JSON.parse(getCookie(idText.innerText) || '[]');
        const existingPilotIndex = pilots.findIndex(op => op.key === key);
        if (existingPilotIndex !== -1) {
            const confirmOverride = confirm('Ya existen datos de este piloto, queres sobreescribirlos?');
            if (!confirmOverride)
                return;
            pilots[existingPilotIndex].data = formData;
        } else {
            pilots.push({ key, data: formData });
        }

        setCookie(idText.innerText, JSON.stringify(pilots));
        updateSelect();
    }

    function saveUasForm() {
        if (!document.querySelector('#formCampos\\:desModeloRpa').value) {
            alert('El campo "Modelo" es obligatorio');
            return;
        }
        const key = `${document.querySelector('#formCampos\\:nomFabricanteRpa').value} ${document.querySelector('#formCampos\\:desModeloRpa').value}`;
        const formData = {
            codClaseRpa: document.querySelector('#formCampos\\:codClaseRpa_input').value,
            nomFabricanteRpa: document.querySelector('#formCampos\\:nomFabricanteRpa').value,
            codModeloRpa: document.querySelector('#formCampos\\:codModeloRpa').value,
            desModeloRpa: document.querySelector('#formCampos\\:desModeloRpa').value,
            numSerieRpa: document.querySelector('#formCampos\\:numSerieRpa').value,
            matriculaRpa: document.querySelector('#formCampos\\:matriculaRpa').value,
            mtomRpa: document.querySelector('#formCampos\\:mtomRpa_input').value,
            autonomiaRpa: document.querySelector('#formCampos\\:autonomiaRpa_input').value,
            autopilotoRpa: document.querySelector('#formCampos\\:autopilotoRpa').value,
            bandaRpa: document.querySelector('#formCampos\\:bandaRpa').value,
            colorRpa: document.querySelector('#formCampos\\:colorRpa').value,
            lucesRpa: document.querySelector('#formCampos\\:lucesRpa').value,
            cargaRpa: document.querySelector('#formCampos\\:cargaRpa').value,
            vhfRpa: document.querySelector('#formCampos\\:vhfRpa').value,
            modoSRpa: document.querySelector('#formCampos\\:modoSRpa').value,
            eqEmergenciaRpa: document.querySelector('#formCampos\\:eqEmergenciaRpa').value,
            visionRpa: document.querySelector('#formCampos\\:visionRpa').value
        };

        let uas = JSON.parse(getCookie(idText.innerText) || '[]');
        const existingUasIndex = uas.findIndex(op => op.key === key);

        if (existingUasIndex !== -1) {
            const confirmOverride = confirm('Ya existen datos de esta UAS, queres sobreescribirlos?');
            if (!confirmOverride)
                return;
            uas[existingUasIndex].data = formData;
        }
        else {
            uas.push({ key, data: formData });
        }

        setCookie(idText.innerText, JSON.stringify(uas));
        updateSelect();
    }

    function saveObserversForm() {
        if (!document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value) {
            alert('El campo "Nombre" es obligatorio');
            return;
        }
        if (!document.querySelector('#formCampos\\:apellido1OBSERVADORES').value) {
            alert('El campo "Primer apellido" es obligatorio');
            return;
        }
        const key = `${document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value} ${document.querySelector('#formCampos\\:apellido1OBSERVADORES').value} ${document.querySelector('#formCampos\\:apellido2OBSERVADORES').value}`;
        const formData = {
            nombreRazonOBSERVADORES: document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value,
            apellido1OBSERVADORES: document.querySelector('#formCampos\\:apellido1OBSERVADORES').value,
            apellido2OBSERVADORES: document.querySelector('#formCampos\\:apellido2OBSERVADORES').value,
            tipoDocObservadores: document.querySelector('#formCampos\\:tipoDocOBSERVADORES_input').value,
            documentoOBSERVADORES: document.querySelector('#formCampos\\:documentoOBSERVADORES').value,
            viaOBSERVADORES: document.querySelector('#formCampos\\:viaOBSERVADORES').value,
            tipoViaOBSERVADORES: document.querySelector('#formCampos\\:tipoViaOBSERVADORES_input').value,
            paisOBSERVADORES: document.querySelector('#formCampos\\:paisOBSERVADORES_input').value,
            provinciaOBSERVADORES: document.querySelector('#formCampos\\:provinciaOBSERVADORES_input').value,
            localidadOBSERVADORES: document.querySelector('#formCampos\\:localidadOBSERVADORES_input').value,

            numeroOBSERVADORES: document.querySelector('#formCampos\\:numeroOBSERVADORES').value,
            portalOBSERVADORES: document.querySelector('#formCampos\\:portalOBSERVADORES').value,
            pisoOBSERVADORES: document.querySelector('#formCampos\\:pisoOBSERVADORES').value,
            letraOBSERVADORES: document.querySelector('#formCampos\\:letraOBSERVADORES').value,
            codPostalOBSERVADORES: document.querySelector('#formCampos\\:codPostalOBSERVADORES').value,
            telefono1OBSERVADORES: document.querySelector('#formCampos\\:telefono1OBSERVADORES').value,
            telefono2OBSERVADORES: document.querySelector('#formCampos\\:telefono2OBSERVADORES').value,
            emailOBSERVADORES: document.querySelector('#formCampos\\:emailOBSERVADORES').value
        };

        let observers = JSON.parse(getCookie(idText.innerText) || '[]');
        const existingObserverIndex = observers.findIndex(op => op.key === key);

        if (existingObserverIndex !== -1) {
            const confirmOverride = confirm('Ya existen datos de este observador, queres sobreescribirlos?');
            if (!confirmOverride)
                return;
            observers[existingObserverIndex].data = formData;
        }
        else {
            observers.push({ key, data: formData });
        }

        setCookie(idText.innerText, JSON.stringify(observers));
        updateSelect();
    }

    function saveOperationForm() {
        const key = document.querySelector('#formCampos\\:tipo').value;
        const formData = {
            tipo: document.querySelector('#formCampos\\:tipo').value,
            fecha: document.querySelector('#formCampos\\:fecha_input').value,
            horaInicio: document.querySelector('#formCampos\\:horaInicio_input').value,
            minutosInicio: document.querySelector('#formCampos\\:minutosInicio_input').value,
            horaFin: document.querySelector('#formCampos\\:horaFin_input').value,
            minutosFin: document.querySelector('#formCampos\\:minutosFin_input').value,
            lugarProteccion: document.querySelector('#formCampos\\:lugarProteccion').value,
            lugarRecuperacionRem: document.querySelector('#formCampos\\:lugarRecuperacionRem').value,
            alturaRem: document.querySelector('#formCampos\\:alturaRem_input').value,
            ccAas: Array.from(document.querySelectorAll('#formCampos\\:ccAas .ui-state-highlight')).map(item => item.innerText),
            ZonaVuelo: document.querySelector('#formCampos\\:zona\\:mapa_value').value
        };

        let operations = JSON.parse(getCookie(idText.innerText) || '[]');
        const existingOperationIndex = operations.findIndex(op => op.key === key);

        if (existingOperationIndex !== -1) {
            const confirmOverride = confirm('Ya existen datos de esta operación, queres sobreescribirlos?');
            if (!confirmOverride)
                return;
            operations[existingOperationIndex].data = formData;
        } else {
            operations.push({ key, data: formData });
        }

        setCookie(idText.innerText, JSON.stringify(operations));
        updateSelect();
    }

    function updateIdText() {
        const dictionary = {
            "formCampos:campos": "Operador",
            "formCampos:camposPiloto": "Piloto",
            "formCampos:camposRpa": "Uas",
            "formCampos:camposObservadores": "Observadores",
            "formCampos:camposRem": "Operacion"
        };
        const wizardContent = document.querySelector('#formCampos\\:idWizard_content');
        if (wizardContent) {
            const firstDiv = wizardContent.querySelector('div');
            if (firstDiv) {
                idText.innerText = dictionary[firstDiv.id] || '';
            } else {
                idText.innerText = 'No div found inside formCampos:idWizard_content';
            }
        } else {
            idText.innerText = 'formCampos:idWizard_content not found';
        }
        updateSelect();
    }

    function initialize() {
        const wizardContent = document.querySelector('#formCampos\\:idWizard_content');
        if (wizardContent) {
            const wizardContentObserver = new MutationObserver(updateIdText);
            wizardContentObserver.observe(wizardContent, { childList: true, subtree: true });
        }
        updateIdText();
    }
})();