/* eslint-disable */ // license for http://dustindiaz.com/rock-solid-addevent function addEvent(obj, type, fn) { if (obj.addEventListener) { obj.addEventListener(type, fn, false); EventCache.add(obj, type, fn); } else if (obj.attachEvent) { obj['e' + type + fn] = fn; obj[type + fn] = function () { obj['e' + type + fn](window.event); }; obj.attachEvent('on' + type, obj[type + fn]); EventCache.add(obj, type, fn); } else { obj['on' + type] = obj['e' + type + fn]; } } var EventCache = (function () { var listEvents = []; return { listEvents: listEvents, add: function (node, sEventName, fHandler) { listEvents.push(arguments); }, flush: function () { var i, item; for (i = listEvents.length - 1; i >= 0; i = i - 1) { item = listEvents[i]; if (item[0].removeEventListener) { item[0].removeEventListener(item[1], item[2], item[3]); } if (item[1].substring(0, 2) != 'on') { item[1] = 'on' + item[1]; } if (item[0].detachEvent) { item[0].detachEvent(item[1], item[2]); } item[0][item[1]] = null; } }, }; })(); addEvent(window, 'unload', EventCache.flush); // need to only inject this for IE8 (function () { if (!document.getElementsByClassName) { var indexOf = [].indexOf || function (prop) { for (var i = 0; i < this.length; i++) { if (this[i] === prop) return i; } return -1; }; getElementsByClassName = function (className, context) { var elems = document.querySelectorAll ? context.querySelectorAll('.' + className) : (function () { var all = context.getElementsByTagName('*'), elements = [], i = 0; for (; i < all.length; i++) { if ( all[i].className && (' ' + all[i].className + ' ').indexOf(' ' + className + ' ') > -1 && indexOf.call(elements, all[i]) === -1 ) { elements.push(all[i]); } } return elements; })(); return elems; }; document.getElementsByClassName = function (className) { return getElementsByClassName(className, document); }; } })(); (function () { 'use strict'; var _iframes = ''; var _agencyRev = { Forms: { init: function (realmId, formId, formSettings) { function generateIframe() { var newFrame = document.createElement('iframe'); newFrame.scrolling = 'no'; newFrame.frameBorder = '0'; newFrame.width = '100%'; newFrame.allowTransparency = 'true'; newFrame.src = 'https://forms.agencyrevolution.com/v2/realms/' + realmId + '/forms/' + formId + '/iframe.html?formSettings=' + encodeURIComponent(JSON.stringify(formSettings)); // if (document.location.protocol && document.location.protocol.indexOf('file') >= 0) { // newFrame.src = newFrame.src.replace('file//', ''); // } // console.log('FormUrl', newFrame.src); return newFrame; } _iframes = document.getElementsByClassName( 'agency-revolution-form-' + realmId + '-' + formId ); function forEach(arr, iterateFn) { for (var idx = 0; idx < arr.length; idx++) { iterateFn(arr[idx], idx); } } function createAttributesList(attributes) { var listOfAttributes = []; forEach(attributes, function (item, index) { listOfAttributes.push(item.name); listOfAttributes.push(item.value); }); return listOfAttributes.toString(); } function receiveMessage(event) { var eventData = event.data.split('§'); switch (eventData[0]) { case 'loaded': { var contentWindow = _iframes[eventData[2]].getElementsByTagName('iframe')[0].contentWindow; forEach(document.getElementsByTagName('link'), function (element) { if (element.rel == 'stylesheet') { var attributesList = createAttributesList(element.attributes); // inject css into child frame from parent frame contentWindow.postMessage('injectCss§rel§' + attributesList, '*'); } }); forEach(document.getElementsByTagName('style'), function (element) { // inject css into child frame from parent frame contentWindow.postMessage('injectCss§style§' + element.outerHTML, '*'); }); break; } case 'resize': { _iframes[eventData[3]].getElementsByTagName('iframe')[0].height = eventData[2]; break; } case 'scrollToTop': { // scroll to top iframe var formElement = _iframes[0].getElementsByTagName('iframe')[0]; formElement.scrollIntoView(true); } default: } } addEvent(window, 'message', receiveMessage); forEach(_iframes, function (element, index) { var newIframe = generateIframe(); newIframe.src = newIframe.src + '#' + index; element.appendChild(newIframe); }); }, }, }; window.AgencyRev = _agencyRev; })();