/* Cached: 7/12/2022 10:59:27 PM Root:/comparison-interface/ config.js, js/fontfaceobserver-2.1.0.js, js/textfit.2.3.1.js, js/slick.min.1.8.0.js, js/app-bubble-slider.min.js */ /* File: config.js */ var appConfig = { //product_classes: ['auto','mortgage','home+equity','credit+card','boat','rv','unsecured','money+market','savings','checking','cd','ira'], product_classes: ['auto','mortgage','credit+card'], market_ids: [17322], default_mkt_id: 17322, see_how_url: 'http://kits.datatrac.net/demos/kit-memberbenefits_McCoyFederalCreditUnion/', apply_url: 'https://www.mccoyfcu.org/', apply_url_mortgage: 'https://mccoyfcu.mortgagewebcenter.com/', apply_cta_credit_card: 'https://app.loanspq.com/cc/CreditCard.aspx?lenderref=Mccoyfcu061219&_ga=2.124999690.1891174527.1630790578-1804100894.1596212641', apply_cta_auto: 'https://app.loanspq.com/vl/VehicleLoan.aspx?lenderref=Mccoyfcu061219&_ga=2.115039495.1891174527.1630790578-1804100894.1596212641', rates_disclosures_url: 'https://google.com' }; /* File: fontfaceobserver-2.1.0.js */ /* Font Face Observer v2.1.0 - © Bram Stein. License: BSD-3-Clause */(function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}} function r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?"function"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})}; function w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;kparseInt(a[1],10)}else D=!1;return D}function J(){null===F&&(F=!!document.fonts);return F} function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")} B.prototype.load=function(a,b){var c=this,k=a||"BESbswy",r=0,n=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=n?b(Error(""+n+"ms timeout exceeded")):document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},b)}e()}),N=new Promise(function(a,c){r=setTimeout(function(){c(Error(""+n+"ms timeout exceeded"))},n)});Promise.race([N,M]).then(function(){clearTimeout(r);a(c)}, b)}else m(function(){function v(){var b;if(b=-1!=f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===C&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),C=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=C&&(f==w&&g==w&&h==w||f==x&&g==x&&h==x||f==y&&g==y&&h==y)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(r),a(c))}function I(){if((new Date).getTime()-H>=n)d.parentNode&&d.parentNode.removeChild(d),b(Error(""+ n+"ms timeout exceeded"));else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,g=p.a.offsetWidth,h=q.a.offsetWidth,v();r=setTimeout(I,50)}}var e=new t(k),p=new t(k),q=new t(k),f=-1,g=-1,h=-1,w=-1,x=-1,y=-1,d=document.createElement("div");d.dir="ltr";u(e,L(c,"sans-serif"));u(p,L(c,"serif"));u(q,L(c,"monospace"));d.appendChild(e.a);d.appendChild(p.a);d.appendChild(q.a);document.body.appendChild(d);w=e.a.offsetWidth;x=p.a.offsetWidth;y=q.a.offsetWidth;I();A(e,function(a){f=a;v()});u(e, L(c,'"'+c.family+'",sans-serif'));A(p,function(a){g=a;v()});u(p,L(c,'"'+c.family+'",serif'));A(q,function(a){h=a;v()});u(q,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=B:(window.FontFaceObserver=B,window.FontFaceObserver.prototype.load=B.prototype.load);}()); /* File: textfit.2.3.1.js */ /** * textFit v2.3.1 * Previously known as jQuery.textFit * 11/2014 by STRML (strml.github.com) * MIT License * * To use: textFit(document.getElementById('target-div'), options); * * Will make the *text* content inside a container scale to fit the container * The container is required to have a set width and height * Uses binary search to fit text with minimal layout calls. * Version 2.0 does not use jQuery. */ /*global define:true, document:true, window:true, HTMLElement:true*/ (function(root, factory) { "use strict"; // UMD shim if (typeof define === "function" && define.amd) { // AMD define([], factory); } else if (typeof exports === "object") { // Node/CommonJS module.exports = factory(); } else { // Browser root.textFit = factory(); } }(typeof global === "object" ? global : this, function () { "use strict"; var defaultSettings = { alignVert: false, // if true, textFit will align vertically using css tables alignHoriz: false, // if true, textFit will set text-align: center multiLine: false, // if true, textFit will not set white-space: no-wrap detectMultiLine: true, // disable to turn off automatic multi-line sensing minFontSize: 6, maxFontSize: 80, reProcess: true, // if true, textFit will re-process already-fit nodes. Set to 'false' for better performance widthOnly: false, // if true, textFit will fit text to element width, regardless of text height alignVertWithFlexbox: false, // if true, textFit will use flexbox for vertical alignment }; return function textFit(els, options) { if (!options) options = {}; // Extend options. var settings = {}; for(var key in defaultSettings){ if(options.hasOwnProperty(key)){ settings[key] = options[key]; } else { settings[key] = defaultSettings[key]; } } // Convert jQuery objects into arrays if (typeof els.toArray === "function") { els = els.toArray(); } // Support passing a single el var elType = Object.prototype.toString.call(els); if (elType !== '[object Array]' && elType !== '[object NodeList]' && elType !== '[object HTMLCollection]'){ els = [els]; } // Process each el we've passed. for(var i = 0; i < els.length; i++){ processItem(els[i], settings); } }; /** * The meat. Given an el, make the text inside it fit its parent. * @param {DOMElement} el Child el. * @param {Object} settings Options for fit. */ function processItem(el, settings){ if (!isElement(el) || (!settings.reProcess && el.getAttribute('textFitted'))) { return false; } // Set textFitted attribute so we know this was processed. if(!settings.reProcess){ el.setAttribute('textFitted', 1); } var innerSpan, originalHeight, originalHTML, originalWidth; var low, mid, high; // Get element data. originalHTML = el.innerHTML; originalWidth = innerWidth(el); originalHeight = innerHeight(el); // Don't process if we can't find box dimensions if (!originalWidth || (!settings.widthOnly && !originalHeight)) { // XXX console.log('ERROR: originalWidth='+originalWidth+', originalHeight='+originalHeight); if(!settings.widthOnly) throw new Error('Set a static height and width on the target element ' + el.outerHTML + ' before using textFit!'); else throw new Error('Set a static width on the target element ' + el.outerHTML + ' before using textFit!'); } // Add textFitted span inside this container. if (originalHTML.indexOf('textFitted') === -1) { innerSpan = document.createElement('span'); innerSpan.className = 'textFitted'; // Inline block ensure it takes on the size of its contents, even if they are enclosed // in other tags like

innerSpan.style['display'] = 'inline-block'; innerSpan.innerHTML = originalHTML; el.innerHTML = ''; el.appendChild(innerSpan); } else { // Reprocessing. innerSpan = el.querySelector('span.textFitted'); // Remove vertical align if we're reprocessing. if (hasClass(innerSpan, 'textFitAlignVert')){ innerSpan.className = innerSpan.className.replace('textFitAlignVert', ''); innerSpan.style['height'] = ''; el.className.replace('textFitAlignVertFlex', ''); } } // Prepare & set alignment if (settings.alignHoriz) { el.style['text-align'] = 'center'; innerSpan.style['text-align'] = 'center'; } // Check if this string is multiple lines // Not guaranteed to always work if you use wonky line-heights var multiLine = settings.multiLine; if (settings.detectMultiLine && !multiLine && innerSpan.scrollHeight >= parseInt(window.getComputedStyle(innerSpan)['font-size'], 10) * 2){ multiLine = true; } // If we're not treating this as a multiline string, don't let it wrap. if (!multiLine) { el.style['white-space'] = 'nowrap'; } low = settings.minFontSize; high = settings.maxFontSize; // Binary search for highest best fit var size = low; while (low <= high) { mid = (high + low) >> 1; innerSpan.style.fontSize = mid + 'px'; if(innerSpan.scrollWidth <= originalWidth && (settings.widthOnly || innerSpan.scrollHeight <= originalHeight)){ size = mid; low = mid + 1; } else { high = mid - 1; } // await injection point } // found, updating font if differs: if( innerSpan.style.fontSize != size + 'px' ) innerSpan.style.fontSize = size + 'px'; // Our height is finalized. If we are aligning vertically, set that up. if (settings.alignVert) { addStyleSheet(); var height = innerSpan.scrollHeight; if (window.getComputedStyle(el)['position'] === "static"){ el.style['position'] = 'relative'; } if (!hasClass(innerSpan, "textFitAlignVert")){ innerSpan.className = innerSpan.className + " textFitAlignVert"; } innerSpan.style['height'] = height + "px"; if (settings.alignVertWithFlexbox && !hasClass(el, "textFitAlignVertFlex")) { el.className = el.className + " textFitAlignVertFlex"; } } } // Calculate height without padding. function innerHeight(el){ var style = window.getComputedStyle(el, null); return el.clientHeight - parseInt(style.getPropertyValue('padding-top'), 10) - parseInt(style.getPropertyValue('padding-bottom'), 10); } // Calculate width without padding. function innerWidth(el){ var style = window.getComputedStyle(el, null); return el.clientWidth - parseInt(style.getPropertyValue('padding-left'), 10) - parseInt(style.getPropertyValue('padding-right'), 10); } //Returns true if it is a DOM element function isElement(o){ return ( typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2 o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName==="string" ); } function hasClass(element, cls) { return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; } // Better than a stylesheet dependency function addStyleSheet() { if (document.getElementById("textFitStyleSheet")) return; var style = [ ".textFitAlignVert{", "position: absolute;", "top: 0; right: 0; bottom: 0; left: 0;", "margin: auto;", "display: flex;", "justify-content: center;", "flex-direction: column;", "}", ".textFitAlignVertFlex{", "display: flex;", "}", ".textFitAlignVertFlex .textFitAlignVert{", "position: static;", "}",].join(""); var css = document.createElement("style"); css.type = "text/css"; css.id = "textFitStyleSheet"; css.innerHTML = style; document.body.appendChild(css); } })); /* File: slick.min.1.8.0.js */ /* _ _ _ _ ___| (_) ___| | __ (_)___ / __| | |/ __| |/ / | / __| \__ \ | | (__| < _ | \__ \ |___/_|_|\___|_|\_(_)/ |___/ |__/ Version: 1.8.0 Author: Ken Wheeler Website: http://kenwheeler.github.io Docs: http://kenwheeler.github.io/slick Repo: http://github.com/kenwheeler/slick Issues: http://github.com/kenwheeler/slick/issues */ /* global window, document, define, jQuery, setInterval, clearInterval */ !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('