window.addEventListener('load', function(event) { var formData = {}; var formUrl = ''; var dtmObj = {}; var variant; var globalOptinFlag = false; var customPageName = false; var successFnFlag = false; var successFnName; var customPageNameVal; var adobe_ecid = s_dtm.visitor.getMarketingCloudVisitorID(); var formEleClick = document.getElementsByClassName('mlistSubmit'); for (var i = 0; i < formEleClick.length; i++) { formEleClick[i].addEventListener('click', formHandler, false); } function formHandler(event) { event.preventDefault(); var formSel = event.target.closest('form'); var mainParentEle = formSel.parentElement.parentElement; var mlistVariantToast = mainParentEle.classList.contains('dtmtoaster'); customPageNameVal = mainParentEle.getAttribute("data-custom-page-name"); successFnName = mainParentEle.getAttribute("data-success"); if (successFnName && successFnName != '=') { successFnFlag = true; } if (customPageNameVal && customPageNameVal !== '') { customPageName = true; dtmObj.customPageName = customPageNameVal; } if (mlistVariantToast) { variant = 'Toaster:'; } else { variant = ''; } var formInputs = formSel.getElementsByTagName("input"); var formSelects = formSel.getElementsByTagName("select"); var signUpurl = formSel.getAttribute("action"); for (var i = 0; i < formInputs.length; i++) { if (formInputs[i].getAttribute('type') != 'submit' && formInputs[i].getAttribute('type') != 'checkbox') { formData[formInputs[i].name] = formInputs[i].value; } if (formInputs[i].getAttribute('type') == 'checkbox') { if (formInputs[i].checked) { if (formInputs[i].name == 'goptin') { globalOptinFlag = true; if (formInputs[i].value) { formData['newsletterId'] += ',' + formInputs[i].value; dtmObj.goptin = formInputs[i].value; } } else { if (formInputs[i].value) { formData[formInputs[i].name] = formInputs[i].value; } } } } } for (var j = 0; j < formSelects.length; j++) { formData[formSelects[j].name] = formSelects[j].options[formSelects[j].selectedIndex].value; } formUrl += signUpurl; for (var i in formData) { formUrl += i + '=' + formData[i] + '&'; } if (formSel.id == 'mlistFormOne') { dtmObj.nListId = formData.newsletterId; dtmObj.dataSource = formData.datasource; formUrl += 'adobe_ecid='+adobe_ecid+'&'; } if (globalOptinFlag) { formUrl += 'global_optin=TRUE&'; } else { // } formUrl +='jsonp=mlcallback'; validateForm(formData.email, formSel); } function validateForm(email, formIns) { if (validator.checkForm(formIns)) { submitForm(formUrl, formIns, email, signupFormCallback); } else { formUrl = ''; formData = {}; globalOptinFlag = false; } } function signupFormCallback(err, data, email, formSel) { if (data.status == 'success') { var mainParent = formSel.parentElement.parentElement; var namePart = email.split("@"); var secondFormEmail = mainParent.querySelector('#mlistFormTwo #secondFormEmail'); var secondFormName = mainParent.querySelector('#secondform #name'); var secondForm = mainParent.querySelector('#secondform'); var secondFormClose = mainParent.querySelectorAll('#secondform #secondFormClose'); var thankyouBlk = mainParent.querySelector('#thankyou'); function closeSecondForm() { secondForm.classList.remove('fadeIn'); secondForm.classList.add('fadeOut'); thankyouBlk.classList.remove('fadeOut'); thankyouBlk.classList.add('fadeIn'); } if (secondFormClose.length > 0) { secondFormClose[0].addEventListener('click', closeSecondForm, false); } if (formSel.id == 'mlistFormOne') { if (typeof(secondFormName) != 'undefined' && secondFormName != null) { secondFormName.innerText = namePart[0]; } formSel.classList.add('fadeOut'); var messageEle = formSel.previousElementSibling; if (messageEle) { messageEle.classList.add('fadeOut'); } var termsEle = formSel.nextElementSibling; termsEle.classList.add('fadeOut'); if (formSel.classList.contains('singleform')) { mlistDTM.mailingListDTM('firstFormSubmit', 0, variant, dtmObj, customPageName); thankyouBlk.classList.add('fadeIn'); if (successFnFlag) { window[successFnName](); } } else { mlistDTM.mailingListDTM('firstFormSubmit', 1, variant, dtmObj, customPageName); secondFormEmail.value = email; secondForm.classList.remove('fadeOut'); secondForm.classList.add('fadeIn'); } } else { if (dtmObj.goptin !== '' && dtmObj.goptin != undefined) { mlistDTM.mailingListDTM('labelSubscription', 2, variant, dtmObj, customPageName); } else { mlistDTM.mailingListDTM('noLabelSubscription', 2, variant, dtmObj, customPageName); } if (successFnFlag) { window[successFnName](); } closeSecondForm(); } formUrl = ''; formData = {}; } } function submitForm(url, formIns, email, callback) { var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.onload = function() { var status = xhr.status; if (status == 200) { var data = this.responseText; callback(null, JSON.parse(data.substring(data.indexOf('{'), data.lastIndexOf('}') + 1)), email, formIns); } else { callback(status); } }; xhr.send(); }; var mlistTerms = document.querySelectorAll('.plain-ml-wrapper #terms a.terms'); for (l = 0; l < mlistTerms.length; l++) { mlistTerms[l].addEventListener('click', toggleTerms, false); } function toggleTerms(event) { if (event.target.nextElementSibling.classList.contains('fadeOut')) { event.target.nextElementSibling.classList.remove('fadeOut'); event.target.nextElementSibling.classList.add('fadeIn'); event.target.innerText = 'Hide'; } else { event.target.nextElementSibling.classList.remove('fadeIn'); event.target.nextElementSibling.classList.add('fadeOut'); event.target.innerText = 'Terms'; } } });