{"version":3,"file":"app.min.js","sources":["app.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Toggles display of single code textareas for repeater fields\n */\n(function ($) {\n 'use strict';\n\n var settings;\n var $el;\n $(window).on('elementor/frontend/init', function () {\n if (window.elementor) {\n elementor.hooks.addAction('panel/open_editor/widget', function (panel, model, view) {\n if (model.attributes.widgetType === \"ap-program-cards\") {\n settings = view.getEditModel().get('settings');\n $el = panel.$el;\n $el.off('change', 'input[data-setting=\"use_same_description\"]', onInputChange);\n $el.on('change', 'input[data-setting=\"use_same_description\"]', onInputChange);\n $el.off('click', '.elementor-control-program_cards_list .elementor-repeater-add', onAddItemClick);\n $el.on('click', '.elementor-control-program_cards_list .elementor-repeater-add', onAddItemClick);\n }\n });\n }\n });\n function onInputChange(e) {\n var isChecked = $(e.currentTarget).is(':checked');\n checkRepeaterItems(isChecked);\n }\n function onAddItemClick(e) {\n var isChecked = $el.find('input[data-setting=\"use_same_description\"]').is(':checked');\n checkRepeaterItems(isChecked);\n }\n function checkRepeaterItems(isChecked) {\n var control = settings.controls.program_cards_list;\n $.each(settings.attributes.program_cards_list.models, function (i, model) {\n model.set('use_global_description', isChecked ? 'yes' : 'no');\n });\n }\n})(jQuery);\njQuery(document).ready(function ($) {\n $.fn.digits = function () {\n return this.each(function () {\n $(this).text($(this).text().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\"));\n });\n };\n var transfer_credits_slider = $(\"#transfer_credits_slider\");\n var transfer_credits_slider_range_min = $(\"#transfer_credits_slider_range_min\").val();\n var transfer_credits_slider_range_max = $(\"#transfer_credits_slider_range_max\").val();\n var transfer_credits_slider_value = $(\"#transfer_credits_slider_range_value\").val();\n var total_credit_hours = $(\"#total_credit_hours\").val();\n var credit_hour_price = $(\"#credit_hour_price\").val();\n var full_tuition_price = total_credit_hours * credit_hour_price;\n if ($(transfer_credits_slider).length) {\n $(document).ready(function () {\n $(transfer_credits_slider).attr('min', transfer_credits_slider_range_min);\n $(transfer_credits_slider).attr('max', transfer_credits_slider_range_max);\n $(transfer_credits_slider).val(transfer_credits_slider_range_value);\n $('.output_label.transfer_credits_slider_range_min').html(transfer_credits_slider_range_min);\n $('.output_label.transfer_credits_slider_range_max').html(transfer_credits_slider_range_max);\n $('#ch_output_value').html(transfer_credits_slider_value);\n $('#ch_output_value_text').val(transfer_credits_slider_value);\n $('#ch_output_value_text').attr('min', transfer_credits_slider_range_min);\n $('#ch_output_value_text').attr('max', transfer_credits_slider_range_max);\n $('#discounted_tuition_output_value').html(full_tuition_price - transfer_credits_slider_value * credit_hour_price);\n $(\"#discounted_tuition_output_value\").digits();\n $('.clear_slider').click(function () {\n $(transfer_credits_slider).val(transfer_credits_slider_range_min);\n $('#ch_output_value').html(transfer_credits_slider_range_min);\n $('#ch_output_value_text').val(transfer_credits_slider_range_min);\n $('#discounted_tuition_output_value').html(full_tuition_price);\n $(\"#discounted_tuition_output_value\").digits();\n });\n });\n $(transfer_credits_slider).on('input change', function () {\n var transfer_credits_slider_value = $(\"#transfer_credits_slider\").val();\n $('#ch_output_value').html(transfer_credits_slider_value);\n $('#ch_output_value_text').val(transfer_credits_slider_value);\n $('#discounted_tuition_output_value').html(full_tuition_price - transfer_credits_slider_value * credit_hour_price);\n $(\"#discounted_tuition_output_value\").digits();\n });\n $(ch_output_value_text).on('input change', function () {\n var ch_output_value_text = $('#ch_output_value_text').val();\n $(transfer_credits_slider).val(ch_output_value_text);\n $('#ch_output_value').html(ch_output_value_text);\n $('#discounted_tuition_output_value').html(full_tuition_price - ch_output_value_text * credit_hour_price);\n $(\"#discounted_tuition_output_value\").digits();\n var max = parseInt($(this).attr('max'));\n var min = parseInt($(this).attr('min'));\n if ($(this).val() > max) {\n $(this).val(max);\n $('#discounted_tuition_output_value').html(full_tuition_price - transfer_credits_slider_value * credit_hour_price);\n $(\"#discounted_tuition_output_value\").digits();\n } else if ($(this).val() < min) {\n $(this).val(min);\n $('#discounted_tuition_output_value').html(full_tuition_price);\n $(\"#discounted_tuition_output_value\").digits();\n }\n });\n }\n});\n(function ($) {\n 'use strict';\n\n $(window).on('elementor/frontend/init', function () {\n var interval = setInterval(function () {\n if (elementorFrontend.elementsHandler) {\n clearInterval(interval);\n\n // Get default toggle widget handlers.\n var toggleHandler = elementorFrontend.elementsHandler.getHandler('toggle.default');\n\n // Register handlers for custom widget.\n elementorFrontend.hooks.addAction('frontend/element_ready/cf-courses-accordion.default', toggleHandler);\n }\n }, 50);\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n /**\n * If the target MUST be HIDDEN at runtime, please set it the CSS Class: `cf-toggle-target-hide`.\n *\n * @package cf-elementor-posts\n */\n function init($el) {\n var $expandItem = $el.find('.cf-expand-item');\n var $collapseItem = $el.find('.cf-collapse-item');\n var targetCSSId = $el.attr('data-target-css-id');\n var targetCSSClass = $el.attr('data-target-css-class');\n var targetSelector = \"\";\n\n // Find the target selector based on the CSS ID and CSS Class\n if (targetCSSId) {\n targetSelector = \"#\".concat(targetCSSId);\n } else if (targetCSSClass) {\n targetSelector += \"[class*=\".concat(targetCSSClass, \"]\");\n }\n var opened = $expandItem.css('display') === 'none';\n var $target = $(targetSelector);\n $target.css('display', $expandItem.css('display') !== 'none' ? 'none' : 'block');\n $el.on('click', function (e) {\n e.preventDefault();\n $target.stop().slideToggle();\n if (opened) {\n $expandItem.show();\n $collapseItem.hide();\n } else {\n $expandItem.hide();\n $collapseItem.show();\n }\n opened = !opened;\n return;\n });\n }\n\n // Elementor JS Hooks.\n $(window).on('elementor/frontend/init', function () {\n elementorFrontend.hooks.addAction('frontend/element_ready/cf-toggle-section.default', init);\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n //hide all levels \n $(document).ready(function () {\n $('.next-path').hide();\n });\n\n //level 2 - non program\n $(document).on('click', '.main-path a.answer', function (e) {\n event.preventDefault();\n $('.main-path').hide();\n //get the id of the href clicked to show the correct div\n var mainelement = $(this).attr('id');\n $('#degree_path_' + mainelement).show();\n });\n\n //show program card \n $(document).on('click', 'a.show-program', function (e) {\n event.preventDefault();\n $('.main-path').hide();\n $('.next-path').hide();\n var mainelement = $(this).attr('id');\n $('#degree_path_' + mainelement + '_program').show();\n });\n\n //level 3 & 4 - non program\n $(document).on('click', '.next-path a.answer', function (e) {\n event.preventDefault();\n var path_clicked = jQuery(this).parent().attr('id');\n $('#' + path_clicked).hide();\n $('.main-path').hide();\n $('.next-path').hide();\n //get the name of the thing clicked to show the div\n var mainelement = $(this).attr('id');\n $('#degree_path_' + mainelement).show();\n });\n\n //back to main \n $(document).on('click', '.back-main', function (e) {\n event.preventDefault();\n $('.main-path').show();\n $('.next-path').hide();\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n function init() {\n var $expandItem = $('body').find('.cf-buttons-expand-item');\n var $collapseItem = $('body').find('.cf-buttons-collapse-item');\n $('body').on('click', '.cf-buttons-expand-item', onButtonClick);\n $('body').on('click', '.cf-buttons-collapse-item', onButtonClick);\n }\n function onButtonClick(e) {\n e.preventDefault();\n var $el = $(e.currentTarget);\n var $container = $el.closest('.elementor-widget-container');\n var $expandItems = $container.find('.cf-buttons-expand-item');\n var $collapseItems = $container.find('.cf-buttons-collapse-item');\n var opened = $expandItems[0].style.display === 'none';\n var $targetTitleItems = $container.find('.elementor-toggle .elementor-toggle-item .elementor-tab-title');\n var $targetContentItems = $container.find('.elementor-toggle .elementor-toggle-item .elementor-tab-content');\n if (opened) {\n $expandItems.show();\n $collapseItems.hide();\n $targetTitleItems.removeClass('elementor-active');\n $targetContentItems.removeClass('elementor-active');\n $targetContentItems.stop().slideUp();\n } else {\n $expandItems.hide();\n $collapseItems.show();\n $targetTitleItems.addClass('elementor-active');\n $targetContentItems.addClass('elementor-active');\n $targetContentItems.stop().slideDown();\n }\n return;\n }\n $(document).ready(function () {\n init();\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n $(window).on('elementor/frontend/init', function () {\n var isFaq = $('.elementor-widget-cf-faq').length > 0;\n var interval = setInterval(function () {\n if (elementorFrontend.elementsHandler) {\n clearInterval(interval);\n\n // Get default toggle widget handlers.\n var toggleHandler = elementorFrontend.elementsHandler.getHandler('toggle.default');\n\n // Register handlers for custom widget.\n elementorFrontend.hooks.addAction('frontend/element_ready/cf-faq.default', toggleHandler);\n }\n if (isFaq) {\n var url = window.location.hash;\n var idx = url.indexOf('#');\n var hash = idx != -1 ? url.substring(idx + 1) : '';\n if (hash) {\n var $target = $(\"#\".concat(hash));\n var sticky = $('.elementor-sticky');\n if (sticky.length > 0) {\n var offset = sticky.outerHeight() + sticky.position().top;\n $('html, body').animate({\n scrollTop: $target.offset().top - offset\n }, 1000);\n }\n $target.find('a').first().trigger('click');\n }\n }\n }, 50);\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n jQuery(document).ready(function () {\n // Add 'mouseover' actions only for tablet and desktop resolutions.\n $('body').on('mouseover', '.max-mega-menu .mega-menu-item > .mega-sub-menu .mega-menu-link', function () {\n if ($('body').attr('data-elementor-device-mode') === 'mobile') {\n return;\n }\n var $submenu = $(this).next('.mega-sub-menu');\n\n // Set the currentTarget '.mega-sub-menu' as active.\n if ($submenu.length > 0) {\n $(this).closest('.mega-sub-menu').find('.mega-menu-item').removeClass('mega-toggle-on');\n $(this).parent().addClass('mega-toggle-on');\n }\n });\n\n // Add 'mouseleave' actions to all '.mega-sub-menu' items, and close the maga-menu navigation.\n $('body').on('mouseleave', '.max-mega-menu > .mega-menu-item > .mega-sub-menu', function () {\n if ($('body').attr('data-elementor-device-mode') === 'mobile') {\n return;\n }\n $('body').click();\n });\n\n // Add 'click' actions to all '.mega-menu-link' items to avoid double clicking before redirecting to the new URL.\n //WE REMOVED THIS SO THAT WE CAN HAVE AN EXTERNAL LINK IN THE NAVIGATION \n /* $('body').on('click', '.max-mega-menu .mega-menu-item > .mega-sub-menu .mega-menu-link', function() {\n const href = $(this).attr('href');\n if (href != '') {\n document.location.href = href;\n }\n }); */\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n var modalInterval;\n var formInterval;\n $(window).on('elementor/frontend/init', function () {\n $('body').on('click', '.cf-landing-navigation .elementor-menu-toggle', onMobileMenuIconClick);\n $('body').on('click', '.cf-landing-navigation .menu-item a', onMobileMenuItemClick);\n $('body').on('click', '.cf-landing-general-btn', onGeneralBtnClick);\n $('body').on('click', '.cf-general-request-btn', onGeneralBtnClick);\n $('body').on('click', '.cf-landing-program-btn', onProgramBtnClick);\n $('body').on('click', '.cf-request-btn', onProgramBtnClick);\n\n // Check programs on CRM Lead Form for Landing Pages.\n onGeneralBtnClick();\n });\n function onMobileMenuIconClick(e) {\n e.preventDefault();\n e.stopPropagation();\n $('body').toggleClass('mobile-open');\n }\n function onMobileMenuItemClick(e) {\n e.preventDefault();\n e.stopPropagation();\n var $el = $(e.currentTarget);\n var programsGroupId = $el.attr('data-programs-group-id');\n if (typeof programsGroupId === 'undefined') {\n programsGroupId = $el.parents('.elementor-tab-content').first().data('programs-group-id');\n }\n var programCode = $el.attr('data-program-code');\n\n // If the clicked item is a programs group item.\n if (programsGroupId) {\n var $tabMenuItem = $('body').find(\".cf-programs-groups-tab-menu .cf-title[data-programs-group-id=\\\"\".concat(programsGroupId, \"\\\"]\"));\n if ($tabMenuItem.length > 0) {\n $tabMenuItem.trigger('click');\n\n // Scroll to anchor.\n setTimeout(function () {\n $('html, body').animate({\n scrollTop: $($el.attr('href')).offset().top - 10\n }, 500);\n }, 350);\n }\n } else if (programCode) {\n var $programItem = $('body').find(\".cf-programs-groups-tab-menu [data-program-code=\\\"\".concat(programCode, \"\\\"]\"));\n if ($programItem.length === 0) {\n $programItem = $('body').find(\".cf-programs-group-elementor-widget [data-program-code=\\\"\".concat(programCode, \"\\\"]\"));\n }\n if ($programItem.length > 0) {\n $programItem.trigger('click');\n }\n }\n $('body').find('.elementor-menu-toggle').trigger('click');\n }\n function onGeneralBtnClick(e) {\n var programsCode = [];\n\n // Find all Programs that should be displayed in the modal and get their codes.\n $('body').find('.cf-programs-group-elementor-widget .cf-program-details').each(function (i, item) {\n var code = $(item).attr('data-program-code');\n if (code && programsCode.indexOf(code) == -1) {\n programsCode.push(code);\n }\n });\n\n // Add programs from Program Cards widget\n $('body').find('.ap-program-cards-elementor-widget .add-to-form').each(function (i, item) {\n var code = $(item).attr('data-program-code');\n if (code && programsCode.indexOf(code) == -1) {\n programsCode.push(code);\n }\n });\n\n // If no program was found added through cf-programs-group-elementor widget, try to check `programPageCode variable.\n if (programsCode.length === 0) {\n var currentProgramCode = window.pageProgramCode || null;\n if (currentProgramCode) {\n programsCode = [currentProgramCode];\n checkProgramsOnPopup(programsCode, currentProgramCode);\n checkProgramsOnLandingPage(programsCode, currentProgramCode);\n }\n } else {\n checkProgramsOnPopup(programsCode);\n checkProgramsOnLandingPage(programsCode);\n }\n }\n function onProgramBtnClick(e) {\n var $btn = $(e.currentTarget);\n var currentProgramCode = $btn.attr('data-program-code') || '';\n var programsCode = [];\n\n // Find all Programs that should be displayed in the modal and get their codes.\n $('body').find('.cf-programs-group-elementor-widget .cf-program-details').each(function (i, item) {\n var code = $(item).attr('data-program-code');\n if (code && programsCode.indexOf(code) == -1) {\n programsCode.push(code);\n }\n });\n\n // If no program was found added through cf-programs-group-elementor widget, try to check `programPageCode var.\n if (programsCode.length === 0) {\n if (currentProgramCode === '') {\n currentProgramCode = window.pageProgramCode || null;\n }\n programsCode = [currentProgramCode];\n }\n checkProgramsOnPopup(programsCode, currentProgramCode);\n }\n function checkProgramsOnPopup(programsCode) {\n var currentProgramCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var $modal = $('body').find('.elementor-popup-modal');\n var $popupForm = $modal.find('.cf-popup-form');\n var $programsList = $popupForm.find('.cf-programs-list select');\n var time = 50;\n\n // Check to see if the modal's content is loaded.\n if ($popupForm.length) {\n if ($programsList.length) {\n time = 0;\n }\n }\n\n // Wait until the modal's content is full loaded.\n clearInterval(modalInterval);\n modalInterval = setInterval(function () {\n if (time !== 0) {\n $modal = $('body').find('.elementor-popup-modal');\n $popupForm = $modal.find('.cf-popup-form');\n $programsList = $popupForm.find('.cf-programs-list select');\n }\n if ($popupForm.length) {\n if ($programsList.length) {\n clearInterval(modalInterval);\n\n // Go through all the Program Options and check to see if the program must be removed from the list, or not.\n $programsList.find('option').each(function (i, option) {\n var $option = $(option);\n var code = $option.val();\n if (programsCode.indexOf(code) === -1) {\n // Keep the Placeholder option if there are more then 2 items in the list.\n if (code === '' && programsCode.length > 1) {\n return;\n }\n var $optgroup = $option.parent();\n\n // Check to see if also the 'optgroup' option must be removed.\n if ($optgroup.prop('tagName').toLowerCase() === 'optgroup' && $optgroup.children().length === 1) {\n $option.remove();\n $optgroup.remove();\n } else {\n $option.remove();\n }\n }\n });\n\n // If a specific Program should be already selected.\n if (currentProgramCode) {\n $programsList.find(\"option[value='\" + currentProgramCode + \"']\").attr('selected', 'selected');\n }\n }\n }\n }, time);\n }\n function checkProgramsOnLandingPage(programsCode) {\n var currentProgramCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var $landingPageForm = $('body').find('.cf-landing-section .cf-lead-form');\n var $programsList = $landingPageForm.find('.gfield_ap_crm_program select');\n if ($landingPageForm.length) {\n if ($programsList.length) {\n // Go through all the Program Options and check to see if the program must be removed from the list, or not.\n $programsList.find('option').each(function (i, option) {\n var $option = $(option);\n var code = $option.val();\n if (programsCode.indexOf(code) === -1) {\n // Keep the Placeholder option if there are more then 2 items in the list.\n if (code === '' && programsCode.length > 1) {\n return;\n }\n var $optgroup = $option.parent();\n\n // Check to see if also the 'optgroup' option must be removed.\n if ($optgroup.prop('tagName').toLowerCase() === 'optgroup' && $optgroup.children().length === 1) {\n $option.remove();\n $optgroup.remove();\n } else {\n $option.remove();\n }\n }\n });\n\n // If a specific Program should be already selected.\n if (currentProgramCode) {\n $programsList.find(\"option[value='\" + currentProgramCode + \"']\").attr('selected', 'selected');\n }\n }\n }\n }\n})(jQuery);\n(function ($) {\n 'use strict';\n\n var setOffset;\n window.addEventListener('load', function () {\n var headerHeight = $('.header-main').height();\n var getDifference = 0;\n //fgcu is less than 100\n if (headerHeight < 100) {\n getDifference = 100 - headerHeight;\n setOffset = 120;\n //longwood and bgsu are 100\n } else if (headerHeight == 100) {\n setOffset = 100;\n //st cloud 110\n } else if (headerHeight > 100 && headerHeight < 111) {\n setOffset = 120;\n //worcester is 118\n } else if (headerHeight > 111 && headerHeight < 120) {\n getDifference = 100 - headerHeight;\n setOffset = 110;\n //radford 140.5\n } else if (headerHeight == 120) {\n getDifference = 100 - headerHeight;\n setOffset = 300;\n //tamiu 140.26\n } else if (headerHeight == 140) {\n getDifference = 100 - headerHeight;\n setOffset = 300;\n } else if (headerHeight > 120 && headerHeight < 175) {\n getDifference = 100 - headerHeight;\n setOffset = 300;\n }\n console.log(headerHeight + ' ' + setOffset);\n });\n\n //jQuery(window).on('load',function(){\n\n // An array for each sticky menu anchor.\n var menus = [];\n\n // An interval used when the page is scrolled.\n var scroller;\n function getOffsetTop() {\n var $sticky = $('.elementor-top-section.elementor-sticky');\n var $anchors = $('.elementor-widget-cf-menu-anchor');\n var $adminBar = $('#wpadminbar');\n var isMobile = $('body').attr('data-elementor-device-mode') === 'mobile';\n var offset = $anchors.outerHeight();\n if ($sticky.length > 0 && !isMobile) {\n offset += $sticky.outerHeight();\n }\n if ($adminBar.length > 0) {\n offset += $adminBar.outerHeight();\n }\n return offset;\n }\n function scrollTo(anchorId) {\n var $target = $(\"#\".concat(anchorId));\n var offset = getOffsetTop();\n var total = $target.offset().top - offset - 3; // Fine tuning.\n\n $('html, body').animate({\n scrollTop: total\n }, 500);\n }\n function init($el) {\n var anchors = [];\n setTimeout(function () {\n var url = window.location.hash;\n var idx = url.indexOf('#');\n var hash = idx != -1 ? url.substring(idx + 1) : '';\n // If hash is present in URL, scroll to target.\n if (hash) {\n scrollTo(hash);\n }\n }, 100);\n\n // Extract the anchor names from the menu elements.\n $el.find('li.cf-item a').each(function (i, item) {\n var anchorId;\n var $item = $(item);\n\n // Check if the anchor element exists.\n if ($item.attr('href') && $item.attr('href') !== '') {\n anchorId = $item.attr('href').replace('#', '');\n var $anchor = $(\"#\".concat(anchorId));\n anchors.push($anchor.length ? $anchor.get(0) : null);\n $item.on('click', function () {\n scrollTo(anchorId);\n return false;\n });\n }\n });\n menus.push({\n $el: $el,\n anchors: anchors\n });\n $(window).scroll(function () {\n onScroll();\n });\n }\n function onScroll() {\n var scrollTop = $(window).scrollTop();\n var $anchorsMenu = $('.elementor-widget-cf-menu-anchor');\n var anchorsMenuHeight = $anchorsMenu.length > 0 ? $anchorsMenu.outerHeight() : 0;\n clearInterval(scroller);\n scroller = setInterval(function () {\n clearInterval(scroller);\n\n // Check every sticky menu anchor from the page.\n $.each(menus, function (i, menu) {\n var $el = menu.$el;\n var anchors = menu.anchors;\n\n //console.log('anchors: ' + anchors);\n //const menuTopPos = $el.css('position') !== 'fixed' ? $el.offset().top : parseFloat($el.css('top'));\n\n var menuTopPos = parseFloat($el.css('top'));\n\n //console.log('menuTopPos: ' + menuTopPos);\n\n // Verify what is the current active element by checking anchors positions relative to the menu and the window scroll.\n var selectedAnchorIndex = 0;\n $.each(anchors, function (index, anchor) {\n //console.log('anchor: ' + anchor);\n //console.log('anchorsMenuHeight: ' + anchorsMenuHeight);\n if (anchor) {\n var anchorTopPos = $(anchor).offset().top - scrollTop - anchorsMenuHeight - setOffset; // Fine tuning\n //console.log('anchorTopPos: ' + anchorTopPos);\n //console.log('scrollTop: ' + scrollTop);\n //console.log('setOffset: ' + setOffset);\n if (anchorTopPos <= menuTopPos) {\n selectedAnchorIndex = index;\n //console.log('selectedAnchorIndex: ' + selectedAnchorIndex);\n }\n }\n });\n\n // Activate the element.\n $el.find('li.cf-item').removeClass('active');\n $el.find(\"li.cf-item:eq(\".concat(selectedAnchorIndex, \")\")).addClass('active');\n //console.log($el.find(`li.cf-item:eq(${selectedAnchorIndex})`));\n });\n }, 100);\n }\n\n // Elementor JS Hooks.\n $(window).on('elementor/frontend/init', function () {\n elementorFrontend.hooks.addAction('frontend/element_ready/cf-menu-anchor.default', init);\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n //hide all levels \n $(document).ready(function () {\n $('html, body').animate({\n scrollTop: 0\n });\n $('.areas').hide();\n $('.plp-form').hide();\n $(\".program-select option:selected\").removeAttr(\"selected\");\n $('.plp-refresh').hide();\n });\n $(document).on('click', '.plp-refresh', function (e) {\n event.preventDefault();\n $('html, body').animate({\n scrollTop: 0\n });\n $('.areas').hide();\n $('.plp-form').hide();\n $('.plp-refresh').hide();\n $('.button').removeClass('active');\n $(\".program-select option:selected\").removeAttr(\"selected\");\n });\n $(document).on('click', '.program-level', function (e) {\n event.preventDefault();\n $('.plp-refresh').show();\n $('.areas').hide();\n $('.plp-form').hide();\n $('.program-level').removeClass('active');\n $(this).addClass('active');\n var mainelement = $(this).attr('id');\n $('#program_of_interest_' + mainelement).show();\n $('html, body').animate({\n scrollTop: $('#program_of_interest_' + mainelement).offset().top\n }, \"800\");\n $(\".program-select option:selected\").removeAttr(\"selected\");\n });\n $(document).on('click', '.area-of-interest', function (e) {\n event.preventDefault();\n $('.plp-form').hide();\n $('.actual-program').hide();\n $('.area-of-interest').removeClass('active');\n $(this).addClass('active');\n var mainelement = $(this).attr('id');\n $('#actual_program_' + mainelement).show();\n $('html, body').animate({\n scrollTop: $('#actual_program_' + mainelement).offset().top\n }, \"800\");\n });\n $(document).on('change', '.program-select', function (e) {\n var optionvalue = $(this).find(\"option:selected\").val();\n var optiontext = $(this).find(\"option:selected\").text();\n var optionshow = 'option[value=\\'' + optionvalue + '\\']';\n $('.plp-form').show();\n $('html, body').animate({\n scrollTop: $('.plp-form').offset().top\n }, \"800\");\n $('span.program-name').text(' ' + optiontext);\n $('.gfield_ap_crm_program select').val(optionvalue);\n $('.gfield_ap_crm_program').hide();\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n $(document).ready(function () {\n $('.scrolling_inner').addClass('scroll-right');\n // show gradient in table when scrolling occurs\n $('.cf-program-calendar-table-widget').on('scroll', function () {\n var parent_div = $(this).parent();\n if ($(this).scrollLeft() + $(this).innerWidth() >= $(this)[0].scrollWidth) {\n if (parent_div.hasClass('scroll-right')) {\n parent_div.removeClass('scroll-right');\n }\n } else if ($(this).scrollLeft() === 0) {\n if (parent_div.hasClass('scroll-left')) {\n parent_div.removeClass('scroll-left');\n }\n } else {\n if (!parent_div.hasClass('scroll-right')) {\n parent_div.addClass('scroll-right');\n }\n if (!parent_div.hasClass('scroll-left')) {\n parent_div.addClass('scroll-left');\n }\n }\n });\n\n // determine if gradients are needed on page load\n var scrolling_tables = document.getElementsByClassName('cf-program-calendar-table-widget');\n for (var i = 0; i < scrolling_tables.length; i++) {\n var scrolling_div = scrolling_tables[i];\n if (scrolling_div.offsetWidth < scrolling_div.scrollWidth) {\n if (!$('.scrolling_inner').hasClass('scroll-right')) {\n $('.scrolling_inner').addClass('scroll-right');\n }\n }\n }\n });\n\n // show / hide the gradient on scrolling table\n function scrolling_table_shadows() {\n var be_compare_container = document.getElementById('be_compare_features_table');\n if (be_compare_container === null) return;\n if (be_compare_container.offsetWidth < be_compare_container.scrollWidth) {\n if (!$('#be_compare_features_table_inner').hasClass('scroll-right')) {\n $('#be_compare_features_table_inner').addClass('scroll-right');\n }\n } else {\n if ($('#be_compare_features_table_inner').hasClass('scroll-right')) {\n $('#be_compare_features_table_inner').removeClass('scroll-right');\n }\n if ($('#be_compare_features_table_inner').hasClass('scroll-left')) {\n $('#be_compare_features_table_inner').removeClass('scroll-left');\n }\n }\n }\n\n // evaluate gradients when the window is resized\n $(window).on('resize', function () {\n scrolling_table_shadows();\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n $(window).on('elementor/frontend/init', function () {\n $('.cf-js-programs-list').on('change', function () {\n var url = $(this).find(':selected').data('url');\n if (url) {\n window.location.href = url;\n }\n });\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n $(window).on('elementor/frontend/init', function () {\n var interval = setInterval(function () {\n if (elementorFrontend.elementsHandler) {\n clearInterval(interval);\n\n // Get default toggle widget handlers.\n var toggleHandler = elementorFrontend.elementsHandler.getHandler('toggle.default');\n\n // Register handlers for custom widget.\n elementorFrontend.hooks.addAction('frontend/element_ready/cf-programs-accordion.default', toggleHandler);\n }\n }, 50);\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n $(window).on('elementor/frontend/init', function () {\n $('body').on('click', '.cf-programs-groups-tab-menu .cf-item a.cf-title', onMenuItemClick);\n\n // Add programs from 'programs groups widgets' to the menu tab's content.\n addProgramsToAccordion();\n\n // Check and see if the tabs items must be added in a mobile menu.\n checkMobileMenu();\n });\n function addProgramsToAccordion() {\n var itemsTitle = $('body').find('.cf-programs-groups-tab-menu .cf-item .cf-title');\n var itemsContent = $('body').find('.cf-programs-groups-tab-menu .cf-item .cf-content');\n $.each(itemsTitle, function (i, item) {\n var programsGroupId = $(item).attr('data-programs-group-id');\n var $itemContent = $(itemsContent[i]);\n var isActive = $(item).hasClass('elementor-active');\n\n // Wait for the Accordion Widget to finish render, and activate the item if needed.\n // (At runtime, by default, the Accordion Widget is closing all items if it sees some of them opened).\n if (isActive) {\n setTimeout(function () {\n $(item).addClass('elementor-active');\n $itemContent.addClass('elementor-active');\n $itemContent.show();\n }, 50);\n }\n\n // For each tab find the coresponding programs group, get the content and add it into the tab's content element.\n // This is an option working only for mobile, where the tab menu is acting like an accordion.\n if (programsGroupId !== '') {\n var programsGroup = $('body').find(\".cf-programs-group-elementor-widget[data-programs-group-id=\\\"\".concat(programsGroupId, \"\\\"]\"));\n var html = $itemContent.html();\n\n // In case if there are multiple programs groups with the same id, copy the content from all of them.\n $.each(programsGroup, function (j, group) {\n html += $(group).html();\n });\n $itemContent.html(html);\n\n // Remove the css class from the new content copied to avoid bad functionality from the accordion.\n $itemContent.find('.elementor-tab-title').removeClass('elementor-tab-title');\n }\n });\n }\n function onMenuItemClick(e) {\n e.preventDefault();\n e.stopPropagation();\n var $menuItem = $(e.currentTarget);\n var programsGroupId = $menuItem.attr('data-programs-group-id');\n if (typeof programsGroupId === 'undefined') {\n programsGroupId = $menuItem.parents('.elementor-tab-content').first().data('programs-group-id');\n }\n var $programsGroups = $('body').find('.cf-programs-group-elementor-widget');\n var $selectedProgramsGroup = $('body').find(\".cf-programs-group-elementor-widget[data-programs-group-id=\\\"\".concat(programsGroupId, \"\\\"]\"));\n var isMobile = $('body').attr('data-elementor-device-mode') === 'mobile';\n $programsGroups.hide();\n $selectedProgramsGroup.show();\n\n // If there is a programs group selected, check to see if any of the program items is already active.\n if ($selectedProgramsGroup.length > 0) {\n var $prevSelectedProgramFromGroup = $selectedProgramsGroup.find('.cf-title.elementor-active');\n\n // If a program item is already active, trigger a click event over it.\n if ($prevSelectedProgramFromGroup.length > 0) {\n if (!isMobile) {\n $prevSelectedProgramFromGroup.trigger('click');\n }\n } else {\n // If there is no program item already active, select the first one found and click it.\n var $firstProgramFromGroup = $($selectedProgramsGroup.get(0)).find('.cf-program-item:eq(0) .cf-title');\n if (!isMobile) {\n $firstProgramFromGroup.trigger('click');\n }\n }\n }\n }\n function checkMobileMenu() {\n var $tabMenu = $('body').find('.cf-programs-groups-tab-menu[data-mobile-menu-css-class]');\n $tabMenu.each(function (i, el) {\n var mobileMenuCssClass = $(el).attr('data-mobile-menu-css-class');\n if (mobileMenuCssClass != '') {\n var $mobileMenu = $('body').find(\".\".concat(mobileMenuCssClass));\n var showMobileMenu = false;\n if ($mobileMenu.length > 0) {\n var $mobileMenuContainer = $mobileMenu.find('.elementor-nav-menu--dropdown .elementor-nav-menu');\n var $emptyItem = $mobileMenuContainer.find('.cf-empty');\n if ($emptyItem.length > 0) {\n $(el).find('> ul > li.cf-item > .cf-title').each(function (i, item) {\n var $newMenuItem = $emptyItem.clone().removeClass('cf-empty');\n var $newTabItem = $(item).clone();\n $newTabItem.html($newTabItem.text());\n $newMenuItem.html($newTabItem[0].outerHTML);\n $newMenuItem.appendTo($mobileMenuContainer);\n showMobileMenu = true;\n });\n }\n }\n if (showMobileMenu) {\n $mobileMenu.removeClass('elementor-hidden-phone');\n }\n }\n });\n }\n})(jQuery);\n(function ($) {\n 'use strict';\n\n var firstTimeProgramClick = true;\n $(window).on('elementor/frontend/init', function () {\n // Add 'click' action for all program items inside the programs groups.\n $('body').on('click', '.cf-programs-group-elementor-widget a.cf-title', onProgramClick);\n\n // Add 'click' action for all program items inside the tabs' content elements (mobile).\n $('body').on('click', '.cf-programs-groups-tab-menu .cf-program-item a.cf-title', onProgramClick);\n $('body').on('click', '.cf-program-details-btn-close', onProgramDetailsPopupClose);\n\n // Check each programs group to see if there is a relation with a tab menu.\n checkProgramsGroups();\n\n // Check what is the current active program and click it.\n checkActiveProgram();\n\n // Check and see if the program items must be added in a mobile menu.\n checkMobileMenu();\n });\n function onProgramClick(e) {\n e.preventDefault();\n e.stopPropagation();\n var $programItem = $(e.currentTarget);\n var $programsGroup = $programItem.closest('[data-programs-group-id]');\n var programCode = $programItem.attr('data-program-code');\n var outputId = $programItem.attr('data-program-output-id');\n\n //firstTimeProgramClick = false;\n\n var programsGroupId = $programsGroup.attr('data-programs-group-id');\n if (typeof programsGroupId === 'undefined') {\n programsGroupId = $menuItem.parents('.elementor-tab-content').first().data('programs-group-id');\n }\n var $container = $programItem.closest('.cf-programs-group-elementor-widget');\n var isMobile = $('body').attr('data-elementor-device-mode') === 'mobile';\n var hasAdminBar = jQuery('body').hasClass('admin-bar');\n if ($container.length === 0) {\n $container = $programItem.closest('.cf-programs-groups-tab-menu');\n }\n var $programDetails = $container.find(\".cf-program-details[data-program-code='\".concat(programCode, \"']\"));\n\n // Get the Program Details html and render it in the output widget.\n var $outputContainer = $(\".cf-program-details-output-widget[data-program-details-output-id='\".concat(outputId, \"']\"));\n var $outputWrapper = $outputContainer.closest('.elementor-widget-cf-program-details-output');\n var $btnClose = $outputWrapper.siblings('.cf-program-details-btn-close');\n $outputContainer.html($programDetails.html());\n if (isMobile) {\n $outputWrapper.show();\n $outputContainer.scrollTop(0);\n $btnClose.show();\n setTimeout(function () {\n $outputWrapper.addClass('toggle-output');\n }, 100);\n $('body').addClass('mobile-open');\n }\n\n // Deactivate the previous program items, and activate the selected one.\n if (programsGroupId !== null && programsGroupId != '') {\n $('body').find(\".cf-programs-group-elementor-widget[data-programs-group-id=\".concat(programsGroupId, \"] a.cf-title\")).removeClass('elementor-active');\n } else {\n $('body').find(\".cf-programs-group-elementor-widget[data-programs-group-id] a.cf-title\").removeClass('elementor-active');\n }\n $('body').find('.cf-programs-groups-tab-menu .cf-program-item a.cf-title').removeClass('elementor-active');\n $programItem.addClass('elementor-active');\n\n // Scroll to anchor.\n if (!isMobile) {\n var deltaTop = 10;\n if (hasAdminBar) {\n deltaTop += $('#wpadminbar').height();\n }\n\n //if (!firstTimeProgramClick && $programItem.length) {\n // $('html, body').animate({ \n // scrollTop: $($programItem.attr('href')).offset().top - deltaTop\n // }, 500);\n //}\n\n if (!firstTimeProgramClick) {\n $('html, body').animate({\n scrollTop: $($programItem.attr('href')).offset().top - deltaTop\n }, 500);\n }\n }\n }\n function onProgramDetailsPopupClose(e) {\n e.preventDefault();\n e.stopPropagation();\n var $btnClose = $(e.currentTarget);\n var $outputWrapper = $btnClose.siblings('.elementor-widget-cf-program-details-output');\n $('body').removeClass('mobile-open');\n $outputWrapper.removeClass('toggle-output');\n $btnClose.hide();\n }\n function checkProgramsGroups() {\n var $programsGroups = $('body').find('.cf-programs-group-elementor-widget');\n\n // Take each programs group and try to find a coresponding tab item. If there is no one, force displaying the programs group on mobile.\n $programsGroups.each(function (i, group) {\n var programsGroupId = $(group).attr('data-programs-group-id');\n if (programsGroupId !== '') {\n var $tabMenu = $('body').find(\".cf-programs-groups-tab-menu .cf-item .cf-title[data-programs-group-id='\".concat(programsGroupId, \"']\"));\n if ($tabMenu.length === 0 && group.style.display !== 'none') {\n $(group).addClass('show-on-mobile');\n }\n }\n });\n }\n function checkActiveProgram() {\n if ($('body').attr('data-elementor-device-mode') !== 'mobile') {\n $('body').find('.cf-programs-group-elementor-widget a.cf-title.elementor-active[data-program-code]:eq(0)').trigger('click');\n firstTimeProgramClick = false;\n }\n }\n function checkMobileMenu() {\n var $programsGroup = $('body').find('.cf-programs-group-elementor-widget[data-mobile-menu-css-class]');\n $programsGroup.each(function (i, el) {\n var mobileMenuCssClass = $(el).attr('data-mobile-menu-css-class');\n if (mobileMenuCssClass != '') {\n var $mobileMenu = $('body').find(\".\".concat(mobileMenuCssClass));\n var showMobileMenu = false;\n if ($mobileMenu.length > 0) {\n var $mobileMenuContainer = $mobileMenu.find('.elementor-nav-menu--dropdown .elementor-nav-menu');\n var $emptyItem = $mobileMenuContainer.find('.cf-empty');\n if ($emptyItem.length > 0) {\n $(el).find('> ul.cf-programs-list > li.cf-program-item > .cf-title').each(function (i, item) {\n var $newMenuItem = $emptyItem.clone().removeClass('cf-empty');\n var $newProgramItem = $(item).clone();\n $newProgramItem.html($newProgramItem.text());\n $newMenuItem.html($newProgramItem[0].outerHTML);\n $newMenuItem.appendTo($mobileMenuContainer);\n showMobileMenu = true;\n });\n }\n }\n if (showMobileMenu) {\n $mobileMenu.removeClass('elementor-hidden-phone');\n }\n }\n });\n }\n})(jQuery);\n\n/*\n * This is an override of the Sticky plugin made by Elementor team.\n * Add relative sticky for menu anchor widgets.\n *\n * Original Path: elementor-pro/assets/js/lib/sticky/jquery.sticky.js\n *\n */\n\n(function ($) {\n var CF_Sticky = function CF_Sticky(element, userSettings) {\n var $element = $(element),\n isSticky = false,\n isFollowingParent = false,\n isReachedEffectsPoint = false,\n elements = {},\n settings,\n relativeOffset = 0;\n var defaultSettings = {\n to: 'top',\n offset: 0,\n initialOffset: userSettings.offset ? userSettings.offset : 0,\n effectsOffset: 0,\n parent: false,\n classes: {\n sticky: 'sticky',\n stickyActive: 'sticky-active',\n stickyEffects: 'sticky-effects',\n spacer: 'sticky-spacer'\n }\n };\n var initSettings = function initSettings() {\n settings = jQuery.extend(true, defaultSettings, userSettings);\n };\n var initElements = function initElements() {\n $element = $(element).addClass(settings.classes.sticky);\n elements.$window = $(window);\n if (settings.parent) {\n if (settings.parent === 'parent') {\n elements.$parent = $element.parent();\n } else {\n elements.$parent = $element.closest(settings.parent);\n }\n }\n };\n var bindEvents = function bindEvents() {\n elements.$window.on({\n scroll: onWindowScroll,\n resize: onWindowResize\n });\n };\n var unbindEvents = function unbindEvents() {\n elements.$window.off('scroll', onWindowScroll).off('resize', onWindowResize);\n };\n var init = function init() {\n initSettings();\n resetRelativeOffset();\n initElements();\n bindEvents();\n checkPosition();\n };\n var backupCSS = function backupCSS($elementBackupCSS, backupState, properties) {\n var css = {},\n elementStyle = $elementBackupCSS[0].style;\n properties.forEach(function (property) {\n css[property] = undefined !== elementStyle[property] ? elementStyle[property] : '';\n });\n $elementBackupCSS.data('css-backup-' + backupState, css);\n };\n var getCSSBackup = function getCSSBackup($elementCSSBackup, backupState) {\n return $elementCSSBackup.data('css-backup-' + backupState);\n };\n var addSpacer = function addSpacer() {\n elements.$spacer = $element.clone().addClass(settings.classes.spacer).css({\n visibility: 'hidden',\n transition: 'none',\n animation: 'none'\n });\n $element.after(elements.$spacer);\n };\n var removeSpacer = function removeSpacer() {\n elements.$spacer.remove();\n };\n var stickElement = function stickElement() {\n backupCSS($element, 'unsticky', ['position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom']);\n var css = {\n position: 'fixed',\n width: getElementOuterSize($element, 'width'),\n marginTop: 0,\n marginBottom: 0\n };\n css[settings.to] = settings.offset;\n css[settings.to === 'top' ? 'bottom' : 'top'] = '';\n $element.css(css).addClass(settings.classes.stickyActive);\n };\n var unstickElement = function unstickElement() {\n $element.css(getCSSBackup($element, 'unsticky')).removeClass(settings.classes.stickyActive);\n };\n var followParent = function followParent() {\n backupCSS(elements.$parent, 'childNotFollowing', ['position']);\n elements.$parent.css('position', 'relative');\n backupCSS($element, 'notFollowing', ['position', 'top', 'bottom']);\n var css = {\n position: 'absolute'\n };\n css[settings.to] = '';\n css['top' === settings.to ? 'bottom' : 'top'] = 0;\n $element.css(css);\n isFollowingParent = true;\n };\n var unfollowParent = function unfollowParent() {\n elements.$parent.css(getCSSBackup(elements.$parent, 'childNotFollowing'));\n $element.css(getCSSBackup($element, 'notFollowing'));\n isFollowingParent = false;\n };\n var getElementOuterSize = function getElementOuterSize($elementOuterSize, dimension, includeMargins) {\n var computedStyle = getComputedStyle($elementOuterSize[0]),\n elementSize = parseFloat(computedStyle[dimension]),\n sides = dimension === 'height' ? ['top', 'bottom'] : ['left', 'right'],\n propertiesToAdd = [];\n if ('border-box' !== computedStyle.boxSizing) {\n propertiesToAdd.push('border', 'padding');\n }\n if (includeMargins) {\n propertiesToAdd.push('margin');\n }\n propertiesToAdd.forEach(function (property) {\n sides.forEach(function (side) {\n elementSize += parseFloat(computedStyle[property + '-' + side]);\n });\n });\n return elementSize;\n };\n var getElementViewportOffset = function getElementViewportOffset($elementViewportOffset) {\n var windowScrollTop = elements.$window.scrollTop(),\n elementHeight = getElementOuterSize($elementViewportOffset, 'height'),\n viewportHeight = innerHeight,\n elementOffsetFromTop = $elementViewportOffset.offset().top,\n distanceFromTop = elementOffsetFromTop - windowScrollTop,\n topFromBottom = distanceFromTop - viewportHeight;\n return {\n top: {\n fromTop: distanceFromTop,\n fromBottom: topFromBottom\n },\n bottom: {\n fromTop: distanceFromTop + elementHeight,\n fromBottom: topFromBottom + elementHeight\n }\n };\n };\n var stick = function stick() {\n addSpacer();\n stickElement();\n isSticky = true;\n $element.trigger('sticky:stick');\n };\n var unstick = function unstick() {\n unstickElement();\n removeSpacer();\n isSticky = false;\n $element.trigger('sticky:unstick');\n };\n var checkParent = function checkParent() {\n var elementOffset = getElementViewportOffset($element),\n isTop = settings.to === 'top';\n if (isFollowingParent) {\n var isNeedUnfollowing = isTop ? elementOffset.top.fromTop > settings.offset : elementOffset.bottom.fromBottom < -settings.offset;\n if (isNeedUnfollowing) {\n unfollowParent();\n }\n } else {\n var parentOffset = getElementViewportOffset(elements.$parent),\n parentStyle = getComputedStyle(elements.$parent[0]),\n borderWidthToDecrease = parseFloat(parentStyle[isTop ? 'borderBottomWidth' : 'borderTopWidth']),\n parentViewportDistance = isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease : parentOffset.top.fromBottom + borderWidthToDecrease,\n isNeedFollowing = isTop ? parentViewportDistance <= elementOffset.bottom.fromTop : parentViewportDistance >= elementOffset.top.fromBottom;\n if (isNeedFollowing) {\n followParent();\n }\n }\n };\n var checkEffectsPoint = function checkEffectsPoint(distanceFromTriggerPoint) {\n if (isReachedEffectsPoint && -distanceFromTriggerPoint < settings.effectsOffset) {\n $element.removeClass(settings.classes.stickyEffects);\n isReachedEffectsPoint = false;\n } else if (!isReachedEffectsPoint && -distanceFromTriggerPoint >= settings.effectsOffset) {\n $element.addClass(settings.classes.stickyEffects);\n isReachedEffectsPoint = true;\n }\n };\n var checkPosition = function checkPosition() {\n var offset = settings.offset,\n distanceFromTriggerPoint;\n if (isSticky) {\n var spacerViewportOffset = getElementViewportOffset(elements.$spacer);\n distanceFromTriggerPoint = settings.to === 'top' ? spacerViewportOffset.top.fromTop - offset : -spacerViewportOffset.bottom.fromBottom - offset;\n if (settings.parent) {\n checkParent();\n }\n if (distanceFromTriggerPoint > 0) {\n unstick();\n }\n } else {\n var elementViewportOffset = getElementViewportOffset($element);\n distanceFromTriggerPoint = settings.to === 'top' ? elementViewportOffset.top.fromTop - offset : -elementViewportOffset.bottom.fromBottom - offset;\n if (distanceFromTriggerPoint <= 0) {\n stick();\n if (settings.parent) {\n checkParent();\n }\n }\n }\n checkEffectsPoint(distanceFromTriggerPoint);\n };\n var onWindowScroll = function onWindowScroll() {\n checkPosition();\n };\n var onWindowResize = function onWindowResize() {\n if (!isSticky) {\n return;\n }\n unstickElement();\n resetRelativeOffset();\n stickElement();\n };\n var resetRelativeOffset = function resetRelativeOffset() {\n if ($element.attr('data-sticky-relative') !== null && $element.attr('data-settings')) {\n var _relativeOffset = settings.initialOffset;\n $('.elementor-sticky').filter(function () {\n var data = JSON.parse($element.attr('data-settings'));\n // Return only the elements that are sticky to the top and are above the current menu element.\n if (data && data !== '' && data.sticky && data.sticky === 'top') {\n if ($(this).css(\"position\") !== \"fixed\" && $(this).data('id') !== $element.data('id') && $(this).offset().top <= $element.offset().top) {\n _relativeOffset += $(this).height();\n }\n }\n });\n settings.offset = _relativeOffset;\n }\n };\n this.destroy = function () {\n if (isSticky) {\n unstick();\n }\n unbindEvents();\n $element.removeClass(settings.classes.sticky);\n };\n init();\n };\n window.CF_Sticky = CF_Sticky;\n $(document).ready(function () {\n $.fn.sticky = function (settings) {\n var isCommand = typeof settings === 'string';\n this.each(function () {\n var $this = $(this);\n if (!isCommand) {\n $this.data('sticky', new CF_Sticky(this, settings));\n return;\n }\n var instance = $this.data('sticky');\n if (!instance) {\n throw Error('Trying to perform the `' + settings + '` method prior to initialization');\n }\n if (!instance[settings]) {\n throw ReferenceError('Method `' + settings + '` not found in sticky instance');\n }\n instance[settings].apply(instance, Array.prototype.slice.call(arguments, 1));\n if (settings === 'destroy') {\n $this.removeData('sticky');\n }\n });\n return this;\n };\n });\n})(jQuery);\n(function ($) {\n 'use strict';\n\n var widget_type = ['cf-value-props', 'ap-value-props'];\n var settings;\n var $el;\n $(window).on('elementor/frontend/init', function () {\n if (window.elementor) {\n elementor.hooks.addAction('panel/open_editor/widget', function (panel, model, view) {\n if (widget_type.includes(model.attributes.widgetType)) {\n settings = view.getEditModel().get('settings');\n $el = panel.$el;\n $el.off('change', 'input[data-setting=\"cf_value_props_same_template\"]', onInputChange);\n $el.on('change', 'input[data-setting=\"cf_value_props_same_template\"]', onInputChange);\n $el.off('click', '.elementor-control-cf_value_props_list .elementor-repeater-add', onAddItemClick);\n $el.on('click', '.elementor-control-cf_value_props_list .elementor-repeater-add', onAddItemClick);\n }\n });\n }\n });\n function onInputChange(e) {\n var isChecked = $(e.currentTarget).is(':checked');\n checkRepeaterItems(isChecked);\n }\n function onAddItemClick(e) {\n var isChecked = $el.find('input[data-setting=\"cf_value_props_same_template\"]').is(':checked');\n checkRepeaterItems(isChecked);\n }\n function checkRepeaterItems(isChecked) {\n var control = settings.controls.cf_value_props_list;\n\n // Find the 'item_name' Model and update its value.\n $.each(settings.attributes.cf_value_props_list.models, function (i, model) {\n model.set('use_global_template', isChecked ? 'yes' : 'no');\n });\n }\n})(jQuery);\n(function ($) {\n 'use strict';\n\n $(document).ready(function () {\n if (window.elementor) {\n elementor.conditions.compare = elementorConditionsCompare;\n }\n });\n\n /**\n * Override the compare function from Elementor Conditions Class and\n * add a new compare type named 'collection'. This will search into\n * all models instances received on 'leftValue' and check if all conditions\n * from 'rightValue' array are checked.\n *\n * Ex for 'rightValue' array:\n * [\n * [\n * 'attr_property' => 'property1',\n * 'operator' => '==',\n * 'attr_value' => 'value1',\n * ],\n * [\n * 'attr_property' => 'property2',\n * 'operator' => '!=',\n * 'attr_value' => 'value2',\n * ]\n * ]\n *\n * @return boolean\n */\n function elementorConditionsCompare(leftValue, rightValue, operator) {\n switch (operator) {\n case '==':\n return leftValue == rightValue;\n case '!=':\n return leftValue != rightValue;\n case '!==':\n return leftValue !== rightValue;\n case 'in':\n return -1 !== rightValue.indexOf(leftValue);\n case '!in':\n return -1 === rightValue.indexOf(leftValue);\n case 'contains':\n return -1 !== leftValue.indexOf(rightValue);\n case '!contains':\n return -1 === leftValue.indexOf(rightValue);\n case '<':\n return leftValue < rightValue;\n case '<=':\n return leftValue <= rightValue;\n case '>':\n return leftValue > rightValue;\n case '>=':\n return leftValue >= rightValue;\n case 'collection':\n if (leftValue.models && leftValue.models.length > 0) {\n var valid = false;\n\n // Pass through all models intances and check all conditions.\n $.each(leftValue.models, function (index, model) {\n if (model.attributes) {\n var isTrue = true;\n\n // Check if all conditions pass validation\n $.each(rightValue, function (j, condition) {\n var attrProperty = condition['attr_property'];\n var attrValue = condition['attr_value'];\n var conditionOperator = condition['operator'];\n if (model.attributes[attrProperty] && elementorConditionsCompare(model.attributes[attrProperty], attrValue, conditionOperator) && isTrue) {\n isTrue = true;\n } else {\n isTrue = false;\n }\n });\n if (isTrue) {\n valid = true;\n }\n }\n });\n return valid;\n }\n return false;\n default:\n return leftValue === rightValue;\n }\n }\n})(jQuery);"],"names":["$","settings","$el","onInputChange","e","checkRepeaterItems","currentTarget","is","onAddItemClick","find","isChecked","controls","program_cards_list","each","attributes","models","i","model","set","window","on","elementor","hooks","addAction","panel","view","widgetType","getEditModel","get","off","jQuery","document","ready","fn","digits","this","text","replace","transfer_credits_slider","transfer_credits_slider_range_min","val","transfer_credits_slider_range_max","transfer_credits_slider_value","total_credit_hours","credit_hour_price","full_tuition_price","length","attr","transfer_credits_slider_range_value","html","click","ch_output_value_text","max","parseInt","min","interval","setInterval","toggleHandler","elementorFrontend","elementsHandler","clearInterval","getHandler","init","$expandItem","$collapseItem","targetCSSId","targetCSSClass","targetSelector","opened","concat","css","$target","preventDefault","stop","slideToggle","show","hide","event","mainelement","path_clicked","parent","onButtonClick","$container","closest","$expandItems","$collapseItems","style","display","$targetTitleItems","$targetContentItems","removeClass","slideUp","addClass","slideDown","isFaq","offset","hash","idx","url","location","indexOf","substring","sticky","outerHeight","position","top","animate","scrollTop","first","trigger","next","modalInterval","onMobileMenuIconClick","stopPropagation","toggleClass","onMobileMenuItemClick","programsGroupId","programCode","parents","data","$tabMenuItem","setTimeout","$programItem","onGeneralBtnClick","currentProgramCode","programsCode","item","code","push","pageProgramCode","checkProgramsOnPopup","checkProgramsOnLandingPage","onProgramBtnClick","arguments","undefined","$modal","$popupForm","$programsList","time","option","$option","$optgroup","prop","toLowerCase","children","remove","$landingPageForm","addEventListener","headerHeight","height","setOffset","console","log","scroller","menus","scrollTo","anchorId","$anchors","$adminBar","$sticky","isMobile","total","anchors","$anchor","$item","scroll","$anchorsMenu","anchorsMenuHeight","menu","menuTopPos","parseFloat","selectedAnchorIndex","index","anchor","removeAttr","optionvalue","optiontext","parent_div","scrollLeft","innerWidth","scrollWidth","hasClass","scrolling_tables","getElementsByClassName","scrolling_div","offsetWidth","be_compare_container","getElementById","href","onMenuItemClick","$menuItem","$programsGroups","$selectedProgramsGroup","$prevSelectedProgramFromGroup","$firstProgramFromGroup","itemsTitle","itemsContent","$itemContent","programsGroup","j","group","el","showMobileMenu","$mobileMenuContainer","$emptyItem","mobileMenuCssClass","$mobileMenu","$newMenuItem","clone","$newTabItem","outerHTML","appendTo","firstTimeProgramClick","onProgramClick","$programsGroup","outputId","hasAdminBar","$programDetails","$outputContainer","$outputWrapper","$btnClose","siblings","deltaTop","onProgramDetailsPopupClose","$newProgramItem","CF_Sticky","element","userSettings","$element","isSticky","isFollowingParent","isReachedEffectsPoint","elements","defaultSettings","to","initialOffset","effectsOffset","classes","stickyActive","stickyEffects","spacer","initSettings","extend","initElements","$window","$parent","bindEvents","onWindowScroll","resize","onWindowResize","backupCSS","$elementBackupCSS","backupState","properties","elementStyle","forEach","property","getCSSBackup","$elementCSSBackup","addSpacer","$spacer","visibility","transition","animation","after","removeSpacer","stickElement","width","getElementOuterSize","marginTop","marginBottom","unstickElement","followParent","unfollowParent","$elementOuterSize","dimension","includeMargins","computedStyle","getComputedStyle","elementSize","sides","propertiesToAdd","boxSizing","side","getElementViewportOffset","$elementViewportOffset","windowScrollTop","elementHeight","viewportHeight","innerHeight","distanceFromTop","topFromBottom","fromTop","fromBottom","bottom","stick","unstick","checkParent","borderWidthToDecrease","parentViewportDistance","elementOffset","isTop","parentOffset","parentStyle","checkEffectsPoint","distanceFromTriggerPoint","checkPosition","elementViewportOffset","spacerViewportOffset","resetRelativeOffset","_relativeOffset","filter","JSON","parse","destroy","isCommand","$this","instance","Error","ReferenceError","apply","Array","prototype","slice","call","removeData","widget_type","cf_value_props_list","includes","elementorConditionsCompare","leftValue","rightValue","operator","valid","isTrue","condition","attrProperty","conditions","compare"],"mappings":"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"}