{"version":3,"sources":["const.js","full-width.js","google-map.js","accordion.js","apply-now-form.js","ask-a-question-form.js","brick-list.js","campus-list.js","course-listing.js","free-button.js","ga.js","header-desktop.js","header-mobile.js","header-search.js","hero-carousel.js","hero-video.js","icons.js","main.js","news-carousel.js","news-listing.js","search-result.js","smooth-scroll.js","stories-carousel.js"],"names":["LOCATIONS","label","value","STUDY_MODES","updateFullWidthElements","screenWidth","$","window","width","each","index","this","css","trigger","checkForMapsToInit","length","initializeMap","document","ready","on","e","preventDefault","$accordionParentElement","parent","toggleClass","slideToggle","$body","currentTab","hasInvalidValue","formGa","second","third","final","formAge","hasClass","$form","form","querySelector","$next","$back","$save","$submit","tabs","$firstName","$preferredName","$courseAreas","$course","$userSelectedCourse","$dobDay","$dobMonth","$dobYear","$toggleField","$postalHomeYes","$postalHomeNo","$differentPostAddressFields","$studyHomeAddressYes","$studyHomeAddressNo","$differentStudyAddressFields","$higherEducationYes","$higherEducationNo","$higherEducationFields","$visaFieldWrapper","$residencyStatusRadios","$countryOfBirthRadios","$otherCountryWrapper","$otherCountryField","$arrivalField","$originRadios","$originSpecifyWrapper","$originSpecifyRadios","$otherLanguageRadios","$otherLanguageWrapper","$otherLanguageSpecify","$additionalSupportRadios","$additionalSupportWrapper","$additionalSupportOtherWrapper","$additionalSupportOptions","$additionalSupportOtherField","$technologyRadios","$otherTechnologyWrapper","$otherTechnologyField","$priorLearningRadios","$previousWorkWrapper","$previousWorkField","$completedEducation","$educationDetails","$secondarySchoolEnrolled","$enrollmentNote","gteCheckboxes","querySelectorAll","handleCourseListOptions","val","setHiddenCourseField","change","target","currentTabInputs","let","i","validateField","currentTabErrors","parentElement","scrollIntoView","behavior","block","classList","remove","add","show","hide","gtag","event_category","event_label","formData","FormData","plainFormData","Object","fromEntries","entries","formDataJsonString","DisabilityCondition","getAll","PreferredLearningMethod","DigitalTechnology","FinancialSupport","JSON","stringify","fetch","method","headers","Content-Type","Accept","body","then","res","status","modal","modalBackground","addEventListener","json","submit","console","log","month","year","prop","day","DateOfBirth","transport_type","prefNameNote","checked","find","dobValidation","filter","$toggleFieldTwo","$nextToggleField","addClass","removeClass","group","options","o","otherOptions","oo","required","allInputs","input","dataset","valRequired","resetSelection","parsedValue","Number","parseInt","allCourseOptions","newCourseOptions","opt","area","outerHTML","html","field","invalid","fieldName","name","closest","fieldLabel","validation","checkValidity","validationMessage","innerText","$dobField","$pgDetails","$pgHeading","dateString","now","dayjs","date","isValid","$childFields","subtract","isAfter","diff","$dobNote","$notEnrolledInSecondary","initAutocomplete","addressField","postalAddressField","studyAddressField","autocomplete","google","maps","places","Autocomplete","componentRestrictions","country","fields","types","addListener","fillInAddress","autocompletePostal","autocompleteStudy","type","place","prefix","newAddressObject","address","city","postcode","state","getPlace","component","address_components","long_name","cityField","postcodeField","stateField","focus","setTimeout","enquiryContent","Course Guide","link","url","text","Apprenticeships and Traineeships","Scholarships","Awards (Certificates & Statement of Attainment)","Skills & Jobs Centre","Short Courses","Secondary School Student (VETDSS)","Feedback and Complaints","_debouncedUpdateErrorBlocks","$whatAreYouInterested","$whatAreYouInterestedNotSure","$contactEmail","$contactPhone","$contactEmailAddress","$subscribeToMailingList","$contactPhoneNumber","$contactTime","$whatLevelAreYouInterested","$preSelectedInterestedStudy","$whatWillBeStudyLocation","$loadingIndicator","$enquiryType","$orgunitSelects","$orgunitNotSure","validator","notSureOrgunit","is","showCourseEnquiry","addMethod","element","arg","phoneNumberParser","test","validate","rules","FirstName","LastName","DescribeYourself","UserCourseAreas","courseAreaNeeded","Enquiry","Email","emailValidation","PhoneNumber","phoneValidation","messages","GA_LEAVE_WITHOUT_SUBMIT","updateContacts","updateErrorBlocks","valid","OrgUnit","alert","control","otherField","otherKey","childNodes","toLowerCase","includes","prefNameField","enquiry","$startYear","$whatAreYouInterestedArea","$enquiryContent","$enquiryLink","$enquiryText","prototype","hasOwnProperty","call","attr","init","_updateErrorBlocks","parents","clearTimeout","$footerElement","$moreInfoElement","$parentElement","updateActiveCampus","campusId","$campusListElement","$bodyElement","courseListing","courseFilters","Vue","el","data","courses","methods","prev","selectedCampus","selectedMode","Math","max","pageNumber","next","min","totalPages","reset","fetchOnUpdate","campuses","modes","ga","campus","mode","page","vm","getJSON","umbracopageId","currentPage","studymode","pageSize","totalItems","items","freeModal","event","openFeeFreeModal","created","computed","selectedCampusLabel","selectedModeLabel","watch","newCampus","newMode","selectCampus","evt","toggleDropdown","isCampusSelected","isModeSelected","selectMode","flag","resizeTimer","$applyNow","$askAQuestion","$searchNav","$desktopNavItems","desktopNavOpenClass","navItem","$mobileMenuCategories","$targetParent","not","$desktopQueryInput","$mobileQueryInput","desktopToggleClass","mobileToggleClass","slickSettings","arrows","dots","fade","speed","touchThreshold","autoplay","autoplaySpeed","heroCarousel","slick","hasUpdatedVideoSources","checkVideoVisibility","matchMedia","matches","load","BASE","getParameterByName","location","href","replace","results","RegExp","exec","decodeURIComponent","get","div","createElement","className","innerHTML","XMLSerializer","serializeToString","documentElement","insertBefore","newsListing","newsFilters","newsItems","getNewsDetail","news","Date","DocumentTypeAlias","Category","selectedCategory","selectedDate","category","umbracoPageId","SearchResults","dateCounters","DateCounts","$forceUpdate","updateDateList","expandedDateList","dateList","categoryList","mounted","requestCategory","$categoryListingItems","$refs","map","idx","$el","trim","bind","toArray","selectedCategoryLabel","selectedDateLabel","newCategory","newDate","$dateListingItems","getFilterListingItem","selectDate","$filterListingItem","selectCategory","expandDateList","getCounter","dateStr","undefined","$courseCount","$otherCount","$searchForm","$otherResultsTab","GA_UNSUCCESSFUL_SEARCH","studyAreas","otherListing","GA_REST_OF_SITE_TAB_SENT","getQuery","queryPairs","search","slice","split","queryKeyValue","unescape","areas","courseAreaResults","otherPageResults","parseDescription","description","update","keyword","query","courseResults","req","CourseResults","OtherPageResults","CourseAreaResults","tab","history","pushState","click","pathname","hostname","hash","animate","scrollTop","offset","top"],"mappings":"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","file":"app.min.js","sourcesContent":["var LOCATIONS = [\n {label: 'Any Campus', value: null},\n {label: 'Warrnambool', value: 'Warrnambool'},\n {label: 'Sherwood Park', value: 'Sherwood Park'},\n {label: 'Hamilton', value: 'Hamilton'},\n {label: 'Portland', value: 'Portland'},\n {label: 'Colac', value: 'Colac'},\n { label: 'Stawell', value: 'Stawell' },\n { label: 'Glenormiston', value: 'Glenormiston' },\n { label: 'South Australia', value: 'South Australia' },\n {label: 'Workplace Training', value: 'Workplace Training'}\n];\n\nvar STUDY_MODES = [\n {label: 'Any mode', value: null},\n {label: 'Full-time', value: 'Full-time'},\n {label: 'Part-time', value: 'Part-time'},\n {label: 'Apprenticeship', value: 'Apprenticeship'},\n {label: 'Traineeship', value: 'Traineeship'},\n {label: 'Short Course', value: 'Short Course'}\n];","\n$(document).ready(function() {\n var resizeTimer;\n\n $(window).on('resize', function(e) {\n clearTimeout(resizeTimer);\n\n resizeTimer = setTimeout(function() {\n updateFullWidthElements();\n }, 200);\n });\n\n updateFullWidthElements();\n});\n\nfunction updateFullWidthElements(screenWidth) {\n var screenWidth = $(window).width();\n\n $('.full-width').each(function(index, value) {\n $(this).css('width', screenWidth + 'px');\n $(this).css('margin-left', -(screenWidth / 2) + 'px');\n $(this).trigger(\"full-width-resize\");\n });\n}","\nfunction checkForMapsToInit() {\n if($('.map').length) {\n initializeMap();\n }\n}","\n$(document).ready(function() {\n $('.accordion__toggle').on('click', function(e) {\n e.preventDefault();\n\n $accordionParentElement = $(this).parent();\n\n $accordionParentElement.toggleClass('accordion--open');\n $('.accordion__content', $accordionParentElement).slideToggle(300);\n });\n});","$(function () {\n var $body = $('body');\n window.currentTab = 0;\n window.hasInvalidValue = false;\n window.formGa = {\n second: false,\n third: false,\n final: false\n };\n window.formAge = 0;\n\n // only works on Apply now form page\n if (!$body.hasClass('page-type--applynowform')) return;\n\n const $form = $('#apply-now-form');\n const form = document.querySelector('#apply-now-form');\n const $next = $('.apply-now__next');\n const $back = $('.apply-now__back');\n const $save = $('.apply-now__save');\n const $submit = $('.apply-now__submit');\n const tabs = [\n document.querySelector('[data-step=\"0\"]'),\n document.querySelector('[data-step=\"1\"]'),\n document.querySelector('[data-step=\"2\"]'),\n document.querySelector('[data-step=\"3\"]'),\n ];\n\n const $firstName = $('#FirstName');\n const $preferredName = $('#PreferredName');\n\n const $whatAreYouInterested = $('#WhatAreYouInterested-Another');\n const $courseAreas = $('#UserCourseAreas');\n const $course = $('#Course');\n const $userSelectedCourse = $('#UserSelectedCourse');\n\n const $dobDay = $('#dob-day');\n const $dobMonth = $('#dob-month');\n const $dobYear = $('#dob-year');\n const pgDetails = $('#parent-guardian-details');\n\n const $postalHomeYes = $('#IsPostalAddressHome-Yes');\n const $postalHomeNo = $('#IsPostalAddressHome-No');\n const $differentPostAddressFields = $('#different-postal-address');\n const $studyHomeAddressYes = $('#IsStudyAddressHome-Yes');\n const $studyHomeAddressNo = $('#IsStudyAddressHome-No');\n const $differentStudyAddressFields = $('#different-study-address');\n\n const $higherEducationYes = $('#CompletedHigherEducation-Yes');\n const $higherEducationNo = $('#CompletedHigherEducation-No');\n const $higherEducationFields = $('.higher-education-details');\n\n const $visaFieldWrapper = $('.visa-field-wrapper');\n const $residencyStatusRadios = $('[name=\"ResidencyStatus\"]');\n\n const $countryOfBirthRadios = $('[name=\"CountryOfBirth\"]');\n const $otherCountryWrapper = $('.other-birth-country');\n const $otherCountryField = $('#OtherCountryOfBirth');\n const $arrivalField = $('#ArrivalYear');\n\n const $originRadios = $('[name=\"IsAboriginalAndTorresStraitIslander\"]');\n const $originSpecifyWrapper = $('.origin-specify-radios');\n const $originSpecifyRadios = $('[name=\"Origin]');\n\n const $otherLanguageRadios = $('[name=\"OtherLanguage\"]');\n const $otherLanguageWrapper = $('.other-spoken-language');\n const $otherLanguageSpecify = $('#MostSpokenLanguage');\n\n const $additionalSupportRadios = $('[name=\"HasDisability\"');\n const $additionalSupportWrapper = $('.additional-support-options');\n const $additionalSupportOtherWrapper = $('.additional-support-other');\n const $additionalSupportOptions = $('[name=\"DisabilityCondition\"]');\n const $additionalSupportOtherField = $('#OtherDisabilityCondition');\n\n const $technologyRadios = $('[name=\"DigitalTechnology\"]');\n const $otherTechnologyWrapper = $('.other-digital-technology');\n const $otherTechnologyField = $('#OtherDigitalTechnology');\n\n const $priorLearningRadios = $('[name=\"ApplyForRecognitionOfPriorLearning\"]');\n const $previousWorkWrapper = $('.previous-work-info');\n const $previousWorkField = $('#PreviousWork');\n\n const $completedEducation = $('[name=\"CompletedHigherEducation\"]');\n const $educationDetails = $('.higher-education-details');\n\n const $secondarySchoolEnrolled = $('[name=\"EnrolledInSecondarySchool\"]');\n const $enrollmentNote = $('.enrollment-note');\n\n const gteCheckboxes = document.querySelectorAll('.gte-one');\n\n function handleCourseListOptions(value, resetSelection) {\n const parsedValue = Number.parseInt(value, 10);\n if (parsedValue !== -1) {\n window.allCourseOptions = window.allCourseOptions || $userSelectedCourse.find('option');\n if (window.allCourseOptions.length) {\n let newCourseOptions = '';\n for (let i = 0; i < window.allCourseOptions.length; i += 1) {\n const opt = window.allCourseOptions[i];\n const area = opt.dataset.area ? Number.parseInt(opt.dataset.area, 10) : 0;\n if (area === parsedValue || area === 0 || i === 0) {\n newCourseOptions += opt.outerHTML;\n }\n if (resetSelection) {\n $userSelectedCourse.val('');\n }\n }\n if (newCourseOptions) {\n $userSelectedCourse.html(newCourseOptions);\n }\n }\n }\n }\n\n function setHiddenCourseField(value) {\n if (value) {\n // Only want course code\n $course.val(value);\n\n // const option = $userSelectedCourse.find(`option[value=\"${value}\"]`);\n // $course.val(option.text().trim());\n }\n }\n\n handleCourseListOptions($courseAreas.val(), false);\n setHiddenCourseField($userSelectedCourse.val());\n\n $courseAreas.change(function (e) {\n handleCourseListOptions(e.target.value, true);\n });\n\n $userSelectedCourse.change(function (e) {\n setHiddenCourseField(e.target.value);\n });\n\n function validateField(field, invalid) {\n const fieldName = field.name;\n const parent = field.closest('.required-multi-choice-question') || field.closest('.swtf-control') || field.parentElement;\n const fieldLabel = parent.querySelector('label');\n const validation = parent.querySelector(`[data-valmsg-for=\"${fieldName}\"]`);\n\n if (invalid || !field.checkValidity() || field.value === '-1') {\n if (field.required && validation) {\n field.classList.add('input-validation-error');\n validation.classList.add('field-validation-error');\n\n if (field.validationMessage) {\n validation.innerText = field.validationMessage;\n } else {\n if (field.dataset.valRequired) {\n validation.innerText = field.dataset.valRequired;\n } else {\n validation.innerText = `The ${fieldLabel.innerText} is required.`;\n }\n }\n window.hasInvalidValue = true;\n }\n } else {\n field.classList.remove('input-validation-error');\n if (validation) {\n validation.classList.remove('field-validation-error');\n validation.innerText = '';\n }\n }\n }\n\n function toggleDateRelatedFields() {\n const $dobNote = $('.dob-note');\n const $notEnrolledInSecondary = $('#EnrolledInSecondarySchool-No');\n\n if ($dobNote) {\n if (window.formAge < 17) {\n $dobNote.addClass('show');\n } else {\n $dobNote.removeClass('show');\n }\n }\n if ($notEnrolledInSecondary) {\n if (window.formAge >= 19) {\n $notEnrolledInSecondary.prop('checked', true);\n }\n if (window.formAge < 17) {\n if ($notEnrolledInSecondary.checked) {\n $enrollmentNote.addClass('show');\n } else {\n $enrollmentNote.addClass('hide');\n }\n }\n }\n };\n\n function dobValidation() {\n const $dobDay = $('#dob-day');\n const $dobMonth = $('#dob-month');\n const $dobYear = $('#dob-year');\n const $dobField = $('#DateOfBirth');\n const $pgDetails = $('#parent-guardian-details');\n const $pgHeading = $('.parent-guardian-details--heading');\n\n const day = $dobDay.val();\n const month = $dobMonth.val();\n const year = $dobYear.val();\n \n if (day && month && year) {\n const dateString = year + '-' + month + '-' + day;\n const now = dayjs();\n const date = dayjs(dateString, 'YYYY-MM-DD');\n\n if (date.isValid()) {\n $dobField.val(dateString);\n const $childFields = $pgDetails.find('input');\n\n if (now.subtract(18, 'year').isAfter(date)) {\n if ($childFields.length) {\n $childFields.prop('required', false);\n }\n $pgDetails.hide();\n $pgHeading.hide();\n } else {\n if ($childFields.length) {\n $childFields.prop('required', true);\n }\n $pgDetails.show();\n $pgHeading.show();\n }\n window.formAge = now.diff(date, 'year');\n }\n toggleDateRelatedFields();\n }\n }\n\n function initFields() {\n if ($firstName && $preferredName) {\n const prefNameNote = document.querySelector('.pref-name-note');\n $firstName.on('blur', (e) => {\n $preferredName.val(e.target.value);\n });\n if (prefNameNote) {\n $preferredName.on('change', (e) => {\n if (e.target.value && e.target.value !== $firstName.val()) {\n prefNameNote.classList.add('show');\n } else {\n prefNameNote.classList.remove('show');\n }\n });\n }\n }\n if ($postalHomeNo && $postalHomeYes && $differentPostAddressFields) {\n if (!$postalHomeYes.checked) {\n $differentPostAddressFields.hide();\n }\n $postalHomeNo.on('change', (e) => {\n if (e.target.checked) {\n $differentPostAddressFields.show();\n const postalInputs = $differentPostAddressFields.find('input,select');\n postalInputs.prop('required', true);\n }\n });\n $postalHomeYes.on('change', (e) => {\n if (e.target.checked) {\n $differentPostAddressFields.hide();\n const postalInputs = $differentPostAddressFields.find('input,select');\n postalInputs.prop('required', false);\n }\n });\n }\n if ($studyHomeAddressNo && $studyHomeAddressYes && $differentStudyAddressFields) {\n if (!$studyHomeAddressYes.checked) {\n $differentStudyAddressFields.hide();\n }\n $studyHomeAddressNo.on('change', (e) => {\n if (e.target.checked) {\n $differentStudyAddressFields.show();\n const postalInputs = $differentStudyAddressFields.find('input,select');\n postalInputs.prop('required', true);\n }\n });\n $studyHomeAddressYes.on('change', (e) => {\n if (e.target.checked) {\n $differentStudyAddressFields.hide();\n const postalInputs = $differentStudyAddressFields.find('input,select');\n postalInputs.prop('required', false);\n }\n });\n }\n if ($higherEducationNo && $higherEducationYes && $higherEducationFields) {\n if (!$higherEducationYes.checked) {\n $higherEducationFields.hide();\n }\n $higherEducationNo.on('change', (e) => {\n if (e.target.checked) {\n $higherEducationFields.show();\n }\n });\n $higherEducationYes.on('change', (e) => {\n if (e.target.checked) {\n $higherEducationFields.hide();\n }\n });\n }\n if ($dobDay && $dobMonth && $dobYear) {\n $dobDay.on('change', () => {\n dobValidation();\n });\n $dobMonth.on('change', () => {\n dobValidation();\n });\n $dobYear.on('change', () => {\n dobValidation();\n });\n }\n if ($residencyStatusRadios && $visaFieldWrapper) {\n const $toggleField = $residencyStatusRadios.filter('[value=\"Permanent humanitarian visa\"]');\n const $toggleFieldTwo = $residencyStatusRadios.filter('[value=\"Temporary entry permit or diplomat\"]');\n if (!(($toggleField && $toggleField.checked) || ($toggleFieldTwo && $toggleFieldTwo.checked))) {\n $visaFieldWrapper.hide();\n }\n $residencyStatusRadios.on('change', (e) => {\n if ((e.target.value === 'Permanent humanitarian visa' && e.target.checked) || (e.target.value === 'Temporary entry permit or diplomat' && e.target.checked)) {\n $visaFieldWrapper.show();\n } else {\n $visaFieldWrapper.hide();\n }\n })\n }\n if ($countryOfBirthRadios && $otherCountryField && $arrivalField && $otherCountryWrapper) {\n const $toggleField = $countryOfBirthRadios.filter('[value=\"Other\"]');\n if (!$toggleField || !$toggleField.checked) {\n $otherCountryWrapper.hide();\n }\n $countryOfBirthRadios.on('change', (e) => {\n if (e.target.value === 'Australia' && e.target.checked) {\n $otherCountryWrapper.hide();\n $otherCountryField.prop('required', false);\n $arrivalField.prop('required', false);\n } else {\n $otherCountryWrapper.show();\n $otherCountryField.prop('required', true);\n $arrivalField.prop('required', true);\n }\n })\n }\n if ($originRadios && $originSpecifyRadios && $originSpecifyWrapper) {\n const $toggleField = $originRadios.filter('[value=\"No\"]');\n if (!$toggleField || !$toggleField.checked) {\n $originSpecifyWrapper.hide();\n }\n $originRadios.on('change', (e) => {\n if (e.target.value === 'No' && e.target.checked) {\n $originSpecifyWrapper.hide();\n $originSpecifyRadios.prop('required', false);\n } else {\n $originSpecifyWrapper.show();\n $originSpecifyRadios.prop('required', true);\n }\n })\n }\n if ($otherLanguageRadios && $otherLanguageSpecify && $otherLanguageWrapper) {\n const $toggleField = $otherLanguageRadios.filter('[value=\"No\"]');\n if (!$toggleField || !$toggleField.checked) {\n $otherLanguageWrapper.hide();\n }\n $otherLanguageRadios.on('change', (e) => {\n if (e.target.value === 'No' && e.target.checked) {\n $otherLanguageWrapper.hide();\n $otherLanguageSpecify.prop('required', false);\n } else {\n $otherLanguageWrapper.show();\n $otherLanguageSpecify.prop('required', true);\n }\n })\n }\n if ($additionalSupportRadios && $additionalSupportWrapper && $additionalSupportOtherWrapper && $additionalSupportOptions && $additionalSupportOtherField) {\n const $toggleField = $additionalSupportRadios.filter('[value=\"No\"]');\n if (!$toggleField || !$toggleField.checked) {\n $additionalSupportWrapper.hide();\n }\n const $nextToggleField = $additionalSupportOptions.filter('[value=\"Other, please specify\"]');\n if (!$nextToggleField || !$nextToggleField.checked) {\n $additionalSupportOtherWrapper.hide();\n }\n $additionalSupportRadios.on('change', (e) => {\n if (e.target.value === 'No' && e.target.checked) {\n $additionalSupportWrapper.hide();\n $additionalSupportOtherWrapper.hide();\n $additionalSupportOptions.prop('required', false);\n $additionalSupportOtherField.prop('required', false);\n } else {\n $additionalSupportWrapper.show();\n $additionalSupportOptions.prop('required', true);\n }\n });\n $additionalSupportOptions.on('change', (e) => {\n if (e.target.value === 'Other, please specify') {\n if (e.target.checked) {\n $additionalSupportOtherWrapper.show();\n $additionalSupportOtherField.prop('required', true);\n } else {\n $additionalSupportOtherWrapper.hide();\n $additionalSupportOtherField.prop('required', false);\n }\n }\n });\n }\n if ($technologyRadios && $otherTechnologyWrapper && $otherTechnologyField) {\n const $toggleField = $technologyRadios.filter('[value=\"Other\"]');\n if (!$toggleField || !$toggleField.checked) {\n $otherTechnologyWrapper.hide();\n }\n $otherTechnologyWrapper.hide();\n $technologyRadios.on('change', (e) => {\n if (e.target.value === 'Other') {\n if (e.target.checked) {\n $otherTechnologyWrapper.show();\n $otherTechnologyField.prop('required', true);\n } else {\n $otherTechnologyWrapper.hide();\n $otherTechnologyField.prop('required', false);\n }\n }\n })\n }\n if ($priorLearningRadios && $previousWorkWrapper && $previousWorkField) {\n const $toggleField = $priorLearningRadios.filter('[value=\"No\"]');\n if (!$toggleField || !$toggleField.checked) {\n $previousWorkWrapper.hide();\n }\n $priorLearningRadios.on('change', (e) => {\n if (e.target.value === 'Yes' && e.target.checked) {\n $previousWorkWrapper.show();\n $previousWorkField.prop('required', true);\n } else {\n $previousWorkWrapper.hide();\n $previousWorkField.prop('required', false);\n }\n })\n }\n if ($completedEducation && $educationDetails) {\n const $toggleField = $completedEducation.filter('[value=\"No\"]');\n if ($toggleField && $toggleField.checked) {\n $educationDetails.hide();\n }\n $completedEducation.on('change', (e) => {\n if (e.target.value === 'No' && e.target.checked) {\n $educationDetails.hide();\n } else {\n $educationDetails.show();\n }\n });\n }\n if ($secondarySchoolEnrolled && $enrollmentNote) {\n const $toggleField = $secondarySchoolEnrolled.filter('[value=\"No\"]');\n if ($toggleField && $toggleField.checked && window.formAge < 17) {\n $enrollmentNote.addClass('show');\n }\n $secondarySchoolEnrolled.on('change', (e) => {\n if (e.target.value === 'No' && e.target.checked && window.formAge < 17) {\n $enrollmentNote.addClass('show');\n } else {\n $enrollmentNote.removeClass('show');\n }\n });\n }\n if (gteCheckboxes.length) {\n for (let i = 0; i < gteCheckboxes.length; i += 1) {\n const group = gteCheckboxes[i];\n const options = group.querySelectorAll('input[type=\"checkbox\"]');\n if (options.length) {\n for (let o = 0; o < options.length; o += 1) {\n options[o].addEventListener('change', (e) => {\n if (e.target.checked) {\n const otherOptions = group.querySelectorAll(`input[type=\"checkbox\"]:not([value=\"${e.target.value}\"])`);\n if (otherOptions.length) {\n for (let oo = 0; oo < otherOptions.length; oo += 1) {\n otherOptions[oo].required = false;\n }\n }\n } else {\n for (let oo = 0; oo < otherOptions.length; oo += 1) {\n options[oo].required = true;\n }\n }\n });\n }\n }\n }\n }\n\n const allInputs = form.querySelectorAll('input,textarea,select');\n for (let i = 0; i < allInputs.length; i += 1) {\n const input = allInputs[i];\n if (input.dataset.valRequired) {\n input.required = 'required';\n }\n input.addEventListener('invalid', (e) => {\n validateField(e.target, true);\n });\n input.addEventListener('blur', (e) => {\n validateField(e.target, false);\n });\n }\n dobValidation();\n }\n\n function initAutocomplete() {\n const addressField = document.querySelector(\"#Address\");\n const postalAddressField = document.querySelector('#PostalAddress');\n const studyAddressField = document.querySelector('#StudyAddress');\n // Create the autocomplete object, restricting the search predictions to\n // addresses in Australia.\n autocomplete = new google.maps.places.Autocomplete(addressField, {\n componentRestrictions: { country: [\"au\"] },\n fields: [\"address_components\"],\n types: [\"address\"],\n });\n autocomplete.addListener(\"place_changed\", () => fillInAddress());\n autocompletePostal = new google.maps.places.Autocomplete(postalAddressField, {\n componentRestrictions: { country: [\"au\"] },\n fields: [\"address_components\"],\n types: [\"address\"],\n });\n autocompletePostal.addListener(\"place_changed\", () => fillInAddress('postal'));\n autocompleteStudy = new google.maps.places.Autocomplete(studyAddressField, {\n componentRestrictions: { country: [\"au\"] },\n fields: [\"address_components\"],\n types: [\"address\"],\n });\n autocompleteStudy.addListener(\"place_changed\", () => fillInAddress('study'));\n }\n\n function fillInAddress(type) {\n let place = null;\n let prefix = '';\n const newAddressObject = {\n address: '',\n city: '',\n postcode: '',\n state: ''\n };\n if (type === 'postal') {\n place = autocompletePostal.getPlace();\n prefix = 'Postal';\n } else if (type === 'study') {\n place = autocompleteStudy.getPlace();\n prefix = 'Study';\n } else {\n place = autocomplete.getPlace();\n }\n\n if (place) {\n for (const component of place.address_components) {\n const componentType = component.types[0];\n \n switch (componentType) {\n case 'subpremise': {\n newAddressObject.address = `${component.long_name} / `;\n break;\n }\n case 'street_number': {\n newAddressObject.address += `${component.long_name} `;\n break;\n }\n case 'route': {\n newAddressObject.address += `${component.long_name}`;\n break;\n }\n case 'postal_code': {\n newAddressObject.postcode = component.long_name;\n break;\n }\n case 'locality': {\n newAddressObject.city = component.long_name;\n break;\n }\n case 'administrative_area_level_1': {\n newAddressObject.state = component.long_name;\n break;\n }\n }\n }\n const addressField = document.querySelector(`#${prefix}Address`);\n const cityField = document.querySelector(`#${prefix}Town`);\n const postcodeField = document.querySelector(`#${prefix}Postcode`);\n const stateField = document.querySelector(`#${prefix}State`);\n\n stateField.focus();\n\n if (addressField && newAddressObject.address) {\n addressField.value = newAddressObject.address;\n }\n if (cityField && newAddressObject.city) {\n cityField.value = newAddressObject.city;\n }\n if (postcodeField && newAddressObject.postcode) {\n postcodeField.value = newAddressObject.postcode;\n }\n if (stateField && newAddressObject.state) {\n stateField.value = newAddressObject.state;\n }\n }\n }\n\n // Button Listeners\n $next.on('click', function (e) {\n e.preventDefault();\n\n const currentTab = tabs[window.currentTab];\n const currentTabInputs = currentTab.querySelectorAll('input,textarea,select');\n\n if (currentTabInputs.length) {\n window.hasInvalidValue = false;\n for (let i = 0; i < currentTabInputs.length; i += 1) {\n validateField(currentTabInputs[i], false);\n }\n }\n\n if (!window.hasInvalidValue) {\n tabs[window.currentTab].classList.remove('active');\n window.currentTab += 1;\n tabs[window.currentTab].classList.add('active');\n\n if (window.currentTab > 0) {\n $back.show();\n }\n if (window.currentTab === 3) {\n $next.hide();\n $submit.show();\n }\n\n if (window.currentTab === 2 && !window.formGa.second) {\n window.formGa.second = true;\n gtag && gtag('event', 'Proceed to second step', {\n event_category: 'Apply Now Form',\n event_label: 'Next'\n });\n }\n if (window.currentTab === 3 && !window.formGa.third) {\n window.formGa.third = true;\n gtag && gtag('event', 'Proceed to third step', {\n event_category: 'Apply Now Form',\n event_label: 'Next'\n });\n }\n if (window.currentTab === 3 && !window.formGa.final) {\n window.formGa.final = true;\n gtag && gtag('event', 'Proceed to final step', {\n event_category: 'Apply Now Form',\n event_label: 'Next'\n });\n }\n\n form.scrollIntoView({\n behavior: 'smooth'\n });\n } else {\n const currentTabErrors = currentTab.querySelectorAll('input.input-validation-error, select.input-validation-error, textarea.input-validation-error');\n if (currentTabErrors.length) {\n currentTabErrors[0].parentElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n }\n });\n\n $back.on('click', function (e) {\n e.preventDefault();\n\n tabs[window.currentTab].classList.remove('active');\n window.currentTab -= 1;\n tabs[window.currentTab].classList.add('active');\n\n form.scrollIntoView({\n behavior: 'smooth'\n });\n\n if (window.currentTab === 0) {\n $back.hide();\n }\n if (window.currentTab < 3) {\n $next.show();\n $submit.hide();\n }\n });\n\n $save.on('click', function (e) {\n e.preventDefault();\n\n const formData = new FormData(form);\n const plainFormData = Object.fromEntries(formData.entries());\n\n plainFormData.DisabilityCondition = formData.getAll(\"DisabilityCondition\");\n plainFormData.PreferredLearningMethod = formData.getAll(\"PreferredLearningMethod\");\n plainFormData.DigitalTechnology = formData.getAll(\"DigitalTechnology\");\n plainFormData.FinancialSupport = formData.getAll(\"FinancialSupport\");\n\n const formDataJsonString = JSON.stringify(plainFormData);\n \n fetch('/Umbraco/Api/ApplyNow/SaveAndContinue', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n },\n body: formDataJsonString\n })\n .then((res) => {\n if (res && res.status) {\n const modal = document.querySelector('#applyNowModal');\n const modalBackground = document.querySelector('#applyNowModal-bg');\n if (modal && modalBackground) {\n modal.classList.add('show');\n modalBackground.classList.add('show');\n\n modal.addEventListener('click', () => {\n modal.classList.remove('show');\n modalBackground.classList.remove('show');\n });\n modalBackground.addEventListener('click', () => {\n modal.classList.remove('show');\n modalBackground.classList.remove('show');\n });\n\n }\n }\n res.json();\n });\n\n });\n\n $submit.on('click', function (e) {\n e.preventDefault();\n\n const currentTab = tabs[window.currentTab];\n const currentTabInputs = currentTab.querySelectorAll('input,textarea,select');\n\n if (currentTabInputs.length) {\n window.hasInvalidValue = false;\n for (let i = 0; i < currentTabInputs.length; i += 1) {\n validateField(currentTabInputs[i], false);\n }\n }\n if (window.hasInvalidValue) {\n const currentTabErrors = currentTab.querySelectorAll('input.input-validation-error, select.input-validation-error, textarea.input-validation-error');\n if (currentTabErrors.length) {\n currentTabErrors[0].parentElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n } else {\n $form.submit();\n }\n });\n\n\n // Submit Listener\n $form.on('submit', function (e) {\n e.preventDefault();\n console.log('here');\n\n const currentTab = tabs[window.currentTab];\n const currentTabInputs = currentTab.querySelectorAll('input,textarea,select');\n\n if (currentTabInputs.length) {\n window.hasInvalidValue = false;\n for (let i = 0; i < currentTabInputs.length; i += 1) {\n validateField(currentTabInputs[i]);\n }\n }\n\n if (window.hasInvalidValue) {\n const currentTabErrors = currentTab.querySelectorAll('input.input-validation-error, select.input-validation-error, textarea.input-validation-error');\n if (currentTabErrors.length) {\n currentTabErrors[0].parentElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n } else {\n if($('input[name=Campus]:checked').length < 1) {\n $('#campus-not-sure').prop('checked', true);\n }\n\n var day = $dobDay.val();\n var month = $dobMonth.val();\n var year = $dobYear.val();\n\n $form[0].DateOfBirth.value = year + '-' + month + '-' + day;\n\n // Not used anymore?\n // if ($whatAreYouInterested.prop('checked')) {\n // $form[0].Course.value = courseList.selectedCourseCode;\n // }\n\n // console.warn('apply now form sent.');\n // e.preventDefault();\n // return;\n\n gtag && gtag('event', 'Successfully submit', {\n event_category: 'Apply Now Form',\n event_label: 'Submit',\n transport_type: 'beacon'\n });\n form.submit();\n }\n });\n\n $back.hide();\n $submit.hide();\n initFields();\n\n setTimeout(() => {\n window.initAutocomplete = initAutocomplete;\n window.initAutocomplete();\n }, 2500);\n});\n","$(function () {\n\n var $body = $('body');\n\n const enquiryContent = {\n 'Course Guide': {\n link: {\n url: '/about-us/publications',\n text: 'The South West TAFE Course Guide is available to download here.'\n },\n text: 'If you would like to get in touch regarding the course guide, please continue and fill out the form below.'\n },\n 'Apprenticeships and Traineeships': {\n link: {\n url: '/apprenticeships-traineeships',\n text: 'Information about Apprenticeships and Traineeships can be found here.'\n },\n text: 'If you would like to get in touch regarding Apprenticeships and Traineeships, please continue and fill out the form below.'\n },\n 'Scholarships': {\n link: {\n url: '/study/scholarships',\n text: 'Information about our scholarships can be found here.'\n },\n text: 'If you would like to get in touch regarding our scholarships, please continue and fill out the form below.'\n },\n 'Awards (Certificates & Statement of Attainment)': {\n link: {\n url: '/students/graduation-awards',\n text: 'Information about our graduations and awards can be found here.'\n },\n text: 'If you would like to get in touch regarding graduations and awards, please continue and fill out the form below.'\n },\n 'Skills & Jobs Centre': {\n link: {\n url: '/pathfinders',\n text: 'Information about Pathfinders Skills & Jobs Centre can be found here.'\n },\n text: 'If you would like to get in touch regarding the Pathfinders Skills & Jobs Centre, please continue and fill out the form below.'\n },\n 'Short Courses': {\n link: {\n url: '/courses/short-courses',\n text: 'Information about short courses can be found here.'\n },\n text: 'If you would like to get in touch regarding short courses, please continue and fill out the form below.'\n },\n 'Secondary School Student (VETDSS)': {\n link: {\n url: 'https://vetdss.swtafe.edu.au/',\n text: 'Information about VETDSS can be found on our VETDSS Portal.'\n },\n text: 'If you would like to get in touch regarding VETDSS, please continue and fill out the form below.'\n },\n 'Feedback and Complaints': {\n link: {\n url: '/about-us/feedback',\n text: 'Information about feedback and complaints can be found here.'\n },\n text: 'If you would like to get in touch regarding feedback and complaints, please continue and fill out the form below.'\n }\n }\n\n // only works on Ask a question form page\n if (!$body.hasClass('page-type--askaquestionform')) return;\n\n var $form = $('#ask-a-question-form');\n\n var $whatAreYouInterested = $('#WhatAreYouInterested-Another');\n var $whatAreYouInterestedNotSure = $('#WhatAreYouInterested-NotSure');\n var $courseAreas = $('#UserCourseAreas');\n\n var $contactEmail = $('#contact-email');\n var $contactPhone = $('#contact-phone');\n\n var $contactEmailAddress = $('#Email');\n var $subscribeToMailingList = $('#SubscribeToMailingList');\n\n var $contactPhoneNumber = $('#PhoneNumber');\n var $contactTime = $('#ContactTime');\n var $whatLevelAreYouInterested = $('#what-level-are-you-interested');\n var $preSelectedInterestedStudy = $('#WhatAreYouInterested-Preselected');\n\n var $whatWillBeStudyLocation = $('#what-will-be-your-study-location');\n\n var $loadingIndicator = $('.swtafe-form__loading-indicator');\n\n var $enquiryType = $('#EnquiryType');\n\n var $orgunitSelects = $('#OrgUnit');\n var $orgunitNotSure = $('#OrgUnitNotSure');\n\n function notSureOrgunit() {\n const enquiry = $enquiryType.find(\":selected\").text();\n if (enquiry === '' || enquiry === 'Course Enquiry') {\n if ($preSelectedInterestedStudy.prop('checked')) {\n $orgunitSelects.prop('disabled', true);\n $orgunitNotSure.prop('disabled', true);\n } else {\n\n if ($whatAreYouInterestedNotSure.prop('checked')) {\n // const orgunitNotSureValue = $orgunitSelects.find('option').filter(function () {\n // return $(this).html() === \"Not sure\";\n // }).val();\n // $orgunitSelects.val(orgunitNotSureValue);\n $orgunitNotSure.val(true);\n $orgunitNotSure.prop('disabled', false);\n $orgunitSelects.prop('disabled', true);\n } else {\n $orgunitNotSure.val(false);\n $orgunitNotSure.prop('disabled', true);\n $orgunitSelects.prop('disabled', false);\n }\n }\n }\n }\n $whatAreYouInterested.change(function () {\n notSureOrgunit();\n })\n $whatAreYouInterestedNotSure.change(function () {\n notSureOrgunit();\n })\n $preSelectedInterestedStudy.change(function () {\n notSureOrgunit();\n })\n\n notSureOrgunit();\n\n // The study level dropdown shows only if the enquirer selects a study area,\n // or ‘I’m not sure’ (anything other than the preselected course code)\n function hideInterestedLevel() {\n\n if ($preSelectedInterestedStudy.length) {\n var hide = $preSelectedInterestedStudy.is(':checked');\n if (hide) {\n $whatLevelAreYouInterested.hide();\n $whatLevelAreYouInterested.find('select').prop('disabled', true);\n }\n $whatAreYouInterested.change(function () {\n $whatLevelAreYouInterested.show();\n $whatLevelAreYouInterested.find('select').prop('disabled', false);\n })\n $whatAreYouInterestedNotSure.change(function () {\n $whatLevelAreYouInterested.show();\n $whatLevelAreYouInterested.find('select').prop('disabled', false);\n\n })\n $preSelectedInterestedStudy.change(function () {\n $whatLevelAreYouInterested.hide();\n $whatLevelAreYouInterested.find('select').prop('disabled', true);\n })\n }\n }\n hideInterestedLevel();\n\n // only show fields when selecting Course Enquiry\n function showCourseEnquiry () {\n const enquiry = $enquiryType.find(\":selected\").text()\n const $startYear = $('#what-year-you-start');\n const $whatAreYouInterestedArea = $('#what-are-you-interested');\n\n const $enquiryContent = $('.swtafe-form__enquiry-content');\n const $enquiryLink = $('.swtafe-form__enquiry-content .swtafe-form__enquiry-link');\n const $enquiryText = $('.swtafe-form__enquiry-content .swtafe-form__enquiry-text');\n\n if (enquiry) {\n if (enquiry === 'Course Enquiry') {\n $startYear.show();\n $whatAreYouInterestedArea.show();\n $whatLevelAreYouInterested.show();\n $whatWillBeStudyLocation.show();\n $whatAreYouInterestedArea.find('input').prop('disabled', false);\n $whatWillBeStudyLocation.find('input').prop('disabled', false);\n $whatLevelAreYouInterested.find('select').prop('disabled', false);\n $whatAreYouInterested.parent().find('select').prop('disabled', false);\n $startYear.find('select').prop('disabled', false);\n } else {\n $startYear.hide();\n $whatAreYouInterestedArea.hide();\n $whatLevelAreYouInterested.hide();\n $whatWillBeStudyLocation.hide();\n $whatAreYouInterestedArea.find('input').prop('disabled', true);\n $whatWillBeStudyLocation.find('input').prop('disabled', true);\n $whatLevelAreYouInterested.find('select').prop('disabled', true);\n $whatAreYouInterested.parent().find('select').prop('disabled', true);\n $startYear.find('select').prop('disabled', true);\n }\n\n if (Object.prototype.hasOwnProperty.call(enquiryContent, enquiry)) {\n $enquiryContent.show();\n $enquiryText.text(enquiryContent[enquiry].text);\n $enquiryLink.attr('href', enquiryContent[enquiry].link.url);\n $enquiryLink.text(enquiryContent[enquiry].link.text);\n } else {\n $enquiryContent.hide();\n }\n }\n }\n showCourseEnquiry();\n\n $enquiryType.change(function () {\n showCourseEnquiry();\n })\n\n $.validator.addMethod(\"courseAreaNeeded\", function (value, element, arg) {\n if ($whatAreYouInterested.prop('checked')) {\n return value !== '-1';\n }\n\n return true;\n }, \"Course area must be selected.\");\n\n $.validator.addMethod(\"phoneValidation\", function (value, element, arg) {\n var isValidPhone = true;\n if ($('#contact-phone').is(':checked')) {\n isValidPhone = window.phoneNumberParser ? window.phoneNumberParser() : null;\n if (isValidPhone !== true) {\n return false;\n }\n }\n\n return true;\n }, \"Please enter a valid phone number.\");\n\n $.validator.addMethod(\"emailValidation\", function (value, element, arg) {\n\n if ($('#contact-email').is(':checked')) {\n\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(value);\n }\n\n return true;\n }, \"Please enter a valid email address.\");\n\n var validator = $form.validate({\n // debug:true, // when debug on, form would not be sent.\n rules: {\n FirstName: {\n required: true\n },\n LastName: {\n required: true\n },\n DescribeYourself: {\n required: true\n },\n UserCourseAreas: {\n courseAreaNeeded: true\n },\n Enquiry: {\n required: true\n },\n Email: {\n required: true, // always required\n // required: '#contact-email:checked',\n // email: true,\n emailValidation: true,\n },\n PhoneNumber: {\n required: '#contact-phone:checked',\n // digits: true,\n phoneValidation: true\n },\n },\n messages: {\n UserCourseAreas: {\n courseAreaNeeded: 'Required'\n },\n }\n });\n\n $courseAreas.change(function() {\n $whatAreYouInterested.prop('checked', true);\n });\n\n function updateContacts(e, init) {\n var selected = 0;\n if ($contactEmail.prop('checked')) selected++;\n if ($contactPhone.prop('checked')) selected++;\n\n // toggle options\n // $contactEmail.prop('disabled', $contactEmail.prop('checked') && selected < 2 ? 'disabled' : '');\n // $contactPhone.prop('disabled', $contactPhone.prop('checked') && selected < 2 ? 'disabled' : '');\n\n // toggle email fields\n // $contactEmailAddress.prop('disabled', !$contactEmail.prop('checked'));\n $subscribeToMailingList.prop('disabled', !$contactEmail.prop('checked'));\n\n // toggle phone fields\n //$contactPhoneNumber.prop('disabled', !$contactPhone.prop('checked'));\n $contactTime.prop('disabled', !$contactPhone.prop('checked'));\n\n // toggle active classes\n // $contactEmail.parents('.swtafe-form__contact').toggleClass('active', $contactEmail.prop('checked'));\n // $contactPhone.parents('.swtafe-form__contact').toggleClass('active', $contactPhone.prop('checked'));\n\n // toggle disabled classes\n // $contactEmail.parents('.swtafe-form__contact').find('.swtf-sub-form').toggleClass('disabled', !$contactEmail.prop('checked'));\n // $contactPhone.parents('.swtafe-form__contact').find('.swtf-sub-form').toggleClass('disabled', !$contactPhone.prop('checked'));\n\n if(!init) {\n // clear validations\n if(!$contactEmail.prop('checked'))\n validator.element('#Email');\n\n if(!$contactPhone.prop('checked'))\n validator.element('#PhoneNumber');\n }\n }\n\n $('input[name=ContactMethods]').change(updateContacts);\n\n updateContacts(null, true);\n\n function _updateErrorBlocks() {\n\n $courseAreas.parents('.swtf-control__radio')\n .toggleClass('has-error', $courseAreas.hasClass('error'));\n\n $contactEmailAddress.parents('.swtafe-form__contact')\n .toggleClass('has-error', $contactEmailAddress.hasClass('error'));\n\n $contactPhoneNumber.parents('.swtafe-form__contact')\n .toggleClass('has-error', $contactPhoneNumber.hasClass('error'));\n }\n\n var _debouncedUpdateErrorBlocks;\n\n function updateErrorBlocks() {\n if (_debouncedUpdateErrorBlocks) {\n clearTimeout(_debouncedUpdateErrorBlocks);\n }\n\n _debouncedUpdateErrorBlocks = setTimeout(_updateErrorBlocks, 250);\n }\n\n $form.change(updateErrorBlocks);\n\n var GA_LEAVE_WITHOUT_SUBMIT = true;\n\n $form.on('submit', function (e) {\n var form = $(this);\n $loadingIndicator.show();\n\n if (!form.valid()) {\n alert('We weren\\'t able to send your enquiry, please check all fields and try again.');\n updateErrorBlocks();\n e.preventDefault();\n $loadingIndicator.hide();\n return;\n }\n notSureOrgunit();\n\n if ($preSelectedInterestedStudy.prop('checked')) {\n $(form[0].OrgUnit).val(null);\n $('#Course').prop('disabled', true);\n }\n\n if($('input[name=Campus]:checked').length < 1) {\n $('#campus-not-sure').prop('checked', true);\n }\n\n console.log('ask a question form sent.');\n\n GA_LEAVE_WITHOUT_SUBMIT = false;\n\n gtag && gtag('event', 'Successfully submit', {\n event_category: 'Ask A Question Form',\n event_label: 'Submit',\n transport_type: 'beacon'\n });\n });\n\n $(window).on('unload', function(){\n if(GA_LEAVE_WITHOUT_SUBMIT) {\n gtag && gtag('event', 'Leave page without submitting', {\n event_category: 'Ask A Question Form',\n transport_type: 'beacon'\n });\n }\n })\n\n const control = document.querySelector('.study-area-other__control select');\n const otherField = document.querySelector('.study-area-other__field');\n if (control && otherField) {\n window.otherKey = '';\n const options = control.childNodes;\n for (var i = 0; i < options.length; i += 1) {\n const opt = options[i];\n const label = opt.innerText;\n if (opt && label && label.toLowerCase().includes('other')) {\n window.otherKey = opt.value;\n }\n }\n if (window.otherKey) {\n control.addEventListener('change', function() {\n if (control.value === window.otherKey) {\n otherField.classList.add('visible');\n } else {\n otherField.classList.remove('visible');\n }\n });\n }\n }\n\n const prefNameField = document.querySelector('.pref-name-control');\n const prefNameNote = document.querySelector('.pref-name-note');\n if (prefNameField && prefNameNote) {\n prefNameField.addEventListener('input', function(e) {\n if (e.target.value) {\n prefNameNote.classList.add('show');\n } else {\n prefNameNote.classList.remove('show');\n }\n });\n }\n});\n","\n$(document).ready(function() {\n \n var $footerElement = $('.footer');\n\n // On mobile stop the .brick__link's from linking to a page\n $('.brick__link').on('click', function(e) {\n if($footerElement.width() < 768) {\n e.preventDefault();\n\n var $parentElement = $(this).parent(),\n $moreInfoElement = $parentElement.find('.brick__more-info-container');\n\n $parentElement.toggleClass('brick--open');\n $moreInfoElement.slideToggle(300);\n }\n });\n\n});","\n// Campust list\n// ============\n//\n// Behaviour:\n// ----------\n// # Tablet\n// Tapping / pressing a campus name will update the block to show the relevant \n// information for that campus, a details button will be shown for each campus \n// which will link to the campus specific page. Shares the same mobile\n// 'View all on map' which opens a basic modal showing the map with all campuses\n// marked and a link to google maps.\n//\n// # Desktop\n// Hovering over campus title will updated the block to show the relevant campus\n// information. Clicking the campus name will take the user to a page specific \n// to that campus.\n//\n// Notes:\n// ------\n// To determine the users screen width we measure the footer element as its \n// always full width and $(window).width is not consistent across different \n// browsers / devices.\n\n$(document).ready(function() {\n\n $bodyElement = $('body');\n $campusListElement = $('.campus-list');\n $footerElement = $('.footer');\n\n // Set the active campus when click on a link (Tablet only)\n $('.campus-list__names-link').on('click', function(e) {\n if($footerElement.width() >= 768 && $footerElement.width() < 1200) {\n e.preventDefault(); // Stop the default click behaviour\n\n var campusId = $(this).attr('data-campus-id');\n\n updateActiveCampus(campusId);\n } \n });\n\n // Set the active campus when hovering over a link (Desktop only)\n $('.campus-list__names-link').on('mouseenter', function(e) {\n if($footerElement.width() >= 1200) {\n var campusId = $(this).attr('data-campus-id');\n \n updateActiveCampus(campusId);\n }\n });\n\n function updateActiveCampus(campusId) {\n // Remove the active class from any currently active campus elements\n $('.active[data-campus-id!=\"' + campusId + '\"]', $campusListElement).removeClass('active');\n \n // Add the active class to the required elements\n $('[data-campus-id=\"' + campusId + '\"]', $campusListElement).addClass('active');\n }\n\n\n\n // Map popup open / close event listeners\n $('.campus-list__view-map').on('click', function(e) {\n e.preventDefault();\n\n $bodyElement.addClass('campus-map--open');\n });\n\n $('.campus-map__close, .campus-map-scrim').on('click', function(e) {\n e.preventDefault();\n\n $bodyElement.removeClass('campus-map--open');\n });\n});","$(function () {\n var $body = $('body');\n\n // only works on course listing page\n if (!$body.hasClass('page-type--coursearea')) return;\n\n var api = '/umbraco/api/searchapi/filtercourses/';\n var courseListing, courseFilters;\n\n // list instance\n courseListing = new Vue({\n el: '.courses-listing',\n data: courses, // from the initial load data\n methods: {\n\n prev: function () {\n this.fetch(courseFilters.selectedCampus.value, courseFilters.selectedMode.value,\n Math.max(1, this.pageNumber - 1));\n },\n\n next: function () {\n this.fetch(courseFilters.selectedCampus.value, courseFilters.selectedMode.value,\n Math.min(this.pageNumber + 1, this.totalPages));\n },\n\n reset: function () {\n courseFilters.fetchOnUpdate = false; // disable fetch-on-update for a moment\n courseFilters.selectedCampus = courseFilters.campuses[0];\n courseFilters.selectedMode = courseFilters.modes[0];\n courseFilters.fetchOnUpdate = true;\n\n this.fetch(courseFilters.selectedCampus.value, courseFilters.selectedMode.value, 1);\n },\n\n ga: function () {\n gtag && gtag('event', 'Select a course', {\n event_category: 'Course Landing',\n transport_type: 'beacon'\n });\n },\n\n fetch: function (campus, mode, page) {\n var vm = this;\n $.getJSON(api, {\n umbracopageId: currentPage, // from initial load\n page: page || 1,\n campus: campus,\n studymode: mode\n }, function (data) {\n vm.pageSize = data.pageSize;\n vm.pageNumber = data.pageNumber;\n vm.totalItems = data.totalItems;\n vm.totalPages = data.totalPages;\n vm.items = data.items;\n })\n },\n\n freeModal: function (event) {\n event.preventDefault();\n openFeeFreeModal();\n }\n }\n });\n\n // filter instance\n courseFilters = new Vue({\n el: '.filters--courses-listing',\n data: function () {\n var data = {\n campuses: LOCATIONS,\n modes: STUDY_MODES,\n fetchOnUpdate: true\n };\n\n data.selectedCampus = data.campuses[0];\n data.selectedMode = data.modes[0];\n return data;\n },\n created: function () {\n\n },\n computed: {\n selectedCampusLabel: function () {\n if (this.selectedCampus === null)\n return 'Any Campus';\n\n return this.selectedCampus.label;\n },\n selectedModeLabel: function () {\n if (this.selectedMode === null)\n return 'Any Mode';\n\n return this.selectedMode;\n },\n },\n watch: {\n selectedCampus: function (newCampus) {\n if (this.fetchOnUpdate)\n courseListing.fetch(newCampus.value, this.selectedMode.value)\n },\n selectedMode: function (newMode) {\n if (this.fetchOnUpdate)\n courseListing.fetch(this.selectedCampus.value, newMode.value)\n }\n },\n methods: {\n selectCampus: function (evt, campus) {\n this.toggleDropdown(evt, false);\n this.selectedCampus = campus;\n },\n\n isCampusSelected: function (campus) {\n return this.selectedCampus === campus;\n },\n\n isModeSelected: function (mode) {\n return this.selectedMode === mode;\n },\n\n selectMode: function (evt, mode) {\n this.toggleDropdown(evt, false);\n this.selectedMode = mode;\n },\n\n toggleDropdown: function (evt, flag) {\n var $filter = $(evt.target).parents('.filter');\n $filter.toggleClass('open', flag);\n },\n }\n });\n});","$(function () {\n var $body = $('body');\n\n $('.fee-free').on('click', function(e) {\n e.preventDefault();\n \n $('#feeFree').modal();\n });\n\n $('.job-trainer').on('click', function(e) {\n e.preventDefault();\n \n $('#jobTrainer').modal();\n });\n});","$(document).ready(function () {\n var $body = $('body');\n var $applyNow = $('a.sw-btn--primary[href^=\"/about-us/apply-now/\"]');\n var $askAQuestion = $('a.sw-btn--primary[href^=\"/about-us/ask-a-question/\"]');\n var $searchNav = $('form.ga-search-nav');\n\n // home page\n if ($body.hasClass('page-type--homepage')) {\n $searchNav.each(function(){\n $(this).data('ga', true)\n }).on('submit', function() {\n gtag && gtag('event', 'Search (nav)', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n })\n });\n\n $('form#course-search').on('submit', function () {\n gtag && gtag('event', 'Search (page)', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n })\n });\n\n $('a.news-preview__featured-item-link, a.news-preview__item-link').on('click', function(){\n gtag && gtag('event', 'View news article', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n });\n });\n\n $('a.story__link').on('click', function() {\n gtag && gtag('event', 'Read success story', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n });\n });\n\n $('a.quicklinks__link').on('click', function() {\n gtag && gtag('event', 'Quicklinks', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n });\n });\n\n $('a.campus-list__names-link').on('click', function() {\n gtag && gtag('event', 'Campuses', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n });\n });\n\n $('a.explore-areas__link').on('click', function() {\n gtag && gtag('event', 'Course Area links', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n });\n });\n\n $('a.featured-course__link').on('click', function() {\n gtag && gtag('event', 'Short course links', {\n event_category: 'Homepage',\n transport_type: 'beacon'\n });\n });\n\n }\n\n // homepage campaign\n if ($body.hasClass('page-type--homepage-campaign')) {\n $('a.hero-campaign__cta').on('click', function() {\n gtag && gtag('event', 'Primary call to action', {\n event_category: 'Homepage Campaign',\n transport_type: 'beacon'\n });\n });\n }\n\n // campaign detail page\n if ($body.hasClass('page-type--campaignpage')) {\n $('a.hero-campaign__cta').on('click', function() {\n gtag && gtag('event', 'Call To Action button', {\n event_category: 'Campaign Detail',\n transport_type: 'beacon'\n });\n });\n\n $('form').on('submit', function(){\n if($(this).valid()) {\n gtag && gtag('event', 'Successful form submit', {\n event_category: 'Campaign Detail',\n transport_type: 'beacon'\n });\n }\n })\n }\n\n // course areas\n if ($body.hasClass('page-type--courseslanding')) {\n $('form#course-search').on('submit', function () {\n gtag && gtag('event', 'Search', {\n event_category: 'Course Areas',\n transport_type: 'beacon'\n })\n });\n\n $('a.brick__link').on('click', function () {\n gtag && gtag('event', 'Select a course area', {\n event_category: 'Course Areas',\n transport_type: 'beacon'\n });\n })\n }\n\n // single course area\n if ($body.hasClass('page-type--coursearea')) {\n $applyNow.each(function(){\n $(this).data('ga', true)\n }).on('click', function(){\n gtag && gtag('event', 'Apply now', {\n event_category: 'Course Landing',\n transport_type: 'beacon'\n });\n });\n\n $askAQuestion.each(function(){\n $(this).data('ga', true)\n }).on('click', function(){\n gtag && gtag('event', 'Ask a question', {\n event_category: 'Course Landing',\n transport_type: 'beacon'\n });\n });\n }\n\n // course detail\n if ($body.hasClass('page-type--course')) {\n $applyNow.each(function(){\n $(this).data('ga', true)\n }).on('click', function(){\n gtag && gtag('event', 'Apply now', {\n event_category: 'Course Detail',\n transport_type: 'beacon'\n });\n });\n\n $askAQuestion.each(function(){\n $(this).data('ga', true)\n }).on('click', function(){\n gtag && gtag('event', 'Ask a question', {\n event_category: 'Course Detail',\n transport_type: 'beacon'\n });\n });\n\n $('a.course-pdf-button').on('click', function(){\n gtag && gtag('event', 'View Course PDF', {\n event_category: 'Course Detail',\n transport_type: 'beacon'\n });\n });\n }\n\n // global\n $applyNow.filter(function(){\n return !$(this).data('ga');\n }).on('click', function(){\n gtag && gtag('event', 'Apply now', {\n event_category: 'Global',\n transport_type: 'beacon'\n });\n });\n\n $askAQuestion.filter(function(){\n return !$(this).data('ga');\n }).on('click', function(){\n gtag && gtag('event', 'Ask a question', {\n event_category: 'Global',\n transport_type: 'beacon'\n });\n });\n\n $searchNav.filter(function(){\n return !$(this).data('ga')\n }).on('submit', function() {\n gtag && gtag('event', 'Search', {\n event_category: 'Global',\n transport_type: 'beacon'\n })\n });\n});","\n$(document).ready(function() {\n \n var $body = $('body'),\n $desktopNavItems = $('.header-desktop__menu-item'),\n desktopNavOpenClass = 'header-desktop__menu-item--open';\n\n // Toggle desktop menu dropdowns\n $(document).on('click', '.header-desktop__menu-link', function(e) {\n e.preventDefault();\n\n var navItem = $(this).parent();\n \n // Needs to open\n if(navItem.hasClass(desktopNavOpenClass)) {\n navItem.removeClass(desktopNavOpenClass);\n }\n\n // Needs to close\n else {\n // Close any other open menus first\n $desktopNavItems.filter('.' + desktopNavOpenClass).find('.header-desktop__menu-link').trigger('click');\n\n navItem.addClass(desktopNavOpenClass);\n }\n });\n\n // Toggle active class on body when courses menu is opened\n $(document).on('click', '.header-desktop__menu-item--courses .header-desktop__menu-link', function(e) {\n e.preventDefault();\n\n $body.toggleClass('courses-menu-open');\n });\n});","\n$(document).ready(function() {\n\n var $body = $('body'),\n $mobileMenuCategories = $('.mobile-menu__category');\n\n // Toggle mobile menu\n $(document).on('click', '.header-mobile__toggle--menu', function(e) {\n e.preventDefault();\n\n $body.removeClass('search-open');\n $body.toggleClass('mobile-menu-open');\n });\n\n // Toggle mobile menu category\n $(document).on('click', '.mobile-menu__category-toggle', function(e) {\n e.preventDefault();\n\n var $targetParent = $(this).parent();\n\n // Close all currently open categories\n $mobileMenuCategories.not($targetParent).removeClass('mobile-menu__category--open');\n\n // Open the target category\n $targetParent.toggleClass('mobile-menu__category--open');\n });\n});","\n$(document).ready(function() {\n \n var $body = $('body'),\n $desktopQueryInput = $('.desktop-search__query'),\n $mobileQueryInput = $('.mobile-search__query'),\n desktopToggleClass = 'desktop-search-toggle',\n mobileToggleClass = 'header-mobile__toggle--search';\n\n // Toggle mobile & desktop search\n $(document).on('click', '.' + mobileToggleClass + ', .' + desktopToggleClass, function(e) {\n e.preventDefault();\n\n $body.removeClass('mobile-menu-open');\n $body.toggleClass('search-open');\n\n // If the desktop toggle was clicked, focus on the desktop search field\n if($(this).hasClass(desktopToggleClass)) {\n $desktopQueryInput.focus();\n }\n\n // If the mobile toggle was clicked, focus on the mobile search field\n else if($(this).hasClass(mobileToggleClass)) {\n $mobileQueryInput.focus();\n }\n });\n});","\n$(document).ready(function () {\n var slickSettings = {\n arrows: false, // disable default arrows, we will use our own.\n dots: true, // Enable pagination dots\n fade: true, // Enable fade transition\n speed: 600,\n touchThreshold: 10,\n autoplay: false, // true,\n autoplaySpeed: 6000\n };\n\n var heroCarousel = $('.hero-carousel__slides').slick(slickSettings);\n\n $('.hero-carousel').on('full-width-resize', function (e) {\n $('.hero-carousel__slides').slick(\"unslick\").slick(slickSettings);\n });\n\n $('.hero-carousel__pagination-previous').on('click',\n function() {\n heroCarousel.slick('slickPrev');\n });\n $('.hero-carousel__pagination-next').on('click',\n function () {\n heroCarousel.slick('slickNext');\n });\n});\n","\n// By default all video sources are not set to prevent videos being downloaded \n// on mobile, so we use JS to check the browser width, if it is tablet or wider,\n// we update the video src.\n\n$(document).ready(function() {\n var resizeTimer,\n hasUpdatedVideoSources = false;\n \n // On window resize, check if we need to update video visibility\n $(window).on('resize', function(e) {\n clearTimeout(resizeTimer);\n\n resizeTimer = setTimeout(function() {\n checkVideoVisibility();\n }, 200);\n });\n\n // Check if we need to update video visibility on page load\n checkVideoVisibility();\n\n\n \n // Functions\n // ---------\n\n function checkVideoVisibility() {\n // Check if the window is tablet size or wider\n if(!hasUpdatedVideoSources && window.matchMedia(\"(min-width: 768px)\").matches) {\n updateVideoSources();\n }\n }\n\n function updateVideoSources() {\n // Update src attribute of each video using value from data-src\n $('video source').each(function() {\n $(this).attr('src', $(this).attr('data-src'));\n });\n\n // After the video sources have been updated, load each video\n $('video').each(function() {\n $(this)[0].load();\n });\n\n hasUpdatedVideoSources = true;\n }\n});","// SVG sprite loader\n// Embeds a .svg file into the page, includes caching\nvar BASE = '/';\n$.get(BASE + 'svg/icons.svg', function(data) {\n var div = document.createElement(\"div\");\n div.className = 'icons-svg';\n div.innerHTML = new XMLSerializer().serializeToString(data.documentElement);\n document.body.insertBefore(div, document.body.childNodes[0]);\n});","\n// Main.js\n// ==================================\n\n$(document).ready(function() {\n\t\n});\n\n\n// Function to fetch query string data\n// Usage: var foo = getParameterByName('foo');\nfunction getParameterByName(name, url) {\n if (!url) url = window.location.href;\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n}","\n$(document).ready(function() {\n\n var slickSettings = {\n arrows: false, // Disable the nav arrows\n dots: true, // Enable pagination dots\n fade: true, // Enable fade transition\n speed: 600,\n touchThreshold: 10,\n autoplay: true,\n autoplaySpeed: 6000\n };\n\n $('.news-carousel__slides').slick(slickSettings);\n\n $('.news-carousel').on('full-width-resize', function(e) {\n $('.news-carousel__slides').slick(\"unslick\").slick(slickSettings);\n });\n});","$(function () {\n var $body = $('body');\n\n // only works on news listing page\n if (!$body.hasClass('page-type--newslisting')) return;\n\n var api = '/umbraco/api/searchapi/filternewsitems/';\n var newsListing, newsFilters;\n\n // list instance\n newsListing = new Vue({\n el: '.news-listing',\n data: newsItems, // from the initial load data\n methods: {\n getNewsDetail: function (news) {\n return news.Date + ' / ' + (news.DocumentTypeAlias === 'successStory' ? 'Success Story' : (news.Category[0] || ''))\n },\n\n prev: function () {\n this.fetch(newsFilters.selectedCategory, newsFilters.selectedDate, Math.max(1, this.pageNumber - 1));\n },\n\n next: function () {\n this.fetch(newsFilters.selectedCategory, newsFilters.selectedDate, Math.min(this.pageNumber + 1, this.totalPages));\n },\n\n reset: function () {\n newsFilters.fetchOnUpdate = false; // disable fetch-on-update for a moment\n newsFilters.selectedCategory = 'allzzzz';\n newsFilters.selectedDate = 'all';\n newsFilters.fetchOnUpdate = true;\n\n this.fetch(newsFilters.selectedCategory, newsFilters.selectedDate, 1);\n },\n\n fetch: function (category, date, page) {\n var vm = this;\n $.getJSON(api, {\n umbracoPageId: umbracoPageId, // from the initial load data\n page: page || 1,\n category: category,\n date: date\n }, function (data) {\n vm.pageSize = data.SearchResults.pageSize;\n vm.pageNumber = data.SearchResults.pageNumber;\n vm.totalItems = data.SearchResults.totalItems;\n vm.totalPages = data.SearchResults.totalPages;\n vm.items = data.SearchResults.items;\n\n newsFilters.dateCounters = data.DateCounts;\n newsFilters.$forceUpdate();\n newsFilters.updateDateList();\n })\n }\n }\n });\n\n // filter instance\n newsFilters = new Vue({\n el: '.filters--news-listing',\n data: {\n selectedCategory: 'all',\n selectedDate: 'all',\n expandedDateList: null,\n dateList: null,\n categoryList: null,\n fetchOnUpdate: true,\n dateCounters: null\n },\n mounted: function () {\n // Check if a category is set in the URL data\n var requestCategory = getParameterByName('category').toLowerCase();\n\n // build categoryList\n var $categoryListingItems = $(this.$refs['category-filter']).find('.filter__listing-item:not(.filter__listing-item--expandable)');\n this.categoryList = $categoryListingItems.map(function (idx, el) {\n var $el = $(el);\n\n // If this category matches the one requested in the URL data, set it as the selected category\n if(requestCategory != null && requestCategory != '' && requestCategory == $el.data('value').toLowerCase()) {\n this.selectedCategory = $el.data('value');\n }\n \n return {\n label: $el.find('.filter__listing-item-label').text().trim(),\n value: $el.data('value')\n }\n }.bind(this)).toArray();\n\n // build dateList\n this.updateDateList();\n },\n computed: {\n selectedCategoryLabel: function () {\n if (this.selectedCategory === 'all')\n return 'All Category';\n\n if (this.selectedCategory === 'success stories')\n return 'Success Stories';\n\n return this.selectedCategory;\n },\n selectedDateLabel: function () {\n if (this.selectedDate === 'all')\n return 'All Dates';\n\n return this.selectedDate;\n\n },\n },\n watch: {\n selectedCategory: function (newCategory) { \n if (this.fetchOnUpdate)\n newsListing.fetch(newCategory, this.selectedDate)\n },\n selectedDate: function (newDate) {\n if (this.fetchOnUpdate)\n newsListing.fetch(this.selectedCategory, newDate)\n }\n },\n methods: {\n updateDateList: function () {\n var $dateListingItems = $(this.$refs['dates-filter']).find('.filter__listing-item:not(.filter__listing-item--expandable)');\n this.dateList = $dateListingItems.map(function (idx, el) {\n var $el = $(el);\n return {\n label: $el.find('.filter__listing-item-label').text().trim(),\n value: $el.data('value')\n }\n }).toArray();\n },\n\n getFilterListingItem: function (evt) {\n if ($(evt.target).hasClass('filter__listing-item'))\n return $(evt.target);\n\n return $(evt.target).parents('.filter__listing-item');\n },\n\n selectDate: function (evt) {\n var $filterListingItem = this.getFilterListingItem(evt);\n this.selectedDate = $filterListingItem.data('value');\n this.toggleDropdown(evt, false);\n },\n\n selectCategory: function (evt) {\n var $filterListingItem = this.getFilterListingItem(evt);\n this.selectedCategory = $filterListingItem.data('value');\n this.toggleDropdown(evt, false);\n },\n\n toggleDropdown: function (evt, flag) {\n var $filter = $(evt.target).parents('.filter');\n $filter.toggleClass('open', flag);\n },\n\n expandDateList: function (year) {\n if (this.expandedDateList === year) {\n this.expandedDateList = null;\n\n } else {\n this.expandedDateList = year;\n }\n },\n\n getCounter: function(dateStr){\n if(this.dateCounters && this.dateCounters[dateStr] !== undefined)\n return dateStr + ' ('+this.dateCounters[dateStr]+')';\n }\n }\n });\n});","$(function () {\n var $body = $('body');\n\n // only works on search result page\n if (!$body.hasClass('page-type--searchresultspage')) return;\n\n var searchApi = '/umbraco/api/searchapi/search/';\n var courseApi = '/umbraco/api/searchapi/filtercourses/';\n var allPageApi = '/umbraco/api/searchapi/filterallpages/';\n var courseListing, courseFilters, otherListing, studyAreas;\n\n var $courseCount = $('#search-results-course-count');\n var $otherCount = $('#search-results-other-count');\n var $searchForm = $('#search-form');\n var $otherResultsTab = $('a[href=\"#other-results\"]');\n\n var GA_UNSUCCESSFUL_SEARCH = true;\n\n function getQuery() {\n var queryString = window.location.search.slice(1); // ignore ? at the beginning\n var queryPairs = queryString.split('&');\n for (var i = 0; i < queryPairs.length; i++) {\n var queryKeyValue = queryPairs[i].split('=');\n if (queryKeyValue[0] === 'query') {\n return unescape(queryKeyValue[1]).replace(/\\+/g, ' ');\n }\n }\n return null;\n }\n\n studyAreas = new Vue({\n el: '#study-areas',\n data: {\n areas: courseAreaResults // from initial load\n }\n });\n\n // search result list instance\n otherListing = new Vue({\n el: '.search-results-listing',\n data: otherPageResults && otherPageResults.items ? otherPageResults : {items: [], pageNumber: 1, pageSize: 10, totalPages: 0, totalItems: 0}, // from the initial load data\n methods: {\n\n // highlight the keywords\n parseDescription: function (description) {\n return description;\n },\n\n prev: function () {\n this.fetch(getQuery(), Math.max(1, this.pageNumber - 1));\n },\n\n next: function () {\n this.fetch(getQuery(), Math.min(this.pageNumber + 1, this.totalPages));\n },\n\n update: function (data) {\n this.pageSize = data.pageSize;\n this.pageNumber = data.pageNumber;\n this.totalItems = data.totalItems;\n this.totalPages = data.totalPages;\n this.items = [...data.items];\n\n $otherCount.text('(' + this.totalItems + ')');\n },\n\n fetch: function (keyword, page) {\n var vm = this;\n $.getJSON(allPageApi, {\n page: page || 1,\n query: keyword\n }, function (data) {\n vm.update(data);\n })\n }\n }\n });\n\n // course list instance\n courseListing = new Vue({\n el: '.courses-listing',\n data: courseResults && courseResults.items ? courseResults : {items: [], pageNumber: 1, pageSize: 10, totalPages: 0, totalItems: 0}, // from the initial load data\n methods: {\n\n prev: function () {\n this.fetch(courseFilters.selectedCampus.value, courseFilters.selectedMode.value,\n Math.max(1, this.pageNumber - 1));\n },\n\n next: function () {\n this.fetch(courseFilters.selectedCampus.value, courseFilters.selectedMode.value,\n Math.min(this.pageNumber + 1, this.totalPages));\n },\n\n reset: function () {\n courseFilters.fetchOnUpdate = false; // disable fetch-on-update for a moment\n courseFilters.selectedCampus = courseFilters.campuses[0];\n courseFilters.selectedMode = courseFilters.modes[0];\n courseFilters.fetchOnUpdate = true;\n\n this.fetch(courseFilters.selectedCampus.value, courseFilters.selectedMode.value, 1);\n },\n\n update: function (data) {\n this.pageSize = data.pageSize;\n this.pageNumber = data.pageNumber;\n this.totalItems = data.totalItems;\n this.totalPages = data.totalPages;\n this.items = [...data.items];\n\n $courseCount.text('(' + this.totalItems + ')');\n },\n\n ga: function () {\n GA_UNSUCCESSFUL_SEARCH = false;\n\n gtag && gtag('event', 'Select a course', {\n event_category: 'Search Results',\n transport_type: 'beacon'\n });\n },\n\n fetch: function (campus, mode, page) {\n var vm = this;\n var req = {\n query: getQuery(),\n // we don't need the umbracopageId parameter here\n page: page || 1,\n campus: campus,\n studymode: mode\n };\n\n $.getJSON(courseApi, req, function (data) {\n vm.update(data);\n })\n }\n }\n });\n\n // filter instance\n courseFilters = new Vue({\n el: '.filters--courses-listing',\n data: function () {\n var data = {\n campuses: LOCATIONS,\n modes: STUDY_MODES,\n fetchOnUpdate: true\n };\n\n data.selectedCampus = data.campuses[0];\n data.selectedMode = data.modes[0];\n return data;\n },\n computed: {\n selectedCampusLabel: function () {\n if (this.selectedCampus === null)\n return 'Any Campus';\n\n return this.selectedCampus.label;\n },\n selectedModeLabel: function () {\n if (this.selectedMode === null)\n return 'Any Mode';\n\n return this.selectedMode;\n },\n },\n watch: {\n selectedCampus: function (newCampus) {\n if (this.fetchOnUpdate)\n courseListing.fetch(newCampus.value, this.selectedMode.value)\n },\n selectedMode: function (newMode) {\n if (this.fetchOnUpdate)\n courseListing.fetch(this.selectedCampus.value, newMode.value)\n }\n },\n methods: {\n selectCampus: function (evt, campus) {\n this.toggleDropdown(evt, false);\n this.selectedCampus = campus;\n },\n\n isCampusSelected: function (campus) {\n return this.selectedCampus === campus;\n },\n\n isModeSelected: function (mode) {\n return this.selectedMode === mode;\n },\n\n selectMode: function (evt, mode) {\n this.toggleDropdown(evt, false);\n this.selectedMode = mode;\n },\n\n toggleDropdown: function (evt, flag) {\n var $filter = $(evt.target).parents('.filter');\n $filter.toggleClass('open', flag);\n },\n }\n });\n\n $searchForm.on('submit', function (e) {\n var keyword = this.query.value.trim();\n if (!keyword) {\n this.query.focus();\n\n } else {\n $.getJSON(searchApi, {\n query: keyword\n }, function (data) {\n courseListing.update(data.CourseResults);\n otherListing.update(data.OtherPageResults);\n studyAreas.areas = data.CourseAreaResults;\n\n if (!data.CourseResults.totalItems && data.OtherPageResults.totalItems) {\n $otherResultsTab.tab('show');\n }\n\n gtag && gtag('event', 'Clarify Search', {\n event_category: 'Search Results',\n transport_type: 'beacon'\n });\n\n window.history.pushState({\n keyword: keyword\n }, 'Search', '?query=' + keyword);\n });\n }\n\n e.preventDefault();\n });\n\n window.addEventListener('popstate', function (e) {\n var keyword = getQuery();\n if (!keyword) return;\n\n $searchForm.get(0).query.value = keyword;\n\n // $.getJSON(searchApi, {\n // query: keyword\n // }, function (data) {\n // courseListing.update(data.CourseResults);\n // otherListing.update(data.OtherPageResults);\n // });\n });\n\n $searchForm.get(0).query.value = getQuery();\n\n if ((!courseListing || !courseListing.items) && otherPageResults.totalItems) {\n console.log(courseListing);\n $otherResultsTab.tab('show');\n }\n\n var GA_REST_OF_SITE_TAB_SENT = false;\n $otherResultsTab.on('click', function(){\n if(!GA_REST_OF_SITE_TAB_SENT) {\n GA_REST_OF_SITE_TAB_SENT = true;\n\n gtag && gtag('event', 'Rest of the site tab', {\n event_category: 'Search Results',\n transport_type: 'beacon'\n });\n }\n });\n\n $('a.search-results-item__link').on('click', function(){\n GA_UNSUCCESSFUL_SEARCH = false;\n });\n\n $(window).on('unload', function(){\n if(GA_UNSUCCESSFUL_SEARCH) {\n gtag && gtag('event', 'Unsuccessful search', {\n event_category: 'Search Results',\n transport_type: 'beacon'\n });\n }\n })\n});","\n// Copied from https://css-tricks.com/snippets/jquery/smooth-scrolling/\n\n$(document).ready(function() {\n $('a[href*=\"#\"]').not('a[href=\"#\"]').not('[role=\"tab\"]').click(function() {\n if (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') || location.hostname == this.hostname) {\n var target = $(this.hash);\n\n target = target.length ? target : $('[name=' + this.hash.slice(1) +']');\n if (target.length) {\n $('html,body').animate({\n scrollTop: target.offset().top\n }, 750);\n return false;\n }\n }\n });\n});\n\n","\n$(document).ready(function() {\n\n var slickSettings = {\n arrows: false, // Disable the nav arrows\n dots: true, // Enable pagination dots\n fade: true, // Enable fade transition\n speed: 600,\n touchThreshold: 10,\n autoplay: true,\n autoplaySpeed: 6000\n };\n\n $('.stories-carousel__slides').slick(slickSettings);\n\n $('.stories-carousel').on('full-width-resize', function(e) {\n $('.stories-carousel__slides').slick(\"unslick\").slick(slickSettings);\n });\n});"]}