{"version":3,"sources":["course-detail.js"],"names":["tabContent","document","querySelector","label","getElementsByClassName","content","subtitles","list","j","length","onclick","update","bind","this","push","active","activeLabel","classList","remove","activeInfoSubtitle","activeInfoList","add","$","val","getAttribute","history","pushState","index","window","on","e","originalEvent","state","links","oldActive","tabWrap","childElementCount","href","attr","$this","preventDefault","scrollToEl","querySelectorAll","forEach","link","i","setAttribute","addEventListener","oldActiveLink","activeLink","el","clientWidth","pageYOffset","innerHeight","getBoundingClientRect","top","parseInt"],"mappings":"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","file":"../course-detail.js","sourcesContent":["(function() {\n\n    // Control the tab content on the course detail page\n\n    var tabContent = document.querySelector('.js-tab-content');\n\n    var label = tabContent.getElementsByClassName('tab-content__label');\n    var content = tabContent.getElementsByClassName('tab-content__content');\n\n    // Control the key info section via the top tabs\n    var subtitles = document.getElementsByClassName('js-subtitles')\n    var list = document.getElementsByClassName('js-lists')\n\n    for (var j = 0; j < label.length; j++) {\n        (function (j) {\n            label[j].onclick = update.bind(this, j, true);\n        })(j)\n    }\n\n    function update(j, push) {\n\n        var active = tabContent.getElementsByClassName('tab-content__content--active')[0];\n        if (active) {\n            active.classList.remove('tab-content__content--active');\n        }\n\n        var activeLabel = tabContent.getElementsByClassName('tab-content__label--active')[0];\n        if (activeLabel) {\n            activeLabel.classList.remove('tab-content__label--active');\n        }\n\n        var activeInfoSubtitle = document.getElementsByClassName('course-detail__info-subtitle--active')[0]\n        if (activeInfoSubtitle) {\n            activeInfoSubtitle.classList.remove('course-detail__info-subtitle--active')\n        }\n\n        var activeInfoList = document.getElementsByClassName('course-detail__info-list--active')[0]\n        if (activeInfoList) {\n            activeInfoList.classList.remove('course-detail__info-list--active')\n        }\n\n        content[j].classList.add('tab-content__content--active');\n        label[j].classList.add('tab-content__label--active');\n        subtitles[j].classList.add('course-detail__info-subtitle--active');\n        list[j].classList.add('course-detail__info-list--active');\n\n        $('.js-enquiry-course-variation').val(label[j].getAttribute('data-variation-id'));\n\n        if (push) {\n            history.pushState({index: j}, '', label[j].getAttribute('data-variation-url'));\n        }\n    }\n\n    $(window).on(\"popstate\", function (e) {\n        var state = e.originalEvent.state || {};\n        var index = state.index || 0;\n        update(index, false);\n    });\n\n    // Change the tab width if it has less than three labels\n    const tabWrap = document.querySelector('.tab-content__header');\n\n    if (tabWrap) {\n        if (tabWrap.childElementCount < 3) {\n            tabWrap.classList.add('tab-content__header--fewer');\n        }\n    }\n\n    // Course detail anchor scrolling\n\n    $(document).on('click', '.course-detail__nav-anchor', function(e) {\n        var $this = $(this);\n        var href = $this.attr('href');\n        if (href != '#') {\n            e.preventDefault();\n            scrollToEl($(href));\n        }\n    });\n\n    const watchScroll = function() {\n        const links = document.querySelectorAll('.course-detail__nav-anchor');\n        let active = 0;\n        let oldActive = 0;\n\n        links[0].classList.add('course-detail__nav-anchor--active');\n\n        links.forEach((link, i) => {\n            link.setAttribute('data-scroll-id', i);\n        })\n\n        document.addEventListener('scroll', function() {\n            links.forEach((link) => {\n                if (link.clientWidth > 0) {\n                    let el = document.querySelector(link.getAttribute('href'));\n                    if (el) {\n                        if ((window.pageYOffset + window.innerHeight / 2) >= el.getBoundingClientRect().top + window.pageYOffset) {\n                            active = parseInt(link.getAttribute('data-scroll-id'));\n                        }\n                    }\n                }\n            });\n\n            if (oldActive !== active) {\n                const oldActiveLink = document.querySelector('.course-detail__nav-anchor[data-scroll-id=\"' + oldActive + '\"]');\n                const activeLink = document.querySelector('.course-detail__nav-anchor[data-scroll-id=\"' + active + '\"]');\n\n                if (oldActiveLink) {\n                    oldActiveLink.classList.remove('course-detail__nav-anchor--active');\n                }\n\n                if (activeLink) {\n                    activeLink.classList.add('course-detail__nav-anchor--active');\n                }\n\n                oldActive = active;\n            }\n        });\n    }\n\n    watchScroll();\n})();\n"]}