import { getCurrentLanguage, i18n } from '../../i18n.js'

class PageTerms extends HTMLElement {
    connectedCallback() {
        this.render()
        this.unsubscribe = i18n.subscribe(() => this.render())
    }

    disconnectedCallback() {
        if (this.unsubscribe) this.unsubscribe()
    }

    render() {
        const lang = getCurrentLanguage()
        this.innerHTML = /* html */`
            <div class="legal-page">
                <a href="#/" class="back-link">← ${lang === 'de' ? 'Zurück zur Startseite' : lang === 'fr' ? 'Retour à l\'accueil' : 'Back to Home'}</a>
                <div class="legal-content">
                    ${this.getContent(lang)}
                </div>
            </div>
        `
    }

    getContent(lang) {
        const content = {
            de: this.getContentDE,
            en: this.getContentEN,
            fr: this.getContentFR
        }
        return (content[lang] || content.en).call(this)
    }

    getContentDE() {
        return /* html */`
            <h1>Allgemeine Geschäftsbedingungen (AGB)</h1>
            <p class="legal-meta">dgray.io — Anonymer Marktplatz | Stand: Februar 2026</p>

            <h2>1. Geltungsbereich</h2>
            <p>1.1 Diese AGB regeln die Nutzung der Plattform dgray.io.</p>
            <p>1.2 Die Plattform wird betrieben von einer natürlichen Person mit Sitz in der Schweiz.</p>
            <p>1.3 Mit der Nutzung der Plattform erklärt sich die nutzende Person mit diesen AGB einverstanden.</p>

            <h2>2. Leistungen der Plattform</h2>
            <p>2.1 Die Plattform stellt einen Online-Marktplatz zur Verfügung, auf dem Nutzer/innen Anzeigen für Waren und Dienstleistungen veröffentlichen und untereinander kommunizieren können.</p>
            <p>2.2 Die Plattform ist lediglich Vermittlerin und wird nicht Vertragspartei der zwischen den Nutzer/innen geschlossenen Verträge.</p>
            <p>2.3 Der Betreiber übernimmt keine Gewähr für die Richtigkeit, Vollständigkeit oder Qualität der veröffentlichten Anzeigen.</p>

            <h2>3. Registrierung und Accounts</h2>
            <p>3.1 Die Nutzung erfordert keine Angabe persönlicher Daten. Die Registrierung erfolgt über eine anonyme UUID.</p>
            <p>3.2 Die UUID ist der einzige Zugang zum Account. Es besteht keine Möglichkeit, eine verlorene UUID wiederherzustellen.</p>
            <p>3.3 Pro Person darf nur ein aktiver Account geführt werden.</p>

            <h2>4. Anzeigen</h2>
            <p>4.1 Nutzer/innen können Anzeigen für legale Waren und Dienstleistungen veröffentlichen.</p>
            <p>4.2 Der Betreiber behält sich vor, Anzeigen ohne Angabe von Gründen zu entfernen.</p>
            <p>4.3 Anzeigen sind zeitlich begrenzt (30 Tage) und werden danach automatisch archiviert.</p>

            <h2>5. Gebühren und Zahlungen</h2>
            <p>5.1 Die Veröffentlichung einer Anzeige ist gebührenpflichtig. Die aktuelle Gebühr wird vor der Veröffentlichung angezeigt.</p>
            <p>5.2 Die Bezahlung erfolgt ausschliesslich in Monero (XMR).</p>
            <p>5.3 Bezahlte Gebühren werden nicht erstattet.</p>
            <p>5.4 Transaktionen zwischen Nutzer/innen erfolgen direkt und ohne Beteiligung der Plattform.</p>

            <h2>6. Kommunikation</h2>
            <p>6.1 Die Plattform stellt einen Ende-zu-Ende verschlüsselten Chat zur Verfügung. Der Betreiber hat keinen Zugang zu den Nachrichteninhalten.</p>
            <p>6.2 Die Nutzer/innen sind für den Inhalt ihrer Nachrichten selbst verantwortlich.</p>

            <h2>7. Haftung</h2>
            <p>7.1 Der Betreiber haftet nicht für:</p>
            <ul>
                <li>Schäden aus Transaktionen</li>
                <li>Verlust von Kryptowährungen</li>
                <li>Verlust des Zugangs durch verlorene UUID</li>
                <li>Verfügbarkeit der Plattform</li>
                <li>Nutzergenerierte Inhalte</li>
            </ul>
            <p>7.2 Die Haftung ist auf die bezahlten Gebühren beschränkt.</p>
            <p>7.3 Der Betreiber haftet nicht für indirekte Schäden oder entgangenen Gewinn.</p>

            <h2>8. Datenschutz</h2>
            <p>8.1 Die Plattform erhebt so wenig personenbezogene Daten wie technisch möglich.</p>
            <p>8.2 Keine E-Mail-Adressen, Namen oder Standortdaten werden gespeichert.</p>
            <p>8.3 Nachrichten sind Ende-zu-Ende verschlüsselt.</p>
            <p>8.4 Es werden keine Analyse- oder Tracking-Dienste eingesetzt.</p>
            <p>8.5 Weitere Details in der Datenschutzerklärung.</p>

            <h2>9. Sperrung und Kündigung</h2>
            <p>9.1 Die Nutzer/in kann ihren Account jederzeit durch Löschen der UUID beenden.</p>
            <p>9.2 Der Betreiber kann Accounts bei Verstössen sperren.</p>
            <p>9.3 Kein Anspruch auf Rückerstattung bei Sperrung.</p>

            <h2>10. Änderungen der AGB</h2>
            <p>10.1 Der Betreiber kann diese AGB jederzeit ändern.</p>
            <p>10.2 Durch weitere Nutzung akzeptiert die Nutzer/in die neuen AGB.</p>

            <h2>11. Anwendbares Recht und Gerichtsstand</h2>
            <p>11.1 Es gilt Schweizer Recht.</p>
            <p>11.2 Gerichtsstand ist der Sitz des Betreibers in der Schweiz.</p>

            <h2>12. Salvatorische Klausel</h2>
            <p>Sollten einzelne Bestimmungen unwirksam sein, bleibt die Wirksamkeit der übrigen Bestimmungen unberührt.</p>

            <p class="legal-meta">Letzte Aktualisierung: Februar 2026</p>
        `
    }

    getContentEN() {
        return /* html */`
            <h1>Terms of Service</h1>
            <p class="legal-meta">dgray.io — Anonymous Marketplace | Last updated: February 2026</p>

            <h2>1. Scope</h2>
            <p>1.1 These Terms of Service govern the use of the platform dgray.io.</p>
            <p>1.2 The platform is operated by a natural person based in Switzerland.</p>
            <p>1.3 By using the platform, the user agrees to these terms.</p>

            <h2>2. Services</h2>
            <p>2.1 The platform provides an online marketplace where users can publish listings for goods and services and communicate with each other.</p>
            <p>2.2 The platform acts solely as an intermediary and does not become a party to contracts between users.</p>
            <p>2.3 The operator does not guarantee the accuracy, completeness, or quality of published listings.</p>

            <h2>3. Registration and Accounts</h2>
            <p>3.1 No personal data is required. Registration is done via an anonymous UUID.</p>
            <p>3.2 The UUID is the sole access to the account. Lost UUIDs cannot be recovered.</p>
            <p>3.3 Only one active account per person is permitted.</p>

            <h2>4. Listings</h2>
            <p>4.1 Users may publish listings for legal goods and services.</p>
            <p>4.2 The operator reserves the right to remove listings without stating reasons.</p>
            <p>4.3 Listings are limited to 30 days and are automatically archived thereafter.</p>

            <h2>5. Fees and Payments</h2>
            <p>5.1 Publishing a listing requires a fee. The current fee is displayed before publication.</p>
            <p>5.2 Payment is made exclusively in Monero (XMR).</p>
            <p>5.3 Paid fees are non-refundable.</p>
            <p>5.4 Transactions between users are direct and without platform involvement.</p>

            <h2>6. Communication</h2>
            <p>6.1 The platform provides end-to-end encrypted chat. The operator has no access to message content.</p>
            <p>6.2 Users are responsible for the content of their messages.</p>

            <h2>7. Liability</h2>
            <p>7.1 The operator is not liable for:</p>
            <ul>
                <li>Damages from transactions</li>
                <li>Loss of cryptocurrency</li>
                <li>Loss of access due to lost UUID</li>
                <li>Platform availability</li>
                <li>User-generated content</li>
            </ul>
            <p>7.2 Liability is limited to fees paid.</p>
            <p>7.3 The operator is not liable for indirect damages or lost profits.</p>

            <h2>8. Data Protection</h2>
            <p>8.1 The platform collects as little personal data as technically possible.</p>
            <p>8.2 No email addresses, names, or location data are stored.</p>
            <p>8.3 Messages are end-to-end encrypted.</p>
            <p>8.4 No analytics or tracking services are used.</p>
            <p>8.5 See the Privacy Policy for details.</p>

            <h2>9. Suspension and Termination</h2>
            <p>9.1 Users can terminate their account at any time by deleting their UUID.</p>
            <p>9.2 The operator may suspend accounts for violations.</p>
            <p>9.3 No refund claim exists in case of suspension.</p>

            <h2>10. Changes to Terms</h2>
            <p>10.1 The operator may change these terms at any time.</p>
            <p>10.2 Continued use constitutes acceptance of the updated terms.</p>

            <h2>11. Governing Law and Jurisdiction</h2>
            <p>11.1 Swiss law applies.</p>
            <p>11.2 Place of jurisdiction is the operator's domicile in Switzerland.</p>

            <h2>12. Severability</h2>
            <p>If any provision is found invalid, the remaining provisions remain in effect.</p>

            <p class="legal-meta">Last updated: February 2026</p>
        `
    }

    getContentFR() {
        return /* html */`
            <h1>Conditions Générales d'Utilisation (CGU)</h1>
            <p class="legal-meta">dgray.io — Marché anonyme | Mise à jour : février 2026</p>

            <h2>1. Champ d'application</h2>
            <p>1.1 Les présentes CGU régissent l'utilisation de la plateforme dgray.io.</p>
            <p>1.2 La plateforme est exploitée par une personne physique domiciliée en Suisse.</p>
            <p>1.3 En utilisant la plateforme, l'utilisateur accepte les présentes CGU.</p>

            <h2>2. Services</h2>
            <p>2.1 La plateforme met à disposition un marché en ligne où les utilisateurs peuvent publier des annonces et communiquer entre eux.</p>
            <p>2.2 La plateforme agit uniquement en tant qu'intermédiaire et ne devient pas partie aux contrats entre utilisateurs.</p>
            <p>2.3 L'exploitant ne garantit pas l'exactitude, l'exhaustivité ou la qualité des annonces publiées.</p>

            <h2>3. Inscription et comptes</h2>
            <p>3.1 Aucune donnée personnelle n'est requise. L'inscription se fait via un UUID anonyme.</p>
            <p>3.2 L'UUID est le seul accès au compte. Les UUID perdus ne peuvent pas être récupérés.</p>
            <p>3.3 Un seul compte actif par personne est autorisé.</p>

            <h2>4. Annonces</h2>
            <p>4.1 Les utilisateurs peuvent publier des annonces pour des biens et services légaux.</p>
            <p>4.2 L'exploitant se réserve le droit de supprimer des annonces sans justification.</p>
            <p>4.3 Les annonces sont limitées à 30 jours et sont automatiquement archivées.</p>

            <h2>5. Frais et paiements</h2>
            <p>5.1 La publication d'une annonce est payante. Les frais sont affichés avant la publication.</p>
            <p>5.2 Le paiement s'effectue exclusivement en Monero (XMR).</p>
            <p>5.3 Les frais payés ne sont pas remboursables.</p>
            <p>5.4 Les transactions entre utilisateurs sont directes et sans intervention de la plateforme.</p>

            <h2>6. Communication</h2>
            <p>6.1 La plateforme fournit un chat chiffré de bout en bout. L'exploitant n'a pas accès au contenu des messages.</p>
            <p>6.2 Les utilisateurs sont responsables du contenu de leurs messages.</p>

            <h2>7. Responsabilité</h2>
            <p>7.1 L'exploitant n'est pas responsable :</p>
            <ul>
                <li>Des dommages liés aux transactions</li>
                <li>De la perte de cryptomonnaies</li>
                <li>De la perte d'accès due à un UUID perdu</li>
                <li>De la disponibilité de la plateforme</li>
                <li>Du contenu généré par les utilisateurs</li>
            </ul>
            <p>7.2 La responsabilité est limitée aux frais payés.</p>
            <p>7.3 L'exploitant n'est pas responsable des dommages indirects ou des pertes de bénéfices.</p>

            <h2>8. Protection des données</h2>
            <p>8.1 La plateforme collecte le minimum de données personnelles techniquement nécessaire.</p>
            <p>8.2 Aucune adresse e-mail, nom ou donnée de localisation n'est stocké.</p>
            <p>8.3 Les messages sont chiffrés de bout en bout.</p>
            <p>8.4 Aucun service d'analyse ou de suivi n'est utilisé.</p>
            <p>8.5 Voir la politique de confidentialité pour plus de détails.</p>

            <h2>9. Suspension et résiliation</h2>
            <p>9.1 Les utilisateurs peuvent résilier leur compte à tout moment en supprimant leur UUID.</p>
            <p>9.2 L'exploitant peut suspendre les comptes en cas de violation.</p>
            <p>9.3 Aucun remboursement en cas de suspension.</p>

            <h2>10. Modifications des CGU</h2>
            <p>10.1 L'exploitant peut modifier les présentes CGU à tout moment.</p>
            <p>10.2 L'utilisation continue vaut acceptation des CGU modifiées.</p>

            <h2>11. Droit applicable et for juridique</h2>
            <p>11.1 Le droit suisse est applicable.</p>
            <p>11.2 Le for juridique est le domicile de l'exploitant en Suisse.</p>

            <h2>12. Clause de sauvegarde</h2>
            <p>Si une disposition est jugée invalide, les autres dispositions restent en vigueur.</p>

            <p class="legal-meta">Dernière mise à jour : février 2026</p>
        `
    }
}

customElements.define('page-terms', PageTerms)

const style = document.createElement('style')
style.textContent = /* css */`
    page-terms .legal-page {
        padding: var(--space-lg) 0;
        max-width: 800px;
        margin: 0 auto;
    }

    page-terms .back-link {
        display: inline-block;
        color: var(--color-text-muted);
        text-decoration: none;
        font-size: var(--font-size-sm);
        margin-bottom: var(--space-lg);
        transition: color 0.2s;
    }

    page-terms .back-link:hover {
        color: var(--color-text);
    }

    page-terms .legal-content h1 {
        font-size: var(--font-size-2xl);
        margin: 0 0 var(--space-xs);
    }

    page-terms .legal-content h2 {
        font-size: var(--font-size-lg);
        margin: var(--space-xl) 0 var(--space-sm);
        padding-top: var(--space-md);
        border-top: 1px solid var(--color-border);
    }

    page-terms .legal-content h2:first-of-type {
        border-top: none;
    }

    page-terms .legal-content p {
        line-height: 1.7;
        margin: 0 0 var(--space-sm);
        color: var(--color-text-secondary);
    }

    page-terms .legal-content ul {
        margin: 0 0 var(--space-sm);
        padding-left: var(--space-lg);
        color: var(--color-text-secondary);
    }

    page-terms .legal-content ul li {
        line-height: 1.7;
        margin-bottom: var(--space-xs);
    }

    page-terms .legal-meta {
        color: var(--color-text-muted);
        font-size: var(--font-size-sm);
    }

    @media (max-width: 768px) {
        page-terms .legal-page {
            padding: var(--space-md) 0;
        }

        page-terms .legal-content h1 {
            font-size: var(--font-size-xl);
        }

        page-terms .legal-content h2 {
            font-size: var(--font-size-base);
        }
    }
`
document.head.appendChild(style)
