{"version":3,"sources":["statemanager.js","AccordionContent.js","elevate-scripts.js","GlobalWidgets.js","HighlightStrap.js","HospitalSlider.js","iFrameWidget.js","ImageSlider.js","MainHeader.js","PrimaryNav.js","SampleWidget.js","testimonial-widget.js","VideoPlayer.js","widget-scripts.js","_BodyCopy.js","main.js"],"names":["ssm","window","StateManager","this","callbacks","sm","enter","leave","resize","firstRun","md","lg","xl","mobile","desktop","prototype","run","addState","id","query","onEnter","onLeave","onResize","onFirstRun","addOnEnter","stateId","callback","push","addOnLeave","addOnResize","addOnFirstRun","self","i","length","apply","call","SVHA","Utility","$","AccordionContent","args","defaults","firstOpen","allOpen","mobileOnly","resetOnViewportChange","selectors","widgetContainer","accordionItem","btnToggle","contentBlock","btnToggleAll","options","extend","$widgetContainer","$accordionItem","parent","$btnToggle","$btnToggleAll","isActive","setDefaultState","bindEvents","selector","toggleAccordion","targetItem","hasClass","closeAccordion","openAccordion","addClass","targetContent","find","openHeight","attr","css","height","display","removeClass","toggleAll","each","index","$itemContent","defaultHeight","resetAccordions","removeAttr","click","parents","Widgets","first","jQuery","loadEventsAndLearningContentBySpecialities","titleText","selectedSpeciality","filterType","html","val","text","ajax","url","type","data","seletedSpeciality","success","error","loadEventsAndLearningContentByHospitals","selectedHospital","selectedText","dataLayer","event","searchtext","console","log","seletedHospital","loadEventsBySearchText","searchText","trim","loadEventsAndLearningContentByPresenter","presenter","isvisitor","_isvisitor","getParameterByName","loadPresentersBySearchText","presenterIds","visitorPresenterIds","isevent","e","loadLearningContentSearchText","name","replace","location","href","results","RegExp","exec","decodeURIComponent","document","ready","change","keypress","which","preventDefault","GlobalWidgets","init","HighlightStrap","swiper","swiperContainer","$swiperContainer","initSwiper","Swiper","slidesPerView","spaceBetween","grabCursor","destroySwiper","destroy","HospitalSlider","swiperSlide","btnNext","btnPrev","$btnNext","$btnPrev","centeredSlides","centeredSlidesBounds","loop","slidesOffsetBefore","slidesOffsetAfter","breakpoints","992","freeMode","navigation","nextEl","prevEl","iFrameWidget","videoPlayer","heightMobile","heightDesktop","srcDefault","srcDesktop","$targetIframe","setHeight","srcSwap","srcUrl","ImageSlider","imgDescTxt","$imgDescTxt","getSlide","targetIndex","eq","setDescTxt","txtString","append","appendLink","isExternal","updateDesc","slideIndex","$targetSlide","imgTxt","linkUrl","slideStart","activeSlide","activeIndex","pagination","el","on","slideChangeTransitionStart","MainHeader","mainHeader","navWrapper","searchWrapper","btnNavTrigger","btnOpenSearch","btnOpenSearch_desktop","btnCloseSearch","searchInput","state","navOpen","$mainHeader","$btnNavTrigger","$btnOpenSearch","$btnOpenSearch_desktop","$btnCloseSearch","$searchInput","openOffCanvasNav","lockViewport","closeOffCanvasNav","unlockViewport","openSearch","focus","closeSearch","blur","PrimaryNav","activeNavParent","scrollOnOpen","scrollDelay","scrollSpeed","multipleOpen","mainNav","mainNavTrigger","mainNavSubNav","$mainNav","$mainNavTrigger","$mainNavSubNav","$navWrapper","initMobileAccordion","resetMobileAccordion","$container","scrollToBtn","targetBtn","scrollAmount","offset","top","animate","scrollTop","openSubNavAccordion","targetSubNav","maxHeight","setTimeout","closeSubNavAccordion","showSubNav","activeNavItem","hideSubNav","$parentListItem","$targetSubNav","next","hoverIntent","over","out","$elem","timeout","_SampleWidget_","widgetChild","timeOut","$widgetChild","clickable","VideoPlayer","videoElem","btnPlay","$videoElem","$btnPlay","initPlayer","Plyr","controls","playVideo","play","api_base","na_icon","av_icon","OrthoContact","form","stop","slideDown","hide","show","openContactForm","openSelfFundedEnquireFormOnHospitalSelect","hospitalId","setEnquireFormValues","openSelfFundedEnquireForm","doctorName","hospitalControl","serviceTypeControl","serviceNameControl","loadFormServiceNamesSelector","selectedServiceType","getElementById","fetch","then","response","ok","Error","json","serviceNameDropdown","innerHTML","defaultOption","createElement","value","textContent","appendChild","forEach","item","option","catch","message","setServiceFilterDefaultControlState","issearch","onTreatmentChange","treatmentId","contentType","empty","o","Option","title","body","body2","fullArticleLink","prop","onServiceTypeChange","servicefinderservicenamecookie","getServiceFinderCookieValue","hasValue","createOrUpdateServiceFinderCookie","serviceFinderMode","hdnserviceitemspath","serviceTypeId","hospitalCode","servicefinderdisplaymode","path","def","trigger","_html","getSelectedHospitalShortName","parts","baseUrl","params","hParamExists","newUrl","indexOf","split","param","startsWith","join","onHospitalChange","hospitalcode","isFilterRequest","requestedService","nodeid","onProcedureChange","$drTreatment","remove","Array","isArray","newOption","servicefinderhospitalcookie","servicefinderservicetypecookie","checkCorporatePopupCookie","style","onclick","setCorporatePopupCookie","slideUp","clone","insertBefore","prepend","stickOnScroll","topOffset","setParentOnStick","prependTo","hasOptionWithValue","addEventListener","key","onDocumentSearchServices","undefined","getElementsByClassName","includes","onload","localStorage","setItem","innerText","scriptLoaded","onFindSpecialistsChange","procedureId","bookNowLink","myHealthId","specialistBookingUrl","imageUrl","imageAlt","aboutDescriptionPart1","aboutDescriptionPart2","loadMyHealth1stScript","reinitializeMyHealth1stWidget","script","src","head","widget_setup","dispatchEvent","Event","SetNoService","GetTheHospitalNamesWithServiceOffer","hasText","hospital","customMessage","onSearchServices","searchTitleAndDescription","searchTerm","resultlist","resultitem","filterSelection","c","x","svRemoveClass","className","svAddClass","showCount","element","arr1","arr2","splice","cookieName","cookieValue","expirationDays","expirationDate","Date","setDate","getDate","cookieString","encodeURIComponent","toUTCString","cookie","selectSelector","filter","cookieArray","substring","OnFindOutMoreClick","a","target","cname","cvalue","exdays","getCorporatePopupCookie","d","setTime","getTime","expires","decodedCookie","ca","charAt","searchType","createArticleBlockHTML","fullArticleLink2","imageSrc","altText","linkHref","description","linkHref2","counterWrapper","counterElement","querySelector","endValue","parseInt","getAttribute","currentValue","hasAnimated","startAnimation","classList","add","animateCounter","isInViewport","rect","getBoundingClientRect","left","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","checkScroll","removeEventListener","setHospitalValue","getItem","referrer","map","URL","searchParams","get","toUpperCase","slice","children","firstElementChild","removeItem","picturefill","svg4everybody","FooterAccordion","highlightElements","querySelectorAll","videoElements","iFrameElements","SpecialistTemplateAccordions"],"mappings":"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","file":"main.min.js","sourcesContent":["(function (ssm, window) {\r\n\r\n    function StateManager() {\r\n        this.callbacks = {\r\n            'sm': {\r\n                'enter': [],\r\n                'leave': [],\r\n                'resize': [],\r\n                'firstRun': []\r\n            },\r\n\r\n            'md': {\r\n                'enter': [],\r\n                'leave': [],\r\n                'resize': [],\r\n                'firstRun': []\r\n            },\r\n\r\n            'lg': {\r\n                'enter': [],\r\n                'leave': [],\r\n                'resize': [],\r\n                'firstRun': []\r\n            },\r\n\r\n            'xl': {\r\n                'enter': [],\r\n                'leave': [],\r\n                'resize': [],\r\n                'firstRun': []\r\n            },\r\n\r\n            'mobile': {\r\n                'enter': [],\r\n                'leave': [],\r\n                'resize': [],\r\n                'firstRun': []\r\n            },\r\n\r\n            'desktop': {\r\n                'enter': [],\r\n                'leave': [],\r\n                'resize': [],\r\n                'firstRun': []\r\n            }\r\n        };\r\n    }\r\n\r\n    StateManager.prototype.run = function() {\r\n        this.ssm = ssm;\r\n        this.ssm.addState({\r\n            id: 'sm',\r\n            query: '(min-width: 576px) and (max-width: 767px)',\r\n            onEnter: this.onEnter('sm'),\r\n            onLeave: this.onLeave('sm'),\r\n            onResize: this.onResize('sm'),\r\n            onFirstRun: this.onFirstRun('sm')\r\n        });\r\n\r\n        this.ssm.addState({\r\n            id: 'md',\r\n            query: '(min-width: 768px) and (max-width: 991px)',\r\n            onEnter: this.onEnter('md'),\r\n            onLeave: this.onLeave('md'),\r\n            onResize: this.onResize('md'),\r\n            onFirstRun: this.onFirstRun('md')\r\n        });\r\n\r\n        this.ssm.addState({\r\n            id: 'lg',\r\n            query: '(min-width: 992px) and (max-width: 1199px)',\r\n            onEnter: this.onEnter('lg'),\r\n            onLeave: this.onLeave('lg'),\r\n            onResize: this.onResize('lg'),\r\n            onFirstRun: this.onFirstRun('lg')\r\n        });\r\n\r\n        this.ssm.addState({\r\n            id: 'xl',\r\n            query: '(min-width: 1200px)',\r\n            onEnter: this.onEnter('xl'),\r\n            onLeave: this.onLeave('xl'),\r\n            onResize: this.onResize('xl'),\r\n            onFirstRun: this.onFirstRun('xl')\r\n        });\r\n\r\n        this.ssm.addState({\r\n            id: 'mobile',\r\n            query: '(max-width: 991px)',\r\n            onEnter: this.onEnter('mobile'),\r\n            onLeave: this.onLeave('mobile'),\r\n            onResize: this.onResize('mobile'),\r\n            onFirstRun: this.onFirstRun('mobile')\r\n        });\r\n\r\n        this.ssm.addState({\r\n            id: 'desktop',\r\n            query: '(min-width: 992px)',\r\n            onEnter: this.onEnter('desktop'),\r\n            onLeave: this.onLeave('desktop'),\r\n            onResize: this.onResize('desktop'),\r\n            onFirstRun: this.onFirstRun('desktop')\r\n        });\r\n    };\r\n\r\n    StateManager.prototype.addOnEnter = function (stateId, callback) {\r\n        if(\r\n            typeof this.callbacks[stateId] !== 'undefined'\r\n            && typeof this.callbacks[stateId].enter !== 'undefined'\r\n            && typeof callback === 'function'\r\n        ) {\r\n            this.callbacks[stateId].enter.push(callback);\r\n        }\r\n    };\r\n    StateManager.prototype.addOnLeave = function (stateId, callback) {\r\n        if(\r\n            typeof this.callbacks[stateId] !== 'undefined'\r\n            && typeof this.callbacks[stateId].leave !== 'undefined'\r\n            && typeof callback === 'function'\r\n        ) {\r\n            this.callbacks[stateId].leave.push(callback);\r\n        }\r\n    };\r\n    StateManager.prototype.addOnResize = function (stateId, callback) {\r\n        if(\r\n            typeof this.callbacks[stateId] !== 'undefined'\r\n            && typeof this.callbacks[stateId].resize !== 'undefined'\r\n            && typeof callback === 'function'\r\n        ) {\r\n            this.callbacks[stateId].resize.push(callback);\r\n        }\r\n    };\r\n    StateManager.prototype.addOnFirstRun = function (stateId, callback) {\r\n        if(\r\n            typeof this.callbacks[stateId] !== 'undefined'\r\n            && typeof this.callbacks[stateId].firstRun !== 'undefined'\r\n            && typeof callback === 'function'\r\n        ) {\r\n            this.callbacks[stateId].firstRun.push(callback);\r\n        }\r\n    };\r\n\r\n    StateManager.prototype.onEnter = function (stateId) {\r\n        var self = this;\r\n        return function() {\r\n            for(var i = 0; i < self.callbacks[stateId].enter.length; i++) {\r\n                self.callbacks[stateId].enter[i].apply();\r\n            }\r\n        };\r\n    };\r\n    StateManager.prototype.onLeave = function (stateId) {\r\n        var self = this;\r\n        return function() {\r\n            for(var i = 0; i < self.callbacks[stateId].leave.length; i++) {\r\n                self.callbacks[stateId].leave[i].call();\r\n            }\r\n        };\r\n    };\r\n    StateManager.prototype.onResize = function (stateId) {\r\n        var self = this;\r\n        return function() {\r\n            for(var i = 0; i < self.callbacks[stateId].resize.length; i++) {\r\n                self.callbacks[stateId].resize[i].call();\r\n            }\r\n        };\r\n    };\r\n    StateManager.prototype.onFirstRun = function (stateId) {\r\n        var self = this;\r\n        return function() {\r\n            for(var i = 0; i < self.callbacks[stateId].firstRun.length; i++) {\r\n                self.callbacks[stateId].firstRun[i].call();\r\n            }\r\n        };\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Utility = window.SVHA.Utility || {};\r\n    window.SVHA.Utility.StateManager = new StateManager();\r\n})(ssm, window);\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function AccordionContent(args) {\r\n        this.defaults = {\r\n            firstOpen: true,\r\n            allOpen: false,\r\n            mobileOnly: false,\r\n            resetOnViewportChange: false,\r\n            selectors: {\r\n                widgetContainer: '.accordion-content',\r\n                accordionItem: '.accordion-item',\r\n                btnToggle: '.btn-toggle',\r\n                contentBlock: '.content-block',\r\n                btnToggleAll: '.btn-toggle-all'\r\n            }\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$accordionItem = this.parent(this.options.selectors.accordionItem);\r\n        this.$btnToggle = this.parent(this.options.selectors.btnToggle);\r\n        this.$btnToggleAll = this.parent(this.options.selectors.btnToggleAll);\r\n\r\n\r\n        if (this.options.mobileOnly === true){\r\n            if(SVHA.Utility.StateManager.ssm.isActive('mobile')){\r\n                this.setDefaultState();\r\n            }\r\n        } else {\r\n            this.setDefaultState();\r\n        }\r\n        this.bindEvents();\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    AccordionContent.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n\r\n    /*\r\n    UI events\r\n     */\r\n    AccordionContent.prototype.toggleAccordion = function (targetItem) {\r\n        if (targetItem.hasClass('active')){\r\n            this.closeAccordion(targetItem)\r\n        } else {\r\n            this.openAccordion(targetItem)\r\n        }\r\n    };\r\n\r\n    AccordionContent.prototype.openAccordion = function (targetItem) {\r\n        targetItem.addClass('active');\r\n        var targetContent = targetItem.find(this.options.selectors.contentBlock);\r\n        var openHeight = targetContent.attr('data-open-height');\r\n\r\n        targetContent.css({\r\n            height: openHeight+'px',\r\n            display: 'block'\r\n        });\r\n    };\r\n\r\n    AccordionContent.prototype.closeAccordion = function (targetItem) {\r\n        targetItem.removeClass('active');\r\n        var targetContent = targetItem.find(this.options.selectors.contentBlock);\r\n        targetContent.css({\r\n            height: 0\r\n        });\r\n    };\r\n\r\n    AccordionContent.prototype.toggleAll = function () {\r\n        var self = this;\r\n        if (this.options.allOpen === false){\r\n\r\n            this.$accordionItem.each(function(){\r\n               self.openAccordion($(this));\r\n            });\r\n\r\n            this.options.allOpen = true;\r\n\r\n        } else {\r\n\r\n            this.$accordionItem.each(function(){\r\n                self.closeAccordion($(this));\r\n            });\r\n\r\n            this.options.allOpen = false;\r\n        }\r\n    };\r\n\r\n\r\n    /*\r\n    Default state and event binding\r\n     */\r\n    AccordionContent.prototype.setDefaultState = function () {\r\n        var self = this;\r\n        this.$accordionItem.each(function(index){\r\n            var $itemContent = $(this).find(self.options.selectors.contentBlock);\r\n            var defaultHeight = $itemContent.height();\r\n\r\n            $itemContent.attr('data-open-height', defaultHeight);\r\n            $itemContent.css({\r\n                display: 'block',\r\n                height: '0px'\r\n            });\r\n\r\n            if(self.options.firstOpen === true){\r\n                //Open the first\r\n                if (index === 0){\r\n                    self.openAccordion($(this));\r\n                }\r\n            }\r\n        });\r\n    };\r\n\r\n    /*\r\n    Reset accordions\r\n     */\r\n    AccordionContent.prototype.resetAccordions = function () {\r\n        var self = this;\r\n        this.$accordionItem.each(function(index){\r\n            var $itemContent = $(this).find(self.options.selectors.contentBlock);\r\n\r\n            $itemContent.removeAttr('style');\r\n        });\r\n    };\r\n\r\n\r\n    AccordionContent.prototype.bindEvents = function () {\r\n        var self = this;\r\n\r\n        this.$btnToggle.each(function(){\r\n\r\n            $(this).click(function () {\r\n                var targetItem = $(this).parents(self.options.selectors.accordionItem);\r\n                self.toggleAccordion(targetItem);\r\n            });\r\n        });\r\n\r\n        this.$btnToggleAll.click(function(){\r\n            self.toggleAll();\r\n        });\r\n\r\n        if (this.options.resetOnViewportChange === true){\r\n            SVHA.Utility.StateManager.addOnEnter('desktop', function() {\r\n                self.resetAccordions();\r\n            });\r\n\r\n            SVHA.Utility.StateManager.addOnEnter('mobile', function() {\r\n                self.setDefaultState();\r\n            });\r\n        }\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.AccordionContent = AccordionContent;\r\n\r\n\r\n    var targetItem = $('.accordion-content--inner .accordion-item.hospital-accord').first();\r\n\r\n    if (targetItem && targetItem.length > 0) {\r\n\r\n        targetItem.addClass('active');\r\n        var targetContent = targetItem.find($('.content-block')[0]);\r\n        var openHeight = targetContent.attr('data-open-height');\r\n\r\n        targetContent.css({\r\n            height: openHeight + 'px',\r\n            display: 'block'\r\n        });\r\n    }\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","$(document).ready(function () {\r\n\r\n    if ($('.ele-prg').length > 0) {\r\n\r\n        loadEventsAndLearningContentBySpecialities();\r\n        loadEventsAndLearningContentByHospitals();\r\n        loadEventsBySearchText();\r\n        loadEventsAndLearningContentByPresenter();\r\n        loadPresentersBySearchText();\r\n        loadLearningContentSearchText();\r\n        $('#SelectedElevateSpeciality').change(function () {\r\n\r\n            loadEventsAndLearningContentBySpecialities();\r\n\r\n            var selectedText = $('#SelectedElevateSpeciality option:selected').text();\r\n\r\n            if (selectedText && selectedText != \"\") {\r\n\r\n                window.dataLayer = window.dataLayer || [];\r\n                window.dataLayer.push({\r\n                    'event': 'elevatescreensearch',\r\n                    'searchtext': selectedText\r\n                });\r\n\r\n                console.log(\"Data Layer Push: \", selectedText);\r\n            }\r\n\r\n        });\r\n\r\n        $('#SelectedHospital').change(function () {\r\n\r\n            loadEventsAndLearningContentByHospitals();\r\n\r\n        });\r\n\r\n        $('input[type=radio][name=flexRadioDefault]').change(function () {\r\n\r\n            loadEventsAndLearningContentBySpecialities();\r\n            loadEventsAndLearningContentByHospitals();\r\n            loadEventsAndLearningContentByPresenter();\r\n            loadPresentersBySearchText();\r\n            loadLearningContentSearchText();\r\n        });\r\n\r\n        // Trigger function on clicking the search icon\r\n        $('#div-events-search').click(function () {\r\n            loadEventsBySearchText();\r\n        });\r\n\r\n        $('#div-presenters-search').click(function () {\r\n            loadPresentersBySearchText();\r\n        });\r\n\r\n        $('#div-learning-content-search').click(function () {\r\n            loadLearningContentSearchText();\r\n        });\r\n\r\n\r\n        // Trigger function on pressing Enter key while the textbox is focused\r\n        $('.ele-events input[name=\"SearchText\"]').keypress(function (e) {\r\n            if (e.which == 13) { // Enter key corresponds to keycode 13\r\n                e.preventDefault(); // Prevent the default action (form submission)\r\n                loadEventsBySearchText();\r\n            }\r\n        });\r\n\r\n        $('.ele-presenters input[name=\"SearchText\"]').keypress(function (e) {\r\n            if (e.which == 13) { // Enter key corresponds to keycode 13\r\n                e.preventDefault(); // Prevent the default action (form submission)\r\n                loadPresentersBySearchText();\r\n            }\r\n        });\r\n\r\n        $('.ele-learning-content input[name=\"SearchText\"]').keypress(function (e) {\r\n            if (e.which == 13) { // Enter key corresponds to keycode 13\r\n                e.preventDefault(); // Prevent the default action (form submission)\r\n                loadLearningContentSearchText();\r\n            }\r\n        });\r\n\r\n        $('.ele-events input[name=\"flexRadioDefault\"]').change(function () {\r\n            /* var filterType = $(this).val();*/\r\n            loadEventsBySearchText();\r\n        });\r\n\r\n    }\r\n\r\n});\r\n\r\nfunction loadEventsAndLearningContentBySpecialities() {\r\n\r\n    if ($(\".ele-specs\").length > 0) {\r\n\r\n        $(\"#elevate-specialities-loader\").css(\"display\", \"block\");\r\n        $('#elevate-event-and-content-area-id').html(\"\");\r\n\r\n        var titleText = \"Content\";\r\n\r\n        var selectedSpeciality = $('#SelectedElevateSpeciality').val();\r\n        var filterType = $('input[type=radio][name=flexRadioDefault]:checked').val();\r\n\r\n        if (filterType == \"events\") {\r\n            titleText = \"Events\";\r\n        }\r\n        else if (filterType == \"presentations\") {\r\n            titleText = \"Learning Content\";\r\n        }\r\n\r\n        if (!selectedSpeciality || selectedSpeciality == null) {\r\n            selectedSpeciality = 0;\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText);\r\n        }\r\n        else {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText + \" related to '\" + $('#SelectedElevateSpeciality :selected').text() + \"'\");\r\n        }\r\n\r\n        $.ajax({\r\n            url: '/ElevateSpecialities/GetContentBySpecialityId',\r\n            type: 'GET',\r\n            data: { seletedSpeciality: selectedSpeciality, filterType: filterType },\r\n            success: function (data) {\r\n                $('#elevate-event-and-content-area-id').html(data);\r\n                $(\"#elevate-specialities-loader\").css(\"display\", \"none\");\r\n            },\r\n            error: function () {\r\n                //alert(\"An error occurred while loading content.\");\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction loadEventsAndLearningContentByHospitals() {\r\n\r\n    if ($(\".ele-hospitals\").length > 0) {\r\n\r\n        $(\"#elevate-specialities-loader\").css(\"display\", \"block\");\r\n        $('#elevate-event-and-content-area-id').html(\"\");\r\n\r\n        var titleText = \"Content\";\r\n\r\n        var selectedHospital = $('#SelectedHospital').val();\r\n        var filterType = $('input[type=radio][name=flexRadioDefault]:checked').val();\r\n\r\n        if (filterType == \"events\") {\r\n            titleText = \"Events\";\r\n        }\r\n        else if (filterType == \"presentations\") {\r\n            titleText = \"Learning Content\";\r\n        }\r\n\r\n        if (!selectedHospital || selectedHospital == null) {\r\n            selectedHospital = 0;\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText);\r\n        }\r\n        else {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText + \" related to '\" + $('#SelectedHospital :selected').text() + \"'\");\r\n        }\r\n\r\n        var selectedText = $('#SelectedHospital option:selected').text();\r\n\r\n        if (selectedText && selectedText != \"\") {\r\n\r\n            window.dataLayer = window.dataLayer || [];\r\n            window.dataLayer.push({\r\n                'event': 'elevatescreensearch',  \r\n                'searchtext': selectedText\r\n            });\r\n\r\n            console.log(\"Data Layer Push: \", selectedText);\r\n        }\r\n\r\n        $.ajax({\r\n            url: '/ElevateHospitals/GetContentByHospitalId',\r\n            type: 'GET',\r\n            data: { seletedSpeciality: 0, seletedHospital: selectedHospital, filterType: filterType },\r\n            success: function (data) {\r\n                $('#elevate-event-and-content-area-id').html(data);\r\n                $(\"#elevate-specialities-loader\").css(\"display\", \"none\");\r\n            },\r\n            error: function () {\r\n                //alert(\"An error occurred while loading content.\");\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction loadEventsBySearchText() {\r\n\r\n    if ($(\".ele-events\").length > 0) {\r\n\r\n        $(\"#elevate-specialities-loader\").css(\"display\", \"block\");\r\n        $('#elevate-event-and-content-area-id').html(\"\");\r\n\r\n        var titleText = \"Events\";\r\n\r\n        var searchText = $('#SearchText').val();\r\n        var filterType = $('input[type=radio][name=flexRadioDefault]:checked').val();\r\n\r\n        if (filterType == \"groupbyhospital\") {\r\n            titleText = \"events grouped by hospital\";\r\n        }\r\n        else if (filterType == \"groupbyspeciality\") {\r\n            titleText = \"events grouped by speciality\";\r\n        }\r\n\r\n        if (!searchText || searchText == null) {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText);\r\n        }\r\n        else {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText + \" related to '\" + searchText + \"'\");\r\n        }\r\n\r\n        if (searchText.trim() !== '') {\r\n            window.dataLayer = window.dataLayer || [];\r\n            window.dataLayer.push({\r\n                'event': 'elevatescreensearch',\r\n                'searchtext': searchText\r\n            });\r\n\r\n            console.log('Data Layer Push: SearchText = ' + searchText); // For testing purposes\r\n        }\r\n\r\n        $.ajax({\r\n            url: '/ElevateEvents/GetElevateEventsBySearchText',\r\n            type: 'GET',\r\n            data: { searchText: searchText, filterType: filterType },\r\n            success: function (data) {\r\n                $('#elevate-event-and-content-area-id').html(data);\r\n                $(\"#elevate-specialities-loader\").css(\"display\", \"none\");\r\n            },\r\n            error: function () {\r\n                //alert(\"An error occurred while loading content.\");\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction loadEventsAndLearningContentByPresenter() {\r\n\r\n    if ($(\".ele-presenter\").length > 0) {\r\n\r\n        $(\"#elevate-specialities-loader\").css(\"display\", \"block\");\r\n        $('#elevate-event-and-content-area-id').html(\"\");\r\n\r\n        var titleText = \"Content\";\r\n        _isvisitor = false;\r\n\r\n        var presenter = getParameterByName('id');\r\n        var isvisitor = getParameterByName('v');\r\n        var filterType = $('input[type=radio][name=flexRadioDefault]:checked').val();\r\n\r\n        if (filterType == \"events\") {\r\n            titleText = \"Events\";\r\n        }\r\n        else if (filterType == \"presentations\") {\r\n            titleText = \"Learning Content\";\r\n        }\r\n\r\n        $(\"#elevate-specialities-search-header\").html(\"All \" + titleText + \" by \" + $(\"#h1-doctor-name\").html());\r\n\r\n        if (!presenter || presenter == null) {\r\n            presenter = 0;\r\n        }\r\n\r\n        if (isvisitor == null || isvisitor == \"0\")\r\n            _isvisitor = false;\r\n\r\n        if (isvisitor == \"1\")\r\n            _isvisitor = true;\r\n\r\n        $.ajax({\r\n            url: '/ElevatePresenter/GetContentByPresenterId',\r\n            type: 'GET',\r\n            data: { presenter: presenter, filterType: filterType, isvisitor: _isvisitor },\r\n            success: function (data) {\r\n                $('#elevate-event-and-content-area-id').html(data);\r\n                $(\"#elevate-specialities-loader\").css(\"display\", \"none\");\r\n            },\r\n            error: function () {\r\n                //alert(\"An error occurred while loading content.\");\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction loadPresentersBySearchText() {\r\n\r\n    if ($(\".ele-presenters\").length > 0) {\r\n\r\n        $(\"#elevate-specialities-loader\").css(\"display\", \"block\");\r\n        $('#elevate-event-and-content-area-id').html(\"\");\r\n        var presenterIds = \"\";\r\n        var visitorPresenterIds = \"\";\r\n        var isevent = false;\r\n\r\n        if ($(\"#hdnEventPresenterIds\") && $(\"#hdnEventPresenterIds\").val() && $(\"#hdnEventPresenterIds\").val() != '') {\r\n            presenterIds = $(\"#hdnEventPresenterIds\").val();\r\n        }\r\n\r\n        if ($(\"#hdnEventVisitorPresenterIds\") && $(\"#hdnEventVisitorPresenterIds\").val() && $(\"#hdnEventVisitorPresenterIds\").val() != '') {\r\n            visitorPresenterIds = $(\"#hdnEventVisitorPresenterIds\").val();\r\n        }\r\n\r\n        if ($(\"#hdnIsEvent\") && $(\"#hdnIsEvent\").val() && $(\"#hdnIsEvent\").val() != '') {\r\n            isevent = $(\"#hdnIsEvent\").val();\r\n        }\r\n\r\n        var titleText = \"Presenters\";\r\n\r\n        var searchText = $('#SearchText').val();\r\n        var filterType = $('input[type=radio][name=flexRadioDefault]:checked').val();\r\n\r\n        if (searchText.trim() !== '') {\r\n            window.dataLayer = window.dataLayer || [];\r\n            window.dataLayer.push({\r\n                'event': 'elevatescreensearch',\r\n                'searchtext': searchText\r\n            });\r\n\r\n            console.log('Data Layer Push: SearchText = ' + searchText);\r\n        }\r\n\r\n        if (filterType == \"groupbyhospital\") {\r\n            titleText = \"events grouped by hospital\";\r\n        }\r\n        else if (filterType == \"groupbyspeciality\") {\r\n            titleText = \"events grouped by speciality\";\r\n        }\r\n\r\n        if (!searchText || searchText == null) {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText);\r\n        }\r\n        else {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText + \" related to '\" + searchText + \"'\");\r\n        }\r\n\r\n        $.ajax({\r\n            url: '/ElevatePresenters/GetContentByPresenters',\r\n            type: 'GET',\r\n            data: { searchText: searchText, filterType: filterType, presenterIds: presenterIds, visitorPresenterIds: visitorPresenterIds, isevent: isevent },\r\n            success: function (data) {\r\n                $('#elevate-event-and-content-area-id').html(data);\r\n                $(\"#elevate-specialities-loader\").css(\"display\", \"none\");\r\n            },\r\n            error: function (e) {\r\n                //alert(\"An error occurred while loading content.\");\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction loadLearningContentSearchText() {\r\n\r\n    if ($(\".ele-learning-content\").length > 0) {\r\n\r\n        $(\"#elevate-specialities-loader\").css(\"display\", \"block\");\r\n        $('#elevate-learning-content-area-id').html(\"\");\r\n\r\n        var titleText = \"Learning Content\";\r\n\r\n        var searchText = $('#SearchText').val();\r\n        var filterType = $('input[type=radio][name=flexRadioDefault]:checked').val();\r\n\r\n        if (filterType == \"groupbycpd\") {\r\n            titleText = \"learning content grouped by cpd approved\";\r\n        }\r\n        else if (filterType == \"groupbyspeciality\") {\r\n            titleText = \"learning content grouped by speciality\";\r\n        }\r\n\r\n        if (searchText.trim() !== '') {\r\n\r\n            window.dataLayer = window.dataLayer || [];\r\n            window.dataLayer.push({\r\n                'event': 'elevatescreensearch',\r\n                'searchtext': searchText\r\n            });\r\n\r\n            console.log('Data Layer Push: SearchText = ' + searchText);\r\n        }\r\n\r\n        if (!searchText || searchText == null) {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText);\r\n        }\r\n        else {\r\n            $(\"#elevate-specialities-search-header\").html(\"All \" + titleText + \" related to '\" + searchText + \"'\");\r\n        }\r\n\r\n        $.ajax({\r\n            url: '/ElevateLearning/GetLearningContent',\r\n            type: 'GET',\r\n            data: { searchText: searchText, filterType: filterType },\r\n            success: function (data) {\r\n                $('#elevate-learning-content-area-id').html(data);\r\n                $(\"#elevate-specialities-loader\").css(\"display\", \"none\");\r\n            },\r\n            error: function () {\r\n                //alert(\"An error occurred while loading content.\");\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction getParameterByName(name) {\r\n    name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n    var url = window.location.href;\r\n    var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\", \"i\");\r\n    var results = regex.exec(url);\r\n    if (!results) return null;\r\n    if (!results[2]) return '';\r\n    return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n}","(function ($, window, undefined) {\r\n\r\n    function GlobalWidgets(args) {};\r\n\r\n    GlobalWidgets.prototype.init = function () {\r\n        this.AccordionContent = new SVHA.Widgets.AccordionContent({\r\n            firstOpen: false\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.GlobalWidgets = new GlobalWidgets;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function HighlightStrap(args) {\r\n        this.swiper;\r\n        this.defaults = {\r\n            selectors: {\r\n                widgetContainer: '.highlight-strap',\r\n                swiperContainer: '.swiper-container',\r\n            }\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$swiperContainer = this.parent(this.options.selectors.swiperContainer);\r\n\r\n        this.init()\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    HighlightStrap.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n\r\n    HighlightStrap.prototype.initSwiper = function(){\r\n        this.swiper = new Swiper(this.$swiperContainer, {\r\n            slidesPerView: 1,\r\n            spaceBetween: 0,\r\n            grabCursor: true,\r\n        });\r\n    };\r\n\r\n    HighlightStrap.prototype.destroySwiper = function () {\r\n        this.swiper.destroy();\r\n    };\r\n\r\n    HighlightStrap.prototype.init = function () {\r\n        var self = this;\r\n\r\n        if(SVHA.Utility.StateManager.ssm.isActive('mobile')){\r\n            this.initSwiper();\r\n        }\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('desktop', function() {\r\n            if(self.swiper){\r\n                self.destroySwiper();\r\n            }\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('mobile', function() {\r\n            if(self.swiper) {\r\n                self.initSwiper();\r\n            }\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.HighlightStrap = HighlightStrap;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function HospitalSlider(args) {\r\n        this.swiper;\r\n        this.defaults = {\r\n            selectors: {\r\n                widgetContainer: '.hospital-slider',\r\n                swiperContainer: '.swiper-container',\r\n                swiperSlide: '.swiper-slide',\r\n                btnNext: '.swiper-button-next',\r\n                btnPrev: '.swiper-button-prev'\r\n            }\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$swiperContainer = this.parent(this.options.selectors.swiperContainer);\r\n        this.$btnNext = this.parent(this.options.selectors.btnNext);\r\n        this.$btnPrev = this.parent(this.options.selectors.btnPrev);\r\n\r\n        this.init()\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    HospitalSlider.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n    HospitalSlider.prototype.init = function () {\r\n        var self = this;\r\n\r\n        this.swiper = new Swiper(this.$swiperContainer, {\r\n            spaceBetween: 30,\r\n            centeredSlides: true,\r\n            centeredSlidesBounds: true,\r\n            loop: false,\r\n            slidesOffsetBefore: 15,\r\n            slidesOffsetAfter: 0,\r\n\r\n            breakpoints: {\r\n                992: {\r\n                    freeMode: true,\r\n                    grabCursor: true,\r\n                    slidesPerView: 3,\r\n                    slidesOffsetBefore: 0,\r\n                }\r\n            },\r\n\r\n            // Navigation arrows\r\n            navigation: {\r\n                nextEl: this.$btnNext,\r\n                prevEl: this.$btnPrev,\r\n            },\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.HospitalSlider = HospitalSlider;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function iFrameWidget(args) {\r\n\r\n        this.defaults = {\r\n            videoPlayer:  null,\r\n            heightMobile: null,\r\n            heightDesktop: null,\r\n            srcDefault: null,\r\n            srcDesktop: null,\r\n\r\n            selectors: {\r\n                widgetContainer: '.iframe-widget',\r\n            },\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$targetIframe = this.parent('iframe');\r\n\r\n        /*\r\n        Set defaults\r\n         */\r\n        this.heightMobile = this.$widgetContainer.attr('data-height-mobile');\r\n        this.heightDesktop = this.$widgetContainer.attr('data-height-desktop');\r\n        this.srcDefault = this.$widgetContainer.attr('data-url-default');\r\n        this.srcDesktop = this.$widgetContainer.attr('data-url-desktop');\r\n\r\n        var self = this;\r\n\r\n        if(SVHA.Utility.StateManager.ssm.isActive('mobile')){\r\n\r\n            self.setHeight(self.heightMobile);\r\n\r\n        } else {\r\n\r\n            self.setHeight(self.heightDesktop);\r\n            self.srcSwap(self.srcDesktop);\r\n        }\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('mobile', function() {\r\n            self.setHeight(self.heightMobile);\r\n\r\n            if(self.srcDesktop !== ''){\r\n                self.srcSwap(self.srcDefault);\r\n            }\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('desktop', function() {\r\n            self.setHeight(self.heightDesktop);\r\n            self.srcSwap(self.srcDesktop);\r\n        });\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    iFrameWidget.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n    iFrameWidget.prototype.setHeight = function (height) {\r\n        this.$targetIframe.css('height', height);\r\n    };\r\n\r\n    iFrameWidget.prototype.srcSwap = function (srcUrl) {\r\n        if (!srcUrl || srcUrl === ''){\r\n            return;\r\n        }\r\n        this.$targetIframe.attr('src', srcUrl)\r\n    };\r\n\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.iFrameWidget = iFrameWidget;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function ImageSlider(args) {\r\n        this.swiper;\r\n        this.defaults = {\r\n            selectors: {\r\n                widgetContainer: '.image-slider',\r\n                swiperContainer: '.swiper-container',\r\n                swiperSlide: '.swiper-slide',\r\n                imgDescTxt: '.img-desc'\r\n            }\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$swiperContainer = this.parent(this.options.selectors.swiperContainer);\r\n        this.$imgDescTxt = this.parent(this.options.selectors.imgDescTxt);\r\n\r\n        this.init()\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    ImageSlider.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n    ImageSlider.prototype.getSlide = function(targetIndex){\r\n        return this.$swiperContainer.find(this.options.selectors.swiperSlide).eq(targetIndex);\r\n    };\r\n\r\n    ImageSlider.prototype.setDescTxt = function (txtString) {\r\n        this.$imgDescTxt.append('<p>'+txtString+'</p>');\r\n    };\r\n\r\n    ImageSlider.prototype.appendLink = function (txtString, url, isExternal) {\r\n        if (isExternal === 'True'){\r\n            this.$imgDescTxt.append('<a href=\"'+url+'\" target=\"_blank\">'+txtString+'</a>');\r\n        } else {\r\n            this.$imgDescTxt.append('<a href=\"'+url+'\">'+txtString+'</a>');\r\n        }\r\n    };\r\n\r\n    ImageSlider.prototype.updateDesc = function(slideIndex){\r\n        var $targetSlide = this.getSlide(slideIndex);\r\n        var imgTxt = $targetSlide.find('img').attr('data-caption');\r\n        var linkUrl = $targetSlide.find('img').attr('data-caption-link');\r\n        var isExternal = $targetSlide.find('img').attr('data-caption-external-link');\r\n\r\n        //Clear it first\r\n        this.$imgDescTxt.html('');\r\n\r\n        if(linkUrl){\r\n            this.appendLink(imgTxt, linkUrl, isExternal)\r\n        } else {\r\n            this.setDescTxt(imgTxt);\r\n        }\r\n    };\r\n\r\n    ImageSlider.prototype.slideStart = function(){\r\n        var activeSlide = this.swiper.activeIndex;\r\n        this.updateDesc(activeSlide)\r\n    };\r\n\r\n    ImageSlider.prototype.init = function () {\r\n        var self = this;\r\n\r\n        this.updateDesc(0);\r\n\r\n        this.swiper = new Swiper(this.$swiperContainer, {\r\n            pagination: {\r\n                el: '.pagination-block',\r\n                type: 'fraction',\r\n            },\r\n            navigation: {\r\n                nextEl: '.swiper-button-next',\r\n                prevEl: '.swiper-button-prev',\r\n            },\r\n\r\n            on: {\r\n                slideChangeTransitionStart: function(){\r\n                    self.slideStart();\r\n                }\r\n            }\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.ImageSlider = ImageSlider;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function MainHeader(args) {\r\n\r\n        this.defaults = {\r\n            selectors: {\r\n                mainHeader: '#main-header',\r\n                navWrapper: '.nav-wrapper',\r\n                searchWrapper: '.site-search',\r\n                btnNavTrigger: '.btn-nav-trigger',\r\n                btnOpenSearch: '.btn-search-trigger',\r\n                btnOpenSearch_desktop: '.btn-search',\r\n                btnCloseSearch: '.btn-close-search',\r\n                searchInput: '#site-search'\r\n            },\r\n\r\n            state : {\r\n                navOpen: false,\r\n            }\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$mainHeader = $(this.options.selectors.mainHeader);\r\n        this.$btnNavTrigger = this.parent(this.options.selectors.btnNavTrigger);\r\n        this.$btnOpenSearch = this.parent(this.options.selectors.btnOpenSearch);\r\n        this.$btnOpenSearch_desktop = this.parent(this.options.selectors.btnOpenSearch_desktop);\r\n        this.$btnCloseSearch = this.parent(this.options.selectors.btnCloseSearch);\r\n        this.$searchInput = this.parent(this.options.selectors.searchInput);\r\n\r\n        this.bindEvents();\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    MainHeader.prototype.parent = function (selector) {\r\n        return $(selector, this.$mainHeader);\r\n    };\r\n\r\n    /*\r\n    Interface events -- mobile specific\r\n     */\r\n    MainHeader.prototype.openOffCanvasNav = function () {\r\n        this.lockViewport();\r\n        this.$btnNavTrigger.addClass('is-active');\r\n        $('body').addClass('nav-open');\r\n        this.options.state.navOpen = true;\r\n    };\r\n\r\n    MainHeader.prototype.closeOffCanvasNav = function () {\r\n        this.unlockViewport();\r\n        this.$btnNavTrigger.removeClass('is-active');\r\n        $('body').removeClass('nav-open');\r\n        this.options.state.navOpen = false;\r\n    };\r\n\r\n    /**\r\n     * Shared interface events\r\n     */\r\n    MainHeader.prototype.lockViewport = function () {\r\n        $('html').addClass('viewport-locked');\r\n    };\r\n\r\n    MainHeader.prototype.unlockViewport = function () {\r\n        $('html').removeClass('viewport-locked');\r\n    };\r\n\r\n\r\n    MainHeader.prototype.openSearch = function () {\r\n        $('body').addClass('search-open');\r\n        this.$searchInput.focus();\r\n\r\n    };\r\n\r\n    MainHeader.prototype.closeSearch = function () {\r\n        $('body').removeClass('search-open');\r\n        this.$searchInput.blur();\r\n    };\r\n\r\n\r\n    MainHeader.prototype.bindEvents = function () {\r\n        var self = this;\r\n\r\n        this.$btnNavTrigger.click(function(){\r\n            if (self.options.state.navOpen === false){\r\n                self.openOffCanvasNav();\r\n            } else {\r\n                self.closeOffCanvasNav();\r\n            }\r\n        });\r\n\r\n        this.$btnOpenSearch_desktop.click(function(){\r\n            self.openSearch();\r\n        });\r\n\r\n        this.$btnOpenSearch.click(function(){\r\n            self.openSearch();\r\n        });\r\n\r\n        this.$btnCloseSearch.click(function(){\r\n            self.closeSearch();\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.MainHeader = MainHeader;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function PrimaryNav(args) {\r\n        this.activeNavParent = null;\r\n\r\n        this.defaults = {\r\n            scrollOnOpen: true,\r\n            scrollDelay: 250,\r\n            scrollSpeed: 500,\r\n            multipleOpen: false,\r\n            selectors: {\r\n                mainNav: '.main-nav',\r\n                mainNavTrigger: '.main-trigger',\r\n                mainNavSubNav: '.subnav',\r\n                navWrapper: '.nav-wrapper'\r\n            },\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$mainNav = $(this.options.selectors.mainNav);\r\n        this.$mainNavTrigger = this.$mainNav.find(this.options.selectors.mainNavTrigger);\r\n        this.$mainNavSubNav = this.$mainNav.find(this.options.selectors.mainNavSubNav);\r\n        this.$navWrapper = this.$mainNav.parents(this.options.selectors.navWrapper);\r\n\r\n        var self = this;\r\n\r\n        if(SVHA.Utility.StateManager.ssm.isActive('mobile')) {\r\n            this.initMobileAccordion();\r\n        }\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('desktop', function() {\r\n            self.resetMobileAccordion();\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('mobile', function() {\r\n            self.initMobileAccordion();\r\n        });\r\n\r\n        this.bindEvents();\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    PrimaryNav.prototype.parent = function (selector) {\r\n        return $(selector, this.$container);\r\n    };\r\n\r\n    /*\r\n    Interface events -- mobile specific\r\n     */\r\n    PrimaryNav.prototype.scrollToBtn = function (targetBtn){\r\n\r\n        var btnPos = targetBtn.offset(); //Relative to document\r\n        var offSet = 87;  //Height of nav bar\r\n\r\n        var scrollAmount = btnPos.top - offSet;\r\n\r\n        if (scrollAmount != 0){\r\n            this.$navWrapper.animate({\r\n                scrollTop: '+='+scrollAmount+'px'\r\n            }, this.options.scrollSpeed);\r\n        }\r\n    };\r\n\r\n\r\n    PrimaryNav.prototype.openSubNavAccordion = function (parent, targetSubNav){\r\n        parent.addClass('active');\r\n        var openHeight = targetSubNav.attr('data-open-height');\r\n\r\n        targetSubNav.css({\r\n            maxHeight: openHeight+'px',\r\n            display: 'block'\r\n        });\r\n\r\n        if (this.options.scrollOnOpen === true){\r\n            var self = this;\r\n            setTimeout(function(){\r\n                self.scrollToBtn(parent);\r\n            }, self.options.scrollDelay);\r\n        }\r\n    };\r\n\r\n    PrimaryNav.prototype.closeSubNavAccordion = function (parent, targetSubNav){\r\n        if (!targetSubNav){\r\n            targetSubNav = parent.find(this.options.selectors.mainNavSubNav);\r\n        }\r\n\r\n        parent.removeClass('active');\r\n        targetSubNav.css({\r\n            maxHeight: 0\r\n        });\r\n    };\r\n\r\n    /*\r\n    Interface events -- desktop + large screens\r\n     */\r\n    PrimaryNav.prototype.showSubNav = function (parent){\r\n        if(this.activeNavItem != null || undefined){\r\n            this.hideSubNav(this.activeNavItem);\r\n        }\r\n\r\n        parent.addClass('active');\r\n        this.activeNavItem = parent;\r\n\r\n    };\r\n\r\n    PrimaryNav.prototype.hideSubNav = function (parent){\r\n        parent.removeClass('active');\r\n    };\r\n\r\n\r\n    /*\r\n    Event binding and initialising methods\r\n     */\r\n    PrimaryNav.prototype.initMobileAccordion = function(){\r\n        this.$mainNavSubNav.each(function(){\r\n            var defaultHeight = $(this).height();\r\n\r\n            $(this).attr('data-open-height', defaultHeight);\r\n            $(this).css({\r\n                display: 'block',\r\n                maxHeight: '0px'\r\n            });\r\n        })\r\n    };\r\n\r\n    PrimaryNav.prototype.resetMobileAccordion = function(){\r\n        this.$mainNavSubNav.each(function(){\r\n            $(this).removeAttr(\"style\");\r\n        })\r\n    };\r\n\r\n    /*\r\n    Mobile event binding\r\n    */\r\n    PrimaryNav.prototype.bindEvents = function () {\r\n        var self = this;\r\n        this.$mainNavTrigger.click(function(){\r\n\r\n            var $parentListItem = $(this).parent();\r\n            var $targetSubNav = $(this).next(self.options.selectors.mainNavSubNav);\r\n\r\n            if ($parentListItem.hasClass('active')) {\r\n\r\n                //Target is active, lets close\r\n                if(SVHA.Utility.StateManager.ssm.isActive('mobile')) {\r\n\r\n                    self.closeSubNavAccordion($parentListItem, $targetSubNav);\r\n                    self.activeNavParent = null;\r\n\r\n                } else {\r\n                    self.hideSubNav($parentListItem);\r\n                }\r\n\r\n            } else {\r\n\r\n                //Target is NOT active, lets open\r\n                if(SVHA.Utility.StateManager.ssm.isActive('mobile')) {\r\n\r\n                    if (self.activeNavParent && self.options.multipleOpen === false){\r\n                        self.closeSubNavAccordion(self.activeNavParent);\r\n                    }\r\n\r\n\r\n                    self.openSubNavAccordion($parentListItem, $targetSubNav);\r\n                    self.activeNavParent = $parentListItem;\r\n\r\n                } else {\r\n                    self.showSubNav($parentListItem);\r\n                }\r\n            }\r\n        });\r\n\r\n\r\n        this.$mainNavTrigger.parents('li').hoverIntent({\r\n            over: function(){},\r\n            out: function(){\r\n                var $elem = $(this);\r\n                self.hideSubNav($elem);\r\n            },\r\n            timeout: 500\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.PrimaryNav = PrimaryNav;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","(function ($, window, undefined) {\r\n\r\n    function _SampleWidget_(args) {\r\n\r\n        this.defaults = {\r\n            selectors: {\r\n                widgetContainer: '.foo',\r\n                widgetChild: '.bar'\r\n            },\r\n\r\n            timeOut: 500\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$widgetChild = this.parent(this.options.selectors.widgetChild);\r\n\r\n        this.bindEvents();\r\n        console.log(this.$widgetContainer);\r\n        console.log('Sample widget ready');\r\n    }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    _SampleWidget_.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n    _SampleWidget_.prototype.bindEvents = function () {\r\n        console.log('Sample Widget -- Event binding');\r\n        // console.log(this.$widgetContainer);\r\n        // console.log(this.$widgetChild)\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('sm', function() {\r\n            console.log('Sample Module - SM enter')\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnLeave('sm', function() {\r\n            console.log('Sample Module - SM leave')\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('md', function() {\r\n            console.log('Sample Module - MD enter')\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnLeave('md', function() {\r\n            console.log('Sample Module - MD leave')\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnEnter('lg', function() {\r\n            console.log('Sample Module - LG enter')\r\n        });\r\n\r\n        SVHA.Utility.StateManager.addOnLeave('lg', function() {\r\n            console.log('Sample Module - LG leave')\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets._SampleWidget_ = _SampleWidget_;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","var swiper = new Swiper(\".testimonialSwiper\", {\r\n    pagination: {\r\n        el: \".swiper-pagination\",\r\n        clickable: true,\r\n    },\r\n    navigation: {\r\n        nextEl: \".swiper-button-next\",\r\n        prevEl: \".swiper-button-prev\",\r\n    },\r\n});","(function ($, window, undefined) {\r\n\r\n    function VideoPlayer(args) {\r\n\r\n        this.defaults = {\r\n            videoPlayer:  null,\r\n            selectors: {\r\n                widgetContainer: '.video-player',\r\n                videoElem: '.player-embed',\r\n                btnPlay: '.btn-play-video'\r\n            },\r\n\r\n        };\r\n\r\n        this.options = $.extend(true, {}, this.defaults, args);\r\n\r\n        this.$widgetContainer = $(this.options.selectors.widgetContainer);\r\n        this.$videoElem = this.parent(this.options.selectors.videoElem);\r\n        this.$btnPlay = this.parent(this.options.selectors.btnPlay);\r\n\r\n\r\n\r\n        this.initPlayer();\r\n        this.bindEvents();\r\n     }\r\n\r\n    /**\r\n     * Returns a jQuery element that is a child of the parent element\r\n     * @param selector\r\n     * @returns {*|HTMLElement}\r\n     */\r\n    VideoPlayer.prototype.parent = function (selector) {\r\n        return $(selector, this.$widgetContainer);\r\n    };\r\n\r\n    VideoPlayer.prototype.initPlayer = function () {\r\n        this.videoPlayer = new Plyr(this.$videoElem[0], {\r\n            controls:[\r\n                'play',\r\n                'progress',\r\n                'current-time',\r\n                'mute',\r\n                'volume',\r\n                'captions',\r\n                'settings',\r\n                'pip',\r\n                'airplay',\r\n                'fullscreen'\r\n            ]\r\n        });\r\n    };\r\n\r\n    VideoPlayer.prototype.playVideo = function (selector) {\r\n        this.$widgetContainer.addClass('video-playing');\r\n        this.videoPlayer.play();\r\n    };\r\n\r\n    VideoPlayer.prototype.bindEvents = function () {\r\n        var self = this;\r\n\r\n        this.$btnPlay.click(function () {\r\n            self.playVideo();\r\n        });\r\n    };\r\n\r\n    window.SVHA = window.SVHA || {};\r\n    window.SVHA.Widgets = window.SVHA.Widgets || {};\r\n    window.SVHA.Widgets.VideoPlayer = VideoPlayer;\r\n\r\n})(jQuery, window);\r\n\r\n\r\n\r\n","\r\nvar api_base = \"/api/v1/\";\r\nvar na_icon = \"<img style='height:30px;width:30px;margin-bottom:10px;margin-right:10px' src='/static/imgs/icons/not-avialable.png' />\";\r\nvar av_icon = \"<img style='height:30px;width:30px;margin-bottom:10px;margin-right:10px' src='/static/imgs/icons/avialable-icon.png?v=1.0' />\";\r\n\r\n$(document).ready(function () {\r\n\r\n    //loadMyHealth1stScript(() => {\r\n    //    reinitializeMyHealth1stWidget();\r\n    //});\r\n\r\n    if (document.getElementById('customModal') && checkCorporatePopupCookie()) {\r\n\r\n        document.getElementById('customModal').style.display = 'block';\r\n\r\n        document.getElementById('modalCloseBtn').onclick = function () {\r\n            document.getElementById('customModal').style.display = 'none';\r\n            setCorporatePopupCookie(\"corporatepopupcookie\", \"corp\", 10000);\r\n        };\r\n\r\n        document.getElementById('closeFooterBtn').onclick = function () {\r\n            document.getElementById('customModal').style.display = 'none';\r\n            setCorporatePopupCookie(\"corporatepopupcookie\", \"corp\", 10000);\r\n        };\r\n\r\n    }\r\n\r\n    $(\".formwidget\").each(function () {\r\n\r\n        //var id = $(this).attr('id');\r\n        //$('#' + id).prependTo('#bizform-form-section');     \r\n\r\n        $(\"#bizform-form-section div\").removeClass(\"offset-lg-2\");\r\n        $(\"#bizform-form-section .col-lg-4\").addClass(\"col-lg-6\");\r\n        $(\"#bizform-form-section div\").removeClass(\"col-lg-4\");\r\n\r\n        $(\"#bizform-form-section .col-lg-8\").addClass(\"col-lg-12\");\r\n        $(\"#bizform-form-section div\").removeClass(\"col-lg-8\");\r\n\r\n        $(\".inforline-form div\").removeClass(\"offset-lg-2\");\r\n        $(\".inforline-form .col-lg-4\").addClass(\"col-lg-6\");\r\n        $(\".inforline-form div\").removeClass(\"col-lg-4\");\r\n\r\n        $(\".inforline-form .col-lg-8\").addClass(\"col-lg-12\");\r\n        $(\".inforline-form div\").removeClass(\"col-lg-8\");\r\n\r\n    });\r\n\r\n    $(\".main-nav.main-nav-mater li a\").each(function () {\r\n\r\n        if (window.location.href.indexOf($(this).prop(\"href\")) > -1) {\r\n            $(this).find(\"span\").addClass(\"menu-overlay-d\");\r\n        }\r\n        else {\r\n            $(this).find(\"span\").removeClass(\"menu-overlay-d\");\r\n        }\r\n\r\n    });\r\n\r\n    $('#icon-mail').on('click', function () {\r\n        $('.inforline-form').stop(true, true).slideDown();\r\n        $(this).hide();\r\n        $('#icon-form-close').show();\r\n\r\n    });\r\n\r\n    $('#icon-form-close').on('click', function () {\r\n        $('.inforline-form').stop(true, true).slideUp();\r\n        $(this).hide();\r\n        $('#icon-mail').show();\r\n    });\r\n\r\n    $('.orthopaedics-nav').find('#primary-nav').clone(true, true).insertBefore(\".nav-wrapper #primary-nav\");\r\n    $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-ortho').prepend('<li class=\"orthopaedics-home\"> <a href=\"/services/orthopaedics\" class=\"color-white\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"23\" viewBox=\"0 0 21 23\"><defs><style>.a{fill:none;stroke:#fff;stroke-linejoin:round;stroke-width:2px;}</style></defs><g transform=\"translate(-3.5 -2)\"><path class=\"a\" d=\"M4.5,10.35,14,3l9.5,7.35V21.9A2.106,2.106,0,0,1,21.389,24H6.611A2.106,2.106,0,0,1,4.5,21.9Z\" transform=\"translate(0 0)\"/><path class=\"a\" d=\"M13.5,28.5V18h6.333V28.5\" transform=\"translate(-2.667 -4.5)\"/></g></svg>Orthopaedics </a></li>');\r\n    $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-mater').prepend('<li class=\"orthopaedics-home\"> <a href=\"/services/maternity\" class=\"color-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"23\" viewBox=\"0 0 21 23\"><defs><style>.a{fill:none;stroke:#fff;stroke-linejoin:round;stroke-width:2px;}</style></defs><g transform=\"translate(-3.5 -2)\"><path class=\"a\" d=\"M4.5,10.35,14,3l9.5,7.35V21.9A2.106,2.106,0,0,1,21.389,24H6.611A2.106,2.106,0,0,1,4.5,21.9Z\" transform=\"translate(0 0)\"></path><path class=\"a\" d=\"M13.5,28.5V18h6.333V28.5\" transform=\"translate(-2.667 -4.5)\"></path></g></svg>Maternity Home</a></li>');\r\n    $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-cardiac').prepend('<li class=\"orthopaedics-home\"> <a href=\"/services/cardiac-services\" class=\"color-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"23\" viewBox=\"0 0 21 23\"><defs><style>.a{fill:none;stroke:#fff;stroke-linejoin:round;stroke-width:2px;}</style></defs><g transform=\"translate(-3.5 -2)\"><path class=\"a\" d=\"M4.5,10.35,14,3l9.5,7.35V21.9A2.106,2.106,0,0,1,21.389,24H6.611A2.106,2.106,0,0,1,4.5,21.9Z\" transform=\"translate(0 0)\"></path><path class=\"a\" d=\"M13.5,28.5V18h6.333V28.5\" transform=\"translate(-2.667 -4.5)\"></path></g></svg>Cardiac Services</a></li>');\r\n    $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-elevate').prepend('<li class=\"orthopaedics-home\"> <a href=\"/general-practitioners/elevate/on-demand-content\" class=\"color-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"23\" viewBox=\"0 0 21 23\"><defs><style>.a{fill:none;stroke:#fff;stroke-linejoin:round;stroke-width:2px;}</style></defs><g transform=\"translate(-3.5 -2)\"><path class=\"a\" d=\"M4.5,10.35,14,3l9.5,7.35V21.9A2.106,2.106,0,0,1,21.389,24H6.611A2.106,2.106,0,0,1,4.5,21.9Z\" transform=\"translate(0 0)\"></path><path class=\"a\" d=\"M13.5,28.5V18h6.333V28.5\" transform=\"translate(-2.667 -4.5)\"></path></g></svg>Elevate Program</a></li>');\r\n    $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-self-funded').prepend('<li class=\"orthopaedics-home\"> <a href=\"/services/self-funded-surgery\" class=\"color-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"23\" viewBox=\"0 0 21 23\"><defs><style>.a{fill:none;stroke:#fff;stroke-linejoin:round;stroke-width:2px;}</style></defs><g transform=\"translate(-3.5 -2)\"><path class=\"a\" d=\"M4.5,10.35,14,3l9.5,7.35V21.9A2.106,2.106,0,0,1,21.389,24H6.611A2.106,2.106,0,0,1,4.5,21.9Z\" transform=\"translate(0 0)\"></path><path class=\"a\" d=\"M13.5,28.5V18h6.333V28.5\" transform=\"translate(-2.667 -4.5)\"></path></g></svg>Self-funded surgery</a></li>');\r\n    if (!$('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-self-funded').length) {\r\n        $('.nav-wrapper #primary-nav.ortho-nav .main-nav').prepend('<li class=\"mega-parent\"> <a href=\"/\"> SVPH Home </a></li>');\r\n    }\r\n\r\n    $(\".inforline.contact-box\")\r\n        .stickOnScroll({\r\n            topOffset: 0,\r\n            setParentOnStick: false,\r\n        });\r\n\r\n    if ($(\"#generic-page-div-form\") && $(\"#generic-hero-inforline-form\")) {\r\n\r\n        $(\"#generic-page-div-form\").prependTo(\"#generic-hero-inforline-form\");\r\n\r\n    }\r\n\r\n    if ($(\"#drHospital\")) {\r\n\r\n        //var sydneyPath = \"/services/cardiac-services?h=sydney\";\r\n        //var materPath = \"/services/cardiac-services?h=mater\";\r\n        //var griffithPath = \"/services/cardiac-services?h=griffith\";\r\n        //var brisbanePath = \"/services/cardiac-services?h=brisbane\";\r\n        //var northsidePath = \"/services/cardiac-services?h=northside\";\r\n        //var toowoombaPath = \"/services/cardiac-services?h=toowoomba\";\r\n        //var eastmelbournePath = \"/services/cardiac-services?h=east-melbourne\";\r\n        //var fitzroyPath = \"/services/cardiac-services?h=fitzroy\";\r\n        //var kewPath = \"/services/cardiac-services?h=kew\";\r\n        //var werribeePath = \"/services/cardiac-services?h=werribee\";\r\n\r\n        //if (window.location.href.indexOf(sydneyPath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHSYD\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(materPath) != -1) {\r\n        //    $(\"#drHospital\").val(\"MATER\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(griffithPath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHGRIF\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(brisbanePath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHBRIS\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(northsidePath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHNORTHSIDE\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(toowoombaPath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHTOOW\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(eastmelbournePath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHESTMLB\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(fitzroyPath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHFITZ\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(kewPath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHKEW\").trigger('change');\r\n        //}\r\n        //else if (window.location.href.indexOf(werribeePath) != -1) {\r\n        //    $(\"#drHospital\").val(\"SVPHWER\").trigger('change');\r\n        //}\r\n\r\n        var servicefinderhospitalcookie = getServiceFinderCookieValue(\"cookie-service-finder-hospital\");\r\n        var servicefinderservicetypecookie = getServiceFinderCookieValue(\"cookie-service-finder-service-type\");\r\n        var servicefinderservicenamecookie = getServiceFinderCookieValue(\"cookie-service-finder-service-name\");\r\n\r\n        if ($(\"#drTreatment\") && $(\"#drTreatment\").val() != 'undefined' && $(\"#drTreatment\").length) {\r\n            onServiceTypeChange($(\"#drTreatment\").val());\r\n\r\n            if ($(\"#drTreatment\").val() == \"0\") {\r\n                createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-name\", \"0\", \"-1\");\r\n                $(\"#drProcedure\").val(\"0\");\r\n            }\r\n        }\r\n\r\n        if (servicefinderhospitalcookie && servicefinderhospitalcookie != \"undefined\") {\r\n\r\n            if (hasOptionWithValue(\"#drHospital\", servicefinderhospitalcookie)) {\r\n                $(\"#drHospital\").val(servicefinderhospitalcookie);\r\n            }\r\n\r\n        }\r\n\r\n        if (servicefinderservicetypecookie && servicefinderservicetypecookie != \"undefined\") {\r\n\r\n            setTimeout(\r\n                function () {\r\n\r\n                    if (hasOptionWithValue(\"#drTreatment\", servicefinderservicetypecookie)) {\r\n                        $(\"#drTreatment\").val(servicefinderservicetypecookie).trigger(\"change\");\r\n                    }\r\n\r\n                }, 250);\r\n\r\n\r\n\r\n        }\r\n\r\n        if (servicefinderservicenamecookie && servicefinderservicenamecookie != \"undefined\") {\r\n\r\n            setTimeout(\r\n                function () {\r\n\r\n                    if (hasOptionWithValue(\"#drProcedure\", servicefinderservicenamecookie)) {\r\n                        $(\"#drProcedure\").val(servicefinderservicenamecookie).trigger(\"change\");\r\n                    }\r\n                }, 500);\r\n\r\n\r\n        }\r\n\r\n    }\r\n\r\n    var searchBox = document.getElementById('document-search-box');\r\n\r\n    if (searchBox) {\r\n\r\n        document.getElementById('document-search-box').addEventListener('keypress', function (event) {\r\n            if (event.key === 'Enter') {\r\n                event.preventDefault(); // Prevent the default form submission behavior\r\n                onDocumentSearchServices(0);\r\n            }\r\n        });\r\n    }\r\n\r\n    if ($(\"#HospitalDropDown\")) {\r\n\r\n        var selectedValue = $(\"#HospitalDropDown\").val();\r\n        // Set color based on the selected option's value\r\n        if (selectedValue === \"0\") {\r\n            $(\"#HospitalDropDown\").css('color', '#787e85');\r\n        } else {\r\n            $(\"#HospitalDropDown\").css('color', '#232D37');\r\n        }\r\n\r\n        $(\"#HospitalDropDown\").change(function () {\r\n\r\n            var hosVal = $(this).val();\r\n            if (hosVal === \"0\") {\r\n                $(\"#HospitalDropDown\").css('color', '#787e85');\r\n            } else {\r\n                $(\"#HospitalDropDown\").css('color', '#232D37');\r\n            }\r\n\r\n        });\r\n\r\n        $('#ServiceTypeDropDown').on('change', function () {\r\n            var selectedValue = $(this).val();\r\n            if (selectedValue === \"0\") {\r\n                $(this).css('color', '#787e85');\r\n            } else {\r\n                $(this).css('color', '#232D37');\r\n            }\r\n        });\r\n\r\n        $('#ServiceNameDropDown').on('change', function () {\r\n            var selectedValue = $(this).val();\r\n            // Set color based on the selected option's value\r\n            if (selectedValue === \"\") {\r\n                $(this).css('color', '#787e85');\r\n            } else {\r\n                $(this).css('color', '#232D37');\r\n            }\r\n        });\r\n    }\r\n\r\n    if ($(\"#ServiceTypeDropDown\")) {\r\n\r\n        var selectedValue = $(\"#ServiceTypeDropDown\").val();\r\n        // Set color based on the selected option's value\r\n        if (selectedValue === \"0\") {\r\n            $(\"#ServiceTypeDropDown\").css('color', '#787e85');\r\n        } else {\r\n            $(\"#ServiceTypeDropDown\").css('color', '#232D37');\r\n        }\r\n\r\n    }\r\n\r\n    if ($(\"#ServiceNameDropDown\")) {\r\n\r\n        var selectedValue = $(\"#ServiceNameDropDown\").val();\r\n        // Set color based on the selected option's value\r\n        if (selectedValue === \"\") {\r\n            $(\"#ServiceNameDropDown\").css('color', '#787e85');\r\n        } else {\r\n            $(\"#ServiceNameDropDown\").css('color', '#232D37');\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nif (document.getElementsByClassName(\"current\")[0] != undefined) {\r\n    if (document.getElementsByClassName('current')[0].innerHTML.includes(', VIC') || document.getElementsByClassName('current')[0].innerHTML.includes(', NSW') || document.getElementsByClassName('current')[0].innerHTML.includes(', QLD')) {\r\n        window.onload = localStorage.setItem(\"Hospital\", document.getElementsByClassName('current')[0].innerText);\r\n    }\r\n    if ($(\"a[href^='/services?']\")[0] !== undefined) {\r\n        window.onload = localStorage.setItem(\"SeviceURl\", $(\"a[href^='/services?']\")[0].href);\r\n    }\r\n    if ($(\"a[href^='/services?']\")[0] !== undefined) {\r\n        window.onload = localStorage.setItem(\"SpecialistURl\", $(\"a[href^='/specialists?']\")[0].href);\r\n    }\r\n}\r\n\r\n\r\nfunction OrthoContact(form) {\r\n\r\n    if (form === 'ortho-form') {\r\n\r\n        $('.inforline-form').stop(true, true).slideDown();\r\n        $('#icon-mail').hide();\r\n        $('#icon-form-close').show();\r\n    }\r\n}\r\n\r\nfunction openContactForm() {\r\n\r\n    $('.inforline-form').stop(true, true).slideDown();\r\n    $('#icon-mail').hide();\r\n    $('#icon-form-close').show();\r\n\r\n}\r\n\r\nfunction openSelfFundedEnquireFormOnHospitalSelect(hospitalId) {\r\n\r\n    setEnquireFormValues(\"drHospital\", \"hdnSelfFundedGeneralServiceType\", \"hdnSelfFundedGeneralServiceName\", \"\", hospitalId);\r\n}\r\n\r\nfunction openSelfFundedEnquireForm(doctorName) {\r\n\r\n    setEnquireFormValues(\"drHospital\", \"drTreatment\", \"drProcedure\", doctorName, 0);\r\n}\r\n\r\nfunction setEnquireFormValues(hospitalControl, serviceTypeControl, serviceNameControl, doctorName, hospitalId) {\r\n\r\n    $('.inforline-form').stop(true, true).slideDown();\r\n    $('#icon-mail').hide();\r\n    $('#icon-form-close').show();\r\n\r\n    if ($(\"#HospitalDropDown\") && $(\"#\" + hospitalControl)) {\r\n\r\n        $(\"#HospitalDropDown\").val(\"0\");\r\n\r\n        if ($(\"#\" + hospitalControl).val() != \"\") {\r\n            $(\"#HospitalDropDown\").val($('#' + hospitalControl + ' option:selected').attr('node-id'));\r\n        }\r\n\r\n        if ($(\"#HospitalDropDown\").val() === \"0\") {\r\n            $(\"#HospitalDropDown\").css('color', '#787e85');\r\n        } else {\r\n            $(\"#HospitalDropDown\").css('color', '#232D37');\r\n        }\r\n    }\r\n\r\n    if ($(\"#HospitalDropDown\") && hospitalId > 0) {\r\n\r\n        $(\"#HospitalDropDown\").val(\"0\");\r\n        $(\"#HospitalDropDown\").val(hospitalId);\r\n\r\n        if ($(\"#HospitalDropDown\").val() === \"0\") {\r\n            $(\"#HospitalDropDown\").css('color', '#787e85');\r\n        } else {\r\n            $(\"#HospitalDropDown\").css('color', '#232D37');\r\n        }\r\n    }\r\n\r\n    if ($(\"[id*='selffundeddoctorname']\").length) {\r\n        // Set the value of the element if it's found\r\n        $(\"[id*='selffundeddoctorname']\").val(doctorName);\r\n    }\r\n\r\n    if ($(\"#ServiceTypeDropDown\") && $(\"#\" + serviceTypeControl)) {\r\n\r\n        $(\"#ServiceTypeDropDown\").val($(\"#\" + serviceTypeControl).val());\r\n\r\n        if ($(\"#ServiceTypeDropDown\").val() === \"0\") {\r\n            $(\"#ServiceTypeDropDown\").css('color', '#787e85');\r\n        } else {\r\n            $(\"#ServiceTypeDropDown\").css('color', '#232D37');\r\n        }\r\n\r\n        //loadFormServiceNamesSelector($(\"#ServiceTypeDropDown\").val());\r\n\r\n        // Wait for ServiceNameDropDown to load options after ServiceTypeDropDown change\r\n\r\n        //let checkServiceNameLoaded = setInterval(function () {\r\n        //    if ($(\"#ServiceNameDropDown option\").length > 1) { // Assumes there will be more than one option when loaded\r\n        //        $(\"#ServiceNameDropDown\").val($(\"#\" + serviceNameControl).val());\r\n\r\n        //        if ($(\"#ServiceNameDropDown\").val() === \"\") {\r\n        //            $(\"#ServiceNameDropDown\").css('color', '#787e85');\r\n        //        } else {\r\n        //            $(\"#ServiceNameDropDown\").css('color', '#232D37');\r\n        //        }\r\n\r\n        //        clearInterval(checkServiceNameLoaded); // Stop checking once loaded\r\n        //    }\r\n        //}, 100); // Check every 100ms\r\n    }\r\n}\r\n\r\nfunction loadFormServiceNamesSelector(selectedServiceType) {\r\n    // Select the Service Type dropdown\r\n    var serviceTypeDropdown = document.getElementById(\"ServiceTypeDropDown\");\r\n\r\n    // Listen for changes in Service Type dropdown\r\n\r\n    // AJAX call to get Service Name options based on selected Service Type\r\n    fetch(`/api/v1/Service/GetServiceNamesFilterData?serviceTypeId=${selectedServiceType}&hospitalCode=&servicefinderdisplaymode=`)\r\n        .then(response => {\r\n            if (!response.ok) {\r\n                throw new Error(\"Failed to retrieve service names.\");\r\n            }\r\n            return response.json();\r\n        })\r\n        .then(data => {\r\n            // Populate Service Name dropdown with options\r\n            var serviceNameDropdown = document.getElementById(\"ServiceNameDropDown\");\r\n            serviceNameDropdown.innerHTML = \"\"; // Clear existing options\r\n\r\n            // Add default \"Please select\" option\r\n            var defaultOption = document.createElement(\"option\");\r\n            defaultOption.value = \"\";\r\n            defaultOption.textContent = \"Select Service Name\";\r\n            serviceNameDropdown.appendChild(defaultOption);\r\n\r\n            //var defaultoption = document.createElement(\"option\");\r\n            //defaultoption.value = \"0\";\r\n            //defaultoption.textContent = \"Select Service Name\";\r\n            //serviceNameDropdown.appendChild(defaultoption);\r\n\r\n            // Add received options\r\n            data.forEach(item => {\r\n                var option = document.createElement(\"option\");\r\n                option.value = item.value;\r\n                option.textContent = item.name;\r\n                serviceNameDropdown.appendChild(option);\r\n            });\r\n\r\n\r\n        })\r\n        .catch(error => {\r\n            console.error(error.message);\r\n        });\r\n\r\n}\r\n\r\n\r\nfunction setServiceFilterDefaultControlState(issearch) {\r\n\r\n    $(\"#p-title\").html(\"\");\r\n    $(\"#p-body\").html(\"No results found.\");\r\n    $(\"#p-body-2\").html(\"\");\r\n    $(\"#p-body-2\").css(\"display\", \"none\");\r\n    $(\"#full-article-link\").css(\"display\", \"none\");\r\n    $(\"#search-service-result-list\").css(\"display\", \"none\");\r\n\r\n    if (!issearch) {\r\n        $(\"#finder-search-box\").val(\"\");\r\n    }\r\n}\r\n\r\nfunction onTreatmentChange(id) {\r\n\r\n    setServiceFilterDefaultControlState(false);\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetProcedureFilterData\",\r\n        data: {\r\n            treatmentId: id\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n\r\n            $(\"#drProcedure\").empty();\r\n\r\n            for (var i = 0; i < data.length; i++) {\r\n\r\n                var o = new Option(data[i].name, data[i].value);\r\n                $(\"#drProcedure\").append(o);\r\n\r\n            }\r\n\r\n            if (data.length > 0) {\r\n\r\n                $(\"#p-title\").html(data[0].title);\r\n                $(\"#p-body\").html(data[0].body);\r\n                if (data[0].body2) {\r\n                    $(\"#p-body-2\").css(\"display\", \"block\");\r\n                    $(\"#p-body-2\").html(data[0].body2);\r\n                }\r\n                if (data[0].fullArticleLink) {\r\n                    $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n                    $(\"#full-article-link\").prop(\"href\", data[0].fullArticleLink);\r\n                }\r\n            }\r\n\r\n\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction onServiceTypeChange(id) {\r\n\r\n    $(\"#next-steps-block\").show();\r\n    setServiceFilterDefaultControlState(false);\r\n\r\n    var hospitalId = \"\";\r\n    var servicefinderservicenamecookie = getServiceFinderCookieValue(\"cookie-service-finder-service-name\");\r\n    var hasValue = false;\r\n\r\n    if ($(\"#drHospital\")) {\r\n        hospitalId = $(\"#drHospital\").val();\r\n\r\n        createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-type\", $(\"#drTreatment\").val(), 1);\r\n\r\n        if (servicefinderservicenamecookie == null || servicefinderservicenamecookie == \"undefined\") {\r\n            createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-name\", \"0\", 1);\r\n        }\r\n    }\r\n\r\n    var serviceFinderMode = $(\"#servicefinderdisplaymode\").length ? $(\"#servicefinderdisplaymode\").val() : null;\r\n    var hdnserviceitemspath = $(\"#hdnserviceitemspath\").length ? $(\"#hdnserviceitemspath\").val() : null;\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetServiceNamesFilterData\",\r\n        data: {\r\n            serviceTypeId: id,\r\n            hospitalCode: hospitalId,\r\n            servicefinderdisplaymode: serviceFinderMode,\r\n            path: hdnserviceitemspath\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n\r\n            if ($(\"#drProcedure\")) {\r\n\r\n                $(\"#drProcedure\").empty();\r\n\r\n                var def = new Option(\"Please select\", \"0\");\r\n\r\n                $(\"#drProcedure\").append(def);\r\n\r\n                for (var i = 0; i < data.length; i++) {\r\n\r\n                    var o = new Option(data[i].name, data[i].value);\r\n                    $(\"#drProcedure\").append(o);\r\n\r\n                    if (data[i].value == servicefinderservicenamecookie)\r\n                        hasValue = true;\r\n\r\n                }\r\n\r\n                if (hasValue) {\r\n                    $(\"#drProcedure\").val(servicefinderservicenamecookie);\r\n                    $(\"#drProcedure\").trigger(\"change\");\r\n                }\r\n            }\r\n\r\n            if (serviceFinderMode != null && $(\"#servicefinderdisplaymode\").val() == \"ServiceNameListing\") {\r\n\r\n                $(\"#p-body\").html(\"\");\r\n\r\n                if (data.length == 0) {\r\n\r\n                    $(\"#p-body\").html(\"No results found.\");\r\n                }\r\n                else {\r\n\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        var _html = `\r\n                        <div class=\"search-wrapper\">\r\n                            <span class=\"form-control finder-search-box\">${data[i].name}</span>                          \r\n                            <a target=\"_self\" href=\"${data[i].fullArticleLink}\"\r\n                            class=\"btn btn-md a-btn-primary btn-full text-block-button\">\r\n                                <span>\r\n                                  <i class=\"fa fa-chevron-circle-right\" aria-hidden=\"true\"></i>\r\n                                </span>\r\n                            </a>\r\n                        </div>`;\r\n\r\n                        $(\"#p-body\").append(_html);\r\n                    }\r\n                }\r\n\r\n            }\r\n\r\n\r\n            //if (data.length > 0) {\r\n\r\n            //    $(\"#p-title\").html(data[0].title);\r\n            //    $(\"#p-body\").html(data[0].body);\r\n            //    if (data[0].body2) {\r\n            //        $(\"#p-body-2\").css(\"display\", \"block\");\r\n            //        $(\"#p-body-2\").html(data[0].body2);\r\n            //    }\r\n            //    if (data[0].fullArticleLink) {\r\n            //        $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n            //        $(\"#full-article-link\").prop(\"href\", data[0].fullArticleLink);\r\n            //    }\r\n            //}\r\n            //else {                \r\n            //    SetNoService($(\"#drTreatment :selected\").text(), $(\"#drHospital :selected\").text());\r\n            //    GetTheHospitalNamesWithServiceOffer();\r\n            //}\r\n\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction getSelectedHospitalShortName(hospitalCode) {\r\n\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetSelectedHospitalShortName\",\r\n        data: {\r\n            hospitalCode: hospitalCode\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n\r\n            if (data) {\r\n\r\n                $(\".btn-action-link\").each(function (e) {\r\n\r\n                    var href = $(this).attr(\"href\"); // Get the href attribute value\r\n\r\n                    // Check if href contains a certain value\r\n                    if (href && href.indexOf(\"find-a-specialist\") !== -1) {\r\n\r\n                        // Split the URL into base and parameters\r\n                        var parts = href.split('?');\r\n                        var baseUrl = parts[0];\r\n                        var params = parts.length > 1 ? parts[1].split('&') : [];\r\n\r\n                        // Check if the 'h' parameter already exists\r\n                        var hParamExists = false;\r\n                        params.forEach(function (param, index) {\r\n                            if (param.startsWith('hospital=')) {\r\n                                // Replace the 'h' parameter value with the new dynamic value\r\n                                params[index] = 'hospital=' + data;\r\n                                hParamExists = true;\r\n                            }\r\n                        });\r\n\r\n                        // If 'h' parameter doesn't exist, add it with the new dynamic value\r\n                        if (!hParamExists && href.indexOf(\"/services/cardiac-services/find-a-specialist\") == -1) {\r\n                            params.push('hospital=' + data);\r\n                        }\r\n\r\n                        if (params.length > 0) {\r\n                            // Reconstruct the URL with updated parameters\r\n                            var newUrl = baseUrl + '?' + params.join('&');\r\n                        }\r\n\r\n                        // Update the href attribute value\r\n                        $(this).attr(\"href\", newUrl);\r\n                    }\r\n\r\n                });\r\n            }\r\n\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction onHospitalChange(hospitalcode, isFilterRequest, requestedService) {\r\n    \r\n    $(\"#next-steps-block\").show();\r\n    setServiceFilterDefaultControlState(false);\r\n\r\n    var nodeid = $('#drHospital option:selected').attr('node-id');\r\n\r\n    if (nodeid && nodeid != \"undefined\") {\r\n        createOrUpdateServiceFinderCookie(\"service-finder-hospital-selection\", nodeid, 1);\r\n    }\r\n\r\n    var serviceTypeId = \"\";\r\n    var hdnserviceitemspath = $(\"#hdnserviceitemspath\").length ? $(\"#hdnserviceitemspath\").val() : null;\r\n    var serviceFinderMode = $(\"#servicefinderdisplaymode\").length ? $(\"#servicefinderdisplaymode\").val() : null;\r\n\r\n    $(\"#drHospital\").val(hospitalcode);\r\n\r\n    if ($(\"#drTreatment\")) {\r\n        serviceTypeId = $(\"#drTreatment\").val();\r\n\r\n        createOrUpdateServiceFinderCookie(\"cookie-service-finder-hospital\", $(\"#drHospital\").val(), 1);\r\n        createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-type\", \"0\", 1);\r\n        createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-name\", \"0\", 1);\r\n    }\r\n\r\n    getSelectedHospitalShortName(hospitalcode);\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetServiceNamesFilterData\",\r\n        data: {\r\n            serviceTypeId: serviceTypeId,\r\n            hospitalCode: hospitalcode,\r\n            path: hdnserviceitemspath,\r\n            servicefinderdisplaymode: serviceFinderMode\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n            \r\n            $(\"#drProcedure\").empty();\r\n\r\n            var def = new Option(\"Please select\", \"0\");\r\n            $(\"#drProcedure\").append(def);\r\n\r\n            for (var i = 0; i < data.length; i++) {\r\n\r\n                var o = new Option(data[i].name, data[i].value);\r\n                $(\"#drProcedure\").append(o);\r\n\r\n            }\r\n\r\n            //if (data.length > 0) {\r\n\r\n            //    $(\"#p-title\").html(data[0].title);\r\n            //    $(\"#p-body\").html(data[0].body);\r\n            //    if (data[0].body2) {\r\n            //        $(\"#p-body-2\").css(\"display\", \"block\");\r\n            //        $(\"#p-body-2\").html(data[0].body2);\r\n            //    }\r\n            //    if (data[0].fullArticleLink) {\r\n            //        $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n            //        $(\"#full-article-link\").prop(\"href\", data[0].fullArticleLink);\r\n            //    }\r\n            //}\r\n            //else {\r\n            //    //alert(\"no service type or name\");\r\n            //    SetNoService($(\"#drTreatment :selected\").text(), $(\"#drHospital :selected\").text());\r\n            //    GetTheHospitalNamesWithServiceOffer();\r\n            //}\r\n\r\n            if (isFilterRequest) {\r\n                $(\"#drProcedure\").val(requestedService);\r\n                onProcedureChange(requestedService);\r\n            }\r\n\r\n            if (serviceFinderMode != null && ($(\"#servicefinderdisplaymode\").val() == \"ServiceNameListing\"\r\n                || $(\"#servicefinderdisplaymode\").val() == \"SpecialistNameListing\")) {\r\n               \r\n                $(\"#drTreatment\").val(0);\r\n\r\n                $.ajax({\r\n                    type: \"GET\",\r\n                    url: api_base + \"Service/GetServiceTypessFilterDataByHospital\",\r\n                    data: {\r\n                        serviceTypeId: 0,\r\n                        hospitalCode: hospitalcode,\r\n                        path: hdnserviceitemspath,\r\n                        servicefinderdisplaymode: serviceFinderMode\r\n                    },\r\n                    contentType: \"application/json\",\r\n                    success: function (data) {\r\n\r\n                        var $drTreatment = $(\"#drTreatment\");\r\n\r\n                        // Remove all options except the one with value = 0\r\n                        $drTreatment.find(\"option:not([value='0'])\").remove();\r\n\r\n                        // Add new options from the API response\r\n                        if (Array.isArray(data)) {\r\n                            data.forEach(function (item) {\r\n                                var newOption = new Option(item.name, item.value);\r\n                                $drTreatment.append(newOption);\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n\r\n            }\r\n        }\r\n    });\r\n\r\n}\r\n\r\nlet scriptLoaded = false;\r\n\r\nfunction onFindSpecialistsChange(id) {\r\n    \r\n    $(\"#next-steps-block\").show();\r\n    setServiceFilterDefaultControlState(false);\r\n\r\n    var hospitalcode = null;\r\n    var treatmentId = 0;\r\n\r\n    if (id == \"0\") {\r\n        $(\"#p-body\").html(\"No results found.\");\r\n        return;\r\n    }\r\n\r\n    if ($(\"#drTreatment\").val() == \"0\") {\r\n        \r\n        var $drProcedure = $(\"#drProcedure\");       \r\n        $drProcedure.find(\"option:not([value='0'])\").remove();\r\n        $(\"#p-body\").html(\"No results found.\");\r\n\r\n        return;\r\n    }\r\n\r\n    if ($(\"#drHospital\").length)\r\n        hospitalcode = $(\"#drHospital\").val();\r\n\r\n    if ($(\"#drTreatment\").length) {\r\n        treatmentId = $(\"#drTreatment\").val();\r\n        createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-name\", $(\"#drProcedure\").val(), 1);\r\n    }\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetSpecialistsData\",\r\n        data: {\r\n            procedureId: id,\r\n            hospitalcode: hospitalcode,\r\n            treatmentId: treatmentId\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n\r\n            $(\"#p-body\").html(\"\");\r\n\r\n            if (data.length > 0) {\r\n\r\n                var html = '';\r\n\r\n                for (var i = 0; i < data.length; i++) {\r\n\r\n                    let bookNowLink = \"\";\r\n\r\n                    //Only show the \"Book Now\" link if `myHealthId` is not empty\r\n                    if (data[i].myHealthId) {\r\n                                    bookNowLink = `\r\n                        <a href=\"${data[i].specialistBookingUrl}\" \r\n                           id=\"${data[i].myHealthId}\" \r\n                           target=\"_blank\" \r\n                           title=\"Book an appointment online with ${data[i].name}\" \r\n                           class=\"book-now-btn 1stAvailableWidget\">\r\n                            Book Now\r\n                        </a>`;\r\n                    }\r\n\r\n\r\n                    html += `\r\n                    <div class=\"specialist-list row show text-left\" style=\"padding:0px 30px; margin-bottom: 30px;\">\r\n                        <div class=\"card\">\r\n                            <div class=\"row g-0 align-items-top card-content\">\r\n                                <div class=\"col-md-2 text-center d-block photo default\">\r\n                                    <img src=\"${data[i].imageUrl}\" alt=\"${data[i].imageAlt}\" width=\"110\" height=\"110\">\r\n                                </div>\r\n                                <div class=\"col-md-9\">\r\n                                    <div class=\"card-body py-0\">\r\n                                        <h5 class=\"card-title mb-0\">${data[i].name}</h5>\r\n                                        <p class=\"card-text mb-0 show\" id=\"DES1${i}\">${data[i].aboutDescriptionPart1}</p>\r\n                                        <p class=\"card-text mb-0 hide\" id=\"DES2${i}\">\r\n                                            ${data[i].aboutDescriptionPart2}                                           \r\n                                        </p>    \r\n                                        <div class='specialist-actions'>\r\n                                         <a href=\"javascript:void(0);\" class=\"enquire-btn\" data-gq-click=\"${data[i].name}\" onclick=\"openSelfFundedEnquireForm('${data[i].name}');\">Enquire</a>\r\n                                         ${bookNowLink}\r\n                                         </div>\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"col-md-1 text-center mx-auto align-items-center text-button\" style=\"display:flex\">\r\n                                    <i class=\"fa-2x fa-solid fa-circle-plus\" id=\"${i}\" onclick=\"setDoctorListPanelVisibility('DES1${i}', 'DES2${i}', 0, 0, this);\"></i>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>`;\r\n                }\r\n\r\n                $(\"#p-body\").html(html);\r\n\r\n                loadMyHealth1stScript(() => {\r\n                    reinitializeMyHealth1stWidget();\r\n                });\r\n\r\n            }\r\n            else {\r\n\r\n                $(\"#p-body\").html(\"No results found.\");\r\n            }\r\n        }\r\n    });\r\n\r\n}\r\n\r\n//Load MyHealth1st script dynamically if not already loaded\r\nfunction loadMyHealth1stScript(callback) {\r\n    if (scriptLoaded) {\r\n        console.log(\"MyHealth1st script already loaded.\");\r\n        callback();\r\n        return;\r\n    }\r\n\r\n    console.log(\"Loading MyHealth1st script...\");\r\n    let script = document.createElement(\"script\");\r\n    script.src = \"https://www.myhealth1st.com.au/mh1-widget/2021/popup.v3.js\";\r\n    script.onload = function () {\r\n        console.log(\"MyHealth1st script loaded.\");\r\n        scriptLoaded = true;\r\n        callback();\r\n    };\r\n    document.head.appendChild(script);\r\n}\r\n\r\n//Re-initialize MyHealth1st widget\r\nfunction reinitializeMyHealth1stWidget() {\r\n    if (typeof window.widget_setup === \"function\") {\r\n        console.log(\"Reinitializing MyHealth1st widgets...\");\r\n        window.widget_setup();\r\n    } else {\r\n        console.log(\"Triggering window load event as fallback...\");\r\n        window.dispatchEvent(new Event(\"load\"));\r\n    }\r\n}\r\n\r\nfunction onProcedureChange(id) {\r\n\r\n    $(\"#next-steps-block\").show();\r\n    setServiceFilterDefaultControlState(false);\r\n\r\n    var hospitalcode = null;\r\n    var treatmentId = 0;\r\n\r\n    if (id == \"0\") {\r\n        $(\"#p-body\").html(\"No results found.\");\r\n        return;\r\n    }\r\n\r\n    if ($(\"#drHospital\"))\r\n        hospitalcode = $(\"#drHospital\").val();\r\n\r\n    if ($(\"#drTreatment\")) {\r\n        treatmentId = $(\"#drTreatment\").val();\r\n        createOrUpdateServiceFinderCookie(\"cookie-service-finder-service-name\", $(\"#drProcedure\").val(), 1);\r\n    }\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetProcedureData\",\r\n        data: {\r\n            procedureId: id,\r\n            hospitalcode: hospitalcode,\r\n            treatmentId: treatmentId\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n\r\n            if (!data.title || data.title == \"\") {\r\n\r\n                SetNoService($(\"#drProcedure :selected\").text(), $(\"#drHospital :selected\").text());\r\n\r\n                var hasText = data.fullArticleLink || data.body;\r\n\r\n                GetTheHospitalNamesWithServiceOffer(hasText);\r\n\r\n                if (data.fullArticleLink) {\r\n\r\n                    $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n                    $(\"#full-article-link\").prop(\"href\", data.fullArticleLink);\r\n                }\r\n\r\n                if (data.body) {\r\n\r\n                    $(\"#p-body\").prepend(data.body + \"<br/>\");\r\n                }\r\n\r\n            }\r\n            else {\r\n                $(\"#p-title\").html(data.title);\r\n                $(\"#p-body\").html(data.body);\r\n                if (data.body2) {\r\n                    $(\"#p-body-2\").css(\"display\", \"block\");\r\n                    $(\"#p-body-2\").html(data.body2);\r\n                }\r\n                if (data.fullArticleLink) {\r\n                    $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n                    $(\"#full-article-link\").prop(\"href\", data.fullArticleLink);\r\n                }\r\n\r\n            }\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction GetTheHospitalNamesWithServiceOffer(hasText) {\r\n\r\n    var serviceTypeId = \"\";\r\n    $(\"#next-steps-block\").hide();\r\n\r\n    if ($(\"#drProcedure\")) {\r\n        serviceTypeId = $(\"#drProcedure\").val();\r\n    }\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetTheHospitalNamesWithServiceOffer\",\r\n        data: {\r\n            serviceTypeId: serviceTypeId,\r\n            selectedHospital: $(\"#drHospital\").val()\r\n        },\r\n        contentType: \"application/json\",\r\n        success: function (data) {\r\n\r\n            if (data.length > 0) {\r\n\r\n                for (var i = 0; i < data.length; i++) {\r\n\r\n                    if ($(\"#divselectlocation\")) {\r\n                        $(\"#spnpublicmsg\").css(\"display\", \"none\");\r\n                    }\r\n\r\n                    $(\"#p-body\").append(\"<br/>\" + av_icon + \" <a href='javascript:void(0)' onclick=\\\"onHospitalChange('\" + data[i].value + \"',true, '\" + $(\"#drProcedure\").val() + \"')\\\">\" + data[i].text + \"</a>\");\r\n\r\n\r\n                }\r\n            }\r\n            else {\r\n                $(\"#divselectlocation\").css(\"display\", \"none\");\r\n\r\n                if (hasText) {\r\n                    $(\"#next-steps-block\").hide();\r\n                }\r\n                else {\r\n                    $(\"#next-steps-block\").show();\r\n                }\r\n            }\r\n\r\n\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction SetNoService(title, hospital, customMessage) {\r\n\r\n    if (title != \"Please select\")\r\n        $(\"#p-title\").html(title);\r\n\r\n    if (customMessage && customMessage != \"\") {\r\n        $(\"#p-body\").html(customMessage);\r\n    }\r\n    else {\r\n        var message = na_icon + \" This procedure is currently \" + \"<b>not performed at the \" + hospital + \"</b>\" + \"<div id='divselectlocation'><br/> Select one of the locations below to modify your search:</div>\";\r\n\r\n        if (hospital == \"Please select\") {\r\n            message = \"No results found.\";\r\n            $(\"#next-steps-block\").show();\r\n        } else {\r\n\r\n            if (hospital.indexOf(\"VIC\") > 0) {\r\n\r\n                $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n                message = message + \"<span id='spnpublicmsg'><br/>\" + av_icon + \" Performed at <b>St Vincent's Public Hospital, Melbourne</b></span>\";\r\n\r\n            }\r\n            else if (hospital.indexOf(\"NSW\") > 0) {\r\n\r\n                $(\"#full-article-link\").css(\"display\", \"inline-block\");\r\n                message = message + \"<span id='spnpublicmsg'><br/>\" + av_icon + \" Performed at <b>St Vincent's Public Hospital, Sydney</b></span>\";\r\n\r\n            }\r\n        }\r\n\r\n        $(\"#p-body\").html(message);\r\n    }\r\n}\r\n\r\nfunction onSearchServices(searchTitleAndDescription) {\r\n\r\n    setServiceFilterDefaultControlState(true);\r\n\r\n    var serviceFinderMode = $(\"#servicefinderdisplaymode\").length ? $(\"#servicefinderdisplaymode\").val() : null;\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetServiceNamesSearchData\",\r\n        data: {\r\n            searchTerm: $(\"#finder-search-box\").val(),\r\n            path: $(\"#hdnserviceitemspath\").val(),\r\n            searchTitleAndDescription: searchTitleAndDescription == 1 ? true : false,\r\n            servicefinderdisplaymode: serviceFinderMode\r\n        },\r\n        contentType: \"application/json\",\r\n\r\n        success: function (data) {\r\n\r\n            var resultlist = \"\";\r\n\r\n            if (serviceFinderMode != null && $(\"#servicefinderdisplaymode\").val() == \"ServiceNameListing\") {\r\n\r\n                $(\"#p-body\").html(\"\");\r\n\r\n                if (data.length == 0) {\r\n\r\n                    $(\"#p-body\").html(\"No results found.\");\r\n                }\r\n                else {\r\n\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        var _html = `\r\n                        <div class=\"search-wrapper\">                           \r\n                            <span class=\"form-control finder-search-box\">${data[i].name}</span>\r\n                            <a target=\"_self\" href=\"${data[i].fullArticleLink}\" class=\"btn btn-md a-btn-primary btn-full text-block-button\">\r\n                                <span>\r\n                                    <i class=\"fa fa-chevron-circle-right custom-icon\" aria-hidden=\"true\"></i>\r\n                                </span>\r\n                            </a>\r\n                        </div>`;\r\n\r\n                        $(\"#p-body\").append(_html);\r\n                    }\r\n                }\r\n\r\n            }\r\n            else {\r\n                $(\"#search-service-result-list\").css(\"display\", \"block\");\r\n\r\n                if (data.length > 0) {\r\n\r\n                    $(\"#p-body\").html(\"\");\r\n\r\n                    for (var i = 0; i < data.length; i++) {\r\n\r\n                        var resultitem = \"<div class='result-item'>\";\r\n\r\n                        resultitem = resultitem + \"<div class='title-block pb-4'>  <p class='mb-0'>\" + data[i].title + \"</p> </div>\";\r\n\r\n                        resultitem = resultitem + \"<div class='content-block pb-4'>\" + data[i].body + \"</div>\";\r\n\r\n                        if (data[i].fullArticleLink && data[i].fullArticleLink != '') {\r\n                            resultitem = resultitem + \"<a target='_self' style='display: inline-block' href='\" + data[i].fullArticleLink + \"' class='btn btn-md a-btn-primary btn-full text-block-button'> <span style='font-size:1.125rem !important'>Learn more</span> </a>\";\r\n                        }\r\n\r\n                        resultitem = resultitem + \"</div> \";\r\n\r\n                        resultlist = resultlist + resultitem;\r\n                    }\r\n\r\n                }\r\n                //else {\r\n                //    resultlist = \"No results found.\";\r\n                //}\r\n\r\n                $(\"#search-service-result-list\").html(resultlist);\r\n            }\r\n\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction filterSelection(c) {\r\n\r\n    var x, i;\r\n\r\n    x = document.getElementsByClassName(\"filter-div\");\r\n\r\n    if (c == \"All\") {\r\n\r\n        $(\".link-filter\").each(function () {\r\n            $(this).removeClass(\"link-filter-selected\");\r\n        });\r\n\r\n        $(\".link-filter.\" + c).addClass(\"link-filter-selected\");\r\n\r\n        c = \"\";\r\n\r\n        for (i = 0; i < x.length; i++) {\r\n            svRemoveClass(x[i], \"show\");\r\n            if (x[i].className.indexOf(c) > -1) svAddClass(x[i], \"show\");\r\n        }\r\n\r\n        $(\".no-element-text\").removeClass(\"show\");\r\n    }\r\n    else {\r\n\r\n        var showCount = 0;\r\n\r\n        for (i = 0; i < x.length; i++) {\r\n\r\n            svRemoveClass(x[i], \"show\");\r\n\r\n            if (x[i].className.indexOf(c) > -1) {\r\n                svAddClass(x[i], \"show\");\r\n                showCount = showCount + 1;\r\n            }\r\n        }\r\n\r\n        if (showCount == 0) {\r\n            $(\".no-element-text\").addClass(\"show\");\r\n        }\r\n        else {\r\n            $(\".no-element-text\").removeClass(\"show\");\r\n        }\r\n\r\n        $(\".link-filter\").each(function () {\r\n            $(this).removeClass(\"link-filter-selected\");\r\n        });\r\n\r\n        $(\".link-filter.\" + c).addClass(\"link-filter-selected\");\r\n    }\r\n}\r\n\r\nfunction svAddClass(element, name) {\r\n\r\n    var i, arr1, arr2;\r\n    arr1 = element.className.split(\" \");\r\n    arr2 = name.split(\" \");\r\n\r\n    for (i = 0; i < arr2.length; i++) {\r\n        if (arr1.indexOf(arr2[i]) == -1) { element.className += \" \" + arr2[i]; }\r\n    }\r\n\r\n}\r\n\r\nfunction svRemoveClass(element, name) {\r\n\r\n    var i, arr1, arr2;\r\n    arr1 = element.className.split(\" \");\r\n    arr2 = name.split(\" \");\r\n    for (i = 0; i < arr2.length; i++) {\r\n        while (arr1.indexOf(arr2[i]) > -1) {\r\n            arr1.splice(arr1.indexOf(arr2[i]), 1);\r\n        }\r\n    }\r\n    element.className = arr1.join(\" \");\r\n}\r\n\r\nfunction createOrUpdateServiceFinderCookie(cookieName, cookieValue, expirationDays) {\r\n\r\n    var expirationDate = new Date();\r\n    expirationDate.setDate(expirationDate.getDate() + expirationDays);\r\n\r\n    var cookieString = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \"; expires=\" + expirationDate.toUTCString() + \"; path=/\";\r\n\r\n    if (document.cookie.indexOf(cookieName) === -1) {\r\n        // Cookie does not exist, create it\r\n        document.cookie = cookieString;\r\n    } else {\r\n        // Cookie exists, update its value\r\n        document.cookie = cookieString;\r\n    }\r\n}\r\n\r\nfunction hasOptionWithValue(selectSelector, value) {\r\n    return $(selectSelector).find('option').filter(function () {\r\n        return $(this).val() == value;\r\n    }).length > 0;\r\n}\r\n\r\nfunction getServiceFinderCookieValue(cookieName) {\r\n    var name = encodeURIComponent(cookieName) + \"=\";\r\n    var decodedCookie = decodeURIComponent(document.cookie);\r\n    var cookieArray = decodedCookie.split(';');\r\n    for (var i = 0; i < cookieArray.length; i++) {\r\n        var cookie = cookieArray[i].trim();\r\n        if (cookie.indexOf(name) === 0) {\r\n            return cookie.substring(name.length, cookie.length);\r\n        }\r\n    }\r\n    return null;\r\n}\r\n\r\n/* popup start */\r\n\r\n\r\nfunction OnFindOutMoreClick() {\r\n\r\n    setCorporatePopupCookie(\"corporatepopupcookie\", \"corp\", 10000);\r\n\r\n    let a = document.createElement('a');\r\n    a.target = '_blank';\r\n    a.href = 'https://www.svha.org.au/about/our-strategy';\r\n    a.click();\r\n}\r\n\r\nfunction setCorporatePopupCookie(cname, cvalue, exdays) {\r\n\r\n    let cookie = getCorporatePopupCookie(\"corporatepopupcookie\");\r\n\r\n    if (cookie == \"\") {\r\n\r\n        const d = new Date();\r\n        d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n        let expires = \"expires=\" + d.toUTCString();\r\n        document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n\r\n    }\r\n\r\n}\r\n\r\nfunction getCorporatePopupCookie(cname) {\r\n    let name = cname + \"=\";\r\n    let decodedCookie = decodeURIComponent(document.cookie);\r\n    let ca = decodedCookie.split(';');\r\n    for (let i = 0; i < ca.length; i++) {\r\n        let c = ca[i];\r\n        while (c.charAt(0) == ' ') {\r\n            c = c.substring(1);\r\n        }\r\n        if (c.indexOf(name) == 0) {\r\n            return c.substring(name.length, c.length);\r\n        }\r\n    }\r\n    return \"\";\r\n}\r\n\r\nfunction checkCorporatePopupCookie() {\r\n    let cookie = getCorporatePopupCookie(\"corporatepopupcookie\");\r\n    if (cookie != \"\") {\r\n        return false;\r\n    } else {\r\n        return true;\r\n    }\r\n}\r\n\r\n/* popup end */\r\n\r\n/* Document Search widget */\r\n\r\nfunction onDocumentSearchServices() {\r\n\r\n    $(\"#p-body-noresult\").css(\"display\", \"none\");\r\n    $(\"#loader\").css(\"display\", \"block\");\r\n    $(\"#article-results-listing\").html(\"\");\r\n\r\n    setServiceFilterDefaultControlState(true);\r\n\r\n    $.ajax({\r\n        type: \"GET\",\r\n        url: api_base + \"Service/GetArticleSearchData\",\r\n        data: {\r\n            searchTerm: $(\"#document-search-box\").val(),\r\n            path: $(\"#hdnArticlesPath\").val(),\r\n            searchType: $(\"#hdnSearchType\").val(),\r\n            type: $(\"#hdntype\").val(),\r\n            id: $(\"#hdnid\").val()\r\n        },\r\n        contentType: \"application/json\",\r\n\r\n        success: function (data) {\r\n            var resultlist = \"\";\r\n            $(\"#article-search-service-result-list\").css(\"display\", \"block\");\r\n\r\n            if (data.length > 0) {\r\n\r\n                for (var i = 0; i < data.length; i++) {\r\n\r\n                    var resultitem = createArticleBlockHTML(data[i].imageUrl, data[i].imageAlt, data[i].fullArticleLink, data[i].title, data[i].body, data[i].fullArticleLink2, data[i].value);\r\n\r\n                    resultlist = resultlist + resultitem;\r\n\r\n                }\r\n\r\n                $(\"#article-results-listing\").html('<div class=\"row\">' + resultlist + \"</div>\");\r\n\r\n            }\r\n            else {\r\n                $(\"#p-body-noresult\").css(\"display\", \"block\");\r\n            }\r\n\r\n            $(\"#loader\").css(\"display\", \"none\");\r\n\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction createArticleBlockHTML(imageSrc, altText, linkHref, title, description, linkHref2, id) {\r\n    const truncatedDescription = description && description.length > 100 ? description.substring(0, 100) + '...' : description;\r\n\r\n    const findPresentationsLink = linkHref2 ? `\r\n        <a href=\"${linkHref2}&id=${id}\">\r\n            <span><b>Find Presentations</b></span>\r\n        </a>\r\n        <br />` : '';\r\n\r\n    return `\r\n        <div class=\"col-12 col-md-3\">\r\n            <div class=\"news-tile article-block\">\r\n                <div class=\"img-block\">\r\n                    <img src=\"${imageSrc}\" alt=\"${altText}\">\r\n                </div>\r\n                <div class=\"txt-block\">\r\n                    <div class=\"link-wrap\">\r\n                        <a href=\"${linkHref}\">\r\n                            <span><b>${title}</b></span>\r\n                        </a>\r\n                        <br />\r\n                        ${findPresentationsLink}\r\n                        <p class=\"sub-txt\">${truncatedDescription}</p>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    `;\r\n}\r\n\r\n\r\n/* End Document Search widget */\r\n\r\n\r\n/* Start Counter element */\r\n\r\nconst counterWrapper = document.getElementById('counter-element-wrapper');\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\r\n    if (counterWrapper) {\r\n\r\n        // Add counter element dynamically\r\n        counterWrapper.innerHTML = `\r\n    <span class=\"icon\">\r\n        <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"ahfeather ahfeather-clock\" viewBox=\"0 0 24 24\" id=\"clock\" xmlns=\"http://www.w3.org/2000/svg\" width=\"60\">\r\n            <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\r\n            <path d=\"M12 6v6l4 2\"></path>\r\n        </svg>\r\n    </span>\r\n    <span class=\"counter-wrapper\">\r\n        <span class=\"counter\">1</span>\r\n    </span>\r\n    `;\r\n\r\n    }\r\n\r\n    const counterElement = document.querySelector('.counter');\r\n    // Get the end value from the data attribute\r\n    var endValue = 0;\r\n\r\n    if (counterElement && counterElement != null) {\r\n        endValue = parseInt(counterWrapper.getAttribute('data-end-value'), 10) || 343;\r\n    }\r\n\r\n    let currentValue = 1;\r\n    let hasAnimated = false;\r\n\r\n    function startAnimation() {\r\n        if (!hasAnimated) {\r\n            hasAnimated = true;\r\n            counterElement.classList.add('animate');\r\n            animateCounter();\r\n        }\r\n    }\r\n\r\n    function animateCounter() {\r\n        if (currentValue <= endValue) {\r\n            counterElement.textContent = currentValue;\r\n            currentValue++;\r\n            setTimeout(animateCounter, 10); // Adjust duration as needed\r\n        }\r\n    }\r\n\r\n    function isInViewport(element) {\r\n\r\n        if (counterWrapper) {\r\n            const rect = element.getBoundingClientRect();\r\n            return (\r\n                rect.top >= 0 &&\r\n                rect.left >= 0 &&\r\n                rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n                rect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n            );\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    if (counterWrapper) {\r\n        window.addEventListener('scroll', function checkScroll() {\r\n            if (isInViewport(counterWrapper)) {\r\n                startAnimation();\r\n                window.removeEventListener('scroll', checkScroll);\r\n            }\r\n        });\r\n\r\n        // Check if the element is already in view on page load \r\n        if (isInViewport(counterWrapper)) {\r\n            startAnimation();\r\n        }\r\n    }\r\n});\r\n\r\n/* End counter element */\r\n","    \r\n    function setHospitalValue() {  \r\n        if (localStorage.getItem(\"Hospital\") !== \"\" && $(\"[id$='Hospital_SelectedValue']\").length > 0 && document.referrer.includes('/hospitals/')) {\r\n            $(\"[id$='Hospital_SelectedValue'] option\").map(function () {\r\n\t\tif ($(this).text() == localStorage.getItem(\"Hospital\")) return this;\r\n\t\t\t}).attr('selected', 'selected');            \r\n        }\r\n\t\tvar url = new URL(document.URL);\r\n\t\tvar hospital = url.searchParams.get(\"hospital\");\r\n\t\tif(hospital != null){\r\n\t\t\thospital = hospital.charAt(0).toUpperCase() + hospital.slice(1)\r\n\t\t\t$(\"[id$='Hospital_SelectedValue'] option:contains(\"+ hospital +\")\").attr('selected', 'selected');\r\n\t\t}\r\n\t    if (localStorage.getItem(\"Hospital\") !== \"\" && document.URL.includes('/hospitals/')){\r\n                if($(\"[class$='main-nav']\")[0] !== undefined && localStorage.getItem(\"SeviceURl\") !== null)\t\t\t\r\n\t\t\t\t$($(\"[class$='main-nav']\")[0].children[1].firstElementChild).attr(\"href\", localStorage.getItem(\"SeviceURl\"));\t\t\t    \r\n\t\t\t\tlocalStorage.removeItem(\"SeviceURl\");\r\n\t\t}\r\n\t\tif (localStorage.getItem(\"Hospital\") !== \"\" && document.URL.includes('/hospitals/')) {\r\n\t\t       if($(\"[class$='main-nav']\")[0] !== undefined && localStorage.getItem(\"SpecialistURl\") !== null)\t\r\n\t\t\t   $($($($(\"[class$='main-nav']\")[0].children[2].firstElementChild).next())[0].children[0].children[0].firstElementChild).attr(\"href\", localStorage.getItem(\"SpecialistURl\"));\r\n\t\t       localStorage.removeItem(\"SpecialistURl\");\r\n\t\t}\r\n\t\t\r\n    }\r\n\t\r\n\r\nwindow.onload = setHospitalValue();","(function($){\r\n\r\n    $(function () {\r\n        /*\r\n        Vendor inits\r\n         */\r\n        picturefill();\r\n        svg4everybody();\r\n\r\n        /*\r\n        Utilities\r\n         */\r\n        SVHA.Utility.StateManager.run();\r\n\r\n        /*\r\n        Site specific widget intits\r\n         */\r\n        SVHA.Widgets.GlobalWidgets.init();\r\n\r\n        this.MainHeader = new SVHA.Widgets.MainHeader();\r\n        this.PrimaryNav = new SVHA.Widgets.PrimaryNav();\r\n\r\n        this.FooterAccordion = new SVHA.Widgets.AccordionContent({\r\n            mobileOnly: true,\r\n            selectors: {\r\n                widgetContainer: '#main-footer',\r\n                accordionItem: '.accordion-item',\r\n                btnToggle: '.btn-accordion-trigger',\r\n                contentBlock: '.accordion-content'\r\n            }\r\n        });\r\n\r\n        this.ImageSlider = new SVHA.Widgets.ImageSlider();\r\n        this.HospitalSlider = new SVHA.Widgets.HospitalSlider();\r\n\r\n\r\n        //Highlight straps\r\n        var highlightElements = document.querySelectorAll('.highlight-strap');\r\n        for (var i = 0; i < highlightElements.length; ++i) {\r\n\r\n            new SVHA.Widgets.HighlightStrap({\r\n                selectors: {\r\n                    widgetContainer: highlightElements[i],\r\n                }\r\n            })\r\n        }\r\n\r\n\r\n\r\n        //Video Players\r\n        var videoElements = document.querySelectorAll('.video-player');\r\n\r\n        for (var i = 0; i < videoElements.length; ++i) {\r\n\r\n            new SVHA.Widgets.VideoPlayer({\r\n                selectors: {\r\n                    widgetContainer: videoElements[i],\r\n                }\r\n            })\r\n        }\r\n\r\n        //IFrame widgets\r\n        var iFrameElements = document.querySelectorAll('.iframe-widget');\r\n\r\n        for (var i = 0; i < iFrameElements.length; ++i) {\r\n\r\n            new SVHA.Widgets.iFrameWidget({\r\n                selectors: {\r\n                    widgetContainer: iFrameElements[i],\r\n                }\r\n            })\r\n        }\r\n\r\n        this.SpecialistTemplateAccordions = new SVHA.Widgets.AccordionContent({\r\n            firstOpen: false,\r\n            mobileOnly: true,\r\n            resetOnViewportChange: true,\r\n            selectors: {\r\n                widgetContainer: '.specialist-locations',\r\n                accordionItem: '.accordion-item',\r\n                btnToggle: '.btn-accordion-trigger',\r\n                contentBlock: '.accordion-content'\r\n            }\r\n        });\r\n\r\n        /*\r\n        Back to top button functionality\r\n        Given its so simple, I've chose not to great a full plugin for it\r\n         */\r\n        $('.btn-back-to-top').click(function () {\r\n            $('html,body').animate({ scrollTop: 0 }, 750);\r\n            return false;\r\n        });\r\n\r\n\r\n    });\r\n\r\n})(jQuery);\r\n"]}