(function (window, document, console) { if (typeof window.intgrtn !== "undefined") { window.intgrtn.sendErrorMessage("Intgrtn script already included."); return; } var projectDetails = null; var contactRequestMessages = null; var events = []; var scriptUrlParser = null; var appendedProjectScripts = []; var endpoint = ""; var regexValidationExpression = /^\/(?.*?)\/(?[a-z]+)?$/; if (document.currentScript) { scriptUrlParser = document.createElement("a"); scriptUrlParser.href = document.currentScript.src; } if (scriptUrlParser) { endpoint = "https://" + scriptUrlParser.hostname; if (scriptUrlParser.hostname.indexOf(".localhost") !== -1) { endpoint = "//" + scriptUrlParser.hostname; } } window.intgrtn = {}; window.intgrtn.options = { server: { host: scriptUrlParser ? scriptUrlParser.hostname : "", endpoint: endpoint, ignoreProjectEndpoint: false, }, language: null, cookies: { path: "/", }, forms: { signup: { labels: { firstName: "First Name", lastName: "Last Name", email: "Email", password: "Password", passwordConfirm: "Confirm Password", phone: "Phone number", checkboxAgreeTerms: "I agree with the terms and conditions", captcha: "Captcha", }, placeholders: { firstName: "First Name", lastName: "Last Name", email: "Email", password: "Password", passwordConfirm: "Confirm Password", phone: "Phone number", areaCode: "Area Code", captcha: "Enter text from image", smsVerificationCode: "Enter the code. E.g. 123456", }, buttons: { goToStep2: { text: "Next", }, goToStep3: { text: "Next", }, submit: { text: "Register", }, generatePassword: { show: false, text: "Generate", }, smsVerification: { back: { text: "Back", }, verify: { text: "Verify", }, resentCode: { text: "Resend", }, }, }, onSuccess: { redirectUrl: null, autoRedirect: true, redirectTop: false, }, fields: { labels: { show: false, }, firstName: { show: true, required: true, showLabel: null, maxLength: 100, minLength: 2, errors: { required: "First name is required.", onlyLetters: "Only letters are allowed.", minLength: "First name should be at least {{firstNameMinLength}} characters.", maxLength: "First name should not be more than {{firstNameMaxLength}} characters.", }, }, lastName: { show: true, required: true, showLabel: null, maxLength: 100, minLength: 2, errors: { required: "Last name is required.", onlyLetters: "Only letters are allowed.", minLength: "Last name should be at least {{lastNameMinLength}} characters.", maxLength: "Last name should not be more than {{lastNameMaxLength}} characters.", }, }, email: { show: true, required: true, showLabel: null, errors: { required: "Email is required.", pattern: "Email is invalid.", }, }, areaCode: { required: true, errors: { required: "Area Code is required.", onlyDigits: "Area code should contain only digits.", }, }, phone: { required: true, showLabel: null, errors: { required: "Phone is required.", onlyDigits: "Phone number should contain only digits.", }, }, checkboxAgreeTerms: { show: false, required: true, errors: { required: "The field is required.", }, }, password: { required: true, showLabel: null, errors: { required: "Password is required.", minLength: "Password should be at least {{passwordMinLength}} characters.", maxLength: "Password should be at most {{passwordMaxLength}} characters.", pattern: "Password should contain at least 1 lowercase, 1 uppercase and 1 number without special characters. (Example: 123Asd).", }, tooltip: "Password should contain at least 1 lowercase, 1 uppercase and 1 number without special characters. Example: 123Abc", minLength: 6, maxLength: 12, pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*[-!$%^&*@#()_+|~=`{}\[\]:";'<>?,.\/\\]).+$/, patternLowercaseLetter: /^.*[a-z]+.*$/, patternUppercaseLetter: /^.*[A-Z]+.*$/, patternNoSpecialChars: /^(?!.*[-!$%^&*@#()_+|~=`{}\[\]:";'<>?,.\/\\]).+$/, patternNumber: /^.*\d+.*$/, patternLetter: /^.*[a-z]|[A-Z]+.*$/, verboseErrors: { enabled: false, messages: [ { id: "password6To12Chars", text: "Password should be {{passwordMinLength}}-{{passwordMaxLength}} characters long.", }, { id: "passwordRegExp1Lowercase", text: "Password should contain at least 1 lowercase.", }, { id: "passwordRegExp1Uppercase", text: "Password should contain at least 1 uppercase.", }, { id: "passwordRegExpNoSpecialChars", text: "Password should not contain special chars.", }, { id: "passwordRegExpNumber", text: "Password should contain at least 1 number.", }, { id: "passwordRegExpLetter", text: "Password should contain at least 1 letter.", }, { id: "passwordConfirmMatch", text: "Password and confirm password does not match.", }, ], }, }, passwordConfirm: { show: true, required: true, showLabel: null, errors: { required: "Confirm password is required.", match: "Password and confirm password does not match.", }, }, captcha: { show: false, required: false, showLabel: null, errors: { required: "Captcha is required.", }, }, customField: { errors: { required: "{{fieldName}} field is required.", }, }, smsVerificationCode: { show: false, required: false, showLabel: null, //at the moment there is no actual label for the input, if added please remove comment errors: { required: "Code is required.", codeExpired: "Code is expired, please resent it.", }, }, }, steps: { show: true, }, twoStepsFormCustomization: { showOptinFieldsOnSecondStep: true, }, additionalParams: {}, validateEvents: { eventNameSuffix: "", }, headings: { smsVerification: { title: "SMS Verification", }, }, smsVerification: { text: { IsEnabledMessage: "Your phone number will be verified by SMS.", timerMessage: "Didn't receive a code?", codeInputMessage: "We've just sent you a verification code on your phone number.", }, }, }, optin: { placeholders: { name: "Full Name", firstName: "First Name", lastName: "Last Name", email: "Email", areaCode: "Area Code", phone: "Phone number", }, buttons: { submit: { text: "Register", }, }, onSuccess: { redirectUrl: null, }, fields: { labels: { show: false, }, name: { show: false, required: true, showLabel: null, minLength: 2, errors: { required: "Name is required.", minLength: "Name should be at least {{nameMinLength}} characters.", }, }, customField: { errors: { required: "{{fieldName}} field is required.", }, }, firstName: { show: true, required: true, showLabel: null, minLength: 2, errors: { required: "First name is required.", pattern: "Only letters are allowed.", minLength: "First name should be at least {{firstNameMinLength}} characters.", }, }, lastName: { show: true, required: true, showLabel: null, minLength: 2, errors: { required: "Last name is required.", pattern: "Only letters are allowed.", minLength: "Last name should be at least {{lastNameMinLength}} characters.", }, }, email: { required: true, showLabel: null, errors: { required: "Email is required.", pattern: "Email is invalid.", }, }, phone: { show: false, required: true, showLabel: null, errors: { required: "Phone is required.", onlyDigits: "Phone number should contain only digits.", }, }, }, labels: { name: "Full Name", firstName: "First Name", lastName: "Last Name", email: "Email", phone: "Phone number", }, validateEvents: { eventNameSuffix: "", }, }, contactUs: { customEndpoint: "support.php?intgrtn_contactRequestHash={{contactRequestHashedId}}", mode: "contact", //contact, abuse placeholders: { firstName: "First Name", lastName: "Last Name", email: "Email", type: "Type", subject: "Subject", message: "Message", areaCode: "Area Code", phone: "Phone number", }, buttons: { submit: { text: "Send", }, }, fields: { type: { value: null, }, }, }, }, tables: { brokers: { columns: { advertiserLogo: { title: "Advertiser", property: "advertiserLogo", }, custom1: { title: "Custom1", property: "custom1", }, custom2: { title: "Custom2", property: "custom2", }, custom3: { title: "Custom3", property: "custom3", }, custom4: { title: "Custom4", property: "custom4", }, custom5: { title: "Custom5", property: "custom5", }, link: { title: "Link", property: "link", }, }, }, }, agreements: { type: null, }, contactRequestMessagesLayout: { placeholders: { newMessage: "Write Message...", }, buttons: { submit: { text: "REPLY", }, }, }, exitPopup: { modal: null, url: null, html: null, showLimit: null, delayInterval: null, disableUntilScroll: null, preloadUrl: null, disableClose: false, disabled: null, firstLoadDelay: null, }, afterSignupModal: { modal: null, url: null, html: null, disableClose: true, hideCloseButton: true, }, cookiePopup: { text: "This website uses cookies to ensure you get the best experience on our website.", disabled: false, buttons: { learnMore: { text: "Learn More", }, accept: { text: "Got It!", }, }, }, offerDetails: { offerName: "", logoLight: null, logoDark: null, }, initializedEvent: { name: "intgrtn-initialized", }, }; window.intgrtn.getVersion = function () { return "2.69.1"; }; window.intgrtn.setOptions = function (options, reGenerateDataTags) { if (!options) { options = {}; } if (typeof reGenerateDataTags === "undefined") { reGenerateDataTags = true; } window.intgrtn.options = window.intgrtn.merge(window.intgrtn.options, options); if (reGenerateDataTags) { window.intgrtn.destroyDataTags(); window.intgrtn.parseDataTags(); } window.intgrtn.events.trigger("set.options.success", options, reGenerateDataTags); }; window.intgrtn.sendErrorMessage = function (message) { console.error("Intgrtn: " + message); return window.intgrtn; }; window.intgrtn.getSelectValues = function (dropdown) { var result = []; var options = dropdown && dropdown.options; for (var i = 0, iLen = options.length; i < iLen; i++) { var opt = options[i]; if (opt.selected) { result.push(opt.value || opt.text); } } return result; }; window.intgrtn.loadjscssfile = function (filename, filetype) { var fileref = null; if (filetype === "js") { fileref = document.createElement("script"); fileref.setAttribute("class", "intgrtn-asset"); fileref.setAttribute("type", "text/javascript"); fileref.setAttribute("src", filename); } else if (filetype === "css") { fileref = document.createElement("link"); fileref.setAttribute("class", "intgrtn-asset"); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", filename); } if (fileref !== null) { document.getElementsByTagName("head")[0].appendChild(fileref); } }; window.intgrtn.translate = function (string) { if (projectDetails && projectDetails.data.translations[string]) { return projectDetails.data.translations[string]; } return string; }; /* verbosePasswordRequirementsMessages */ window.intgrtn.getFormSignupPasswordVerboseErrorMessageById = function (id) { var result; for (var i = 0; i < window.intgrtn.options.forms.signup.fields.password.verboseErrors.messages.length; i++) { if (window.intgrtn.options.forms.signup.fields.password.verboseErrors.messages[i].id == id) { result = window.intgrtn.options.forms.signup.fields.password.verboseErrors.messages[i]; } } return result; }; /* Cookies */ window.intgrtn.cookies = {}; window.intgrtn.cookies.set = function (name, value, days, path) { var expires = ""; var cookieSetup = "; SameSite=Lax;"; if (typeof path === "undefined") { path = window.intgrtn.options.cookies.path; } if (typeof value === "undefined" || value === null) { value = ""; } if (typeof value !== "string" && typeof value.toString === "function") { value = value.toString(); } if (days) { var date = new Date(); date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); expires = "; expires=" + date.toUTCString(); } if (document.location.protocol === "https:") { cookieSetup = "; SameSite=None; Secure"; } document.cookie = name + "=" + value + expires + "; path=" + path + cookieSetup; return window.intgrtn; }; window.intgrtn.cookies.get = function (name) { var nameEQ = name + "="; var ca = document.cookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == " ") c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; }; window.intgrtn.cookies.getAll = function (name) { var pairs = document.cookie.split(";"); var cookies = []; for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split("="); var item = {}; item.name = (pair[0] + "").trim(); item.value = unescape(pair.slice(1).join("=")); cookies.push(item); } return cookies; }; window.intgrtn.cookies.delete = function (name) { document.cookie = name + "=; Max-Age=-99999999;"; return window.intgrtn; }; /* END Cookies */ /* Events */ window.intgrtn.events = {}; window.intgrtn.events.on = function (name, callback) { if (!name) { window.intgrtn.sendErrorMessage("Enter event name."); } if (typeof callback !== "function") { window.intgrtn.sendErrorMessage("Enter callback must be function."); } events.push({ name: name, callback: callback, }); }; window.intgrtn.events.trigger = function (name) { if (!name) { window.intgrtn.sendErrorMessage("Enter event name."); } var args = Array.prototype.slice.call(arguments); args = [].slice.call(arguments); args.shift(); events.forEach(function (event) { if (event.name === name) { event.callback.apply(null, args); } }); }; /* END Events */ window.intgrtn.elements = {}; window.intgrtn.elements.find = function (selector, element) { if (typeof element === "undefined") { element = document; } if (typeof selector === "string") { return Array.prototype.slice.call(element.querySelectorAll(selector)); } else if (typeof selector instanceof Array) { return selector; } else if (typeof selector === "object") { return [selector]; } return []; }; window.intgrtn.elements.findFirst = function (selector, element) { if (typeof element === "undefined") { element = document; } if (typeof selector === "string") { return element.querySelector(selector); } else if (typeof selector instanceof Array && selector[0]) { return selector[0]; } else if (typeof selector === "object") { return selector; } return null; }; window.intgrtn.elements.addClass = function (selector, classString) { if (classString) { window.intgrtn.elements.find(selector).forEach(function (element) { element.classList.add(classString); }); } return window.intgrtn; }; window.intgrtn.elements.removeClass = function (selector, classString) { if (classString) { window.intgrtn.elements.find(selector).forEach(function (element) { element.classList.remove(classString); }); } return window.intgrtn; }; window.intgrtn.elements.hasClass = function (selector, classString) { if (classString) { var element = window.intgrtn.elements.findFirst(selector); if (element.classList.contains(classString)) { return true; } } return false; }; window.intgrtn.elements.setAttribute = function (selector, name, value) { if (!value) { value = ""; } if (name) { window.intgrtn.elements.find(selector).forEach(function (element) { element.setAttribute(name, value); }); } return window.intgrtn; }; window.intgrtn.elements.removeAttribute = function (selector, name) { window.intgrtn.elements.find(selector).forEach(function (element) { element.removeAttribute(name); }); return window.intgrtn; }; window.intgrtn.elements.getHtml = function (selector) { var html = null; if (window.intgrtn.elements.findFirst(selector)) { html = window.intgrtn.elements.findFirst(selector).innerHTML; } return html; }; window.intgrtn.elements.setHtml = function (selector, html) { if (!html) { html = ""; } window.intgrtn.elements.find(selector).forEach(function (element) { element.innerHTML = ""; window.intgrtn.elements.appendChild(element, html); }); return window.intgrtn; }; window.intgrtn.elements.appendChild = function (selector, html) { if (!html) { html = ""; } window.intgrtn.elements.find(selector).forEach(function (element) { if (typeof html === "string") { element.innerHTML = element.innerHTML + html; } else if (typeof html === "object") { element.appendChild(html); } }); return window.intgrtn; }; window.intgrtn.elements.appendAfter = function (newElement, referenceNode) { referenceNode = window.intgrtn.elements.findFirst(referenceNode); window.intgrtn.elements.find(newElement).forEach(function (element) { referenceNode.parentNode.insertBefore(element, referenceNode.nextSibling); }); return window.intgrtn; }; window.intgrtn.elements.prepend = function (selector, html) { if (!html) { html = ""; } window.intgrtn.elements.find(selector).forEach(function (element) { if (typeof html === "string") { element.innerHTML = html + element.innerHTML; } else if (typeof html === "object") { element.prepend(html); } }); return window.intgrtn; }; window.intgrtn.elements.remove = function (selector) { window.intgrtn.elements.find(selector).forEach(function (element) { if (element.parentNode) { element.parentNode.removeChild(element); } }); return window.intgrtn; }; window.intgrtn.elements.create = function (tag, content, attributes) { if (typeof content === "undefined") { content = ""; } if (typeof attributes === "undefined") { attributes = []; } var newElement = document.createElement(tag); newElement.innerHTML = content; Object.keys(attributes).forEach(function (key) { window.intgrtn.elements.setAttribute(newElement, key, attributes[key]); }); return newElement; }; window.intgrtn.elements.trigger = function (element, eventName) { var event = new Event(eventName, { bubbles: true, cancelable: true, }); element.dispatchEvent(event); return window.intgrtn; }; window.intgrtn.elements.on = function (selector, event, callback) { if (typeof callback === "undefined") { callback = function () {}; } var events = event.split(" "); window.intgrtn.elements.find(selector).forEach(function (element) { for (var i = 0; i < events.length; i++) { element.addEventListener(events[i], callback); } }); return window.intgrtn; }; window.intgrtn.elements.off = function (selector, event, callback) { if (typeof callback === "undefined") { callback = function () {}; } window.intgrtn.elements.find(selector).forEach(function (element) { element.removeEventListener(event, callback); }); return window.intgrtn; }; window.intgrtn.mapCustomFieldsInputsToCustomFieldParams = function (customFieldsInputs) { var customFieldParams = []; customFieldsInputs.forEach(function (customInput) { var value = null; if (customInput.getAttribute("data-field-type") == 4) { value = window.intgrtn.getSelectValues(customInput); } else { value = customInput.value.trim(); } var newCustomObject = { value: value, fieldType: customInput.getAttribute("data-field-type"), userCustomFieldID: customInput.getAttribute("data-user-custom-field-id"), }; customFieldParams.push(newCustomObject); }); return customFieldParams; }; /** * Generate Custom Fields * @param customFields */ window.intgrtn.generateCustomFields = function (customFields, options) { var defaultOptions = { show: { labels: false, }, }; if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(defaultOptions, options); var elements = []; // iterate , generate and add customFields.forEach(function (custom) { // building holder div var customFieldHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-custom-field intgrtn-input-holder-" + custom.userCustomFieldID, }); if (options.show.labels) { // building label var customFieldLabel = window.intgrtn.elements.create("label", custom.name, { class: "intgrtn-label", for: custom.name, }); // insert label in holder window.intgrtn.elements.appendChild(customFieldHolder, customFieldLabel); } // building input switch (custom.fieldType) { case 1: // Text var customFieldInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: custom.name, placeholder: custom.name, value: custom.defaultValue, "data-field-type": custom.fieldType, "data-user-custom-field-id": custom.userCustomFieldID, }); if (custom.isRequired === 1) { customFieldInput.setAttribute("required", ""); } break; case 2: // Number var customFieldInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "number", name: custom.name, placeholder: custom.name, value: custom.defaultValue, "data-field-type": custom.fieldType, "data-user-custom-field-id": custom.userCustomFieldID, }); if (custom.isRequired === 1) { customFieldInput.setAttribute("required", ""); } break; case 3: // Dropdown var customFieldInput = window.intgrtn.elements.create("select", "", { class: "intgrtn-select", name: custom.name, placeholder: custom.name, value: custom.defaultValue, "data-field-type": custom.fieldType, "data-user-custom-field-id": custom.userCustomFieldID, }); custom.dropdown.forEach(function (dropdownOption) { // build option attributes var dropdownOptionOptions = {}; // check and mark as defalt value if (dropdownOption.isDefault === 1) { dropdownOptionOptions.selected = "selected"; } // create new select option var option = window.intgrtn.elements.create( "option", dropdownOption.name, dropdownOptionOptions ); option.value = dropdownOption.value; // insert new option in select window.intgrtn.elements.appendChild(customFieldInput, option); }); if (custom.isRequired === 1) { customFieldInput.setAttribute("required", ""); } break; case 4: // Dropdown Multiselect var customFieldInput = window.intgrtn.elements.create("select", "", { class: "intgrtn-select", name: custom.name, placeholder: custom.name, value: custom.defaultValue, multiple: "true", "data-field-type": custom.fieldType, "data-user-custom-field-id": custom.userCustomFieldID, }); custom.dropdown.forEach(function (dropdownOption) { // build option attributes var dropdownOptionOptions = { value: dropdownOption.value, }; // check and mark as defalt value if (dropdownOption.isDefault === 1) { dropdownOptionOptions.selected = "selected"; } // create new select option var option = window.intgrtn.elements.create( "option", dropdownOption.name, dropdownOptionOptions ); // insert new option in select window.intgrtn.elements.appendChild(customFieldInput, option); }); if (custom.isRequired === 1) { customFieldInput.setAttribute("required", ""); } break; case 5: // Text Area var customFieldInput = window.intgrtn.elements.create("textarea", custom.defaultValue, { class: "intgrtn-textarea", name: custom.name, placeholder: custom.name, "data-field-type": custom.fieldType, "data-user-custom-field-id": custom.userCustomFieldID, }); if (custom.isRequired === 1) { customFieldInput.setAttribute("required", ""); } break; } // insert into form window.intgrtn.elements.appendChild(customFieldHolder, customFieldInput); elements.push(customFieldHolder); }); return elements; }; /** * * @param string html * @returns Array */ window.intgrtn.elements.parseHTML = function (html) { var container = document.createElement("div"); container.innerHTML = html; var scripts = window.intgrtn.elements.find("script", container); scripts.forEach(function (script) { var newScript = document.createElement("script"); if (script.src) { newScript.src = script.src; } if (script.innerHTML) { newScript.innerHTML = script.innerHTML; } script.parentNode.replaceChild(newScript, script); }); return Array.prototype.slice.call(container.childNodes); }; window.intgrtn.elements.getOffset = function (selector) { var element = window.intgrtn.elements.findFirst(selector); if (!element) { return null; } var bodyRect = document.body.getBoundingClientRect(); var elemRect = element.getBoundingClientRect(); var y = elemRect.top - bodyRect.top; var x = elemRect.left - bodyRect.left; return { top: y, left: x, }; }; window.intgrtn.getQueryParameters = function () { var query = window.location.search.substring(1); var parameters = query.split("&"); var result = {}; parameters.forEach(function (parameter) { var pair = parameter.split("="); pair[0] = decodeURIComponent(pair[0]); if (pair[0].indexOf("[") === -1 || pair[0].indexOf("[]") !== -1) { pair[0] = pair[0].replace("[", "").replace("]", ""); if (typeof result[pair[0]] == "undefined") { result[pair[0]] = decodeURIComponent(pair[1]); } else { if (typeof result[pair[0]] != "array") { result[pair[0]] = [result[pair[0]]]; } result[pair[0]].push(decodeURIComponent(pair[1])); } } else { var regex = /(.*)\[(.*?)\]/gm; var regexResult = regex.exec(pair[0]); if (typeof result[regexResult[1]] == "undefined") { result[regexResult[1]] = {}; } if (regexResult[2]) { result[regexResult[1]][regexResult[2]] = decodeURIComponent(pair[1]); } } }); return result; }; window.intgrtn.getParameter = function (name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"); var results = regex.exec(location.search); return results === null ? null : decodeURIComponent(results[1].replace(/\+/g, " ")); }; window.intgrtn.store = function (name, value, days) { if (!name) { throw new Error("Store name can't be empty."); } if (!days) { days = 365; } if (typeof value == "undefined") { throw new Error("Store value can't be undefined."); } window.intgrtn.cookies.set("intgrtn_" + name, value, days); return window.intgrtn; }; window.intgrtn.lookup = function (name, checkCookie, defaultValue, prefix) { if (!name) { throw new Error("Lookup name can't be empty."); } if (typeof defaultValue === "undefined") { defaultValue = null; } if (typeof checkCookie === "undefined") { checkCookie = true; } if (typeof prefix === "undefined") { prefix = "intgrtn_"; } if (window.intgrtn.getParameter(prefix + name)) { if (checkCookie) { window.intgrtn.store(name, window.intgrtn.getParameter(prefix + name)); } return window.intgrtn.getParameter(prefix + name); } if (checkCookie && window.intgrtn.cookies.get(prefix + name)) { return window.intgrtn.cookies.get(prefix + name); } return defaultValue; }; window.intgrtn.ajax = function (options) { if (typeof options === "undefined") { options = {}; } if (!options.url) { options.url = null; } if (!options.method) { options.method = "GET"; } if (!options.data) { options.data = {}; } if (!options.onSuccess) { options.onSuccess = function () {}; } if (!options.onError) { options.onError = function () {}; } if (options.method == "GET") { if (options.url.indexOf("?") === -1) { options.url += "?"; } for (var key in options.data) { var item = options.data[key]; options.url += "&" + key + "=" + encodeURIComponent(item); } } var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState === XMLHttpRequest.DONE) { // XMLHttpRequest.DONE == 4 var response = xmlhttp.responseText; if (xmlhttp.getResponseHeader("Content-Type") === "application/json") { response = JSON.parse(xmlhttp.responseText); } if ([200, 201].indexOf(xmlhttp.status) !== -1) { options.onSuccess(response, xmlhttp.status); } else { options.onError(response, xmlhttp.status); } } }; xmlhttp.open(options.method, options.url, true); xmlhttp.setRequestHeader("Content-Type", "application/json"); xmlhttp.setRequestHeader("Intgrtn-Referer", window.location.href); xmlhttp.send(JSON.stringify(options.data)); }; window.intgrtn.copy = function (data) { return Object.assign({}, data); }; window.intgrtn.merge = function (obj1, obj2) { var obj1 = window.intgrtn.copy(obj1); var obj2 = window.intgrtn.copy(obj2); for (var p in obj2) { try { if (obj2[p].constructor == Object) { obj1[p] = window.intgrtn.merge(obj1[p], obj2[p]); } else { obj1[p] = obj2[p]; } } catch (e) { obj1[p] = obj2[p]; } } return obj1; }; window.intgrtn.parseQuery = function (queryString) { var query = {}; if (!queryString) { return query; } var pairs = (queryString[0] === "?" ? queryString.substr(1) : queryString).split("&"); for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split("="); if (!decodeURIComponent(pair[0])) { continue; } query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ""); } return query; }; window.intgrtn.getBrokerLoginDetails = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (!data.signupID && window.intgrtn.lookup("signupRequestID", true)) { data.signupID = window.intgrtn.lookup("signupRequestID", true); } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/brokers/login/details.php", method: "GET", data: data, onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.sendSignupRequest = function (data, onSuccess, onError, options) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (typeof options === "undefined") { options = {}; } var defaultOptions = { eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; var exitPopupDisabled = window.intgrtn.options.exitPopup.disabled; window.intgrtn.options.exitPopup.disabled = true; options = window.intgrtn.merge(defaultOptions, options); window.intgrtn.events.trigger("send.signup.request", data); window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/signups/add.php", method: "POST", data: data, onSuccess: function (response) { var $this = this; var $arguments = arguments; projectDetails.data.captcha.count = projectDetails.data.captcha.count + 1; if (response.hasOwnProperty("data") && response.data.hasOwnProperty("broker")) { if (response.data.broker.logo) { response.data.broker.logo = window.intgrtn.options.server.endpoint + response.data.broker.logo; } } window.intgrtn.fireEvent( { name: "intgrtn-form-signup-success" + options.eventNameSuffix, }, function () { onSuccess.apply($this, $arguments); window.intgrtn.events.trigger("send.signup.request.success", data); }, function () { onSuccess.apply($this, $arguments); window.intgrtn.events.trigger("send.signup.request.success", data); } ); }, onError: function (response) { window.intgrtn.options.exitPopup.disabled = exitPopupDisabled; if (response.data.captcha) { projectDetails.data.captcha.count = response.data.captcha.count; } else { projectDetails.data.captcha.count = projectDetails.data.captcha.count + 1; } onError.apply(this, arguments); window.intgrtn.events.trigger("send.signup.request.error", data); }, }); }; window.intgrtn.sendContactUsRequest = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/contacts/requests/add.php", method: "POST", data: data, onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.sendContactRequestMessageRequest = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/contacts/requests/messages/add.php", method: "POST", data: data, onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.sendOptinRequest = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (!data.firstName && window.intgrtn.lookup("firstName", true)) { data.firstName = window.intgrtn.lookup("firstName", true); } if (!data.lastName && window.intgrtn.lookup("lastName", true)) { data.lastName = window.intgrtn.lookup("lastName", true); } if (!data.email && window.intgrtn.lookup("email", true)) { data.email = window.intgrtn.lookup("email", true); } if (!data.clickID && window.intgrtn.lookup("clickID", true)) { data.clickID = window.intgrtn.lookup("clickID", true); } if (!data.ip && window.intgrtn.lookup("ip", true)) { data.ip = window.intgrtn.lookup("ip", true); } if (!data.custom && window.intgrtn.lookup("custom", true)) { data.custom = window.intgrtn.lookup("custom", true); } if (!data.custom1 && window.intgrtn.lookup("custom1", true)) { data.custom1 = window.intgrtn.lookup("custom1", true); } if (!data.custom2 && window.intgrtn.lookup("custom2", true)) { data.custom2 = window.intgrtn.lookup("custom2", true); } if (!data.custom3 && window.intgrtn.lookup("custom3", true)) { data.custom3 = window.intgrtn.lookup("custom3", true); } if (!data.custom4 && window.intgrtn.lookup("custom4", true)) { data.custom4 = window.intgrtn.lookup("custom4", true); } if (!data.custom5 && window.intgrtn.lookup("custom5", true)) { data.custom5 = window.intgrtn.lookup("custom5", true); } if (!data.isTest && window.intgrtn.lookup("isTest", true)) { data.isTest = window.intgrtn.lookup("isTest", true); } if (!data.offerName && window.intgrtn.lookup("offerName", true)) { data.offerName = window.intgrtn.lookup("offerName", true); } if (!data.offerWebsite && window.intgrtn.lookup("offerWebsite", true)) { data.offerWebsite = window.intgrtn.lookup("offerWebsite", true); } if (!data.offerHash && window.intgrtn.lookup("offerHash", true)) { data.offerHash = window.intgrtn.lookup("offerHash", true); } if (!data.locale && window.intgrtn.lookup("locale", true)) { data.locale = window.intgrtn.lookup("locale", true); } window.intgrtn.events.trigger("send.optin.request", data); window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/optins/add.php", method: "POST", data: data, onSuccess: function () { onSuccess.apply(this, arguments); window.intgrtn.events.trigger("send.optin.request.success", data); }, onError: function () { onError.apply(this, arguments); window.intgrtn.events.trigger("send.optin.request.error", data); }, }); }; window.intgrtn.sendAddClickRequest = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (!data.ip && window.intgrtn.lookup("ip", true)) { data.ip = window.intgrtn.lookup("ip", true); } if (!data.custom && window.intgrtn.lookup("custom", true)) { data.custom = window.intgrtn.lookup("custom", true); } if (!data.custom1 && window.intgrtn.lookup("custom1", true)) { data.custom1 = window.intgrtn.lookup("custom1", true); } if (!data.custom2 && window.intgrtn.lookup("custom2", true)) { data.custom2 = window.intgrtn.lookup("custom2", true); } if (!data.custom3 && window.intgrtn.lookup("custom3", true)) { data.custom3 = window.intgrtn.lookup("custom3", true); } if (!data.custom4 && window.intgrtn.lookup("custom4", true)) { data.custom4 = window.intgrtn.lookup("custom4", true); } if (!data.custom5 && window.intgrtn.lookup("custom5", true)) { data.custom5 = window.intgrtn.lookup("custom5", true); } if (!data.isTest && window.intgrtn.lookup("isTest", true)) { data.isTest = window.intgrtn.lookup("isTest", true); } if (!data.testEnvironmentToken && window.intgrtn.lookup("testEnvironmentToken", true)) { data.testEnvironmentToken = window.intgrtn.lookup("testEnvironmentToken", true); } if (!data.offerName && window.intgrtn.lookup("offerName", true)) { data.offerName = window.intgrtn.lookup("offerName", true); } if (!data.offerWebsite && window.intgrtn.lookup("offerWebsite", true)) { data.offerWebsite = window.intgrtn.lookup("offerWebsite", true); } if (!data.offerHash && window.intgrtn.lookup("offerHash", true)) { data.offerHash = window.intgrtn.lookup("offerHash", true); } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/clicks/add.php", method: "POST", data: data, onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.getAgreement = function (data, onSuccess, onError) { if (typeof data === "undefined") { data = {}; } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var offerName = ""; if (window.intgrtn.lookup("offerName", true)) { offerName = "&offerName=" + encodeURIComponent(window.intgrtn.lookup("offerName", true)); } var offerWebsite = ""; if (window.intgrtn.lookup("offerWebsite", true)) { offerWebsite = "&offerWebsite=" + encodeURIComponent(window.intgrtn.lookup("offerWebsite", true)); } var offerHash = ""; if (window.intgrtn.lookup("offerHash", true)) { offerHash = "&offerHash=" + encodeURIComponent(window.intgrtn.lookup("offerHash", true)); } var locale = ""; if (window.intgrtn.lookup("locale", true)) { locale = "&locale=" + encodeURIComponent(window.intgrtn.lookup("locale", true)); } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/projects/agreements.php?type=" + data.type + clickID + offerName + offerWebsite + offerHash + locale, method: "GET", onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.getBrokers = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var ip = ""; if (window.intgrtn.lookup("ip", true)) { ip = "&ip=" + window.intgrtn.lookup("ip", true); } var offerName = ""; if (window.intgrtn.lookup("offerName", true)) { offerName = "&offerName=" + encodeURIComponent(window.intgrtn.lookup("offerName", true)); } var offerWebsite = ""; if (window.intgrtn.lookup("offerWebsite", true)) { offerWebsite = "&offerWebsite=" + encodeURIComponent(window.intgrtn.lookup("offerWebsite", true)); } var offerHash = ""; if (window.intgrtn.lookup("offerHash", true)) { offerHash = "&offerHash=" + encodeURIComponent(window.intgrtn.lookup("offerHash", true)); } var activeOnly = ""; if (typeof data.activeOnly != "undefined") { activeOnly = "&activeOnly=" + data.activeOnly; } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v2/offers/advertisers/locations?" + clickID + ip + offerName + offerWebsite + offerHash + activeOnly, method: "GET", onSuccess: function (response) { var $this = this; var $arguments = arguments; response.items = response.items.map(function (broker) { broker.advertiserLogo = window.intgrtn.options.server.endpoint + broker.advertiserLogo; broker.brokerLogo = window.intgrtn.options.server.endpoint + broker.brokerLogo; broker.brokerLogoBlackBackground = window.intgrtn.options.server.endpoint + broker.brokerLogoBlackBackground; return broker; }); onSuccess.apply($this, $arguments); }, onError: onError, }); }; window.intgrtn.getVerificationCode = function (data, onSuccess, onError) { if (typeof data === "undefined") { data = {}; } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var offerHash = ""; if (window.intgrtn.lookup("offerHash", true)) { offerHash = "&offerHash=" + encodeURIComponent(window.intgrtn.lookup("offerHash", true)); } var ip = ""; if (window.intgrtn.lookup("ip", true)) { ip = "&ip=" + window.intgrtn.lookup("ip", true); } var phone = ""; if (data.phone) { phone = "&phone=" + data.phone; } var areaCode = ""; if (data.areaCode) { areaCode = "&areaCode=" + data.areaCode; } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v2/phone/send/verification-code?" + clickID + offerHash + phone + areaCode + ip, method: "GET", onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.getProjectDetails = function (onSuccess, onError, cache) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (typeof cache === "undefined") { cache = true; } var ip = ""; if (window.intgrtn.lookup("ip", true)) { ip = "&ip=" + window.intgrtn.lookup("ip", true); } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var custom = ""; if (window.intgrtn.lookup("custom", true)) { custom = "&custom=" + encodeURIComponent(window.intgrtn.lookup("custom", true)); } var custom1 = ""; if (window.intgrtn.lookup("custom1", true)) { custom1 = "&custom1=" + encodeURIComponent(window.intgrtn.lookup("custom1", true)); } var custom2 = ""; if (window.intgrtn.lookup("custom2", true)) { custom2 = "&custom2=" + encodeURIComponent(window.intgrtn.lookup("custom2", true)); } var custom3 = ""; if (window.intgrtn.lookup("custom3", true)) { custom3 = "&custom3=" + encodeURIComponent(window.intgrtn.lookup("custom3", true)); } var custom4 = ""; if (window.intgrtn.lookup("custom4", true)) { custom4 = "&custom4=" + encodeURIComponent(window.intgrtn.lookup("custom4", true)); } var custom5 = ""; if (window.intgrtn.lookup("custom5", true)) { custom5 = "&custom5=" + encodeURIComponent(window.intgrtn.lookup("custom5", true)); } var offerName = ""; if (window.intgrtn.lookup("offerName", true)) { offerName = "&offerName=" + encodeURIComponent(window.intgrtn.lookup("offerName", true)); } var offerWebsite = ""; if (window.intgrtn.lookup("offerWebsite", true)) { offerWebsite = "&offerWebsite=" + encodeURIComponent(window.intgrtn.lookup("offerWebsite", true)); } var offerHash = ""; if (window.intgrtn.lookup("offerHash", true)) { offerHash = "&offerHash=" + encodeURIComponent(window.intgrtn.lookup("offerHash", true)); } var locale = ""; if (window.intgrtn.lookup("locale", true)) { locale = "&locale=" + encodeURIComponent(window.intgrtn.lookup("locale", true)); } var language = ""; if (window.intgrtn.lookup("language", true)) { language = "&language=" + encodeURIComponent(window.intgrtn.lookup("language", true)); } if (projectDetails !== null && cache == true) { if (projectDetails === false) { var waitProjectDetails = setInterval(function () { if (projectDetails === false) { return false; } clearInterval(waitProjectDetails); onSuccess(projectDetails); }, 1); } else { onSuccess(projectDetails); } } else { projectDetails = false; window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/projects/details.php?" + ip + clickID + custom + custom1 + custom2 + custom3 + custom4 + custom5 + locale + language + offerName + offerWebsite + offerHash, method: "GET", onSuccess: function (response) { projectDetails = response; onSuccess(response); }, onError: onError, }); } }; window.intgrtn.updateCustomParameters = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (window.intgrtn.lookup("signupRequestID", true)) { window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v2/lead-requests/user-custom-fields/" + window.intgrtn.lookup("signupRequestID", true), method: "PATCH", data: data, onSuccess: function (response) { window.intgrtn.fireEvent({ name: "intgrtn-signup-custom-update-success", }); }, onError: function () { window.intgrtn.fireEvent({ name: "intgrtn-signup-custom-update-success-error", }); }, }); } }; window.intgrtn.getContactRequestMessages = function (data, onSuccess, onError) { if (typeof onSuccess === "undefined") { data = {}; } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var contactRequestHash = ""; if (data.contactRequestHash) { contactRequestHash = "&contactRequestHash=" + encodeURIComponent(data.contactRequestHash); } if (contactRequestMessages !== null) { onSuccess(contactRequestMessages); } else { window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/contacts/requests/messages.php?" + contactRequestHash, method: "GET", onSuccess: function (response) { contactRequestMessages = response; onSuccess(response); }, onError: onError, }); } }; window.intgrtn.getCurrentLocation = function (onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var ip = ""; if (window.intgrtn.lookup("ip", true)) { ip = "&ip=" + window.intgrtn.lookup("ip", true); } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var offerName = ""; if (window.intgrtn.lookup("offerName", true)) { offerName = "&offerName=" + encodeURIComponent(window.intgrtn.lookup("offerName", true)); } var offerWebsite = ""; if (window.intgrtn.lookup("offerWebsite", true)) { offerWebsite = "&offerWebsite=" + encodeURIComponent(window.intgrtn.lookup("offerWebsite", true)); } var offerHash = ""; if (window.intgrtn.lookup("offerHash", true)) { offerHash = "&offerHash=" + encodeURIComponent(window.intgrtn.lookup("offerHash", true)); } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/locations/current.php?" + ip + clickID + offerName + offerWebsite + offerHash, method: "GET", onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.getPostbacks = function (data, onSuccess, onError) { if (typeof data === "undefined") { data = {}; } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (!data.type) { data.type = ""; } if (!data.signupRequestID) { data.signupRequestID = window.intgrtn.lookup("signupRequestID", true, ""); } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var ip = ""; if (window.intgrtn.lookup("ip", true)) { ip = "&ip=" + window.intgrtn.lookup("ip", true); } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/projects/postbacks.php?signupRequestID=" + data.signupRequestID + "&type=" + data.type + clickID + ip, method: "GET", onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.getCaptcha = function (data, onSuccess, onError) { if (typeof data === "undefined") { data = {}; } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var clickID = ""; if (window.intgrtn.lookup("clickID", true)) { clickID = "&clickID=" + window.intgrtn.lookup("clickID", true); } var ip = ""; if (window.intgrtn.lookup("ip", true)) { ip = "&ip=" + window.intgrtn.lookup("ip", true); } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v2/captcha?" + clickID + ip, method: "GET", onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.firePostbacks = function (data, onSuccess, onError) { if (typeof data === "undefined") { data = {}; } if (!data.type) { data.type = ""; } if (!data.signupRequestID) { data.signupRequestID = window.intgrtn.lookup("signupRequestID", true, ""); } if (!data.ip && window.intgrtn.lookup("ip", true)) { data.ip = window.intgrtn.lookup("ip", true); } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } var postbacks = window.intgrtn.getPostbacks( { type: data.type, signupRequestID: data.signupRequestID, }, function (response) { response.data.items.forEach(function (postback) { window.intgrtn.elements.parseHTML(postback.url).forEach(function (node) { window.intgrtn.elements.appendChild("body", node); }); }); setTimeout(function () { onSuccess(response); }, 5000); }, onError ); }; window.intgrtn.firePostbacksBySignupRequestResponse = function (response, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (response.data && response.data.postbacks && response.data.postbacks.length > 0) { response.data.postbacks.forEach(function (postback) { window.intgrtn.elements.parseHTML(postback.url).forEach(function (node) { window.intgrtn.elements.appendChild("body", node); }); }); setTimeout(function () { onSuccess(); }, 5000); } else { onSuccess(); } }; window.intgrtn.fireOptinCliendSidePostbacksByOptinResponse = function (response, onSuccess, onError) { if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } if (response.data && response.data.postbacks && response.data.postbacks.length > 0) { response.data.postbacks.forEach(function (postback) { window.intgrtn.elements.parseHTML(postback.url).forEach(function (node) { window.intgrtn.elements.appendChild("body", node); }); }); setTimeout(function () { onSuccess(); }, 5000); } else { onSuccess(); } }; window.intgrtn.fireEvent = function (data, onSuccess, onError) { if (typeof data === "undefined") { data = {}; } if (!data.name) { throw new Error("Enter event name."); } if (!data.clickID && window.intgrtn.lookup("clickID", true)) { data.clickID = window.intgrtn.lookup("clickID", true); } if (!data.ip && window.intgrtn.lookup("ip", true)) { data.ip = window.intgrtn.lookup("ip", true); } if (!data.offerName && window.intgrtn.lookup("offerName", true)) { data.offerName = window.intgrtn.lookup("offerName", true); } if (!data.offerWebsite && window.intgrtn.lookup("offerWebsite", true)) { data.offerWebsite = window.intgrtn.lookup("offerWebsite", true); } if (!data.offerHash && window.intgrtn.lookup("offerHash", true)) { data.offerHash = window.intgrtn.lookup("offerHash", true); } if (typeof onSuccess === "undefined") { onSuccess = function () {}; } if (typeof onError === "undefined") { onError = function () {}; } window.intgrtn.ajax({ url: window.intgrtn.options.server.endpoint + "/api/v1/events/add.php", method: "POST", data: data, onSuccess: onSuccess, onError: onError, }); }; window.intgrtn.validate = { signupForm: {}, optinForm: {}, }; window.intgrtn.validate.email = function (email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); }; window.intgrtn.validate.signupForm.clearValidation = function (form) { window.intgrtn.elements.removeClass(form, "intgrtn-form-valid"); window.intgrtn.elements.removeClass(form, "intgrtn-form-invalid"); window.intgrtn.elements.removeClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.find(".intgrtn-input-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-invalid", form).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); }; window.intgrtn.validate.signupForm.firstName = function (firstName, validateOptions) { var valid = true; var messages = []; var form = firstName.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = firstName.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (firstName.hasAttribute("required")) { if (!firstName.value.trim()) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.firstName.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (firstName.value.trim() && !window.intgrtn.checkContainsOnlyLetters(firstName.value)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.firstName.errors.onlyLetters); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (firstName.value.trim() && firstName.value.length < options.fields.firstName.minLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.firstName.errors.minLength) .replace(/{{firstNameMinLength}}/g, options.fields.firstName.minLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (firstName.value.trim() && firstName.value.length > options.fields.firstName.maxLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.firstName.errors.maxLength) .replace(/{{firstNameMaxLength}}/g, options.fields.firstName.maxLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(firstName, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(firstName, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-first-name" + validateOptions.eventNameSuffix, value: firstName.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(firstName, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(firstName, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.lastName = function (lastName, validateOptions) { var valid = true; var messages = []; var form = lastName.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = lastName.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (lastName.hasAttribute("required")) { if (!lastName.value.trim()) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.lastName.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (lastName.value.trim() && !window.intgrtn.checkContainsOnlyLetters(lastName.value)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.lastName.errors.onlyLetters); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (lastName.value.trim() && lastName.value.length < options.fields.lastName.minLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.lastName.errors.minLength) .replace(/{{lastNameMinLength}}/g, options.fields.lastName.minLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (lastName.value.trim() && lastName.value.length > options.fields.lastName.maxLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.lastName.errors.maxLength) .replace(/{{lastNameMaxLength}}/g, options.fields.lastName.maxLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(lastName, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(lastName, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-last-name" + validateOptions.eventNameSuffix, value: lastName.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(lastName, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(lastName, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.email = function (email, validateOptions) { var valid = true; var messages = []; var form = email.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = email.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (email.hasAttribute("required")) { if (!email.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.email.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (!window.intgrtn.validate.email(email.value)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.email.errors.pattern); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(email, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(email, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-email" + validateOptions.eventNameSuffix, value: email.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(email, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(email, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.password = function (password, validateOptions) { var valid = true; var messages = []; var form = password.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = password.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (password.hasAttribute("required")) { if (!password.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.password.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (options.fields.password.minLength !== null) { if (password.value && password.value.length < options.fields.password.minLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.password.errors.minLength) .replace(/{{passwordMinLength}}/g, options.fields.password.minLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.elements.appendChild(inputHolder, error); } } } } if (options.fields.password.maxLength !== null) { if (password.value && password.value.length > options.fields.password.maxLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.password.errors.maxLength) .replace(/{{passwordMaxLength}}/g, options.fields.password.maxLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.elements.appendChild(inputHolder, error); } } } } if ( options.fields.password.minLength === null || password.value.length >= options.fields.password.minLength ) { if ( password.value && options.fields.password.pattern !== null && !password.value.match(options.fields.password.pattern) ) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.password.errors.pattern); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.elements.appendChild(inputHolder, error); } } } } if (window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.validateSignupFormVerboseMessages(form); } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(password, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(password, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-password" + validateOptions.eventNameSuffix, value: password.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(password, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(password, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.passwordConfirm = function (password, passwordConfirm, validateOptions) { var valid = true; var messages = []; var form = passwordConfirm.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = passwordConfirm.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (passwordConfirm.hasAttribute("required")) { if (!passwordConfirm.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.passwordConfirm.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (password.value != passwordConfirm.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.passwordConfirm.errors.match); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (window.intgrtn.elements.findFirst(".intgrtn-input-message-error-verbose", form)) { window.intgrtn.validateSignupFormVerboseMessages(form); } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(passwordConfirm, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(passwordConfirm, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-password-confirm" + validateOptions.eventNameSuffix, value: passwordConfirm.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(passwordConfirm, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(passwordConfirm, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.areaCode = function (areaCode, validateOptions) { var valid = true; var messages = []; var form = areaCode.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = areaCode.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (areaCode.hasAttribute("required")) { if (!areaCode.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.areaCode.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (areaCode.value && !areaCode.value.match(/^\d+$/)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.areaCode.errors.onlyDigits); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(areaCode, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(areaCode, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-area-code" + validateOptions.eventNameSuffix, value: areaCode.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(areaCode, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(areaCode, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.phone = function (phone, validateOptions) { var valid = true; var messages = []; var form = phone.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = phone.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (phone.hasAttribute("required")) { if (!phone.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.phone.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (phone.value && !phone.value.match(/^\d+$/)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.phone.errors.onlyDigits); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(phone, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(phone, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-phone" + validateOptions.eventNameSuffix, value: phone.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(phone, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(phone, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.checkboxAgreeTerms = function (checkboxAgreeTerms, validateOptions) { var valid = true; var messages = []; if (!checkboxAgreeTerms) { return { valid: valid, messages: messages, }; } var form = checkboxAgreeTerms.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = checkboxAgreeTerms.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (checkboxAgreeTerms.hasAttribute("required") && !checkboxAgreeTerms.checked) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.checkboxAgreeTerms.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(checkboxAgreeTerms, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(checkboxAgreeTerms, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-checkbox-agree-terms" + validateOptions.eventNameSuffix, value: checkboxAgreeTerms.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(checkboxAgreeTerms, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(checkboxAgreeTerms, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.captcha = function (captcha, validateOptions) { var valid = true; var messages = []; if (!captcha) { return { valid: valid, messages: messages, }; } var form = captcha.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = captcha.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (captcha.hasAttribute("required") && !captcha.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.captcha.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(captcha, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(captcha, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-captcha" + validateOptions.eventNameSuffix, value: captcha.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(captcha, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(captcha, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.signupForm.customField = function (custom, validateOptions) { var valid = true; var messages = []; var form = custom.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = custom.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (custom.hasAttribute("required")) { if (custom.value === null || custom.value.trim() === "") { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.customField.errors.required) .replace(/{{fieldName}}/g, custom.name); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(custom, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(custom, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-signup-invalid-custom-field" + validateOptions.eventNameSuffix, value: custom.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(custom, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(custom, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.optinForm.name = function (name, validateOptions) { var valid = true; var messages = []; if (!name) { return { valid: true, messages: messages, }; } var form = name.closest("form"); var inputHolder = name.closest(".intgrtn-input-holder"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var options = window.intgrtn.options.forms.optin; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (name.hasAttribute("required")) { if (!name.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.name.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (name.value.trim() && name.value.length < options.fields.name.minLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.name.errors.minLength) .replace(/{{nameMinLength}}/g, options.fields.name.minLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(name, "intgrtn-invalid"); window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(name, "intgrtn-valid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-optin-invalid-name" + validateOptions.eventNameSuffix, value: name.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(name, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(name, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.optinForm.firstName = function (firstName, validateOptions) { var valid = true; var messages = []; if (!firstName) { return { valid: true, messages: messages, }; } var form = firstName.closest("form"); var inputHolder = firstName.closest(".intgrtn-input-holder"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var options = window.intgrtn.options.forms.optin; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (firstName.hasAttribute("required")) { if (!firstName.value.trim()) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.firstName.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (firstName.value.trim() && !window.intgrtn.checkContainsOnlyLetters(firstName.value)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.firstName.errors.pattern); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (firstName.value.trim() && firstName.value.length < options.fields.firstName.minLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.firstName.errors.minLength) .replace(/{{firstNameMinLength}}/g, options.fields.firstName.minLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(firstName, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(firstName, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-optin-invalid-first-name" + validateOptions.eventNameSuffix, value: firstName.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(firstName, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(firstName, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.optinForm.lastName = function (lastName, validateOptions) { var valid = true; var messages = []; if (!lastName) { return { valid: true, messages: messages, }; } var form = lastName.closest("form"); var inputHolder = lastName.closest(".intgrtn-input-holder"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var options = window.intgrtn.options.forms.optin; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (lastName.hasAttribute("required")) { if (!lastName.value.trim()) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.lastName.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (lastName.value.trim() && !window.intgrtn.checkContainsOnlyLetters(lastName.value)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.lastName.errors.pattern); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (lastName.value.trim() && lastName.value.length < options.fields.lastName.minLength) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn .translate(options.fields.lastName.errors.minLength) .replace(/{{lastNameMinLength}}/g, options.fields.lastName.minLength); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(lastName, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(lastName, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-optin-invalid-last-name" + validateOptions.eventNameSuffix, value: lastName.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(lastName, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(lastName, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.optinForm.email = function (email, validateOptions) { var valid = true; var messages = []; var form = email.closest("form"); var inputHolder = email.closest(".intgrtn-input-holder"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var options = window.intgrtn.options.forms.optin; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (email.hasAttribute("required")) { if (!email.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.email.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (!window.intgrtn.validate.email(email.value)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.email.errors.pattern); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(email, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(email, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-optin-invalid-email" + validateOptions.eventNameSuffix, value: email.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(email, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(email, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.optinForm.areaCode = function (areaCode, validateOptions) { var valid = true; var messages = []; if (!areaCode) { return { valid: true, messages: messages, }; } var form = areaCode.closest("form"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = areaCode.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (areaCode.hasAttribute("required")) { if (!areaCode.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.areaCode.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (areaCode.value && !areaCode.value.match(/^\d+$/)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.areaCode.errors.onlyDigits); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(areaCode, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(areaCode, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-optin-invalid-area-code" + validateOptions.eventNameSuffix, value: areaCode.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(areaCode, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(areaCode, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; window.intgrtn.validate.optinForm.phone = function (phone, validateOptions) { var valid = true; var messages = []; if (!phone) { return { valid: true, messages: messages, }; } var form = phone.closest("form"); var inputHolder = phone.closest(".intgrtn-input-holder"); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); var inputHolder = phone.closest(".intgrtn-input-holder"); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: false, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.find(".intgrtn-input-message-error", inputHolder).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.find(".intgrtn-invalid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); }); window.intgrtn.elements.find(".intgrtn-valid", inputHolder).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); }); } if (phone.hasAttribute("required")) { if (!phone.value) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.phone.errors.required); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } if (phone.value && !phone.value.match(/^\d+$/)) { valid = false; var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate(options.fields.phone.errors.onlyDigits); messages.push(error.innerHTML); if (validateOptions.addErrorMessages == true) { window.intgrtn.elements.appendChild(inputHolder, error); } } } if (valid == false) { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.removeClass(phone, "intgrtn-valid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.addClass(phone, "intgrtn-invalid"); } if (validateOptions.fireEvents == true) { window.intgrtn.fireEvent({ name: "intgrtn-form-optin-invalid-phone" + validateOptions.eventNameSuffix, value: phone.value + " - " + messages.join(" | "), }); } } else { if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(inputHolder, "intgrtn-invalid"); window.intgrtn.elements.removeClass(phone, "intgrtn-invalid"); window.intgrtn.elements.addClass(inputHolder, "intgrtn-valid"); window.intgrtn.elements.addClass(phone, "intgrtn-valid"); } } return { valid: valid, messages: messages, }; }; /** * @deprecated * Do not use. Use: window.intgrtn.validate.signupForm.password() */ window.intgrtn.validateSignupFormPassword = function (password, passwordMinLength, passwordMaxLength) { if (typeof passwordMinLength == "undefined") { passwordMinLength = window.intgrtn.options.forms.signup.fields.password.minLength; } if (typeof passwordMaxLength == "undefined") { passwordMaxLength = window.intgrtn.options.forms.signup.fields.password.maxLength; } if (!password) { return false; } if (password.length < passwordMinLength) { return false; } if (password.length > passwordMaxLength) { return false; } return password.match(window.intgrtn.options.forms.signup.fields.password.pattern) !== null; }; window.intgrtn.validateSignupForm = function (form, validateOptions) { var valid = true; var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var password = window.intgrtn.elements.findFirst("[name='password']", form); var passwordConfirm = window.intgrtn.elements.findFirst("[name='passwordConfirm']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var captcha = window.intgrtn.elements.findFirst("[name='captcha']", form); var checkboxesAgreeTerms = window.intgrtn.elements.find(".intgrtn-input-checkbox-agree-terms", form); var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: true, eventNameSuffix: window.intgrtn.options.forms.signup.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addClasses == true) { window.intgrtn.validate.signupForm.clearValidation(form); } if (window.intgrtn.validate.signupForm.firstName(firstName, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.lastName(lastName, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.email(email, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.password(password, validateOptions).valid == false) { valid = false; } if ( passwordConfirm && window.intgrtn.validate.signupForm.passwordConfirm(password, passwordConfirm, validateOptions).valid == false ) { valid = false; } if (window.intgrtn.validate.signupForm.areaCode(areaCode, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.phone(phone, validateOptions).valid == false) { valid = false; } checkboxesAgreeTerms.forEach(function (checkbox) { if (window.intgrtn.validate.signupForm.checkboxAgreeTerms(checkbox, validateOptions).valid == false) { valid = false; } }); if (captcha && window.intgrtn.validate.signupForm.captcha(captcha, validateOptions).valid == false) { valid = false; } var userCustomFields = window.intgrtn.elements.find("[data-user-custom-field-id]", form); userCustomFields.forEach(function (custom) { if (window.intgrtn.validate.signupForm.customField(custom, validateOptions).valid == false) { valid = false; } }); if (validateOptions.addClasses == true) { if (valid === false) { window.intgrtn.elements.addClass(form, "intgrtn-form-invalid"); } else { window.intgrtn.elements.addClass(form, "intgrtn-form-valid"); } } return valid; }; window.intgrtn.validateSignupFormVerboseMessages = function (form) { var result = true; var password = window.intgrtn.elements.findFirst("[name='password']", form); var passwordConfirm = window.intgrtn.elements.findFirst("[name='passwordConfirm']", form); var options = window.intgrtn.options.forms.signup; if (form.intgrtn) { options = form.intgrtn.options; } window.intgrtn.elements .find(".intgrtn-input-message-error-verbose .intgrtn-single-message", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-untouched"); window.intgrtn.elements.removeClass(element, "intgrtn-invalid"); window.intgrtn.elements.addClass(element, "intgrtn-valid"); }); if ( password.value.length < options.fields.password.minLength || password.value.length > options.fields.password.maxLength ) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='password6To12Chars']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } if ( !password.value.match(options.fields.password.patternLowercaseLetter) && options.fields.password.patternLowercaseLetter !== false ) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='passwordRegExp1Lowercase']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } if ( !password.value.match(options.fields.password.patternUppercaseLetter) && options.fields.password.patternUppercaseLetter !== false ) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='passwordRegExp1Uppercase']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } if ( !password.value.match(options.fields.password.patternNoSpecialChars) && options.fields.password.patternNoSpecialChars !== false ) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='passwordRegExpNoSpecialChars']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } if ( !password.value.match(options.fields.password.patternNumber) && options.fields.password.patternNumber !== false ) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='passwordRegExpNumber']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } if ( !password.value.match(options.fields.password.patternLetter) && options.fields.password.patternLetter !== false ) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='passwordRegExpLetter']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } if ((passwordConfirm && password.value != passwordConfirm.value) || !password.value) { result = false; window.intgrtn.elements .find("[data-intgrtn-message-id='passwordConfirmMatch']", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-valid"); window.intgrtn.elements.addClass(element, "intgrtn-invalid"); }); } return result; }; window.intgrtn.validateOptinForm = function (form, validateOptions) { var valid = true; var name = window.intgrtn.elements.findFirst("[name='name']", form); var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var defaultValidateOptions = { addClasses: true, addErrorMessages: true, fireEvents: true, eventNameSuffix: window.intgrtn.options.forms.optin.validateEvents.eventNameSuffix, }; if (typeof validateOptions == "undefined") { validateOptions = window.intgrtn.merge({}, defaultValidateOptions); } validateOptions = window.intgrtn.merge(defaultValidateOptions, validateOptions); if (validateOptions.addClasses == true) { window.intgrtn.elements.removeClass(form, "intgrtn-form-valid"); window.intgrtn.elements.removeClass(form, "intgrtn-form-invalid"); /* Remove validation classes from inputs */ window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeClass(element.parentElement, "intgrtn-invalid"); }); /* Remove validation messages from inputs */ window.intgrtn.elements.find(".intgrtn-input-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); } if (window.intgrtn.validate.optinForm.name(name, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.optinForm.firstName(firstName, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.optinForm.lastName(lastName, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.optinForm.email(email, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.optinForm.areaCode(areaCode, validateOptions).valid == false) { valid = false; } if (window.intgrtn.validate.optinForm.phone(phone, validateOptions).valid == false) { valid = false; } if (validateOptions.addClasses == true) { if (valid === false) { window.intgrtn.elements.addClass(form, "intgrtn-form-invalid"); } else { window.intgrtn.elements.addClass(form, "intgrtn-form-valid"); } } return valid; }; window.intgrtn.validateContactUsForm = function (form) { var valid = true; var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var subject = window.intgrtn.elements.findFirst("[name='subject']", form); var message = window.intgrtn.elements.findFirst("[name='message']", form); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); window.intgrtn.elements.removeClass(form, "intgrtn-form-valid"); window.intgrtn.elements.removeClass(form, "intgrtn-form-invalid"); /* Remove validation classes from inputs */ window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeClass(element.parentElement, "intgrtn-invalid"); }); /* Remove validation messages from inputs */ window.intgrtn.elements.find(".intgrtn-input-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (firstName && firstName.hasAttribute("required") && !firstName.value.trim()) { valid = false; window.intgrtn.elements.addClass(firstName.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("First name is required."); window.intgrtn.elements.appendChild(firstName.parentElement, error); } if (firstName && firstName.value.trim() && !window.intgrtn.checkContainsOnlyLetters(firstName.value)) { valid = false; window.intgrtn.elements.addClass(firstName.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Only letters are allowed."); window.intgrtn.elements.appendChild(firstName.parentElement, error); } if (lastName && lastName.hasAttribute("required") && !lastName.value.trim()) { valid = false; window.intgrtn.elements.addClass(lastName.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Last name is required."); window.intgrtn.elements.appendChild(lastName.parentElement, error); } if (lastName && lastName.value.trim() && !window.intgrtn.checkContainsOnlyLetters(lastName.value)) { valid = false; window.intgrtn.elements.addClass(lastName.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Only letters are allowed."); window.intgrtn.elements.appendChild(lastName.parentElement, error); } if (email && email.hasAttribute("required") && !email.value) { valid = false; window.intgrtn.elements.addClass(email.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Email is required."); window.intgrtn.elements.appendChild(email.parentElement, error); } if (email && email.value && !window.intgrtn.validate.email(email.value)) { valid = false; window.intgrtn.elements.addClass(email.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Email is invalid."); window.intgrtn.elements.appendChild(email.parentElement, error); } if (subject && subject.hasAttribute("required") && !subject.value) { valid = false; window.intgrtn.elements.addClass(subject.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Subject is required."); window.intgrtn.elements.appendChild(subject.parentElement, error); } if (message && subject.hasAttribute("required") && !message.value) { valid = false; window.intgrtn.elements.addClass(message.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Message is required."); window.intgrtn.elements.appendChild(message.parentElement.parentElement, error); } if (valid === false) { window.intgrtn.elements.addClass(form, "intgrtn-form-invalid"); } else { window.intgrtn.elements.addClass(form, "intgrtn-form-valid"); } return valid; }; window.intgrtn.validateContactRequestMessageForm = function (form) { var $valid = true; var message = window.intgrtn.elements.findFirst("[name='message']", form); var inputErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error", }); window.intgrtn.elements.removeClass(form, "intgrtn-form-valid"); window.intgrtn.elements.removeClass(form, "intgrtn-form-invalid"); /* Remove validation classes from inputs */ window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeClass(element.parentElement, "intgrtn-invalid"); }); /* Remove validation messages from inputs */ window.intgrtn.elements.find(".intgrtn-input-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (message && message.hasAttribute("required") && !message.value) { $valid = false; window.intgrtn.elements.addClass(message.parentElement, "intgrtn-invalid"); var error = inputErrorHolder.cloneNode(); error.innerHTML = window.intgrtn.translate("Message is required."); window.intgrtn.elements.appendChild(message.parentElement, error); } return $valid; }; // window.intgrtn.validateContactRequestMessageForm window.intgrtn.checkContainsOnlyLetters = function (checkedText) { /** * var lettersPatt = /^[a-zA-Z\s]+$/i; // only english letters * var lettersPatt = XRegExp('^[\\p{L}\s]+$'); // needs to include xregex.js library to work */ // transformed xregexp to pure regexp below: var lettersPatt = /^[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\s]+$/i; var result = lettersPatt.test(checkedText); return result; }; window.intgrtn.generatePassword = function (form) { var newPassword = null; var options = window.intgrtn.options.forms.signup; if (form && form.intgrtn) { options = form.intgrtn.options; } var tryCount = 1; do { newPassword = window.intgrtn.generateRandomString(options.fields.password.maxLength); tryCount++; } while (!newPassword.match(options.fields.password.pattern) && tryCount <= 100); if (tryCount == 100) { window.intgrtn.sendErrorMessage("Can't generate valid password."); } return newPassword; }; window.intgrtn.generateRandomString = function (length) { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < length; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)); } return text; }; /* * element: areaCode input dom element * phoneElement: phone input dom element * */ window.intgrtn.generateAreaFlagsDropdown = function (element, phoneElement) { if (!element.intgrtn) { element.intgrtn = true; window.intgrtn.elements.addClass(element, "intgrtn-input-area-code-flags"); window.intgrtn.getProjectDetails(function (responseProjectDetails) { var countries = responseProjectDetails.data.countries; for (var i = 0; i < countries.length; i++) { countries[i].countryCode = countries[i].countryCode.toLowerCase(); } var selectDropDownItemByCountryCode = function (countryCode) { var country = null; countries.forEach(function (item) { if (item.countryCode == countryCode) { country = item; } }); if (!country) { return false; } window.intgrtn.elements .find(".intgrtn-flag-single-item", areasDropDown) .forEach(function (element) { if (element.getAttribute("data-country-code") == country.countryCode) { window.intgrtn.elements.addClass(element, "intgrtn-selected"); } else { window.intgrtn.elements.removeClass(element, "intgrtn-selected"); } }); window.intgrtn.elements.addClass(mainHolder, "intgrtn-country-code-" + country.countryCode); window.intgrtn.elements.setAttribute( selectedAreaElementFlag, "class", "intgrtn-flag-image intgrtn-flag-" + country.countryCode ); window.intgrtn.elements.setHtml(selectedAreaElementPhoneCode, " +" + country.phoneCode); window.intgrtn.elements.setAttribute(selectedAreaElement, "data-intgrtn-tooltip", country.name); if (phoneElement) { window.intgrtn.elements.setAttribute( phoneElement, "placeholder", country.phoneExample ? country.phoneExample : "Phone number" ); } window.intgrtn.elements.removeClass(areasDropDown, "intgrtn-opened"); window.intgrtn.elements.removeClass(selectedAreaElement, "intgrtn-opened"); }; var selectDropDownItemByPhoneCode = function (phoneCode) { var selectedCountry = null; var selectedCountries = countries.filter(function (item) { return item.phoneCode == phoneCode; }); if (selectedCountries.length == 1) { selectedCountry = selectedCountries[0]; } else if (selectedCountries.length > 1) { if ( element.hasAttribute("data-country-code") && element.getAttribute("data-country-code").length > 0 ) { for (var i = 0; i < selectedCountries.length; i++) { if ( selectedCountries[i].countryCode == element.getAttribute("data-country-code").toLowerCase() ) { selectedCountry = selectedCountries[i]; } } } else if (responseProjectDetails.data.client.location.countryIsoCode) { for (var i = 0; i < selectedCountries.length; i++) { if ( selectedCountries[i].countryCode == responseProjectDetails.data.client.location.countryIsoCode.toLowerCase() ) { selectedCountry = selectedCountries[i]; } } } } var selectedCountryCode = selectedCountry ? selectedCountry.countryCode : null; selectDropDownItemByCountryCode(selectedCountryCode); return selectedCountryCode; }; var selectedCountry = { countryCode: "", phoneCode: "", }; var mainHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input intgrtn-area-flags-holder", }); var selectedAreaElement = window.intgrtn.elements.create("div", "", { class: "intgrtn-selected-area", "data-intgrtn-tooltip": "", }); var selectedAreaElementFlag = window.intgrtn.elements.create("div", "", { class: "intgrtn-flag-image intgrtn-flag-" + selectedCountry.countryCode, }); var selectedAreaElementPhoneCode = window.intgrtn.elements.create( "div", " +" + selectedCountry.phoneCode, { class: "intgrtn-phone-code", } ); window.intgrtn.elements.appendChild(selectedAreaElement, selectedAreaElementFlag); window.intgrtn.elements.appendChild(selectedAreaElement, selectedAreaElementPhoneCode); var areasDropDown = window.intgrtn.elements.create("div", "", { class: "intgrtn-areas-dropdown", }); var lastValue = null; for (var i = 0; i < countries.length; i++) { var dropDownItem = window.intgrtn.elements.create("div", "", { class: "intgrtn-flag-single-item " + (countries[i].countryCode == selectedCountry.countryCode ? " intgrtn-selected" : ""), "data-country-name": countries[i].name, "data-country-code": countries[i].countryCode, "data-phone-code": countries[i].phoneCode, }); var flagImage = window.intgrtn.elements.create("div", "", { class: "intgrtn-flag-image intgrtn-flag-" + countries[i].countryCode, }); var countryName = window.intgrtn.elements.create("div", countries[i].name, { class: "intgrtn-area-name", }); var countryCode = window.intgrtn.elements.create("div", " +" + countries[i].phoneCode, { class: "intgrtn-area-code", }); window.intgrtn.elements.appendChild(dropDownItem, flagImage); window.intgrtn.elements.appendChild(dropDownItem, countryName); window.intgrtn.elements.appendChild(dropDownItem, countryCode); window.intgrtn.elements.appendChild(areasDropDown, dropDownItem); if (countries[i].countryCode == selectedCountry.countryCode) { window.intgrtn.elements.setAttribute( selectedAreaElement, "data-intgrtn-tooltip", countries[i].name ); if (phoneElement) { window.intgrtn.elements.setAttribute( phoneElement, "placeholder", countries[i].phoneExample ); } } window.intgrtn.elements.on(dropDownItem, "click", function (e) { var triggeredPhoneCode = e.currentTarget.getAttribute("data-phone-code"); var triggeredCountryCode = e.currentTarget.getAttribute("data-country-code"); selectDropDownItemByCountryCode(triggeredCountryCode); element.value = triggeredPhoneCode; window.intgrtn.elements.setAttribute(element, "data-country-code", triggeredCountryCode); lastValue = triggeredPhoneCode; window.intgrtn.elements.trigger(element, "input"); window.intgrtn.elements.trigger(element, "change"); e.stopPropagation(); }); } window.intgrtn.elements.appendChild(mainHolder, selectedAreaElement); window.intgrtn.elements.appendChild(mainHolder, areasDropDown); window.intgrtn.elements.on(selectedAreaElement, "click", function (e) { if (!window.intgrtn.elements.hasClass(areasDropDown, "intgrtn-opened")) { window.intgrtn.elements.addClass(areasDropDown, "intgrtn-opened"); window.intgrtn.elements.addClass(selectedAreaElement, "intgrtn-opened"); } else { window.intgrtn.elements.removeClass(areasDropDown, "intgrtn-opened"); window.intgrtn.elements.removeClass(selectedAreaElement, "intgrtn-opened"); } e.stopPropagation(); }); setInterval(function () { if (lastValue != element.value) { selectDropDownItemByPhoneCode(element.value); lastValue = element.value; } }, 50); element.parentNode.insertBefore(mainHolder, element); }); } if (!window.intgrtn.attachedEventDocumentClickByAreaFlags) { window.intgrtn.attachedEventDocumentClickByAreaFlags = true; window.intgrtn.elements.on(document, "click", function (e) { window.intgrtn.elements.removeClass(".intgrtn-areas-dropdown", "intgrtn-opened"); window.intgrtn.elements.removeClass(".intgrtn-selected-area", "intgrtn-opened"); }); } }; window.intgrtn.generateSignupForm = function (options, element) { if (typeof options === "undefined") { options = {}; } var currentStep = 1; var intervalForSmsVerification = null; options = window.intgrtn.merge(window.intgrtn.options.forms.signup, options); var form = window.intgrtn.elements.create("form", "", { name: "intgrtnFormSignup", novalidate: "", class: "intgrtn-form-signup", }); form.intgrtn = { options: options, goToStep: function (step) { /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); var valid = true; window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step.intgrtn-active", form), "intgrtn-submitted" ); var changeStep = function () { if (valid == false) { return false; } window.intgrtn.validate.signupForm.clearValidation(form); window.intgrtn.elements.find(".intgrtn-step", form).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-active"); window.intgrtn.elements.removeClass(element, "intgrtn-submitted"); }); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step-" + step, form), "intgrtn-active" ); if (step > 1) { window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step-" + (step - 1), form), "intgrtn-completed" ); } currentStep = step; window.intgrtn.events.trigger("form.signup.step.changed", { form: form, step: step, }); }; if (step == 1) { changeStep(); } else if (step == 2) { valid = window.intgrtn.validateSignupForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }); if (valid == true) { window.intgrtn.elements.addClass(loaderHolder, "show"); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); window.intgrtn.elements.setAttribute(resentCodeButton, "disabled", "disabled"); if (intervalForSmsVerification == null) { window.intgrtn.getVerificationCode( { phone: phone.value, areaCode: areaCode.value, }, function (response) { var counter = 30; intervalForSmsVerification = setInterval(() => { if (counter > 0) { seconds.innerHTML = "(" + counter + " sec.)"; counter--; return; } seconds.innerHTML = "(" + counter + " sec.)"; window.intgrtn.elements.removeAttribute(resentCodeButton, "disabled"); clearInterval(intervalForSmsVerification); intervalForSmsVerification = null; }, 1000); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.message); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.message) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.message); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "Can't send SMS. An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); } else { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); } } } }, }; var stepsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-steps-holder", }); var step1 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-1 intgrtn-active", }); var step2 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-2", }); window.intgrtn.elements.appendChild(stepsHolder, step1); window.intgrtn.elements.appendChild(stepsHolder, step2); var firstNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-first-name", }); var firstNameLabel = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.firstName), { class: "intgrtn-label", for: "firstName", } ); var firstNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "firstName", placeholder: window.intgrtn.translate(options.placeholders.firstName), value: window.intgrtn.lookup("firstName", true, ""), }); if (options.fields.firstName.required) { firstNameInput.setAttribute("required", ""); } if (options.fields.firstName.showLabel == true) { window.intgrtn.elements.appendChild(firstNameHolder, firstNameLabel); } window.intgrtn.elements.appendChild(firstNameHolder, firstNameInput); var lastNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-last-name", }); var lastNameLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.lastName), { class: "intgrtn-label", for: "lastName", }); var lastNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "lastName", placeholder: window.intgrtn.translate(options.placeholders.lastName), value: window.intgrtn.lookup("lastName", true, ""), }); if (options.fields.lastName.required) { lastNameInput.setAttribute("required", ""); } if (options.fields.lastName.showLabel == true) { window.intgrtn.elements.appendChild(lastNameHolder, lastNameLabel); } window.intgrtn.elements.appendChild(lastNameHolder, lastNameInput); var emailHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-email", }); var emailLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.email), { class: "intgrtn-label", for: "email", }); var emailInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "email", name: "email", placeholder: window.intgrtn.translate(options.placeholders.email), value: window.intgrtn.lookup("email", true, ""), }); if (options.fields.email.required) { emailInput.setAttribute("required", ""); } if (options.fields.email.showLabel == true) { window.intgrtn.elements.appendChild(emailHolder, emailLabel); } window.intgrtn.elements.appendChild(emailHolder, emailInput); var passwordHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-password", }); var passwordLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.password), { class: "intgrtn-label", for: "password", }); var passwordInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var passwordInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", "data-intgrtn-tooltip": window.intgrtn.translate(options.fields.password.tooltip), name: "password", placeholder: window.intgrtn.translate(options.placeholders.password), }); if (options.fields.password.required) { passwordInput.setAttribute("required", ""); } if (options.fields.password.showLabel == true) { window.intgrtn.elements.appendChild(passwordHolder, passwordLabel); } window.intgrtn.elements.appendChild(passwordInputGroup, passwordInput); var passwordEyeIcon = window.intgrtn.elements.create("div", "", { class: "intgrtn-password-eye-icon", }); window.intgrtn.elements.appendChild(passwordInputGroup, passwordEyeIcon); var btnGeneratePasswordHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-generate-password-holder", }); var btnGeneratePassword = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.generatePassword.text), { class: "intgrtn-btn-generate-password", type: "button", } ); if (options.buttons.generatePassword.show == false) { passwordInput.setAttribute("type", "password"); passwordInput.setAttribute("autocomplete", "new-password"); window.intgrtn.elements.appendChild(passwordHolder, passwordInputGroup); } else { passwordInput.setAttribute("type", "text"); passwordInput.value = window.intgrtn.generatePassword(form); window.intgrtn.elements.addClass(passwordHolder, "has-btn-generate-password"); window.intgrtn.elements.addClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.appendChild(btnGeneratePasswordHolder, passwordInputGroup); window.intgrtn.elements.appendChild(btnGeneratePasswordHolder, btnGeneratePassword); window.intgrtn.elements.appendChild(passwordHolder, btnGeneratePasswordHolder); } var phoneHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-phone", }); var phoneLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.phone), { class: "intgrtn-label", for: "phone", }); var phoneInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var phoneInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-phone", type: "text", name: "phone", size: "1", placeholder: window.intgrtn.translate(options.placeholders.phone), value: window.intgrtn.lookup("phone", true, ""), }); if (options.fields.phone.required) { phoneInput.setAttribute("required", ""); } var areaCodeInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-area-code", type: "text", name: "areaCode", placeholder: window.intgrtn.translate(options.placeholders.areaCode), value: window.intgrtn.lookup("areaCode", true, ""), "data-country-code": window.intgrtn.lookup("areaCountryCode", true, ""), }); if (options.fields.areaCode.required) { areaCodeInput.setAttribute("required", ""); } if (options.fields.phone.showLabel == true) { window.intgrtn.elements.appendChild(phoneHolder, phoneLabel); } window.intgrtn.elements.appendChild(phoneInputGroup, areaCodeInput); window.intgrtn.elements.appendChild(phoneInputGroup, phoneInput); window.intgrtn.elements.appendChild(phoneHolder, phoneInputGroup); window.intgrtn.generateAreaFlagsDropdown(areaCodeInput, phoneInput); var captchaHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-captcha", }); var captchaLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.captcha), { class: "intgrtn-label", for: "captcha", }); var captchaInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var captchaInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "captcha", placeholder: window.intgrtn.translate(options.placeholders.captcha), value: "", }); var captchaInputHash = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "hidden", name: "captchaHash", value: "", }); var captchaImg = window.intgrtn.elements.create("img", "", { class: "intgrtn-image intgrtn-image-captcha", }); var captchaLoader = window.intgrtn.elements.create("div", "", { class: "intgrtn-icon-loader", }); if (options.fields.captcha.required) { captchaInput.setAttribute("required", ""); } if (options.fields.captcha.showLabel == true) { window.intgrtn.elements.appendChild(captchaHolder, captchaLabel); } window.intgrtn.elements.appendChild(captchaHolder, captchaInputGroup); window.intgrtn.elements.appendChild(captchaInputGroup, captchaLoader); window.intgrtn.elements.appendChild(captchaInputGroup, captchaInput); window.intgrtn.elements.appendChild(captchaHolder, captchaInputHash); var checkboxAgreeTermsHolders = []; switch (typeof options.labels.checkboxAgreeTerms) { case "string": var checkboxAgreeTermsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-checkbox-agree-terms", }); var checkboxAgreeTermsLabel = window.intgrtn.elements.create("label", "", { class: "intgrtn-checkbox-label-agree-terms", }); var checkboxAgreeTerms = window.intgrtn.elements.create("input", "", { class: "intgrtn-checkbox intgrtn-input-checkbox-agree-terms", type: "checkbox", name: "checkboxAgreeTerms", }); if (options.fields.checkboxAgreeTerms.required == true) { window.intgrtn.elements.setAttribute(checkboxAgreeTerms, "required", ""); } window.intgrtn.elements.appendChild(checkboxAgreeTermsLabel, checkboxAgreeTerms); window.intgrtn.elements.appendChild( checkboxAgreeTermsLabel, window.intgrtn.elements.create("span", options.labels.checkboxAgreeTerms, { class: "intgrtn-checkbox-label-agree-terms-text", }) ); window.intgrtn.elements.appendChild(checkboxAgreeTermsHolder, checkboxAgreeTermsLabel); checkboxAgreeTermsHolders.push(checkboxAgreeTermsHolder); break; case "object": options.labels.checkboxAgreeTerms.forEach(function (element, index) { var checkboxAgreeTermsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-checkbox-agree-terms", }); var checkboxAgreeTermsLabel = window.intgrtn.elements.create("label", "", { class: "intgrtn-checkbox-label-agree-terms", }); var checkboxAgreeTerms = window.intgrtn.elements.create("input", "", { class: "intgrtn-checkbox intgrtn-input-checkbox-agree-terms", type: "checkbox", name: "checkboxAgreeTerms" + index, }); if (element.required) { window.intgrtn.elements.setAttribute(checkboxAgreeTerms, "required", ""); } window.intgrtn.elements.appendChild(checkboxAgreeTermsLabel, checkboxAgreeTerms); window.intgrtn.elements.appendChild( checkboxAgreeTermsLabel, window.intgrtn.elements.create("span", element.text, { class: "intgrtn-checkbox-label-agree-terms-text", }) ); window.intgrtn.elements.appendChild(checkboxAgreeTermsHolder, checkboxAgreeTermsLabel); checkboxAgreeTermsHolders.push(checkboxAgreeTermsHolder); }); break; } var btnSubmitHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var btnSubmit = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.submit.text), { class: "intgrtn-btn-submit", type: "submit", } ); window.intgrtn.elements.appendChild(btnSubmitHolder, btnSubmit); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); var loaderTextHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-text-holder", }); var loaderText = window.intgrtn.elements.create("div", window.intgrtn.translate("Loading..."), { class: "intgrtn-loader-text", }); var formMessageSuccessHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-success", }); var formMessageErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-error", }); window.intgrtn.elements.appendChild(loaderHolder, loaderTextHolder); window.intgrtn.elements.appendChild(loaderTextHolder, loader); window.intgrtn.elements.appendChild(loaderTextHolder, loaderText); // SMS Verification var smsVerificationEnabledMessage = window.intgrtn.elements.create( "div", options.smsVerification.text.IsEnabledMessage, { class: "intgrtn-sms-verification-text", } ); var btnGoToSmsVerificationHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToSmsVerification = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep2.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToSmsVerificationHolder, btnGoToSmsVerification); var smsVerificationTitle = window.intgrtn.elements.create("h2", options.headings.smsVerification.title, { class: "intgrtn-sms-verification-title", }); var codeInputMessage = window.intgrtn.elements.create("div", options.smsVerification.text.codeInputMessage, { class: "intgrtn-sms-verification-code-label", }); var smsVerificationCodeHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-sms-code", }); var smsVerificationCode = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-sms-code", type: "text", name: "smsVerificationCode", placeholder: window.intgrtn.translate(options.placeholders.smsVerificationCode), value: window.intgrtn.lookup("smsVerificationCode", true, ""), }); if (options.fields.smsVerificationCode.required) { smsVerificationCode.setAttribute("required", ""); } window.intgrtn.elements.appendChild(smsVerificationCodeHolder, codeInputMessage); window.intgrtn.elements.appendChild(smsVerificationCodeHolder, smsVerificationCode); var smsVerificationCountdownHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-sms-verification-countdown-holder", }); var countdownText = window.intgrtn.elements.create("span", options.smsVerification.text.timerMessage, { class: "intgrtn-label", }); var resentCodeButton = window.intgrtn.elements.create( "button", options.buttons.smsVerification.resentCode.text, { class: "intgrtn-sms-verification-resend-button", type: "button", } ); resentCodeButton.setAttribute("disabled", true); var seconds = window.intgrtn.elements.create("span", "", { class: "intgrtn-label intgrtn-countdown-seconds", }); window.intgrtn.elements.appendChild(smsVerificationCountdownHolder, countdownText); window.intgrtn.elements.appendChild(smsVerificationCountdownHolder, resentCodeButton); window.intgrtn.elements.appendChild(smsVerificationCountdownHolder, seconds); window.intgrtn.elements.appendChild(smsVerificationCodeHolder, smsVerificationCountdownHolder); var smsVerificationCodeSectionButtonsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var smsVerificationBackButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.smsVerification.back.text), { class: "intgrtn-btn-submit intgrtn-btn-back", type: "button", } ); var smsVerificationVerifyButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.smsVerification.verify.text), { class: "intgrtn-btn-submit intgrtn-btn-verify-code", type: "submit", } ); window.intgrtn.elements.appendChild(smsVerificationCodeSectionButtonsHolder, smsVerificationBackButton); window.intgrtn.elements.appendChild(smsVerificationCodeSectionButtonsHolder, smsVerificationVerifyButton); // End of SMS Verification window.intgrtn.elements.appendChild(step2, smsVerificationTitle); window.intgrtn.elements.appendChild(step2, smsVerificationCodeHolder); window.intgrtn.elements.appendChild(step2, smsVerificationCodeSectionButtonsHolder); var checkboxOuterHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-checkbox-outer-holder", }); /** * Custom Fields */ window.intgrtn.getProjectDetails(function (response) { var fieldsHolder = form; if (options.fields.smsVerificationCode.show == true) { fieldsHolder = step1; } window.intgrtn.elements.appendChild(fieldsHolder, firstNameHolder); window.intgrtn.elements.appendChild(fieldsHolder, lastNameHolder); window.intgrtn.elements.appendChild(fieldsHolder, emailHolder); window.intgrtn.elements.appendChild(fieldsHolder, passwordHolder); window.intgrtn.elements.appendChild(fieldsHolder, phoneHolder); if (options.fields.checkboxAgreeTerms.show == true) { window.intgrtn.elements.appendChild(fieldsHolder, checkboxOuterHolder); checkboxAgreeTermsHolders.forEach(function (item) { window.intgrtn.elements.appendChild(checkboxOuterHolder, item); }); } if (response.data.customFields) { window.intgrtn .generateCustomFields(response.data.customFields, { show: { labels: options.fields.labels.show, }, }) .forEach(function (item) { window.intgrtn.elements.appendChild(fieldsHolder, item); }); } var captchaAttempts = 3; if (response.data.project.details.captchaAttempts) { captchaAttempts = response.data.project.details.captchaAttempts; } if (options.fields.captcha.show == true && response.data.captcha.count >= captchaAttempts) { window.intgrtn.elements.appendChild(fieldsHolder, captchaHolder); window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } if (options.fields.smsVerificationCode.show == true) { window.intgrtn.elements.appendAfter(smsVerificationEnabledMessage, phoneHolder); window.intgrtn.elements.appendChild(fieldsHolder, btnGoToSmsVerificationHolder); window.intgrtn.elements.appendChild(form, stepsHolder); } else { window.intgrtn.elements.appendChild(fieldsHolder, btnSubmitHolder); } }); /** * Custom Fields end */ window.intgrtn.elements.appendChild(form, loaderHolder); if (options.fields.password.verboseErrors.enabled == true) { window.intgrtn.elements.setAttribute(passwordInput, "data-intgrtn-tooltip", ""); var inputErrorHolderVerbose = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error-verbose", }); for (var i = 0; i < options.fields.password.verboseErrors.messages.length; i++) { var currentMessage = options.fields.password.verboseErrors.messages[i]; if ( currentMessage.id == "passwordRegExp1Lowercase" && options.fields.password.patternLowercaseLetter === false ) { continue; } else if ( currentMessage.id == "passwordRegExp1Uppercase" && options.fields.password.patternUppercaseLetter === false ) { continue; } else if ( currentMessage.id == "passwordRegExpNoSpecialChars" && options.fields.password.patternNoSpecialChars === false ) { continue; } else if ( currentMessage.id == "passwordRegExpNumber" && options.fields.password.patternNumber === false ) { continue; } else if ( currentMessage.id == "passwordRegExpLetter" && options.fields.password.patternLetter === false ) { continue; } else if (currentMessage.id == "passwordConfirmMatch") { continue; } var currentClasses = "intgrtn-single-message intgrtn-untouched"; var currentMessageText = window.intgrtn .translate(currentMessage.text) .replace(/{{passwordMinLength}}/g, options.fields.password.minLength) .replace(/{{passwordMaxLength}}/g, options.fields.password.maxLength); var currentEntry = window.intgrtn.elements.create("div", currentMessageText, { class: currentClasses, "data-intgrtn-message-id": currentMessage.id, }); window.intgrtn.elements.appendChild(inputErrorHolderVerbose, currentEntry); } window.intgrtn.elements.appendChild(passwordHolder, inputErrorHolderVerbose); window.intgrtn.elements.on(passwordInput, "input", function (e) { window.intgrtn.validateSignupFormVerboseMessages(form); }); } if (!window.intgrtn.lookup("areaCode", true)) { window.intgrtn.getProjectDetails(function (response) { if (response.data.client.location.areaCode) { areaCodeInput.value = response.data.client.location.areaCode; } }); } window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "keyup blur", function (e) { switch (this.getAttribute("name")) { case "firstName": window.intgrtn.validate.signupForm.firstName(element); break; case "lastName": window.intgrtn.validate.signupForm.lastName(element); break; case "email": window.intgrtn.validate.signupForm.email(element); break; case "phone": window.intgrtn.validate.signupForm.phone(element); break; case "password": window.intgrtn.validate.signupForm.password(element); break; } }); }); /** * Remove non numeric symbols from phone input */ window.intgrtn.elements.on(phoneInput, "input", function (e) { setTimeout(function () { var filteredValue = phoneInput.value.replace(/\D/g, ""); if (filteredValue !== phoneInput.value) { phoneInput.value = filteredValue; window.intgrtn.elements.trigger(phoneInput, "input"); window.intgrtn.elements.trigger(phoneInput, "change"); } }, 100); }); window.intgrtn.elements.on(passwordEyeIcon, "click", function (e) { if (window.intgrtn.elements.hasClass(passwordEyeIcon, "intgrtn-visible") == true) { window.intgrtn.elements.removeClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordInput, "type", "password"); } else { window.intgrtn.elements.addClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordInput, "type", "text"); } }); window.intgrtn.elements.on(btnGeneratePassword, "click", function (e) { passwordInput.value = window.intgrtn.generatePassword(form); window.intgrtn.elements.trigger(passwordInput, "input"); window.intgrtn.elements.trigger(passwordInput, "change"); }); window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "input", function (e) { if (window.intgrtn.elements.hasClass(form, "intgrtn-form-submitted")) { if (element && element.getAttribute("data-intgrtn-validate-events-name-suffix")) { options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } window.intgrtn.validateSignupForm(form, { fireEvents: false, eventNameSuffix: options.validateEvents.eventNameSuffix, }); } }); }); window.intgrtn.elements.on(btnGoToSmsVerification, "click", function (e) { form.intgrtn.goToStep(2); }); window.intgrtn.elements.on(smsVerificationBackButton, "click", function (e) { form.intgrtn.goToStep(1); }); window.intgrtn.elements.on(resentCodeButton, "click", function (e) { if (intervalForSmsVerification != null) { return; } /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.getVerificationCode( { phone: window.intgrtn.elements.findFirst("[name='phone']", form).value, areaCode: window.intgrtn.elements.findFirst("[name='areaCode']", form).value, }, function (response) { window.intgrtn.elements.removeClass(loaderHolder, "show"); var counter = 30; intervalForSmsVerification = setInterval(() => { if (counter > 0) { seconds.innerHTML = "(" + counter + " sec.)"; counter--; return; } seconds.innerHTML = "(" + counter + " sec.)"; window.intgrtn.elements.removeAttribute(resentCodeButton, "disabled"); clearInterval(intervalForSmsVerification); intervalForSmsVerification = null; }, 1000); window.intgrtn.elements.setAttribute(resentCodeButton, "disabled", "disabled"); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.message); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.message) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.message); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "Can't send SMS. An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); }); window.intgrtn.elements.on(form, "submit", function (e) { if (options.fields.smsVerificationCode.show == true) { e.preventDefault(); if (currentStep < 2) { form.intgrtn.goToStep(currentStep + 1); return false; } } var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var password = window.intgrtn.elements.findFirst("[name='password']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var captcha = window.intgrtn.elements.findFirst("[name='captcha']", form); var captchaHash = window.intgrtn.elements.findFirst("[name='captchaHash']", form); var smsVerificationCode = window.intgrtn.elements.findFirst("[name='smsVerificationCode']", form); var customFieldsInputs = window.intgrtn.elements.find("[data-user-custom-field-id]", form); window.intgrtn.elements.addClass(form, "intgrtn-form-submitted"); window.intgrtn.elements.removeClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-success"); /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (element && element.getAttribute("data-intgrtn-validate-events-name-suffix")) { options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } var platforms = []; var excludePlatforms = []; if (window.intgrtn.lookup("platforms", true)) { platforms = window.intgrtn.lookup("platforms", true).split(","); } if (window.intgrtn.lookup("excludePlatforms", true)) { excludePlatforms = window.intgrtn.lookup("excludePlatforms", true).split(","); } if (element) { if (element.getAttribute("data-intgrtn-platforms")) { platforms = element.getAttribute("data-intgrtn-platforms").split(","); } if (element.getAttribute("data-intgrtn-exclude-platforms")) { excludePlatforms = element.getAttribute("data-intgrtn-exclude-platforms").split(","); } if (element.getAttribute("data-intgrtn-on-success-redirect-url") !== null) { options.onSuccess.redirectUrl = element.getAttribute("data-intgrtn-on-success-redirect-url"); } if (element.getAttribute("data-intgrtn-on-success-auto-redirect")) { options.onSuccess.autoRedirect = element.getAttribute("data-intgrtn-on-success-auto-redirect") == 1; } if (element.getAttribute("data-intgrtn-on-success-redirect-top")) { options.onSuccess.redirectTop = element.getAttribute("data-intgrtn-on-success-redirect-top") == 1; } } var params = { clickID: window.intgrtn.lookup("clickID", true), custom: window.intgrtn.lookup("custom", true), custom1: window.intgrtn.lookup("custom1", true), custom2: window.intgrtn.lookup("custom2", true), custom3: window.intgrtn.lookup("custom3", true), custom4: window.intgrtn.lookup("custom4", true), custom5: window.intgrtn.lookup("custom5", true), autoSignup: window.intgrtn.lookup("autoSignup", true), isTest: window.intgrtn.lookup("isTest", true), bid: window.intgrtn.lookup("bID", true), baa: window.intgrtn.lookup("baa", true), ip: window.intgrtn.lookup("ip", true), locale: window.intgrtn.lookup("locale", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), comment: window.intgrtn.lookup("comment", true), firstName: firstName.value.trim(), lastName: lastName.value.trim(), email: email.value, password: password.value, areaCode: areaCode.value, phone: phone.value, platforms: platforms, excludePlatforms: excludePlatforms, }; /** * Mapping user custom fields , setting new param.customFields */ params.customFields = window.intgrtn.mapCustomFieldsInputsToCustomFieldParams(customFieldsInputs); /** * Get custom fields from cookies */ var intgrtnCustomFields = window.intgrtn.cookies.get("intgrtn_customFields"); if (intgrtnCustomFields) { intgrtnCustomFields = JSON.parse(intgrtnCustomFields); Object.keys(intgrtnCustomFields).forEach(function (key) { var check = params.customFields.filter(function (field) { if (field.userCustomFieldID == key) { return true; } return false; }); if (check.length == 0) { params.customFields.push({ value: intgrtnCustomFields[key], userCustomFieldID: key, }); } }); } if (captcha) { params.captcha = captcha.value; params.captchaHash = captchaHash.value; } if (smsVerificationCode) { params.smsVerificationCode = smsVerificationCode.value.trim(); } if (element && element.getAttribute("data-intgrtn-additional-params")) { options.additionalParams = window.intgrtn.merge( options.additionalParams, window.intgrtn.parseQuery(element.getAttribute("data-intgrtn-additional-params")) ); } params = window.intgrtn.merge(params, options.additionalParams); window.intgrtn.fireEvent({ name: "intgrtn-form-signup-submit" + options.validateEvents.eventNameSuffix, value: JSON.stringify(params), }); var signupFormFullValidation = window.intgrtn.validateSignupForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }); if (signupFormFullValidation) { window.intgrtn.store("firstName", firstName.value.trim()); window.intgrtn.store("lastName", lastName.value.trim()); window.intgrtn.store("email", email.value); window.intgrtn.store("areaCode", areaCode.value); window.intgrtn.store("areaCountryCode", areaCode.getAttribute("data-country-code")); window.intgrtn.store("phone", phone.value); window.intgrtn.elements.addClass(form, "intgrtn-form-loading"); window.intgrtn.elements.setAttribute(btnSubmit, "disabled", "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.setAttribute(element, "disabled", "disabled"); }); /* Make request */ window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendSignupRequest( params, function (response, statusCode) { window.intgrtn.store("signupRequestID", response.data.signupRequestID, 2); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.messages[0]); var executeActionsAfterSignup = function () { window.intgrtn.elements.addClass(form, "intgrtn-form-success"); window.intgrtn.getProjectDetails(function (projectDetailsResponse) { if (!projectDetailsResponse.data.project.afterSignupModalURL) { if (options.onSuccess.autoRedirect) { /** Redirect */ if (options.onSuccess.redirectUrl) { if (options.onSuccess.redirectTop == true) { window.top.location.href = options.onSuccess.redirectUrl; } else { window.location.href = options.onSuccess.redirectUrl; } } else { window.intgrtn.goToBrokerLoginUrlBySignupRequestResponse( response, options.onSuccess.redirectTop ); } } } else { /** Show after signup modal */ var afterSignupParams = { language: window.intgrtn.lookup("language", true), signupRequestID: response.data.signupRequestID, advertiserName: response.data.broker.name, advertiserLogo: response.data.broker.logo, }; afterSignupParams = window.intgrtn.merge(params, afterSignupParams); window.intgrtn.options.afterSignupModal.modal = window.intgrtn.generateAfterSignupModal({ url: projectDetailsResponse.data.project.afterSignupModalURL, getParameters: afterSignupParams, }); window.intgrtn.options.afterSignupModal.modal.intgrtnModal.show(); } window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.setHtml( loaderText, window.intgrtn.translate( "You have signup successfully! Please wait while we redirect you..." ) ); window.intgrtn.events.trigger("form.signup.success", form, response); }); }; window.intgrtn.elements.setHtml( loaderText, window.intgrtn.translate( "Please wait while we are preparing your account... This process can take up to 5 seconds..." ) ); window.intgrtn.firePostbacksBySignupRequestResponse( response, function () { executeActionsAfterSignup(); }, function () { executeActionsAfterSignup(); } ); }, function (response, statusCode) { if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.messages[0]); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.addClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeAttribute(element, "disabled", "disabled"); }); /** * Regenerate captcha image */ if (options.fields.captcha.show == true) { window.intgrtn.getProjectDetails(function (response) { var captchaAttempts = 3; if (response.data.project.details.captchaAttempts) { captchaAttempts = response.data.project.details.captchaAttempts; } if (response.data.captcha.count >= captchaAttempts) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-holder-captcha", form)) { window.intgrtn.elements.appendAfter(captchaHolder, phoneHolder); window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } else { window.intgrtn.elements.remove(captchaImg); window.intgrtn.elements.prepend(captchaInputGroup, captchaLoader); captchaInput.value = ""; window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } } }); } window.intgrtn.events.trigger("form.signup.error", form, response); }, { eventNameSuffix: options.validateEvents.eventNameSuffix, } ); } window.intgrtn.events.trigger("form.signup.submit", form); e.preventDefault(); }); if (element) { window.intgrtn.elements.setHtml(element, form); } return form; }; window.intgrtn.generateSignupForm2Steps = function (options, element) { if (typeof options === "undefined") { options = {}; } var currentStep = 1; var intervalForSmsVerification = null; var skipOptin = false; options = window.intgrtn.merge(window.intgrtn.options.forms.signup, options); var form = window.intgrtn.elements.create("form", "", { name: "intgrtnFormSignup2Steps", novalidate: "", class: "intgrtn-form-signup-2-steps", }); form.intgrtn = { options: options, goToStep: function (step) { /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); var valid = true; window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step.intgrtn-active", form), "intgrtn-submitted" ); var changeStep = function () { if (valid == false) { return false; } window.intgrtn.validate.signupForm.clearValidation(form); window.intgrtn.elements.find(".intgrtn-step", form).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-active"); window.intgrtn.elements.removeClass(element, "intgrtn-submitted"); }); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step-" + step, form), "intgrtn-active" ); if (step > 1) { window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step-" + (step - 1), form), "intgrtn-completed" ); } currentStep = step; window.intgrtn.events.trigger("form.signup.step.changed", { form: form, step: step, }); }; if (step == 1) { changeStep(); } else if (step == 2) { if (!skipOptin) { if (options.fields.firstName.show == true) { if (window.intgrtn.validate.optinForm.firstName(firstNameInput).valid == false) { valid = false; } } if (options.fields.lastName.show == true) { if (window.intgrtn.validate.optinForm.lastName(lastNameInput).valid == false) { valid = false; } } if (window.intgrtn.validate.optinForm.email(emailInput).valid == false) { valid = false; } if (valid == true) { window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendOptinRequest( { clickID: window.intgrtn.lookup("clickID", true), custom: window.intgrtn.lookup("custom", true), custom1: window.intgrtn.lookup("custom1", true), custom2: window.intgrtn.lookup("custom2", true), custom3: window.intgrtn.lookup("custom3", true), custom4: window.intgrtn.lookup("custom4", true), custom5: window.intgrtn.lookup("custom5", true), isTest: window.intgrtn.lookup("isTest", true), ip: window.intgrtn.lookup("ip", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), firstName: firstNameInput.value, lastName: lastNameInput.value, email: emailInput.value, }, function (response, statusCode) { if (firstNameInput.value) { window.intgrtn.store("firstName", firstNameInput.value); } if (lastNameInput.value) { window.intgrtn.store("lastName", lastNameInput.value); } if (emailInput.value) { window.intgrtn.store("email", emailInput.value); } var firstNameInput2ndstep = window.intgrtn.elements.findFirst( ".intgrtn-step-2 input[name='firstName']", form ); firstNameInput2ndstep.value = firstNameInput.value; var lastNameInput2ndstep = window.intgrtn.elements.findFirst( ".intgrtn-step-2 input[name='lastName']", form ); lastNameInput2ndstep.value = lastNameInput.value; var emailInput2ndstep = window.intgrtn.elements.findFirst( ".intgrtn-step-2 input[name='email']", form ); emailInput2ndstep.value = emailInput.value; window.intgrtn.parseTooltips(); window.intgrtn.fireOptinCliendSidePostbacksByOptinResponse( response, function () { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); }, function () { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); } ); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = response.messages[0]; } else { formMessageErrorHolder.innerHTML = "An error occurred. Please try again later."; } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); } } else { changeStep(); } } else if (step == 3) { valid = window.intgrtn.validateSignupForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }); if (valid == true) { window.intgrtn.elements.addClass(loaderHolder, "show"); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); window.intgrtn.elements.setAttribute(resentCodeButton, "disabled", "disabled"); if (intervalForSmsVerification == null) { window.intgrtn.getVerificationCode( { phone: phone.value, areaCode: areaCode.value, }, function (response) { var counter = 30; intervalForSmsVerification = setInterval(() => { if (counter > 0) { seconds.innerHTML = "(" + counter + " sec.)"; counter--; return; } seconds.innerHTML = "(" + counter + " sec.)"; window.intgrtn.elements.removeAttribute(resentCodeButton, "disabled"); clearInterval(intervalForSmsVerification); intervalForSmsVerification = null; }, 1000); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.message); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.message) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.message); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "Can't send SMS. An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); } else { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); } } } }, }; var stepsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-steps-holder", }); var step1 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-1 intgrtn-active", }); var step2 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-2", }); var step3 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-3", }); window.intgrtn.elements.appendChild(stepsHolder, step1); window.intgrtn.elements.appendChild(stepsHolder, step2); window.intgrtn.elements.appendChild(stepsHolder, step3); var firstNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-first-name", }); var firstNameLabel = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.firstName), { class: "intgrtn-label", for: "firstName", } ); var firstNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "firstName", placeholder: window.intgrtn.translate(options.placeholders.firstName), value: window.intgrtn.lookup("firstName", true, ""), }); if (options.fields.firstName.required) { firstNameInput.setAttribute("required", ""); } if (options.fields.firstName.showLabel == true) { window.intgrtn.elements.appendChild(firstNameHolder, firstNameLabel); } window.intgrtn.elements.appendChild(firstNameHolder, firstNameInput); var lastNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-last-name", }); var lastNameLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.lastName), { class: "intgrtn-label", for: "lastName", }); var lastNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "lastName", placeholder: window.intgrtn.translate(options.placeholders.lastName), value: window.intgrtn.lookup("lastName", true, ""), }); if (options.fields.lastName.required) { lastNameInput.setAttribute("required", ""); } if (options.fields.lastName.showLabel == true) { window.intgrtn.elements.appendChild(lastNameHolder, lastNameLabel); } window.intgrtn.elements.appendChild(lastNameHolder, lastNameInput); var emailHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-email", }); var emailLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.email), { class: "intgrtn-label", for: "email", }); var emailInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "email", name: "email", placeholder: window.intgrtn.translate(options.placeholders.email), value: window.intgrtn.lookup("email", true, ""), }); if (options.fields.email.required) { emailInput.setAttribute("required", ""); } if (options.fields.email.showLabel == true) { window.intgrtn.elements.appendChild(emailHolder, emailLabel); } window.intgrtn.elements.appendChild(emailHolder, emailInput); var btnGoToStep2Holder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToStep2 = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep2.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToStep2Holder, btnGoToStep2); var passwordHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-password", }); var passwordLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.password), { class: "intgrtn-label", for: "password", }); var passwordInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var passwordInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", "data-intgrtn-tooltip": window.intgrtn.translate(options.fields.password.tooltip), name: "password", placeholder: window.intgrtn.translate(options.placeholders.password), }); if (options.fields.password.required) { passwordInput.setAttribute("required", ""); } if (options.fields.password.showLabel == true) { window.intgrtn.elements.appendChild(passwordHolder, passwordLabel); } window.intgrtn.elements.appendChild(passwordInputGroup, passwordInput); var passwordEyeIcon = window.intgrtn.elements.create("div", "", { class: "intgrtn-password-eye-icon", }); window.intgrtn.elements.appendChild(passwordInputGroup, passwordEyeIcon); var btnGeneratePasswordHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-generate-password-holder", }); var btnGeneratePassword = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.generatePassword.text), { class: "intgrtn-btn-generate-password", type: "button", } ); if (options.buttons.generatePassword.show == false) { passwordInput.setAttribute("type", "password"); passwordInput.setAttribute("autocomplete", "new-password"); window.intgrtn.elements.appendChild(passwordHolder, passwordInputGroup); } else { passwordInput.setAttribute("type", "text"); passwordInput.value = window.intgrtn.generatePassword(form); window.intgrtn.elements.addClass(passwordHolder, "has-btn-generate-password"); window.intgrtn.elements.addClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.appendChild(btnGeneratePasswordHolder, passwordInputGroup); window.intgrtn.elements.appendChild(btnGeneratePasswordHolder, btnGeneratePassword); window.intgrtn.elements.appendChild(passwordHolder, btnGeneratePasswordHolder); } var phoneHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-phone", }); var phoneLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.phone), { class: "intgrtn-label", for: "phone", }); var phoneInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var phoneInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-phone", type: "text", name: "phone", size: "1", placeholder: window.intgrtn.translate(options.placeholders.phone), value: window.intgrtn.lookup("phone", true, ""), }); if (options.fields.phone.required) { phoneInput.setAttribute("required", ""); } var areaCodeInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-area-code", type: "text", name: "areaCode", placeholder: options.placeholders.areaCode, value: window.intgrtn.lookup("areaCode", true, ""), "data-country-code": window.intgrtn.lookup("areaCountryCode", true, ""), }); if (options.fields.areaCode.required) { areaCodeInput.setAttribute("required", ""); } if (options.fields.phone.showLabel == true) { window.intgrtn.elements.appendChild(phoneHolder, phoneLabel); } window.intgrtn.elements.appendChild(phoneInputGroup, areaCodeInput); window.intgrtn.elements.appendChild(phoneInputGroup, phoneInput); window.intgrtn.elements.appendChild(phoneHolder, phoneInputGroup); window.intgrtn.generateAreaFlagsDropdown(areaCodeInput, phoneInput); var checkboxAgreeTermsHolders = []; switch (typeof options.labels.checkboxAgreeTerms) { case "string": var checkboxAgreeTermsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-checkbox-agree-terms", }); var checkboxAgreeTermsLabel = window.intgrtn.elements.create("label", "", { class: "intgrtn-checkbox-label-agree-terms", }); var checkboxAgreeTerms = window.intgrtn.elements.create("input", "", { class: "intgrtn-checkbox intgrtn-input-checkbox-agree-terms", type: "checkbox", name: "checkboxAgreeTerms", }); if (options.fields.checkboxAgreeTerms.required == true) { window.intgrtn.elements.setAttribute(checkboxAgreeTerms, "required", ""); } window.intgrtn.elements.appendChild(checkboxAgreeTermsLabel, checkboxAgreeTerms); window.intgrtn.elements.appendChild( checkboxAgreeTermsLabel, window.intgrtn.elements.create("span", options.labels.checkboxAgreeTerms, { class: "intgrtn-checkbox-label-agree-terms-text", }) ); window.intgrtn.elements.appendChild(checkboxAgreeTermsHolder, checkboxAgreeTermsLabel); checkboxAgreeTermsHolders.push(checkboxAgreeTermsHolder); break; case "object": options.labels.checkboxAgreeTerms.forEach(function (element, index) { var checkboxAgreeTermsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-checkbox-agree-terms", }); var checkboxAgreeTermsLabel = window.intgrtn.elements.create("label", "", { class: "intgrtn-checkbox-label-agree-terms", }); var checkboxAgreeTerms = window.intgrtn.elements.create("input", "", { class: "intgrtn-checkbox intgrtn-input-checkbox-agree-terms", type: "checkbox", name: "checkboxAgreeTerms" + index, }); if (element.required) { window.intgrtn.elements.setAttribute(checkboxAgreeTerms, "required", ""); } window.intgrtn.elements.appendChild(checkboxAgreeTermsLabel, checkboxAgreeTerms); window.intgrtn.elements.appendChild( checkboxAgreeTermsLabel, window.intgrtn.elements.create("span", element.text, { class: "intgrtn-checkbox-label-agree-terms-text", }) ); window.intgrtn.elements.appendChild(checkboxAgreeTermsHolder, checkboxAgreeTermsLabel); checkboxAgreeTermsHolders.push(checkboxAgreeTermsHolder); }); break; } var captchaHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-captcha", }); var captchaLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.captcha), { class: "intgrtn-label", for: "captcha", }); var captchaInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var captchaInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "captcha", placeholder: window.intgrtn.translate(options.placeholders.captcha), value: "", }); var captchaInputHash = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "hidden", name: "captchaHash", value: "", }); var captchaImg = window.intgrtn.elements.create("img", "", { class: "intgrtn-image intgrtn-image-captcha", }); var captchaLoader = window.intgrtn.elements.create("div", "", { class: "intgrtn-icon-loader", }); if (options.fields.captcha.required) { captchaInput.setAttribute("required", ""); } if (options.fields.captcha.showLabel == true) { window.intgrtn.elements.appendChild(captchaHolder, captchaLabel); } window.intgrtn.elements.appendChild(captchaHolder, captchaInputGroup); window.intgrtn.elements.appendChild(captchaInputGroup, captchaLoader); window.intgrtn.elements.appendChild(captchaInputGroup, captchaInput); window.intgrtn.elements.appendChild(captchaHolder, captchaInputHash); var btnSubmitHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var btnSubmit = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.submit.text), { class: "intgrtn-btn-submit", type: "submit", } ); window.intgrtn.elements.appendChild(btnSubmitHolder, btnSubmit); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); var loaderTextHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-text-holder", }); var loaderText = window.intgrtn.elements.create("div", window.intgrtn.translate("Loading..."), { class: "intgrtn-loader-text", }); window.intgrtn.elements.appendChild(loaderHolder, loaderTextHolder); window.intgrtn.elements.appendChild(loaderTextHolder, loader); window.intgrtn.elements.appendChild(loaderTextHolder, loaderText); var formMessageErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-error", }); var formMessageSuccessHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-success", }); var firstNameHolder2ndstep = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-first-name", }); var firstNameLabel2ndstep = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.firstName), { class: "intgrtn-label", for: "firstName", } ); var firstNameInput2ndstep = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "firstName", placeholder: window.intgrtn.translate(options.placeholders.firstName), value: window.intgrtn.lookup("firstName", true, ""), }); if (options.fields.firstName.required == true) { window.intgrtn.elements.setAttribute(firstNameInput2ndstep, "required", ""); } var lastNameHolder2ndstep = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-last-name", }); var lastNameLabel2ndstep = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.lastName), { class: "intgrtn-label", for: "lastName", } ); var lastNameInput2ndstep = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "lastName", placeholder: window.intgrtn.translate(options.placeholders.lastName), value: window.intgrtn.lookup("lastName", true, ""), }); if (options.fields.lastName.required == true) { window.intgrtn.elements.setAttribute(lastNameInput2ndstep, "required", ""); } var emailHolder2ndstep = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-email", }); var emailLabel2ndstep = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.email), { class: "intgrtn-label", for: "email", } ); var emailInput2ndstep = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "email", name: "email", placeholder: window.intgrtn.translate(options.placeholders.email), value: window.intgrtn.lookup("email", true, ""), }); if (options.fields.email.required == true) { window.intgrtn.elements.setAttribute(emailInput2ndstep, "required", ""); } window.intgrtn.elements.appendChild(emailHolder2ndstep, emailInput2ndstep); if (options.twoStepsFormCustomization.showOptinFieldsOnSecondStep == true) { window.intgrtn.elements.appendChild(step2, firstNameHolder2ndstep); window.intgrtn.elements.appendChild(step2, lastNameHolder2ndstep); window.intgrtn.elements.appendChild(step2, emailHolder2ndstep); } if (options.fields.firstName.showLabel == true) { window.intgrtn.elements.appendChild(firstNameHolder2ndstep, firstNameLabel2ndstep); } window.intgrtn.elements.appendChild(firstNameHolder2ndstep, firstNameInput2ndstep); if (options.fields.lastName.showLabel == true) { window.intgrtn.elements.appendChild(lastNameHolder2ndstep, lastNameLabel2ndstep); } window.intgrtn.elements.appendChild(lastNameHolder2ndstep, lastNameInput2ndstep); if (options.fields.email.showLabel == true) { window.intgrtn.elements.appendChild(emailHolder2ndstep, emailLabel2ndstep); } window.intgrtn.elements.appendChild(emailHolder2ndstep, emailInput2ndstep); window.intgrtn.elements.appendChild(step2, passwordHolder); window.intgrtn.elements.appendChild(step2, phoneHolder); var checkboxOuterHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-checkbox-outer-holder", }); if (options.fields.checkboxAgreeTerms.show == true) { window.intgrtn.elements.appendChild(step2, checkboxOuterHolder); checkboxAgreeTermsHolders.forEach(function (item) { window.intgrtn.elements.appendChild(checkboxOuterHolder, item); }); } if (options.fields.password.verboseErrors.enabled == true) { window.intgrtn.elements.setAttribute(passwordInput, "data-intgrtn-tooltip", ""); var inputErrorHolderVerbose = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error-verbose", }); for (var i = 0; i < options.fields.password.verboseErrors.messages.length; i++) { var currentMessage = options.fields.password.verboseErrors.messages[i]; if ( currentMessage.id == "passwordRegExp1Lowercase" && options.fields.password.patternLowercaseLetter === false ) { continue; } else if ( currentMessage.id == "passwordRegExp1Uppercase" && options.fields.password.patternUppercaseLetter === false ) { continue; } else if ( currentMessage.id == "passwordRegExpNoSpecialChars" && options.fields.password.patternNoSpecialChars === false ) { continue; } else if ( currentMessage.id == "passwordRegExpNumber" && options.fields.password.patternNumber === false ) { continue; } else if ( currentMessage.id == "passwordRegExpLetter" && options.fields.password.patternLetter === false ) { continue; } else if (currentMessage.id == "passwordConfirmMatch") { continue; } var currentClasses = "intgrtn-single-message intgrtn-untouched"; var currentMessageText = window.intgrtn .translate(currentMessage.text) .replace(/{{passwordMinLength}}/g, options.fields.password.minLength) .replace(/{{passwordMaxLength}}/g, options.fields.password.maxLength); var currentEntry = window.intgrtn.elements.create("div", currentMessageText, { class: currentClasses, "data-intgrtn-message-id": currentMessage.id, }); window.intgrtn.elements.appendChild(inputErrorHolderVerbose, currentEntry); } window.intgrtn.elements.appendChild(passwordHolder, inputErrorHolderVerbose); window.intgrtn.elements.on(passwordInput, "input", function (e) { window.intgrtn.validateSignupFormVerboseMessages(form); }); } /** * Remove non numeric symbols from phone input */ window.intgrtn.elements.on(phoneInput, "input", function (e) { setTimeout(function () { var filteredValue = phoneInput.value.replace(/\D/g, ""); if (filteredValue !== phoneInput.value) { phoneInput.value = filteredValue; window.intgrtn.elements.trigger(phoneInput, "input"); window.intgrtn.elements.trigger(phoneInput, "change"); } }, 100); }); window.intgrtn.elements.on(passwordEyeIcon, "click", function (e) { if (window.intgrtn.elements.hasClass(passwordEyeIcon, "intgrtn-visible") == true) { window.intgrtn.elements.removeClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordInput, "type", "password"); } else { window.intgrtn.elements.addClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordInput, "type", "text"); } }); window.intgrtn.elements.on(btnGeneratePassword, "click", function (e) { passwordInput.value = window.intgrtn.generatePassword(form); window.intgrtn.elements.trigger(passwordInput, "input"); window.intgrtn.elements.trigger(passwordInput, "change"); }); if (!window.intgrtn.lookup("areaCode", true)) { window.intgrtn.getProjectDetails(function (response) { if (response.data.client.location.areaCode) { areaCodeInput.value = response.data.client.location.areaCode; } }); } window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "input", function (e) { if (window.intgrtn.elements.hasClass(element.closest(".intgrtn-step"), "intgrtn-submitted")) { if (element && element.getAttribute("data-intgrtn-validate-events-name-suffix")) { options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } window.intgrtn.validateSignupForm(form, { fireEvents: false, eventNameSuffix: options.validateEvents.eventNameSuffix, }); } }); }); if (!window.intgrtn.lookup("areaCode", true)) { window.intgrtn.getProjectDetails(function (response) { if (response.data.client.location.areaCode) { areaCodeInput.value = response.data.client.location.areaCode; } }); } // SMS Verification 2 step var smsVerificationEnabledMessage = window.intgrtn.elements.create( "div", options.smsVerification.text.IsEnabledMessage, { class: "intgrtn-sms-verification-text", } ); var btnGoToSmsVerificationHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToSmsVerification = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep2.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToSmsVerificationHolder, btnGoToSmsVerification); var smsVerificationTitle = window.intgrtn.elements.create("h2", options.headings.smsVerification.title, { class: "intgrtn-sms-verification-title", }); var codeInputMessage = window.intgrtn.elements.create("div", options.smsVerification.text.codeInputMessage, { class: "intgrtn-sms-verification-code-label", }); var smsVerificationCodeHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-sms-code", }); var smsVerificationCode = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-sms-code", type: "text", name: "smsVerificationCode", placeholder: window.intgrtn.translate(options.placeholders.smsVerificationCode), value: window.intgrtn.lookup("smsVerificationCode", true, ""), }); if (options.fields.smsVerificationCode.required) { smsVerificationCode.setAttribute("required", ""); } window.intgrtn.elements.appendChild(smsVerificationCodeHolder, codeInputMessage); window.intgrtn.elements.appendChild(smsVerificationCodeHolder, smsVerificationCode); var countdownHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-countdown-holder", }); var countdownText = window.intgrtn.elements.create("span", options.smsVerification.text.timerMessage, { class: "intgrtn-label", }); var resentCodeButton = window.intgrtn.elements.create( "button", options.buttons.smsVerification.resentCode.text, { class: "intgrtn-sms-verification-resend-button", type: "button", } ); resentCodeButton.setAttribute("disabled", true); var seconds = window.intgrtn.elements.create("span", "", { class: "intgrtn-label intgrtn-countdown-seconds", }); window.intgrtn.elements.appendChild(countdownHolder, countdownText); window.intgrtn.elements.appendChild(countdownHolder, resentCodeButton); window.intgrtn.elements.appendChild(countdownHolder, seconds); window.intgrtn.elements.appendChild(smsVerificationCodeHolder, countdownHolder); var smsVerificationCodeSectionButtonsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var smsVerificationBackButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.smsVerification.back.text), { class: "intgrtn-btn-submit intgrtn-btn-back", type: "button", } ); var smsVerificationVerifyButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.smsVerification.verify.text), { class: "intgrtn-btn-submit intgrtn-btn-verify-code", type: "submit", } ); window.intgrtn.elements.appendChild(smsVerificationCodeSectionButtonsHolder, smsVerificationBackButton); window.intgrtn.elements.appendChild(smsVerificationCodeSectionButtonsHolder, smsVerificationVerifyButton); if (options.fields.firstName.show == true) { window.intgrtn.elements.appendChild(step1, firstNameHolder); } if (options.fields.lastName.show == true) { window.intgrtn.elements.appendChild(step1, lastNameHolder); } window.intgrtn.elements.appendChild(step1, emailHolder); window.intgrtn.elements.appendChild(step1, btnGoToStep2Holder); window.intgrtn.elements.appendChild(step3, smsVerificationTitle); window.intgrtn.elements.appendChild(step3, smsVerificationCodeHolder); window.intgrtn.elements.appendChild(step3, smsVerificationCodeSectionButtonsHolder); window.intgrtn.elements.appendChild(form, loaderHolder); window.intgrtn.elements.appendChild(form, stepsHolder); window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "keyup blur", function (e) { switch (this.getAttribute("name")) { case "firstName": window.intgrtn.validate.signupForm.firstName(element); break; case "lastName": window.intgrtn.validate.signupForm.lastName(element); break; case "email": window.intgrtn.validate.signupForm.email(element); break; case "phone": window.intgrtn.validate.signupForm.phone(element); break; case "password": window.intgrtn.validate.signupForm.password(element); break; } }); }); window.intgrtn.getProjectDetails(function (getProjectDetailsResponse) { if (getProjectDetailsResponse.data.customFields) { window.intgrtn .generateCustomFields(getProjectDetailsResponse.data.customFields, { show: { labels: options.fields.labels.show, }, }) .forEach(function (item) { window.intgrtn.elements.appendChild(step2, item); }); } var captchaAttempts = 3; if (getProjectDetailsResponse.data.project.details.captchaAttempts) { captchaAttempts = getProjectDetailsResponse.data.project.details.captchaAttempts; } if ( options.fields.captcha.show == true && getProjectDetailsResponse.data.captcha.count >= captchaAttempts ) { window.intgrtn.elements.appendChild(step2, captchaHolder); window.intgrtn.getCaptcha({}, function (getProjectDetailsResponse) { captchaInputHash.value = getProjectDetailsResponse.details.hash; captchaImg.src = getProjectDetailsResponse.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } if (options.fields.smsVerificationCode.show == true) { window.intgrtn.elements.appendAfter(smsVerificationEnabledMessage, phoneHolder); window.intgrtn.elements.appendChild(step2, btnGoToSmsVerificationHolder); } else { window.intgrtn.elements.appendChild(step2, btnSubmitHolder); } }); window.intgrtn.elements.on(btnGoToStep2, "click", function (e) { form.intgrtn.goToStep(2); }); window.intgrtn.elements.on(smsVerificationBackButton, "click", function (e) { skipOptin = true; form.intgrtn.goToStep(2); }); window.intgrtn.elements.on(btnGoToSmsVerification, "click", function (e) { form.intgrtn.goToStep(3); }); window.intgrtn.elements.on(resentCodeButton, "click", function (e) { if (intervalForSmsVerification != null) { return; } /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.getVerificationCode( { phone: window.intgrtn.elements.findFirst("[name='phone']", form).value, areaCode: window.intgrtn.elements.findFirst("[name='areaCode']", form).value, }, function (response) { window.intgrtn.elements.removeClass(loaderHolder, "show"); var counter = 30; intervalForSmsVerification = setInterval(() => { if (counter > 0) { seconds.innerHTML = "(" + counter + " sec.)"; counter--; return; } seconds.innerHTML = "(" + counter + " sec.)"; window.intgrtn.elements.removeAttribute(resentCodeButton, "disabled"); clearInterval(intervalForSmsVerification); intervalForSmsVerification = null; }, 1000); window.intgrtn.elements.setAttribute(resentCodeButton, "disabled", "disabled"); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.message); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.message) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.message); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "Can't send SMS. An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); }); window.intgrtn.elements.on(form, "submit", function (e) { var valid = true; e.preventDefault(); if (currentStep < 2) { form.intgrtn.goToStep(currentStep + 1); return false; } if (options.fields.smsVerificationCode.show == true) { e.preventDefault(); if (currentStep < 3) { form.intgrtn.goToStep(currentStep + 1); return false; } } window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step.intgrtn-active", form), "intgrtn-submitted" ); window.intgrtn.elements.addClass(form, "intgrtn-form-submitted"); window.intgrtn.elements.removeClass(form, "intgrtn-form-success"); var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var password = window.intgrtn.elements.findFirst("[name='password']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var captcha = window.intgrtn.elements.findFirst("[name='captcha']", form); var captchaHash = window.intgrtn.elements.findFirst("[name='captchaHash']", form); var checkboxesAgreeTerms = window.intgrtn.elements.find(".intgrtn-input-checkbox-agree-terms", form); var smsVerificationCode = window.intgrtn.elements.findFirst("[name='smsVerificationCode']", form); var customFieldsInputs = window.intgrtn.elements.find("[data-user-custom-field-id]", form); if (window.intgrtn.validate.signupForm.password(passwordInput).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.phone(phoneInput).valid == false) { valid = false; } if (captcha) { if (window.intgrtn.validate.signupForm.captcha(captchaInput).valid == false) { valid = false; } } checkboxesAgreeTerms.forEach(function (checkbox) { if (window.intgrtn.validate.signupForm.checkboxAgreeTerms(checkbox).valid == false) { valid = false; } }); if (valid == false) { return false; } /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (element && element.getAttribute("data-intgrtn-validate-events-name-suffix")) { options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } var platforms = []; var excludePlatforms = []; if (window.intgrtn.lookup("platforms", true)) { platforms = window.intgrtn.lookup("platforms", true).split(","); } if (window.intgrtn.lookup("excludePlatforms", true)) { excludePlatforms = window.intgrtn.lookup("excludePlatforms", true).split(","); } if (element) { if (element.getAttribute("data-intgrtn-platforms")) { platforms = element.getAttribute("data-intgrtn-platforms").split(","); } if (element.getAttribute("data-intgrtn-exclude-platforms")) { excludePlatforms = element.getAttribute("data-intgrtn-exclude-platforms").split(","); } if (element.getAttribute("data-intgrtn-on-success-redirect-url") !== null) { options.onSuccess.redirectUrl = element.getAttribute("data-intgrtn-on-success-redirect-url"); } if (element.getAttribute("data-intgrtn-on-success-auto-redirect")) { options.onSuccess.autoRedirect = element.getAttribute("data-intgrtn-on-success-auto-redirect") == 1; } if (element.getAttribute("data-intgrtn-on-success-redirect-top")) { options.onSuccess.redirectTop = element.getAttribute("data-intgrtn-on-success-redirect-top") == 1; } } var params = { clickID: window.intgrtn.lookup("clickID", true), custom: window.intgrtn.lookup("custom", true), custom1: window.intgrtn.lookup("custom1", true), custom2: window.intgrtn.lookup("custom2", true), custom3: window.intgrtn.lookup("custom3", true), custom4: window.intgrtn.lookup("custom4", true), custom5: window.intgrtn.lookup("custom5", true), autoSignup: window.intgrtn.lookup("autoSignup", true), isTest: window.intgrtn.lookup("isTest", true), bid: window.intgrtn.lookup("bID", true), baa: window.intgrtn.lookup("baa", true), ip: window.intgrtn.lookup("ip", true), locale: window.intgrtn.lookup("locale", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), comment: window.intgrtn.lookup("comment", true), firstName: firstName.value.trim(), lastName: lastName.value.trim(), email: email.value, password: password.value, areaCode: areaCode.value, phone: phone.value, platforms: platforms, excludePlatforms: excludePlatforms, }; /** * Mapping user custom fields , setting new param.customFields */ params.customFields = window.intgrtn.mapCustomFieldsInputsToCustomFieldParams(customFieldsInputs); if (element && element.getAttribute("data-intgrtn-additional-params")) { options.additionalParams = window.intgrtn.merge( options.additionalParams, window.intgrtn.parseQuery(element.getAttribute("data-intgrtn-additional-params")) ); } params = window.intgrtn.merge(params, options.additionalParams); /** * Get custom fields from cookies */ var intgrtnCustomFields = window.intgrtn.cookies.get("intgrtn_customFields"); if (intgrtnCustomFields) { intgrtnCustomFields = JSON.parse(intgrtnCustomFields); Object.keys(intgrtnCustomFields).forEach(function (key) { var check = params.customFields.filter(function (field) { if (field.userCustomFieldID == key) { return true; } return false; }); if (check.length == 0) { params.customFields.push({ value: intgrtnCustomFields[key], userCustomFieldID: key, }); } }); } if (captcha) { params.captcha = captcha.value; params.captchaHash = captchaHash.value; } if (smsVerificationCode) { params.smsVerificationCode = smsVerificationCode.value.trim(); } window.intgrtn.fireEvent({ name: "intgrtn-form-signup-submit" + options.validateEvents.eventNameSuffix, value: JSON.stringify(params), }); var signupFormFullValidation = window.intgrtn.validateSignupForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }); if (signupFormFullValidation) { window.intgrtn.store("firstName", firstName.value.trim()); window.intgrtn.store("lastName", lastName.value.trim()); window.intgrtn.store("email", email.value); window.intgrtn.store("areaCode", areaCode.value); window.intgrtn.store("areaCountryCode", areaCode.getAttribute("data-country-code")); window.intgrtn.store("phone", phone.value); window.intgrtn.elements.addClass(form, "intgrtn-form-loading"); window.intgrtn.elements.setAttribute(btnSubmit, "disabled", "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.setAttribute(element, "disabled", "disabled"); }); /* Make request */ window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendSignupRequest( params, function (response, statusCode) { window.intgrtn.store("signupRequestID", response.data.signupRequestID, 2); formMessageSuccessHolder.innerHTML = response.messages[0]; var executeActionsAfterSignup = function () { window.intgrtn.elements.addClass(form, "intgrtn-form-success"); window.intgrtn.getProjectDetails(function (projectDetailsResponse) { if (!projectDetailsResponse.data.project.afterSignupModalURL) { if (options.onSuccess.autoRedirect) { /** Redirect */ if (options.onSuccess.redirectUrl) { if (options.onSuccess.redirectTop == true) { window.top.location.href = options.onSuccess.redirectUrl; } else { window.location.href = options.onSuccess.redirectUrl; } } else { window.intgrtn.goToBrokerLoginUrlBySignupRequestResponse( response, options.onSuccess.redirectTop ); } } } else { /** Show after signup modal */ var afterSignupParams = { language: window.intgrtn.lookup("language", true), signupRequestID: response.data.signupRequestID, advertiserName: response.data.broker.name, advertiserLogo: response.data.broker.logo, }; afterSignupParams = window.intgrtn.merge(params, afterSignupParams); window.intgrtn.options.afterSignupModal.modal = window.intgrtn.generateAfterSignupModal({ url: projectDetailsResponse.data.project.afterSignupModalURL, getParameters: afterSignupParams, }); window.intgrtn.options.afterSignupModal.modal.intgrtnModal.show(); } window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.setHtml( loaderText, window.intgrtn.translate( "You have signup successfully! Please wait while we redirect you..." ) ); window.intgrtn.events.trigger("form.signup.success", form, response); }); }; window.intgrtn.elements.setHtml( loaderText, "Please wait while we are preparing your account... This process can take up to 5 seconds..." ); window.intgrtn.firePostbacksBySignupRequestResponse( response, function () { executeActionsAfterSignup(); }, function () { executeActionsAfterSignup(); } ); }, function (response, statusCode) { if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = response.messages[0]; } else { formMessageErrorHolder.innerHTML = "An error occurred. Please try again later."; } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.addClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeAttribute(element, "disabled", "disabled"); }); /** * Regenerate captcha image */ if (options.fields.captcha.show == true) { window.intgrtn.getProjectDetails(function (response) { var captchaAttempts = 3; if (response.data.project.details.captchaAttempts) { captchaAttempts = response.data.project.details.captchaAttempts; } if (response.data.captcha.count >= captchaAttempts) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-holder-captcha", form)) { window.intgrtn.elements.appendAfter(captchaHolder, phoneHolder); window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } else { window.intgrtn.elements.remove(captchaImg); window.intgrtn.elements.prepend(captchaInputGroup, captchaLoader); captchaInput.value = ""; window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } } }); } window.intgrtn.events.trigger("form.signup.error", form, response); }, { eventNameSuffix: options.validateEvents.eventNameSuffix, } ); } window.intgrtn.events.trigger("form.signup.submit", form); }); if (element) { window.intgrtn.elements.setHtml(element, form); } return form; }; window.intgrtn.generateSignupForm3Steps = function (options, element) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.forms.signup, options); var form = window.intgrtn.elements.create("form", "", { name: "intgrtnFormSignup3Steps", novalidate: "", class: "intgrtn-form-signup-3-steps", }); var currentStep = 1; var intervalForSmsVerification = null; form.intgrtn = { options: options, goToStep: function (step) { /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); var valid = true; window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step.intgrtn-active", form), "intgrtn-submitted" ); var changeStep = function () { if (valid == false) { return false; } window.intgrtn.validate.signupForm.clearValidation(form); window.intgrtn.elements.find(".intgrtn-step", form).forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-active"); window.intgrtn.elements.removeClass(element, "intgrtn-submitted"); }); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step-" + step, form), "intgrtn-active" ); if (step > 1 && step < 4) { window.intgrtn.elements .find(".intgrtn-steps-navigation-item", form) .forEach(function (element) { window.intgrtn.elements.removeClass(element, "intgrtn-active"); }); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-steps-navigation-item-" + step, form), "intgrtn-active" ); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-steps-navigation-item-" + (step - 1), form), "intgrtn-completed" ); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step-" + (step - 1), form), "intgrtn-completed" ); } currentStep = step; window.intgrtn.events.trigger("form.signup.step.changed", { form: form, step: step, }); }; if (step == 1) { changeStep(); } else if (step == 2) { if (window.intgrtn.validate.signupForm.firstName(firstNameInput).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.lastName(lastNameInput).valid == false) { valid = false; } if (window.intgrtn.validate.signupForm.email(emailInput).valid == false) { valid = false; } if (valid == true) { window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendOptinRequest( { clickID: window.intgrtn.lookup("clickID", true), custom: window.intgrtn.lookup("custom", true), custom1: window.intgrtn.lookup("custom1", true), custom2: window.intgrtn.lookup("custom2", true), custom3: window.intgrtn.lookup("custom3", true), custom4: window.intgrtn.lookup("custom4", true), custom5: window.intgrtn.lookup("custom5", true), isTest: window.intgrtn.lookup("isTest", true), ip: window.intgrtn.lookup("ip", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), firstName: firstNameInput.value, lastName: lastNameInput.value, email: emailInput.value, }, function (response, statusCode) { if (firstNameInput.value) { window.intgrtn.store("firstName", firstNameInput.value); } if (lastNameInput.value) { window.intgrtn.store("lastName", lastNameInput.value); } if (emailInput.value) { window.intgrtn.store("email", emailInput.value); } window.intgrtn.fireOptinCliendSidePostbacksByOptinResponse( response, function () { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); }, function () { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); } ); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.messages[0]); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); } } else if (step == 3) { if (window.intgrtn.validate.signupForm.password(passwordInput).valid == false) { valid = false; } if (options.fields.passwordConfirm.show == true) { if ( window.intgrtn.validate.signupForm.passwordConfirm(passwordInput, passwordConfirmInput) .valid == false ) { valid = false; } } changeStep(); } else if (step == 4) { valid = window.intgrtn.validateSignupForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }); if (valid == true) { window.intgrtn.elements.addClass(loaderHolder, "show"); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); window.intgrtn.elements.setAttribute(resentCodeButton, "disabled", "disabled"); if (intervalForSmsVerification == null) { window.intgrtn.getVerificationCode( { phone: phone.value, areaCode: areaCode.value, }, function (response) { var counter = 30; intervalForSmsVerification = setInterval(() => { if (counter > 0) { seconds.innerHTML = "(" + counter + " sec.)"; counter--; return; } seconds.innerHTML = "(" + counter + " sec.)"; window.intgrtn.elements.removeAttribute(resentCodeButton, "disabled"); clearInterval(intervalForSmsVerification); intervalForSmsVerification = null; }, 1000); window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.message) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.message); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "Can't send SMS. An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); } else { window.intgrtn.elements.removeClass(loaderHolder, "show"); changeStep(); } } } }, }; var stepsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-steps-holder", }); var stepsNavigation = window.intgrtn.elements.create("div", "", { class: "intgrtn-steps-navigation", }); var stepsNavigationItem1 = window.intgrtn.elements.create("div", "1", { class: "intgrtn-steps-navigation-item intgrtn-steps-navigation-item-1 intgrtn-active", }); window.intgrtn.elements.appendChild(stepsNavigation, stepsNavigationItem1); var stepsNavigationItem2 = window.intgrtn.elements.create("div", "2", { class: "intgrtn-steps-navigation-item intgrtn-steps-navigation-item-2", }); window.intgrtn.elements.appendChild(stepsNavigation, stepsNavigationItem2); var stepsNavigationItem3 = window.intgrtn.elements.create("div", "3", { class: "intgrtn-steps-navigation-item intgrtn-steps-navigation-item-3", }); window.intgrtn.elements.appendChild(stepsNavigation, stepsNavigationItem3); var step1 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-1 intgrtn-active", }); var step2 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-2", }); var step3 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-3", }); var step4 = window.intgrtn.elements.create("div", "", { class: "intgrtn-step intgrtn-step-4", }); window.intgrtn.elements.appendChild(stepsHolder, step1); window.intgrtn.elements.appendChild(stepsHolder, step2); window.intgrtn.elements.appendChild(stepsHolder, step3); window.intgrtn.elements.appendChild(stepsHolder, step4); var firstNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-first-name", }); var firstNameLabel = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.firstName), { class: "intgrtn-label", for: "firstName", } ); var firstNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "firstName", placeholder: window.intgrtn.translate(options.placeholders.firstName), value: window.intgrtn.lookup("firstName", true, ""), }); if (options.fields.firstName.required) { firstNameInput.setAttribute("required", ""); } if (options.fields.firstName.showLabel == true) { window.intgrtn.elements.appendChild(firstNameHolder, firstNameLabel); } window.intgrtn.elements.appendChild(firstNameHolder, firstNameInput); var lastNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-last-name", }); var lastNameLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.lastName), { class: "intgrtn-label", for: "lastName", }); var lastNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "lastName", placeholder: window.intgrtn.translate(options.placeholders.lastName), value: window.intgrtn.lookup("lastName", true, ""), }); if (options.fields.lastName.required) { lastNameInput.setAttribute("required", ""); } if (options.fields.lastName.showLabel == true) { window.intgrtn.elements.appendChild(lastNameHolder, lastNameLabel); } window.intgrtn.elements.appendChild(lastNameHolder, lastNameInput); var emailHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-email", }); var emailLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.email), { class: "intgrtn-label", for: "email", }); var emailInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "email", name: "email", placeholder: window.intgrtn.translate(options.placeholders.email), value: window.intgrtn.lookup("email", true, ""), }); if (options.fields.email.required) { emailInput.setAttribute("required", ""); } if (options.fields.email.showLabel == true) { window.intgrtn.elements.appendChild(emailHolder, emailLabel); } window.intgrtn.elements.appendChild(emailHolder, emailInput); var btnGoToStep2Holder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToStep2 = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep2.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToStep2Holder, btnGoToStep2); var passwordHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-password", }); var passwordLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.password), { class: "intgrtn-label", for: "password", }); var passwordInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var passwordInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", "data-intgrtn-tooltip": window.intgrtn.translate(options.fields.password.tooltip), name: "password", placeholder: window.intgrtn.translate(options.placeholders.password), }); if (options.fields.password.required) { passwordInput.setAttribute("required", ""); } if (options.fields.password.showLabel == true) { window.intgrtn.elements.appendChild(passwordHolder, passwordLabel); } window.intgrtn.elements.appendChild(passwordInputGroup, passwordInput); var passwordEyeIcon = window.intgrtn.elements.create("div", "", { class: "intgrtn-password-eye-icon", }); window.intgrtn.elements.appendChild(passwordInputGroup, passwordEyeIcon); var passwordConfirmHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-password-confirm", }); var passwordConfirmLabel = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.passwordConfirm), { class: "intgrtn-label", for: "passwordConfirm", } ); var passwordConfirmInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var passwordConfirmInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", name: "passwordConfirm", placeholder: window.intgrtn.translate(options.placeholders.passwordConfirm), }); if (options.fields.passwordConfirm.required) { passwordConfirmInput.setAttribute("required", ""); } if (options.fields.passwordConfirm.showLabel == true) { window.intgrtn.elements.appendChild(passwordConfirmHolder, passwordConfirmLabel); } window.intgrtn.elements.appendChild(passwordConfirmInputGroup, passwordConfirmInput); var passwordConfirmEyeIcon = window.intgrtn.elements.create("div", "", { class: "intgrtn-password-eye-icon", }); window.intgrtn.elements.appendChild(passwordConfirmInputGroup, passwordConfirmEyeIcon); var btnGeneratePasswordHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-generate-password-holder", }); var btnGeneratePassword = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.generatePassword.text), { class: "intgrtn-btn-generate-password", type: "button", } ); if (options.buttons.generatePassword.show == false) { passwordInput.setAttribute("type", "password"); passwordInput.setAttribute("autocomplete", "new-password"); passwordConfirmInput.setAttribute("type", "password"); passwordConfirmInput.setAttribute("autocomplete", "new-password"); window.intgrtn.elements.appendChild(passwordHolder, passwordInputGroup); } else { passwordInput.setAttribute("type", "text"); passwordInput.value = window.intgrtn.generatePassword(form); passwordConfirmInput.setAttribute("type", "text"); passwordConfirmInput.value = passwordInput.value; window.intgrtn.elements.addClass(passwordHolder, "has-btn-generate-password"); window.intgrtn.elements.addClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.addClass(passwordConfirmEyeIcon, "intgrtn-visible"); window.intgrtn.elements.appendChild(btnGeneratePasswordHolder, passwordInputGroup); window.intgrtn.elements.appendChild(btnGeneratePasswordHolder, btnGeneratePassword); window.intgrtn.elements.appendChild(passwordHolder, btnGeneratePasswordHolder); } window.intgrtn.elements.appendChild(passwordConfirmHolder, passwordConfirmInputGroup); var btnGoToStep3Holder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToStep3 = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep3.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToStep3Holder, btnGoToStep3); var phoneHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-phone", }); var phoneLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.phone), { class: "intgrtn-label", for: "phone", }); var phoneInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var phoneInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-phone", type: "text", name: "phone", size: "1", placeholder: window.intgrtn.translate(options.placeholders.phone), value: window.intgrtn.lookup("phone", true, ""), }); if (options.fields.phone.required) { phoneInput.setAttribute("required", ""); } var areaCodeInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-area-code", type: "text", name: "areaCode", placeholder: window.intgrtn.translate(options.placeholders.areaCode), value: window.intgrtn.lookup("areaCode", true, ""), "data-country-code": window.intgrtn.lookup("areaCountryCode", true, ""), }); if (options.fields.areaCode.required) { areaCodeInput.setAttribute("required", ""); } if (options.fields.phone.showLabel == true) { window.intgrtn.elements.appendChild(phoneHolder, phoneLabel); } window.intgrtn.elements.appendChild(phoneInputGroup, areaCodeInput); window.intgrtn.elements.appendChild(phoneInputGroup, phoneInput); window.intgrtn.elements.appendChild(phoneHolder, phoneInputGroup); window.intgrtn.generateAreaFlagsDropdown(areaCodeInput, phoneInput); var captchaHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-captcha", }); var captchaLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.captcha), { class: "intgrtn-label", for: "captcha", }); var captchaInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var captchaInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "captcha", placeholder: window.intgrtn.translate(options.placeholders.captcha), value: "", }); var captchaInputHash = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "hidden", name: "captchaHash", value: "", }); var captchaImg = window.intgrtn.elements.create("img", "", { class: "intgrtn-image intgrtn-image-captcha", }); var captchaLoader = window.intgrtn.elements.create("div", "", { class: "intgrtn-icon-loader", }); if (options.fields.captcha.required) { captchaInput.setAttribute("required", ""); } if (options.fields.captcha.showLabel == true) { window.intgrtn.elements.appendChild(captchaHolder, captchaLabel); } window.intgrtn.elements.appendChild(captchaHolder, captchaInputGroup); window.intgrtn.elements.appendChild(captchaInputGroup, captchaLoader); window.intgrtn.elements.appendChild(captchaInputGroup, captchaInput); window.intgrtn.elements.appendChild(captchaHolder, captchaInputHash); var checkboxAgreeTermsHolders = []; switch (typeof options.labels.checkboxAgreeTerms) { case "string": var checkboxAgreeTermsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-checkbox-agree-terms", }); var checkboxAgreeTermsLabel = window.intgrtn.elements.create("label", "", { class: "intgrtn-checkbox-label-agree-terms", }); var checkboxAgreeTerms = window.intgrtn.elements.create("input", "", { class: "intgrtn-checkbox intgrtn-input-checkbox-agree-terms", type: "checkbox", name: "checkboxAgreeTerms", }); if (options.fields.checkboxAgreeTerms.required == true) { window.intgrtn.elements.setAttribute(checkboxAgreeTerms, "required", ""); } window.intgrtn.elements.appendChild(checkboxAgreeTermsLabel, checkboxAgreeTerms); window.intgrtn.elements.appendChild( checkboxAgreeTermsLabel, window.intgrtn.elements.create("span", options.labels.checkboxAgreeTerms, { class: "intgrtn-checkbox-label-agree-terms-text", }) ); window.intgrtn.elements.appendChild(checkboxAgreeTermsHolder, checkboxAgreeTermsLabel); checkboxAgreeTermsHolders.push(checkboxAgreeTermsHolder); break; case "object": options.labels.checkboxAgreeTerms.forEach(function (element, index) { var checkboxAgreeTermsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-checkbox-agree-terms", }); var checkboxAgreeTermsLabel = window.intgrtn.elements.create("label", "", { class: "intgrtn-checkbox-label-agree-terms", }); var checkboxAgreeTerms = window.intgrtn.elements.create("input", "", { class: "intgrtn-checkbox intgrtn-input-checkbox-agree-terms", type: "checkbox", name: "checkboxAgreeTerms" + index, }); if (element.required) { window.intgrtn.elements.setAttribute(checkboxAgreeTerms, "required", ""); } window.intgrtn.elements.appendChild(checkboxAgreeTermsLabel, checkboxAgreeTerms); window.intgrtn.elements.appendChild( checkboxAgreeTermsLabel, window.intgrtn.elements.create("span", element.text, { class: "intgrtn-checkbox-label-agree-terms-text", }) ); window.intgrtn.elements.appendChild(checkboxAgreeTermsHolder, checkboxAgreeTermsLabel); checkboxAgreeTermsHolders.push(checkboxAgreeTermsHolder); }); break; } var btnSubmitHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var btnSubmit = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.submit.text), { class: "intgrtn-btn-submit", type: "submit", } ); window.intgrtn.elements.appendChild(btnSubmitHolder, btnSubmit); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); var loaderTextHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-text-holder", }); var loaderText = window.intgrtn.elements.create("div", window.intgrtn.translate("Loading..."), { class: "intgrtn-loader-text", }); window.intgrtn.elements.appendChild(loaderHolder, loaderTextHolder); window.intgrtn.elements.appendChild(loaderTextHolder, loader); window.intgrtn.elements.appendChild(loaderTextHolder, loaderText); var formMessageErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-error", }); var formMessageSuccessHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-success", }); // SMS Verification var smsVerificationEnabledMessage = window.intgrtn.elements.create( "div", options.smsVerification.text.IsEnabledMessage, { class: "intgrtn-sms-verification-text", } ); var btnGoToStep3Holder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToStep3 = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep2.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToStep3Holder, btnGoToStep3); var btnGoToSmsVerificationHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-go-to-step-holder", }); var btnGoToSmsVerification = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.goToStep2.text), { class: "intgrtn-btn-go-to-step", type: "button", } ); window.intgrtn.elements.appendChild(btnGoToSmsVerificationHolder, btnGoToSmsVerification); var smsVerificationTitle = window.intgrtn.elements.create("h2", options.headings.smsVerification.title, { class: "intgrtn-sms-verification-title", }); var codeInputMessage = window.intgrtn.elements.create("div", options.smsVerification.text.codeInputMessage, { class: "intgrtn-sms-verification-code-label", }); var smsVerificationCodeHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-sms-code", }); var smsVerificationCode = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-sms-code", type: "text", name: "smsVerificationCode", placeholder: window.intgrtn.translate(options.placeholders.smsVerificationCode), value: window.intgrtn.lookup("smsVerificationCode", true, ""), }); if (options.fields.smsVerificationCode.required) { smsVerificationCode.setAttribute("required", ""); } window.intgrtn.elements.appendChild(smsVerificationCodeHolder, codeInputMessage); window.intgrtn.elements.appendChild(smsVerificationCodeHolder, smsVerificationCode); var countdownHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-countdown-holder", }); var countdownText = window.intgrtn.elements.create("span", options.smsVerification.text.timerMessage, { class: "intgrtn-label", }); var resentCodeButton = window.intgrtn.elements.create( "button", options.buttons.smsVerification.resentCode.text, { class: "intgrtn-sms-verification-resend-button", type: "button", } ); resentCodeButton.setAttribute("disabled", true); var seconds = window.intgrtn.elements.create("span", "", { class: "intgrtn-label intgrtn-countdown-seconds", }); window.intgrtn.elements.appendChild(countdownHolder, countdownText); window.intgrtn.elements.appendChild(countdownHolder, resentCodeButton); window.intgrtn.elements.appendChild(countdownHolder, seconds); window.intgrtn.elements.appendChild(smsVerificationCodeHolder, countdownHolder); var smsVerificationCodeSectionButtonsHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var smsVerificationBackButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.smsVerification.back.text), { class: "intgrtn-btn-submit intgrtn-btn-back", type: "button", } ); var smsVerificationVerifyButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.smsVerification.verify.text), { class: "intgrtn-btn-submit intgrtn-btn-verify-code", type: "submit", } ); window.intgrtn.elements.appendChild(smsVerificationCodeSectionButtonsHolder, smsVerificationBackButton); window.intgrtn.elements.appendChild(smsVerificationCodeSectionButtonsHolder, smsVerificationVerifyButton); window.intgrtn.elements.appendChild(step1, firstNameHolder); window.intgrtn.elements.appendChild(step1, lastNameHolder); window.intgrtn.elements.appendChild(step1, emailHolder); window.intgrtn.elements.appendChild(step1, btnGoToStep2Holder); window.intgrtn.elements.appendChild(step2, passwordHolder); if (options.fields.passwordConfirm.show == true) { window.intgrtn.elements.appendChild(step2, passwordConfirmHolder); } window.intgrtn.elements.appendChild(step2, btnGoToStep3Holder); window.intgrtn.elements.appendChild(step3, phoneHolder); window.intgrtn.elements.appendChild(step4, smsVerificationTitle); window.intgrtn.elements.appendChild(step4, smsVerificationCodeHolder); window.intgrtn.elements.appendChild(step4, smsVerificationCodeSectionButtonsHolder); var checkboxOuterHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-checkbox-outer-holder", }); if (options.fields.checkboxAgreeTerms.show == true) { window.intgrtn.elements.appendChild(step3, checkboxOuterHolder); checkboxAgreeTermsHolders.forEach(function (item) { window.intgrtn.elements.appendChild(checkboxOuterHolder, item); }); } /** * Custom Fields start */ window.intgrtn.getProjectDetails(function (response) { if (response.data.customFields) { window.intgrtn .generateCustomFields(response.data.customFields, { show: { labels: options.fields.labels.show, }, }) .forEach(function (item) { window.intgrtn.elements.appendChild(step3, item); }); } var captchaAttempts = 3; if (response.data.project.details.captchaAttempts) { captchaAttempts = response.data.project.details.captchaAttempts; } if (options.fields.captcha.show == true && response.data.captcha.count >= captchaAttempts) { window.intgrtn.elements.appendChild(step3, captchaHolder); window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } if (options.fields.smsVerificationCode.show == true) { window.intgrtn.elements.appendAfter(smsVerificationEnabledMessage, phoneHolder); window.intgrtn.elements.appendChild(step3, btnGoToSmsVerificationHolder); } else { window.intgrtn.elements.appendChild(step3, btnSubmitHolder); } }); /** * Custom Fields end */ // window.intgrtn.elements.appendChild(step3, btnSubmitHolder); window.intgrtn.elements.appendChild(form, loaderHolder); if (options.steps.show) { window.intgrtn.elements.appendChild(form, stepsNavigation); } window.intgrtn.elements.appendChild(form, stepsHolder); if (options.fields.password.verboseErrors.enabled == true) { window.intgrtn.elements.setAttribute(passwordInput, "data-intgrtn-tooltip", ""); var inputErrorHolderVerbose = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-message-error-verbose", }); for (var i = 0; i < options.fields.password.verboseErrors.messages.length; i++) { var currentMessage = options.fields.password.verboseErrors.messages[i]; if ( currentMessage.id == "passwordRegExp1Lowercase" && options.fields.password.patternLowercaseLetter === false ) { continue; } else if ( currentMessage.id == "passwordRegExp1Uppercase" && options.fields.password.patternUppercaseLetter === false ) { continue; } else if ( currentMessage.id == "passwordRegExpNoSpecialChars" && options.fields.password.patternNoSpecialChars === false ) { continue; } else if ( currentMessage.id == "passwordRegExpNumber" && options.fields.password.patternNumber === false ) { continue; } else if ( currentMessage.id == "passwordRegExpLetter" && options.fields.password.patternLetter === false ) { continue; } else if ( currentMessage.id == "passwordConfirmMatch" && options.fields.passwordConfirm.show == false ) { continue; } var currentClasses = "intgrtn-single-message intgrtn-untouched"; var currentMessageText = window.intgrtn .translate(currentMessage.text) .replace(/{{passwordMinLength}}/g, options.fields.password.minLength) .replace(/{{passwordMaxLength}}/g, options.fields.password.maxLength); var currentEntry = window.intgrtn.elements.create("div", currentMessageText, { class: currentClasses, "data-intgrtn-message-id": currentMessage.id, }); window.intgrtn.elements.appendChild(inputErrorHolderVerbose, currentEntry); } if (options.fields.passwordConfirm.show == true) { window.intgrtn.elements.appendChild(passwordConfirmHolder, inputErrorHolderVerbose); } else { window.intgrtn.elements.appendChild(passwordHolder, inputErrorHolderVerbose); } window.intgrtn.elements.on(passwordInput, "input", function (e) { window.intgrtn.validateSignupFormVerboseMessages(form); }); window.intgrtn.elements.on(passwordConfirmInput, "input", function (e) { window.intgrtn.validateSignupFormVerboseMessages(form); }); } if (!window.intgrtn.lookup("areaCode", true)) { window.intgrtn.getProjectDetails(function (response) { if (response.data.client.location.areaCode) { areaCodeInput.value = response.data.client.location.areaCode; } }); } /** * Remove non numeric symbols from phone input */ window.intgrtn.elements.on(phoneInput, "input", function (e) { setTimeout(function () { var filteredValue = phoneInput.value.replace(/\D/g, ""); if (filteredValue !== phoneInput.value) { phoneInput.value = filteredValue; window.intgrtn.elements.trigger(phoneInput, "input"); window.intgrtn.elements.trigger(phoneInput, "change"); } }, 100); }); window.intgrtn.elements.on(passwordEyeIcon, "click", function (e) { if (window.intgrtn.elements.hasClass(passwordEyeIcon, "intgrtn-visible") == true) { window.intgrtn.elements.removeClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordInput, "type", "password"); } else { window.intgrtn.elements.addClass(passwordEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordInput, "type", "text"); } }); window.intgrtn.elements.on(passwordConfirmEyeIcon, "click", function (e) { if (window.intgrtn.elements.hasClass(passwordConfirmEyeIcon, "intgrtn-visible") == true) { window.intgrtn.elements.removeClass(passwordConfirmEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordConfirmInput, "type", "password"); } else { window.intgrtn.elements.addClass(passwordConfirmEyeIcon, "intgrtn-visible"); window.intgrtn.elements.setAttribute(passwordConfirmInput, "type", "text"); } }); window.intgrtn.elements.on(btnGeneratePassword, "click", function (e) { passwordInput.value = window.intgrtn.generatePassword(form); window.intgrtn.elements.trigger(passwordInput, "input"); window.intgrtn.elements.trigger(passwordInput, "change"); passwordConfirmInput.value = passwordInput.value; window.intgrtn.elements.trigger(passwordConfirmInput, "input"); window.intgrtn.elements.trigger(passwordConfirmInput, "change"); }); window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "input", function (e) { if (window.intgrtn.elements.hasClass(element.closest(".intgrtn-step"), "intgrtn-submitted")) { if (element && element.getAttribute("data-intgrtn-validate-events-name-suffix")) { options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } window.intgrtn.validateSignupForm(form, { fireEvents: false, eventNameSuffix: options.validateEvents.eventNameSuffix, }); } }); }); window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "keyup blur", function (e) { switch (this.getAttribute("name")) { case "firstName": window.intgrtn.validate.signupForm.firstName(element); break; case "lastName": window.intgrtn.validate.signupForm.lastName(element); break; case "email": window.intgrtn.validate.signupForm.email(element); break; case "phone": window.intgrtn.validate.signupForm.phone(element); break; case "password": window.intgrtn.validate.signupForm.password(element); break; case "passwordConfirm": window.intgrtn.validate.signupForm.passwordConfirm( window.intgrtn.elements.findFirst("[name='password']", form), element ); break; } }); }); window.intgrtn.elements.on(btnGoToStep2, "click", function (e) { form.intgrtn.goToStep(2); }); window.intgrtn.elements.on(btnGoToStep3, "click", function (e) { form.intgrtn.goToStep(3); }); window.intgrtn.elements.on(btnGoToSmsVerification, "click", function (e) { form.intgrtn.goToStep(4); }); window.intgrtn.elements.on(smsVerificationBackButton, "click", function (e) { form.intgrtn.goToStep(3); }); window.intgrtn.elements.on(resentCodeButton, "click", function (e) { if (intervalForSmsVerification != null) { return; } /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.getVerificationCode( { phone: window.intgrtn.elements.findFirst("[name='phone']", form).value, areaCode: window.intgrtn.elements.findFirst("[name='areaCode']", form).value, }, function (response) { window.intgrtn.elements.removeClass(loaderHolder, "show"); var counter = 30; intervalForSmsVerification = setInterval(() => { if (counter > 0) { seconds.innerHTML = "(" + counter + " sec.)"; counter--; return; } seconds.innerHTML = "(" + counter + " sec.)"; window.intgrtn.elements.removeAttribute(resentCodeButton, "disabled"); clearInterval(intervalForSmsVerification); intervalForSmsVerification = null; }, 1000); window.intgrtn.elements.setAttribute(resentCodeButton, "disabled", "disabled"); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.message); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); }, function (response, statusCode) { window.intgrtn.elements.removeClass(loaderHolder, "show"); if (response.message) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.message); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "Can't send SMS. An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); } ); }); window.intgrtn.elements.on(form, "submit", function (e) { e.preventDefault(); if (currentStep < 3) { form.intgrtn.goToStep(currentStep + 1); return false; } if (options.fields.smsVerificationCode.show == true) { if (currentStep < 4) { form.intgrtn.goToStep(currentStep + 1); return false; } } var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var password = window.intgrtn.elements.findFirst("[name='password']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var captcha = window.intgrtn.elements.findFirst("[name='captcha']", form); var captchaHash = window.intgrtn.elements.findFirst("[name='captchaHash']", form); var smsVerificationCode = window.intgrtn.elements.findFirst("[name='smsVerificationCode']", form); var customFieldsInputs = window.intgrtn.elements.find("[data-user-custom-field-id]", form); window.intgrtn.elements.addClass( window.intgrtn.elements.findFirst(".intgrtn-step.intgrtn-active", form), "intgrtn-submitted" ); window.intgrtn.elements.addClass(form, "intgrtn-form-submitted"); window.intgrtn.elements.removeClass(form, "intgrtn-form-success"); /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (element && element.getAttribute("data-intgrtn-validate-events-name-suffix")) { options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } var platforms = []; var excludePlatforms = []; if (window.intgrtn.lookup("platforms", true)) { platforms = window.intgrtn.lookup("platforms", true).split(","); } if (window.intgrtn.lookup("excludePlatforms", true)) { excludePlatforms = window.intgrtn.lookup("excludePlatforms", true).split(","); } if (element) { if (element.getAttribute("data-intgrtn-platforms")) { platforms = element.getAttribute("data-intgrtn-platforms").split(","); } if (element.getAttribute("data-intgrtn-exclude-platforms")) { excludePlatforms = element.getAttribute("data-intgrtn-exclude-platforms").split(","); } if (element.getAttribute("data-intgrtn-on-success-redirect-url") !== null) { options.onSuccess.redirectUrl = element.getAttribute("data-intgrtn-on-success-redirect-url"); } if (element.getAttribute("data-intgrtn-on-success-auto-redirect")) { options.onSuccess.autoRedirect = element.getAttribute("data-intgrtn-on-success-auto-redirect") == 1; } if (element.getAttribute("data-intgrtn-on-success-redirect-top")) { options.onSuccess.redirectTop = element.getAttribute("data-intgrtn-on-success-redirect-top") == 1; } } var params = { clickID: window.intgrtn.lookup("clickID", true), custom: window.intgrtn.lookup("custom", true), custom1: window.intgrtn.lookup("custom1", true), custom2: window.intgrtn.lookup("custom2", true), custom3: window.intgrtn.lookup("custom3", true), custom4: window.intgrtn.lookup("custom4", true), custom5: window.intgrtn.lookup("custom5", true), autoSignup: window.intgrtn.lookup("autoSignup", true), isTest: window.intgrtn.lookup("isTest", true), bid: window.intgrtn.lookup("bID", true), baa: window.intgrtn.lookup("baa", true), ip: window.intgrtn.lookup("ip", true), locale: window.intgrtn.lookup("locale", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), comment: window.intgrtn.lookup("comment", true), firstName: firstName.value.trim(), lastName: lastName.value.trim(), email: email.value, password: password.value, areaCode: areaCode.value, phone: phone.value, platforms: platforms, excludePlatforms: excludePlatforms, }; /** * Mapping user custom fields , setting new param.customFields */ params.customFields = window.intgrtn.mapCustomFieldsInputsToCustomFieldParams(customFieldsInputs); /** * Get custom fields from cookies */ var intgrtnCustomFields = window.intgrtn.cookies.get("intgrtn_customFields"); if (intgrtnCustomFields) { intgrtnCustomFields = JSON.parse(intgrtnCustomFields); Object.keys(intgrtnCustomFields).forEach(function (key) { var check = params.customFields.filter(function (field) { if (field.userCustomFieldID == key) { return true; } return false; }); if (check.length == 0) { params.customFields.push({ value: intgrtnCustomFields[key], userCustomFieldID: key, }); } }); } if (captcha) { params.captcha = captcha.value; params.captchaHash = captchaHash.value; } if (smsVerificationCode) { params.smsVerificationCode = smsVerificationCode.value.trim(); } if (element && element.getAttribute("data-intgrtn-additional-params")) { options.additionalParams = window.intgrtn.merge( options.additionalParams, window.intgrtn.parseQuery(element.getAttribute("data-intgrtn-additional-params")) ); } params = window.intgrtn.merge(params, options.additionalParams); window.intgrtn.fireEvent({ name: "intgrtn-form-signup-submit" + options.validateEvents.eventNameSuffix, value: JSON.stringify(params), }); var signupFormFullValidation = window.intgrtn.validateSignupForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }); if (signupFormFullValidation) { window.intgrtn.store("firstName", firstName.value.trim()); window.intgrtn.store("lastName", lastName.value.trim()); window.intgrtn.store("email", email.value); window.intgrtn.store("areaCode", areaCode.value); window.intgrtn.store("areaCountryCode", areaCode.getAttribute("data-country-code")); window.intgrtn.store("phone", phone.value); window.intgrtn.elements.addClass(form, "intgrtn-form-loading"); window.intgrtn.elements.setAttribute(btnSubmit, "disabled", "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.setAttribute(element, "disabled", "disabled"); }); /* Make request */ window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendSignupRequest( params, function (response, statusCode) { window.intgrtn.store("signupRequestID", response.data.signupRequestID, 2); formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.messages[0]); var executeActionsAfterSignup = function () { window.intgrtn.elements.addClass(form, "intgrtn-form-success"); window.intgrtn.getProjectDetails(function (projectDetailsResponse) { if (!projectDetailsResponse.data.project.afterSignupModalURL) { if (options.onSuccess.autoRedirect) { /** Redirect */ if (options.onSuccess.redirectUrl) { if (options.onSuccess.redirectTop == true) { window.top.location.href = options.onSuccess.redirectUrl; } else { window.location.href = options.onSuccess.redirectUrl; } } else { window.intgrtn.goToBrokerLoginUrlBySignupRequestResponse( response, options.onSuccess.redirectTop ); } } } else { /** Show after signup modal */ var afterSignupParams = { language: window.intgrtn.lookup("language", true), signupRequestID: response.data.signupRequestID, advertiserName: response.data.broker.name, advertiserLogo: response.data.broker.logo, }; afterSignupParams = window.intgrtn.merge(params, afterSignupParams); window.intgrtn.options.afterSignupModal.modal = window.intgrtn.generateAfterSignupModal({ url: projectDetailsResponse.data.project.afterSignupModalURL, getParameters: afterSignupParams, }); window.intgrtn.options.afterSignupModal.modal.intgrtnModal.show(); } window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.setHtml( loaderText, window.intgrtn.translate( "You have signup successfully! Please wait while we redirect you..." ) ); window.intgrtn.events.trigger("form.signup.success", form, response); }); }; window.intgrtn.elements.setHtml( loaderText, window.intgrtn.translate( "Please wait while we are preparing your account... This process can take up to 5 seconds..." ) ); window.intgrtn.firePostbacksBySignupRequestResponse( response, function () { executeActionsAfterSignup(); }, function () { executeActionsAfterSignup(); } ); }, function (response, statusCode) { if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.messages[0]); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.addClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeAttribute(element, "disabled", "disabled"); }); /** * Regenerate captcha image */ if (options.fields.captcha.show == true) { window.intgrtn.getProjectDetails(function (response) { var captchaAttempts = 3; if (response.data.project.details.captchaAttempts) { captchaAttempts = response.data.project.details.captchaAttempts; } if (response.data.captcha.count >= captchaAttempts) { if (!window.intgrtn.elements.findFirst(".intgrtn-input-holder-captcha", form)) { window.intgrtn.elements.appendAfter(captchaHolder, phoneHolder); window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } else { window.intgrtn.elements.remove(captchaImg); window.intgrtn.elements.prepend(captchaInputGroup, captchaLoader); captchaInput.value = ""; window.intgrtn.getCaptcha({}, function (response) { captchaInputHash.value = response.details.hash; captchaImg.src = response.details.image; window.intgrtn.elements.prepend(captchaInputGroup, captchaImg); window.intgrtn.elements.remove(captchaLoader); }); } } }); } window.intgrtn.events.trigger("form.signup.error", form, response); }, { eventNameSuffix: options.validateEvents.eventNameSuffix, } ); } window.intgrtn.events.trigger("form.signup.submit", form); }); if (element) { window.intgrtn.elements.setHtml(element, form); } return form; }; window.intgrtn.generateContactUsForm = function (options) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.forms.contactUs, options); var form = window.intgrtn.elements.create("form", "", { name: "intgrtnFormContactUs", novalidate: "", class: "intgrtn-form-contact-us", }); var firstNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-first-name", }); var firstNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "firstName", placeholder: window.intgrtn.translate(options.placeholders.firstName), required: "", value: window.intgrtn.lookup("firstName", true, ""), }); window.intgrtn.elements.appendChild(firstNameHolder, firstNameInput); var lastNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-last-name", }); var lastNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "lastName", placeholder: window.intgrtn.translate(options.placeholders.lastName), required: "", value: window.intgrtn.lookup("lastName", true, ""), }); window.intgrtn.elements.appendChild(lastNameHolder, lastNameInput); var emailHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-email", }); var emailInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "email", name: "email", placeholder: window.intgrtn.translate(options.placeholders.email), required: "", value: window.intgrtn.lookup("email", true, ""), }); window.intgrtn.elements.appendChild(emailHolder, emailInput); var phoneHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-phone", }); var phoneInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var phoneInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-phone", type: "text", name: "phone", size: "1", placeholder: window.intgrtn.translate(options.placeholders.phone), value: window.intgrtn.lookup("phone", true, ""), }); var areaCodeInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-area-code", type: "text", name: "areaCode", placeholder: window.intgrtn.translate(options.placeholders.areaCode), value: window.intgrtn.lookup("areaCode", true, ""), "data-country-code": window.intgrtn.lookup("areaCountryCode", true, ""), }); window.intgrtn.elements.appendChild(phoneInputGroup, areaCodeInput); window.intgrtn.elements.appendChild(phoneInputGroup, phoneInput); window.intgrtn.elements.appendChild(phoneHolder, phoneInputGroup); window.intgrtn.generateAreaFlagsDropdown(areaCodeInput, phoneInput); var typeHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-type", }); var typeSelect = window.intgrtn.elements.create("select", "", { class: "intgrtn-select", name: "type", required: "", value: "", title: window.intgrtn.translate(options.placeholders.type), }); var subjectHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-subject", }); var subjectInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "subject", placeholder: window.intgrtn.translate(options.placeholders.subject), required: "", value: "", }); window.intgrtn.elements.appendChild(subjectHolder, subjectInput); var messageHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-message", }); var messageInput = window.intgrtn.elements.create("textarea", "", { class: "intgrtn-textarea", name: "message", placeholder: window.intgrtn.translate(options.placeholders.message), required: "", }); var messageInputHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-textarea-holder", }); window.intgrtn.elements.appendChild(messageInputHolder, messageInput); window.intgrtn.elements.appendChild(messageHolder, messageInputHolder); var btnSubmitHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var btnSubmit = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.submit.text), { class: "intgrtn-btn-submit", } ); window.intgrtn.elements.appendChild(btnSubmitHolder, btnSubmit); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); window.intgrtn.elements.appendChild(loaderHolder, loader); window.intgrtn.elements.appendChild(form, firstNameHolder); window.intgrtn.elements.appendChild(form, lastNameHolder); window.intgrtn.elements.appendChild(form, emailHolder); window.intgrtn.elements.appendChild(form, phoneHolder); window.intgrtn.elements.appendChild(form, typeHolder); window.intgrtn.elements.appendChild(form, subjectHolder); window.intgrtn.elements.appendChild(form, messageHolder); window.intgrtn.elements.appendChild(form, btnSubmitHolder); window.intgrtn.elements.appendChild(form, loaderHolder); window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.getProjectDetails(function (response) { response.data.contact.types.forEach(function (type) { var name = type.name; var option = window.intgrtn.elements.create("option", window.intgrtn.translate(name), { value: type.ID, }); window.intgrtn.elements.appendChild(typeSelect, option); }); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.appendChild(typeHolder, typeSelect); }); if (!window.intgrtn.lookup("areaCode", true)) { window.intgrtn.getProjectDetails(function (response) { if (response.data.client.location.areaCode) { areaCodeInput.value = response.data.client.location.areaCode; } }); } /** * Remove non numeric symbols from phone input */ window.intgrtn.elements.on(phoneInput, "input", function (e) { setTimeout(function () { var filteredValue = phoneInput.value.replace(/\D/g, ""); if (filteredValue !== phoneInput.value) { phoneInput.value = filteredValue; window.intgrtn.elements.trigger(phoneInput, "input"); window.intgrtn.elements.trigger(phoneInput, "change"); } }, 100); }); window.intgrtn.elements.find("input, textarea", form).forEach(function (element) { window.intgrtn.elements.on(element, "input", function (e) { if (window.intgrtn.elements.hasClass(form, "intgrtn-form-submitted")) { window.intgrtn.validateContactUsForm(form); } }); }); window.intgrtn.elements.on(form, "submit", function (e) { var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var type = window.intgrtn.elements.findFirst("[name='type']", form); var subject = window.intgrtn.elements.findFirst("[name='subject']", form); var message = window.intgrtn.elements.findFirst("[name='message']", form); var formMessageErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-error", }); var formMessageSuccessHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-success", }); window.intgrtn.elements.addClass(form, "intgrtn-form-submitted"); window.intgrtn.elements.removeClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-success"); /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (window.intgrtn.validateContactUsForm(form)) { window.intgrtn.store("firstName", firstName.value.trim()); window.intgrtn.store("lastName", lastName.value.trim()); window.intgrtn.store("email", email.value); window.intgrtn.elements.addClass(form, "intgrtn-form-loading"); window.intgrtn.elements.setAttribute(btnSubmit, "disabled", "disabled"); /* Make request */ window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendContactUsRequest( { clickID: window.intgrtn.lookup("clickID", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), type: type.value, firstName: firstName.value.trim(), lastName: lastName.value.trim(), email: email.value, areaCode: areaCode.value, phone: phone.value, subject: subject.value, message: message.value, }, function (response, statusCode) { formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.messages[0]); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.addClass(form, "intgrtn-form-success"); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.events.trigger("form.contactUs.success", form, response); var supportLink = options.customEndpoint.replace( "{{contactRequestHashedId}}", response.data.contactRequestHashedId ); var message = window.intgrtn .translate( "Your support ticket has been sent successfully. Once we respond, you will receive an email notification from {{fromEmail}}. Make sure you check your spam/junk folders.
Click here to access the ticket URL." ) .replace(/{{fromEmail}}/g, response.data.fromEmail) .replace(/{{supportLink}}/g, supportLink); var modal = window.intgrtn.generateBasicMessageModal({ title: window.intgrtn.translate(response.messages[0]), message: message, }); modal.intgrtnModal.show(); }, function (response, statusCode) { if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.messages[0]); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.addClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.events.trigger("form.contactUs.error", form, response); } ); } window.intgrtn.events.trigger("form.contactUs.submit", form); e.preventDefault(); }); return form; }; window.intgrtn.generateAfterSignupModal = function (options) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.afterSignupModal, options); var titleText = ""; var afterSignupModal = window.intgrtn.generateModal(titleText, "", { class: "intgrtn-modal-after-signup-popup", disableClose: options.disableClose, hideCloseButton: options.hideCloseButton, }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", afterSignupModal); var iframeHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-after-signup-popup-iframe-holder", }); var iframe = window.intgrtn.elements.create("iframe", "", { class: "intgrtn-after-signup-popup-iframe", sandbox: "allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts allow-top-navigation allow-top-navigation-by-user-activation", }); //combine nodes window.intgrtn.elements.appendChild(iframeHolder, iframe); window.intgrtn.elements.appendChild(modalBody, iframeHolder); var modalUrl = options.url; if (options.getParameters) { Object.entries(options.getParameters).forEach(function (params) { [name, value] = params; if (name == "password" || value == null || value == "") { return; } modalUrl += (modalUrl.indexOf("?") === -1 ? "?" : "&") + "intgrtn_" + name + "=" + encodeURIComponent(value); }); } window.intgrtn.elements.setAttribute(iframe, "src", modalUrl); afterSignupModal.intgrtnExitPopup = {}; window.intgrtn.events.on("modal.show", function (modal) { if (afterSignupModal !== modal) { return false; } window.intgrtn.fireEvent({ name: "show--after-signup-modal", }); }); window.intgrtn.elements.on(window, "message", function (event) { if (typeof event.data == "string" && event.data.match(/^intgrtn-after-signup-height-([0-9]+)$/)) { var height = event.data.match(/^intgrtn-after-signup-height-([0-9]+)$/)[1]; iframe.style.minHeight = height + "px"; } }); return afterSignupModal; }; window.intgrtn.generateExitPopupModal = function (options) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.exitPopup, options); var titleText = ""; var exitPopupModal = window.intgrtn.generateModal(titleText, "", { class: "intgrtn-modal-exit-popup", disableClose: options.disableClose, removeFromDOM: options.preloadUrl == false, }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", exitPopupModal); var iframeHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-exit-popup-iframe-holder", }); var iframe = window.intgrtn.elements.create("iframe", "", { class: "intgrtn-exit-popup-iframe", }); //combine nodes window.intgrtn.elements.appendChild(iframeHolder, iframe); window.intgrtn.elements.appendChild(modalBody, iframeHolder); if (options.url && !options.html) { window.intgrtn.elements.setAttribute(iframe, "src", options.url); } else if (options.html) { if (iframe.contentWindow) { iframe.contentWindow.document.open(); iframe.contentWindow.document.write(options.html); iframe.contentWindow.document.close(); } else { iframe.onload = function () { iframe.contentWindow.document.open(); iframe.contentWindow.document.write(options.html); iframe.contentWindow.document.close(); }; } } exitPopupModal.intgrtnExitPopup = {}; exitPopupModal.intgrtnExitPopup.countShows = 0; exitPopupModal.intgrtnExitPopup.disabledFromDelay = false; exitPopupModal.intgrtnExitPopup.disabledFromCount = false; exitPopupModal.intgrtnExitPopup.disabledFromScroll = false; exitPopupModal.intgrtnExitPopup.disabledFromFirstLoadDelay = false; window.intgrtn.events.on("modal.show", function (modal) { if (exitPopupModal !== modal) { return false; } window.intgrtn.fireEvent({ name: "show-offer-exit-popup", }); exitPopupModal.intgrtnExitPopup.countShows++; if ( window.intgrtn.options.exitPopup.showLimit !== null && exitPopupModal.intgrtnExitPopup.countShows >= window.intgrtn.options.exitPopup.showLimit ) { exitPopupModal.intgrtnExitPopup.disabledFromCount = true; } }); window.intgrtn.events.on("modal.hide", function (modal) { if (exitPopupModal !== modal) { return false; } window.intgrtn.fireEvent({ name: "hide-offer-exit-popup", }); if ( window.intgrtn.options.exitPopup.delayInterval !== null && window.intgrtn.options.exitPopup.delayInterval !== 0 ) { exitPopupModal.intgrtnExitPopup.disabledFromDelay = true; setTimeout(function () { exitPopupModal.intgrtnExitPopup.disabledFromDelay = false; }, parseInt(window.intgrtn.options.exitPopup.delayInterval) * 1000); } if (window.intgrtn.options.exitPopup.disableUntilScroll == 1) { exitPopupModal.intgrtnExitPopup.disabledFromScroll = true; } }); window.intgrtn.elements.on(window, "message", function (event) { if (event.data == "intgrtn-exit-popup-close") { if (exitPopupModal.intgrtnModal) { exitPopupModal.intgrtnModal.hide(); } } else if (typeof event.data == "string" && event.data.match(/^intgrtn-exit-popup-height-([0-9]+)$/)) { var height = event.data.match(/^intgrtn-exit-popup-height-([0-9]+)$/)[1]; iframe.style.minHeight = height + "px"; } }); return exitPopupModal; }; window.intgrtn.isMobileDevice = function () { var check = false; (function (a) { if ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test( a ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test( a.substr(0, 4) ) ) check = true; })(navigator.userAgent || navigator.vendor || window.opera); return check; }; window.intgrtn.toJSDate = function (dateTime) { var dateTime = dateTime.split(" "); //dateTime[0] = date, dateTime[1] = time //yyyy-mm-dd hh:mm:ss var date = dateTime[0].split("-"); var time = dateTime[1].split(":"); //(year, month, day, hours, minutes, seconds, milliseconds) return new Date(date[0], date[1], date[2], time[0], time[1], time[2], 0); }; window.intgrtn.inIframe = function () { try { return window.self !== window.top; } catch (e) { return true; } }; window.intgrtn.getViewportWidth = function () { return Math.max(document.documentElement.clientWidth, window.innerWidth || 0); }; window.intgrtn.getViewportHeight = function () { return Math.max(document.documentElement.clientHeight, window.innerHeight || 0); }; window.intgrtn.getContactRequestMessageBox = function ( options /* {styleMode: (1,2), messageText: '', userName: '', date: '' } */ ) { var result; var messageBoxClasses = "intgrtn-message-box"; if (options.styleMode == 1) messageBoxClasses = messageBoxClasses + " style1"; if (options.styleMode == 2) messageBoxClasses = messageBoxClasses + " style2"; var messageBox = window.intgrtn.elements.create("div", options.messageText, { class: messageBoxClasses, }); var userPanel = window.intgrtn.elements.create("div", "", { class: "intgrtn-user-panel", }); var userPanelUserName = window.intgrtn.elements.create("div", options.userName, { class: "intgrtn-user-name", }); var userPanelDate = window.intgrtn.elements.create("div", options.date, { class: "intgrtn-date", }); window.intgrtn.elements.appendChild(userPanel, userPanelUserName); window.intgrtn.elements.appendChild(userPanel, userPanelDate); window.intgrtn.elements.appendChild(messageBox, userPanel); result = messageBox; return result; }; // window.intgrtn.getContactRequestMessageBox window.intgrtn.generateOptinForm = function (options) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.forms.optin, options); var form = window.intgrtn.elements.create("form", "", { name: "intgrtnFormOptin", novalidate: "", class: "intgrtn-form-optin", }); form.intgrtn = { options: options, }; var nameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-name", }); var nameLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.name), { class: "intgrtn-label", for: "name", }); var nameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "name", placeholder: window.intgrtn.translate(options.placeholders.name), value: window.intgrtn.lookup("name", true, ""), }); if (options.fields.name.required == true) { window.intgrtn.elements.setAttribute(nameInput, "required", ""); } if (options.fields.name.showLabel == true) { window.intgrtn.elements.appendChild(nameHolder, nameLabel); } window.intgrtn.elements.appendChild(nameHolder, nameInput); var firstNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-first-name", }); var firstNameLabel = window.intgrtn.elements.create( "label", window.intgrtn.translate(options.labels.firstName), { class: "intgrtn-label", for: "firstName", } ); var firstNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "firstName", placeholder: window.intgrtn.translate(options.placeholders.firstName), value: window.intgrtn.lookup("firstName", true, ""), }); if (options.fields.firstName.required == true) { window.intgrtn.elements.setAttribute(firstNameInput, "required", ""); } if (options.fields.firstName.showLabel == true) { window.intgrtn.elements.appendChild(firstNameHolder, firstNameLabel); } window.intgrtn.elements.appendChild(firstNameHolder, firstNameInput); var lastNameHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-last-name", }); var lastNameLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.lastName), { class: "intgrtn-label", for: "lastName", }); var lastNameInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "text", name: "lastName", placeholder: window.intgrtn.translate(options.placeholders.lastName), value: window.intgrtn.lookup("lastName", true, ""), }); if (options.fields.lastName.required == true) { window.intgrtn.elements.setAttribute(lastNameInput, "required", ""); } if (options.fields.lastName.showLabel == true) { window.intgrtn.elements.appendChild(lastNameHolder, lastNameLabel); } window.intgrtn.elements.appendChild(lastNameHolder, lastNameInput); var emailHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-email", }); var emailLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.email), { class: "intgrtn-label", for: "email", }); var emailInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input", type: "email", name: "email", placeholder: window.intgrtn.translate(options.placeholders.email), value: window.intgrtn.lookup("email", true, ""), }); if (options.fields.email.required == true) { window.intgrtn.elements.setAttribute(emailInput, "required", ""); } if (options.fields.email.showLabel == true) { window.intgrtn.elements.appendChild(emailHolder, emailLabel); } window.intgrtn.elements.appendChild(emailHolder, emailInput); var phoneHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-holder intgrtn-input-holder-phone", }); var phoneInputGroup = window.intgrtn.elements.create("div", "", { class: "intgrtn-input-group", }); var phoneLabel = window.intgrtn.elements.create("label", window.intgrtn.translate(options.labels.phone), { class: "intgrtn-label", for: "phone", }); var phoneInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-phone", type: "text", name: "phone", size: "1", placeholder: window.intgrtn.translate(options.placeholders.phone), value: window.intgrtn.lookup("phone", true, ""), }); if (options.fields.phone.required == true) { window.intgrtn.elements.setAttribute(phoneInput, "required", ""); } var areaCodeInput = window.intgrtn.elements.create("input", "", { class: "intgrtn-input intgrtn-input-area-code", type: "text", name: "areaCode", placeholder: window.intgrtn.translate(options.placeholders.areaCode), value: window.intgrtn.lookup("areaCode", true, ""), "data-country-code": window.intgrtn.lookup("areaCountryCode", true, ""), }); if (options.fields.phone.required == true) { window.intgrtn.elements.setAttribute(areaCodeInput, "required", ""); } if (options.fields.phone.showLabel == true) { window.intgrtn.elements.appendChild(phoneHolder, phoneLabel); } window.intgrtn.elements.appendChild(phoneInputGroup, areaCodeInput); window.intgrtn.elements.appendChild(phoneInputGroup, phoneInput); window.intgrtn.elements.appendChild(phoneHolder, phoneInputGroup); window.intgrtn.generateAreaFlagsDropdown(areaCodeInput, phoneInput); var btnSubmitHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var btnSubmit = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.submit.text), { class: "intgrtn-btn-submit", } ); window.intgrtn.elements.appendChild(btnSubmitHolder, btnSubmit); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); window.intgrtn.elements.appendChild(loaderHolder, loader); if (options.fields.name.show == true) { window.intgrtn.elements.appendChild(form, nameHolder); } if (options.fields.firstName.show == true) { window.intgrtn.elements.appendChild(form, firstNameHolder); } if (options.fields.lastName.show == true) { window.intgrtn.elements.appendChild(form, lastNameHolder); } window.intgrtn.elements.appendChild(form, emailHolder); if (options.fields.phone.show == true) { window.intgrtn.elements.appendChild(form, phoneHolder); } window.intgrtn.elements.appendChild(form, btnSubmitHolder); window.intgrtn.elements.appendChild(form, loaderHolder); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.on(element, "input", function (e) { if (window.intgrtn.elements.hasClass(form, "intgrtn-form-submitted")) { window.intgrtn.validateOptinForm(form, { fireEvents: false, }); } }); }); if (!window.intgrtn.lookup("areaCode", true)) { window.intgrtn.getProjectDetails(function (response) { if (response.data.client.location.areaCode) { areaCodeInput.value = response.data.client.location.areaCode; } }); } window.intgrtn.elements.find("input, textarea, select", form).forEach(function (element) { window.intgrtn.elements.on(element, "keyup blur", function (e) { switch (this.getAttribute("name")) { case "firstName": window.intgrtn.validate.optinForm.firstName(element); break; case "lastName": window.intgrtn.validate.optinForm.lastName(element); break; case "name": window.intgrtn.validate.optinForm.name(element); break; case "email": window.intgrtn.validate.optinForm.email(element); break; case "phone": window.intgrtn.validate.optinForm.phone(element); break; } }); }); window.intgrtn.elements.on(form, "submit", function (e) { var name = window.intgrtn.elements.findFirst("[name='name']", form); var firstName = window.intgrtn.elements.findFirst("[name='firstName']", form); var lastName = window.intgrtn.elements.findFirst("[name='lastName']", form); var email = window.intgrtn.elements.findFirst("[name='email']", form); var areaCode = window.intgrtn.elements.findFirst("[name='areaCode']", form); var phone = window.intgrtn.elements.findFirst("[name='phone']", form); var formMessageErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-error", }); var formMessageSuccessHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-success", }); window.intgrtn.elements.addClass(form, "intgrtn-form-submitted"); window.intgrtn.elements.removeClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-success"); /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-form-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if ( window.intgrtn.validateOptinForm(form, { eventNameSuffix: options.validateEvents.eventNameSuffix, }) ) { var firstNameValue = null; var lastNameValue = null; var areaCodeValue = null; var phoneValue = null; if (name) { window.intgrtn.store("name", name.value); var nameArray = name.value.split(" "); firstNameValue = nameArray[0]; nameArray.shift(); lastNameValue = nameArray.join(" "); window.intgrtn.store("firstName", firstNameValue); window.intgrtn.store("lastName", lastNameValue); } if (firstName) { firstNameValue = firstName.value.trim(); window.intgrtn.store("firstName", firstNameValue); } if (lastName) { lastNameValue = lastName.value.trim(); window.intgrtn.store("lastName", lastNameValue); } if (areaCode) { areaCodeValue = areaCode.value.trim(); window.intgrtn.store("areaCode", areaCodeValue); window.intgrtn.store("areaCountryCode", areaCode.getAttribute("data-country-code")); } if (phone) { phoneValue = phone.value.trim(); window.intgrtn.store("phone", phoneValue); } window.intgrtn.store("email", email.value); window.intgrtn.elements.addClass(form, "intgrtn-form-loading"); window.intgrtn.elements.setAttribute(btnSubmit, "disabled", "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.setAttribute(element, "disabled", "disabled"); }); var params = { clickID: window.intgrtn.lookup("clickID", true), custom: window.intgrtn.lookup("custom", true), custom1: window.intgrtn.lookup("custom1", true), custom2: window.intgrtn.lookup("custom2", true), custom3: window.intgrtn.lookup("custom3", true), custom4: window.intgrtn.lookup("custom4", true), custom5: window.intgrtn.lookup("custom5", true), isTest: window.intgrtn.lookup("isTest", true), locale: window.intgrtn.lookup("locale", true), ip: window.intgrtn.lookup("ip", true), offerName: window.intgrtn.lookup("offerName", true), offerWebsite: window.intgrtn.lookup("offerWebsite", true), offerHash: window.intgrtn.lookup("offerHash", true), firstName: firstNameValue, lastName: lastNameValue, email: email.value, }; if (options.fields.phone.show == true) { params.areaCode = areaCodeValue; params.phone = phoneValue; } window.intgrtn.fireEvent({ name: "intgrtn-form-optin-submit" + options.validateEvents.eventNameSuffix, value: JSON.stringify(params), }); /* Make request */ window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendOptinRequest( params, function (response, statusCode) { var executeActionsAfterOptin = function () { formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.messages[0]); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); window.intgrtn.elements.addClass(form, "intgrtn-form-success"); if (options.onSuccess.redirectUrl) { window.location.href = options.onSuccess.redirectUrl; } else { window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeAttribute(element, "disabled", "disabled"); }); } }; window.intgrtn.fireOptinCliendSidePostbacksByOptinResponse( response, function () { executeActionsAfterOptin(); }, function () { executeActionsAfterOptin(); } ); window.intgrtn.events.trigger("form.optin.success", form, response); }, function (response, statusCode) { if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.messages[0]); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.addClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.elements.find("input", form).forEach(function (element) { window.intgrtn.elements.removeAttribute(element, "disabled", "disabled"); }); window.intgrtn.events.trigger("form.optin.error", form, response); } ); } e.preventDefault(); }); return form; }; window.intgrtn.generateBrokersTable = function (options) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.tables.brokers, options); var tableHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-table-brokers-holder", }); var table = window.intgrtn.elements.create("table", "", { cellspacing: "0", cellpadding: "0", class: "intgrtn-table-brokers", }); var head = window.intgrtn.elements.create("thead"); var body = window.intgrtn.elements.create("tbody"); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); window.intgrtn.elements.appendChild(loaderHolder, loader); window.intgrtn.elements.appendChild(table, head); window.intgrtn.elements.appendChild(table, body); window.intgrtn.elements.appendChild(tableHolder, table); window.intgrtn.elements.appendChild(tableHolder, loaderHolder); Object.keys(options.columns).forEach(function (columnKey) { var th = window.intgrtn.elements.create("th", window.intgrtn.translate(options.columns[columnKey].title)); window.intgrtn.elements.appendChild(head, th); }); window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.getBrokers( {}, function (response) { window.intgrtn.elements.removeClass(loaderHolder, "show"); response.data.items.forEach(function (broker) { var tr = window.intgrtn.elements.create("tr", "", { class: broker.brokerAccountRegisterApi == true ? "intgrtn-table-broker-has-register-api" : "", }); Object.keys(options.columns).forEach(function (columnKey) { var td = window.intgrtn.elements.create("td"); switch (options.columns[columnKey].property) { case "advertiserLogo": var img = window.intgrtn.elements.create("img", "", { src: broker[options.columns[columnKey].property], alt: broker.advertiserName, title: broker.advertiserName, class: "intgrtn-table-broker-logo", }); window.intgrtn.elements.appendChild(td, img); break; case "link": var a = window.intgrtn.elements.create("a", window.intgrtn.translate("Open Account"), { href: window.intgrtn.replaceParameters(broker[options.columns[columnKey].property]), target: "_blank", class: "intgrtn-table-broker-btn-open-account", }); window.intgrtn.elements.appendChild(td, a); break; default: window.intgrtn.elements.setHtml(td, broker[options.columns[columnKey].property]); break; } window.intgrtn.elements.appendChild(tr, td); }); window.intgrtn.elements.appendChild(body, tr); }); }, function () {} ); return tableHolder; }; window.intgrtn.generateCookiePopup = function () { var popup = window.intgrtn.elements.create("div", "", { class: "intgrtn-cookie-popup", }); var textHolder = window.intgrtn.elements.create( "div", window.intgrtn.translate(window.intgrtn.options.cookiePopup.text) + " ", { class: "intgrtn-cookie-popup-text-holder", } ); var linkPrivacyPolicy = window.intgrtn.elements.create( "a", window.intgrtn.translate(window.intgrtn.options.cookiePopup.buttons.learnMore.text), { class: "intgrtn-cookie-popup-link-privacy-policy", } ); var buttonAccept = window.intgrtn.elements.create( "button", window.intgrtn.translate(window.intgrtn.options.cookiePopup.buttons.accept.text), { class: "intgrtn-cookie-popup-btn-accept", } ); if (window.intgrtn.lookup("cookiePolicyTheme", true) == "light") { window.intgrtn.elements.addClass(popup, "intgrtn-cookie-popup-light"); } popup.intgrtn = { destroy: function () { window.intgrtn.elements.remove(popup); }, }; window.intgrtn.elements.on(buttonAccept, "click", function (e) { window.intgrtn.store("cookiePolicyAccepted", 1); window.intgrtn.elements.remove(popup); }); window.intgrtn.elements.on(linkPrivacyPolicy, "click", function (e) { var modal = window.intgrtn.generateModal(window.intgrtn.translate("Privacy Policy")); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", modal); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder static show", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); window.intgrtn.elements.appendChild(loaderHolder, loader); window.intgrtn.elements.appendChild(modalBody, loaderHolder); window.intgrtn.getAgreement( { type: 3, }, function (response) { window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.setHtml(modalBody, response.data.html); }, function () { window.intgrtn.elements.removeClass(loaderHolder, "show"); } ); modal.intgrtnModal.show(); }); window.intgrtn.elements.appendChild(popup, textHolder); window.intgrtn.elements.appendChild(popup, buttonAccept); window.intgrtn.elements.appendChild(textHolder, linkPrivacyPolicy); return popup; }; window.intgrtn.generateContactRequestMessagesLayout = function (options) { if (typeof options === "undefined") { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.contactRequestMessagesLayout, options); var clearFixElement = window.intgrtn.elements.create("div", "", { style: "clear: both", }); var layoutHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-contact-request-messages-holder", }); var logoPanel = window.intgrtn.elements.create("div", "", { class: "intgrtn-logo-panel", }); var logoImg = window.intgrtn.elements.create("img", "", { class: "intgrtn-logo-img", }); var innerPanel = window.intgrtn.elements.create("div", "", { class: "intgrtn-inner-panel", }); var subjectElement = window.intgrtn.elements.create("div", options.subject, { class: "intgrtn-subject", }); var descElement = window.intgrtn.elements.create("div", options.desc, { class: "intgrtn-desc", }); var prevMessagesHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-holder-prev-messages", }); var newMessageHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-holder-new-message", }); var form = window.intgrtn.elements.create("form", "", { name: "intgrtnFormContactRequestMessage", novalidate: "", class: "intgrtn-form-contact-request-message", }); var messageInputHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-message-input-holder", }); var newMessageInput = window.intgrtn.elements.create("textarea", "", { class: "intgrtn-textarea", name: "message", placeholder: window.intgrtn.translate(options.placeholders.newMessage), required: "", }); var btnSubmitHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-btn-submit-holder", }); var btnSubmit = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.buttons.submit.text), { class: "intgrtn-btn-submit", } ); // combine nodes window.intgrtn.elements.appendChild(logoPanel, logoImg); window.intgrtn.elements.appendChild(layoutHolder, logoPanel); window.intgrtn.elements.appendChild(innerPanel, subjectElement); window.intgrtn.elements.appendChild(innerPanel, descElement); window.intgrtn.elements.appendChild(innerPanel, prevMessagesHolder); window.intgrtn.elements.appendChild(messageInputHolder, newMessageInput); window.intgrtn.elements.appendChild(form, messageInputHolder); window.intgrtn.elements.appendChild(btnSubmitHolder, btnSubmit); window.intgrtn.elements.appendChild(form, btnSubmitHolder); window.intgrtn.elements.appendChild(newMessageHolder, form); window.intgrtn.elements.appendChild(innerPanel, newMessageHolder); window.intgrtn.elements.appendChild(innerPanel, clearFixElement); window.intgrtn.elements.appendChild(layoutHolder, innerPanel); var contactRequestHash = window.intgrtn.getParameter("intgrtn_contactRequestHash"); //fetch data window.intgrtn.getContactRequestMessages( { contactRequestHash: contactRequestHash, }, function (response) { window.intgrtn.elements.setHtml(subjectElement, response.data.contactRequestDetails.subject.toString()); window.intgrtn.elements.setHtml(descElement, response.data.contactRequestDetails.message.toString()); if (response.data.projectDetails.catalogLogoPath) { window.intgrtn.elements.setAttribute( logoImg, "src", window.intgrtn.options.server.endpoint + "/" + response.data.projectDetails.catalogLogoPath ); } // foreach to add each message in prevMessagesHolder response.data.items.forEach(function (contactRequestMessage) { var message = contactRequestMessage.message.toString(); var createDateJS = window.intgrtn.toJSDate(contactRequestMessage.createDate); var messageBox; if (contactRequestMessage.userID) { messageBox = window.intgrtn.getContactRequestMessageBox({ styleMode: 1, messageText: message.replace(/(?:\r\n|\r|\n)/g, "
"), userName: window.intgrtn.translate("Support"), //userName: 'Support (' + contactRequestMessage.name + ')' , date: createDateJS.getDate() + " " + createDateJS.toLocaleString("en-us", { month: "short", }) + " " + createDateJS.getFullYear() + "
" + createDateJS.getHours() + ":" + createDateJS.getMinutes(), }); } else { messageBox = window.intgrtn.getContactRequestMessageBox({ styleMode: 2, messageText: message, userName: window.intgrtn.translate("Client"), date: createDateJS.getDate() + " " + createDateJS.toLocaleString("en-us", { month: "short", }) + " " + createDateJS.getFullYear() + "
" + createDateJS.getHours() + ":" + createDateJS.getMinutes(), }); } var clearFixElement = window.intgrtn.elements.create("div", "", { style: "clear: both", }); window.intgrtn.elements.appendChild(prevMessagesHolder, messageBox); window.intgrtn.elements.appendChild(prevMessagesHolder, clearFixElement); }); } ); // submit stuff window.intgrtn.elements.on(form, "submit", function (e) { var message = window.intgrtn.elements.findFirst("[name='message']", form); var formMessageErrorHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-error", }); var formMessageSuccessHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-form-message-success", }); window.intgrtn.elements.addClass(form, "intgrtn-form-submitted"); window.intgrtn.elements.removeClass(form, "intgrtn-form-success"); /* Remove form messages */ window.intgrtn.elements.find(".intgrtn-input-message-error", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); window.intgrtn.elements.find(".intgrtn-form-message-success", form).forEach(function (element) { window.intgrtn.elements.remove(element); }); if (window.intgrtn.validateContactRequestMessageForm(form)) { window.intgrtn.elements.addClass(form, "intgrtn-form-loading"); window.intgrtn.elements.setAttribute(btnSubmit, "disabled", "disabled"); /* Make request */ //window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.sendContactRequestMessageRequest( { message: message.value, contactRequestHash: contactRequestHash, }, function (response, statusCode) { formMessageSuccessHolder.innerHTML = window.intgrtn.translate(response.messages[0]); window.intgrtn.elements.appendChild(form, formMessageSuccessHolder); var createDateJS = window.intgrtn.toJSDate(response.data.createDate); var messageBox = window.intgrtn.getContactRequestMessageBox({ styleMode: 2, messageText: message.value, userName: window.intgrtn.translate("Client"), date: createDateJS.getDate() + " " + createDateJS.toLocaleString("en-us", { month: "short", }) + " " + createDateJS.getFullYear(), }); var clearFixElement = window.intgrtn.elements.create("div", "", { style: "clear: both", }); window.intgrtn.elements.appendChild(prevMessagesHolder, messageBox); window.intgrtn.elements.appendChild(prevMessagesHolder, clearFixElement); window.intgrtn.elements.addClass(form, "intgrtn-form-success"); //window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); message.value = ""; window.intgrtn.events.trigger("form.contactRequestMessage.success", form, response); }, function (response, statusCode) { if (response.messages && response.messages[0]) { formMessageErrorHolder.innerHTML = window.intgrtn.translate(response.messages[0]); } else { formMessageErrorHolder.innerHTML = window.intgrtn.translate( "An error occurred. Please try again later." ); } window.intgrtn.elements.appendChild(form, formMessageErrorHolder); //window.intgrtn.elements.removeClass(loaderHolder, "show"); window.intgrtn.elements.addClass(form, "intgrtn-form-has-error"); window.intgrtn.elements.removeClass(form, "intgrtn-form-loading"); window.intgrtn.elements.removeAttribute(btnSubmit, "disabled"); window.intgrtn.events.trigger("form.contactRequestMessage.error", form, response); } ); } window.intgrtn.events.trigger("form.contactRequestMessage.submit", form); e.preventDefault(); }); return layoutHolder; }; // window.intgrtn.generateContactRequestMessagesLayout window.intgrtn.generateModal = function (title, body, options) { if (!title) { title = ""; } if (!body) { body = ""; } if (!options) { options = {}; } if (typeof options.removeFromDOM == "undefined") { options.removeFromDOM = true; } if (typeof options.isShowed == "undefined") { options.isShowed = false; } var modalHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-modal-holder", }); var modal = window.intgrtn.elements.create("div", "", { class: "intgrtn-modal", }); var modalBody = window.intgrtn.elements.create("div", body, { class: "intgrtn-modal-body", }); var modalHeader = window.intgrtn.elements.create("div", "", { class: "intgrtn-modal-header", }); var modalTitle = window.intgrtn.elements.create("div", title, { class: "intgrtn-modal-title", }); if (options.hideCloseButton) { var btnClose = window.intgrtn.elements.create("button", "×", { class: "intgrtn-modal-btn-close", }); } if (options.class) { window.intgrtn.elements.addClass(modalHolder, options.class); } if (!options.removeFromDOM) { window.intgrtn.elements.appendChild("body", modalHolder); window.intgrtn.elements.addClass(modalHolder, "intgrtn-hidden"); } modalHolder.intgrtnModal = { isShowed: options.isShowed, show: function () { if (options.removeFromDOM) { window.intgrtn.elements.appendChild("body", modalHolder); } window.intgrtn.elements.addClass("body", "intgrtn-modal-body-overflow"); window.intgrtn.elements.removeClass(modalHolder, "intgrtn-hidden"); modalHolder.intgrtnModal.isShowed = true; window.intgrtn.events.trigger("modal.show", modalHolder); }, hide: function () { var checkRemoveBodyClass = window.intgrtn.elements .find(".intgrtn-modal-holder") .filter(function (item) { if (item == modalHolder) { return false; } if (window.intgrtn.elements.hasClass(item, "intgrtn-hidden")) { return false; } return true; }); if (checkRemoveBodyClass.length == 0) { // check for other modal window.intgrtn.elements.removeClass("body", "intgrtn-modal-body-overflow"); } if (options.removeFromDOM) { window.intgrtn.elements.remove(modalHolder); } window.intgrtn.elements.addClass(modalHolder, "intgrtn-hidden"); modalHolder.intgrtnModal.isShowed = false; window.intgrtn.events.trigger("modal.hide", modalHolder); }, }; if (!options.disableClose) { window.intgrtn.elements.on(modalHolder, "click", function (e) { if (modalHolder == e.target) { modalHolder.intgrtnModal.hide(); } }); window.intgrtn.elements.on(btnClose, "click", function (e) { modalHolder.intgrtnModal.hide(); }); } if (title) { window.intgrtn.elements.appendChild(modalHeader, modalTitle); } if (!options.disableClose) { window.intgrtn.elements.appendChild(modal, btnClose); } window.intgrtn.elements.appendChild(modal, modalHeader); window.intgrtn.elements.appendChild(modal, modalBody); window.intgrtn.elements.appendChild(modalHolder, modal); if (options.contactRequestMessagesMode) { var logoPanel = window.intgrtn.elements.create("div", "", { class: "intgrtn-modal-logo-panel", style: "background-image: url('" + options.contactRequestMessageModeLogoPath + "');", }); window.intgrtn.elements.appendChild(modalHolder, logoPanel); } if (options.isShowed) { modalHolder.intgrtnModal.show(); } return modalHolder; }; window.intgrtn.generateContactUsModal = function (options) { if (!options) { options = {}; } options = window.intgrtn.merge(window.intgrtn.options.forms.contactUs, options); var titleText = options.mode == "contact" ? window.intgrtn.translate("Contact Us") : window.intgrtn.translate("Report Abuse"); var modal = window.intgrtn.generateModal(titleText, "", { class: "intgrtn-modal-contact-us", }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", modal); var form = window.intgrtn.generateContactUsForm(options); var textTop = null; if (options.mode == "contact") { textTop = window.intgrtn.elements.create( "div", window.intgrtn.translate( "If you have any questions or feedback, you are welcome to contact us by using the form below:" ), { class: "intgrtn-text-top", } ); } else { textTop = window.intgrtn.elements.create( "div", window.intgrtn .translate( "The website {{domain}} is used as a marketing material to promote advertisers by 3rd party promoters, affiliates, affiliate networks and ad networks.

Anyone promoting this website is prohibited from using spam, spyware, incentivization, denial of service, use of wrong/false marketing material, your identity was used in prelanders prioir for you reaching thise page and any other illegal activity and is obligated to apply all local laws and regulations including GDPR rules where the users are sent from.

If you have come to {{domain}} as a result of abuse activity (mentioned above or any other which is not) , please complete the form below to report the issue. We carefully examine every abuse report and we take action against the promoters." ) .replace(/{{domain}}/g, window.location.host), { class: "intgrtn-text-top", } ); } window.intgrtn.events.on("form.contactUs.success", function (checkForm) { if (checkForm == form) { modal.intgrtnModal.hide(); } }); window.intgrtn.elements.appendChild(modalBody, textTop); window.intgrtn.elements.appendChild(modalBody, form); return modal; }; window.intgrtn.generateBasicMessageModal = function (options) { if (!options) { options = {}; } if (!options.title) { throw new Error(window.intgrtn.translate("Enter title.")); } if (!options.message) { throw new Error(window.intgrtn.translate("Enter message.")); } if (typeof options.confirmButton == "undefined") { options.confirmButton = true; } if (typeof options.confirmButtonText == "undefined") { options.confirmButtonText = "OK"; } var modal = window.intgrtn.generateModal(options.title, "", { class: "intgrtn-modal-basic-message", }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", modal); var layoutHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-basic-message-layout-holder", }); var textTop = window.intgrtn.elements.create("div", options.message); window.intgrtn.elements.appendChild(layoutHolder, textTop); if (options.confirmButton) { var confirmButtonHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-confirm-button-holder", }); var confirmButton = window.intgrtn.elements.create( "button", window.intgrtn.translate(options.confirmButtonText), { class: "intgrtn-confirm-button", } ); window.intgrtn.elements.appendChild(confirmButtonHolder, confirmButton); window.intgrtn.elements.appendChild(layoutHolder, confirmButtonHolder); window.intgrtn.elements.on(confirmButton, "click", function (e) { modal.intgrtnModal.hide(); }); } window.intgrtn.elements.appendChild(modalBody, layoutHolder); return modal; }; // window.intgrtn.generateBasicMessageModal window.intgrtn.generateContactRequestMessageModal = function (options) { var modal = window.intgrtn.generateModal(window.intgrtn.translate("Contact Request Messages"), "", { class: "intgrtn-modal-contact-request-message", disableClose: true, contactRequestMessagesMode: true, contactRequestMessageModeLogoPath: window.intgrtn.options.forms.contactRequestMessage.logoPath, }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", modal); var form = window.intgrtn.generateContactRequestMessageForm(options); window.intgrtn.elements.appendChild(modalBody, form); return modal; }; window.intgrtn.generateAgreementModal = function (options) { if (!options) { options = window.intgrtn.options.agreements; } var modal = window.intgrtn.generateModal("", "", { class: "intgrtn-modal-agreement", }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", modal); var text = window.intgrtn.elements.create("div", "", { class: "intgrtn-text", }); var loaderHolder = window.intgrtn.elements.create("div", "", { class: "intgrtn-loader-holder", }); var loader = window.intgrtn.elements.create("div", "", { class: "intgrtn-lds-dual-ring", }); window.intgrtn.elements.appendChild(loaderHolder, loader); window.intgrtn.elements.addClass(loaderHolder, "show"); window.intgrtn.getAgreement( { type: options.type, }, function (response) { window.intgrtn.elements.setHtml(text, response.data.html); window.intgrtn.parseDataTags(); window.intgrtn.elements.removeClass(loaderHolder, "show"); } ); window.intgrtn.elements.appendChild(modalBody, text); window.intgrtn.elements.appendChild(modalBody, loaderHolder); return modal; }; window.intgrtn.checkTargeting = function () { window.intgrtn.getProjectDetails(function (response) { var targeting = response.data.project.targeting; if (!targeting || targeting.ruleType == 2) { //2 - Block var modal = window.intgrtn.generateModal(window.intgrtn.translate("Country Blocked"), "", { disableClose: true, class: "intgrtn-modal-block-website", }); var modalBody = window.intgrtn.elements.findFirst(".intgrtn-modal-body", modal); var divTextBlockWebsite = window.intgrtn.elements.create( "div", window.intgrtn.translate("Unfortunately, this offer is not available in your country."), { class: "intgrtn-text-block-website", } ); window.intgrtn.elements.setHtml(modalBody, divTextBlockWebsite); modal.intgrtnModal.show(); window.intgrtn.fireEvent({ name: "offer-not-available", }); } else { if (targeting.ruleType == 1 && targeting.redirectURL) { if (window.location.href !== targeting.redirectURL) { // check for recursion window.location.href = targeting.redirectURL; } } } }); }; window.intgrtn.goToBrokerLoginUrlBySignupRequestID = function (signupRequestID, options) { if (typeof signupRequestID === "undefined") { signupRequestID = null; } if (typeof options === "undefined") { options = {}; } var defaultOptions = { redirectTop: false, }; options = window.intgrtn.merge(defaultOptions, options); window.intgrtn.getBrokerLoginDetails( { signupID: signupRequestID, }, function (response) { var url = response.data.url; if (response.data.method == "POST") { if (response.data.fragment) { url = url + "#" + response.data.fragment; } var formJS = window.intgrtn.elements.create("form", "", { method: "POST", action: url, }); for (var key in response.data.parameters) { var item = response.data.parameters[key]; var input = window.intgrtn.elements.create("input", "", { type: "text", name: key, value: item, }); window.intgrtn.elements.appendChild(formJS, input); } document.body.appendChild(formJS); formJS.submit(); } else { var parameters = []; for (var key in response.data.parameters) { parameters.push(key + "=" + response.data.parameters[key]); } if (url.indexOf("?") === -1 && parameters.length > 0) { url += "?"; } if (parameters.length > 0) { url += parameters.join("&"); } if (response.data.fragment) { url = url + "#" + response.data.fragment; } if (options.redirectTop == true) { window.top.location.href = url; } else { window.location.href = url; } } }, function (response) { throw new Error(response.messages.join(" ")); } ); }; window.intgrtn.goToBrokerLoginUrlBySignupRequestResponse = function (response, redirectTop) { if (typeof redirectTop === "undefined") { redirectTop = false; } if (response.data && response.data.redirect && response.data.redirect.method) { if (response.data.redirect.method == "POST") { var formJS = window.intgrtn.elements.create("form", "", { method: "POST", action: response.data.redirect.url, }); if (response.data.redirect.params) { for (var key in response.data.redirect.params) { var item = response.data.redirect.params[key]; var input = window.intgrtn.elements.create("input", "", { type: "text", name: key, value: item, }); window.intgrtn.elements.appendChild(formJS, input); } } document.body.appendChild(formJS); formJS.submit(); } else { if (response.data.redirect.url.indexOf("?") === -1) { response.data.redirect.url += "?"; } for (var key in response.data.redirect.params) { var item = response.data.redirect.params[key]; response.data.redirect.url += "&" + key + "=" + item; } if (redirectTop == true) { window.top.location.href = response.data.redirect.url; } else { window.location.href = response.data.redirect.url; } } } }; window.intgrtn.replaceParameters = function (string) { string = string.replace(/{clickID}/g, window.intgrtn.lookup("clickID", true)); string = string.replace(/{firstName}/g, window.intgrtn.lookup("firstName", true)); string = string.replace(/{lastName}/g, window.intgrtn.lookup("lastName", true)); string = string.replace(/{email}/g, window.intgrtn.lookup("email", true)); string = string.replace(/{custom}/g, window.intgrtn.lookup("custom", true)); string = string.replace(/{custom1}/g, window.intgrtn.lookup("custom1", true)); string = string.replace(/{custom2}/g, window.intgrtn.lookup("custom2", true)); string = string.replace(/{custom3}/g, window.intgrtn.lookup("custom3", true)); string = string.replace(/{custom4}/g, window.intgrtn.lookup("custom4", true)); string = string.replace(/{custom5}/g, window.intgrtn.lookup("custom5", true)); string = string.replace(/{tracker}/g, window.intgrtn.lookup("clickID", true)); return string; }; window.intgrtn.appendProjectScripts = function (scripts) { scripts.forEach(function (item) { if (appendedProjectScripts.indexOf(item.ID) !== -1) { return; } switch (item.projectScriptPlacementID) { case 1: //Before window.intgrtn.elements.parseHTML(item.content).forEach(function (node) { window.intgrtn.elements.appendChild("head", node); }); break; case 2: //After window.intgrtn.elements.parseHTML(item.content).forEach(function (node) { window.intgrtn.elements.prepend("body", node); }); break; case 3: //Before window.intgrtn.elements.parseHTML(item.content).forEach(function (node) { window.intgrtn.elements.appendChild("body", node); }); break; } appendedProjectScripts.push(item.ID); }); }; window.intgrtn.parseTooltips = function () { window.intgrtn.elements.find("[data-intgrtn-tooltip]").forEach(function (element) { if (!element.intgrtnTooltip) { element.intgrtnTooltip = { tooltip: null, }; element.intgrtnTooltip.oldContent = window.intgrtn.elements.getHtml(element); var setTooltipPosition = function (element) { if (element.intgrtnTooltip && element.intgrtnTooltip.tooltip) { var offset = window.intgrtn.elements.getOffset(element); element.intgrtnTooltip.tooltip.style.maxWidth = element.offsetWidth + "px"; element.intgrtnTooltip.tooltip.style.left = offset.left + "px"; element.intgrtnTooltip.tooltip.style.top = offset.top - element.intgrtnTooltip.tooltip.offsetHeight + "px"; } }; var showTooltip = function (element) { if (element.intgrtnTooltip.tooltip) { window.intgrtn.elements.remove(element.intgrtnTooltip.tooltip); } if (!element.getAttribute("data-intgrtn-tooltip")) { return false; } element.intgrtnTooltip.tooltip = window.intgrtn.elements.create( "div", element.getAttribute("data-intgrtn-tooltip"), { class: "intgrtn-tooltip", } ); window.intgrtn.elements.appendChild("body", element.intgrtnTooltip.tooltip); setTooltipPosition(element); }; var hideTooltip = function (element) { if (element.intgrtnTooltip.tooltip && element !== document.activeElement) { window.intgrtn.elements.remove(element.intgrtnTooltip.tooltip); element.intgrtnTooltip.tooltip = null; } }; var showTooltipEventCallback = function (e) { showTooltip(element); if (window.intgrtn.isMobileDevice()) { //fixed bug on iOS element.focus(); } }; var hideTooltipEventCallback = function (e) { hideTooltip(element); }; var setTooltipPositionCallback = function (e) { setTooltipPosition(element); }; window.intgrtn.elements.on(element, "mouseover", showTooltipEventCallback); window.intgrtn.elements.on(element, "onfocus", showTooltipEventCallback); window.intgrtn.elements.on(element, "mouseleave", hideTooltipEventCallback); window.intgrtn.elements.on(element, "focusout", hideTooltipEventCallback); window.intgrtn.elements.on(window, "resize", setTooltipPositionCallback); element.intgrtnTooltip.destroy = function () { hideTooltip(element); window.intgrtn.elements.setHtml(element, element.intgrtnTooltip.oldContent); window.intgrtn.elements.off(element, "mouseover", showTooltipEventCallback); window.intgrtn.elements.off(element, "onfocus", showTooltipEventCallback); window.intgrtn.elements.off(element, "mouseleave", hideTooltipEventCallback); window.intgrtn.elements.off(element, "focusout", hideTooltipEventCallback); window.intgrtn.elements.off(element, "resize", setTooltipPositionCallback); }; } }); }; window.intgrtn.parseDataTags = function () { window.intgrtn.elements.find("[data-intgrtn-form-signup]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.forms.signup); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; if (element.getAttribute("data-intgrtn-button-submit-text")) { element.intgrtn.options.buttons.submit.text = element.getAttribute( "data-intgrtn-button-submit-text" ); } if (element.getAttribute("data-intgrtn-button-generate-password-text")) { element.intgrtn.options.buttons.generatePassword.text = element.getAttribute( "data-intgrtn-button-generate-password-text" ); } if (element.getAttribute("data-intgrtn-button-generate-password-show")) { element.intgrtn.options.buttons.generatePassword.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-button-generate-password-show")) !== -1; } if (element.getAttribute("data-intgrtn-placeholder-first-name")) { element.intgrtn.options.placeholders.firstName = element.getAttribute( "data-intgrtn-placeholder-first-name" ); } if (element.getAttribute("data-intgrtn-placeholder-last-name")) { element.intgrtn.options.placeholders.lastName = element.getAttribute( "data-intgrtn-placeholder-last-name" ); } if (element.getAttribute("data-intgrtn-placeholder-email")) { element.intgrtn.options.placeholders.email = element.getAttribute("data-intgrtn-placeholder-email"); } if (element.getAttribute("data-intgrtn-placeholder-password")) { element.intgrtn.options.placeholders.password = element.getAttribute( "data-intgrtn-placeholder-password" ); } if (element.getAttribute("data-intgrtn-placeholder-phone")) { element.intgrtn.options.placeholders.phone = element.getAttribute("data-intgrtn-placeholder-phone"); } if (element.getAttribute("data-intgrtn-placeholder-area-code")) { element.intgrtn.options.placeholders.areaCode = element.getAttribute( "data-intgrtn-placeholder-area-code" ); } if (element.getAttribute("data-intgrtn-label-checkbox-agree-terms")) { element.intgrtn.options.labels.checkboxAgreeTerms = element.getAttribute( "data-intgrtn-label-checkbox-agree-terms" ); } if (element.getAttribute("data-intgrtn-fields-checkbox-agree-terms-show")) { element.intgrtn.options.fields.checkboxAgreeTerms.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-checkbox-agree-terms-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-tooltip")) { element.intgrtn.options.fields.password.tooltip = element.getAttribute( "data-intgrtn-fields-password-tooltip" ); } if (element.getAttribute("data-intgrtn-fields-password-min-length")) { element.intgrtn.options.fields.password.minLength = element.getAttribute( "data-intgrtn-fields-password-min-length" ); } if (element.getAttribute("data-intgrtn-fields-password-max-length")) { element.intgrtn.options.fields.password.maxLength = element.getAttribute( "data-intgrtn-fields-password-max-length" ); } if (element.getAttribute("data-intgrtn-fields-password-verbose-errors-enabled")) { element.intgrtn.options.fields.password.verboseErrors.enabled = ["true", "1"].indexOf( element.getAttribute("data-intgrtn-fields-password-verbose-errors-enabled") ) !== -1; } if (element.getAttribute("data-intgrtn-validate-events-name-suffix")) { element.intgrtn.options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } if ( ["true", "1"].indexOf(element.getAttribute("data-intgrtn-form-fields-labels-show")) !== -1 || element.intgrtn.options.fields.labels.show === true ) { element.intgrtn.options.fields.firstName.showLabel = element.intgrtn.options.fields.firstName.showLabel !== null ? element.intgrtn.options.fields.firstName.showLabel : true; element.intgrtn.options.fields.lastName.showLabel = element.intgrtn.options.fields.lastName.showLabel !== null ? element.intgrtn.options.fields.lastName.showLabel : true; element.intgrtn.options.fields.email.showLabel = element.intgrtn.options.fields.email.showLabel !== null ? element.intgrtn.options.fields.email.showLabel : true; element.intgrtn.options.fields.password.showLabel = element.intgrtn.options.fields.password.showLabel !== null ? element.intgrtn.options.fields.password.showLabel : true; element.intgrtn.options.fields.phone.showLabel = element.intgrtn.options.fields.phone.showLabel !== null ? element.intgrtn.options.fields.phone.showLabel : true; } if (element.getAttribute("data-intgrtn-fields-first-name-label-show")) { element.intgrtn.options.fields.firstName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-first-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-last-name-label-show")) { element.intgrtn.options.fields.lastName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-last-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-email-label-show")) { element.intgrtn.options.fields.email.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-email-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-label-show")) { element.intgrtn.options.fields.password.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-password-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-phone-label-show")) { element.intgrtn.options.fields.phone.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-phone-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-first-name-label")) { element.intgrtn.options.labels.firstName = element.getAttribute( "data-intgrtn-fields-first-name-label" ); } if (element.getAttribute("data-intgrtn-fields-last-name-label")) { element.intgrtn.options.labels.lastName = element.getAttribute( "data-intgrtn-fields-last-name-label" ); } if (element.getAttribute("data-intgrtn-fields-email-label")) { element.intgrtn.options.labels.email = element.getAttribute("data-intgrtn-fields-email-label"); } if (element.getAttribute("data-intgrtn-fields-password-label")) { element.intgrtn.options.labels.password = element.getAttribute( "data-intgrtn-fields-password-label" ); } if (element.getAttribute("data-intgrtn-fields-phone-label")) { element.intgrtn.options.labels.phone = element.getAttribute("data-intgrtn-fields-phone-label"); } window.intgrtn.generateSignupForm(element.intgrtn.options, element); window.intgrtn.events.trigger("parse.data.tags.form.signup.success", element); } }); window.intgrtn.elements.find("[data-intgrtn-form-signup-2-steps]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.forms.signup); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; if (element.getAttribute("data-intgrtn-button-submit-text")) { element.intgrtn.options.buttons.submit.text = element.getAttribute( "data-intgrtn-button-submit-text" ); } if (element.getAttribute("data-intgrtn-button-generate-password-text")) { element.intgrtn.options.buttons.generatePassword.text = element.getAttribute( "data-intgrtn-button-generate-password-text" ); } if (element.getAttribute("data-intgrtn-button-generate-password-show")) { element.intgrtn.options.buttons.generatePassword.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-button-generate-password-show")) !== -1; } if (element.getAttribute("data-intgrtn-placeholder-first-name")) { element.intgrtn.options.placeholders.firstName = element.getAttribute( "data-intgrtn-placeholder-first-name" ); } if (element.getAttribute("data-intgrtn-placeholder-last-name")) { element.intgrtn.options.placeholders.lastName = element.getAttribute( "data-intgrtn-placeholder-last-name" ); } if (element.getAttribute("data-intgrtn-placeholder-email")) { element.intgrtn.options.placeholders.email = element.getAttribute("data-intgrtn-placeholder-email"); } if (element.getAttribute("data-intgrtn-placeholder-password")) { element.intgrtn.options.placeholders.password = element.getAttribute( "data-intgrtn-placeholder-password" ); } if (element.getAttribute("data-intgrtn-placeholder-phone")) { element.intgrtn.options.placeholders.phone = element.getAttribute("data-intgrtn-placeholder-phone"); } if (element.getAttribute("data-intgrtn-placeholder-area-code")) { element.intgrtn.options.placeholders.areaCode = element.getAttribute( "data-intgrtn-placeholder-area-code" ); } if (element.getAttribute("data-intgrtn-label-checkbox-agree-terms")) { element.intgrtn.options.labels.checkboxAgreeTerms = element.getAttribute( "data-intgrtn-label-checkbox-agree-terms" ); } if (element.getAttribute("data-intgrtn-fields-checkbox-agree-terms-show")) { element.intgrtn.options.fields.checkboxAgreeTerms.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-checkbox-agree-terms-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-first-name-show")) { element.intgrtn.options.fields.firstName.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-first-name-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-last-name-show")) { element.intgrtn.options.fields.lastName.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-last-name-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-tooltip")) { element.intgrtn.options.fields.password.tooltip = element.getAttribute( "data-intgrtn-fields-password-tooltip" ); } if (element.getAttribute("data-intgrtn-fields-password-min-length")) { element.intgrtn.options.fields.password.minLength = element.getAttribute( "data-intgrtn-fields-password-min-length" ); } if (element.getAttribute("data-intgrtn-fields-password-max-length")) { element.intgrtn.options.fields.password.maxLength = element.getAttribute( "data-intgrtn-fields-password-max-length" ); } if (element.getAttribute("data-intgrtn-fields-password-verbose-errors-enabled")) { element.intgrtn.options.fields.password.verboseErrors.enabled = ["true", "1"].indexOf( element.getAttribute("data-intgrtn-fields-password-verbose-errors-enabled") ) !== -1; } if (element.getAttribute("data-intgrtn-buttons-go-to-step2-text")) { element.intgrtn.options.buttons.goToStep2.text = element.getAttribute( "data-intgrtn-buttons-go-to-step2-text" ); } if (element.getAttribute("data-intgrtn-buttons-submit-text")) { element.intgrtn.options.buttons.submit.text = element.getAttribute( "data-intgrtn-buttons-submit-text" ); } if (element.getAttribute("data-intgrtn-validate-events-name-suffix")) { element.intgrtn.options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } if ( ["true", "1"].indexOf(element.getAttribute("data-intgrtn-form-fields-labels-show")) !== -1 || element.intgrtn.options.fields.labels.show === true ) { element.intgrtn.options.fields.firstName.showLabel = element.intgrtn.options.fields.firstName.showLabel !== null ? element.intgrtn.options.fields.firstName.showLabel : true; element.intgrtn.options.fields.lastName.showLabel = element.intgrtn.options.fields.lastName.showLabel !== null ? element.intgrtn.options.fields.lastName.showLabel : true; element.intgrtn.options.fields.email.showLabel = element.intgrtn.options.fields.email.showLabel !== null ? element.intgrtn.options.fields.email.showLabel : true; element.intgrtn.options.fields.password.showLabel = element.intgrtn.options.fields.password.showLabel !== null ? element.intgrtn.options.fields.password.showLabel : true; element.intgrtn.options.fields.phone.showLabel = element.intgrtn.options.fields.phone.showLabel !== null ? element.intgrtn.options.fields.phone.showLabel : true; } if (element.getAttribute("data-intgrtn-fields-first-name-label-show")) { element.intgrtn.options.fields.firstName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-first-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-last-name-label-show")) { element.intgrtn.options.fields.lastName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-last-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-email-label-show")) { element.intgrtn.options.fields.email.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-email-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-label-show")) { element.intgrtn.options.fields.password.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-password-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-phone-label-show")) { element.intgrtn.options.fields.phone.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-phone-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-first-name-label")) { element.intgrtn.options.labels.firstName = element.getAttribute( "data-intgrtn-fields-first-name-label" ); } if (element.getAttribute("data-intgrtn-fields-last-name-label")) { element.intgrtn.options.labels.lastName = element.getAttribute( "data-intgrtn-fields-last-name-label" ); } if (element.getAttribute("data-intgrtn-fields-email-label")) { element.intgrtn.options.labels.email = element.getAttribute("data-intgrtn-fields-email-label"); } if (element.getAttribute("data-intgrtn-fields-password-label")) { element.intgrtn.options.labels.password = element.getAttribute( "data-intgrtn-fields-password-label" ); } if (element.getAttribute("data-intgrtn-fields-phone-label")) { element.intgrtn.options.labels.phone = element.getAttribute("data-intgrtn-fields-phone-label"); } window.intgrtn.generateSignupForm2Steps(element.intgrtn.options, element); window.intgrtn.events.trigger("parse.data.tags.form.signup-2-steps.success", element); } }); window.intgrtn.elements.find("[data-intgrtn-form-signup-3-steps]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.forms.signup); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; if (element.getAttribute("data-intgrtn-button-submit-text")) { element.intgrtn.options.buttons.submit.text = element.getAttribute( "data-intgrtn-button-submit-text" ); } if (element.getAttribute("data-intgrtn-button-generate-password-text")) { element.intgrtn.options.buttons.generatePassword.text = element.getAttribute( "data-intgrtn-button-generate-password-text" ); } if (element.getAttribute("data-intgrtn-button-generate-password-show")) { element.intgrtn.options.buttons.generatePassword.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-button-generate-password-show")) !== -1; } if (element.getAttribute("data-intgrtn-placeholder-first-name")) { element.intgrtn.options.placeholders.firstName = element.getAttribute( "data-intgrtn-placeholder-first-name" ); } if (element.getAttribute("data-intgrtn-placeholder-last-name")) { element.intgrtn.options.placeholders.lastName = element.getAttribute( "data-intgrtn-placeholder-last-name" ); } if (element.getAttribute("data-intgrtn-placeholder-email")) { element.intgrtn.options.placeholders.email = element.getAttribute("data-intgrtn-placeholder-email"); } if (element.getAttribute("data-intgrtn-placeholder-password")) { element.intgrtn.options.placeholders.password = element.getAttribute( "data-intgrtn-placeholder-password" ); } if (element.getAttribute("data-intgrtn-placeholder-password-confirm")) { element.intgrtn.options.placeholders.passwordConfirm = element.getAttribute( "data-intgrtn-placeholder-password-confirm" ); } if (element.getAttribute("data-intgrtn-placeholder-phone")) { element.intgrtn.options.placeholders.phone = element.getAttribute("data-intgrtn-placeholder-phone"); } if (element.getAttribute("data-intgrtn-placeholder-area-code")) { element.intgrtn.options.placeholders.areaCode = element.getAttribute( "data-intgrtn-placeholder-area-code" ); } if (element.getAttribute("data-intgrtn-label-checkbox-agree-terms")) { element.intgrtn.options.labels.checkboxAgreeTerms = element.getAttribute( "data-intgrtn-label-checkbox-agree-terms" ); } if (element.getAttribute("data-intgrtn-fields-checkbox-agree-terms-show")) { element.intgrtn.options.fields.checkboxAgreeTerms.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-checkbox-agree-terms-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-tooltip")) { element.intgrtn.options.fields.password.tooltip = element.getAttribute( "data-intgrtn-fields-password-tooltip" ); } if (element.getAttribute("data-intgrtn-fields-password-min-length")) { element.intgrtn.options.fields.password.minLength = element.getAttribute( "data-intgrtn-fields-password-min-length" ); } if (element.getAttribute("data-intgrtn-fields-password-max-length")) { element.intgrtn.options.fields.password.maxLength = element.getAttribute( "data-intgrtn-fields-password-max-length" ); } if (element.getAttribute("data-intgrtn-fields-password-verbose-errors-enabled")) { element.intgrtn.options.fields.password.verboseErrors.enabled = ["true", "1"].indexOf( element.getAttribute("data-intgrtn-fields-password-verbose-errors-enabled") ) !== -1; } if (element.getAttribute("data-intgrtn-steps-show")) { element.intgrtn.options.steps.show = element.getAttribute("data-intgrtn-steps-show") == 1; } if (element.getAttribute("data-intgrtn-buttons-go-to-step2-text")) { element.intgrtn.options.buttons.goToStep2.text = element.getAttribute( "data-intgrtn-buttons-go-to-step2-text" ); } if (element.getAttribute("data-intgrtn-buttons-go-to-step3-text")) { element.intgrtn.options.buttons.goToStep3.text = element.getAttribute( "data-intgrtn-buttons-go-to-step3-text" ); } if (element.getAttribute("data-intgrtn-buttons-submit-text")) { element.intgrtn.options.buttons.submit.text = element.getAttribute( "data-intgrtn-buttons-submit-text" ); } if (element.getAttribute("data-intgrtn-validate-events-name-suffix")) { element.intgrtn.options.validateEvents.eventNameSuffix = element.getAttribute( "data-intgrtn-validate-events-name-suffix" ); } if ( ["true", "1"].indexOf(element.getAttribute("data-intgrtn-form-fields-labels-show")) !== -1 || element.intgrtn.options.fields.labels.show === true ) { element.intgrtn.options.fields.firstName.showLabel = element.intgrtn.options.fields.firstName.showLabel !== null ? element.intgrtn.options.fields.firstName.showLabel : true; element.intgrtn.options.fields.lastName.showLabel = element.intgrtn.options.fields.lastName.showLabel !== null ? element.intgrtn.options.fields.lastName.showLabel : true; element.intgrtn.options.fields.email.showLabel = element.intgrtn.options.fields.email.showLabel !== null ? element.intgrtn.options.fields.email.showLabel : true; element.intgrtn.options.fields.password.showLabel = element.intgrtn.options.fields.password.showLabel !== null ? element.intgrtn.options.fields.password.showLabel : true; element.intgrtn.options.fields.passwordConfirm.showLabel = element.intgrtn.options.fields.passwordConfirm.showLabel !== null ? element.intgrtn.options.fields.passwordConfirm.showLabel : true; element.intgrtn.options.fields.phone.showLabel = element.intgrtn.options.fields.phone.showLabel !== null ? element.intgrtn.options.fields.phone.showLabel : true; } if (element.getAttribute("data-intgrtn-fields-first-name-label-show")) { element.intgrtn.options.fields.firstName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-first-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-last-name-label-show")) { element.intgrtn.options.fields.lastName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-last-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-email-label-show")) { element.intgrtn.options.fields.email.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-email-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-label-show")) { element.intgrtn.options.fields.password.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-password-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-password-confirm-label-show")) { element.intgrtn.options.fields.passwordConfirm.showLabel = ["true", "1"].indexOf( element.getAttribute("data-intgrtn-fields-password-confirm-label-show") ) !== -1; } if (element.getAttribute("data-intgrtn-fields-phone-label-show")) { element.intgrtn.options.fields.phone.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-phone-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-first-name-label")) { element.intgrtn.options.labels.firstName = element.getAttribute( "data-intgrtn-fields-first-name-label" ); } if (element.getAttribute("data-intgrtn-fields-last-name-label")) { element.intgrtn.options.labels.lastName = element.getAttribute( "data-intgrtn-fields-last-name-label" ); } if (element.getAttribute("data-intgrtn-fields-email-label")) { element.intgrtn.options.labels.email = element.getAttribute("data-intgrtn-fields-email-label"); } if (element.getAttribute("data-intgrtn-fields-password-label")) { element.intgrtn.options.labels.password = element.getAttribute( "data-intgrtn-fields-password-label" ); } if (element.getAttribute("data-intgrtn-fields-password-confirm-label")) { element.intgrtn.options.labels.passwordConfirm = element.getAttribute( "data-intgrtn-fields-password-confirm-label" ); } if (element.getAttribute("data-intgrtn-fields-phone-label")) { element.intgrtn.options.labels.phone = element.getAttribute("data-intgrtn-fields-phone-label"); } window.intgrtn.generateSignupForm3Steps(element.intgrtn.options, element); window.intgrtn.events.trigger("parse.data.tags.form.signup-3-steps.success", element); } }); window.intgrtn.elements.find("[data-intgrtn-form-optin]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.forms.optin); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; if (element.getAttribute("data-intgrtn-button-submit-text")) { element.intgrtn.options.buttons.submit.text = element.getAttribute( "data-intgrtn-button-submit-text" ); } if (element.getAttribute("data-intgrtn-placeholder-name")) { element.intgrtn.options.placeholders.name = element.getAttribute("data-intgrtn-placeholder-name"); } if (element.getAttribute("data-intgrtn-placeholder-first-name")) { element.intgrtn.options.placeholders.firstName = element.getAttribute( "data-intgrtn-placeholder-first-name" ); } if (element.getAttribute("data-intgrtn-placeholder-last-name")) { element.intgrtn.options.placeholders.lastName = element.getAttribute( "data-intgrtn-placeholder-last-name" ); } if (element.getAttribute("data-intgrtn-placeholder-email")) { element.intgrtn.options.placeholders.email = element.getAttribute("data-intgrtn-placeholder-email"); } if (element.getAttribute("data-intgrtn-placeholder-phone")) { element.intgrtn.options.placeholders.phone = element.getAttribute("data-intgrtn-placeholder-phone"); } if (element.getAttribute("data-intgrtn-fields-name-show")) { element.intgrtn.options.fields.name.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-name-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-first-name-show")) { element.intgrtn.options.fields.firstName.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-first-name-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-last-name-show")) { element.intgrtn.options.fields.lastName.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-last-name-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-phone-show")) { element.intgrtn.options.fields.phone.show = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-phone-show")) !== -1; } if (element.getAttribute("data-intgrtn-on-success-redirect-url") !== null) { element.intgrtn.options.onSuccess.redirectUrl = element.getAttribute( "data-intgrtn-on-success-redirect-url" ); } if ( ["true", "1"].indexOf(element.getAttribute("data-intgrtn-form-fields-labels-show")) !== -1 || element.intgrtn.options.fields.labels.show === true ) { element.intgrtn.options.fields.name.showLabel = element.intgrtn.options.fields.name.showLabel !== null ? element.intgrtn.options.fields.name.showLabel : true; element.intgrtn.options.fields.firstName.showLabel = element.intgrtn.options.fields.firstName.showLabel !== null ? element.intgrtn.options.fields.firstName.showLabel : true; element.intgrtn.options.fields.lastName.showLabel = element.intgrtn.options.fields.lastName.showLabel !== null ? element.intgrtn.options.fields.lastName.showLabel : true; element.intgrtn.options.fields.email.showLabel = element.intgrtn.options.fields.email.showLabel !== null ? element.intgrtn.options.fields.email.showLabel : true; element.intgrtn.options.fields.phone.showLabel = element.intgrtn.options.fields.phone.showLabel !== null ? element.intgrtn.options.fields.phone.showLabel : true; } if (element.getAttribute("data-intgrtn-fields-name-label-show")) { element.intgrtn.options.fields.name.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-first-name-label-show")) { element.intgrtn.options.fields.firstName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-first-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-last-name-label-show")) { element.intgrtn.options.fields.lastName.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-last-name-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-email-label-show")) { element.intgrtn.options.fields.email.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-email-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-phone-label-show")) { element.intgrtn.options.fields.phone.showLabel = ["true", "1"].indexOf(element.getAttribute("data-intgrtn-fields-phone-label-show")) !== -1; } if (element.getAttribute("data-intgrtn-fields-name-label")) { element.intgrtn.options.labels.name = element.getAttribute("data-intgrtn-fields-name-label"); } if (element.getAttribute("data-intgrtn-fields-first-name-label")) { element.intgrtn.options.labels.firstName = element.getAttribute( "data-intgrtn-fields-first-name-label" ); } if (element.getAttribute("data-intgrtn-fields-last-name-label")) { element.intgrtn.options.labels.lastName = element.getAttribute( "data-intgrtn-fields-last-name-label" ); } if (element.getAttribute("data-intgrtn-fields-email-label")) { element.intgrtn.options.labels.email = element.getAttribute("data-intgrtn-fields-email-label"); } if (element.getAttribute("data-intgrtn-fields-phone-label")) { element.intgrtn.options.labels.phone = element.getAttribute("data-intgrtn-fields-phone-label"); } window.intgrtn.elements.setHtml(element, window.intgrtn.generateOptinForm(element.intgrtn.options)); window.intgrtn.events.trigger("parse.data.tags.form.optin.success", element); } }); window.intgrtn.elements.find("[data-intgrtn-agreements]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.agreements); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; if (element.getAttribute("data-intgrtn-type")) { element.intgrtn.options.type = element.getAttribute("data-intgrtn-type"); } window.intgrtn.getAgreement( { type: element.intgrtn.options.type, }, function (response) { window.intgrtn.elements.setHtml(element, response.data.html); window.intgrtn.parseDataTags(); } ); } }); window.intgrtn.elements.find("[data-intgrtn-table-advertisers]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.tables.brokers); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; if (element.getAttribute("data-intgrtn-column-advertiser-logo-title")) { options.columns.advertiserLogo.title = element.getAttribute( "data-intgrtn-column-advertiser-logo-title" ); } if (element.getAttribute("data-intgrtn-column-custom1-title")) { options.columns.custom1.title = element.getAttribute("data-intgrtn-column-custom1-title"); } if (element.getAttribute("data-intgrtn-column-custom2-title")) { options.columns.custom2.title = element.getAttribute("data-intgrtn-column-custom2-title"); } if (element.getAttribute("data-intgrtn-column-custom3-title")) { options.columns.custom3.title = element.getAttribute("data-intgrtn-column-custom3-title"); } if (element.getAttribute("data-intgrtn-column-custom4-title")) { options.columns.custom4.title = element.getAttribute("data-intgrtn-column-custom4-title"); } if (element.getAttribute("data-intgrtn-column-custom5-title")) { options.columns.custom5.title = element.getAttribute("data-intgrtn-column-custom5-title"); } if (element.getAttribute("data-intgrtn-column-link-title")) { options.columns.link.title = element.getAttribute("data-intgrtn-column-link-title"); } window.intgrtn.elements.setHtml(element, window.intgrtn.generateBrokersTable(element.intgrtn.options)); } }); window.intgrtn.elements .find("[data-intgrtn-link-contact-us],[data-intgrtn-link-report-abuse]") .forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.forms.contactUs); element.intgrtn.options.mode = element.hasAttribute("data-intgrtn-link-contact-us") ? "contact" : "abuse"; if (element.getAttribute("data-intgrtn-type")) { element.intgrtn.options.fields.type.value = element.getAttribute("data-intgrtn-type"); } if (element.getAttribute("data-intgrtn-custom-endpoint")) { element.intgrtn.options.customEndpoint = element.getAttribute("data-intgrtn-custom-endpoint"); } element.intgrtn.openModal = function (e) { var modal = window.intgrtn.generateContactUsModal(element.intgrtn.options); modal.intgrtnModal.show(); if (e) { e.preventDefault(); } }; window.intgrtn.elements.on(element, "click", element.intgrtn.openModal); element.intgrtn.destroy = function () { window.intgrtn.elements.off(element, "click", element.intgrtn.openModal); }; } }); window.intgrtn.elements.find("[data-intgrtn-form-contact-request-message]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); var options = window.intgrtn.merge({}, window.intgrtn.options.contactRequestMessagesLayout); var layout = window.intgrtn.generateContactRequestMessagesLayout(options); window.intgrtn.elements.appendChild(element, layout); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; } }); window.intgrtn.elements.find("[data-intgrtn-link-agreements]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.options = window.intgrtn.merge({}, window.intgrtn.options.agreements); element.intgrtn.options.type = element.getAttribute("data-intgrtn-link-agreements"); element.intgrtn.openModal = function (e) { var modal = window.intgrtn.generateAgreementModal(element.intgrtn.options); modal.intgrtnModal.show(); if (e) { e.preventDefault(); } }; window.intgrtn.elements.on(element, "click", element.intgrtn.openModal); element.intgrtn.destroy = function () { window.intgrtn.elements.off(element, "click", element.intgrtn.openModal); }; } }); /** * Popup close button */ window.intgrtn.elements.find("[data-intgrtn-link-close-exit-popup]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; window.intgrtn.elements.on(element, "click", function (event) { if (window.intgrtn.inIframe()) { if (window.parent) { window.parent.postMessage("intgrtn-exit-popup-close", "*"); } } else { if ( window.top.intgrtn.options.exitPopup.modal && window.top.intgrtn.options.exitPopup.modal.intgrtnModal ) { window.top.intgrtn.options.exitPopup.modal.intgrtnModal.hide(); } } event.preventDefault(); }); } }); /** * Cookie Popup */ if (window.intgrtn.options.cookiePopup.disabled == false) { if ( !window.intgrtn.elements.findFirst(".intgrtn-cookie-popup") && window.intgrtn.lookup("cookiePopup", true, 1) == 1 && window.intgrtn.lookup("cookiePolicyAccepted", true) != 1 && !window.intgrtn.inIframe() ) { window.intgrtn.elements.appendChild("body", window.intgrtn.generateCookiePopup()); } } window.intgrtn.parseTooltips(); /** * Offer data attributes */ window.intgrtn.elements.find("[data-intgrtn-offer-name]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.destroy = function () { window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); }; window.intgrtn.getProjectDetails(function (projectDetailsResponse) { element.intgrtn.options = { offerName: projectDetailsResponse.data.project.name, }; window.intgrtn.elements.setHtml(element, element.intgrtn.options.offerName); window.intgrtn.elements.setAttribute(element, "style", "opacity: 1"); }); } }); window.intgrtn.elements.find("[data-intgrtn-offer-logo]").forEach(function (element) { if (!element.intgrtn) { element.intgrtn = {}; element.intgrtn.oldContent = window.intgrtn.elements.getHtml(element); element.intgrtn.destroy = function () { window.intgrtn.elements.removeClass(element, "intgrtn-image"); window.intgrtn.elements.setHtml(element, element.intgrtn.oldContent); element.removeEventListener("load", onLoadImage); }; var onLoadImage = function () { window.intgrtn.elements.setAttribute(element, "style", "opacity: 1"); }; window.intgrtn.elements.addClass(element, "intgrtn-image"); window.intgrtn.getProjectDetails(function (projectDetailsResponse) { element.intgrtn.options = { mode: "light", offerName: projectDetailsResponse.data.project.name, logoLight: projectDetailsResponse.data.project.softwareLoginPageLogoPath, logoDark: projectDetailsResponse.data.project.softwareDashboardPageLogoPath, }; if (element.getAttribute("data-intgrtn-offer-logo")) { element.intgrtn.options.mode = element.getAttribute("data-intgrtn-offer-logo"); } switch (element.intgrtn.options.mode) { case "light": if (element.intgrtn.options.logoLight) { var projectLogoLight = new URL(element.intgrtn.options.logoLight); element.addEventListener("load", onLoadImage); window.intgrtn.elements.setAttribute( element, "src", window.intgrtn.options.server.endpoint + projectLogoLight.pathname ); window.intgrtn.elements.setAttribute(element, "alt", element.intgrtn.options.offerName); } else { onLoadImage(); } break; case "dark": if (element.intgrtn.options.logoDark) { var projectLogoDark = new URL(element.intgrtn.options.logoDark); element.addEventListener("load", onLoadImage); window.intgrtn.elements.setAttribute( element, "src", window.intgrtn.options.server.endpoint + projectLogoDark.pathname ); window.intgrtn.elements.setAttribute(element, "alt", element.intgrtn.options.offerName); } else { onLoadImage(); } break; default: console.error("Invalid data-intgrtn-offer-logo value"); break; } }); } }); window.intgrtn.events.trigger("parse.data.tags.success"); return window.intgrtn; }; window.intgrtn.destroyDataTags = function () { window.intgrtn.elements.find("[data-intgrtn-form-signup]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-form-signup-2-steps]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-form-signup-3-steps]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-form-optin]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-form-contact-request-message]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-agreements]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements .find("[data-intgrtn-link-contact-us],[data-intgrtn-link-report-abuse]") .forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-table-advertisers]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-link-agreements]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements .find("[data-intgrtn-link-contact-us],[data-intgrtn-link-report-abuse]") .forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-offer-name],[data-intgrtn-offer-logo]").forEach(function (element) { if (element.intgrtn) { element.intgrtn.destroy(); } delete element.intgrtn; }); window.intgrtn.elements.find("[data-intgrtn-tooltip]").forEach(function (element) { if (element.intgrtnTooltip) { element.intgrtnTooltip.destroy(); } delete element.intgrtnTooltip; }); window.intgrtn.elements.remove(".intgrtn-tooltip"); if ( window.intgrtn.elements.findFirst(".intgrtn-cookie-popup") && window.intgrtn.elements.findFirst(".intgrtn-cookie-popup").intgrtn ) { window.intgrtn.elements.findFirst(".intgrtn-cookie-popup").intgrtn.destroy(); } window.intgrtn.events.trigger("destroy.data.tags.success"); return window.intgrtn; }; if (typeof window.intgrtnInit === "function") { window.intgrtnInit(window.intgrtn); } if (window.intgrtn.lookup("intgrtn.options.server.endpoint", true)) { window.intgrtn.options.server.endpoint = window.intgrtn.lookup("intgrtn.options.server.endpoint", true); } if (window.intgrtn.lookup("intgrtn.options.server.host", true)) { window.intgrtn.options.server.host = window.intgrtn.lookup("intgrtn.options.server.host", true); } /** * Clear all intgrtn cookies on new clickID */ if (window.intgrtn.cookies.get("intgrtn_clickID") && window.intgrtn.getParameter("intgrtn_clickID")) { if (window.intgrtn.cookies.get("intgrtn_clickID") != window.intgrtn.getParameter("intgrtn_clickID")) { window.intgrtn.cookies.getAll().forEach(function (cookie) { if (cookie.name.startsWith("intgrtn_")) { window.intgrtn.cookies.delete(cookie.name); } }); } } //Store default params window.intgrtn.lookup("clickID", true); window.intgrtn.lookup("custom", true); window.intgrtn.lookup("custom1", true); window.intgrtn.lookup("custom2", true); window.intgrtn.lookup("custom3", true); window.intgrtn.lookup("custom4", true); window.intgrtn.lookup("custom5", true); window.intgrtn.lookup("autoSignup", true); window.intgrtn.lookup("isTest", true); window.intgrtn.lookup("bID", true); window.intgrtn.lookup("baa", true); window.intgrtn.lookup("ip", true); window.intgrtn.lookup("redirectReturningLead", true); window.intgrtn.lookup("signupRequestID", true); window.intgrtn.lookup("cookiePopup", true); window.intgrtn.lookup("userHash", true); window.intgrtn.lookup("platforms", true); window.intgrtn.lookup("excludePlatforms", true); window.intgrtn.lookup("locale", true); window.intgrtn.lookup("offerName", true); window.intgrtn.lookup("offerWebsite", true); window.intgrtn.lookup("offerHash", true); window.intgrtn.lookup("comment", true); window.intgrtn.lookup("language", true); if (!window.intgrtn.lookup("locale", true)) { var userLang = navigator.language || navigator.userLanguage; if (userLang) { window.intgrtn.store("locale", userLang); } } if (!window.intgrtn.lookup("language", true)) { if (window.intgrtn.options.language) { window.intgrtn.store("language", window.intgrtn.options.language); } else { var htmlLanguage = window.intgrtn.elements.findFirst("html").getAttribute("data-intgrtn-language"); if (htmlLanguage) { window.intgrtn.store("language", htmlLanguage); } } } //Fire events from URL parameters; if (window.intgrtn.getParameter("intgrtn_fireEvent")) { window.intgrtn.fireEvent({ name: window.intgrtn.getParameter("intgrtn_fireEvent"), }); } //Auto open modals if (window.intgrtn.getParameter("intgrtn_openModal")) { switch (window.intgrtn.getParameter("intgrtn_openModal")) { case "contact-us": var modal = window.intgrtn.generateContactUsModal(); modal.intgrtnModal.show(); break; case "report-abuse": var modal = window.intgrtn.generateAbuseModal(); modal.intgrtnModal.show(); break; default: window.intgrtn.sendErrorMessage("Invalid value for intgrtn_openModal parameter."); break; } } window.intgrtn.loadjscssfile( window.intgrtn.options.server.endpoint + "/api/v1/integration/sdk.css?v=" + window.intgrtn.getVersion(), "css" ); window.intgrtn.getProjectDetails( function (response) { if ( ["dev"].indexOf(response.data.application.mode) == -1 && window.intgrtn.lookup("isTest", true) == null ) { if (window.intgrtn.options.server.ignoreProjectEndpoint == false) { var scriptUrlParser = document.createElement("a"); scriptUrlParser.href = response.data.whitelabel.affiliateLinkURL; window.intgrtn.options.server.endpoint = "https://" + scriptUrlParser.hostname; window.intgrtn.options.server.host = scriptUrlParser.hostname; window.intgrtn.store("intgrtn.options.server.endpoint", window.intgrtn.options.server.endpoint); window.intgrtn.store("intgrtn.options.server.host", window.intgrtn.options.server.host); } } // ignoreCountryRestrictions is deprecated (LK-53587) do not use if ( window.intgrtn.lookup("ignoreTargeting", true) != 1 && window.intgrtn.lookup("ignoreCountryRestrictions", true) != 1 ) { window.intgrtn.checkTargeting(); } /** * Check to generate clickID */ if (window.intgrtn.lookup("userHash", true) && !window.intgrtn.lookup("clickID", true)) { window.intgrtn.sendAddClickRequest( { userHash: window.intgrtn.lookup("userHash", true), }, function (response) { window.intgrtn.store("clickID", response.data.click.ID); if (response.data.scripts && !window.intgrtn.inIframe()) { window.intgrtn.appendProjectScripts(response.data.scripts); } } ); } /** * Save custom fields in cookies */ var intgrtnCustomFields = window.intgrtn.getQueryParameters().intgrtn_customFields; if (intgrtnCustomFields) { var intgrtnCustomFieldCookie = window.intgrtn.cookies.get("intgrtn_customFields"); if (intgrtnCustomFieldCookie) { intgrtnCustomFieldCookie = JSON.parse(intgrtnCustomFieldCookie); intgrtnCustomFields = window.intgrtn.merge(intgrtnCustomFieldCookie, intgrtnCustomFields); } window.intgrtn.cookies.set("intgrtn_customFields", JSON.stringify(intgrtnCustomFields), 365); } if (response.data.project.details) { window.intgrtn.options.forms.optin.fields.firstName.required = response.data.project.details.requiredFirstName; window.intgrtn.options.forms.optin.fields.lastName.required = response.data.project.details.requiredLastName; window.intgrtn.options.forms.optin.fields.email.required = response.data.project.details.requiredEmail; if (response.data.project.details.forms.optin.firstName.minLength !== null) { if (response.data.project.details.forms.optin.firstName.minLength == 0) { response.data.project.details.forms.optin.firstName.minLength = false; } window.intgrtn.options.forms.optin.fields.firstName.minLength = response.data.project.details.forms.optin.firstName.minLength; } if (response.data.project.details.forms.optin.lastName.minLength !== null) { if (response.data.project.details.forms.optin.lastName.minLength == 0) { response.data.project.details.forms.optin.lastName.minLength = false; } window.intgrtn.options.forms.optin.fields.lastName.minLength = response.data.project.details.forms.optin.lastName.minLength; } window.intgrtn.options.forms.signup.fields.firstName.required = response.data.project.details.requiredFirstName; window.intgrtn.options.forms.signup.fields.lastName.required = response.data.project.details.requiredLastName; window.intgrtn.options.forms.signup.fields.email.required = response.data.project.details.requiredEmail; window.intgrtn.options.forms.signup.fields.phone.required = response.data.project.details.requiredPhone; window.intgrtn.options.forms.signup.fields.areaCode.required = response.data.project.details.requiredPhone; window.intgrtn.options.forms.signup.fields.password.required = response.data.project.details.requiredPassword; window.intgrtn.options.forms.signup.fields.passwordConfirm.required = response.data.project.details.requiredPassword; window.intgrtn.options.cookiePopup.disabled = response.data.project.details.enableCookiePopup == 0; if (response.data.project.details.firstName.minLength !== null) { if (response.data.project.details.firstName.minLength == 0) { response.data.project.details.firstName.minLength = false; } window.intgrtn.options.forms.signup.fields.firstName.minLength = response.data.project.details.firstName.minLength; } if (response.data.project.details.firstName.maxLength !== null) { if (response.data.project.details.firstName.maxLength == 0) { response.data.project.details.firstName.maxLength = false; } window.intgrtn.options.forms.signup.fields.firstName.maxLength = response.data.project.details.firstName.maxLength; } if (response.data.project.details.lastName.minLength !== null) { if (response.data.project.details.lastName.minLength == 0) { response.data.project.details.lastName.minLength = false; } window.intgrtn.options.forms.signup.fields.lastName.minLength = response.data.project.details.lastName.minLength; } if (response.data.project.details.lastName.maxLength !== null) { if (response.data.project.details.lastName.maxLength == 0) { response.data.project.details.lastName.maxLength = false; } window.intgrtn.options.forms.signup.fields.lastName.maxLength = response.data.project.details.lastName.maxLength; } window.intgrtn.options.forms.signup.fields.password.maxLength = response.data.project.details.password.maxLength; window.intgrtn.options.forms.signup.fields.password.minLength = response.data.project.details.password.minLength; if (response.data.project.details.password.pattern !== null) { var matches = response.data.project.details.password.pattern.match(regexValidationExpression); if (matches && matches[0]) { window.intgrtn.options.forms.signup.fields.password.pattern = matches[1] ? new RegExp(matches[0].slice(1, -1)) : new RegExp(matches[0].slice(1, -1), matches[1]); } } else { window.intgrtn.options.forms.signup.fields.password.pattern = null; } window.intgrtn.options.forms.signup.fields.password.pattern = response.data.project.details.password.pattern !== null ? new RegExp(response.data.project.details.password.pattern.slice(1, -1)) : null; if (response.data.project.details.password.patternLowercaseLetter !== null) { if (response.data.project.details.password.patternLowercaseLetter == 0) { response.data.project.details.password.patternLowercaseLetter = false; } window.intgrtn.options.forms.signup.fields.password.patternLowercaseLetter = response.data.project.details.password.patternLowercaseLetter; } if (response.data.project.details.password.patternUppercaseLetter !== null) { if (response.data.project.details.password.patternUppercaseLetter == 0) { response.data.project.details.password.patternUppercaseLetter = false; } window.intgrtn.options.forms.signup.fields.password.patternUppercaseLetter = response.data.project.details.password.patternUppercaseLetter; } if (response.data.project.details.password.patternNoSpecialChars !== null) { if (response.data.project.details.password.patternNoSpecialChars == 0) { response.data.project.details.password.patternNoSpecialChars = false; } window.intgrtn.options.forms.signup.fields.password.patternNoSpecialChars = response.data.project.details.password.patternNoSpecialChars; } if (response.data.project.details.password.patternNumber !== null) { if (response.data.project.details.password.patternNumber == 0) { response.data.project.details.password.patternNumber = false; } window.intgrtn.options.forms.signup.fields.password.patternNumber = response.data.project.details.password.patternNumber; } if (response.data.project.details.password.patternLetter !== null) { if (response.data.project.details.password.patternLetter == 0) { response.data.project.details.password.patternLetter = false; } window.intgrtn.options.forms.signup.fields.password.patternLetter = response.data.project.details.password.patternLetter; } window.intgrtn.options.forms.signup.fields.password.tooltip = response.data.project.details.password.tooltip; window.intgrtn.options.forms.signup.fields.password.errors.pattern = response.data.project.details.password.errors.pattern; if (response.data.project.details.enableCaptcha == true) { window.intgrtn.options.forms.signup.fields.captcha.show = true; window.intgrtn.options.forms.signup.fields.captcha.required = true; } if (response.data.project.details.enableSmsVerification == true) { window.intgrtn.options.forms.signup.fields.smsVerificationCode.show = true; window.intgrtn.options.forms.signup.fields.smsVerificationCode.required = true; } } /** * Check for exit popup */ if ( !window.intgrtn.isMobileDevice() && !window.intgrtn.inIframe() && window.intgrtn.elements.find("[data-intgrtn-form-contact-request-message]").length == 0 ) { if (response.data.exitPopup) { if (window.intgrtn.options.exitPopup.url === null) { window.intgrtn.options.exitPopup.url = response.data.exitPopup.url; } if (window.intgrtn.options.exitPopup.html === null) { window.intgrtn.options.exitPopup.html = response.data.exitPopup.html; } if (window.intgrtn.options.exitPopup.showLimit === null) { window.intgrtn.options.exitPopup.showLimit = response.data.exitPopup.showLimit; } if (window.intgrtn.options.exitPopup.delayInterval === null) { window.intgrtn.options.exitPopup.delayInterval = response.data.exitPopup.delayInterval; } if (window.intgrtn.options.exitPopup.disableUntilScroll === null) { window.intgrtn.options.exitPopup.disableUntilScroll = response.data.exitPopup.disableUntilScroll; } if (window.intgrtn.options.exitPopup.preloadUrl === null) { window.intgrtn.options.exitPopup.preloadUrl = response.data.exitPopup.preloadUrl; } if (window.intgrtn.options.exitPopup.disabled === null) { window.intgrtn.options.exitPopup.disabled = response.data.exitPopup.disabled; } if (window.intgrtn.options.exitPopup.firstLoadDelay === null) { window.intgrtn.options.exitPopup.firstLoadDelay = response.data.exitPopup.firstLoadDelay; } } window.intgrtn.options.exitPopup.modal = window.intgrtn.generateExitPopupModal(); if ( window.intgrtn.options.exitPopup.firstLoadDelay !== null && window.intgrtn.options.exitPopup.firstLoadDelay !== 0 ) { window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromFirstLoadDelay = true; setTimeout(function () { window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromFirstLoadDelay = false; }, parseInt(window.intgrtn.options.exitPopup.firstLoadDelay) * 1000); } window.intgrtn.elements.on("html", "mouseleave", function (e) { if (window.intgrtn.options.exitPopup.modal.intgrtnModal.isShowed) { return false; } if (!window.intgrtn.options.exitPopup.url && !window.intgrtn.options.exitPopup.html) { return false; } if (window.intgrtn.options.exitPopup.disabled) { return false; } if (window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromDelay) { return false; } if (window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromCount) { return false; } if (window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromScroll) { return false; } if (window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromFirstLoadDelay) { return false; } if (window.intgrtn.elements.find("input:focus").length == 0) { window.intgrtn.options.exitPopup.modal.intgrtnModal.show(); } else { var tolerance = 20; if ( e.clientX <= tolerance || window.intgrtn.getViewportWidth() - e.clientX <= tolerance || e.clientY <= tolerance || window.intgrtn.getViewportHeight() - e.clientY <= tolerance ) { window.intgrtn.options.exitPopup.modal.intgrtnModal.show(); } } }); window.intgrtn.elements.on(window, "scroll", function () { window.intgrtn.options.exitPopup.modal.intgrtnExitPopup.disabledFromScroll = false; }); } if (response.data.scripts && !window.intgrtn.inIframe()) { window.intgrtn.appendProjectScripts(response.data.scripts); } if (response.data.domManipulations) { response.data.domManipulations.forEach(function (item) { window.intgrtn.elements.find(item.selector).forEach(function (element) { switch (item.action) { case "append": case "prepend": case "html": window.intgrtn.elements.parseHTML(item.value).forEach(function (node) { switch (item.action) { case "append": window.intgrtn.elements.appendChild(element, node); break; case "prepend": window.intgrtn.elements.prepend(element, node); break; case "html": window.intgrtn.elements.setHtml(element, node); break; default: break; } }); break; case "remove": window.intgrtn.elements.remove(element); break; } }); }); } var waitDocumentLoading = setInterval(function () { if (document.readyState == "loading") { return false; } clearInterval(waitDocumentLoading); window.intgrtn.destroyDataTags(); window.intgrtn.parseDataTags(); window.intgrtn.events.trigger("get.project.details.success", response); window.intgrtn.fireEvent({ name: window.intgrtn.options.initializedEvent.name, }); }, 1); /** * Redirect Returning Lead */ if ( window.intgrtn.elements.find("[data-intgrtn-form-optin]").length > 0 || window.intgrtn.elements.find("[data-intgrtn-form-signup]").length > 0 || window.intgrtn.elements.find("[data-intgrtn-form-signup-2-steps]").length > 0 || window.intgrtn.elements.find("[data-intgrtn-form-signup-3-steps]").length > 0 ) { if (!window.intgrtn.getParameter("intgrtn_openModal") && !window.intgrtn.inIframe()) { if ( window.intgrtn.lookup("redirectReturningLead", true, "auto") == "auto" && window.intgrtn.lookup("signupRequestID", true) ) { window.intgrtn.goToBrokerLoginUrlBySignupRequestID( window.intgrtn.lookup("signupRequestID", true) ); } } } }, function (response) { if (response.data.domManipulations) { response.data.domManipulations.forEach(function (item) { window.intgrtn.elements.find(item.selector).forEach(function (element) { switch (item.action) { case "append": case "prepend": case "html": window.intgrtn.elements.parseHTML(item.value).forEach(function (node) { switch (item.action) { case "append": window.intgrtn.elements.appendChild(element, node); break; case "prepend": window.intgrtn.elements.prepend(element, node); break; case "html": window.intgrtn.elements.setHtml(element, node); break; default: break; } }); break; case "remove": window.intgrtn.elements.remove(element); break; } }); }); } var waitDocumentLoading = setInterval(function () { if (document.readyState == "loading") { return false; } clearInterval(waitDocumentLoading); window.intgrtn.destroyDataTags(); window.intgrtn.parseDataTags(); window.intgrtn.events.trigger("get.project.details.error", response); }, 1); } ); })(window, document, console);