GDPR Compliance

<style>

    <!-- #form-gdpr-edit-account-request,

    #form-gdpr-data-account-request,

    #form-gdpr-personal-data-report-request,

    #form-gdpr-delete-account-request {

        display: none;

    }

    

    #gdpr_page button {

        background-color: transparent; border: 0; border-bottom: 1px solid black; padding: 0px;

    }

    /* Modal background */

    

    #data-verification-background {

        display: none; position: fixed; z-index: 1; padding-top: calc(50vh - 83px); left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0.4); opacity: unset; z-index: 9999;

    }

    /* Modal Content */

    

    #data-verification-modal {

        background-color: #fefefe; margin: auto; padding: 16px; border: 1px solid #888; width: 38%; opacity: 1;

    }

    /* Modal Close Button */

    

    .data-verification-close {

        color: #aaaaaa; float: right; font-size: 28px; font-weight: bold; line-height: 17px;

    }

    

    .data-verification-close:hover,

    .data-verification-close:focus {

        color: #000; text-decoration: none; cursor: pointer;

    }

    /* Checkbox Text */

    

    #data-verification-container p {

        display: inline-block; padding: 0; margin: 0; line-height: 24px; padding-left: 10px; vertical-align: top; width: calc(100% - 45px);

    }

    

    #data-verification-container a,

    #data-verification-container a:hover {

        text-decoration: underline!important; color: #4285f4;

    }

    /* Checkbox Icon */

    

    #data-verification-icon {

        cursor: pointer; position: relative; margin: auto; width: 18px; height: 18px; -webkit-tap-highlight-color: transparent; transform: translate3d(0, 0, 0); margin-top: 2px;

    }

    

    #data-verification-icon:before {

        content: ""; position: absolute; top: -7px; left: -7px; width: 32px; height: 32px; border-radius: 50%; background: rgba(34, 50, 84, 0.03); opacity: 0; transition: opacity 0.2s ease;

    }

    

    #data-verification-icon svg {

        position: relative; z-index: 1; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke: #c8ccd4; stroke-width: 1.5; transform: translate3d(0, 0, 0); transition: all 0.2s ease;

    }

    

    #data-verification-icon svg path {

        stroke-dasharray: 60; stroke-dashoffset: 0;

    }

    

    #data-verification-icon svg polyline {

        stroke-dasharray: 22; stroke-dashoffset: 66;

    }

    

    #data-verification-icon:hover:before {

        opacity: 1;

    }

    

    #data-verification-container:hover #data-verification-icon svg {

        stroke: #4285f4;

    }

    

    #data-verification-icon.clicked svg {

        stroke: #4285f4;

    }

    

    #data-verification-icon.clicked svg path {

        stroke-dashoffset: 60; transition: all 0.3s linear;

    }

    

    #data-verification-icon.clicked svg polyline {

        stroke-dashoffset: 42; transition: all 0.2s linear; transition-delay: 0.15s;

    }

    /* Loading Element */

    

    .loading {

        display: none; top: 50vh; left: 50vw; position: fixed;

    }

    

    .loading:not(:required):after {

        content: ''; display: block; font-size: 10px; width: 1em; height: 1em; margin-top: -0.5em; -webkit-animation: spinner 1500ms infinite linear; -moz-animation: spinner 1500ms infinite linear; -ms-animation: spinner 1500ms infinite linear; -o-animation: spinner 1500ms infinite linear; animation: spinner 1500ms infinite linear; border-radius: 0.5em; -webkit-box-shadow: rgba(255, 255, 255, 1) 1.5em 0 0 0, rgba(255, 255, 255, 1) 1.1em 1.1em 0 0, rgba(255, 255, 255, 1) 0 1.5em 0 0, rgba(255, 255, 255, 1) -1.1em 1.1em 0 0, rgba(255, 255, 255, 1) -1.5em 0 0 0, rgba(255, 255, 255, 1) -1.1em -1.1em 0 0, rgba(255, 255, 255, 1) 0 -1.5em 0 0, rgba(255, 255, 255, 1) 1.1em -1.1em 0 0; box-shadow: rgba(255, 255, 255, 1) 1.5em 0 0 0, rgba(255, 255, 255, 1) 1.1em 1.1em 0 0, rgba(255, 255, 255, 1) 0 1.5em 0 0, rgba(255, 255, 255, 1) -1.1em 1.1em 0 0, rgba(255, 255, 255, 1) -1.5em 0 0 0, rgba(255, 255, 255, 1) -1.1em -1.1em 0 0, rgba(255, 255, 255, 1) 0 -1.5em 0 0, rgba(255, 255, 255, 1) 1.1em -1.1em 0 0;

    }

    

    #gdpr_page .list-unstyled li button {

        cursor: pointer;

    }

    

    .show-isense {

        transition: opacity 400ms !important;

    }

    

    .hide-isense {

        opacity: 0 !important; transition: 0.4s ease-out;

    }

    /* Modal changes on mobile resolution*/

    

    @media only screen and (max-width: 600px) {

        #data-verification-modal {

            width: 90%;

        }

    }

    /* Animation */

    

    @-webkit-keyframes spinner {

        0% {

            -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg);

        }

        100% {

            -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg);

        }

    }

    

    @-moz-keyframes spinner {

        0% {

            -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg);

        }

        100% {

            -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg);

        }

    }

    

    @-o-keyframes spinner {

        0% {

            -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg);

        }

        100% {

            -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg);

        }

    }

    

    @keyframes spinner {

        0% {

            -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg);

        }

        100% {

            -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg);

        }

    }

    

    -->


</style>

<div id="gdpr_page" class="col-sm-12">

    <div class="text-center">L'applicazione utilizzata per assicurare che questo sito rispetti i requisiti&nbsp;GDPR/CCPA/APPI/PIPEDA raccoglie il tuo indirizzo IP e il tuo indirizzo email in modo da poterne gestire i dati. Per maggiori informazioni fai riferimento alla pagina&nbsp;<a href="https://gdprcdn.b-cdn.net/pages/privacy_policy" target="_blank" rel="noopener noreferrer">Privacy Policy &amp; Terms of Service</a>

    </div>

    <div class="text-center"></div>


    <h2>Rettifica dei dati</h2>


    <p>Puoi utilizzare il link seguente per aggiornare i dati relativi al tuo account, in caso questi non siano corretti:</p>


    <ul class="list-unstyled">

        <li>

            <a href="https://vimsbeauty.com/account" target="_blank" title="Il Tuo Account" rel="noopener noreferrer">

                <button id="btn-gdpr-edit-account-request" aria-label="edit your account information" aria-controls="form-gdpr-edit-account-request" aria-expanded="false">Il tuo Account</button>

            </a></li>

    </ul>

    <div id="form-gdpr-edit-account-request">

        <form>

            <label for="form-gdpr-edit-account-request-email">Enter your email to confirm your identity</label>

            <input type="email" name="email" id="form-gdpr-edit-account-request-email" placeholder="example@email.com" autocomplete="email" autocorrect="off" autocapitalize="off" autofocus="">

            <input type="submit" id="form-gdpr-edit-account-request-submit" class="btn" value="Submit">

        </form>

    </div>


    <h2>Accesso ai dati personali</h2>


    <p>Puoi utilizzare il link seguente per richiedere un report che contiene tutte le tue informazioni personali che abbiamo memorizzato:</p>


    <ul class="list-unstyled">

        <li>

            <a href="https://vimsbeauty.com/pages/contact-us" target="_blank" title="Richiedi un Report" rel="noopener noreferrer">

                <button id="btn-gdpr-personal-data-report-request" aria-label="request a report" aria-controls="form-gdpr-personal-data-report-request" aria-expanded="false">Richiedi un Report</button>

            </a></li>

    </ul>

    <div id="form-gdpr-personal-data-report-request">

        <form>

            <label for="form-gdpr-personal-data-report-request-email">Enter your email to confirm your identity</label>

            <input type="email" name="email" id="form-gdpr-personal-data-report-request-email" placeholder="example@email.com" autocomplete="email" autocorrect="off" autocapitalize="off" autofocus="">

            <input type="submit" class="btn" id="form-gdpr-personal-data-report-request-submit" value="Submit">

        </form>

    </div>


    <h2>"Right to be Forgotten"</h2>


    <p>Usa questa opzione se vuoi che rimuoviamo tutti i tuoi dati che abbiamo memorizzato nel nostro sito. <strong>Tieni presente che questo processo cancellerà permanentemente il tuo account, pertanto non potrai mai più utilizzarlo.&nbsp;</strong></p>


    <ul class="list-unstyled">

        <li><a href="https://vimsbeauty.com/pages/contact-us" target="_blank" rel="noopener noreferrer">Richiedi la cancellazione dei tuoi dati personali</a></li>

    </ul>

    <div id="form-gdpr-delete-account-request">

        <form>

            <label for="form-gdpr-delete-account-request-email">Enter your email to confirm your identity</label>

            <input type="email" name="email" id="form-gdpr-delete-account-request-email" placeholder="example@email.com" autocomplete="email" autocorrect="off" autocapitalize="off" autofocus="">

            <input type="submit" class="btn" id="form-gdpr-delete-account-request-submit" value="Submit">

        </form>

    </div>

</div>

<script>

    // <![CDATA[

    /* SLIDE UP */

    let slideUp = (target, duration = 500) =>

    {

        target.style.transitionProperty = 'height, margin, padding';

        target.style.transitionDuration = duration + 'ms';

        target.style.boxSizing = 'border-box';

        target.style.height = target.offsetHeight + 'px';

        target.offsetHeight;

        target.style.overflow = 'hidden';

        target.style.height = 0;

        target.style.paddingTop = 0;

        target.style.paddingBottom = 0;

        target.style.marginTop = 0;

        target.style.marginBottom = 0;

        window.setTimeout(() =>

        {

            target.style.display = 'none';

            target.style.removeProperty('height');

            target.style.removeProperty('padding-top');

            target.style.removeProperty('padding-bottom');

            target.style.removeProperty('margin-top');

            target.style.removeProperty('margin-bottom');

            target.style.removeProperty('overflow');

            target.style.removeProperty('transition-duration');

            target.style.removeProperty('transition-property');

        }, duration);

    }


    /* SLIDE DOWN */

    let slideDown = (target, duration = 500) =>

    {

        setTimeout(function()

        {

            target.style.removeProperty('display');

            let display = window.getComputedStyle(target).display;

            if (display === 'none') display = 'block';


            target.style.display = display;


            let height = target.offsetHeight;


            target.style.overflow = 'hidden';

            target.style.height = 0;

            target.style.paddingTop = 0;

            target.style.paddingBottom = 0;

            target.style.marginTop = 0;

            target.style.marginBottom = 0;

            target.offsetHeight;

            target.style.boxSizing = 'border-box';

            target.style.transitionProperty = "height, margin, padding";

            target.style.transitionDuration = duration + 'ms';

            target.style.height = height + 'px';


            target.style.removeProperty('padding-top');

            target.style.removeProperty('padding-bottom');

            target.style.removeProperty('margin-top');

            target.style.removeProperty('margin-bottom');


            window.setTimeout(() =>

            {

                target.style.removeProperty('height');

                target.style.removeProperty('overflow');

                target.style.removeProperty('transition-duration');

                target.style.removeProperty('transition-property');

            }, duration);

        }, 100)

    }


    /* TOOGLE */

    var slideToggle = (target, duration = 500) =>

    {

        if (window.getComputedStyle(target).display === 'none')

        {

            return slideDown(target, duration);

        }

        else

        {

            return slideUp(target, duration);

        }

    }


    /* FADE */

    var toggleFadeiSense = (elem, show) =>

    {

        if (show)

        {

            elem.style.display = "block";

            setTimeout(function()

            {

                elem.classList.add('show-isense');

                elem.classList.remove('hide-isense');

            }, 20)

        }

        else

        {

            elem.classList.remove('show-isense');

            elem.classList.add('hide-isense');

            setTimeout(() =>

            {

                elem.style.display = 'none';

            }, 400)

        }

    }


    var gdprSlideUpAll = function()

    {

        slideUp(document.querySelector('#form-gdpr-edit-account-request'), 100);

        slideUp(document.querySelector('#form-gdpr-data-account-request'), 100);

        slideUp(document.querySelector('#form-gdpr-personal-data-report-request'), 100);

        slideUp(document.querySelector('#form-gdpr-delete-account-request'), 100);

        document.querySelector('#gdpr_page button').setAttribute("aria-expanded", "false");

    };


    var email, type, consentGiven = false;

    var verificationModalContent = '<div id="data-verification-background"><div class="loading"></div><div id="data-verification-modal"><span class="data-verification-close">&times;</span><div id="data-verification-container"><input type="checkbox" style="display: none;"><label id="data-verification-icon"><svg width="18px" height="18px" viewBox="0 0 18 18"><path d="M1,9 L1,3.5 C1,2 2,1 3.5,1 L14.5,1 C16,1 17,2 17,3.5 L17,14.5 C17,16 16,17 14.5,17 L3.5,17 C2,17 1,16 1,14.5 L1,9 Z"></path></path><polyline points="1 9 7 14 15 4"></polyline></svg></label><p>I give my consent on collecting my email and IP address for the purpose of processing this request. For more check <a href="https://gdprcdn.b-cdn.net/pages/privacy_policy"  target="_blank">Privacy Policy &amp Terms of Service</a>.</p></div></div></div>';


    var gdprSendRequest = function(callback)

    {


        fetch('https://www.cloudflare.com/cdn-cgi/trace',

            {

                method: 'GET',

                headers:

                {

                    'Content-Type': 'text/plain',

                },

            })

            .then(resp => resp.text())

            .then(resp =>

            {

                if (!resp.error)

                {

                    let ipInfo = resp;


                    let formData = new FormData();


                    formData.append('shop', Shopify.shop);

                    formData.append('email', email);

                    formData.append('type', type);

                    formData.append('sourceOfRequest', 1);

                    formData.append('ipAddress', ipInfo);

                    formData.append('consentGiven', consentGiven);

                    formData.append('page', 'gdpr');

                    formData.append('lang', Shopify.locale ? Shopify.locale : '');

                    formData.append('gtranslateLang', isenseGDPR.Cookies.get('googtrans') ? isenseGDPR.Cookies.get('googtrans') : '');


                    fetch('https://gdpr.apps.isenselabs.com/gdprRequests/submitRequest',

                        {

                            method: 'POST',

                            body: formData

                        })

                        .then(resp => resp.json())

                        .then(resp =>

                        {

                            if (!resp.error)

                            {

                                gdprSlideUpAll();


                                if (resp.message.length)

                                {

                                    alert(resp.message);

                                }

                                else

                                {

                                    alert('Your request has been submitted successfully. Please check your email for more information.');

                                }

                            }

                            else

                            {

                                alert(resp.message);

                            }

                            if (typeof callback == 'function')

                            {

                                callback(resp);

                            }

                        })

                        .catch(error =>

                        {

                            alert(error.message);

                        })


                }

                else

                {

                    alert(resp.message);

                }

            })

    }


    //Append modal to body, because otherwise it will not stay centered(even if position is fixed)

    document.querySelector("body").insertAdjacentHTML('beforeend', verificationModalContent);


    document.addEventListener("DOMContentLoaded", function()

    {


        // When the user clicks on <span> (x), close the modal

        document.querySelector('.data-verification-close').addEventListener('click', function(e)

        {

            e.preventDefault();

            closeVerificationModal();

        });


        document.querySelector('#data-verification-icon, #data-verification-container p').addEventListener('click', function(e)

        {

            e.preventDefault();


            // Detect a href's click, because it is overwritten.

            if (e.target.tagName === "A")

            {

                window.open(e.target.href, '_blank');

                return;

            }


            document.querySelector('#data-verification-icon').classList.add("clicked");

            setTimeout(() =>

            {

                toggleFadeiSense(document.querySelector("#data-verification-modal"), false);

                document.querySelector('#data-verification-background .loading').style.display = 'inline-block';

                consentGiven = true;

                gdprSendRequest(function(resp)

                {

                    consentGiven = false;

                    closeVerificationModal();

                });

            }, 400);

        });

    });


    function openVerificationModal()

    {

        toggleFadeiSense(document.querySelector("#data-verification-modal"), true);

        toggleFadeiSense(document.querySelector('#data-verification-background'), true);

    }


    function closeVerificationModal()

    {

        toggleFadeiSense(document.querySelector("#data-verification-background"), false);


        document.querySelector('#data-verification-icon').classList.remove("clicked");

        document.querySelector('#data-verification-background .loading').style.display = 'none';

    }


    document.querySelector('#btn-gdpr-edit-account-request').addEventListener('click', function(e)

    {

        e.preventDefault();

        gdprSlideUpAll();

        slideDown(document.querySelector('#form-gdpr-edit-account-request'), 200);

        this.setAttribute("aria-expanded", "true");

    });


    document.querySelector('#form-gdpr-edit-account-request-submit').addEventListener('click', function(e)

    {

        e.preventDefault();

        email = document.querySelector('#form-gdpr-edit-account-request-email').value;

        type = 'customer/edit';

        openVerificationModal();

    });


    document.querySelectorAll('#btn-gdpr-requests-request, #btn-gdpr-personal-information-request, #btn-gdpr-orders-request').forEach(element =>

    {


        element.addEventListener('click', function(e)

        {

            e.preventDefault();

            gdprSlideUpAll();


            type = '';


            switch (this.getAttribute('id'))

            {

                case 'btn-gdpr-requests-request':

                    type = 'customer/requests';

                    break;

                case 'btn-gdpr-personal-information-request':

                    type = 'customer/personal_info';

                    break;

                case 'btn-gdpr-orders-request':

                    type = 'customer/orders';

                    break;

            }


            document.querySelector('#form-gdpr-data-account-request-request-type').value = type;


            slideDown(document.querySelector('#form-gdpr-data-account-request'), 200);

            this.setAttribute("aria-expanded", "true");

        })

    });


    document.querySelector('#form-gdpr-data-account-request-submit').addEventListener('click', function(e)

    {

        e.preventDefault();

        email = document.querySelector('#form-gdpr-data-account-request-email').value;

        type = document.querySelector('#form-gdpr-data-account-request-request-type').value;

        openVerificationModal();

    });


    document.querySelector('#btn-gdpr-personal-data-report-request').addEventListener('click', function(e)

    {

        e.preventDefault();

        gdprSlideUpAll();

        slideDown(document.querySelector('#form-gdpr-personal-data-report-request'), 200);

        this.setAttribute("aria-expanded", "true");

    });


    document.querySelector('#form-gdpr-personal-data-report-request-submit').addEventListener('click', function(e)

    {

        e.preventDefault();

        email = document.querySelector('#form-gdpr-personal-data-report-request-email').value;

        type = 'customer/report';

        openVerificationModal();

    });


    document.querySelector('#btn-gdpr-delete-account-request').addEventListener('click', function(e)

    {

        e.preventDefault();

        gdprSlideUpAll();

        slideDown(document.querySelector('#form-gdpr-delete-account-request'), 200);

        this.setAttribute("aria-expanded", "true");

    });


    document.querySelector('#form-gdpr-delete-account-request-submit').addEventListener('click', function(e)

        {

            e.preventDefault();

            email = document.querySelector('#form-gdpr-delete-account-request-email').value;

            type = 'customer/delete';

            openVerificationModal();

        });

        // ]]>


</script>