var coursesViewModel=function(){function n(n){function i(n,t){return n?n[t]:!1}function r(n){function s(n){var t=[];for(var i in n)t.push(n[i].Name);return t.join(",")}var t=s(configOptions.CourseOptions[n].EntryRequirementYears),i=configOptions.CourseOptions[n].AstraCode,r=configOptions.CourseOptions[n].AstraCodesForKisWidget,u=configOptions.CourseOptions[n].LocationsForKisWidget,f=configOptions.CourseOptions[n].KisCodeForModeOfStudy,e=configOptions.CourseOptions[n].ModeOfStudy.ModeOfStudyCode,o=configOptions.CourseOptions[n].UcasCode;return{academicYears:t,astraCode:i,kisAstraCode:r,kisMos:f,location:u,modeOfStudy:e,ucasCode:o}}var t=this;ko.mapping.fromJSON(n,{},t);t.startDateIndex=ko.observable(0);t.locationIndex=ko.observable(0);t.durationOption=ko.observable(0);t.durationOption.subscribe(function(n){t.kiswidget.removeAll();t.loadMultipleEntryRequirements(n);t.loadKisWidget(n)});t.feeFormatter=function(n){return ko.computed(function(){return"£"+n.toLocaleString("en")},t)};t.durationOptionObj=function(n,i){var r=configOptions.CourseOptions[t.durationOption()][n];return t.startDateIndex(0),t.locationIndex(0),r!==null?i!==undefined&&(r=r[i]):r="no data",ko.computed(function(){return r},t)};t.itemIndexOptionObj=function(n,i){var r=configOptions.CourseOptions[t.durationOption()][n],u;switch(n){case"Location":u=t.locationIndex();configOptions.ApprenticeshipType!==null&&(r=r.sort(function(n,t){return n.DisplayOrder>t.DisplayOrder?1:-1}));break;case"StartDate":u=t.startDateIndex();break;default:u=0}return r!==null?i!==undefined&&(r=r[u][i]):r="no data",ko.computed(function(){return r},t)};t.modulePageLinkText=ko.observable(i(configOptions.ModuleDetailsLink,"Text"));t.modulePageUrl=function(n){var r=i(configOptions.ModuleDetailsLink,"Url"),u=i(configOptions.ModuleDetailsLink,"Target"),f=i(configOptions.CourseOptions[t.durationOption()].Modules[n],"Id"),e=i(configOptions.CourseOptions[t.durationOption()],"Id"),o=configOptions.Id;return ko.computed(function(){return r?{href:r+"?mo="+f+"&co="+e+"&cp="+o,target:u?u:null}:r},t)};t.ctaType=function(n){var r=i(configOptions.CourseOptions[t.durationOption()].ApplyCta[n],"CalltoActionType"),u=i(configOptions.CourseOptions[t.durationOption()].ApplyCta[n],"PhoneNumber"),f=i(configOptions.CourseOptions[t.durationOption()].ApplyCta[n],"ActionUrl");return ko.computed(function(){return r==="CallToActionWithLink"?f:r==="CallToActionWithPhone"?"tel:"+u:"No data"},t)};t.isLoading=ko.observable(!0);t.isErrored=ko.observable(!1);t.entryRequirements=ko.observableArray();t.loadMultipleEntryRequirements=function(n){var i=r(n);if(!i.astraCode||!i.academicYears||!i.kisMos){t.isLoading(!1);return}$.getJSON("/api/coursewidget/multipleentryrequirements",{astraCode:i.astraCode,academicYears:i.academicYears,moaCode:i.modeOfStudy,ucasCode:i.ucasCode}).done(function(n){n?t.entryRequirements(ko.toJS(n)):t.isErrored(!0)}).fail(function(){t.isErrored(!0)}).always(function(){t.isLoading(!1)})};ko.bindingHandlers.tabControlInit={init:function(n,t,i){var r=$(n),u=i.get("indx"),f=r.find(".tab-control");u!=0&&f.removeClass("is-on")}};ko.bindingHandlers.tabSectionInit={init:function(n,t,i){var r=$(n),f=i.get("indx"),u=r.find(".tabbed-content__section");f===0?(u.show(),r.addClass("accordion--toggle"),r.find(".accordion-control").attr("aria-expanded","true")):u.hide()}};t.kisIsLoading=ko.observable(!0);t.kisIsErrored=ko.observable(!1);t.kiswidget=ko.observableArray();t.loadKisWidget=function(n){var u=utilities.breakPoints.width_md,f=$(window).width()>u?"horizontal":"vertical",i=r(n);if(i.kisAstraCode&&i.location&&i.kisMos&&configOptions.LevelOfStudyDesc==="Undergraduate")$.getJSON("/api/coursewidget/kiswidget",{astraCode:i.kisAstraCode,location:i.location,modeOfStudy:i.kisMos,orientation:f}).done(function(n){$.each(n,function(i){t.kiswidget.push(n[i].HtmlFragment)})}).fail(function(){t.kisIsErrored(!0)}).always(function(){t.kisIsLoading(!1)});else return t.kisIsLoading(!1),!1}}function t(){var i=$("#course-wrapper"),t;typeof configOptions!="undefined"&&i.length&&(t=new n,ko.applyBindings(t,i[0]),t.loadMultipleEntryRequirements(0),t.loadKisWidget(0))}return{applyBindings:t}}(),utilities={baselineUnit:6,breakPoints:{width_md:700,width_lg:1020},windowObj:window,getWindowWidth:function(){return this.windowObj.width}},coursesEvents=function(){function f(){function f(){const u=document.getElementById("jump-links-button").getAttribute("aria-expanded");n()===!0?(i.attr("disabled","disabled"),r.classList.remove("closeOnScroll"),u==="false"&&t()):(r.classList.add("closeOnScroll"),i.removeAttr("disabled","disabled"))}const i=$("#jump-links").find(".reveal__link"),r=document.getElementById("jump-links"),u=window.matchMedia("(min-width: "+utilities.breakPoints.width_md+"px)");u.addListener(f);f(u)}function e(){$(".reveal__link, .jump-link").on("click",function(i){const f=document.getElementById("jump-links-button").getAttribute("aria-expanded"),e=document.getElementById("jump-links");f==="true"?(this.className=="reveal__link"&&i.preventDefault(),n()===!1&&r(),u()===!1&&e.classList.add("holdState")):t()})}function o(){function e(){const e=n(),o=document.documentElement;if(u()===!0){if(f.classList.add("border"),f.classList.remove("holdState"),!f.classList.contains("is-closed")&&f.classList.contains("closeOnScroll")){const n=document.getElementById("jump-links-section").clientHeight;o.style.setProperty("--jump-links--height",n+"px");r()}e===!1&&f.classList.remove("closeOnScroll");i()}else e===!1&&(f.classList.add("closeOnScroll"),o.style.setProperty("--jump-links--height","0px")),f.classList.contains("holdState")||t(),f.classList.remove("border")}const f=document.getElementById("jump-links");i();$(utilities.windowObj).on("scroll",_.throttle(e,100))}const n=()=>{const n=window.matchMedia("(min-width: "+utilities.breakPoints.width_md+"px)");return n.matches},t=()=>{const n=document.getElementById("jump-links"),t=document.getElementById("jump-links-button"),i=document.getElementById("jump-links-section");n.classList.contains("is-closed")!=="undefined"&&n.classList.remove("is-closed");t.setAttribute("aria-expanded","true");i.style.removeProperty("display")},r=()=>{const n=document.getElementById("jump-links"),t=document.getElementById("jump-links-button"),r=document.getElementById("jump-links-section");t.setAttribute("aria-expanded","false");r.style.display="none";i();n.classList.add("is-closed")};const i=()=>{const n=document.getElementById("jump-links"),t=document.documentElement;let i=n.offsetHeight+(utilities.baselineUnit*4-1)+"px";t.style.setProperty("--jump-links--offset",i)},u=()=>{const n=document.getElementById("jump-links"),t=n.nextElementSibling.getBoundingClientRect().top;return t<=1?!0:!1};return{click:e,scroll:o,resize:f}}();$(function(){const n=document.getElementsByClassName("js-isPageEditing").length>0;n||coursesEvents.scroll();coursesEvents.click();coursesEvents.resize();coursesViewModel.applyBindings()})