// jloadScriptAsync (Promise) ----------------------------
    var jloadScriptAsync = function (d, s, id, src) {
        return new Promise((resolve, reject) => {
            try {
                var fjs = d.getElementsByTagName(s)[0];
                const scriptEle = d.createElement(s);
                scriptEle.id=id;
                scriptEle.onload = function () {
                    //solo quando script caricato:
                      
                    resolve(scriptEle);
                }
                scriptEle.onerror = function (ev) {
                      
                    reject(new Error(`jloadScriptAsync error for ${src}`));
                }
                scriptEle.src = src;
                fjs.parentNode.insertBefore(scriptEle, fjs);
                //document.head.append(scriptEle);
            } catch (error) {
                reject("160 ➔  jloadScriptAsync "+error);  // errore interno alla funzione
            }
        });
    };
    // fine jloadScriptAsync
 
// waitForAWN  Funzione che attende che un oggetto JavaScript AWN venga definito
    function waitForAWN(pollInterval = 100, timeout = 5000) {
        return new Promise((resolve, reject) => {
            const startTime = Date.now();
            function checkAWN() {
                if (typeof AWN !== 'undefined' &&  AWN !== 'undefined') {
                    resolve(AWN); // L'oggetto AWN è stato trovato, risolvi la Promise
                } else if (Date.now() - startTime >= timeout) {
                    reject(new Error(`Timeout: Oggetto AWN non trovato entro ${timeout}ms`)); // Timeout raggiunto
                } else {
                    setTimeout(checkAWN, pollInterval); // Prova di nuovo dopo l'intervallo di polling
                }
            }
            checkAWN(); // Inizia il polling
        });
    }
    // fine waitForAWN
    //debugger;
    // waitForJQ (Promise) ----------------------------
    // Funzione che attende che un oggetto JavaScript jQuery venga definito
        function waitForJQ(pollInterval = 100, timeout = 5000) {
            return new Promise((resolve, reject) => {
                const startTime = Date.now();
                function checkJQ() {
                    if (typeof jQuery !== 'undefined' &&  jQuery !== 'undefined') {
                        resolve(jQuery); // L'oggetto jQuery è stato trovato, risolvi la Promise
                    } else if (Date.now() - startTime >= timeout) {
                        reject(new Error(`Timeout: Oggetto jQuery non trovato entro ${timeout}ms`)); // Timeout raggiunto
                    } else {
                        setTimeout(checkJQ, pollInterval); // Prova di nuovo dopo l'intervallo di polling
                    }
                }
                checkJQ(); // Inizia il polling
            });
        }
        // fine waitForJQ
    // waitForMP (Promise) ----------------------------
    // Funzione che attende che un oggetto JavaScript jQuery.magnificPopup venga definito
        function waitForMP(pollInterval = 100, timeout = 5000) {
            return new Promise((resolve, reject) => {
                const startTime = Date.now();
                function checkMP() {
                    if (typeof jQuery.magnificPopup !== 'undefined' &&  jQuery.magnificPopup !== 'undefined') {
                        resolve(jQuery.magnificPopup); // L'oggetto jQuery.magnificPopup è stato trovato, risolvi la Promise
                    } else if (Date.now() - startTime >= timeout) {
                        reject(new Error(`Timeout: Oggetto jQuery.magnificPopup non trovato entro ${timeout}ms`)); // Timeout raggiunto
                    } else {
                        setTimeout(checkMP, pollInterval); // Prova di nuovo dopo l'intervallo di polling
                    }
                }
                checkMP(); // Inizia il polling
            });
        }
        // fine waitForMP
    (async () => {
        var pfAWN;
        var runstep2modalgodiv_sitia_hugo_3p = async function (d, s){
            var anchordiv = document.getElementById("div_sitia_hugo_3p");
            if(typeof pfAWN == "undefined"){
                pfAWN = new AWN({
                    position: "top-right",
                        durations: {
                        global: 5000,
                        success: 3000,
                        warning: 5000,
                        alert: 0,
                        info: 4000,
                        tip: 2000
                        },
                    labels: {
                        success: "SUCCESS",
                        warning: "EMBEDDING WARNING!",
                        alert: "EMBEDDING ERROR!",
                        info: "INFO",
                        tip: ""
                        },
                    icons: {
                        prefix: ""
                        }
                });
            }else{
            }
            if(anchordiv){
                if (!('model' in anchordiv.dataset)) {
                    pfAWN.alert('target [ div_sitia_hugo_3p ] (div da elaborare)  non ha attributo  obbligatorio [ data-model ]!');
                }else{
                    var m = anchordiv.getAttribute('data-model');
                    if (!('key' in anchordiv.dataset)) {
                        if (('shareid' in anchordiv.dataset)) {
                            var shareid = anchordiv.getAttribute('data-shareid');
                                if (!('closeconfirm' in anchordiv.dataset)) {
                                    var closeconfirm = 'Sicuro di abbandonare il configuratore?';
                                }else{
                                    var closeconfirm = anchordiv.getAttribute('data-closeconfirm');
                                }   
                                if (!('closepopup' in anchordiv.dataset)) {
                                    var closepopup = 'Exit';
                                }else{
                                    var closepopup = anchordiv.getAttribute('data-closepopup');
                                }   
                                jQuery('#div_sitia_hugo_3p').magnificPopup({
                                    items: {
                                        src: jQuery('