window.FMS_VERSION = "1.14.0", function() { function a() { return document.getElementById(g) } function b() { var b = !!a(); return b || console.error("Could not find FMS container with ID '" + g + "'."), b } function c(b) { var c = a().getAttribute("data-" + b); return null != c && "" !== c || !h[b] || (c = h[b]), c } function d(b, c) { return a().setAttribute("data-" + b, c) } function e() { j.load(function() { window.FMS_APP_MANAGER.startApp(), console.log("FMS Angular app started.") }) } function f(a) { var b = document.getElementById(a); if (b) { var c = b.getBoundingClientRect().top, d = b.getBoundingClientRect().left; b.style.height = "calc(100% - " + c + "px", b.style.width = "calc(100% - " + d + "px" } } var g = "mb-formbuilder-container", h = { "base-url": window.location.protocol + "//" + window.location.host }; window.FMS_APP_MANAGER = function() { function e() { return n } function f() { return !("undefined" == typeof angular || !n) && void 0 !== angular.element(a()).scope() } function g() { for (; o.length;) o.shift()() } function h(a) { o.push(a), f() && g() } function i() { if (!n && b()) { var e = a(), f = c("mode"); if ("full" === f) d("ui-view", ""); else if ("client" === f) { var h = c("form-id"); e.innerHTML = "" } else if ("client-preview" === f) { var h = c("form-id"); e.innerHTML = "" } n = angular.bootstrap(e, [m]), g() } } function j(b) { var c = n.get("$rootScope"); c.$on("$destroy", function() { n = null; var c = a(); c && $(c).empty(), b && b() }), c.$destroy() } function k(a, b) { var c = n.get("$rootScope"); return c.$on(a, b) } function l(a) { if (!n) return void i(); var b = this; j(function() { b.startApp(), a && a() }) } var m = "mb.formbuilder", n = null, o = []; return { getApp: e, isReady: f, whenReady: h, restartApp: l, startApp: i, stopApp: j, subscribe: k } }(); var i = function() { function a(a, b, c) { var d = new XMLHttpRequest; d.onload = function(a) { try { if (200 !== a.target.status) throw "request failed (status = " + a.target.status + ")"; var e = JSON.parse(a.currentTarget.response || d.responseText); b(e) } catch (f) { console.error("getJson failed. Error = " + f), c && c(a) } }, d.open("get", a, !0), d.send() } function b(a) { try { window.angular.module(a) } catch (b) { return !1 } return !0 } function c(a, b, c) { var d = document.createElement("script"); d.type = "text/javascript", d.readyState ? d.onreadystatechange = function() { "loaded" !== d.readyState && "complete" !== d.readyState || (d.onreadystatechange = null, b && console.log(b), c && c()) } : d.onload = function() { b && console.log(b), c && c() }, d.src = a, document.body.appendChild(d) } return { getJson: a, isAngularModulePresent: b, loadScript: c } }(), j = function() { function a(b, c) { c || (c = ""); for (var d in b) b.hasOwnProperty(d) && ("string" == typeof b[d] || b[d] instanceof String ? l["includedTemplates" + c + "/" + d] = b[d] : a(b[d], c + "/" + d)) } function b() { var a = document.createElement("meta"); a.name = "viewport", a.content = "width=device-width, initial-scale=1", document.getElementsByTagName("head")[0].appendChild(a) } function d() { function a() { window.rangy ? h || i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.4.1/dist/textAngular-sanitize.min.js", "textAngular-sanitize loaded", function() { i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.4.1/dist/textAngular.min.js", "textAngular loaded") }) : i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.4.1/dist/textAngular-rangy.min.js", "textAngular-rangy loaded", function() { h || i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.4.1/dist/textAngular-sanitize.min.js", "textAngular-sanitize loaded", function() { i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.4.1/dist/textAngular.min.js", "textAngular loaded") }) }) } var b = c("base-url"), d = i.isAngularModulePresent("angular-sortable-view"), e = i.isAngularModulePresent("angular-animate"), f = i.isAngularModulePresent("ui.router"), g = i.isAngularModulePresent("ui.bootstrap"), h = i.isAngularModulePresent("textAngular"), j = i.isAngularModulePresent("jcs-autoValidate"), k = i.isAngularModulePresent("ngCsv.config"), l = i.isAngularModulePresent("ui.grid"), m = i.isAngularModulePresent("credit-cards"), n = i.isAngularModulePresent("jdFontselect"), o = i.isAngularModulePresent("rzModule"), p = i.isAngularModulePresent("angularSpectrumColorpicker"), q = i.isAngularModulePresent("angularRipple"), r = i.isAngularModulePresent("ngFileUpload"), s = i.isAngularModulePresent("ngIntlTelInput"), t = i.isAngularModulePresent("kendoUi"); e || i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-animate.js", "Angular animate loaded"), f || i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js", "ui.router loaded"), g || i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.3.3/ui-bootstrap-tpls.min.js", "ui.bootstrap loaded"), a(), k || i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/ng-csv/0.3.6/ng-csv.min.js", "NgCsv loaded"), d || j || l || m || n || o || p || q || r || t || s ? (p || i.loadScript(b + "/scripts/a_spectrum.min.js", "angular spectrum loaded ", function() { i.loadScript(b + "/scripts/b_angular-spectrum-colorpicker.min.js", "angular spectrum color picker loaded ") }), q || i.loadScript(b + "/scripts/angular-ripple.min.js", "angular-ripple loaded"), d || i.loadScript(b + "/scripts/angular-sortable-view.min.js", "angular-sortable-view loaded"), j || i.loadScript(b + "/scripts/angular-auto-validate.min.js", "ngMessages auto-validate loaded "), l || i.loadScript(b + "/scripts/ui-grid.min.js", "Angular UI Grid loaded"), t || i.loadScript(b + "/scripts/kendo.custom.min.js", "Kendo loaded"), m || i.loadScript(b + "/scripts/angular-credit-cards.min.js", "credit-cards loaded "), n || (i.loadScript(b + "/scripts/web-font-loader.min.js", "font-select web font loader loaded "), i.loadScript(b + "/scripts/angular-font-select.min.js", "font-select loaded ")), o || i.loadScript(b + "/scripts/range-slider.min.js", "range slider loaded "), r || i.loadScript(b + "/scripts/ng-file-upload-all.min.js", "ngFileUpload loaded "), s || i.loadScript(b + "/scripts/ng-intl-tel-input.js", "Intl Phone Number")) : i.loadScript(b + "/scripts/angular_lib.min.js", "angular-lib loaded") } function e(a) { function e() { g = "undefined" != typeof jQuery, h = "undefined" != typeof angular, g && h ? (console.log("loading of main modules complete"), b(), d(), a && a()) : setTimeout(function() { console.log("waiting on main modules..."), e() }, 500) } var f = c("base-url"), g = "undefined" != typeof jQuery, h = "undefined" != typeof angular; ! function() { g && "undefined" != typeof jQuery.ui && "undefined" == typeof $ && ($ = jQuery), g ? h ? g && "undefined" == typeof jQuery.ui ? (i.loadScript("https://code.jquery.com/ui/1.11.3/jquery-ui.js", "JQuery UI loaded - Depends on JQuery", function() { i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js", "JQuery Touch Punch loaded - Allows Touch for JQuery UI - Depends on JQuery UI") }), i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/7.0.2/js/intlTelInput.min.js", "Intl-Tel-Input - Depends on JQuery")) : "undefined" != typeof jQuery.ui ? (i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js", "JQuery Touch Punch loaded - Allows Touch for JQuery UI - Depends on JQuery UI"), i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/7.0.2/js/intlTelInput.min.js", "Intl-Tel-Input - Depends on JQuery")) : "function" != typeof $().emulateTransitionEnd && i.loadScript("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js", "Bootstrap JS loaded") : (console.log("Angular not present, loading angular..."), i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js", "Angular loaded. Loading modules...")) : i.loadScript("https://code.jquery.com/jquery-2.1.4.min.js", "JQuery loaded", function() { var a = "function" == typeof $().emulateTransitionEnd; a || i.loadScript("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js", "Bootstrap JS loaded"), h || (console.log("Angular not present, loading angular..."), i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js", "Angular loaded. Loading modules...")), i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/7.0.2/js/intlTelInput.min.js", "Intl-Tel-Input - Depends on JQuery"); var b = "undefined" != typeof jQuery.ui; b || i.loadScript("https://code.jquery.com/ui/1.11.3/jquery-ui.js", "JQuery UI loaded - Depends on JQuery", function() { i.loadScript("https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js", "JQuery Touch Punch loaded - Allows Touch for JQuery UI - Depends on JQuery UI") }) }) }(), i.loadScript(f + "/scripts/scripts_lib.min.js", "scripts_lib loaded"), e(); var j = "false" !== c("use-form-styles"), k = []; j && Array.prototype.push.apply(k, [f + "/styles/bootstrap.min.css", f + "/styles/default.min.css", f + "/styles/mbcustomtheme.min.css"]), Array.prototype.push.apply(k, [f + "/styles/ui-grid.min.css", f + "/styles/font-select.min.css", f + "/styles/range-slider.min.css", f + "/styles/spectrum.min.css", f + "/styles/kendo-common-material.min.css", f + "/styles/kendo-material.min.css", f + "/styles/kendo-material-mobile.min.css", "https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css", "https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.4.1/dist/textAngular.css", "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/7.0.2/css/intlTelInput.css"]), j && Array.prototype.push.apply(k, ["https://fonts.googleapis.com/css?family=Lora:400,400i,700,700i", "https://fonts.googleapis.com/css?family=Montserrat:300,300i,400,400i,500,500i,600,600i,700,700i", "https://fonts.googleapis.com/css?family=Open+Sans:400,400i,600,600i,700,700i"]); for (var l = "true" === c("prepend-css"), m = document.getElementsByTagName("head")[0], n = m.querySelector('link[rel="stylesheet"]'), o = 0; o < k.length; o++) { var p = document.createElement("link"); p.setAttribute("rel", "stylesheet"), p.setAttribute("type", "text/css"), p.setAttribute("href", k[o]), l && n ? m.insertBefore(p, n) : m.appendChild(p) } } function f() { angular.module("mb.formbuilder.tpls", []), angular.module("mb.formbuilder.tpls").run(["$templateCache", function(a) { for (var b in l) l.hasOwnProperty(b) && a.put(b, l[b]) }]) } function g() { var a = c("base-url"); i.loadScript(a + "/scripts/mb.formbuilder.js", "mb.formbuilder loaded", function() { i.getJson(a + "/scripts/angular_app_scripts.json", function(b) { for (var c in b) if (b.hasOwnProperty(c) && b[c] && "mb.formbuilder.embed.js" !== b[c] && "mb.formbuilder.js" !== b[c]) { var d = b[c]; if ("string" == typeof d || d instanceof String) m--, i.loadScript(a + "/scripts/" + d, d + " loaded", function() { n++ }); else for (var e in d) d.hasOwnProperty(e) && (m--, i.loadScript(a + "/scripts/" + e, e + " loaded", function() { n++ })) } m = Math.abs(m), 0 === m && (m = 1, n = 1) }) }) } function h(b, d) { var e = c("base-url"), g = e + "/scripts/mb.formbuilder.tpls.json", h = c("custom-templates-url"); i.getJson(g, function(b) { return a(b), h ? (h = h + "?fms_version=" + window.FMS_VERSION, void i.getJson(h, function(b) { a(b), f() }, d)) : void f() }, d) } function j(a) { var b = i.isAngularModulePresent("angular-sortable-view"), c = i.isAngularModulePresent("ui.router"), d = i.isAngularModulePresent("ui.bootstrap"), e = i.isAngularModulePresent("textAngular"), f = i.isAngularModulePresent("jcs-autoValidate"), g = i.isAngularModulePresent("mb.formbuilder.tpls"), h = i.isAngularModulePresent("mb.formbuilder"), k = i.isAngularModulePresent("ngCsv.config"), l = i.isAngularModulePresent("ui.grid"), o = i.isAngularModulePresent("credit-cards"), p = i.isAngularModulePresent("jdFontselect"), q = i.isAngularModulePresent("rzModule"), r = i.isAngularModulePresent("angularSpectrumColorpicker"), s = i.isAngularModulePresent("angularRipple"); b && c && d && e && g && h && f && k && l && o && p && m > 0 && m === n && q && r && s ? (console.log("loading of angular plugins complete"), a && a()) : setTimeout(function() { console.log("waiting on angular plugins..."), j(a) }, 500) } function k(a) { e(function() { h(), g(), j(a) }) } var l = {}, m = 0, n = 0; return { load: k } }(), k = function() { function a() { document.removeEventListener("DOMContentLoaded", a), d = !0; for (var c; c = b.shift();) c() } var b = [], c = document.documentElement.doScroll, d = (c ? /^loaded|^c/ : /^loaded|^i|^c/).test(document.readyState); return d || document.addEventListener("DOMContentLoaded", a), function(a) { d ? setTimeout(a, 0) : b.push(a) } }(); k(function() { if (b()) { var d = a(); if ("client" === c("mode") && window.self === window.top && console.warn("Form must be embedded in iframe."), navigator.appName.indexOf("Internet Explorer") !== -1 && navigator.appVersion.indexOf("MSIE 1") === -1) return void(d.innerHTML = "Please update your browser to use this feature."); e(), document.body.classList.contains("gbf-giving-fms") && f("mb-formbuilder-container") } }) }();