{"id":377,"date":"2026-10-20T16:11:36","date_gmt":"2026-10-20T14:11:36","guid":{"rendered":"https:\/\/astro.newgenesys.eu\/?page_id=377"},"modified":"2026-10-20T16:11:36","modified_gmt":"2026-10-20T14:11:36","slug":"i-tuoi-cristalli","status":"publish","type":"page","link":"https:\/\/astro.newgenesys.eu\/index.php\/i-tuoi-cristalli\/","title":{"rendered":"I Tuoi Cristalli"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><div class=\"zodi-wrapper-personale\">\r\n    <div class=\"container\">\r\n        <div class=\"row\">\r\n            <div class=\"col-lg-8\">\r\n                <div class=\"main-card\">\r\n                    \r\n                    <!-- AZIONI HEADER (Indietro, Info, Help) -->\r\n                    <div class=\"rs-header-actions\">\r\n                        <a href=\"javascript:history.back()\" class=\"btn-rs-action\" title=\"Indietro\">\r\n                            <span class=\"dashicons dashicons-arrow-left-alt2\"><\/span>\r\n                        <\/a>\r\n                        <div class=\"btn-rs-action\" onclick=\"openCristalliPopup('info')\" title=\"Info\">\r\n                            <span class=\"dashicons dashicons-info\"><\/span>\r\n                        <\/div>\r\n                        <div class=\"btn-rs-action\" onclick=\"openCristalliPopup('help')\" title=\"Help\">\r\n                            <span class=\"dashicons dashicons-editor-help\"><\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <!-- TITOLO & IMMAGINE TESTATA INTEGRATA -->\r\n                    <h3 style=\"text-align: center; margin-bottom: 15px;\">I Tuoi Cristalli Guida<\/h3>\r\n                    \r\n                    <div class=\"testata-img-wrapper\" style=\"text-align: center; margin-bottom: 20px;\">\r\n                        <img decoding=\"async\" src=\"https:\/\/astro.newgenesys.eu\/wp-content\/plugins\/pop-astrology\/assets\/img\/cristalli\/testata_cristalli.jpg\" alt=\"Cristalloterapia\" style=\"max-width: 100%; height: auto; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1);\">\r\n                    <\/div>\r\n\r\n                    <h4 style=\"text-align: center; font-size: 18px; margin-bottom: 8px;\">Scopri i tuoi Cristalli Guida Personalizzati<\/h4>\r\n                    <p style=\"text-align: center; font-size: 14px; color: #666; margin-bottom: 25px;\">\r\n                        Inserisci i tuoi dati di nascita per analizzare la mappa dei tuoi pianeti e scoprire le pietre giuste per armonizzare le tue energie.\r\n                    <\/p>\r\n                    \r\n                    <form id=\"InputDatiCristalli\" method=\"POST\" action=\"\">   \r\n                        <input type=\"hidden\" id=\"_wpnonce_cristallo\" name=\"_wpnonce_cristallo\" value=\"22e4f3e8b9\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/index.php\/wp-json\/wp\/v2\/pages\/377\" \/>                        \r\n                        <input type=\"hidden\" id=\"lat1\" name=\"lat1\">\r\n                        <input type=\"hidden\" id=\"lon1\" name=\"lon1\">\r\n                        <input type=\"hidden\" id=\"hidden_hh\" name=\"hh\" value=\"00\">\r\n                        <input type=\"hidden\" id=\"hidden_mi\" name=\"mi\" value=\"00\">\r\n                        \r\n                        <!-- NOME -->\r\n                        <div class=\"form-group\">\r\n                            <label for=\"n1\">Il tuo Nome:<\/label>\r\n                            <input type=\"text\" name=\"n1\" id=\"n1\" placeholder=\"Es: Marco\" required>\r\n                        <\/div>\r\n\r\n                        <!-- DATA & ORA INLINE -->\r\n                        <div class=\"row-inline-mobile\">\r\n                            <div style=\"flex: 2;\">\r\n                                <div class=\"form-group\">\r\n                                    <label for=\"data_nascita\">Data di nascita:<\/label>\r\n                                    <input type=\"date\" name=\"data_nascita\" id=\"data_nascita\" required>\r\n                                <\/div>\r\n                            <\/div>\r\n                            <div style=\"flex: 1;\">\r\n                                <div class=\"form-group\">\r\n                                    <label for=\"ora_input_moderno\">Ora:<\/label>\r\n                                    <input type=\"time\" id=\"ora_input_moderno\" style=\"width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 10px;\" required>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <!-- LUOGO DI NASCITA CON LENTE MAPBOX -->\r\n                        <div class=\"form-group\">\r\n                            <label for=\"cityInput1\">Luogo di nascita:<\/label>\r\n                            <div style=\"position: relative;\">\r\n                                <input type=\"text\" id=\"cityInput1\" name=\"cityInput1\" placeholder=\"Cerca comune o citt\u00e0...\" autocomplete=\"off\" required>\r\n                                <button type=\"button\" onclick=\"cercaCittaCristalli(1, true)\" style=\"position: absolute; right: 10px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #C5A059; font-size: 20px; cursor: pointer;\" title=\"Conferma localit\u00e0\">\ud83d\udd0d<\/button>\r\n                            <\/div>\r\n                            <div id=\"check1\" style=\"color: #4CAF50; font-size: 11px; display: none; margin-top: 5px; text-align: center;\">\u2713 Localit\u00e0 confermata<\/div>\r\n                        <\/div>\r\n\r\n                        <button type=\"submit\" name=\"pop_cristallo_submit\" class=\"submit-btn\">GENERA RESPONSO CRISTALLOTERAPIA<\/button>\r\n                    <\/form>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- SIDEBAR -->\r\n            <div class=\"col-lg-4\" id=\"theme-sidebar\">\r\n                <div id=\"sidebar\" class=\"wow zoomInUp delay-1000\" data-wow-duration=\"2s\">    \n\n\t<!-- BOX SOCIAL AGGIORNATO -->\n    <aside class=\"widget\">\n            <div style=\"display: flex; justify-content: center; gap: 15px;\">\n                <a href=\"#\" target=\"_blank\" class=\"zodi-social-btn fb\"><i class=\"fab fa-facebook-f\"><\/i><\/a>\n                <a href=\"#\" target=\"_blank\" class=\"zodi-social-btn ig\"><i class=\"fab fa-instagram\"><\/i><\/a>\n                <a href=\"#\" target=\"_blank\" class=\"zodi-social-btn wa\"><i class=\"fab fa-whatsapp\"><\/i><\/a>\n                <a href=\"#\" target=\"_blank\" class=\"zodi-social-btn pin\"><i class=\"fab fa-pinterest-p\"><\/i><\/a>\n            <\/div>\n    <\/aside>\n\n    \n    <aside id=\"block-2\" class=\"widget widget_block widget_search\"><form role=\"search\" method=\"get\" action=\"https:\/\/astro.newgenesys.eu\/\" class=\"wp-block-search__button-outside wp-block-search__text-button wp-block-search\" ><label class=\"wp-block-search__label\" for=\"wp-block-search__input-1\" >Cerca<\/label><div class=\"wp-block-search__inside-wrapper\" ><input class=\"wp-block-search__input\" id=\"wp-block-search__input-1\" placeholder=\"\" value=\"\" type=\"search\" name=\"s\" required \/><button aria-label=\"Cerca\" class=\"wp-block-search__button wp-element-button\" type=\"submit\" >Cerca<\/button><\/div><\/form><\/aside><aside id=\"block-3\" class=\"widget widget_block\"><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"><h2 class=\"wp-block-heading\">Articoli recenti<\/h2><ul class=\"wp-block-latest-posts__list wp-block-latest-posts is-layout-flow wp-block-latest-posts-is-layout-flow\"><li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/astro.newgenesys.eu\/index.php\/2026\/10\/21\/398\/\">L&#8217;Oracolo delle Rune<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/astro.newgenesys.eu\/index.php\/2026\/10\/20\/i-ching\/\">I Ching<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/astro.newgenesys.eu\/index.php\/2026\/10\/20\/astrologia-e-cristalloterapia\/\">Astrologia e Cristalloterapia<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/astro.newgenesys.eu\/index.php\/2026\/10\/19\/la-numerologia\/\">La Numerologia<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/astro.newgenesys.eu\/index.php\/2026\/10\/19\/i-tarocchi\/\">I Tarocchi<\/a><\/li>\n<\/ul><\/div><\/div><\/aside><aside id=\"block-4\" class=\"widget widget_block\"><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"><h2 class=\"wp-block-heading\">Commenti recenti<\/h2><div class=\"no-comments wp-block-latest-comments\">Nessun commento da mostrare.<\/div><\/div><\/div><\/aside>\t\n<\/div>            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- POPUP INFO\/HELP -->\r\n<div id=\"astro-popup-overlay\" onclick=\"closeAstroPopup()\" style=\"display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000000; align-items: center; justify-content: center;\">\r\n    <div class=\"astro-popup-content\" onclick=\"event.stopPropagation()\" style=\"background: white; padding: 30px; border-radius: 20px; max-width: 500px; width: 90%; position: relative;\">\r\n        <span style=\"position: absolute; top: 15px; right: 20px; font-size: 25px; cursor: pointer; color: #999;\" onclick=\"closeAstroPopup()\">&times;<\/span>\r\n        <div id=\"astro-popup-text\"><\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script type=\"text\/javascript\">\r\nfunction openCristalliPopup(tipo) {\r\n    const overlay = document.getElementById('astro-popup-overlay');\r\n    const textDiv = document.getElementById('astro-popup-text');\r\n    let html = \"\";\r\n    if (tipo === 'info') {\r\n        html = \"<h3 style='color:#C5A059;'>Cristalloterapia Astrologica<\/h3>\" +\r\n               \"<p>Questo modulo analizza la disposizione delle posizioni planetarie e dei punti chiave del tuo Tema Natale per individuare le pietre e i cristalli pi\u00f9 indicati per armonizzare le tue energie vitali e riequilibrare i tuoi centri chakra.<\/p>\" +\r\n               \"<p><br><a href='https:\/\/astro.newgenesys.eu\/index.php\/2026\/10\/20\/astrologia-e-cristalloterapia\/' target='_blank' style='color: #C5A059; font-weight: bold; text-decoration: underline;'>\ud83d\udcd6 Leggi l'articolo di approfondimento completo &raquo;<\/a><\/p>\";\r\n    } else {\r\n        html = \"<h3 style='color:#C5A059;'>Come procedere?<\/h3>\" +\r\n               \"<p>Inserisci il tuo nome, la data e l'ora precisa di nascita. Digita la citt\u00e0 di nascita e selezionala dal menu a tendina o fai clic sulla lente \ud83d\udd0d per confermare le coordinate geografiche.<\/p>\";\r\n    }\r\n    textDiv.innerHTML = html;\r\n    overlay.style.display = 'flex';\r\n}\r\nfunction closeAstroPopup() { document.getElementById('astro-popup-overlay').style.display = 'none'; }\r\n\r\nvar timerRicercaCristalli;\r\nfunction cercaCittaCristalli(num, autoSelectTop = false) {\r\n    var inputField = document.getElementById('cityInput' + num);\r\n    var checkMark = document.getElementById('check' + num);\r\n    var latField = document.getElementById('lat' + num);\r\n    var lonField = document.getElementById('lon' + num);\r\n    if (!inputField) return;\r\n    \r\n    var query = inputField.value.trim();\r\n    if (query.length < 2) return;\r\n\r\n    latField.value = '';\r\n    lonField.value = '';\r\n    if (checkMark) checkMark.style.display = 'none';\r\n\r\n    var mapboxToken = 'pk.eyJ1IjoienMzMTAzIiwiYSI6ImNtbTkyYnh1bzAxcmQycHBpOWY3dms3MXYifQ.W7RWJ2sQ0ji6tWmaX2Hz5g';\r\n    var url = 'https:\/\/api.mapbox.com\/geocoding\/v5\/mapbox.places\/' + encodeURIComponent(query) + '.json?access_token=' + mapboxToken + '&limit=5&language=it';\r\n\r\n    return fetch(url).then(res => res.json()).then(data => {\r\n        var vecchiaLista = document.getElementById('pop-lista-fixed');\r\n        if (vecchiaLista) vecchiaLista.remove();\r\n\r\n        if (data.features && data.features.length > 0) {\r\n            if (autoSelectTop || data.features.length === 1) {\r\n                var place = data.features[0];\r\n                inputField.value = place.place_name;\r\n                latField.value = place.center[1];\r\n                lonField.value = place.center[0];\r\n                if (checkMark) checkMark.style.display = 'block';\r\n                return place;\r\n            }\r\n\r\n            var ul = document.createElement('ul');\r\n            ul.id = 'pop-lista-fixed';\r\n            var rect = inputField.getBoundingClientRect();\r\n            ul.style.cssText = \"position: absolute; top: \" + (rect.bottom + window.pageYOffset) + \"px; left: \" + (rect.left + window.pageXOffset) + \"px; width: \" + rect.width + \"px; background: white; border: 1px solid #ddd; list-style: none; padding: 0; z-index: 99999; border-radius: 0 0 10px 10px; box-shadow: 0 10px 20px rgba(0,0,0,0.15);\";\r\n\r\n            data.features.forEach(place => {\r\n                var li = document.createElement('li');\r\n                li.innerHTML = `<button type=\"button\" style=\"width:100%; text-align:left; padding:12px; border:none; background:none; cursor:pointer; border-bottom:1px solid #eee; font-size:14px;\">${place.place_name}<\/button>`;\r\n                li.onclick = function() {\r\n                    inputField.value = place.place_name;\r\n                    latField.value = place.center[1];\r\n                    lonField.value = place.center[0];\r\n                    if (checkMark) checkMark.style.display = 'block';\r\n                    ul.remove();\r\n                };\r\n                ul.appendChild(li);\r\n            });\r\n            document.body.appendChild(ul);\r\n        }\r\n    }).catch(err => console.error(\"Errore Geocoding Cristalli:\", err));\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    const cityInput1 = document.getElementById('cityInput1');\r\n    if (cityInput1) {\r\n        cityInput1.addEventListener('input', function() { \r\n            document.getElementById('lat1').value = '';\r\n            document.getElementById('lon1').value = '';\r\n            const check1 = document.getElementById('check1');\r\n            if (check1) check1.style.display = 'none';\r\n\r\n            clearTimeout(timerRicercaCristalli);\r\n            timerRicercaCristalli = setTimeout(function() {\r\n                cercaCittaCristalli(1, false);\r\n            }, 300);\r\n        });\r\n    }\r\n\r\n    \/\/ --- RECUPERO DATI DA LOCALSTORAGE ---\r\n    const datiSalvati = localStorage.getItem('zodiacando_user_data') || localStorage.getItem('zodiacando_pers_data');\r\n    if (datiSalvati) {\r\n        try {\r\n            const n = JSON.parse(datiSalvati);\r\n            if (n.nome)   document.getElementById('n1').value = n.nome;\r\n            \r\n            \/\/ Citta e coordinate\r\n            let valCitta = n.citta || n.luogo || n.cityInput1;\r\n            if (valCitta) document.getElementById('cityInput1').value = valCitta;\r\n            \r\n            let valLat = n.lat || n.lat1;\r\n            let valLon = n.lon || n.lon1 || n.lng;\r\n            if (valLat) document.getElementById('lat1').value = valLat;\r\n            if (valLon) document.getElementById('lon1').value = valLon;\r\n            \r\n            \/\/ Data di nascita\r\n            let rawData = n.data || n.data_nascita || n.birthdate;\r\n            if (rawData) document.getElementById('data_nascita').value = rawData;\r\n            \r\n            \/\/ Ora e Minuti (Parsing robusto)\r\n            let valOra = n.ora !== undefined ? n.ora : (n.hh !== undefined ? n.hh : n.ora_nat);\r\n            let valMin = n.min !== undefined ? n.min : (n.mi !== undefined ? n.mi : (n.mm !== undefined ? n.mm : n.min_nat));\r\n\r\n            if ((valOra === undefined || valOra === '') && n.orario && typeof n.orario === 'string' && n.orario.includes(':')) {\r\n                const partsOrario = n.orario.split(':');\r\n                valOra = partsOrario[0];\r\n                valMin = partsOrario[1];\r\n            }\r\n\r\n            if (valOra !== undefined && valOra !== '' && valMin !== undefined && valMin !== '') {\r\n                const hFormatted = valOra.toString().padStart(2, '0');\r\n                const mFormatted = valMin.toString().padStart(2, '0');\r\n                document.getElementById('ora_input_moderno').value = `${hFormatted}:${mFormatted}`;\r\n                document.getElementById('hidden_hh').value = hFormatted;\r\n                document.getElementById('hidden_mi').value = mFormatted;\r\n            }\r\n\r\n            if (valLat && valLon) {\r\n                const check1 = document.getElementById('check1');\r\n                if (check1) check1.style.display = 'block';\r\n            }\r\n        } catch (e) {\r\n            console.error(\"Errore recupero localStorage Cristalloterapia\", e);\r\n        }\r\n    }\r\n\r\n    \/\/ --- SALVATAGGIO ED INVIO FORM ---\r\n    const formPers = document.getElementById('InputDatiCristalli');\r\n    if (formPers) {\r\n        formPers.addEventListener('submit', function(e) {\r\n            const timeInput = document.getElementById('ora_input_moderno').value;\r\n            let hh = \"00\";\r\n            let mi = \"00\";\r\n            \r\n            if (timeInput && timeInput.includes(':')) {\r\n                const parts = timeInput.split(':');\r\n                hh = parts[0].padStart(2, '0');\r\n                mi = parts[1].padStart(2, '0');\r\n                document.getElementById('hidden_hh').value = hh;\r\n                document.getElementById('hidden_mi').value = mi;\r\n            }\r\n\r\n            const lat = document.getElementById('lat1').value;\r\n            const lon = document.getElementById('lon1').value;\r\n            const cityName = document.getElementById('cityInput1').value.trim();\r\n\r\n            if (!lat || !lon) {\r\n                if (!cityName) {\r\n                    e.preventDefault();\r\n                    alert(\"Per favore, inserisci la citt\u00e0 di nascita.\");\r\n                    return false;\r\n                }\r\n\r\n                \/\/ Geocoding di emergenza prima dell'invio se l'utente non ha selezionato dalla lista\r\n                e.preventDefault();\r\n                var mapboxToken = 'pk.eyJ1IjoienMzMTAzIiwiYSI6ImNtbTkyYnh1bzAxcmQycHBpOWY3dms3MXYifQ.W7RWJ2sQ0ji6tWmaX2Hz5g';\r\n                var url = 'https:\/\/api.mapbox.com\/geocoding\/v5\/mapbox.places\/' + encodeURIComponent(cityName) + '.json?access_token=' + mapboxToken + '&limit=1&language=it';\r\n\r\n                fetch(url).then(res => res.json()).then(data => {\r\n                    if (data.features && data.features.length > 0) {\r\n                        document.getElementById('lat1').value = data.features[0].center[1];\r\n                        document.getElementById('lon1').value = data.features[0].center[0];\r\n                        \r\n                        salvaDatiSessione(document.getElementById('n1').value, cityName, data.features[0].center[1], data.features[0].center[0], hh, mi);\r\n                        formPers.submit();\r\n                    } else {\r\n                        alert(\"Impossibile trovare le coordinate per la citt\u00e0 inserita. Selezionala dal menu a tendina o clicca sulla lente \ud83d\udd0d.\");\r\n                    }\r\n                }).catch(err => {\r\n                    alert(\"Errore di connessione durante la geolocalizzazione.\");\r\n                });\r\n                return false;\r\n            }\r\n\r\n            salvaDatiSessione(document.getElementById('n1').value, cityName, lat, lon, hh, mi);\r\n        });\r\n    }\r\n\r\n    function salvaDatiSessione(nome, citta, lat, lon, hh, mi) {\r\n        let userData = {};\r\n        const existingData = localStorage.getItem('zodiacando_user_data');\r\n        if (existingData) {\r\n            try { userData = JSON.parse(existingData); } catch (err) {}\r\n        }\r\n\r\n        userData.nome   = nome;\r\n        userData.citta  = citta;\r\n        userData.luogo  = citta;\r\n        userData.lat    = lat;\r\n        userData.lon    = lon;\r\n        userData.lng    = lon;\r\n        userData.data   = document.getElementById('data_nascita').value;\r\n        userData.data_nascita = userData.data;\r\n        userData.ora    = hh;\r\n        userData.min    = mi;\r\n        userData.hh     = hh;\r\n        userData.mi     = mi;\r\n        userData.orario = `${hh}:${mi}`;\r\n\r\n        localStorage.setItem('zodiacando_user_data', JSON.stringify(userData));\r\n    }\r\n});\r\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-377","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/pages\/377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/comments?post=377"}],"version-history":[{"count":1,"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/pages\/377\/revisions"}],"predecessor-version":[{"id":378,"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/pages\/377\/revisions\/378"}],"wp:attachment":[{"href":"https:\/\/astro.newgenesys.eu\/index.php\/wp-json\/wp\/v2\/media?parent=377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}