{"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('

'+txtString+'

');\r\n };\r\n\r\n ImageSlider.prototype.appendLink = function (txtString, url, isExternal) {\r\n if (isExternal === 'True'){\r\n this.$imgDescTxt.append(''+txtString+'');\r\n } else {\r\n this.$imgDescTxt.append(''+txtString+'');\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 = \"\";\r\nvar av_icon = \"\";\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('
  • Orthopaedics
  • ');\r\n $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-mater').prepend('
  • Maternity Home
  • ');\r\n $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-cardiac').prepend('
  • Cardiac Services
  • ');\r\n $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-elevate').prepend('
  • Elevate Program
  • ');\r\n $('.nav-wrapper #primary-nav.ortho-nav .main-nav.main-nav-self-funded').prepend('
  • Self-funded surgery
  • ');\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('
  • SVPH Home
  • ');\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
    \r\n ${data[i].name} \r\n \r\n \r\n \r\n \r\n \r\n
    `;\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 \r\n Book Now\r\n `;\r\n }\r\n\r\n\r\n html += `\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"${data[i].imageAlt}\"\r\n
    \r\n
    \r\n
    \r\n
    ${data[i].name}
    \r\n

    ${data[i].aboutDescriptionPart1}

    \r\n

    \r\n ${data[i].aboutDescriptionPart2} \r\n

    \r\n
    \r\n Enquire\r\n ${bookNowLink}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    `;\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 + \"
    \");\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(\"
    \" + av_icon + \" \" + data[i].text + \"\");\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 \" + \"not performed at the \" + hospital + \"\" + \"

    Select one of the locations below to modify your search:
    \";\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 + \"
    \" + av_icon + \" Performed at St Vincent's Public Hospital, Melbourne
    \";\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 + \"
    \" + av_icon + \" Performed at St Vincent's Public Hospital, Sydney
    \";\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
    \r\n ${data[i].name}\r\n \r\n \r\n \r\n \r\n \r\n
    `;\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 = \"
    \";\r\n\r\n resultitem = resultitem + \"

    \" + data[i].title + \"

    \";\r\n\r\n resultitem = resultitem + \"
    \" + data[i].body + \"
    \";\r\n\r\n if (data[i].fullArticleLink && data[i].fullArticleLink != '') {\r\n resultitem = resultitem + \" Learn more \";\r\n }\r\n\r\n resultitem = resultitem + \"
    \";\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('
    ' + resultlist + \"
    \");\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 \r\n Find Presentations\r\n \r\n
    ` : '';\r\n\r\n return `\r\n
    \r\n
    \r\n
    \r\n \"${altText}\"\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\r\n \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"]}