Comunicacion Operacion UAS

Comunicacion Operacion UAS en Web del Ministerio de Interior

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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();
    }
})();