package ru.forbion.f7cloud.feature.mail

/** Подмена брендинга в WebView почты (как f7cloud_branding.js на сервере). */
object MailWebBranding {
    fun brandingScriptUrl(serverUrl: String): String {
        return "${serverUrl.trimEnd('/')}/themes/forbion/js/f7cloud_branding.js"
    }

    fun replaceInText(text: String): String {
        return text
            .replace(Regex("Nextcloud", RegexOption.IGNORE_CASE), "F7cloud")
            .replace(Regex("NEXTCLOUD"), "F7CLOUD")
            .replace(Regex("nextcloud\\.com", RegexOption.IGNORE_CASE), "f7cloud.ru")
    }

    /** Загружает f7cloud_branding.js с сервера, затем выполняет [body]. */
    fun jsAfterBranding(serverUrl: String, body: String): String {
        val url = brandingScriptUrl(serverUrl).replace("\\", "\\\\").replace("'", "\\'")
        return """
            (function() {
              var run = function() { $body };
              if (window.__f7cloudBranding) { run(); return; }
              var s = document.createElement('script');
              s.src = '$url';
              s.onload = run;
              s.onerror = run;
              (document.head || document.documentElement).appendChild(s);
            })();
        """.trimIndent()
    }
}
