(function (
window,
document,
scriptTagName,
globalName,
scriptAddress,
scriptElement,
otherScriptElement
) {
window['formest'] = globalName;
// creates a global variable to delegate, so it will be available before script loaded
window[globalName] =
window[globalName] ||
function () {
// pushes arguments that were passed to delegate into queue
// so they can be accessed later from the main script
(window[globalName].q = window[globalName].q || []).push(arguments);
};
// dynamically create a script tag element with async execution
(scriptElement = document.createElement(scriptTagName)),
(otherScriptElement = document.getElementsByTagName(scriptTagName)[0]);
scriptElement.id = globalName;
scriptElement.src = scriptAddress;
scriptElement.async = 1;
// inject the script tag before first script tag found within document
otherScriptElement.parentNode.insertBefore(scriptElement, otherScriptElement);
})(window, document, 'script', 'formest', 'https://graymattersnyc.embed.formest.co/api/v1/app')