{"version":3,"file":"app.min.js","sources":["app.js"],"sourcesContent":["\"use strict\";\n\n/* This is a script for admission additional info popup */\njQuery(document).ready(function () {\n jQuery(\".select-adm-popup select\").on(\"change\", function () {\n if (jQuery(this).find(\":selected\").val() != \"\") {\n //var selected_program = jQuery(this).attr(\"option\", \"selected\").val();\n var selectedOptionText1 = jQuery(\"option:selected\", this).val();\n window.open(window.location.origin + \"/apply/?d=\" + selectedOptionText1, \"_self\");\n }\n });\n});\njQuery(window).on(\"load\", function () {\n if (jQuery(\".select-adm-popup select\").find(\":selected\").val() != \"\") {\n var selectedOptionText1 = jQuery(\".select-adm-popup select\").find(\":selected\").text();\n jQuery(\".adm-info-popup span\").html(selectedOptionText1 + \" online \");\n }\n});\njQuery(document).ready(function () {\n ShowAndHideFaqs();\n applyPageShowHide();\n initialize();\n var gaCode = getCookie(\"_ga\");\n jQuery('.elementor-search-form__toggle').click(function (event) {\n event.preventDefault();\n if (event.target.className == 'fas fa-search') {\n jQuery('.elementor-search-form__toggle').html('');\n jQuery('.dialog-close-button').html('');\n } else {\n jQuery(\".custom-search\").css('background', 'none');\n jQuery('.dialog-close-button').html('');\n jQuery('.elementor-search-form__toggle').html('');\n }\n });\n\n // On click on mega menu is open search search box hide.\n jQuery('.mega-toggle-animated').on('click', function () {\n if (jQuery('.mega-menu-toggle').hasClass('mega-menu-open')) {\n jQuery('.elementor-search-form__toggle i').removeClass('eicon-close').addClass('fas fa-search');\n jQuery('.elementor-search-form__container').removeClass('elementor-search-form--full-screen elementor-lightbox');\n } else {\n jQuery('.elementor-search-form__toggle i').removeClass('eicon-close').addClass('fas fa-search');\n jQuery('.elementor-search-form__container').removeClass('elementor-search-form--full-screen elementor-lightbox');\n }\n });\n jQuery(\".linkbox-left:empty\").closest('div.linkbox').hide();\n\n //set form button select to current program code\n jQuery(document).on('click', '.apply-now-popup, .request-info-popup-LP', function (event) {\n var code = jQuery(this).attr('data-program-code');\n console.log(code);\n popupformSelectOption(code);\n });\n jQuery('.dialog-lightbox-close-button').on('click', function (event) {\n jQuery('.elementor-search-form').submit();\n });\n jQuery('.cf-programs-groups-tab-menu .elementor-tab-title').on('click', function (event) {\n if (jQuery(\"body\").hasClass('mobile')) {\n jQuery('html, body').animate({\n scrollTop: jQuery('#degree-showcase-main').offset().top\n }, \"800\");\n }\n });\n jQuery('.cf-program-details-btn-close .elementor-button').on('click', function (event) {\n if (jQuery(\"body\").hasClass('mobile')) {\n jQuery('html, body').animate({\n scrollTop: jQuery('#degree-showcase-main').offset().top\n }, \"800\");\n }\n });\n function searchResults() {\n var searchUrlToNavigate = \"/search/?q\";\n var queryStringParam = jQuery('.elementor-search-form__input').val();\n window.location = searchUrlToNavigate + queryStringParam;\n }\n\n //for some reason the bind event is not firing in chrome, so added this here for apply page (non ajax form)\n jQuery('form li').each(function (index) {\n //console.log('is ready firing?');\n var mylabel = jQuery(this).children('.gfield_label');\n var myinput = jQuery(this).children('div').children('input');\n var myselect = jQuery(this).children('div').children('select');\n var mytextarea = jQuery(this).children('div').children('textarea');\n jQuery(mylabel).insertAfter(myinput);\n jQuery(mylabel).insertAfter(mytextarea);\n jQuery(mylabel).insertAfter(myselect);\n\n //email field \n var myemailinput = jQuery(this).children('div').children('div').children('input');\n jQuery(mylabel).insertAfter(myemailinput);\n });\n});\njQuery(window).resize(function () {\n //var win = jQuery(this); //this = window\n if (window.screen.width > 800) {\n jQuery('.cf-programs-groups-tab-menu ul li.cf-item:first-child a[href=\"business\"]').addClass('elementor-active');\n jQuery('.program-section div[data-programs-group-id=\"business\"]').css('display', 'block', 'important');\n }\n});\nfunction getCookie(c_name) {\n var i,\n x,\n y,\n ARRcookies = document.cookie.split(\";\");\n for (i = 0; i < ARRcookies.length; i++) {\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf(\"=\"));\n y = ARRcookies[i].substr(ARRcookies[i].indexOf(\"=\") + 1);\n x = x.replace(/^\\s+|\\s+$/g, \"\");\n if (x == c_name) {\n return unescape(y);\n }\n }\n}\n\n//WCAG\njQuery(document).on('gform_post_render', function (e, form_id) {\n if (jQuery('div.validation_error').length > 0) {\n jQuery('.validation_message').each(function () {\n var message_id = jQuery(this).attr('id');\n var previous_div = jQuery(this).prev().children();\n jQuery(previous_div).attr(\"aria-describedby\", message_id);\n });\n }\n //this is we can combine forms - hiding this dropdown on landing pages\n if (jQuery('body').hasClass('landing-page')) {\n jQuery('.hear [value=\"Online\"]').attr('selected', true);\n jQuery('li.hear').hide();\n }\n jQuery(\".gfield_select\").attr('value', '');\n jQuery('.ginput_container_select .gfield_label').hide();\n jQuery('.gfield_select').change(function () {\n var $currEl = jQuery(this);\n //jQuery('.gfield_label', $currEl.parent()).css({opacity: 1});\n var selectOptionValue = jQuery('option:selected', this);\n jQuery(\".gfield_select\").attr('value', selectOptionValue[0].value);\n if (selectOptionValue[0].value) jQuery('.gfield_label', $currEl.parent()).show();else jQuery('.gfield_label', $currEl.parent()).hide();\n });\n\n //selectBoxAnimated();\n var isDisabled = jQuery('.popup-apply-form-LP .gfield input').is(':disabled');\n if (isDisabled) jQuery('.popup-apply-form-LP .gfield input').removeAttr('disabled');else jQuery('.popup-apply-form-LP .gfield input').removeAttr('disabled');\n\n /* Popup form email field - move the label in the same div as the input in order for float label to work - on validation*/\n jQuery('form li').each(function (index) {\n var mylabel = jQuery(this).children('.gfield_label');\n var myinput = jQuery(this).children('div').children('input');\n var myselect = jQuery(this).children('div').children('select');\n var mytextarea = jQuery(this).children('div').children('textarea');\n jQuery(mylabel).insertAfter(myinput);\n jQuery(mylabel).insertAfter(mytextarea);\n jQuery(mylabel).insertAfter(myselect);\n\n //email field\n if (jQuery(this).hasClass('gfield_ap_crm_email')) {\n var myemailinput = jQuery(this).children('div').children('label');\n jQuery(jQuery(this).children('div').children('div').children('input')).insertBefore(myemailinput);\n }\n });\n});\n\n//WCAG\njQuery(document).on('change', '.select-for-apply-page select', function (e) {\n var selectedOptionText = jQuery('option:selected', this).text();\n jQuery('.apply-lead-form input').each(function () {\n var placeholder = jQuery(this).attr('placeholder');\n jQuery(this).attr({\n \"aria-label\": selectedOptionText + ' Track Application - Student ' + placeholder\n });\n });\n jQuery('.apply-lead-form select').each(function () {\n var placeholder = jQuery(\".apply-lead-form select option:selected\").text();\n jQuery(this).attr({\n \"aria-label\": selectedOptionText + ' Track Application - Student ' + placeholder\n });\n });\n});\n\n// WCAG - add all the elements inside modal which you want to make focusable (keeps tab inside of modal)\njQuery(document).on('click keypress', '.request-info-popup, .elementor-button', function (e) {\n var modal = document.querySelector('.elementor-popup-modal'); // select the modal by it's id\n var focusableElements = jQuery(modal).find('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n var firstFocusableElement = focusableElements.first(); // get first element to be focused inside modal\n var lastFocusableElement = focusableElements.last(); // get last element to be focused inside modal\n\n /*set focus on first input*/\n firstFocusableElement.focus();\n\n /*redirect last tab to first input*/\n lastFocusableElement.on('keydown', function (e) {\n if (e.which === 9 && !e.shiftKey) {\n e.preventDefault();\n firstFocusableElement.focus();\n }\n });\n\n /*redirect first shift+tab to last input*/\n firstFocusableElement.on('keydown', function (e) {\n if (e.which === 9 && e.shiftKey) {\n e.preventDefault();\n lastFocusableElement.focus();\n }\n });\n\n //this is we can combine forms - hiding this dropdown on landing pages\n if (jQuery('body').hasClass('landing-page')) {\n jQuery('.hear [value=\"Online\"]').attr('selected', true);\n jQuery('li.hear').hide();\n }\n\n //for some reason the bind event is not firing in chrome, so added this here for apply page (non ajax form)\n jQuery('form li').each(function (index) {\n //console.log('is ready firing?');\n var mylabel = jQuery(this).children('.gfield_label');\n var myinput = jQuery(this).children('div').children('input');\n var myselect = jQuery(this).children('div').children('select');\n var mytextarea = jQuery(this).children('div').children('textarea');\n jQuery(mylabel).insertAfter(myinput);\n jQuery(mylabel).insertAfter(mytextarea);\n jQuery(mylabel).insertAfter(myselect);\n\n //email field \n var myemailinput = jQuery(this).children('div').children('div').children('input');\n jQuery(mylabel).insertAfter(myemailinput);\n });\n});\n\n//wcag edits\njQuery(document).on('click', '.elementor-button', function (e) {\n jQuery('.dialog-close-button').attr({\n role: \"button\",\n \"aria-label\": \"Close dialog\"\n });\n});\nfunction ShowAndHideFaqs() {\n jQuery('#showHideFaqs').click(function () {\n if (jQuery('#showHideFaqs').text() == 'Close All [-]') {\n jQuery('.elementor-widget-container .elementor-tab-title').removeClass('elementor-active');\n jQuery('.elementor-widget-container .elementor-tab-content').hide();\n jQuery('#showHideFaqs').text('Expand All [+]');\n } else {\n jQuery('.elementor-widget-container .elementor-tab-title').addClass('elementor-active');\n jQuery('.elementor-widget-container .elementor-tab-content').show();\n jQuery('#showHideFaqs').text('Close All [-]');\n }\n });\n}\n\n//landing page collapse first program tab\njQuery(window).on('load', function () {\n initialize();\n});\n\n//validation after submit for input\njQuery(document).on('focusout', '.ap-lead-form input', function (e) {\n if (jQuery(this).val()) {\n jQuery(this).parent().parent().removeClass('gfield_error');\n jQuery(this).parent().next('div').hide('validation_message');\n }\n});\n\n//validation after submit for select\njQuery(document).on('change', '.ap-lead-form select', function (e) {\n jQuery(this).parent().parent().removeClass('gfield_error');\n jQuery(this).parent().next('div').hide('validation_message');\n});\n\n//for program poup so that select option matches program clicked on\nvar modalInterval;\nfunction popupformSelectOption(programsCode) {\n //jQuery('.cf-programs-list select').val(code);\n var currentProgramCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var $modal = jQuery('body').find('.elementor-popup-modal');\n var $popupForm = $modal.find('.ap-lead-form');\n var $programsList = $popupForm.find('.cf-programs-list select');\n var time = 50; // Check to see if the modal's content is loaded.\n\n //console.log(currentProgramCode);\n\n if ($popupForm.length) {\n if ($programsList.length) {\n time = 0;\n }\n } // Wait until the modal's content is full loaded.\n\n clearInterval(modalInterval);\n modalInterval = setInterval(function () {\n if (time !== 0) {\n $modal = jQuery('body').find('.elementor-popup-modal');\n $popupForm = $modal.find('.ap-lead-form');\n $programsList = $popupForm.find('.cf-programs-list select');\n }\n if ($popupForm.length) {\n if ($programsList.length) {\n clearInterval(modalInterval); // Go through all the Program Options and check to see if the program must be removed from the list, or not.\n\n if (programsCode) {\n $programsList.find(\"option[value=\".concat(programsCode, \"]\")).attr('selected', 'selected');\n }\n }\n }\n }, time);\n}\n\n/*----- Apply Page Text hide -------*/\nfunction applyPageShowHide() {\n jQuery(\".apply-page-form-footer\").hide();\n jQuery(\".select-for-apply-page\").change(function () {\n if (jQuery(\"option:selected\", this).text() == \"Program of Interest*\") jQuery(\".apply-page-form-footer\").hide();else jQuery(\".apply-page-form-footer\").show();\n if (jQuery(\"option:selected\", this).val() == \"SUU-B-RNBSN\") jQuery('.rn-license').show();else jQuery('.rn-license').hide();\n var selectedOptionText = jQuery(\"option:selected\", this).text();\n jQuery(\".admission_requirements span\").html(selectedOptionText + \" online \");\n }).trigger(\"change\");\n}\njQuery(document).on('gform_page_loaded', function (event, form_id, current_page) {\n var selectedOptionText = jQuery('.select-for-apply-page option:selected').text();\n jQuery('.admission_requirements span').html(selectedOptionText + \" online \");\n if (jQuery(\"option:selected\", this).val() == \"SUU-B-RNBSN\") jQuery('.rn-license').show();else jQuery('.rn-license').hide();\n});\nfunction getUrlParameter(name) {\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\n var results = regex.exec(location.search);\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n}\n\n/* move the label in the same div as the input in order for float label to work - on validation*/\njQuery(document).bind('gform_post_render', function () {\n jQuery('form li').each(function (index) {\n var mylabel = jQuery(this).children('.gfield_label');\n var myinput = jQuery(this).children('div').children('input');\n var myselect = jQuery(this).children('div').children('select');\n var mytextarea = jQuery(this).children('div').children('textarea');\n jQuery(mylabel).insertAfter(myinput);\n jQuery(mylabel).insertAfter(mytextarea);\n jQuery(mylabel).insertAfter(myselect);\n\n //email field \n var myemailinput = jQuery(this).children('div').children('div').children('input');\n jQuery(mylabel).insertAfter(myemailinput);\n });\n});\nfunction initialize() {\n jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title\").removeClass(\"elementor-active\");\n jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title\").attr(\"aria-expanded\", \"false\");\n jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title\").first().addClass(\"initial\");\n jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title\").first().attr(\"aria-expanded\", \"true\");\n jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title.initial\").addClass(\"elementor-active\");\n jQuery(\".cf-programs-group-elementor-widget ul\").each(function () {\n if (jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title\").length === 1) {\n jQuery(\".cf-programs-groups-tab-menu .elementor-tab-title\").addClass(\"elementor-active\");\n jQuery(\".cf-programs-groups-tab-menu .cf-content\").show();\n jQuery(\".cf-programs-groups-tab-menu .cf-content\").addClass(\"elementor-active\");\n } else jQuery(this).children(\"li\").removeClass(\"elementor-active\");\n jQuery(this).children(\"li\").attr(\"aria-expanded\", \"false\");\n });\n jQuery(\".cf-programs-group-elementor-widget ul:first\").each(function () {\n jQuery(this).children(\"li:first\").addClass(\"initial\");\n jQuery(this).children(\"li:first\").attr(\"aria-expanded\", \"true\");\n /*jQuery(\".cf-programs-groups-tab-menu .cf-content\").show(); \n jQuery(\".cf-programs-groups-tab-menu .cf-content\").addClass(\"elementor-active\");*/\n });\n jQuery(\".cf-programs-group-elementor-widget .initial\").addClass(\"elementor-active\");\n jQuery(\".cf-programs-groups-tab-menu ul li:first-child .cf-content\").show();\n}\n/*\n * jquery.usmap-program-options.js\n * Use this file to set the parameters for the university program map, or edit for your own map.\n * -- Michael Tenney\n *\n * @license The Unlicense, http://unlicense.org/\n * @version 0.4\n * @author Michael Tenney\n * @created 2017-05-03\n * @updated 2017-11-01\n *\n * Notes 0.3:\n * - Color changes.\n * - Added ability to change h2 based on user activity.\n * - Program availability updates\n *\n * Notes 0.4:\n * - Change Heading to match program name.\n *\n * Notes 0.5\n * - Make States Clickable \n */\n(function ($) {\n jQuery(document).ready(function ($) {\n jQuery.noConflict();\n var program_map = document.getElementById('map');\n if (!program_map) return;\n var notMobile = $(window).width() > 800;\n $(window).on('resize', function () {\n notMobile = $(this).width() > 800;\n });\n\n // ----------------------------------------------- //\n // Create the States Arrays for University Program //\n // ----------------------------------------------- //\n\n //Set array for all states, so that selected states can be cleared when seperate program is selected\n var statesToChoose = 0;\n var programsAvailable = 0;\n var allStates = ['AK', 'AL', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'];\n\n // Unavailable States for Partner Program\n\n var programsObject = {\n SUUMMBAARTADM: [],\n SUUMMBAAVIAMGMT: [],\n SUUMMBADATAANLTCS: [],\n SUUMMBACBRSEC: [],\n SUUMMBAFIN: [],\n SUUMMBAGEN: [],\n SUUMMBAHLTHADM: [],\n SUUMMBALDR: [],\n SUUMMBAMKT: [],\n SUUMMBAPRJMGMT: [],\n SUUMMSBUSANLTCS: [],\n SUUMMSNMBADL: ['AL', 'DE', 'DC', 'MI', 'MN', 'NC', 'ND', 'NY', 'OK', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'],\n SUUMMSCSIACBROPS: [],\n SUUMMSCSIACBRSECSTRAT: [],\n SUUMMSCSIAHLTHADM: [],\n SUUMMSCSIAMGMT: [],\n SUUMMAARTSADM: [],\n SUUMMAPROCOM: [],\n SUUMMAPROCOMDGTMDA: [],\n SUUMMAPROCOMSTRATCOM: [],\n SUUMMMMUSICTECHFILMMUSICTECH: [],\n SUUMMMMUSICTECHGMNGAUDIO: [],\n SUUMMMMUSICTECHPT: [],\n SUUMMMMUSICTECH: [],\n SUUBRNBSN: ['AL', 'DE', 'DC', 'MI', 'MN', 'NC', 'ND', 'NY', 'OK', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'],\n SUUBRNMSN: ['AL', 'DE', 'DC', 'MI', 'MN', 'NC', 'ND', 'NY', 'OK', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'],\n SUUMMSNFNP: ['AK', 'AL', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'],\n SUUMMSNLEAD: ['AL', 'DE', 'DC', 'MI', 'MN', 'NC', 'ND', 'NY', 'OK', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'],\n SUUMMSNLEADADMCSIA: ['AL', 'DE', 'DC', 'MI', 'MN', 'NC', 'ND', 'NY', 'OK', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'],\n SUUCAVIAMGMT: [],\n SUUCBUSANLTCS: [],\n SUUCFIN: [],\n SUUCHLTHADM: [],\n SUUCMKT: [],\n SUUCLEAD: [],\n SUUCPRJMGMT: [],\n SUUCAUDIOENG: [],\n SUUMMBAHR: [],\n SUUCNURLEADADM: [],\n SUUCHR: []\n };\n\n // -------------- //\n // Color States //\n // -------------- //\n\n $('#map').usmap({\n 'stateStyles': {\n //Color States Available for Program\n 'fill': 'rgba(233,29,45,1.00)',\n //state body\n 'stroke': 'rgba(255,255,255,1.00)' //state border color\n },\n 'stateInitStyles': {\n //Color default State values on page load\n 'fill': 'silver',\n //state body\n \"stroke-width\": 0,\n //state borders width\n 'stroke': 'rgba(255,255,255,1.00)' //state border color\n },\n 'stateSpecificStyles': {\n 'US': {\n 'fill': 'white',\n //state body\n \"stroke-width\": 1,\n //state borders width\n 'stroke': 'rgba(255,255,255,1.00)' //state border color\n }\n },\n 'stateHoverStyles': {\n //Color States Not Available for Program\n 'fill': 'rgb(210, 210, 210)'\n },\n 'stateInitAnimation': false,\n 'stateHoverAnimation': 500\n });\n\n //Disable Map Clicks on Mobile\n $('#map').on('usmapclick', function (event, data) {\n console.log(\"Map Clicked\");\n console.log(\"notMobile: \" + notMobile);\n if (notMobile) {\n clickedInfo(event, data);\n }\n });\n $('.stateName').click(function () {\n var stateIden = $(this).attr('id');\n if (notMobile) {\n clickedInfo(stateIden, stateIden, stateIden);\n }\n });\n\n // ------------------ //\n // Height Scale Fix //\n // ------------------ //\n\n $('#map').css('height', 'auto');\n $('#map svg').removeAttr('height');\n\n // ------------------------- //\n // Program Selection Logic //\n // ------------------------- //\n\n var schoolFunction = function schoolFunction(event) {\n //When School Program is selected do the following -\n\n var schoolOption = programsObject[getSchoolOption]; //Parse string data as reference to program array\n var stateHeader = 'states to choose from:';\n clearStates('unselectedProgram');\n\n //Remove Style for Selected Program Link\n $('.schoolOption').removeClass('selectedLink');\n for (var q = 0; q <= allStates.length; q++) {\n $('#' + allStates[q]).addClass('selectedLink');\n //console.log(\"Remove Style for Selected Program Link\" + statesToChoose);\n }\n //Change Colors of unavailable States for currently selected program\n for (var v = 0; v < schoolOption.length; v++) {\n $('#map').usmap('trigger', schoolOption[v], 'selectedProgram', event);\n //console.log(\"Change Colors of unavailable States for currently selected program\" + statesToChoose);\n }\n\n // Add Style for Selected Program Link & calculate allowed states\n $('#' + getSchoolOption).addClass('selectedLink');\n for (var p = 0; p <= schoolOption.length; p++) {\n $('#' + schoolOption[p]).removeClass('selectedLink');\n statesToChoose = 52 - p;\n if (statesToChoose == 1) {\n stateHeader = 'state to choose from:';\n } else {\n stateHeader = 'states and/or territories to choose from:';\n }\n }\n var courseName = $(\".schoolOption.selectedLink\").text();\n //console.log(courseName);\n\n // Display Allowed number of states in Body of Page, and change page heading.\n $(\".statenum-after\").empty();\n $(\".statenum\").empty();\n $(\".map-header1\").empty();\n $(\".map-header1\").append(courseName);\n $(\".statenum\").append(statesToChoose);\n $(\".statenum-after\").append(stateHeader);\n };\n var getSchoolOption = 'default';\n $('.schoolOption').click(function () {\n getSchoolOption = $(this).attr('id');\n schoolFunction(getSchoolOption);\n });\n $('select').change(function () {\n getSchoolOption = $(this).val();\n schoolFunction(getSchoolOption);\n });\n var clearStates = function clearStates(directive) {\n //Clear Program State Selections\n for (var i = 0; i < allStates.length; i++) {\n $('#map').usmap('trigger', allStates[i], directive);\n }\n };\n var clickedInfo = function clickedInfo(event, data, stateIden) {\n $(\".map-header1\").empty();\n $(\".map-header1\").append(\"Program Map\");\n if (data !== undefined) {\n var stateAbbr = data.name;\n }\n //console.log(\"passed data\" + \" \" + stateAbbr);\n if (stateIden !== undefined) {\n var stateAbbr = stateIden;\n }\n //console.log(\"passed stateIden\" + \" \" + stateAbbr);\n clearStates('selectedProgram');\n $(\".stateName\").removeClass('selectedLink');\n $(\".schoolOption\").removeClass('selectedLink');\n $('#map').usmap('trigger', stateAbbr, 'unselectedProgram', event);\n //console.log(\"clicked\");\n programsAvailable = 0;\n for (i in programsObject) {\n //console.log(programsAvailable + \" \" + i);\n if (programsObject[i].includes(stateAbbr) === false) {\n programsAvailable++;\n $(\"#\" + i).addClass('selectedLink');\n $(\"#\" + stateAbbr).addClass('selectedLink');\n } else {\n $(\"#\" + stateAbbr).addClass('selectedLink');\n }\n }\n var stateHeadingName = $(\".stateName.selectedLink\").text();\n if (programsAvailable < 1) {\n $(\".statenum-after\").empty();\n $(\".statenum\").empty();\n $(\".statenum\").append(\"0\");\n $(\".statenum-after\").append(\"programs available in \" + stateHeadingName);\n } else {\n $(\".statenum-after\").empty();\n $(\".statenum\").empty();\n $(\".statenum\").append(programsAvailable);\n $(\".statenum-after\").append(\"programs available in \" + stateHeadingName);\n }\n };\n });\n})(jQuery);\n\n// -------------------- DEFINE VARIABLES --------------------\n\nvar animationSpeed = 250;\nvar animationSpeedSlow = 450;\nvar availableViewSpace;\nvar currentStickyTop;\nvar enableScrollFunctions = 0;\nvar hashTargetTop;\nvar headerHeightScrollDown;\nvar headerHeightAtTop;\nvar headerHeightScrollUpSome;\nvar headerHeightScrollTop;\nvar myMaxHeight = 0;\nvar myMinHeight;\nvar offsetScrollPosition = 0;\nvar pageLoadFlag = 1;\nvar prevScrollPosition = 0;\nvar scrollOffset = 0;\nvar scrollPosition = 0;\nvar scrollPositionOffset = 0;\nvar scrollThreshold = 5;\nvar scrollTimeout;\nvar stickyHeight;\nvar targetHREF;\nvar theSectionTop;\nvar theSectionHeight;\nvar theSectionBottom;\nvar thisSectionsTop;\nvar thisSectionsHeight;\nvar thisSectionsBottom;\nvar theSubnavHREF;\nvar totalHeaderScrollDownHideHeight = 0;\nvar totalHeaderScrollDownHideHeightTopOnly = 0;\n\n// -------------------- END DEFINE VARIABLES --------------------\n\n// -------------------- ON PAGE LOAD EVENT --------------------\n(function ($) {\n jQuery(document).ready(function ($) {\n jQuery.noConflict();\n moveThisFunctions();\n\n // set body class to desktop by default, then run check\n $(\"body\").addClass(\"desktop\");\n detectDesktopOrMobile();\n // move elements that switch positions between desktop and mobile\n moveThis();\n // initialize position, heights, related values\n initializePage();\n // if page loads with hash in URL, run handler to put page at correct location\n if (window.location.hash) {\n goToHash($(location).attr('hash'));\n }\n // wait 100 ms for all script checks to run, then reset page load flag and enable the scroll functions. This prevents any scroll-based functions from accidentally triggering on page load\n setTimeout(function () {\n enableScrollFunctions = 1;\n pageLoadFlag = 0;\n headerHeightHandler();\n }, 200);\n });\n\n // -------------------- END ON PAGE LOAD --------------------\n\n // -------------------- EVENTS --------------------\n\n // EVENT : scrolling\n $(window).scroll(function () {\n if (scrollTimeout) {\n // clear the timeout, if one is pending\n clearTimeout(scrollTimeout);\n scrollTimeout = null;\n }\n scrollTimeout = setTimeout(scrollHandler, 10);\n });\n\n // EVENT : resizing window\n $(window).resize(function () {\n // determine responsive view\n detectDesktopOrMobile();\n headerHeightHandler();\n tableScrolling();\n moveThisFunctions();\n });\n\n // EVENT: clicking an anchor link\n $(document).on('click', 'a[href^=\"#\"]', function (event) {\n // optional: prevent # id from appearing in URL bar\n event.preventDefault();\n\n // get the hash target\n targetHREF = $.attr(this, 'href');\n // optional: change URL bar, but not if the href is \"#top\" or \"#\"\n if (targetHREF != \"#top\" && targetHREF != \"#\") {\n history.pushState(null, null, targetHREF);\n }\n // when the hash is #, it could mean different things. This cycles through the options and triggers a corresponding function\n if (targetHREF == \"#\") {\n if ($(this).hasClass(\"search-open\") || $(this).hasClass(\"search-close\")) {\n searchShowHide(this);\n }\n\n // basic show-hides\n if ($(this).hasClass(\"show-link\")) {\n event.stopPropagation();\n if ($(this).closest(\".show-link-parent\").next(\".show-content\").css(\"display\") == \"none\") {\n $(this).closest(\".show-link-parent\").next(\".show-content\").slideDown('fast');\n $(this).addClass(\"active\");\n $(this).children().each(function () {\n showHideTogglesOpened($(this));\n });\n tableScrolling();\n } else {\n $(this).closest(\".show-link-parent\").next(\".show-content\").slideUp('fast');\n $(this).removeClass(\"active\");\n $(this).children().each(function () {\n showHideTogglesClosed($(this));\n });\n }\n }\n\n // expand/contract fixed-height-fade-content elements\n if ($(this).parent().hasClass(\"fixed-height-fade-content-toggle\")) {\n fixedHeightContent(this);\n }\n } else {\n // run hash animation handler\n goToHash(targetHREF);\n }\n });\n\n // EVENT: when the URL hash changes, reload page completely to reset various parameters\n $(window).on(\"hashchange\", function (event) {\n location.reload();\n });\n\n // -------------------- END EVENTS --------------------\n\n // -------------------- CALLABLE FUNCTIONS --------------------\n\n // FUNCTION : handle back-to-top link in fixed footer\n function backToTop(direction) {\n if ($(\"body\").hasClass(\"desktop\") && !$(\".back-to-top\").hasClass(\"mobile-only\")) {\n // scrolling down\n if (direction == \"down\") {\n $(\".back-to-top\").hide();\n }\n // scrolled up\n else {\n if (scrollPosition < headerHeightAtTop) {\n // hide back-to-top\n $(\".back-to-top\").hide();\n } else {\n // show back-to-top\n $(\".back-to-top\").show();\n }\n }\n } else if ($(\"body\").hasClass(\"mobile\") && !$(\".back-to-top\").hasClass(\"desktop-only\")) {\n // scrolling down\n if (direction == \"down\") {\n $(\".back-to-top\").hide();\n }\n // scrolled up\n else {\n if (scrollPosition < headerHeightAtTop) {\n // hide back-to-top\n $(\".back-to-top\").hide();\n } else {\n // show back-to-top\n $(\".back-to-top\").show();\n }\n }\n }\n }\n\n // FUNCTION : detect desktop or mobile view based on CSS\n function detectDesktopOrMobile() {\n // detect if desktop\n if ($(\"body\").css(\"max-width\") != \"9999px\") {\n // detect if transitioning to desktop from mobile\n if ($(\"body.mobile\").length) {\n $('body').removeClass('mobile');\n $('body').addClass('desktop');\n moveThis();\n // reset show/hides, heights, positioning\n initializePage();\n }\n }\n // detect if mobile\n else {\n // detect if transitioning to mobile from desktop\n if ($(\"body.desktop\").length) {\n $('body').removeClass('desktop');\n $('body').addClass('mobile');\n moveThis();\n // reset show/hides, heights, positioning\n initializePage();\n }\n }\n }\n\n // FUNCTION : fixed-height elements with fade\n function fixedHeightContent(target) {\n myParent = $(target).closest(\".fixed-height-fade-content\");\n if ($(myParent).hasClass(\"closed\")) {\n myMinHeight = $(myParent).innerHeight();\n $(myParent).removeClass(\"closed\");\n if (myMaxHeight == 0) {\n myMaxHeight = $(myParent).innerHeight() + $(target).height();\n }\n $(myParent).css({\n \"max-height\": myMinHeight\n });\n $(myParent).animate({\n \"max-height\": myMaxHeight\n }, animationSpeed);\n $(target).addClass(\"open\");\n } else {\n myMaxHeight = $(myParent).innerHeight();\n $(myParent).addClass(\"closed\");\n $(myParent).animate({\n \"max-height\": myMinHeight\n }, animationSpeed);\n $(target).removeClass(\"open\");\n }\n }\n\n // FUNCTION: handle navigating to a hash target\n function goToHash(hashTarget) {\n // if the hashtag is not just # <-- not necessary anymore, but retaining just in case\n if (hashTarget != \"#\") {\n // if the target is the top\n if (hashTarget == \"#top\") {\n $('html, body').animate({\n scrollTop: 0\n }, animationSpeed, function () {\n subnavActive();\n });\n }\n // if target is not top\n else {\n // get target top value\n hashTargetTop = $(hashTarget).offset().top;\n // initialize scroll offset value for the hash target. This is what adjusts the scroll amount to account for fixed header size.\n scrollOffset = 0;\n // only do this if header is fixed and offset is required\n if ($(\".header\").hasClass(\"fixed\")) {\n // initialize scroll offset value for the hash target. This is what adjusts the scroll amount to account for fixed header size.\n scrollOffset = 0;\n // calculate the scroll offset:\n // go through each visible, top-sticky sibling of the fixed header and look for the target. If it's not there, add the height of this element to the scroll offset total.\n $(\".header.fixed\").siblings().each(function () {\n if ($(this).find(hashTarget).length <= 0 && $(this).hasClass(\"top-sticky\") && $(this).is(\":visible\")) {\n scrollOffset = scrollOffset + $(this).outerHeight();\n }\n });\n\n // if page is just now being loaded, i.e. clicked link on another page to get here\n if (pageLoadFlag == 1) {\n //since page is already at top, header is full height. The new target scroll position should equal the full height of the header plus the total height of the visible top-sticky header siblings.\n hashTargetTop = hashTargetTop - headerHeightAtTop - scrollOffset;\n // since page is loading, no scroll animation is desired - just jump to the target point\n $('html, body').animate({\n scrollTop: hashTargetTop\n //}, 0);\n }, 10, function () {\n subnavActive();\n }); // if needing to scroll down because page is reset\n }\n\n // if page is already loaded, i.e. link clicked on same page\n else {\n // if navigating to hash target involves scrolling down\n if (hashTargetTop > scrollPosition) {\n // offset (decrease) target position by the predicted height of the header after scrolling down and the total height of the visible top-sticky header siblings.\n hashTargetTop = hashTargetTop - headerHeightScrollDown - scrollOffset;\n }\n // if navigating to hash target involves scrolling up\n else if (hashTargetTop < scrollPosition) {\n // offset (decrease) target position by the predicted height of the header after scrolling up some and the total height of the visible top-sticky header siblings.\n hashTargetTop = hashTargetTop - headerHeightScrollUpSome - scrollOffset;\n }\n // if already at hash target position, just exit\n else if (hashTargetTop == scrollPosition) {\n return;\n }\n // scroll to offset target point, slightly slower than animation speed\n $('html, body').animate({\n scrollTop: hashTargetTop\n }, animationSpeed + 100, function () {\n subnavActive();\n });\n }\n }\n }\n }\n }\n\n // FUNCTION : handle header/fixed/sticky element heights\n function headerHeightHandler() {\n // only do this if header is fixed\n if ($(\".header\").hasClass(\"fixed\")) {\n // desktop and mobile views are handled separately\n if ($(\"body\").hasClass(\"desktop\")) {\n // predict height of header when scrolled down. Start with initial value of header at top\n headerHeightScrollDown = headerHeightAtTop;\n // then subtract the heights of each element that will hide on scroll down\n $(\".desktop-scroll-down-hide\").each(function () {\n headerHeightScrollDown = headerHeightScrollDown - $(this).outerHeight();\n });\n // predict height of header when scrolled up but not all the way to top. Start with value of header when scrolled down\n headerHeightScrollUpSome = headerHeightScrollDown;\n // then add the heights of each element that will show on scroll up\n $(\".desktop-scroll-up-show\").each(function () {\n headerHeightScrollUpSome = headerHeightScrollUpSome + $(this).outerHeight();\n });\n // predict height of header when scrolled to top. In this case, it should already equal the initial value of header at top because you can't scroll down to get to the top anyway.\n headerHeightScrollTop = headerHeightAtTop;\n }\n // desktop and mobile views are handled separately\n else if ($(\"body\").hasClass(\"mobile\")) {\n // predict height of header when scrolled down. Start with initial value of header at top\n headerHeightScrollDown = headerHeightAtTop;\n // then subtract the heights of each element that will hide on scroll down\n $(\".mobile-scroll-down-hide\").each(function () {\n headerHeightScrollDown = headerHeightScrollDown - $(this).outerHeight();\n });\n // predict height of header when scrolled up but not all the way to top. Start with value of header when scrolled down\n headerHeightScrollUpSome = headerHeightScrollDown;\n // then add the heights of each element that will show on scroll up\n $(\".mobile-scroll-up-show\").each(function () {\n headerHeightScrollUpSome = headerHeightScrollUpSome + $(this).outerHeight();\n });\n // predict height of header when scrolled to top. In this case, it should already equal the initial value of header at top because you can't scroll down to get to the top anyway.\n headerHeightScrollTop = headerHeightAtTop;\n }\n }\n $(\".top-sticky:visible\").each(function () {\n stickyHeight = $(this).outerHeight();\n availableViewSpace = $(window).height() - headerHeightScrollDown;\n $(\".fixed\").not(\".header\").each(function () {\n availableViewSpace = availableViewSpace - $(this).outerHeight();\n });\n currentStickyTop = $(this).offset().top;\n $(\".top-sticky:visible\").each(function () {\n if ($(this).offset().top < currentStickyTop) {\n availableViewSpace = availableViewSpace - $(this).outerHeight();\n }\n });\n if (stickyHeight >= availableViewSpace) {\n $(this).css({\n \"position\": \"relative\"\n });\n $(this).css({\n \"top\": \"auto\"\n });\n } else {\n $(this).css({\n \"position\": \"sticky\"\n });\n }\n });\n }\n\n // FUNCTION : initialize positions, heights, related values\n function initializePage() {\n headerHeightAtTop = $(\".header\").outerHeight();\n $(\"body\").css({\n \"padding-top\": headerHeightAtTop\n });\n $(\"body.landing-page\").css({\n \"padding-top\": 0\n });\n scrollPosition = $(this).scrollTop();\n prevScrollPosition = scrollPosition;\n if ($(\"body\").hasClass(\"desktop\")) {\n $(\".desktop-scroll-down-hide\").show();\n $(\".mobile-scroll-down-hide\").show();\n } else if ($(\"body\").hasClass(\"mobile\")) {\n $(\".desktop-scroll-down-hide\").show();\n $(\".mobile-scroll-down-hide\").show();\n }\n headerHeightHandler();\n setTopStickyTops(headerHeightAtTop);\n $(\".content-section\").each(function () {\n thisSectionsTop = $(this).offset().top;\n thisSectionsHeight = $(this).outerHeight();\n thisSectionsBottom = thisSectionsTop + thisSectionsHeight;\n $(this).find(\".sectionTop\").text(\"top: \" + thisSectionsTop + \", height: \" + thisSectionsHeight + \", bottom: \" + thisSectionsBottom);\n\n //$(this).find(\".sectionTop\").text( \"top: \"+$(this).offset().top+\", bottom );\n });\n setTimeout(tableScrolling, 1);\n\n //$(\".msg\").text(scrollPosition);\n }\n\n // FUNCTION : Move things from one area to another on mobile-desktop switch\n function moveThis() {\n // Instructions: give the item you want to move the '.moveThis' class and an ID. Give the two alternating containers the same ID with -desktop and -mobile appended.\n $('.move-this').each(function () {\n var moveTargetID = $(this).attr('id');\n // Mobile\n if ($(\"body\").hasClass(\"mobile\")) {\n if ($(\"#\" + moveTargetID + \"-mobile #\" + moveTargetID + \"\").length == 0) {\n $(\"#\" + moveTargetID + \"\").appendTo($(\"#\" + moveTargetID + \"-mobile\"));\n }\n }\n // Desktop\n else if ($(\"body\").hasClass(\"desktop\")) {\n if ($(\"#\" + moveTargetID + \"-desktop #\" + moveTargetID + \"\").length == 0) {\n $(\"#\" + moveTargetID + \"\").appendTo($(\"#\" + moveTargetID + \"-desktop\"));\n }\n }\n });\n }\n\n // FUNCTION : handle what happens when you scroll\n function scrollHandler() {\n // get current scroll position\n scrollPosition = $(this).scrollTop();\n // make sure scroll amount is significant, else cancel\n if (Math.abs(prevScrollPosition - scrollPosition) <= scrollThreshold) {\n return;\n }\n // make sure scrolling functions are enabled, else cancel\n if (enableScrollFunctions == 0) {\n return;\n }\n // if scrolled down\n if (prevScrollPosition < scrollPosition && enableScrollFunctions == 1) {\n // show/hide any elements that are set to do so on scroll down, and adjust positions of related elements\n scrollShowHides(\"down\");\n backToTop(\"down\");\n headerHeightHandler();\n }\n // if scrolled up\n else if (prevScrollPosition > scrollPosition && enableScrollFunctions == 1) {\n headerHeightHandler();\n if (scrollPosition + $(window).height() < $(document).height()) {\n // scrolled to \"top\" (from zero to minimum height of fixed header)\n if (scrollPosition < headerHeightScrollDown) {\n // show/hide any elements that are set to do so on scroll to top, and adjust positions of related elements\n scrollShowHides(\"top\");\n }\n // just scrolled up some, but not all the way to top\n else {\n // show/hide any elements that are set to do so on scroll up, and adjust positions of related elements\n scrollShowHides(\"up\");\n backToTop(\"up\");\n }\n }\n }\n subnavActive();\n\n //setTimeout( $(\".msg\").text(scrollPosition), animationSpeed+50 );\n\n // mark current position as previous to prepare for further scrolling\n prevScrollPosition = scrollPosition;\n }\n\n // FUNCTION : handle scroll-based show/hides\n function scrollShowHides(direction) {\n if ($(\"body\").hasClass(\"desktop\")) {\n // scrolling down\n if (direction == \"down\") {\n // check if the entire header is meant to hide, and if so only do this if scrolled past header; otherwise just allow 100 px margin from top before activating\n if ($(\".header\").hasClass(\"desktop-scroll-down-hide\") && scrollPosition > headerHeightAtTop || !$(\".header\").hasClass(\"desktop-scroll-down-hide\") && scrollPosition > 100) {\n // hide/slide up each scroll-down-hide element\n $(\".desktop-scroll-down-hide:visible\").each(function () {\n $(this).slideUp(animationSpeedSlow, \"swing\");\n // hide any custom search overlays inside this element and switch any toggles to close\n $(this).find(\".custom-search\").hide();\n $(this).find(\".search-toggle.search-close\").addClass(\"search-open\");\n $(this).find(\".search-toggle.search-close\").removeClass(\"search-close\");\n });\n // adjust top-sticky positions to account for height of header when scrolled down\n setTopStickyTops(headerHeightScrollDown);\n }\n }\n // scrolled to top of page\n else if (direction == \"top\") {\n // show/slide down each scroll-top-show element\n $(\".desktop-scroll-top-show:hidden\").each(function () {\n $(this).slideDown(animationSpeedSlow, \"swing\");\n });\n // show/slide down each scroll-up-show element\n $(\".desktop-scroll-up-show:hidden\").each(function () {\n $(this).slideDown(animationSpeedSlow, \"swing\");\n });\n // adjust top-sticky positions to account for height of header when at top of page\n setTopStickyTops(headerHeightScrollTop);\n }\n // scrolled up a certain amount but not to top of page\n else if (direction == \"up\") {\n // show/slide down each scroll-up-show element\n $(\".desktop-scroll-up-show:hidden\").each(function () {\n $(this).slideDown(animationSpeedSlow, \"swing\");\n });\n // if you're scrolling up, but top-only elements are visible, i.e. on page load, where the whole header is reset\n $(\".desktop-scroll-top-show:visible\").each(function () {\n $(this).slideUp(animationSpeedSlow, \"swing\");\n });\n // adjust top-sticky positions to account for height of header when scrolled up some amount\n setTopStickyTops(headerHeightScrollUpSome);\n }\n } else if ($(\"body\").hasClass(\"mobile\")) {\n // scrolling down\n if (direction == \"down\") {\n // check if the entire header is meant to hide, and if so only do this if scrolled past header; otherwise just allow 100 px margin from top before activating\n if ($(\".header\").hasClass(\"mobile-scroll-down-hide\") && scrollPosition > headerHeightAtTop || !$(\".header\").hasClass(\"mobile-scroll-down-hide\") && scrollPosition > 100) {\n // hide/slide up each scroll-down-hide element\n $(\".mobile-scroll-down-hide:visible\").each(function () {\n $(this).slideUp(animationSpeedSlow, \"swing\");\n });\n // adjust top-sticky positions to account for height of header when scrolled down\n setTopStickyTops(headerHeightScrollDown);\n }\n }\n // scrolled to top of page\n else if (direction == \"top\") {\n // show/slide down each scroll-top-show element\n $(\".mobile-scroll-top-show:hidden\").each(function () {\n $(this).slideDown(animationSpeedSlow, \"swing\");\n });\n // show/slide down each scroll-up-show element\n $(\".mobile-scroll-up-show:hidden\").each(function () {\n $(this).slideDown(animationSpeedSlow, \"swing\");\n });\n // adjust top-sticky positions to account for height of header when at top of page\n setTopStickyTops(headerHeightScrollTop);\n }\n // scrolled up a certain amount but not to top of page\n else if (direction == \"up\") {\n // show/slide down each scroll-up-show element\n $(\".mobile-scroll-up-show:hidden\").each(function () {\n $(this).slideDown(animationSpeedSlow, \"swing\");\n });\n // if you're scrollin up, but top-only elements are visible, i.e. on page load, where the whole header is reset\n $(\".mobile-scroll-top-show:visible\").each(function () {\n $(this).slideUp(animationSpeedSlow, \"swing\");\n });\n // adjust top-sticky positions to account for height of header when scrolled up some amount\n setTopStickyTops(headerHeightScrollUpSome);\n }\n }\n }\n\n // FUNCTION : set top values for any visible top-sticky elements\n function setTopStickyTops(topStickyBasis) {\n // start by adjusting the top value by some base amount, usually the predicted height of the header after a given scroll\n var topStickyTop = topStickyBasis;\n // for each visible top-sticky element, set the new top amount to equal the base amount, then increment the base amount by the height of the element that was just handled\n $(\".top-sticky:visible\").each(function () {\n if ($(this).css(\"position\") == \"sticky\") {\n $(this).css({\n \"top\": topStickyTop\n });\n scrollPositionOffset = topStickyTop;\n topStickyTop = topStickyTop + $(this).outerHeight();\n }\n });\n }\n\n // FUNCTION : show/hide the custom search bar\n function searchShowHide(target) {\n if ($(target).hasClass(\"search-open\")) {\n if ($(target).hasClass(\"search-toggle\")) {\n $(target).removeClass(\"search-open\");\n $(target).addClass(\"search-close\");\n }\n if ($(target).closest(\".header-search\").hasClass(\"slide-down\")) {\n $(target).closest(\".header-search\").find(\".custom-search\").slideDown('fast');\n }\n if ($(target).closest(\".header-search\").hasClass(\"slide-left\")) {\n $(target).closest(\".header-search\").find(\".custom-search\").animate({\n width: \"100%\"\n }, animationSpeed, function () {});\n }\n } else if ($(target).hasClass(\"search-close\")) {\n if ($(target).hasClass(\"search-toggle\")) {\n $(target).removeClass(\"search-close\");\n $(target).addClass(\"search-open\");\n }\n if ($(target).closest(\".header-search\").hasClass(\"slide-down\")) {\n $(target).closest(\".header-search\").find(\".custom-search\").slideUp('fast');\n }\n if ($(target).closest(\".header-search\").hasClass(\"slide-left\")) {\n $(target).closest(\".header-search\").find(\".custom-search\").animate({\n width: \"0\"\n }, animationSpeed, function () {});\n }\n }\n }\n\n // FUNCTIONS: these two functions swap show/hide text pairs\n function showHideTogglesOpened(thisObj) {\n if (thisObj.hasClass('view-close')) {\n thisObj.html('Close');\n }\n if (thisObj.hasClass('show-hide')) {\n thisObj.html('Hide');\n }\n if (thisObj.hasClass('more-less')) {\n thisObj.html('less');\n }\n if (thisObj.hasClass('right-down')) {\n thisObj.children('img').css({\n 'transform': 'rotate(90deg)'\n });\n }\n if (thisObj.hasClass('plus-minus')) {\n thisObj.html('–');\n }\n if (thisObj.hasClass('expand-close')) {\n thisObj.html('Close [ – ]');\n }\n if (thisObj.hasClass('plus-minus-brackets')) {\n thisObj.html('[ – ]');\n }\n }\n function showHideTogglesClosed(thisObj) {\n if (thisObj.hasClass('view-close')) {\n thisObj.html('View');\n }\n if (thisObj.hasClass('show-hide')) {\n thisObj.html('Show');\n }\n if (thisObj.hasClass('more-less')) {\n thisObj.html('more');\n }\n if (thisObj.hasClass('right-down')) {\n thisObj.children('img').css({\n 'transform': 'rotate(0deg)'\n });\n }\n if (thisObj.hasClass('plus-minus')) {\n thisObj.html('+');\n }\n if (thisObj.hasClass('expand-close')) {\n thisObj.html('Expand [ + ]');\n }\n if (thisObj.hasClass('plus-minus-brackets')) {\n thisObj.html('[ + ]');\n }\n }\n\n // FUNCTION : set subnav items active or not based on scroll position\n function subnavActive() {\n // set a brief timeout so that this doesn't trigger until all scrolling/animating has completed - if this fires too early the numbers will be variable\n setTimeout(function () {\n // get the new adjusted scroll position by adding the offset value from the top-sticky function to the actual scroll position\n offsetScrollPosition = scrollPosition + scrollPositionOffset;\n // for each visible subnav link, get the HREF value; if value exists, define the top and bottom boundaries of that section. If adjusted scroll position falls between those boundaries, set that subnav link to .active, otherwise remove .active.\n $(\".subnav a:visible\").each(function () {\n theSubnavHREF = $(this).attr(\"href\");\n if ($(theSubnavHREF).length != 0) {\n theSectionTop = $(theSubnavHREF).offset().top;\n theSectionHeight = $(theSubnavHREF).outerHeight();\n theSectionBottom = theSectionTop + theSectionHeight;\n if (offsetScrollPosition >= theSectionTop && offsetScrollPosition < theSectionBottom) {\n $(this).addClass(\"active\");\n } else {\n $(this).removeClass(\"active\");\n }\n }\n });\n }, 10);\n }\n\n // FUNCTION : resize scrollable tables\n function tableScrolling() {\n $('.table-container').each(function () {\n var tableContHeight = $(this).children('table').outerHeight() + 20;\n $(this).css(\"height\", tableContHeight);\n $(this).addClass('scrollable');\n });\n }\n\n // MOVE THIS: Move things from one area to another on mobile-desktop switch\n // Instructions: give the item you want to move the '.moveThis' class and an ID. \n // Give the two alternating containers the same ID with -desktop and - mobile appended.\n function moveThisFunctions() {\n $('.moveThis').each(function () {\n var moveTargetID = $(this).attr('id');\n // Mobile\n if ($('body').css('max-width') === '9999px') {\n if ($('#' + moveTargetID + '-mobile #' + moveTargetID + '').length === 0) {\n $('#' + moveTargetID + '').appendTo(jQuery('#' + moveTargetID + '-mobile'));\n }\n }\n // Desktop\n else {\n if ($('#' + moveTargetID + '-desktop #' + moveTargetID + '').length === 0) {\n $('#' + moveTargetID + '').appendTo(jQuery('#' + moveTargetID + '-desktop'));\n }\n }\n });\n }\n\n // -------------------- END CALLABLE FUNCTIONS --------------------\n})(jQuery);"],"names":["getCookie","c_name","x","y","ARRcookies","document","cookie","split","i","length","substr","indexOf","replace","unescape","ShowAndHideFaqs","jQuery","click","text","removeClass","hide","addClass","show","modalInterval","popupformSelectOption","programsCode","$modal","find","$popupForm","$programsList","time","clearInterval","setInterval","concat","attr","applyPageShowHide","change","this","val","selectedOptionText","html","trigger","getUrlParameter","name","results","RegExp","exec","location","search","decodeURIComponent","initialize","first","each","children","ready","on","selectedOptionText1","window","open","origin","event","preventDefault","target","className","css","hasClass","closest","code","console","log","submit","animate","scrollTop","offset","top","index","mylabel","myinput","myselect","mytextarea","myemailinput","insertAfter","resize","screen","width","e","form_id","message_id","previous_div","prev","$currEl","selectOptionValue","value","parent","is","removeAttr","insertBefore","placeholder","aria-label","modal","querySelector","focusableElements","firstFocusableElement","lastFocusableElement","last","focus","which","shiftKey","role","next","current_page","bind","$","notMobile","statesToChoose","programsAvailable","allStates","programsObject","schoolFunction","getSchoolOption","clearStates","clickedInfo","noConflict","getElementById","SUUMMBAARTADM","SUUMMBAAVIAMGMT","SUUMMBADATAANLTCS","SUUMMBACBRSEC","SUUMMBAFIN","SUUMMBAGEN","SUUMMBAHLTHADM","SUUMMBALDR","SUUMMBAMKT","SUUMMBAPRJMGMT","SUUMMSBUSANLTCS","SUUMMSNMBADL","SUUMMSCSIACBROPS","SUUMMSCSIACBRSECSTRAT","SUUMMSCSIAHLTHADM","SUUMMSCSIAMGMT","SUUMMAARTSADM","SUUMMAPROCOM","SUUMMAPROCOMDGTMDA","SUUMMAPROCOMSTRATCOM","SUUMMMMUSICTECHFILMMUSICTECH","SUUMMMMUSICTECHGMNGAUDIO","SUUMMMMUSICTECHPT","SUUMMMMUSICTECH","SUUBRNBSN","SUUBRNMSN","SUUMMSNFNP","SUUMMSNLEAD","SUUMMSNLEADADMCSIA","SUUCAVIAMGMT","SUUCBUSANLTCS","SUUCFIN","SUUCHLTHADM","SUUCMKT","SUUCLEAD","SUUCPRJMGMT","SUUCAUDIOENG","SUUMMBAHR","SUUCNURLEADADM","SUUCHR","usmap","stateStyles","fill","stroke","stateInitStyles","stroke-width","stateSpecificStyles","US","stateHoverStyles","stateInitAnimation","stateHoverAnimation","data","stateIden","schoolOption","stateHeader","q","v","p","courseName","empty","append","directive","stateAbbr","undefined","includes","stateHeadingName","availableViewSpace","currentStickyTop","hashTargetTop","headerHeightScrollDown","headerHeightAtTop","headerHeightScrollUpSome","headerHeightScrollTop","myMinHeight","scrollTimeout","stickyHeight","targetHREF","theSectionTop","theSectionHeight","theSectionBottom","thisSectionsTop","thisSectionsHeight","thisSectionsBottom","theSubnavHREF","animationSpeed","animationSpeedSlow","enableScrollFunctions","myMaxHeight","offsetScrollPosition","pageLoadFlag","prevScrollPosition","scrollOffset","scrollPosition","scrollPositionOffset","scrollThreshold","totalHeaderScrollDownHideHeight","totalHeaderScrollDownHideHeightTopOnly","backToTop","direction","detectDesktopOrMobile","moveThis","initializePage","goToHash","hashTarget","subnavActive","siblings","outerHeight","headerHeightHandler","height","not","position","padding-top","setTopStickyTops","setTimeout","tableScrolling","moveTargetID","appendTo","scrollHandler","Math","abs","scrollShowHides","slideUp","slideDown","topStickyBasis","topStickyTop","tableContHeight","moveThisFunctions","hash","scroll","clearTimeout","history","pushState","stopPropagation","showHideTogglesOpened","thisObj","transform","showHideTogglesClosed","myParent","innerHeight","max-height","reload"],"mappings":"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"}