{"version":3,"sources":["scripts.js","../../../includes/scripts/ace.gtm.js","../../../includes/scripts/ace.gtm.new.js","modules/jquery.fn.navPanes.js","modules/jquery.fn.adaptiveAccordion.js","modules/jquery.fn.vertAlign.js","modules/jquery.fn.stickIt.js"],"names":["GTMAddToCart","SKU","QTY","window","dataLayer","push","event","productSKU","quantity","GTMRemoveFromCart","productId","GTMFireGAEvent","Category","Action","Label","eventCategory","eventAction","eventLabel","GTMFirecheckoutStep","GTMProductList","GTMCheckoutStep","ecommerce","checkout","actionField","step","option","products","GTMFireProductImpressionList","GTMProductImpressionList","ListName","productList","GTMFireProductDetailView","GTMProductImpression","ViewType","ParentProductID","viewFormat","parentID","GTMFireProductClick","ClickElement","ProductSKU","clickElement","ACE","TagManager","FireUtagLink","eventData","callback","undefined","utag","link","e","console","log","ItemAddedToCart","addToCartResult","TealiumData","$","each","AddedItems","index","value","Quantity","ItemQuantityUpdated","cartEvent","ItemRemovedFromCart","sku","LoadProductAttributeImpressions","selector","startObj","jQuery","productGroups","find","addBack","i","jElement","this","groupName","data","foundGroup","grep","g","name","productGroup","length","ci","ce","product","impression","id","category","variant","parseInt","price","parseFloat","position","p","FireTealiumLeadSubmission","newsletter","customerEmail","account_type","customer_email","event_action","event_category","event_label","event_name","lead_type","FireTealiumDownloadEvent","leadCaptureType","customerPhone","customer_phone","FireClientEvent","action","label","additionalData","extend","ProductClicked","productCategory","productSku","productName","$element","product_category","product_id","product_name","LaunchCourseEvent","tealiumData","courseData","button","ajax","url","type","contentType","JSON","stringify","on","document","viewport","fn","navPanes","openPane","navButtons","viewPortIsLgUp","is","click","filter","removeClass","hidePane","parent","config","elem","target","attr","preventDefault","selfClick","hasClass","addClass","newPane","paneStyles","display","top","outerHeight","left","css","fadeIn","scrollPos","scrollTop","navOffset","offset","navPos","stop","animate","newPaneSelector","prop","closest","ga_noninteraction","revealPane","oldPane","hide","ResponsiveBootstrapToolkit","stickIt","params","elemPos","offsetPos","offsetBy","checkPos","resize","adapativeAccordion","options","panels","settings","currentViewportContext","currentDisplayState","setDisplay","collapse","current","changed","vertAlign","pullUp","marginTop","updateCartWidget","success","ShoppingCartURL","html","Items","Cart","trigger","getPseudoGuid","S4","Math","random","toString","substring","getURLParameter","decodeURIComponent","RegExp","exec","location","search","replace","smoothScrollToElement","targetEl","stickyElsOffset","navBarHeight","not","scrollLocation","hash","slice","launchYouTubeOverlay","videoHash","overlayTemplate","templateHTML","createElement","style","innerHTML","body","appendChild","fancybox","open","src","lazyBg","selectorQuery","lazyBackgrounds","call","querySelectorAll","IntersectionObserverEntry","prototype","lazyBackgroundObserver","IntersectionObserver","entries","observer","forEach","entry","isIntersecting","classList","add","unobserve","contains","lazyBgInline","remove","lazyBackground","observe","desktopImage","getAttribute","mobileImage","mobileBreakpoint","displayImg","backgroundImage","matchMedia","matches","addEventListener","logMarquee","marquees","marqueeObserver","marqueeName","ga4_event_name","promo_name","threshold","marquee","BindDropdownWithOtherTextBox","ddlSelector","otherDisplayValue","textInputSelector","textInputWrapper","$ddlInput","$devOtherWrapper","$tbOther","onChange","val","show","change","ready","prevScroll","initialWinWidth","fancyboxOptions","width","scrollTo","fadeOut","scrollY","has","setTimeout","focus","reload","toggleClass","iframe","preload","scrolling","padding","maxWidth","touch","vertical","$this","colorbox","beforeLoad","instance","targetContent","opts","$orig","overlayTitle","infobar","buttons","smallBtn","fb","autoSize","LaunchFancyboxFrame","launchUrl","preventModal","fancyBoxOpts","modal","toolbar","overflow","baseClass","blur","parentGroup","fileNameLabel","files","clickedEl","allTips","thisTip","parents","playVidParam","toLowerCase","getWhiteListedIDs","whitelist","el2clk","indexOf","getElementById","pathname","hostname","openContent","siblings","slideToggle","matchHeight","overlayStyleBlock","head","cecFinderFancyboxOpts","height"],"mappings":"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","file":"scripts.js","sourcesContent":["//Google Tag Manager Event Firing\r\nfunction GTMAddToCart(SKU, QTY) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'add-to-cart',\r\n \t'productSKU': SKU,\r\n \t'quantity': QTY\r\n });\r\n}\r\n\r\nfunction GTMRemoveFromCart(SKU, QTY) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'remove-from-cart',\r\n \t'productId': SKU,\r\n \t'quantity': QTY\r\n });\r\n}\r\n\r\nfunction GTMFireGAEvent(Category, Action, Label) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t\"event\": \"fireGaEvent\",\r\n \t\"eventCategory\": Category,\r\n \t\"eventAction\": Action,\r\n \t\"eventLabel\": Label\r\n });\r\n}\r\n\r\nfunction GTMFirecheckoutStep(GTMProductList, GTMCheckoutStep) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'checkout-step',\r\n \t'ecommerce':\r\n {\r\n \t'checkout':\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t'actionField':\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t'step': GTMCheckoutStep,\r\n\t\t\t\t\t\t\t\t'option': ''\r\n\t\t\t\t\t\t\t}, 'products': GTMProductList\r\n\t\t\t\t\t}\r\n }\r\n });\r\n}\r\n\r\nfunction GTMFireProductImpressionList(GTMProductImpressionList, ListName) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'product-impression',\r\n \t'productList': ListName,\r\n \t'products': GTMProductImpressionList\r\n });\r\n}\r\n\r\nfunction GTMFireProductDetailView(GTMProductImpression, ViewType, ParentProductID) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'product-details',\r\n \t'viewFormat': ViewType, //Quick View or Full View\r\n \t'parentID': ParentProductID,\r\n \t'products': GTMProductImpression\r\n });\r\n}\r\n\r\nfunction GTMFireProductClick(ClickElement, ProductSKU) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'product-click',\r\n \t'clickElement': ClickElement,\r\n \t'productSKU': ProductSKU\r\n });\r\n}\r\n\r\n\r\nvar ACE = ACE || {};\r\nACE.TagManager = ACE.TagManager || {};\r\n\r\nACE.TagManager.FireUtagLink = function (eventData, callback) {\r\n if (window.utag !== undefined) {\r\n utag.link(eventData, callback);\r\n } else if (callback !== undefined) {\r\n try {\r\n callback();\r\n } catch (e) { console.log(e); }\r\n }\r\n};\r\n\r\nACE.TagManager.ItemAddedToCart = function (addToCartResult, callback) {\r\n\tif (addToCartResult.TealiumData) {\r\n\t\tACE.TagManager.FireUtagLink(addToCartResult.TealiumData, callback);\r\n\t}\r\n\t$.each(addToCartResult.AddedItems, function (index, value) {\r\n\t\tGTMAddToCart(value.SKU, value.Quantity); // Track the add\r\n\t});\r\n};\r\n\r\nACE.TagManager.ItemQuantityUpdated = function (cartEvent, callback) {\r\n\tACE.TagManager.FireUtagLink(cartEvent, callback);\r\n};\r\n\r\nACE.TagManager.ItemRemovedFromCart = function (cartEvent, sku, quantity, callback) {\r\n GTMRemoveFromCart(sku, quantity);\r\n\r\n ACE.TagManager.FireUtagLink(cartEvent, callback);\r\n};\r\n\r\nvar ACE = ACE || {};\r\nACE.TagManager = ACE.TagManager || {};\r\n\r\n$(function () {\r\n\r\n ACE.TagManager.LoadProductAttributeImpressions = function (selector) {\r\n var startObj = selector;\r\n if (selector != undefined) {\r\n if (!selector instanceof jQuery) {\r\n startObj = $(selector);\r\n }\r\n } else {\r\n startObj = $('body');\r\n }\r\n var productGroups = [];\r\n startObj.find(\"[data-product_impressiongroup]\")\r\n\t\t\t.addBack(\"[data-product_impressiongroup]\")\r\n\t\t\t.each(function (i, e) {\r\n\t\t\t var jElement = $(this);\r\n\t\t\t var groupName = jElement.data('product_impressiongroup');\r\n\t\t\t var foundGroup = $.grep(productGroups, function (g, i) { return g.name === groupName; });\r\n\t\t\t var productGroup = null;\r\n\t\t\t if (foundGroup.length == 1) {\r\n\t\t\t productGroup = foundGroup[0];\r\n\t\t\t } else {\r\n\t\t\t productGroup = { name: groupName, products: [] };\r\n\t\t\t productGroups.push(productGroup);\r\n\t\t\t }\r\n\t\t\t jElement.find(\"[data-product_sku]\")\r\n\t\t\t\t\t.addBack(\"[data-product_sku]\")\r\n\t\t\t\t\t.each(function (ci, ce) {\r\n\t\t\t\t\t var product = $(this);\r\n\t\t\t\t\t var impression = {\r\n\t\t\t\t\t id: product.data('product_id'),\r\n\t\t\t\t\t sku: product.data('product_sku'),\r\n\t\t\t\t\t name: product.data('product_name'),\r\n\t\t\t\t\t category: product.data('product_category'),\r\n\t\t\t\t\t variant: parseInt(product.data('product_variant')),\r\n\t\t\t\t\t price: parseFloat(product.data('product_price')),\r\n\t\t\t\t\t quantity: parseInt(product.data('product_quantity')),\r\n\t\t\t\t\t position: ci + 1\r\n\t\t\t\t\t };\r\n\t\t\t\t\t productGroup.products.push(impression);\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n $.each(productGroups, function (i, p) {\r\n GTMFireProductImpressionList(p.products, p.name);\r\n });\r\n };\r\n\r\n\tvar FireTealiumProductClick = function (productCategory, productSku, productName) {\r\n\t utag.link({\r\n\t \"event_action\": \"Product Click\",\r\n\t \"event_name\": \"product_click\",\r\n\t \"event_category\": \"Ecommerce\",\r\n\t \"event_label\" : [productName],\r\n\r\n\t \"product_category\": [productCategory],\r\n\t \"product_id\": [productSku],\r\n\t \"product_name\": [productName]\r\n\t });\r\n\t};\r\n\r\n ACE.TagManager.FireTealiumLeadSubmission = function (newsletter,customerEmail) {\r\n\t utag.link({\r\n \"account_type\": \"Contact\",\r\n \"customer_email\": customerEmail,\r\n \"event_action\": \"EmailSignUp\",\r\n\t \"event_category\": \"LeadCapture\",\r\n\t \"event_label\": newsletter,\r\n\t \"event_name\": \"lead_submission\",\r\n\r\n\t \"lead_type\": newsletter\r\n\t });\r\n\t};\r\n\r\n\tACE.TagManager.FireTealiumDownloadEvent = function (leadCaptureType,customerEmail,customerPhone) {\r\n\t utag.link({\r\n \"account_type\": \"Contact\",\r\n \"customer_email\": customerEmail,\r\n \"customer_phone\": customerPhone,\r\n \"event_action\": \"downloads\",\r\n\t \"event_category\": \"form-download\",\r\n\t \"event_label\": leadCaptureType,\r\n\t \"event_name\": \"lead_submission\",\r\n\r\n\t \"lead_type\": leadCaptureType\r\n\t });\r\n\t};\r\n\r\n\tACE.TagManager.FireClientEvent = function (name, category, action, label, additionalData) {\r\n\t\tutag.link($.extend({},\r\n\t\t\t{\r\n\t\t\t\t\"event_action\": action || name,\r\n\t\t\t\t\"event_category\": category,\r\n\t\t\t\t\"event_label\": label,\r\n\t\t\t\t\"event_name\": name\r\n\t\t\t}, additionalData));\r\n\t};\r\n\r\n\tACE.TagManager.ProductClicked = function (e) {\r\n\t var $element = $(this);\r\n\t var sku = $element.data('product_sku');\r\n\t var category = $element.data('product_category');\r\n\t var name = $element.data('product_name');\r\n\r\n\t FireTealiumProductClick(category, sku, name);\r\n\t GTMFireProductClick($element.data('product_clicklabel') || 'Product Click', sku);\r\n\t};\r\n\r\n\tACE.TagManager.LaunchCourseEvent = function (e, tealiumData, courseData) {\r\n\t if (typeof e === 'object' && e.button == 0 || e.button == 1) {\r\n\t utag.link(tealiumData);\r\n\r\n\t //call webAPI\r\n\t $.ajax({\r\n\t url: '/api/CourseLaunch',\r\n\t type: 'POST',\r\n\t contentType: \"application/json; charset=utf-8\",\r\n\t data: JSON.stringify(courseData)\r\n\t });\r\n\t }\r\n\t};\r\n\r\n\t$('body').on('click', '[data-product_sku]', ACE.TagManager.ProductClicked);\r\n\tACE.TagManager.LoadProductAttributeImpressions();\r\n});\r\n(function ($, document, window, viewport) {\r\n \t$.fn.navPanes = function () {\r\n\t\tvar openPane = false;\r\n\t\tvar navButtons = $(this).find(\"a\");\r\n\t\tvar viewPortIsLgUp = viewport.is(\">=lg\");\r\n\r\n\t\t// 'Back' buttons\r\n\t\t$(\".nav-pane__back\").click(function () {\r\n\t\t\t$(navButtons).filter(\".expanded\").removeClass(\"expanded\");\r\n\t\t\tvar parentPane = $(this).parent(\".nav-pane\");\r\n\t\t\thidePane(parentPane);\r\n\t\t});\r\n\r\n\t\t// Init nav buttons\r\n\t\treturn navButtons.each(function () {\r\n\t\t\tvar config = {\r\n\t\t\t\telem: this,\r\n\t\t\t\ttarget: $(this).attr(\"href\"),\r\n\t\t\t};\r\n\r\n\t\t\t// Setup handlers\r\n\t\t\t$(config.elem).click(function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar selfClick = $(this).hasClass(\"expanded\");\r\n\t\t\t\thidePane($(\".nav-pane:visible\"));\r\n\r\n\t\t\t\tif (!selfClick) {\r\n\t\t\t\t\t$(\".main-head__nav .expanded\").removeClass(\"expanded\");\r\n\t\t\t\t\t$(\"html\").addClass(\"nav-active\");\r\n\t\t\t\t\t$(\".main-head\").addClass(\"selected\");\r\n\t\t\t\t\t$(this).addClass(\"expanded\");\r\n\r\n\t\t\t\t\tif (!openPane) {\r\n\t\t\t\t\t\trevealPane(config.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\"html\").removeClass(\"nav-active\");\r\n\t\t\t\t\t$(\".main-head\").removeClass(\"selected\");\r\n\t\t\t\t\t$(this).removeClass(\"expanded\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Hide a pane\r\n\t\tfunction hidePane(oldPane, newPane, callback) {\r\n\t\t\t// Separate behavior for small and large screens\r\n\t\t\tif (viewPortIsLgUp) {\r\n\t\t\t\t$(oldPane).hide();\r\n\t\t\t} else {\r\n\t\t\t\tvar scrollPos = $(window).scrollTop();\r\n\t\t\t\tvar navOffset = $(\".main-head__nav\").offset();\r\n\t\t\t\tvar paneStyles = {\r\n\t\t\t\t\tdisplay: \"block\",\r\n\t\t\t\t\tposition: \"fixed\",\r\n\t\t\t\t\ttop: navOffset.top - scrollPos,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(oldPane)\r\n\t\t\t\t\t.css(paneStyles)\r\n\t\t\t\t\t.stop()\r\n\t\t\t\t\t.animate({ left: \"100%\" }, function () {\r\n\t\t\t\t\t\t$(this).css(\"display\", \"none\");\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// No more open panes\r\n\t\t\topenPane = false;\r\n\r\n\t\t\t// If we want to reveal a new pane after closing this one\r\n\t\t\tif (typeof callback === \"function\") {\r\n\t\t\t\tcallback(newPane);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Reveal a pane\r\n\t\tfunction revealPane(newPane) {\r\n\t\t\t// Separate behavior for small and large screens\r\n\t\t\tif (viewPortIsLgUp) {\r\n\t\t\t\tvar navHeight = $(\".main-head__nav\").outerHeight();\r\n\t\t\t\tvar paneStyles = {\r\n\t\t\t\t\tdisplay: \"none\",\r\n\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\ttop: navHeight + \"px\",\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(newPane).css(paneStyles).fadeIn(\"fast\");\r\n\t\t\t} else {\r\n\t\t\t\tvar scrollPos = $(window).scrollTop();\r\n\t\t\t\tvar navOffset = $(\".main-head__nav\").offset();\r\n\t\t\t\tvar navPos = $(\".main-head__nav\").position();\r\n\t\t\t\tvar paneStyles = {\r\n\t\t\t\t\tdisplay: \"block\",\r\n\t\t\t\t\tposition: \"fixed\",\r\n\t\t\t\t\ttop: navOffset.top - scrollPos,\r\n\t\t\t\t\tleft: \"100%\",\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(newPane)\r\n\t\t\t\t\t.css(paneStyles)\r\n\t\t\t\t\t.stop()\r\n\t\t\t\t\t.animate({ left: 0 }, function () {\r\n\t\t\t\t\t\t$(this).css({\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\ttop: navPos.top,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// There is an open pane\r\n\t\t\topenPane = true;\r\n\r\n\t\t\t//Record Marquee Impressions\r\n\t\t\tvar newPaneSelector = \"#\" + $(newPane).prop(\"id\") + \" [data-mqk]:visible\";\r\n\t\t\t$(newPaneSelector).each(function (index) {\r\n\t\t\t\tutag.link({\r\n\t\t\t\t\tevent_action: \"Impression\",\r\n\t\t\t\t\tevent_category: \"Marquees\",\r\n\t\t\t\t\tevent_label:\r\n\t\t\t\t\t\t$(this).closest(\"div[data-mqs]\").attr(\"data-mqs\") +\r\n\t\t\t\t\t\t\" : \" +\r\n\t\t\t\t\t\t$(this).data(\"mqk\"),\r\n\t\t\t\t\tga_noninteraction: \"1\",\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n})(jQuery, document, window, ResponsiveBootstrapToolkit);\r\n\r\n$.fn.stickIt = function(params){\r\n\treturn this.each(function(){\r\n\t\tvar config = {\r\n\t\t\telem: this,\r\n\t\t\telemPos: $(this).offset().top\r\n\t\t};\r\n\r\n\t\tif (typeof params !== 'undefined'){\r\n\t\t\tconfig.offsetPos = params.offsetBy.outerHeight();\r\n\t\t} else {\r\n\t\t\tconfig.offsetPos = 0;\r\n\t\t}\r\n\r\n\t\t// Check on initialization\r\n\t\tcheckPos(config);\r\n\r\n\t\t// Check on page scroll\r\n\t\t$(window).on('scroll', function(){\r\n\t\t\tcheckPos(config);\r\n\t\t});\r\n\r\n\t\t// Check on window resize\r\n\t\t$(window).resize(function(){\r\n\t\t\tcheckPos(config);\r\n\t\t});\r\n\t});\r\n\r\n\tfunction checkPos(config){\r\n\t\tvar scrollPos = $(window).scrollTop();\r\n\r\n\t\tif(scrollPos > config.elemPos - config.offsetPos){\r\n\t\t\t$(config.elem).addClass('sticky').css({top: config.offsetPos});\r\n\t\t} else {\r\n\t\t\t$(config.elem).removeClass('sticky').css({top: 'auto'});\r\n\t\t}\r\n\t}\r\n};\r\n\r\n/* =====================================================\r\nAdaptive Accordion:\r\nDetermines whether to display a bootstrap collapse as an accordion or not\r\nbased on viewport size.\r\nuses: /plugins/bootstrap-toolkit.js\r\nexample usage on: certification/crt3.1.1-how-to-detail.html\r\n====================================================== */\r\n(function($, document, window, viewport) {\r\n\r\n\t\t$.fn.adapativeAccordion = function(options) {\r\n\r\n\t\t\t\t// Eject if there's an empty call\r\n\t\t\t\tif (!$(this).length) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar panels = this;\r\n\r\n\t\t\t\tvar settings = $.extend({\r\n\t\t\t\t\t\tcurrentViewportContext: null,\r\n\t\t\t\t\t\tcurrentDisplayState: null\r\n\t\t\t\t}, options);\r\n\r\n\t\t\t\tfunction checkContext() {\r\n\t\t\t\t\t\t// if viewport is desktop size and panels are in mobile display state\r\n\t\t\t\t\t\tif (viewport.is(\">=md\") && settings.currentDisplayState === 'mobile') {\r\n\t\t\t\t\t\t\t\t// change to desktop view\r\n\t\t\t\t\t\t\t\tsetDisplay('desktop');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// if viewport is mobile size and panels are in desktop display state\r\n\t\t\t\t\t\tif (viewport.is(\"=md\")) {\r\n\t\t\t\t\t\t\t\tpanels.collapse('show');\r\n\t\t\t\t\t\t\t\tsettings.currentDisplayState = \"desktop\"\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tpanels.collapse('hide');\r\n\t\t\t\t\t\t\t\tsettings.currentDisplayState = \"mobile\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(window).resize(viewport.changed(function() {\r\n\t\t\t\t\t\t// if the current viewport is different from the current setting\r\n\t\t\t\t\t\tif (viewport.current() !== settings.currentViewportContext) {\r\n\t\t\t\t\t\t\t\t// var vpWas = settings.currentViewportContext;\r\n\t\t\t\t\t\t\t\t// var vpNow = viewport.current();\r\n\t\t\t\t\t\t\t\t// console.log(\"viewport changed from \" + vpWas + \" to \" + vpNow)\r\n\t\t\t\t\t\t\t\t// settings.currentViewportContext = vpNow;\r\n\t\t\t\t\t\t\t\t// check the new context to see if the display needs to change\r\n\t\t\t\t\t\t\t\tcheckContext();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}, 150));\r\n\r\n\t\t\t\t// Intialize it on the element\r\n\t\t\t\tinitializeAdaptiveAccordion();\r\n\r\n\t\t}\r\n\r\n})(jQuery, document, window, ResponsiveBootstrapToolkit);\r\n\r\n$.fn.vertAlign = function(){\r\n\treturn this.each(function(){\r\n\t\tvar height = $(this).outerHeight();\r\n\t\tvar pullUp = height / 2;\r\n\t\t$(this).css({\r\n\t\t\ttop: '50%',\r\n\t\t\tmarginTop: '-'+pullUp+'px'\r\n\t\t});\r\n\t});\r\n};\r\n\r\nvar ACE = ACE || {};\r\n\r\n$(document).ready(function() {\r\n\r\n\t/* =====================================================\r\n Main Head & Nav\r\n ====================================================== */\r\n\r\n\t(function mainHead(){\r\n\t\tvar initialWinWidth = $(window).width();\r\n\r\n\t\t// Main nav hide/reveal\r\n\t\tvar prevScroll;\r\n\r\n\t\t$('.main-head__nav-reveal').click(function(e){\r\n\t\t\tvar openNav = $('.main-head').hasClass('selected');\r\n\r\n\t\t\tif (!openNav) {\r\n\t\t\t\t// Reveal the nav\r\n\t\t\t\tprevScroll = window.scrollY; // Save current scroll position\r\n\t\t\t\t$('html').addClass('nav-active');\r\n\t\t\t\t$('.main-head').addClass('selected');\r\n\t\t\t\t$('.main-head__nav').fadeIn('fast');\r\n\t\t\t} else {\r\n\t\t\t\t// Close the nav\r\n\t\t\t\t$('html').removeClass('nav-active');\r\n\t\t\t\twindow.scrollTo(0, prevScroll); // Return to scroll position\r\n\t\t\t\t$('.main-head__nav a.expanded').trigger('click'); // Hide open nav panes\r\n\t\t\t\t$('.main-head__nav').fadeOut('fast', function(){\r\n\t\t\t\t\t$('.main-head').removeClass('selected');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\t\t// Sticky main-head\r\n\t\t$('.main-head').stickIt();\r\n\r\n\t\t// Nav panes hide/reveal\r\n\t\t$('.main-head__nav').navPanes();\r\n\r\n\t\t// Reset nav on screen size change\r\n\t\t$(window).resize(function(){\r\n\t\t\tif ($(window).width() - initialWinWidth >= 20 || $(window).width() - initialWinWidth < 0) {\r\n\t\t\t\t$('html').removeClass('nav-active');\r\n\t\t\t\t$('.main-head__nav a.expanded').trigger('click'); // Hide open nav panes\r\n\t\t\t\t$('.main-head').removeClass('selected');\r\n\t\t\t\t$('.main-head__nav').hide(0); // CSS on large screens will override this\r\n\t\t\t\tinitialWinWidth = $(window).width();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t// Main Head Slide Search\r\n\t\t$(document).on('click', function(e) {\r\n\t\t\tif ($('.main-head__slide-search-reveal').has(e.target).length == 0 && $('.main-head__slide-search').has(e.target).length == 0) {\r\n\t\t\t\t$(\".main-head__slide-search\").removeClass('expanded');\r\n\t\t\t} else {\r\n\t\t\t\t$(\".main-head__slide-search\").addClass('expanded');\r\n\t\t\t\t$(\".main-head__slide-search td.gsc-search-button input.gsc-search-button\").attr(\"src\", \"/images/layout/2017/dist/svgo-magnifying-glass-red.svg\");\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t$(\".main-head__slide-search\").find(\"input.gsc-input\").focus();\r\n\t\t\t\t}, 250);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(\".main-head__search-row td.gsc-search-button input.gsc-search-button\").attr(\"src\", \"/images/icon-search-white.png\");\r\n\r\n\t\t// Signout Button\r\n\t\t$('.header-sign-out-link').click(function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: '/myace/logout',\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\t//dataType: \"html\",\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Signin icon\r\n\t\t$('.header-login__icon').click(function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t$('.header-login__sub-nav').toggleClass('info-visible');\r\n\t\t});\r\n\r\n\r\n\t\t// Cart Widget\r\n\t\tupdateCartWidget()\r\n\t}());\r\n\r\n\r\n\t/* =====================================================\r\n\tTracking Event Listeners\r\n\t====================================================== */\r\n\r\n\t(function trackingListeners(){\r\n\t\t/* =====================================================\r\n\t\tClick => Top Navigation\r\n\t\t====================================================== */\r\n\t\t$('div.nav-pane').on('click', 'a', function () {\r\n\t\t\tutag.link({\r\n\t\t\t\t\"event_action\": \"Click\",\r\n\t\t\t\t\"event_category\": \"Top Nav Interaction\",\r\n\t\t\t\t\"event_label\": $(this).closest(\"div.nav-pane\").attr('id') + \" : \" + $(this).attr('href')\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t/* =====================================================\r\n\t\tClick => Marquee\r\n\t\t====================================================== */\r\n\t\t$('div.MarqueeManager, div.marquee-manager').on('click', '[data-mqk]', function () {\r\n\t\t\tvar marqueeName = $(this).closest(\"div[data-mqs]\").attr('data-mqs') + \" : \" + $(this).data(\"mqk\");\r\n\t\t\tutag.link({\r\n\t\t\t\t\"event_action\": \"Click\",\r\n\t\t\t\t\"event_category\": \"Marquees\",\r\n\t\t\t\t\"event_label\": marqueeName,\r\n\t\t\t\t\"ga4_event_name\": \"select_promotion\",\r\n\t\t\t\t\"promo_name\": marqueeName\r\n\r\n\t\t\t});\r\n\t\t});\r\n\t}());\r\n\r\n\r\n /* =====================================================\r\n\tFancybox handlers\r\n\t====================================================== */\r\n\r\n (function fancyboxHandlers(){\r\n function bindFancyBoxDynamicClick(selector, fancyboxOptions) {\r\n $(document).on('click', selector, function () {\r\n var $this = $(this);\r\n\r\n $.fancybox.open($this, fancyboxOptions);\r\n\r\n return false;\r\n });\r\n }\r\n\r\n bindFancyBoxDynamicClick('.fancybox', {\r\n type: 'iframe',\r\n iframe: {\r\n preload: false,\r\n scrolling: true,\r\n css: {\r\n padding: '20px 0px 20px 0px',\r\n width: '90%',\r\n maxWidth: '1000px'\r\n }\r\n },\r\n touch: {\r\n vertical: false\r\n }\r\n });\r\n\r\n setTimeout(function () {\r\n if ($.colorbox == undefined) {\r\n $('.ColorBoxMaster').fancybox({\r\n iframe: {\r\n preload: false,\r\n scrolling: true,\r\n css: {\r\n padding: '20px 0px 20px 20px',\r\n width: '90%',\r\n maxWidth: '723px'\r\n }\r\n },\r\n touch: {\r\n vertical: false\r\n },\r\n type: 'iframe'\r\n });\r\n }\r\n }, 50);\r\n\r\n $('.overlay-sub-item-trigger').fancybox({\r\n beforeLoad: function (instance, current) {\r\n var $ele = current.opts.$orig;\r\n var targetContent = '#' + $ele.data('overlay-sub-item-target');\r\n var overlayTitle = $(targetContent).data('overlay-sub-item-title');\r\n\r\n $('.standard-overlay__sub-item').hide();\r\n $(targetContent).closest('.standard-overlay').find('.standard-overlay__title').html(overlayTitle);\r\n $(targetContent).show();\r\n },\r\n infobar: false,\r\n buttons: false,\r\n smallBtn: false,\r\n touch: false\r\n });\r\n\r\n\t\t$('.overlay-reveal').fancybox({\r\n\t\t\tinfobar: false,\r\n\t\t\tbuttons: false,\r\n\t\t\tsmallBtn: false,\r\n\t\t\ttouch: false\r\n\t\t}).each(function () { // auto launch if the hash is in the url\r\n\t\t\tvar fb = $(this);\r\n\t\t\tif (this.hash && this.hash.length > 0 && this.hash == window.location.hash) { fb.click() }\r\n\t\t});\r\n\r\n $('.overlay-reveal-video').fancybox({\r\n\t width: '650',\r\n\t autoSize: true,\r\n\t type: 'iframe'\r\n\t });\r\n\r\n\t\t$('.overlay-reveal-tc').fancybox({\r\n\t\t\twidth: '650',\r\n\t\t\tinfobar: false,\r\n\t\t\tbuttons: true,\r\n\t\t\tsmallBtn: false,\r\n\t\t\ttouch: true,\r\n\t\t\tiframe: {\r\n\t\t\t\tscrolling: 'yes'\r\n },\r\n type: 'iframe'\r\n\t\t});\r\n\r\n\t\twindow.LaunchFancyboxFrame = function (launchUrl, preload, preventModal) {\r\n\t\t\tvar fancyBoxOpts = {\r\n\t\t\t\tmodal: !preventModal,\r\n\t\t\t\tinfobar: false,\r\n\t\t\t\ttouch: {\r\n\t\t\t\t\tvertical: false\r\n\t\t\t\t},\r\n\t\t\t\tsmallBtn: true,\r\n\t\t\t\ttoolbar: false,\r\n\t\t\t\tiframe: {\r\n\t\t\t\t\tpreload: preload,\r\n\t\t\t\t\tcss: {\r\n\t\t\t\t\t\tpadding: '5px',\r\n\t\t\t\t\t\twidth: '768px',\r\n\t\t\t\t\t\toverflow: 'auto'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tif (preload && preventModal) {\r\n\t\t\t\tfancyBoxOpts.baseClass = \"fancybox-close-btn-inside\";\r\n }\r\n\t\t\t$.fancybox.open({\r\n\t\t\t\tsrc: launchUrl,\r\n\t\t\t\ttype: 'iframe',\r\n\t\t\t\topts: fancyBoxOpts\r\n\t\t\t});\r\n\t\t\treturn false;\r\n\t\t};\r\n\t}());\r\n\r\n\r\n /* =====================================================\r\n\tACE Form handlers\r\n\t====================================================== */\r\n\r\n\t(function aceFormHandlers(){\r\n\t\t// Form label animation\r\n\r\n\t\t$('.input-reveal-wrap input').focus(function(){\r\n\t\t\t$(this).closest('.input-reveal-wrap').addClass('selected');\r\n\t\t}).blur(function(){\r\n\t\t\tif ( !$(this).val() ) {\r\n\t\t\t\t$(this).closest('.input-reveal-wrap').removeClass('selected');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Filename as label for input[type=file]\r\n\r\n\t\t$('.ace-form__group .btn-file input[type=\"file\"]').each(function(){\r\n\t\t\t$(this).change(function(){\r\n\t\t\t\tvar parentGroup = $(this).closest('.ace-form__group');\r\n\t\t\t\tvar fileNameLabel = parentGroup.find('.btn-file-name');\r\n\t\t\t\tparentGroup.addClass('selected');\r\n\t\t\t\tfileNameLabel.html(this.files[0].name);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// ACE Form Group Tips\r\n\r\n\t\t$(document).click(function (event) {\r\n\t\t\tvar clickedEl = $(event.target);\r\n\t\t\tvar allTips = $('.ace-form__group-tip-text');\r\n\t\t\tvar thisTip = clickedEl.closest('.ace-form__group-tip').find('.ace-form__group-tip-text');\r\n\r\n\t\t\t// SHOW ON ICON CLICK\r\n\t\t\tif(clickedEl.hasClass(\"ace-form__group-tip-icon\") || clickedEl.parents(\".ace-form__group-tip-icon\").length){\r\n\t\t\t\tif (thisTip.is(\":visible\")) {\r\n\t\t\t\t\tthisTip.hide();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tallTips.not(thisTip).hide();\r\n\t\t\t\tthisTip.show();\r\n\t\t\t}\r\n\t\t\t// HIDE ON OFF-CLICK\r\n\t\t\telse if(!clickedEl.hasClass(\"ace-form__group-tip-text\") && !clickedEl.parents(\".ace-form__group-tip-text\").length) {\r\n\t\t\t\tallTips.hide();\r\n\t\t\t}\r\n\t\t});\r\n\t}());\r\n\r\n\r\n\t/* =====================================================\r\n\tYouTube Overlay from Query String\r\n\t====================================================== */\r\n\r\n\t(function ytPlayerFromQueryString(){\r\n\t\tlet playVidParam = getURLParameter(\"playVid\");\r\n\t\tif (playVidParam) {\r\n\t\t\tplayVidParam = playVidParam.toLowerCase();\r\n\r\n\t\t\tswitch (playVidParam) {\r\n\t\t\t\tcase \"75k\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"duP63mBuDVg\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ift\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"Ydzk4xeo2FY\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"brandanthem\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"pG4BEGEQHiA\");\r\n break;\r\n\r\n case \"fasttrack\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"O37FKTbx-Nw\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"ptv6-fcp\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"s-LwSYZuMd8\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"mover\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"abYm0Sx4W_k\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"gfisneakpeek\":\r\n\t\t\t\t\tlaunchYouTubeOverlay(\"Fr3iQWXdw9g\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}());\r\n\r\n\r\n\t/* =====================================================\r\n\tClick Element with matching ID from Query String\r\n\t====================================================== */\r\n\r\n\t(function clickElByIdFromQueryString(){\r\n\t\tif (typeof getWhiteListedIDs === \"function\") {\r\n\t\t\tconst whitelist = getWhiteListedIDs();\r\n\t\t\tconst el2clk = {\r\n\t\t\t\tid: getURLParameter(\"el2clk\"),\r\n\t\t\t\twhitelist // whitelisted ids are in marquee (Sitewide-Data-Container)\r\n\t\t\t};\r\n\r\n\t\t\tif (el2clk.id && el2clk.whitelist.length > 0 && el2clk.whitelist.indexOf(el2clk.id) >= 0) {\r\n\t\t\t\tdocument.getElementById(el2clk.id).click();\r\n\t\t\t}\r\n\t\t}\r\n\t}());\r\n\r\n\r\n\t/* =====================================================\r\n\tSmooth Scrolling: for anchor links\r\n\t====================================================== */\r\n\r\n\t$('a[href*=\"#\"].jsSmoothScroll').click(function() {\r\n\t\tif (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\r\n\t\t\tvar target = $(this.hash);\r\n\t\t\tsmoothScrollToElement(target);\r\n\t\t}\r\n\t});\r\n\r\n\t/* =====================================================\r\n\tAccordions\r\n\tused on: global main footer link lists\r\n\t====================================================== */\r\n\t$('.accordion-wrap').on('click', '.accordion-trigger', function(e){\r\n\t var selfClick = $(this).hasClass('selected');\r\n\t var openContent = $(this).parents('.accordion-wrap').find('.accordion-trigger.selected');\r\n\r\n\t if(!selfClick) {\r\n\t openContent.toggleClass('selected').siblings('.accordion-content').slideToggle(350);\r\n\t }\r\n\t $(this).toggleClass('selected');\r\n\t $(this).siblings('.accordion-content').slideToggle(350);\r\n\t});\r\n\r\n\r\n\t/* =====================================================\r\n\tSticky - Page Tools\r\n\tused on: 15 separate views\r\n\t====================================================== */\r\n\r\n\t$('.page-tools').stickIt({\r\n\t\toffsetBy: $('.main-head')\r\n\t});\r\n\r\n\r\n\t/* =====================================================\r\n\tMatch Height - Hero Tabs\r\n\tused on: ACEOnly Bar, Home Page (Cert Toggler)\r\n\t====================================================== */\r\n\r\n\t$('.hero-tabs__tab-nav .hero-tabs__tab').matchHeight();\r\n\r\n\t/* =====================================================\r\n\tLazyloading of Background Images\r\n\tused on: Global\r\n\t====================================================== */\r\n\tlazyBg();\r\n\r\n\t/* =====================================================\r\n\tRecord Marquee Impressions\r\n\tused on: Global\r\n\t====================================================== */\r\n\tlogMarquee();\r\n\r\n\r\n\t$('.widget--drawer .widget__title').on('click', function(){\r\n\t\t$(this).closest(\".widget--drawer\").toggleClass(\"collapsed\");\r\n\t});\r\n\r\n\t/* =====================================================\r\n\tCEC FINDER LAUNCH\r\n\t====================================================== */\r\n\t(function(){\r\n\t\tconst overlayStyleBlock = document.createElement(\"style\");\r\n\r\n\t\toverlayStyleBlock.innerHTML = `\r\n\t\t\t.cec-finder-overlay .fancybox-slide { padding: 0; }\r\n\t\t\t.cec-finder-overlay .fancybox-toolbar { display: none; }`;\r\n\r\n\t\t\tdocument.head.appendChild(overlayStyleBlock);\r\n\t\r\n\t\t// Overlay Options\r\n\t\tconst cecFinderFancyboxOpts = {\r\n\t\t\ttype: 'iframe',\r\n\t\t\tsrc: '/continuing-education/cec-finder/',\r\n\t\t\tiframe: {\r\n\t\t\t\tpreload: true,\r\n\t\t\t\tscrolling: true,\r\n\t\t\t\tcss: {\r\n\t\t\t\t\tpadding: 0,\r\n\t\t\t\t\twidth: '100%',\r\n\t\t\t\t\theight: '100%',\r\n\t\t\t\t\tmaxWidth: 'none'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbaseClass: \"cec-finder-overlay\",\r\n\t\t\tsmallBtn: false,\r\n\t\t\ttoolbar: false,\r\n\t\t\ttouch: {\r\n\t\t\t\tvertical: false\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\t// Launch on Button Click\r\n\t\t$('.btn-launch-cec-finder').fancybox(cecFinderFancyboxOpts);\r\n\t\r\n\t\t// Launch when Query String Present\r\n\t\tif (parseInt(getURLParameter(\"cec-finder\")) === 1) {\r\n\t\t\t$.fancybox.open(cecFinderFancyboxOpts);\r\n\t\t}\r\n\t})();\r\n\r\n}); // document ready block\r\n\r\nfunction updateCartWidget() {\r\n\t$.ajax({\r\n\t\turl: '/api/cart',\r\n\t\ttype: \"GET\",\r\n\t\tsuccess: function (data) {\r\n\t\t\t$('.header-shopping-cart').attr('href', data.ShoppingCartURL);\r\n\t\t\t$('.header-shopping-cart__count').html(data.Items.length);\r\n\r\n\t\t\tACE.Cart = data;\r\n\r\n\t\t\t$(document).trigger(\"ACE.Cart.Loaded\");\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction getPseudoGuid() {\r\n\tfunction S4() {\r\n\t\treturn (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n\t}\r\n\t\r\n\t// This is NOT an actual guid, but it will work for what we need it to do.\r\n\t\r\n\tfunction guid() {\r\n\t\treturn (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\r\n\t}\r\n\r\n\treturn guid();\r\n}\r\n\r\nfunction getURLParameter(name) {\r\n return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\\+/g, '%20')) || null;\r\n}\r\n\r\nfunction smoothScrollToElement(targetEl) {\r\n var target = targetEl;\r\n\r\n\tif (target.length) {\r\n var stickyElsOffset = 0;\r\n \r\n\t\tvar navBarHeight = $(\".main-head\").length > 0\r\n\t\t\t? (\r\n\t\t\t\t$('.main-head').hasClass(\"sticky\")\r\n\t\t\t\t\t? $('.main-head').outerHeight()\r\n\t\t\t\t\t: $('.main-head').outerHeight() * 2\r\n\t\t\t) : 0;\r\n\r\n $('.sticky').not('.main-head').each(function () {\r\n stickyElsOffset += $(this).outerHeight();\r\n });\r\n\r\n\t\tvar scrollLocation = target.offset().top - (navBarHeight + stickyElsOffset);\r\n\r\n\t\ttarget = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\r\n\r\n\t\tif (target.length) {\r\n $('html, body').animate({\r\n scrollTop: scrollLocation\r\n }, 1000);\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nfunction launchYouTubeOverlay(videoHash) {\r\n\r\n\tlet src = \"https://www.youtube.com/embed/\" + videoHash + \"?rel=0&enablejsapi=1\";\r\n\tlet overlayTemplate = `\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t`;\r\n\r\n\tconst templateHTML = document.createElement(\"div\");\r\n\ttemplateHTML.style.display = \"none\";\r\n\ttemplateHTML.innerHTML = overlayTemplate;\r\n\r\n\tdocument.body.appendChild(templateHTML);\r\n\r\n\t$.fancybox.open({\r\n\t\tsrc: \"#yt-param-video-overlay\",\r\n\t\ttype: \"inline\"\r\n\t});\r\n}\r\n\r\nfunction lazyBg(selectorQuery) {\r\n\tconst lazyBackgrounds = [].slice.call(selectorQuery ? selectorQuery : document.querySelectorAll(\".lazybg\"));\r\n\r\n\t// MODERN BROWSERS\r\n\tif (\"IntersectionObserver\" in window && \"IntersectionObserverEntry\" in window && \"intersectionRatio\" in window.IntersectionObserverEntry.prototype) {\r\n\t\tlet lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) {\r\n\t\t\tentries.forEach(function (entry) {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tconst target = entry.target;\r\n\r\n\t\t\t\t\ttarget.classList.add(\"lazybg-visible\");\r\n\r\n\t\t\t\t\tlazyBackgroundObserver.unobserve(target);\r\n\r\n\t\t\t\t\tif (target.classList.contains(\"lazybg-inline\")) lazyBgInline(target);\r\n\r\n\t\t\t\t\ttarget.classList.remove(\"lazybg\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tlazyBackgrounds.forEach(lazyBackground => lazyBackgroundObserver.observe(lazyBackground));\r\n\t}\r\n\t// IE11 Fallback\r\n\telse {\r\n\t\tlazyBackgrounds.forEach(lazyBackground => {\r\n\t\t\tlazyBackground.classList.add(\"lazybg-visible\");\r\n\t\t\tif (lazyBackground.classList.contains(\"lazybg-inline\")) lazyBgInline(lazyBackground);\r\n\t\t});\r\n\t}\r\n\r\n\tfunction lazyBgInline(entry) {\r\n\t\tif (!entry) return;\r\n\r\n\t\tconst desktopImage = entry.getAttribute(\"data-lazybg\");\r\n\t\tconst mobileImage = entry.getAttribute(\"data-lazybg-m\");\r\n\t\tconst mobileBreakpoint = entry.getAttribute(\"data-lazybg-breakpoint\");\r\n\t\tconst displayImg = () => {\r\n\t\t\tif (entry) {\r\n\t\t\t\tentry.style.backgroundImage = mobileImage && mobileBreakpoint && window.matchMedia(mobileBreakpoint).matches\r\n\t\t\t\t\t? `url(${mobileImage})`\r\n\t\t\t\t\t: `url(${desktopImage})`;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdisplayImg();\r\n\r\n\t\twindow.addEventListener(\"resize\", displayImg);\r\n\t}\r\n}\r\n\r\nfunction logMarquee(selectorQuery) {\r\n\tconst marquees = [].slice.call(selectorQuery ? selectorQuery : document.querySelectorAll('[data-mqk]'));\r\n\r\n\tif (\"IntersectionObserver\" in window && \"IntersectionObserverEntry\" in window && \"intersectionRatio\" in window.IntersectionObserverEntry.prototype) {\r\n\t\tlet marqueeObserver = new IntersectionObserver(function (entries, observer) {\r\n\t\t\tentries.forEach(function (entry) {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\r\n\t\t\t\t\tconst target = entry.target;\r\n\t\t\t\t\tconst marqueeContainerName = target.closest(\"div[data-mqs]\").getAttribute('data-mqs');\r\n\t\t\t\t\tconst marqueeName = marqueeContainerName + \" : \" + target.getAttribute('data-mqk');\r\n\r\n\t\t\t\t\t//Record Marquee Impression Event GA Analytics\r\n\t\t\t\t\tutag.link({\r\n\t\t\t\t\t\t\"event_action\": \"Impression\",\r\n\t\t\t\t\t\t\"event_category\": \"Marquees\",\r\n\t\t\t\t\t\t\"event_label\": marqueeName,\r\n\t\t\t\t\t\t\"ga_noninteraction\": \"1\",\r\n\t\t\t\t\t\t\"ga4_event_name\": \"view_promotion\",\r\n\t\t\t\t\t\t\"promo_name\": marqueeName\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tmarqueeObserver.unobserve(target);\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}, { threshold: .75 });\r\n\t\tmarquees.forEach(marquee => marqueeObserver.observe(marquee));\r\n\t}\r\n}\r\n\r\nfunction BindDropdownWithOtherTextBox(ddlSelector, otherDisplayValue, textInputSelector, textInputWrapper) {\r\n\tlet $ddlInput = $(ddlSelector)\r\n\tlet $devOtherWrapper = $(textInputWrapper);\r\n\tlet $tbOther = $(textInputSelector);\r\n\tlet onChange = function () {\r\n\t\tif ($ddlInput.val() == otherDisplayValue) {\r\n\t\t\t$devOtherWrapper.show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$devOtherWrapper.hide();\r\n\t\t\t$tbOther.val(\"\");\r\n\t\t}\r\n\t}\r\n\t$ddlInput.change(onChange);\r\n\tonChange();\r\n}\r\n","//Google Tag Manager Event Firing\r\nfunction GTMAddToCart(SKU, QTY) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'add-to-cart',\r\n \t'productSKU': SKU,\r\n \t'quantity': QTY\r\n });\r\n}\r\n\r\nfunction GTMRemoveFromCart(SKU, QTY) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'remove-from-cart',\r\n \t'productId': SKU,\r\n \t'quantity': QTY\r\n });\r\n}\r\n\r\nfunction GTMFireGAEvent(Category, Action, Label) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t\"event\": \"fireGaEvent\",\r\n \t\"eventCategory\": Category,\r\n \t\"eventAction\": Action,\r\n \t\"eventLabel\": Label\r\n });\r\n}\r\n\r\nfunction GTMFirecheckoutStep(GTMProductList, GTMCheckoutStep) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'checkout-step',\r\n \t'ecommerce':\r\n {\r\n \t'checkout':\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t'actionField':\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t'step': GTMCheckoutStep,\r\n\t\t\t\t\t\t\t\t'option': ''\r\n\t\t\t\t\t\t\t}, 'products': GTMProductList\r\n\t\t\t\t\t}\r\n }\r\n });\r\n}\r\n\r\nfunction GTMFireProductImpressionList(GTMProductImpressionList, ListName) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'product-impression',\r\n \t'productList': ListName,\r\n \t'products': GTMProductImpressionList\r\n });\r\n}\r\n\r\nfunction GTMFireProductDetailView(GTMProductImpression, ViewType, ParentProductID) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'product-details',\r\n \t'viewFormat': ViewType, //Quick View or Full View\r\n \t'parentID': ParentProductID,\r\n \t'products': GTMProductImpression\r\n });\r\n}\r\n\r\nfunction GTMFireProductClick(ClickElement, ProductSKU) {\r\n\t//initialize global JavaScript variable: dataLayer\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\twindow.dataLayer.push(\r\n {\r\n \t'event': 'product-click',\r\n \t'clickElement': ClickElement,\r\n \t'productSKU': ProductSKU\r\n });\r\n}\r\n\r\n\r\nvar ACE = ACE || {};\r\nACE.TagManager = ACE.TagManager || {};\r\n\r\nACE.TagManager.FireUtagLink = function (eventData, callback) {\r\n if (window.utag !== undefined) {\r\n utag.link(eventData, callback);\r\n } else if (callback !== undefined) {\r\n try {\r\n callback();\r\n } catch (e) { console.log(e); }\r\n }\r\n};\r\n\r\nACE.TagManager.ItemAddedToCart = function (addToCartResult, callback) {\r\n\tif (addToCartResult.TealiumData) {\r\n\t\tACE.TagManager.FireUtagLink(addToCartResult.TealiumData, callback);\r\n\t}\r\n\t$.each(addToCartResult.AddedItems, function (index, value) {\r\n\t\tGTMAddToCart(value.SKU, value.Quantity); // Track the add\r\n\t});\r\n};\r\n\r\nACE.TagManager.ItemQuantityUpdated = function (cartEvent, callback) {\r\n\tACE.TagManager.FireUtagLink(cartEvent, callback);\r\n};\r\n\r\nACE.TagManager.ItemRemovedFromCart = function (cartEvent, sku, quantity, callback) {\r\n GTMRemoveFromCart(sku, quantity);\r\n\r\n ACE.TagManager.FireUtagLink(cartEvent, callback);\r\n};\r\n","var ACE = ACE || {};\r\nACE.TagManager = ACE.TagManager || {};\r\n\r\n$(function () {\r\n\r\n ACE.TagManager.LoadProductAttributeImpressions = function (selector) {\r\n var startObj = selector;\r\n if (selector != undefined) {\r\n if (!selector instanceof jQuery) {\r\n startObj = $(selector);\r\n }\r\n } else {\r\n startObj = $('body');\r\n }\r\n var productGroups = [];\r\n startObj.find(\"[data-product_impressiongroup]\")\r\n\t\t\t.addBack(\"[data-product_impressiongroup]\")\r\n\t\t\t.each(function (i, e) {\r\n\t\t\t var jElement = $(this);\r\n\t\t\t var groupName = jElement.data('product_impressiongroup');\r\n\t\t\t var foundGroup = $.grep(productGroups, function (g, i) { return g.name === groupName; });\r\n\t\t\t var productGroup = null;\r\n\t\t\t if (foundGroup.length == 1) {\r\n\t\t\t productGroup = foundGroup[0];\r\n\t\t\t } else {\r\n\t\t\t productGroup = { name: groupName, products: [] };\r\n\t\t\t productGroups.push(productGroup);\r\n\t\t\t }\r\n\t\t\t jElement.find(\"[data-product_sku]\")\r\n\t\t\t\t\t.addBack(\"[data-product_sku]\")\r\n\t\t\t\t\t.each(function (ci, ce) {\r\n\t\t\t\t\t var product = $(this);\r\n\t\t\t\t\t var impression = {\r\n\t\t\t\t\t id: product.data('product_id'),\r\n\t\t\t\t\t sku: product.data('product_sku'),\r\n\t\t\t\t\t name: product.data('product_name'),\r\n\t\t\t\t\t category: product.data('product_category'),\r\n\t\t\t\t\t variant: parseInt(product.data('product_variant')),\r\n\t\t\t\t\t price: parseFloat(product.data('product_price')),\r\n\t\t\t\t\t quantity: parseInt(product.data('product_quantity')),\r\n\t\t\t\t\t position: ci + 1\r\n\t\t\t\t\t };\r\n\t\t\t\t\t productGroup.products.push(impression);\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n $.each(productGroups, function (i, p) {\r\n GTMFireProductImpressionList(p.products, p.name);\r\n });\r\n };\r\n\r\n\tvar FireTealiumProductClick = function (productCategory, productSku, productName) {\r\n\t utag.link({\r\n\t \"event_action\": \"Product Click\",\r\n\t \"event_name\": \"product_click\",\r\n\t \"event_category\": \"Ecommerce\",\r\n\t \"event_label\" : [productName],\r\n\r\n\t \"product_category\": [productCategory],\r\n\t \"product_id\": [productSku],\r\n\t \"product_name\": [productName]\r\n\t });\r\n\t};\r\n\r\n ACE.TagManager.FireTealiumLeadSubmission = function (newsletter,customerEmail) {\r\n\t utag.link({\r\n \"account_type\": \"Contact\",\r\n \"customer_email\": customerEmail,\r\n \"event_action\": \"EmailSignUp\",\r\n\t \"event_category\": \"LeadCapture\",\r\n\t \"event_label\": newsletter,\r\n\t \"event_name\": \"lead_submission\",\r\n\r\n\t \"lead_type\": newsletter\r\n\t });\r\n\t};\r\n\r\n\tACE.TagManager.FireTealiumDownloadEvent = function (leadCaptureType,customerEmail,customerPhone) {\r\n\t utag.link({\r\n \"account_type\": \"Contact\",\r\n \"customer_email\": customerEmail,\r\n \"customer_phone\": customerPhone,\r\n \"event_action\": \"downloads\",\r\n\t \"event_category\": \"form-download\",\r\n\t \"event_label\": leadCaptureType,\r\n\t \"event_name\": \"lead_submission\",\r\n\r\n\t \"lead_type\": leadCaptureType\r\n\t });\r\n\t};\r\n\r\n\tACE.TagManager.FireClientEvent = function (name, category, action, label, additionalData) {\r\n\t\tutag.link($.extend({},\r\n\t\t\t{\r\n\t\t\t\t\"event_action\": action || name,\r\n\t\t\t\t\"event_category\": category,\r\n\t\t\t\t\"event_label\": label,\r\n\t\t\t\t\"event_name\": name\r\n\t\t\t}, additionalData));\r\n\t};\r\n\r\n\tACE.TagManager.ProductClicked = function (e) {\r\n\t var $element = $(this);\r\n\t var sku = $element.data('product_sku');\r\n\t var category = $element.data('product_category');\r\n\t var name = $element.data('product_name');\r\n\r\n\t FireTealiumProductClick(category, sku, name);\r\n\t GTMFireProductClick($element.data('product_clicklabel') || 'Product Click', sku);\r\n\t};\r\n\r\n\tACE.TagManager.LaunchCourseEvent = function (e, tealiumData, courseData) {\r\n\t if (typeof e === 'object' && e.button == 0 || e.button == 1) {\r\n\t utag.link(tealiumData);\r\n\r\n\t //call webAPI\r\n\t $.ajax({\r\n\t url: '/api/CourseLaunch',\r\n\t type: 'POST',\r\n\t contentType: \"application/json; charset=utf-8\",\r\n\t data: JSON.stringify(courseData)\r\n\t });\r\n\t }\r\n\t};\r\n\r\n\t$('body').on('click', '[data-product_sku]', ACE.TagManager.ProductClicked);\r\n\tACE.TagManager.LoadProductAttributeImpressions();\r\n});","(function ($, document, window, viewport) {\r\n \t$.fn.navPanes = function () {\r\n\t\tvar openPane = false;\r\n\t\tvar navButtons = $(this).find(\"a\");\r\n\t\tvar viewPortIsLgUp = viewport.is(\">=lg\");\r\n\r\n\t\t// 'Back' buttons\r\n\t\t$(\".nav-pane__back\").click(function () {\r\n\t\t\t$(navButtons).filter(\".expanded\").removeClass(\"expanded\");\r\n\t\t\tvar parentPane = $(this).parent(\".nav-pane\");\r\n\t\t\thidePane(parentPane);\r\n\t\t});\r\n\r\n\t\t// Init nav buttons\r\n\t\treturn navButtons.each(function () {\r\n\t\t\tvar config = {\r\n\t\t\t\telem: this,\r\n\t\t\t\ttarget: $(this).attr(\"href\"),\r\n\t\t\t};\r\n\r\n\t\t\t// Setup handlers\r\n\t\t\t$(config.elem).click(function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar selfClick = $(this).hasClass(\"expanded\");\r\n\t\t\t\thidePane($(\".nav-pane:visible\"));\r\n\r\n\t\t\t\tif (!selfClick) {\r\n\t\t\t\t\t$(\".main-head__nav .expanded\").removeClass(\"expanded\");\r\n\t\t\t\t\t$(\"html\").addClass(\"nav-active\");\r\n\t\t\t\t\t$(\".main-head\").addClass(\"selected\");\r\n\t\t\t\t\t$(this).addClass(\"expanded\");\r\n\r\n\t\t\t\t\tif (!openPane) {\r\n\t\t\t\t\t\trevealPane(config.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\"html\").removeClass(\"nav-active\");\r\n\t\t\t\t\t$(\".main-head\").removeClass(\"selected\");\r\n\t\t\t\t\t$(this).removeClass(\"expanded\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Hide a pane\r\n\t\tfunction hidePane(oldPane, newPane, callback) {\r\n\t\t\t// Separate behavior for small and large screens\r\n\t\t\tif (viewPortIsLgUp) {\r\n\t\t\t\t$(oldPane).hide();\r\n\t\t\t} else {\r\n\t\t\t\tvar scrollPos = $(window).scrollTop();\r\n\t\t\t\tvar navOffset = $(\".main-head__nav\").offset();\r\n\t\t\t\tvar paneStyles = {\r\n\t\t\t\t\tdisplay: \"block\",\r\n\t\t\t\t\tposition: \"fixed\",\r\n\t\t\t\t\ttop: navOffset.top - scrollPos,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(oldPane)\r\n\t\t\t\t\t.css(paneStyles)\r\n\t\t\t\t\t.stop()\r\n\t\t\t\t\t.animate({ left: \"100%\" }, function () {\r\n\t\t\t\t\t\t$(this).css(\"display\", \"none\");\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// No more open panes\r\n\t\t\topenPane = false;\r\n\r\n\t\t\t// If we want to reveal a new pane after closing this one\r\n\t\t\tif (typeof callback === \"function\") {\r\n\t\t\t\tcallback(newPane);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Reveal a pane\r\n\t\tfunction revealPane(newPane) {\r\n\t\t\t// Separate behavior for small and large screens\r\n\t\t\tif (viewPortIsLgUp) {\r\n\t\t\t\tvar navHeight = $(\".main-head__nav\").outerHeight();\r\n\t\t\t\tvar paneStyles = {\r\n\t\t\t\t\tdisplay: \"none\",\r\n\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\ttop: navHeight + \"px\",\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(newPane).css(paneStyles).fadeIn(\"fast\");\r\n\t\t\t} else {\r\n\t\t\t\tvar scrollPos = $(window).scrollTop();\r\n\t\t\t\tvar navOffset = $(\".main-head__nav\").offset();\r\n\t\t\t\tvar navPos = $(\".main-head__nav\").position();\r\n\t\t\t\tvar paneStyles = {\r\n\t\t\t\t\tdisplay: \"block\",\r\n\t\t\t\t\tposition: \"fixed\",\r\n\t\t\t\t\ttop: navOffset.top - scrollPos,\r\n\t\t\t\t\tleft: \"100%\",\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(newPane)\r\n\t\t\t\t\t.css(paneStyles)\r\n\t\t\t\t\t.stop()\r\n\t\t\t\t\t.animate({ left: 0 }, function () {\r\n\t\t\t\t\t\t$(this).css({\r\n\t\t\t\t\t\tposition: \"absolute\",\r\n\t\t\t\t\t\ttop: navPos.top,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// There is an open pane\r\n\t\t\topenPane = true;\r\n\r\n\t\t\t//Record Marquee Impressions\r\n\t\t\tvar newPaneSelector = \"#\" + $(newPane).prop(\"id\") + \" [data-mqk]:visible\";\r\n\t\t\t$(newPaneSelector).each(function (index) {\r\n\t\t\t\tutag.link({\r\n\t\t\t\t\tevent_action: \"Impression\",\r\n\t\t\t\t\tevent_category: \"Marquees\",\r\n\t\t\t\t\tevent_label:\r\n\t\t\t\t\t\t$(this).closest(\"div[data-mqs]\").attr(\"data-mqs\") +\r\n\t\t\t\t\t\t\" : \" +\r\n\t\t\t\t\t\t$(this).data(\"mqk\"),\r\n\t\t\t\t\tga_noninteraction: \"1\",\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n})(jQuery, document, window, ResponsiveBootstrapToolkit);\r\n","/* =====================================================\r\nAdaptive Accordion:\r\nDetermines whether to display a bootstrap collapse as an accordion or not\r\nbased on viewport size.\r\nuses: /plugins/bootstrap-toolkit.js\r\nexample usage on: certification/crt3.1.1-how-to-detail.html\r\n====================================================== */\r\n(function($, document, window, viewport) {\r\n\r\n\t\t$.fn.adapativeAccordion = function(options) {\r\n\r\n\t\t\t\t// Eject if there's an empty call\r\n\t\t\t\tif (!$(this).length) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar panels = this;\r\n\r\n\t\t\t\tvar settings = $.extend({\r\n\t\t\t\t\t\tcurrentViewportContext: null,\r\n\t\t\t\t\t\tcurrentDisplayState: null\r\n\t\t\t\t}, options);\r\n\r\n\t\t\t\tfunction checkContext() {\r\n\t\t\t\t\t\t// if viewport is desktop size and panels are in mobile display state\r\n\t\t\t\t\t\tif (viewport.is(\">=md\") && settings.currentDisplayState === 'mobile') {\r\n\t\t\t\t\t\t\t\t// change to desktop view\r\n\t\t\t\t\t\t\t\tsetDisplay('desktop');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// if viewport is mobile size and panels are in desktop display state\r\n\t\t\t\t\t\tif (viewport.is(\"=md\")) {\r\n\t\t\t\t\t\t\t\tpanels.collapse('show');\r\n\t\t\t\t\t\t\t\tsettings.currentDisplayState = \"desktop\"\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tpanels.collapse('hide');\r\n\t\t\t\t\t\t\t\tsettings.currentDisplayState = \"mobile\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\t$(window).resize(viewport.changed(function() {\r\n\t\t\t\t\t\t// if the current viewport is different from the current setting\r\n\t\t\t\t\t\tif (viewport.current() !== settings.currentViewportContext) {\r\n\t\t\t\t\t\t\t\t// var vpWas = settings.currentViewportContext;\r\n\t\t\t\t\t\t\t\t// var vpNow = viewport.current();\r\n\t\t\t\t\t\t\t\t// console.log(\"viewport changed from \" + vpWas + \" to \" + vpNow)\r\n\t\t\t\t\t\t\t\t// settings.currentViewportContext = vpNow;\r\n\t\t\t\t\t\t\t\t// check the new context to see if the display needs to change\r\n\t\t\t\t\t\t\t\tcheckContext();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}, 150));\r\n\r\n\t\t\t\t// Intialize it on the element\r\n\t\t\t\tinitializeAdaptiveAccordion();\r\n\r\n\t\t}\r\n\r\n})(jQuery, document, window, ResponsiveBootstrapToolkit);\r\n","$.fn.vertAlign = function(){\r\n\treturn this.each(function(){\r\n\t\tvar height = $(this).outerHeight();\r\n\t\tvar pullUp = height / 2;\r\n\t\t$(this).css({\r\n\t\t\ttop: '50%',\r\n\t\t\tmarginTop: '-'+pullUp+'px'\r\n\t\t});\r\n\t});\r\n};","$.fn.stickIt = function(params){\r\n\treturn this.each(function(){\r\n\t\tvar config = {\r\n\t\t\telem: this,\r\n\t\t\telemPos: $(this).offset().top\r\n\t\t};\r\n\r\n\t\tif (typeof params !== 'undefined'){\r\n\t\t\tconfig.offsetPos = params.offsetBy.outerHeight();\r\n\t\t} else {\r\n\t\t\tconfig.offsetPos = 0;\r\n\t\t}\r\n\r\n\t\t// Check on initialization\r\n\t\tcheckPos(config);\r\n\r\n\t\t// Check on page scroll\r\n\t\t$(window).on('scroll', function(){\r\n\t\t\tcheckPos(config);\r\n\t\t});\r\n\r\n\t\t// Check on window resize\r\n\t\t$(window).resize(function(){\r\n\t\t\tcheckPos(config);\r\n\t\t});\r\n\t});\r\n\r\n\tfunction checkPos(config){\r\n\t\tvar scrollPos = $(window).scrollTop();\r\n\r\n\t\tif(scrollPos > config.elemPos - config.offsetPos){\r\n\t\t\t$(config.elem).addClass('sticky').css({top: config.offsetPos});\r\n\t\t} else {\r\n\t\t\t$(config.elem).removeClass('sticky').css({top: 'auto'});\r\n\t\t}\r\n\t}\r\n};\r\n"]}