// Configuración de Cuentas Gratuitas
const ACCOUNTS = [
    { u: "gratis", p: "2026" },
    { u: "aprobecha", p: "6390" },
    { u: "pornu", p: "1234" },
    { u: "vosete", p: "1426" },
    { u: "tuyo", p: "5373" },
    { u: "argentina", p: "6729" },
    { u: "joben", p: "2537" },
    { u: "xxx", p: "1234" },
    { u: "suerte", p: "67373" }
];

const LIMIT_DAILY = 130;
let socialStatus = { yt: false, wa: false, tg: false };

// Inicialización
function init() {
    let currentClaims = parseInt(localStorage.getItem('yoni_claims') || "0");
    let myAccount = JSON.parse(localStorage.getItem('yoni_my_acc') || "null");

    updateBadge(currentClaims);

    if (currentClaims >= LIMIT_DAILY && !myAccount) {
        showLimit();
    } else if (myAccount) {
        showResult(myAccount.u, myAccount.p);
    }

    // Listener para los radios de origen
    document.querySelectorAll('input[name="origin"]').forEach(input => {
        input.addEventListener('change', () => {
            document.getElementById('socialChecklist').classList.remove('hidden');
            validateButtons();
        });
    });
}

function markSocial(key) {
    socialStatus[key] = true;
    const checkEl = document.getElementById(`check_${key}`);
    if (checkEl) checkEl.innerText = "✅";
    validateButtons();
}

function validateButtons() {
    const btn = document.getElementById('mainBtn');
    const origin = document.querySelector('input[name="origin"]:checked')?.value;
    
    if (origin && socialStatus.yt && socialStatus.wa && socialStatus.tg) {
        btn.disabled = false;
    }
}

function generateAccount() {
    let currentClaims = parseInt(localStorage.getItem('yoni_claims') || "0");
    
    if (currentClaims >= LIMIT_DAILY) {
        showLimit();
        return;
    }

    const random = ACCOUNTS[Math.floor(Math.random() * ACCOUNTS.length)];
    currentClaims++;
    
    const accData = { u: random.u, p: random.p };
    localStorage.setItem('yoni_claims', currentClaims);
    localStorage.setItem('yoni_my_acc', JSON.stringify(accData));

    showResult(random.u, random.p);
    updateBadge(currentClaims);
}

function showResult(u, p) {
    const genContent = document.getElementById('generatorContent');
    const resBox = document.getElementById('resultBox');
    if (genContent) genContent.classList.add('hidden');
    if (resBox) {
        resBox.classList.remove('hidden');
        document.getElementById('finalUser').innerText = u;
        document.getElementById('finalPass').innerText = p;
    }
}

function showLimit() {
    const genContent = document.getElementById('generatorContent');
    const limBox = document.getElementById('limitBox');
    if (genContent) genContent.classList.add('hidden');
    if (limBox) limBox.classList.remove('hidden');
}

function updateBadge(count) {
    const badge = document.getElementById('badgeCounter');
    if (badge) {
        const remaining = LIMIT_DAILY - count;
        badge.innerText = `${remaining < 0 ? 0 : remaining} DISPONIBLES`;
    }
}

// Ejecutar al cargar la página
window.onload = init;