var headContent = "<!-- FORM: HEAD SECTION --><head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"referrer\" content=\"no-referrer-when-downgrade\">\n    <title><\/title>\n                                        <link href=\"https:\/\/arthritisfoundation.tfaforms.net\/dist\/form-builder\/5.0.0\/wforms-layout.css?v=1762799003\" rel=\"stylesheet\" type=\"text\/css\">\n                                                <link href=\"https:\/\/arthritisfoundation.tfaforms.net\/dist\/form-builder\/5.0.0\/wforms-jsonly.css?v=1762799003\" rel=\"stylesheet\" type=\"text\/css\">\n                                                <link href=\"https:\/\/arthritisfoundation.tfaforms.net\/uploads\/themes\/theme-59.css?v=1762799003\" rel=\"stylesheet\" type=\"text\/css\">\n                                                        <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/js\/FA__DOMContentLoadedEventDispatcher.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/wForms\/3.11\/js\/wforms.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/wForms\/3.11\/js\/localization-en_US.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/wForms\/3.11\/js\/wforms_prefill.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/dist\/jquery\/jquery.0416573c648d279fd758.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/js\/typeahead\/v1.2.0\/typeahead.bundle.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/dist\/analytics\/data-collector.e86d94bd97a6d88cf5db.js?v=1762799003\" type=\"text\/javascript\"><\/script>\n                                                <script src=\"https:\/\/arthritisfoundation.tfaforms.net\/api_v2\/sst\/quick-publish?v=1762799003\" type=\"text\/javascript\"><\/script>\n                            \n    <\/head>";
var bodyContent = "<!-- FORM: BODY SECTION --><body class=\"default wFormWebPage\">\n\n    \n\n<div id=\"tfaContent\">\n\n            <div class=\"wFormContainer\">\n    <div class=\"wFormHeader\"><\/div>\n\n    \n    <style type=\"text\/css\"><\/style><div class=\"\"><div class=\"wForm\" id=\"13-WRPR\" data-language=\"en_US\" dir=\"ltr\">\n<div class=\"codesection\" id=\"code-13\"><\/div>\n<form method=\"post\" action=\"https:\/\/arthritisfoundation.tfaforms.net\/api_v2\/workflow\/processor\" class=\"hintsBelow labelsAbove\" id=\"13\">\n<div id=\"tfa_2210\" class=\"section column group\"><table class=\"columnLayout\"><tbody><tr><td id=\"tfa_1867\">\n<div class=\"htmlSection\" id=\"tfa_2211\"><div class=\"htmlContent\" id=\"tfa_2211-HTML\"><span data-teams=\"true\">Sign up to get an email packed with the latest resources and information.<\/span><\/div><\/div>\n<div id=\"tfa_2187\" class=\"section inline group\">\n<div class=\"oneField field-container-D    \" id=\"tfa_1868-D\">\n<label id=\"tfa_1868-L\" class=\"label preField reqMark\" for=\"tfa_1868\">First Name\u00a0<\/label><br><div class=\"inputWrapper\"><input aria-required=\"true\" type=\"text\" id=\"tfa_1868\" name=\"tfa_1868\" value=\"\" autocomplete=\"given-name\" title=\"First Name \" class=\"required\"><\/div>\n<\/div>\n<div class=\"oneField field-container-D    \" id=\"tfa_1869-D\">\n<label id=\"tfa_1869-L\" class=\"label preField reqMark\" for=\"tfa_1869\">Last Name<\/label><br><div class=\"inputWrapper\"><input aria-required=\"true\" type=\"text\" id=\"tfa_1869\" name=\"tfa_1869\" value=\"\" autocomplete=\"given-name\" title=\"Last Name\" class=\"required\"><\/div>\n<\/div>\n<\/div>\n<div class=\"oneField field-container-D    \" id=\"tfa_2189-D\">\n<label id=\"tfa_2189-L\" class=\"label preField reqMark\" for=\"tfa_2189\">Email<\/label><br><div class=\"inputWrapper\"><input aria-required=\"true\" type=\"text\" id=\"tfa_2189\" name=\"tfa_2189\" value=\"\" autocomplete=\"email\" title=\"Email\" class=\"validate-email required\"><\/div>\n<\/div>\n<div id=\"tfa_2204\" class=\"section inline group\">\n<div class=\"oneField field-container-D    \" id=\"tfa_2205-D\">\n<label id=\"tfa_2205-L\" class=\"label preField \" for=\"tfa_2205\">Mobile Phone<\/label><br><div class=\"inputWrapper\"><input type=\"text\" id=\"tfa_2205\" name=\"tfa_2205\" value=\"\" autocomplete=\"tel\" title=\"Mobile Phone\" class=\"\"><\/div>\n<\/div>\n<div class=\"oneField field-container-D    \" id=\"tfa_2186-D\">\n<label id=\"tfa_2186-L\" class=\"label preField reqMark\" for=\"tfa_2186\">Zip Code<\/label><br><div class=\"inputWrapper\"><input aria-required=\"true\" type=\"text\" id=\"tfa_2186\" name=\"tfa_2186\" value=\"\" autocomplete=\"postal-code\" title=\"Zip Code\" class=\"validate-integer required\"><\/div>\n<\/div>\n<\/div>\n<div class=\"oneField field-container-D   hintsBelow \" id=\"tfa_2206-D\" role=\"radiogroup\" aria-labelledby=\"tfa_2206-L\" data-tfa-labelledby=\"-L tfa_2206-L\">\n<label id=\"tfa_2206-L\" class=\"label preField \" data-tfa-check-label-for=\"tfa_2206\">Do you have arthritis?<\/label><br><div class=\"inputWrapper\">\n<span id=\"tfa_2206\" class=\"choices vertical \"><span class=\"oneChoice\"><input type=\"radio\" value=\"tfa_2207\" class=\"\" id=\"tfa_2207\" name=\"tfa_2206\" aria-labelledby=\"tfa_2207-L\" data-tfa-labelledby=\"tfa_2206-L tfa_2207-L\" data-tfa-parent-id=\"tfa_2206\" aria-describedby=\"tfa_2206-HH\"><label class=\"label postField\" id=\"tfa_2207-L\" for=\"tfa_2207\"><span class=\"input-radio-faux\"><\/span>Yes<\/label><\/span><span class=\"oneChoice\"><input type=\"radio\" value=\"tfa_2208\" class=\"\" id=\"tfa_2208\" name=\"tfa_2206\" aria-labelledby=\"tfa_2208-L\" data-tfa-labelledby=\"tfa_2206-L tfa_2208-L\" data-tfa-parent-id=\"tfa_2206\" aria-describedby=\"tfa_2206-HH\"><label class=\"label postField\" id=\"tfa_2208-L\" for=\"tfa_2208\"><span class=\"input-radio-faux\"><\/span>No<\/label><\/span><\/span><span class=\"field-hint-inactive\" id=\"tfa_2206-H\"><span id=\"tfa_2206-HH\" class=\"hint\">We use this information only to better understand how to communicate with you.<\/span><\/span>\n<\/div>\n<\/div>\n<\/td><\/tr><\/tbody><\/table><\/div>\n<div class=\"actions\" id=\"13-A\" data-contentid=\"submit_button\"><input type=\"submit\" data-label=\"Sign Me Up\" class=\"primaryAction\" id=\"submit_button\" value=\"Sign Me Up\"><\/div>\n<div style=\"clear:both\"><\/div>\n<input type=\"hidden\" value=\"265-18b077cb5bf023cc4216da48b3e06f15\" name=\"tfa_dbCounters\" id=\"tfa_dbCounters\" autocomplete=\"off\"><input type=\"hidden\" value=\"13\" name=\"tfa_dbFormId\" id=\"tfa_dbFormId\"><input type=\"hidden\" value=\"\" name=\"tfa_dbResponseId\" id=\"tfa_dbResponseId\"><input type=\"hidden\" value=\"838e270c199b17b7d2ec7cb85403ed57\" name=\"tfa_dbControl\" id=\"tfa_dbControl\"><input type=\"hidden\" value=\"\" name=\"tfa_dbWorkflowSessionUuid\" id=\"tfa_dbWorkflowSessionUuid\"><input type=\"hidden\" value=\"0\" name=\"tfa_dbDataflowId\" id=\"tfa_dbDataflowId\"><input type=\"hidden\" value=\"1762799003\" name=\"tfa_dbTimeStarted\" id=\"tfa_dbTimeStarted\" autocomplete=\"off\"><input type=\"hidden\" value=\"54\" name=\"tfa_dbVersionId\" id=\"tfa_dbVersionId\"><input type=\"hidden\" value=\"false\" name=\"startWorkflow\" id=\"startWorkflow\"><input type=\"hidden\" value=\"\" name=\"tfa_switchedoff\" id=\"tfa_switchedoff\">\n<\/form>\n<\/div><\/div><div class=\"wFormFooter\"><p class=\"supportInfo\"><br><\/p><\/div>\n\n<\/div>\n\n\n            <script id=\"analytics-collector-script\" type=\"text\/javascript\" src=\"https:\/\/arthritisfoundation.tfaforms.net\/dist\/analytics\/data-collector.e86d94bd97a6d88cf5db.js\" data-customer-id=\"98581\" data-endpoint=\"https:\/\/analytics.formassembly.com\/v1\/traces\"><\/script>\n\n    \n<script type=\"text\/javascript\" data-for=\"FA__DOMContentLoadedEventDispatch\" src=\"https:\/\/arthritisfoundation.tfaforms.net\/js\/FA__DOMContentLoadedEventDispatcher.js\" defer><\/script>\n\n\n<script type=\"text\/javascript\">\n    document.addEventListener(\"FA__DOMContentLoaded\", function(){\n        const FORM_TIME_START = Math.floor((new Date).getTime()\/1000);\n        let formElement = document.getElementById(\"tfa_0\");\n        if (null === formElement) {\n            formElement = document.getElementById(\"0\");\n        }\n        let appendJsTimerElement = function(){\n            let formTimeDiff = Math.floor((new Date).getTime()\/1000) - FORM_TIME_START;\n            let cumulatedTimeElement = document.getElementById(\"tfa_dbCumulatedTime\");\n            if (null !== cumulatedTimeElement) {\n                let cumulatedTime = parseInt(cumulatedTimeElement.value);\n                if (null !== cumulatedTime && cumulatedTime > 0) {\n                    formTimeDiff += cumulatedTime;\n                }\n            }\n            let jsTimeInput = document.createElement(\"input\");\n            jsTimeInput.setAttribute(\"type\", \"hidden\");\n            jsTimeInput.setAttribute(\"value\", formTimeDiff.toString());\n            jsTimeInput.setAttribute(\"name\", \"tfa_dbElapsedJsTime\");\n            jsTimeInput.setAttribute(\"id\", \"tfa_dbElapsedJsTime\");\n            jsTimeInput.setAttribute(\"autocomplete\", \"off\");\n            if (null !== formElement) {\n                formElement.appendChild(jsTimeInput);\n            }\n        };\n        if (null !== formElement) {\n            if(formElement.addEventListener){\n                formElement.addEventListener('submit', appendJsTimerElement, false);\n            } else if(formElement.attachEvent){\n                formElement.attachEvent('onsubmit', appendJsTimerElement);\n            }\n        }\n    });\n<\/script>\n\n<script type=\"text\/javascript\">\n    if(wFORMS.behaviors.prefill) wFORMS.behaviors.prefill.skip = true;\n<\/script>\n\n\n\n    <\/div>\n\n\n    \n\n\n\n<\/body>";
var resumeUrl = null;
var baseUrl = "https:\/\/arthritisfoundation.tfaforms.net";

/**
 * Main entry point, called when the DOM is loaded.
 */
function loadFormAssemblyFormHeadAndBodyContents() {
    var targetElement = getTargetElement();
    var formBodyWrapper = createFormBodyWrapper();

    injectHeadContent();
    injectBodyContent(formBodyWrapper, targetElement);
    addResumeLink();

    document.addEventListener('FA__DOMContentLoaded', function () {
        executeBodyScripts(formBodyWrapper);
        
        // Set up FA$ for autosuggest behavior (jQuery in noConflict mode)
        if (typeof $ !== 'undefined' && $.noConflict) {
            window.FA$ = $.noConflict(true);
        }
        
        // Apply prefill behavior to enable URL parameter prefilling
        var forms = document.querySelectorAll('form');
        forms.forEach(function(form) {
            if (wFORMS && wFORMS.behaviors && wFORMS.behaviors.prefill) {
                wFORMS.behaviors.prefill.skip = false;
                wFORMS.behaviors.prefill.applyTo(form);
            }
        });
    });
}
window.addEventListener('DOMContentLoaded', loadFormAssemblyFormHeadAndBodyContents);

/**
 * Finds the target DOM element where the form should be injected.
 * @returns {HTMLElement|null} The target element or null if not found.
 */
function getTargetElement() {
    var quickPublishScript = document.querySelector('script[data-qp-target-id]');
    if (quickPublishScript) {
        var elementID = quickPublishScript.getAttribute('data-qp-target-id');
        return document.getElementById(elementID);
    }
    return null;
}

/**
 * Creates the main wrapper div for the form's body content.
 * @returns {HTMLDivElement}
 */
function createFormBodyWrapper() {
    var bodyWrapperDiv = document.createElement('div');
    bodyWrapperDiv.id = "FA__QP__BODYWRAPPERDIV";
    return bodyWrapperDiv;
}

/**
 * Injects the form's header content (styles, scripts) into the main document.
 */
function injectHeadContent() {
    var head = document.createElement('head');
    head.innerHTML = headContent;

    var headElements = Array.from(head.children);
    var scriptElements = headElements.filter(function(el) { return el.nodeName === 'SCRIPT'; });
    var otherElements = headElements.filter(function(el) { return el.nodeName !== 'SCRIPT'; });

    otherElements.forEach(function(el) { document.head.appendChild(el); });
    loadHeadScriptsSequentially(scriptElements);
}

/**
 * Loads header script tags sequentially to maintain order.
 * @param {HTMLScriptElement[]} scriptElements - An array of script elements to load.
 */
function loadHeadScriptsSequentially(scriptElements) {
    var script = scriptElements.shift();
    if (!script) {
        document.dispatchEvent(new Event('FA__DOMContentLoaded'));
        return;
    }

    var newScript = document.createElement('script');
    Array.from(script.attributes).forEach(function(attr) { newScript.setAttribute(attr.name, attr.value); });
    newScript.innerHTML = script.innerHTML;

    if (script.src) {
        newScript.onload = function() { loadHeadScriptsSequentially(scriptElements); };
        document.head.appendChild(newScript);
    } else {
        document.head.appendChild(newScript);
        loadHeadScriptsSequentially(scriptElements);
    }
}

/**
 * Injects the form's body content into the target element.
 * @param {HTMLDivElement} formBodyWrapper - The div that will contain the form.
 * @param {HTMLElement|null} targetElement - The element to inject the form into.
 */
function injectBodyContent(formBodyWrapper, targetElement) {
    var body = document.createElement('body');
    body.innerHTML = bodyContent;

    Array.from(body.children).forEach(function(el) { formBodyWrapper.appendChild(el); });

    if (targetElement) {
        targetElement.appendChild(formBodyWrapper);
    } else {
        document.body.appendChild(formBodyWrapper);
    }
}

/**
 * If a resume URL is provided, it finds the "Save and Resume" containers
 * and injects the resume link.
 */
function addResumeLink() {
    if (!resumeUrl) return;

    var oneFieldContainers = document.querySelectorAll('.wForm .saveAndResume > .oneField');
    oneFieldContainers.forEach(function (container) {
        var separator = document.createTextNode(' | ');

        var resumeLink = document.createElement('a');
        resumeLink.href = baseUrl + resumeUrl;
        resumeLink.innerHTML = 'Resume a previously saved form';
        
        resumeLink.addEventListener('click', function(event) {
            if (!confirm('Are you sure you want to resume a previous response? Any information you just entered on this page will be discarded.')) {
                event.preventDefault();
            }
        });

        container.appendChild(separator);
        container.appendChild(resumeLink);
    });
}

/**
 * Finds and re-executes script tags from the form's body.
 * @param {HTMLDivElement} formBodyWrapper - The wrapper containing the form.
 */
function executeBodyScripts(formBodyWrapper) {
    var scriptTags = formBodyWrapper.querySelectorAll('script');
    scriptTags.forEach(function (scriptTag) {
        // Skip jQuery, Typeahead, Kalendae, and Calendar scripts that are already loaded in the head
        if (scriptTag.src && (
            scriptTag.src.includes('jquery.js') || 
            scriptTag.src.includes('typeahead.bundle.js') ||
            scriptTag.src.includes('/js/kalendae/') ||
            scriptTag.src.includes('wforms_calendar.js')
        )) {
            return;
        }
        
        // Skip noConflict scripts that are meant for jQuery/Typeahead
        if (scriptTag.innerHTML && scriptTag.innerHTML.includes('noConflict')) {
            return;
        }
        
        var script = document.createElement('script');
        Array.from(scriptTag.attributes).forEach(function(attr) { script.setAttribute(attr.name, attr.value); });
        script.innerHTML = scriptTag.innerHTML;
        scriptTag.parentNode.replaceChild(script, scriptTag);
    });
}
