
const cookies = ["ediliCartaceoComputo","ingrosso","vari","edili","tessili","metalli","materiali","energetici","chimici","carta","alimentari","solocomputo","tablet","edilicartaceo","immobiliMI","immobiliMB","immobiliLO","immobiliMI_abbo","immobiliMB_abbo","immobiliLO_abbo","immobiliMI_abbotwins","immobiliMB_abbotwins","immobiliLO_abbotwins","impianticartaceo","Caping","Capedi","ediliMI_abbotripple","ediliCartaceoComputo"];

async function _pp_set_cookies(cookies) {
    Object.keys(cookies).forEach(function (key) {
        document.cookie = key + '=' + cookies[key] + ';path=/;SameSite=Strict';
    });
}

async function _pp_clear_cookies() {
    localStorage.removeItem('pp_login');
    document.cookie = 'reg_utente=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;SameSite=Strict'
    document.cookie = 'prezzi.loggedin=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;SameSite=Strict'

    Object.keys(cookies).forEach(function(key) {
        document.cookie = cookies[key] + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;SameSite=Strict';
    });
}

async function _pp_login(e){
    e.preventDefault();

    const username = document.getElementById('login');
    const password = document.getElementById('password');

    try {
        const response = await fetch('https://shop.piuprezzi.it/wp-json/prezzi/v1/login?site=all', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                username: window.btoa(username.value),
                password: window.btoa(password.value),
            }),
        });

        if (response.ok) {
            const data = await response.json();
            localStorage.setItem('pp_login', data.token);
            await _pp_set_cookies(data.cookies);

            window.location.reload();
        } else {
            password.value = '';
            alert('Password non riconosciuta');
        }

    } catch (error) {
        console.error(error.message);
    }
}

async function _pp_logout(e){
    e.preventDefault();
    const token = localStorage.getItem('pp_login');

    await fetch('https://shop.piuprezzi.it/wp-json/prezzi/v1/logout', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({token}),
    });

    await _pp_clear_cookies();

    window.location.reload();
}

function _pp_show_login_form() {
    _pp_clear_cookies()
        .then(() => {
            document.getElementById('pp_login_form_container').innerHTML = "\r\n<form action=\"#\" name=\"pp_login\" onsubmit=\"_pp_login(event);\">\r\n    <div id=\"reglink\">\r\n        <a href=\"https:\/\/shop.piuprezzi.it\/account\/\"><span>Registrati<\/span><\/a>\r\n    <\/div>\r\n\r\n    <label for=\"login\" id=\"loginlabel\">User:<\/label>\r\n    <input type=\"text\" name=\"username\" value=\"\" id=\"login\">\r\n\r\n    <label for=\"password\" id=\"passwordlabel\">Password:<\/label>\r\n    <input type=\"password\" name=\"password\" value=\"\" id=\"password\">\r\n\r\n    <input class=\"header_button\" type=\"submit\" name=\"submit\" value=\"\" alt=\"invia\" title=\"invia\">\r\n\r\n    <a href=\"https:\/\/shop.piuprezzi.it\/account\/lost-password\/\" id=\"forgotpassword\">Hai dimenticato la password?<\/a>\r\n\r\n<\/form>";
        });
}

async function _pp_validate_token(token, redirect) {
    const response = await fetch('https://shop.piuprezzi.it/wp-json/prezzi/v1/validate/?site=all', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({token}),
    });

    if (response.ok) {
        const data = await response.json();
        //localStorage.setItem('pp_login', data.token);

        Object.keys(data.cookies).forEach(function (key) {
            document.cookie = key + '=' + data.cookies[key] + ';path=/;SameSite=Strict';
        });

        document.getElementById('pp_login_form_container').innerHTML = data.content;

        if (redirect) {
            window.location.href = redirect.substring(0, redirect.length - 1);
        }

    } else {
        await _pp_clear_cookies();
        _pp_show_login_form();
    }
}

function _pp_open_link(e) {
    e.preventDefault();
    const token = localStorage.getItem('pp_login');

    if (token) {
        var form = document.createElement('form');
        form.setAttribute('method', 'post');
        form.setAttribute('action', e.target.href);
        form.setAttribute('target', '_blank');
        var input = document.createElement('input');
        input.type = 'hidden';
        input.name = 'rtk';
        input.value = token;
        form.appendChild(input);
        document.body.appendChild(form);
        form.submit();
        document.body.removeChild(form);
    }
}

document.write('<div id="pp_login_form_container"></div>');

const urlToken = window.location.href.split('token=');
const token = localStorage.getItem('pp_login');

if ( urlToken[1] ) {
    _pp_validate_token(urlToken[1], urlToken[0]);
} else {
    token ? _pp_validate_token(token) : _pp_show_login_form();
}


document.addEventListener('DOMContentLoaded', function(){
    document.querySelectorAll('a').forEach(function(link) {
        if( link.href.indexOf('ssshop.piuprezzi.it') != -1 ) {
            link.addEventListener('click', _pp_open_link );
        }
    });
}, false);
