{"version":3,"sources":["pages/Pages.SearchScripts.js"],"names":["Searches","councilDisplayName","useDefaultSearchPeriod","eventTypeMap","0","1","2","3","4","5","7","eventFormatMap","6","8","9","10","11","12","13","14","DiaryFormatsDisplayName","buildSearch","uniqueEvents","search","IgnoreEventIds","ignoreEventIds","IgnoreEventKeys","ignoreEventKeys","WhatText","$","val","LocationID","searchDefaults","Latitude","Longitude","GeographyID","CalendarDisplay","WhenIndex","length","SearchFrom","createDateTime","SearchTo","today","Date","formattedDate","String","getDate","padStart","getMonth","getFullYear","PageNo","PageSize","DiaryTypeID","CouncilID","StateCode","DiaryCategories","KeyWords","DiaryAudienceID","DiaryFormatID","UniqueEvents","IncludeDeletedAndUnpublished","AffiliateSiteID","ViewableBy","CustomTagID","SearchOrganisationID","LocationOutletID","RadiusKM","ManagedOutletID","dateVal","hour","min","sec","ms","parts","split","toISOString","hideLoading","hide","ScrollLoading","aria","Utils","AriaAlert","ariaGrid","OnClickGetGeographyResults","empty","GetGeographyResults","options","_searchOptions","opts","currentDate","PAGE_NO","MAX_PAGE_SIZE","geographyId","searchOptions","diaryTypeIDs","DiaryTypeIDs","diaryFormatID","whenIndex","searchTo","date","slice","ajax","type","url","window","AppSettings","ApiUrl","data","beforeSend","show","eventTypeText","text","success","events","Data","append","template","render","DiaryUrl","replace","ResultPanelClass","html","shave","off","on","newOptions","extend","currentPage","this","error","complete","getResults","post","contentType","JSON","stringify","DiaryTypeId","isNaN","parseInt","EventFormatId","DiaryType","EventFormat","displayPeriod","manipulateTopEventHeader","attr","forEach","e","DataProviderKey","push","EventID","$template","removeAttr","FinishedAutoScroll","isFocused","findFocusedItem","document","activeElement","x","y","focusedRow","focusedCol","Grid","getElementById","setFocusPointer","showResults","err","console","log","BottomMarginTrigger","PagesToAutoScroll","displayCouncilDetails","council","template2","$template2","hideAdvancedFilter","removeClass","hideEventFormats","url_type_num","displayEventFormats","totalEventFormats","hiddenArray","filter","indexOf","TaggedEventsSearch","specialEventPeriods","find","collapse","each","eventPeriodTagIds","eventPeriodId","eventPeriodTagId","toString","map","tag","period","tags","eventPeriod","CustomTagIDs","periodSelector","resultsSelector","InitSearch","state","What","Where","DisplayName","Name","State","typeValues","dataType","sort","slick","slidesToShow","slide","autoplay","addClass","get","IncludeExpiredEvents","DiaryTypeIds","done","res","click","change","fail","preventDefault","toggleClass","hasClass","url_type","url_format","hostName","location","origin","stateName","LongUrl","regionName","urlParam_type","urlParam_format","councilName","metaTagTitle","metaTagDescription","metaTagKeywords","sidebarDiaryType","metaTitle","metaDescription","metaKeywords","remove","history","replaceState","is","fullCalendar","width","l","header","left","center","right","height","startParam","endParam","nowIndicator","fixedWeekCount","eventDataTransform","event","eventDisplayColour","id","ID","title","EventName","start","StartsAt","end","EndsAt","InstanceUrl","allDay","StartTime","diaryElement","color","eventRender","element","qtip","content","position","target","adjust","my","at","style","api","t","str","len","substring","truncateString","loading","isLoading","view","selectedArray","sourceObj","filteredDiaryFormats","Object","keys","key","Number","reduce","obj","$select","value","evnt","format","whatText","whereText","path","pathname","params","trim","encodeURIComponent","join","href"],"mappings":"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","file":"Pages.SearchScripts.min.js","sourcesContent":["var Searches = function () {\r\n    var councilDisplayName;\r\n    var useDefaultSearchPeriod = true; // default is next 30 days, WhenIndex:All\r\n    var isTaggedEventsPage = false;\r\n    var eventTypeMap = {\r\n        0: 'All',\r\n        1: 'CommunityDiary',\r\n        2: 'Training',\r\n        3: 'Inter_Agency',\r\n        4: 'Clubs_Group',\r\n        5: 'Outreach_Service',\r\n        7: 'Queensland_Mental_Health_Week'\r\n    };\r\n    var eventFormatMap = {\r\n        0: 'All',\r\n        1: 'Class',\r\n        2: 'Exhibition',\r\n        3: 'Festival',\r\n        4: 'Market',\r\n        5: 'Concert',\r\n        6: 'Sport',\r\n        7: 'Business',\r\n        8: 'Community',\r\n        9: 'Food',\r\n        10: 'Vaks',\r\n        11: 'Health',\r\n        12: 'TransportHub',\r\n        13: 'CovidVaccinationClinic',\r\n        14: 'CovidTestingClinic'\r\n    };\r\n\r\n    var DiaryFormatsDisplayName = {\r\n        1: \"Classes, Lessons, Workshops and Talks\",\r\n        2: \"Exhibition and Shows\",\r\n        3: \"Festivals and Celebrations\",\r\n        4: \"Markets\",\r\n        5: \"Concert or Performance\",\r\n        6: \"Sporting Events\",\r\n        7: \"Business Event\",\r\n        8: \"Community Event\",\r\n        9: \"Food and Wine\",\r\n        10: \"VAKS\",\r\n        11: \"Health\",\r\n        12: \"Transport Hub\",\r\n        13: \"COVID Vaccination Clinic\",\r\n        14: \"COVID Testing Clinic\"\r\n    }\r\n\r\n    function truncateString(str, len) {\r\n        if (str.length <= len) {\r\n            return;\r\n        }\r\n        return str.substring(0, len - 4) + ' ...';\r\n    }\r\n    function populateSearch(data) {\r\n        if (data === null || typeof data !== \"object\") return;\r\n\r\n        if (data.What) $(\"#SearchCriteria_WhatText\").val(data.What);\r\n        if (data.Where) $(\"#SearchCriteria_WhereText\").val(data.Where);\r\n        if (data.LocationID) $(\"#SearchCriteria_LocationID\").val(data.LocationID);\r\n        if (data.What) $(\"#SearchCriteria_WhatText\").val(data.What);\r\n        if (data.WhenIndex) $(\"#WhenIndex\").val(data.WhenIndex);\r\n        if (data.SearchFrom) $(\"#SearchFrom\").val(data.SearchFrom);\r\n        if (data.SearchTo) $(\"#SearchTo\").val(data.SearchTo);\r\n        if (data.ViewableBy) $(\"#SearchCriteria_ViewableBy\").val(data.ViewableBy);\r\n        if (data.DiaryTypeID) $(\"#DiaryType\").val(data.DiaryTypeID);\r\n        if (data.KeyWords) $(\"#KeyWords\").val(data.KeyWords);\r\n        if (data.DiaryAudienceID) $(\"#DiaryAudience\").val(data.DiaryAudienceID);\r\n        if (data.DiaryFormatID) $(\"#DiaryFormat\").val(data.DiaryFormatID);\r\n        if (data.LocationOutletID) $(\"#SearchCriteria_LocationOutletID\").val(data.LocationOutletID);\r\n        if (data.ManagedOutletID) $(\"#SearchCriteria_ManagedOutletID\").val(data.ManagedOutletID);\r\n    }\r\n\r\n    function buildSearch(uniqueEvents) {\r\n        var search = {};\r\n        search.IgnoreEventIds = ignoreEventIds;\r\n        search.IgnoreEventKeys = ignoreEventKeys;\r\n        search.WhatText = $(\"#SearchCriteria_WhatText\").val();\r\n        //search.WhereText = $(\"#SearchCriteria_WhereText\").val();\r\n        search.LocationID = $(\"#SearchCriteria_LocationID\").val();\r\n        searchDefaults.Latitude = $(\"#SearchCriteria_Latitude\").val();\r\n        searchDefaults.Longitude = $(\"#SearchCriteria_Longitude\").val();\r\n        searchDefaults.GeographyID = $('#SessionGeographyId').val();\r\n\r\n        if (searchDefaults.CalendarDisplay) {\r\n            search.WhenIndex = \"5\";\r\n        }\r\n        else {\r\n            if ($(\"#WhenIndex\").length > 0) {\r\n                search.WhenIndex = $(\"#WhenIndex\").val();\r\n            } else {\r\n                search.WhenIndex = \"All\";\r\n            }\r\n            if ($(\"#SearchFrom\").length > 0 && $(\"#SearchTo\").length > 0) {\r\n                search.SearchFrom = createDateTime($(\"#SearchFrom\").val(), 0, 0, 0, 0);\r\n                search.SearchTo = createDateTime($(\"#SearchTo\").val(), 23, 59, 59, 999);\r\n            } else {\r\n                var today = new Date();\r\n                // Get the day, month, and year\r\n                var day = String(today.getDate()).padStart(2, '0'); // Day of the month (ensure 2 digits)\r\n                var month = String(today.getMonth() + 1).padStart(2, '0'); // Month (0-11), add 1 to make it 1-12, ensure 2 digits\r\n                var year = today.getFullYear(); // Full year (e.g., 2024)\r\n                // Format in d/MM/yyyy format\r\n                var formattedDate = day + '/' + month + '/' + year;\r\n                search.SearchFrom = createDateTime(formattedDate, 0, 0, 0, 0);\r\n                search.SearchTo = \"\";\r\n            }\r\n            search.PageNo = searchDefaults.PageNo;\r\n            search.PageSize = searchDefaults.PageSize;\r\n        }\r\n\r\n        search.DiaryTypeID = $(\"#DiaryType\").val();\r\n        search.CouncilID = searchDefaults.CouncilID;\r\n        search.StateCode = searchDefaults.StateCode;\r\n\r\n        if (searchDefaults.DiaryCategories) search.DiaryCategories = searchDefaults.DiaryCategories;\r\n\r\n        search.KeyWords = $(\"#KeyWords\").val();\r\n        search.DiaryAudienceID = $(\"#DiaryAudience\").val();\r\n        search.DiaryFormatID = $(\"#DiaryFormat\").val();\r\n        search.UniqueEvents = uniqueEvents;\r\n        search.IncludeDeletedAndUnpublished = false;\r\n\r\n        if (searchDefaults.AffiliateSiteID) search.AffiliateSiteID = searchDefaults.AffiliateSiteID;\r\n\r\n        search.ViewableBy = $(\"#SearchCriteria_ViewableBy\").val() !== \"\" ? $(\"#SearchCriteria_ViewableBy\").val() : \"0\";\r\n\r\n        if (searchDefaults.GeographyID) search.GeographyID = searchDefaults.GeographyID;\r\n        if (searchDefaults.CustomTagID) search.CustomTagID = searchDefaults.CustomTagID;\r\n        if (searchDefaults.SearchOrganisationID) search.SearchOrganisationID = searchDefaults.SearchOrganisationID;\r\n        if (searchDefaults.LocationOutletID) search.LocationOutletID = searchDefaults.LocationOutletID;\r\n\r\n        if (searchDefaults.Latitude && searchDefaults.Longitude) {\r\n            search.Latitude = searchDefaults.Latitude;\r\n            search.Longitude = searchDefaults.Longitude;\r\n            search.RadiusKM = 5;\r\n        }\r\n       \r\n        if (searchDefaults.ManagedOutletID) search.ManagedOutletID = searchDefaults.ManagedOutletID;\r\n        return search;\r\n    }\r\n\r\n    function createDateTime(dateVal, hour, min, sec, ms) {\r\n        var parts = dateVal.split(\" \");\r\n        if (0 === parts.length || \"\" === parts[0]) {\r\n            return \"\";\r\n        }\r\n        parts = parts[0].split(\"/\");\r\n        if (parts.length >= 3) {\r\n            return new Date(parts[2], parts[1] - 1, parts[0], hour, min, sec, ms).toISOString();\r\n        }\r\n        return \"\";\r\n    }\r\n\r\n    function showLoading() {\r\n        searchDefaults.ScrollLoading = true;\r\n        $(\"#resultsPanel .waiting\").show();\r\n        aria.Utils.AriaAlert(\"Getting results...\");\r\n    }\r\n\r\n    function hideLoading() {\r\n        $(\"#resultsPanel .waiting\").hide();\r\n        searchDefaults.ScrollLoading = false;\r\n        aria.Utils.AriaAlert(\"Showing results...\");\r\n    }\r\n\r\n    // Switching to different DiaryType or DiaryFormat must clear ignoreEventIds, ignoreEventKeys\r\n    var ignoreEventIds = [0];\r\n    var ignoreEventKeys = [''];\r\n\r\n    function GetGeographyResults(options, _searchOptions) {\r\n        var opts = options || {};\r\n        var currentDate = opts.currentDate || null;\r\n        var PAGE_NO = opts.PAGE_NO || 1;\r\n        var MAX_PAGE_SIZE = opts.MAX_PAGE_SIZE || 20;\r\n        var PAGE_CONTENT_SIZE = opts.PAGE_CONTENT_SIZE || 20;\r\n        var geographyId = opts.geographyId || null;\r\n\r\n        var searchOptions = _searchOptions || {};\r\n        var diaryTypeIDs = searchOptions.DiaryTypeIDs || [1, 4, 5];\r\n        var diaryFormatID = searchOptions.DiaryFormatID || 0;\r\n        var whenIndex = searchOptions.WhenIndex || 'All';\r\n        var searchTo = searchOptions.SearchTo || \"\";\r\n\r\n        if (!geographyId || $('#SearchCriteria_WhereText').val() == \"\") return;\r\n\r\n        if (!currentDate) {\r\n            var date = new Date();\r\n            var year = date.getFullYear();\r\n            var month = ('0' + (date.getMonth() + 1)).slice(-2);\r\n            var day = ('0' + date.getDate()).slice(-2);\r\n            currentDate = year + '-' + month + '-' + day;\r\n        }\r\n\r\n        $.ajax({\r\n            type: \"GET\",\r\n            url: window.AppSettings.ApiUrl + '/api/v1/search/diary/GetResponse',\r\n            data: {\r\n                WhenIndex: whenIndex,\r\n                SearchFrom: currentDate,\r\n                SearchTo: searchTo,\r\n                PageNo: PAGE_NO,\r\n                PageSize: MAX_PAGE_SIZE, // Page Size for calculating total pages\r\n                UniqueEvents: true,\r\n                IncludeDeletedAndUnpublished: false,\r\n                //CouncilID: councilId,\r\n                //IsCommunityOrganisation: false,\r\n                //IsATDW: false,\r\n                //IsEventFinda: false,\r\n                //IsCheckup: false,\r\n                //IsCATS: false,\r\n                //IsPrivate: false,\r\n                //Latitude: latitude,\r\n                //Longitude: longitude,\r\n                //RadiusKM: searchRadius,\r\n                GeographyID: geographyId,\r\n                DiaryFormatID: diaryFormatID,\r\n                DiaryTypeIDs: diaryTypeIDs,\r\n                //IgnoreEventIds: ignoreEventIds,\r\n                //IgnoreEventKeys: ignoreEventKeys\r\n            },\r\n            beforeSend: function () {\r\n                $('#resultsPanelUCL .waiting').show();\r\n                $(\"#resultsUCL\").show();\r\n                var eventTypeText = '';\r\n                switch (diaryTypeIDs.length) {\r\n                    case 1:\r\n                        switch (diaryTypeIDs[0]) {\r\n                            case 1:\r\n                            case '1':\r\n                                eventTypeText = 'Community Diary';\r\n                                break;\r\n                            case 4:\r\n                            case '4':\r\n                                eventTypeText = 'Clubs & Groups Diary';\r\n                                break;\r\n                            case 5:\r\n                            case '5':\r\n                                eventTypeText = 'Outreach Services Diary';\r\n                                break;\r\n                        }\r\n                        break;\r\n                    case 0:\r\n                    default:\r\n                        break;\r\n                }\r\n                $('#topEventsHeaderUCL .eventType').text(eventTypeText);\r\n                $('#resultsPanelUCL .show-more').hide();\r\n            },\r\n            success: function (events) {\r\n                var data = events.Data;\r\n                if (data && data.length > 0) {\r\n                    var template = $(\"#resultTemplate\").render(data, { DiaryUrl: window.AppSettings.DiaryUrl }).replace(/col-lg-3/g, \"col-lg-\" + searchDefaults.ResultPanelClass);\r\n                    var $template = $(\"<div/>\").html(template);\r\n                    //$(\".nofollow\", $template).removeAttr(\"rel\");\r\n                    template = $template.html();\r\n\r\n                    $(\"#resultsUCL\").append(template);\r\n                    $(\"#resultsUCL .card-description\").shave(48);\r\n\r\n                    $('#resultsPanelUCL .show-more').show();\r\n                    $('#resultsPanelUCL .show-more').off('click').on('click', function () {\r\n                        var newOptions = $.extend({}, options);\r\n                        var currentPage = $(this).data('page');\r\n                        currentPage += 1;\r\n                        newOptions.PAGE_NO = currentPage;\r\n                        $(this).data('page', currentPage);\r\n                        GetGeographyResults(newOptions, diaryTypeIDs);\r\n                    });\r\n                }\r\n                else\r\n                {\r\n                    $('#resultsPanelUCL .show-more').hide();\r\n                    $(\"#resultsUCL\").append($(\"<div class='row'><div class='col-xs-offset-1 col-xs-10'><div class='alert alert-info' style='border-width: 0; border-left-width: 5px; border-color: #9cb4c5; color: #305d8c; background-color: #d6dde7;'><i class='fa fa-frown-o'></i> There are no more events found within this area. You may discover more nearby events below!</div></div></div>\"));\r\n                    return;\r\n                }\r\n            },\r\n            error: function () {\r\n                $(\"#resultsUCL\").hide();\r\n                $('#resultsPanelUCL').hide();\r\n            },\r\n            complete: function () {\r\n                $('#resultsPanelUCL .waiting').hide();\r\n            }\r\n        });\r\n    }\r\n\r\n    function OnClickGetGeographyResults() {\r\n        if ($('#resultsPanelUCL').length > 0) {\r\n            $(\"#resultsUCL\").empty();\r\n            var search = buildSearch(true);\r\n            var configOptions = {\r\n                geographyId: search.GeographyID\r\n            };\r\n            var diaryTypeId = [];\r\n            if (!search.DiaryTypeID || search.DiaryTypeID == '') {\r\n                diaryTypeId = [1, 4, 5];\r\n            } else {\r\n                diaryTypeId = [search.DiaryTypeID];\r\n            }\r\n            var searchOptions = {\r\n                DiaryTypeIDs: diaryTypeId,\r\n                DiaryFormatID: search.DiaryFormatID,\r\n                WhenIndex: search.WhenIndex\r\n            }\r\n            GetGeographyResults(configOptions, searchOptions);\r\n        }\r\n    }\r\n\r\n    function getResults() {\r\n        showLoading();\r\n        searchDefaults.CalendarDisplay = false;\r\n        var search = buildSearch(true);\r\n\r\n        $.post({\r\n            url: window.AppSettings.ApiUrl + \"/api/v1/search/diary/GetUniqueEventGroupings\",\r\n            contentType: \"application/json\",\r\n            data: JSON.stringify(search),\r\n            beforeSend: function () {\r\n                manipulateTopEventHeader();\r\n                $(\"#resultsPanel .show-more\").hide();\r\n            },\r\n            success: function (data) {\r\n                showResults(data);\r\n            },\r\n            error: function(err) {\r\n                console.log(err);\r\n                //$(\"#results\").append(\"<div class='alert alert-warning'>There was an error retrieving events!</div>\");\r\n                searchDefaults.FinishedAutoScroll = true;\r\n                hideLoading();\r\n                $(\"#resultsPanel .show-more\").hide();\r\n            }\r\n        });\r\n    }\r\n\r\n    var ariaGrid;\r\n    function showResults(events) {\r\n        $(\"#results\").attr(\"aria-rowcount\", $(\"#results result-card\").length);\r\n        if (events.length > 0 && $(\"#results\").length > 0) {\r\n            events.forEach(function (e) {\r\n                if (e.DataProviderKey && e.DataProviderKey.length > 0) {\r\n                    ignoreEventKeys.push(e.DataProviderKey.split('/')[0]);\r\n                } else {\r\n                    ignoreEventIds.push(e.EventID);\r\n                }\r\n            });\r\n            var template = $(\"#resultTemplate\").render(events, { DiaryUrl: window.AppSettings.DiaryUrl }).replace(/col-lg-3/g, \"col-lg-\" + searchDefaults.ResultPanelClass);\r\n            var $template = $(\"<div/>\").html(template);\r\n            $(\".nofollow\", $template).removeAttr(\"rel\");\r\n            template = $template.html();\r\n\r\n            $(\"#results\").append(template);\r\n            $(\".card-description\").shave(48);\r\n\r\n            searchDefaults.PageNo++;\r\n            if (events.length >= searchDefaults.PageSize) {\r\n                $(\"#resultsPanel .show-more\").show();\r\n                searchDefaults.FinishedAutoScroll = true;\r\n            } else {\r\n                $(\"#resultsPanel .show-more\").hide();\r\n            }\r\n\r\n            // Are we currently focused? Then restore after rebuild\r\n            var isFocused = ariaGrid && ariaGrid.findFocusedItem(document.activeElement);\r\n            var x = 0, y = 0;\r\n            if (isFocused) {\r\n                x = ariaGrid.focusedRow;\r\n                y = ariaGrid.focusedCol;\r\n                // Have to reset tabindex as this is used to build grid - not a perfect approach\r\n                $(document.activeElement).attr(\"tabindex\", \"-1\");\r\n            }\r\n\r\n            ariaGrid = new aria.Grid(document.getElementById(\"results\"));\r\n\r\n            if (isFocused) {\r\n                ariaGrid.setFocusPointer(x, y);\r\n            }\r\n        }\r\n        else {\r\n            if (searchDefaults.PageNo === 1) {\r\n                $(\"#results\").append($(\"<div class='row'><div class='col-xs-offset-1 col-xs-10'><div class='alert alert-info' style='border-width: 0; border-left-width: 5px; border-color: #9cb4c5; color: #305d8c; background-color: #d6dde7;'><i class='fa fa-frown-o'></i> There were no events found that match your query. Consider revising your options and trying again!</div></div></div>\"));\r\n            }\r\n            searchDefaults.FinishedAutoScroll = true;\r\n            $(\"#resultsPanel .show-more\").hide();\r\n        }\r\n\r\n        hideLoading();\r\n    }\r\n\r\n    var searchDefaults = {\r\n        ScrollLoading: true,\r\n        FinishedAutoScroll: false,\r\n        PageNo: 1,\r\n        PageSize: 20,\r\n        ResultPanelClass: \"3\",\r\n        CouncilID: 0,\r\n        StateCode: null,\r\n        KeyWords: null,\r\n        CalendarDisplay: false,\r\n        BottomMarginTrigger: 250,\r\n        PagesToAutoScroll: 3\r\n    };\r\n\r\n    function getCouncilDetails(councilId) {\r\n        $.getJSON(window.AppSettings.ApiUrl + \"/api/v1/system/councils/\" + councilId, function (data) {\r\n            if (data) {\r\n                displayCouncilDetails(data);\r\n            }\r\n        });\r\n    }\r\n\r\n    function displayCouncilDetails(council)\r\n    {\r\n        var template = $(\"#councilTemplate\").render(council);\r\n        var $template = $(\"<div/>\").html(template);\r\n        $(\".nofollow\", $template).removeAttr(\"rel\");\r\n        template = $template.html();\r\n        $(\".council-details\").html(template);\r\n\r\n        var template2 = $(\"#councilTrailTemplate\").render(council);\r\n        var $template2 = $(\"<div/>\").html(template2);\r\n        $(\".nofollow\", $template2).removeAttr(\"rel\");\r\n        template2 = $template2.html();\r\n        $(\".council-trail\").html(template2);\r\n    }\r\n\r\n    function showAdvancedFilter() {\r\n        $(\"#filterPanel\").show();\r\n        $(\".show-advanced\").addClass(\"active\");\r\n    }\r\n\r\n    function hideAdvancedFilter() {\r\n        $(\"#filterPanel\").hide();\r\n        $(\".show-advanced\").removeClass(\"active\");\r\n\r\n    }\r\n\r\n    function hideEventFormats(url_type_num) {\r\n        switch (url_type_num) {\r\n            case 1:\r\n                displayEventFormats = [1, 2, 3, 4, 5, 6, 7, 8, 9];\r\n                break;\r\n            case 2:\r\n                displayEventFormats = [1, 7];\r\n                break;\r\n            case 3:\r\n                displayEventFormats = [7];\r\n                break;\r\n            case 4:\r\n                displayEventFormats = [1, 2, 3, 6, 8, 9];\r\n                break;\r\n            case 5:\r\n                displayEventFormats = [10, 11, 12, 13, 14];\r\n                break;\r\n            default:\r\n                displayEventFormats = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];\r\n        }\r\n\r\n        var totalEventFormats = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];\r\n        var hiddenArray = totalEventFormats.filter(function (val) { return displayEventFormats.indexOf(val) == -1 });\r\n        totalEventFormats.forEach(function (e) { $(\"[data-format='\" + e + \"']\").show(); });\r\n        hiddenArray.forEach(function (e) { $(\"[data-format='\" + e + \"']\").hide(); });\r\n    }\r\n\r\n    function manipulateTopEventHeader() {\r\n        $(\"#topEventsHeader\").empty();\r\n\r\n        var DiaryTypeId = isNaN(parseInt($(\"#DiaryType\").val())) ? 0 : parseInt($(\"#DiaryType\").val());\r\n        var EventFormatId = isNaN(parseInt($(\"#DiaryFormat\").val())) ? 0 : parseInt($(\"#DiaryFormat\").val());\r\n        var eventTypeMapForHeader = {\r\n            0: 'All',\r\n            1: 'Community Diary',\r\n            2: 'Training Diary',\r\n            3: 'Inter-Agency Diary',\r\n            4: 'Clubs & Groups Diary',\r\n            5: 'Outreach Services Diary',\r\n            7: 'Queensland Mental Health Week'\r\n        };\r\n        var eventFormatMapForHeader = {\r\n            0: 'All',\r\n            1: 'Class',\r\n            2: 'Exhibition',\r\n            3: 'Festival',\r\n            4: 'Market',\r\n            5: 'Concert',\r\n            6: 'Sport',\r\n            7: 'Business',\r\n            8: 'Community',\r\n            9: 'Food',\r\n            10: 'Vaks',\r\n            11: 'Health',\r\n            12: 'Transport Hub',\r\n            13: 'Covid Vaccination Clinic',\r\n            14: 'Covid Testing Clinic'\r\n        };\r\n        var DiaryType = eventTypeMapForHeader[DiaryTypeId];\r\n        var EventFormat = eventFormatMapForHeader[EventFormatId];\r\n        var displayPeriod = \"\";\r\n        switch ($(\"#WhenIndex\").val()) {\r\n            case \"Today\":\r\n                displayPeriod = \" - Today\";\r\n                break;\r\n            case \"Tomorrow\":\r\n                displayPeriod = \" - Tomorrow\";\r\n                break;\r\n            case \"Next7\":\r\n                displayPeriod = \" - Coming Week\";\r\n                break;\r\n            default:\r\n                displayPeriod = useDefaultSearchPeriod && $(\"#WhenIndex\").val() == \"All\" ? \" - Next 30 days\" : \"\";\r\n                break;\r\n        }\r\n        if (EventFormatId != 0) {\r\n            $(\"#topEventsHeader\").append(\"<h1 class='h3'>What's on \" + councilDisplayName + \" - Upcoming \" + EventFormat + \" Events in \" + councilDisplayName + displayPeriod + \"</h1>\")\r\n        } else if (EventFormatId == 0 && DiaryTypeId != 0) {\r\n            $(\"#topEventsHeader\").append(\"<h1 class='h3'>What's on \" + councilDisplayName + \" - Upcoming \" + DiaryType + \" Events in \" + councilDisplayName + displayPeriod + \"</h1>\")\r\n        } else {\r\n            $(\"#topEventsHeader\").append(\"<h1 class='h3'>What's on \" + councilDisplayName + \" - Upcoming \" + \" Events in \" + councilDisplayName + displayPeriod + \"</h1>\")\r\n        }   \r\n    }\r\n\r\n    function removeTopEventHeader() {\r\n        $(\"#topEventsHeader\").empty();\r\n    }\r\n\r\n    function filterDiaryFormats(selectedArray, sourceObj) {\r\n        return Object.keys(sourceObj)\r\n            .filter(function (key) { return selectedArray.indexOf(Number(key)) > -1; })\r\n            .reduce(function(obj, key) {\r\n                obj[key] = sourceObj[key];\r\n                return obj;\r\n            }, {});\r\n    }\r\n\r\n    function SearchTaggedEvents() {\r\n        var search = buildSearch(true);\r\n        var specialEventPeriods = [];\r\n        $('.event-period').each(function () {\r\n            var eventPeriodTagIds = [];\r\n            var eventPeriodId = $(this).data(\"event-period-id\");\r\n            var eventPeriodTagId = $(this).data(\"event-period-tag-id\");\r\n            if (eventPeriodTagId && eventPeriodTagId.toString().length > 0) {\r\n                var tags = eventPeriodTagId.toString().split(',');\r\n                eventPeriodTagIds = tags.map(function (tag) {\r\n                    return parseInt(tag, 10)\r\n                }).filter(function (tag) {\r\n                    return !isNaN(tag);\r\n                });\r\n            }\r\n            specialEventPeriods.push({ period: eventPeriodId, tags: eventPeriodTagIds });\r\n        });\r\n\r\n        // Send request for each special event period\r\n        specialEventPeriods.forEach(function (eventPeriod) {\r\n            search.CustomTagIDs = eventPeriod.tags;\r\n\r\n            $.post({\r\n                url: window.AppSettings.ApiUrl + \"/api/v1/search/diary/GetUniqueEventGroupings\",\r\n                contentType: \"application/json\",\r\n                data: JSON.stringify(search),\r\n                beforeSend: function () {\r\n                    var periodSelector = \".event-period[data-event-period-id=\" + eventPeriod.period + \"]\";\r\n                    $(periodSelector).find('.waiting').show();\r\n                },\r\n                success: function (data) {\r\n                    if (data && data.length > 0) {\r\n                        var template = $(\"#resultTemplate\")\r\n                            .render(data, { DiaryUrl: window.AppSettings.DiaryUrl })\r\n                            .replace(/col-lg-3/g, \"col-lg-\" + searchDefaults.ResultPanelClass);\r\n\r\n                        var $template = $(\"<div/>\").html(template);\r\n                        template = $template.html();\r\n\r\n                        // Append the results to the corresponding event period\r\n                        var resultsSelector = \".event-period-results[data-event-period-id=\" + eventPeriod.period + \"]\";\r\n                        $(resultsSelector).append(template);\r\n                        $(\".card-description\").shave(48);\r\n                    }\r\n                },\r\n                error: function (err) {\r\n                    console.error(\"Error loading data for event period:\", eventPeriod.period, err);\r\n                },\r\n                complete: function () {\r\n                    // Hide the waiting spinner for the current event period\r\n                    var periodSelector = \".event-period[data-event-period-id=\" + eventPeriod.period + \"]\";\r\n                    $(periodSelector).find('.waiting').hide();\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    function TaggedEventsSearch() {\r\n        $('#search-results-main').on('show.bs.collapse', function () {\r\n            $('#btn-show-default-search').find('.fa-chevron-down').hide();\r\n            $('#btn-show-default-search').find('.fa-chevron-up').show();\r\n        });\r\n\r\n        $('#search-results-main').on('hide.bs.collapse', function () {\r\n            $('#btn-show-default-search').find('.fa-chevron-up').hide();\r\n            $('#btn-show-default-search').find('.fa-chevron-down').show();\r\n        });\r\n        $('#btn-show-default-search').on('click', function () {\r\n            $('#search-results-main').collapse('toggle');\r\n        });\r\n\r\n        SearchTaggedEvents();\r\n    }\r\n\r\n    return {\r\n\r\n        InitSearch: function (council, state, search) {\r\n            populateSearch(search);\r\n\r\n            $.extend(searchDefaults, search);\r\n\r\n            if (council) {\r\n                displayCouncilDetails(council);\r\n            }\r\n            else {\r\n                if (state) {\r\n                    displayCouncilDetails({ DisplayName: state.Name, State: state });\r\n                }\r\n            }\r\n\r\n            if (council != null) {\r\n                councilDisplayName = council.DisplayName;\r\n            } else {\r\n                if (state != null) {\r\n                    councilDisplayName = state.Name;\r\n                }\r\n            }\r\n\r\n            // set default Diary to CommunityDiary\r\n            var defaultDiaryType = (search.DiaryTypeID == null || search.DiaryTypeID == 0) ? 1 : search.DiaryTypeID;\r\n\r\n            // hide eventFormats according to different Diary type\r\n            hideEventFormats(defaultDiaryType);\r\n\r\n            // instead of getResult() with the old configuration\r\n            // getResults();\r\n            // we get the first event type which has some events and show results according to that type\r\n            // find event type with some events\r\n            var typeValues = [];\r\n            $('#eventTypeButtons button').each(function () {\r\n                var dataType = $(this).data('type');\r\n                typeValues.push(dataType);\r\n            });\r\n            typeValues.sort();\r\n\r\n            if ($('#isTaggedEventsPage').val() === \"True\") {\r\n                TaggedEventsSearch();\r\n            } else {\r\n                $('#special-event-banner').slick({\r\n                    slidesToShow: 1,\r\n                    slide: \"div\",\r\n                    autoplay: true,\r\n                });\r\n                $('#special-event-banner').removeClass('hidden');\r\n                $('#special-event-banner').addClass('flex-important');\r\n\r\n                $.get(window.AppSettings.ApiUrl + '/api/v1/search/diary/GetEventTypesWithCount',\r\n                    {\r\n                        WhatText: search.WhatText,\r\n                        WhenIndex: 'All',\r\n                        SearchFrom: createDateTime($(\"#SearchFrom\").val(), 23, 59, 59, 999),\r\n                        SearchTo: createDateTime($(\"#SearchTo\").val(), 23, 59, 59, 999),\r\n                        UniqueEvents: true,\r\n                        IncludeExpiredEvents: false,\r\n                        CouncilID: search.CouncilID,\r\n                        DiaryTypeIds: typeValues,\r\n                        StateCode: search.StateCode\r\n                    })\r\n                    .done(function (res) {\r\n                        if (res && res.length > 0) {\r\n                            res.sort();\r\n                            if ($(\"#eventTypeButtons\").find('.btn-primary[data-type]').length <= 0) {\r\n                                if (res.length !== 3) { // if not all types have some results, we use the first type\r\n                                    $(\"#eventTypeButtons\").find('[data-type=\"' + res[0] + '\"]').click();\r\n                                    return;\r\n                                }\r\n                            }\r\n                        } else {\r\n                            $(\"#DiaryType\").val('0').change();\r\n                        }\r\n                        useDefaultSearchPeriod = true; // WhenIndex:All\r\n                        hideEventFormats(0);\r\n                        getResults();\r\n                        OnClickGetGeographyResults();\r\n                    })\r\n                    .fail(function (err) {\r\n                        useDefaultSearchPeriod = true; // WhenIndex:All\r\n                        hideEventFormats(0);\r\n                        getResults();\r\n                        OnClickGetGeographyResults();\r\n                        console.log(err);\r\n                    });\r\n\r\n                $(\".filter-events\").on(\"click\", function (e) {\r\n                    e.preventDefault();\r\n                    var period = $(this).data(\"period\");\r\n                    $(\"#WhenIndex\").val(period);\r\n                    searchDefaults.PageNo = 1;\r\n                    searchDefaults.FinishedAutoScroll = false;\r\n                    $(\"#resultsPanel .show-more\").hide();\r\n                    $(\"#results\").html(\"\");\r\n\r\n                    // Important!\r\n                    ignoreEventIds = [];\r\n                    ignoreEventKeys = [];\r\n\r\n                    getResults();\r\n                    OnClickGetGeographyResults();\r\n                });\r\n\r\n                $(\"#eventTypeButtons\").on(\"click\", \".search-icon-btn\", function () {\r\n                    $(this).toggleClass(\"btn-primary btn-mcd-orange\");\r\n\r\n                    // Important!\r\n                    ignoreEventIds = [];\r\n                    ignoreEventKeys = [];\r\n\r\n                    $('#WhenIndex').val('All').change();\r\n\r\n                    if (!$(this).hasClass(\"btn-primary\")) {\r\n                        $(\"#eventTypeButtons .search-icon-btn\").removeClass(\"btn-primary\").removeClass(\"btn-mcd-orange\").addClass(\"btn-secondary\");\r\n                        $(\"#DiaryType\").val(\"0\");\r\n                    }\r\n                    else {\r\n                        $(\"#eventTypeButtons .search-icon-btn\").removeClass(\"btn-primary\").removeClass(\"btn-mcd-orange\").addClass(\"btn-secondary\");\r\n                        $(this).removeClass(\"btn-secondary\").addClass(\"btn-primary\").addClass(\"btn-mcd-orange\");\r\n                        $(\"#DiaryType\").val($(this).data(\"type\"));\r\n                    }\r\n\r\n                    // when clicking a new DiaryType, all event formats are unselected\r\n                    if ($(this).hasClass(\"btn-primary\")) {\r\n                        $(\"#eventFormatButtons .search-icon-btn\").removeClass(\"btn-primary\").removeClass(\"btn-mcd-orange\").addClass(\"btn-secondary\");\r\n                        $(\"#DiaryFormat\").val('');\r\n                    }\r\n\r\n                    searchDefaults.PageNo = 1;\r\n                    searchDefaults.FinishedAutoScroll = false;\r\n                    $(\"#resultsPanel .show-more\").hide();\r\n                    $(\"#results\").html(\"\");\r\n\r\n                    url_type = parseInt($(\"#DiaryType\").val());\r\n                    url_type = (url_type == null || isNaN(url_type)) ? 0 : url_type;\r\n\r\n                    url_format = parseInt($(\"#DiaryFormat\").val());\r\n                    url_format = (url_format == null || isNaN(url_format)) ? 0 : url_format;\r\n\r\n                    var url = \"\";\r\n                    if (state != null) {\r\n                        var hostName = window.location.origin;\r\n                        var stateName = state.LongUrl;\r\n                        var regionName = (council != null) ? council.DisplayName.replace(\" \", \"_\") : \"\";\r\n\r\n                        url = (council != null) ? hostName + \"/\" + stateName + \"/\" + regionName : hostName + \"/\" + stateName;\r\n\r\n                        var urlParam_type = eventTypeMap[url_type];\r\n                        var urlParam_format = eventFormatMap[url_format];\r\n                        urlParam_type = (urlParam_type == null) ? \"All\" : urlParam_type;\r\n                        urlParam_format = (urlParam_format == null) ? \"All\" : urlParam_format;\r\n\r\n                        var councilName = (council != null) ? council.DisplayName : state.Name;\r\n                        switch (url_type) {\r\n                            case 1:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = \"What's On \" + councilName + \" | \" + councilName + \" Community Diary | Events in \" + councilName;\r\n                                metaTagDescription = \"Looking for something to do in \" + councilName + \"?  The \" + councilName + \" Community Diary provides up-to-date information for community organisations who provide Community Diary events in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Community Diary - Classes | Exhibitions | Festivals | Markets | Concerts | Sporting | Business | Community | Food events in | What's on | Events in \" + councilName;\r\n                                sidebarDiaryType = \"Community Diary\";\r\n                                break;\r\n                            case 2:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = councilName + \" Training Diary | Find What's On and what to Do.\";\r\n                                metaTagDescription = \"Looking for training in \" + councilName + \"?  The \" + councilName + \" Training provides up-to-date information for community organisations who provide Training events in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Training Diary - Classes and Business events in \" + councilName;\r\n                                sidebarDiaryType = \"Training Diary\";\r\n                                break;\r\n                            case 3:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = councilName + \" Inter-Agency Diary | Find What's On and what to Do.\";\r\n                                metaTagDescription = \"Looking for Inter-Agencies or Networks in \" + councilName + \"?  The \" + councilName + \" Inter-Agency provides up-to-date information for community organisations who run interagency or network events in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Inter-Agency Diary - Business events in \" + councilName;\r\n                                sidebarDiaryType = \"Inter-Agency Diary\";\r\n                                break;\r\n                            case 4:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = councilName + \" Clubs & Groups Diary | Find What's On and what to Do.\";\r\n                                metaTagDescription = \"Looking to get involved with a club or group in \" + councilName + \"?  The \" + councilName + \" Clubs&Groups provides up-to-date information for club and group events in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Clubs & Groups Diary - Classes | Exhibitions | Festivals | Sporting | Community | Food events in \" + councilName;\r\n                                sidebarDiaryType = \"Clubs & Groups Diary\";\r\n                                break;\r\n                            case 5:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = councilName + \" Outreach & Visiting Service Diary | Find What's On and what to Do.\";\r\n                                metaTagDescription = \"Looking for outreach and visiting services in \" + councilName + \"?  The \" + councilName + \" Outreach Service (Services) is the one place to find health and welfare services and appointments in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Outreach & Visiting Services Diary - Food Vans and Kitchens Services | VAKS, Health, Transport Routes, Covid Clinics & Vaccination | Vax events in \" + councilName;\r\n                                sidebarDiaryType = \"Outreach & Services Diary\";\r\n                                break;\r\n                            case 7:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = councilName + \" Queensland Mental Health Week | Find What's On and what to Do.\";\r\n                                metaTagDescription = \"Looking for something to do in \" + councilName + \"?  The \" + councilName + \" Queensland Mental Health Week provides up-to-date information for community organisations who provide events in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Queensland Mental Health Week - Classes | Exhibitions | Festivals | Markets | Concerts | Sporting | Business | Community | Food events in \" + councilName;\r\n                                sidebarDiaryType = \"Queensland Mental Health Week\";\r\n                                break;\r\n                            default:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagTitle = councilName + \" Community Diary | Find What's On and what to Do.\";\r\n                                metaTagDescription = \"Looking for something to do in \" + councilName + \"?  The \" + councilName + \" Community Diary provides up-to-date information for community organisations who provide events in the \" + councilName + \" area.\";\r\n                                metaTagKeywords = \"Community Diary - Classes | Exhibitions | Festivals | Markets | Concerts | Sporting | Business | Community | Food events in \" + councilName;\r\n                                sidebarDiaryType = \"Community Diary\";\r\n                        }\r\n\r\n                        // change tile, meta description and meta keywords\r\n                        metaTitle = '<title>' + metaTagTitle + '</title>';\r\n                        metaDescription = '<meta name=\"description\" content=\"' + metaTagDescription + '\">';\r\n                        metaKeywords = '<meta name=\"keywords\" content=\"' + metaTagKeywords + '\">';\r\n\r\n                        $('title').remove();\r\n                        $('head').append(metaTitle);\r\n                        $('meta[name=description]').remove();\r\n                        $('head').append(metaDescription);\r\n                        $('meta[name=keywords]').remove();\r\n                        $('head').append(metaKeywords);\r\n                        $('#sidebardiarytype').text(sidebarDiaryType);\r\n\r\n                    } else {\r\n                        var hostName = window.location.origin;\r\n                        url = hostName + \"/Search/Results\";\r\n                        var urlParam_type = eventTypeMap[url_type];\r\n                        var urlParam_format = eventFormatMap[url_format];\r\n                        urlParam_type = (urlParam_type == null) ? \"All\" : urlParam_type;\r\n                        urlParam_format = (urlParam_format == null) ? \"All\" : urlParam_format;\r\n                        url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                    }\r\n\r\n                    // change url\r\n                    window.history.replaceState(null, null, url);\r\n\r\n                    useDefaultSearchPeriod = true; // WhenIndex:All\r\n                    getResults();\r\n                    OnClickGetGeographyResults();\r\n\r\n                    // hide event formats\r\n                    hideEventFormats(url_type);\r\n\r\n                });\r\n\r\n                $(\"#eventTypeButtons\").on(\"change\", \".search-icon-btn\", function () {\r\n                    $(this).toggleClass(\"btn-primary btn-mcd-orange\");\r\n                });\r\n\r\n                $(\"#eventFormatButtons\").on(\"click\", \".search-icon-btn\", function () {\r\n\r\n                    // Important!\r\n                    ignoreEventIds = [];\r\n                    ignoreEventKeys = [];\r\n\r\n                    $(this).toggleClass(\"btn-mcd-orange\");\r\n\r\n                    if (!$(this).hasClass(\"btn-mcd-orange\")) {\r\n                        $(\"#eventFormatButtons .search-icon-btn\").removeClass(\"btn-primary\").removeClass(\"btn-mcd-orange\").addClass(\"btn-secondary\");\r\n                        $(\"#DiaryFormat\").val('');\r\n                    }\r\n                    else {\r\n                        $(\"#eventFormatButtons .search-icon-btn\").removeClass(\"btn-primary\").removeClass(\"btn-mcd-orange\").addClass(\"btn-secondary\");\r\n                        $(this).removeClass(\"btn-secondary\").addClass(\"btn-primary\").addClass(\"btn-mcd-orange\");\r\n                        $(\"#DiaryFormat\").val($(this).data(\"format\"));\r\n\r\n                    }\r\n                    searchDefaults.PageNo = 1;\r\n                    searchDefaults.FinishedAutoScroll = false;\r\n                    $(\"#resultsPanel .show-more\").hide();\r\n                    $(\"#results\").html(\"\");\r\n\r\n                    url_type = parseInt($(\"#DiaryType\").val());\r\n                    url_type = (url_type == null) ? 0 : url_type;\r\n\r\n                    url_format = parseInt($(\"#DiaryFormat\").val());\r\n                    url_format = (url_format == null || isNaN(url_format)) ? 0 : url_format;\r\n\r\n                    var url = \"\";\r\n\r\n                    if (state != null) {\r\n                        var hostName = window.location.origin;\r\n                        var stateName = state.Name.replace(/\\ /g, '_');\r\n                        var regionName = (council != null) ? council.DisplayName.replace(/\\ /g, '_') : \"\";\r\n                        url = (council != null) ? hostName + \"/\" + stateName + \"/\" + regionName : hostName + \"/\" + stateName;\r\n\r\n                        var urlParam_type = eventTypeMap[url_type];\r\n                        var urlParam_format = eventFormatMap[url_format];\r\n                        urlParam_type = (urlParam_type == null) ? \"All\" : urlParam_type;\r\n                        urlParam_format = (urlParam_format == null) ? \"All\" : urlParam_format;\r\n\r\n                        var councilName = (council != null) ? council.DisplayName : state.Name;\r\n                        var metaKeywords;\r\n                        var metaTagKeywords = \"Community Diary - Exhibitions | Festivals | Markets | Concerts | Sporting | Business | Community | Food events in \" + councilName;\r\n\r\n                        switch (url_format) {\r\n                            case 0:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Exhibitions | Festivals | Markets | Concerts | Sporting | Business | Community | Food events in \" + councilName;\r\n                                        break;\r\n                                    case 2:\r\n                                        metaTagKeywords = \"Training Diary - Classes and Business events in \" + councilName;\r\n                                        break;\r\n                                    case 3:\r\n                                        metaTagKeywords = \"Inter-Agency Diary - Business events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Classes | Exhibitions | Festivals | Sporting | Community | Food events in \" + councilName;\r\n                                        break;\r\n                                    case 5:\r\n                                        metaTagKeywords = \"Outreach and Visiting Services Diary - Food Vans and Kitchens Services | VAKS, Health, Transport Routes, Covid Clinics & Vaccination | Vax events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 1:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 2:\r\n                                        metaTagKeywords = \"Training Diary - Classes events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Classes events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 2:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Exhibition events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Exhibition events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 3:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Festival events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Festival events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 4:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Market events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 5:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Concert events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 6:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Sport events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Sport events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 7:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Business events in \" + councilName;\r\n                                        break;\r\n                                    case 2:\r\n                                        metaTagKeywords = \"Training Diary - Business events in \" + councilName;\r\n                                        break;\r\n                                    case 3:\r\n                                        metaTagKeywords = \"Inter-Agency Diary - Business events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 8:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Community events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Community events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 9:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                switch (url_type) {\r\n                                    case 1:\r\n                                        metaTagKeywords = \"Community Diary - Food events in \" + councilName;\r\n                                        break;\r\n                                    case 4:\r\n                                        metaTagKeywords = \"Clubs and Groups Diary - Food events in \" + councilName;\r\n                                        break;\r\n                                }\r\n                                break;\r\n                            case 10:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagKeywords = \"Outreach and Visiting Service Diary - Vaks events in \" + councilName;\r\n                                break;\r\n                            case 11:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagKeywords = \"Outreach and Visiting Service Diary - Health events in \" + councilName;\r\n                                break;\r\n                            case 12:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagKeywords = \"Outreach and Visiting Service Diary - Transport Hub events in \" + councilName;\r\n                                break;\r\n                            case 13:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagKeywords = \"Outreach and Visiting Service Diary - COVID Vaccination Clinic events in \" + councilName;\r\n                                break;\r\n                            case 14:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagKeywords = \"Outreach and Visiting Service Diary - COVID Testing Clinic events in \" + councilName;\r\n                                break;\r\n                            default:\r\n                                url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                                metaTagKeywords = \"Community Diary - Exhibitions | Festivals | Markets | Concerts | Sporting | Business | Community | Food events in \" + councilName;\r\n                        }\r\n\r\n                        metaKeywords = '<meta name=\"keywords\" content=\"' + metaTagKeywords + '\">';\r\n                        $('meta[name=keywords]').remove();\r\n                        $('head').append(metaKeywords);\r\n\r\n                    }\r\n                    else {\r\n                        var hostName = window.location.origin;\r\n                        url = hostName + \"/Search/Results\";\r\n                        var urlParam_type = eventTypeMap[url_type];\r\n                        var urlParam_format = eventFormatMap[url_format];\r\n                        urlParam_type = (urlParam_type == null) ? \"All\" : urlParam_type;\r\n                        urlParam_format = (urlParam_format == null) ? \"All\" : urlParam_format;\r\n                        url += \"/\" + urlParam_type + \"/\" + urlParam_format;\r\n                    }\r\n                    window.history.replaceState(null, null, url);\r\n\r\n                    getResults();\r\n                    OnClickGetGeographyResults();\r\n\r\n                    if ($(\"#calendar\").is(':visible')) {\r\n                        $('#calendar').fullCalendar('removeEvents');\r\n                        $('#calendar').fullCalendar('refetchEvents');\r\n                    }\r\n                });\r\n            }\r\n            //\r\n\r\n            var windowWidth = $(window).width();\r\n            if (windowWidth < 400) {\r\n                $('.coming-week').text('Week');\r\n            }\r\n\r\n            //$(window).scroll(function () {\r\n            //    if (!searchDefaults.FinishedAutoScroll && !searchDefaults.ScrollLoading) {\r\n            //        if ($(window).scrollTop() >= $(document).height() - $(window).height() - searchDefaults.BottomMarginTrigger) {\r\n            //            getResults();\r\n            //        }\r\n            //    }\r\n            //});\r\n\r\n            $(\".show-advanced\").on(\"click\", function (e) {\r\n                if ($(this).hasClass(\"active\")) {\r\n                    hideAdvancedFilter();\r\n                }\r\n                else {\r\n                    showAdvancedFilter();\r\n                }\r\n            });\r\n\r\n            $(\".hide-advanced\").on(\"click\", function (e) {\r\n                hideAdvancedFilter();\r\n            });\r\n\r\n            $(\".btn-search\").on(\"click\", function (e) {\r\n                e.preventDefault();\r\n\r\n                // Important!\r\n                ignoreEventIds = [];\r\n                ignoreEventKeys = [];\r\n\r\n                if (searchDefaults.CalendarDisplay) {\r\n                    $(\"#calendar\").fullCalendar(\"refetchEvents\");\r\n                }\r\n                else {\r\n                    searchDefaults.PageNo = 1;\r\n                    searchDefaults.FinishedAutoScroll = false;\r\n                    $(\"#resultsPanel .show-more\").hide();\r\n                    $(\"#results\").html(\"\");\r\n                    getResults();\r\n                }\r\n            });\r\n\r\n            $(\"#resultsPanel .show-more\").on(\"click\", function (e) {\r\n                e.preventDefault();\r\n                getResults();\r\n            });\r\n            $(\"#resultsUCLPanel .show-more\").on(\"click\", OnClickGetGeographyResults);\r\n\r\n            $(\"#viewCalendar\").on(\"click\", function (l) {\r\n                l.preventDefault();\r\n                useDefaultSearchPeriod = false;\r\n                $(\"#topEventsHeader\").empty();\r\n                $(\"#topEventsHeader\").append(\"<h1 class='h3'>What's on \" + councilDisplayName + \" - Upcoming \" + \" Events in \" + councilDisplayName + \"</h1>\")\r\n\r\n                hideLoading();\r\n                $(\".grid-only\").hide();\r\n                $(\"#resultsPanel .show-more\").hide();\r\n                $(\"#results\").hide();\r\n\r\n                $(\"#resultsUCL\").hide();\r\n                $(\"#resultsPanelUCL\").hide();\r\n                $(\"#topEventsHeaderUCL\").hide();\r\n\r\n                $(\"#calendar\").show();\r\n                $(this).addClass(\"active\");\r\n                $(\"#viewList\").removeClass(\"active\");\r\n                $(\"#calendar\").fullCalendar({\r\n                    header: {\r\n                        left: \"prev,next today\",\r\n                        center: \"title\",\r\n                        right: \"month,agendaWeek,agendaDay\"\r\n                    },\r\n                    height: \"auto\",\r\n                    startParam: \"SearchFrom\",\r\n                    endParam: \"SearchTo\",\r\n                    nowIndicator: true,\r\n                    fixedWeekCount: false,\r\n                    events: {\r\n                        url: window.AppSettings.ApiUrl + \"/api/v1/search/diary/GetInstanceResults\",\r\n                        data: function () {\r\n                            searchDefaults.CalendarDisplay = true;\r\n                            return buildSearch(false);\r\n                        }\r\n                    },\r\n                    eventDataTransform: function (event) {\r\n                        var eventDisplayColour = \"#DCDCDC\";\r\n                        switch (event.DiaryTypeID) {\r\n                            case 1:\r\n                                eventDisplayColour = \"#4169E1\";\r\n                                break;\r\n                            case 2:\r\n                                eventDisplayColour = \"#D2691E\";\r\n                                break;\r\n                            case 3:\r\n                                eventDisplayColour = \"#2E8B57\";\r\n                                break;\r\n                            case 4:\r\n                                eventDisplayColour = \"#BA55D3\";\r\n                                break;\r\n                        }\r\n                        return {\r\n                            id: event.ID,\r\n                            title: event.EventName,\r\n                            start: event.StartsAt,\r\n                            end: event.EndsAt,\r\n                            url: event.InstanceUrl,\r\n                            allDay: \"All Day\" === event.StartTime,\r\n                            diaryElement: event,\r\n                            color: eventDisplayColour\r\n                        };\r\n                    },\r\n                    eventRender: function (event, element) {\r\n                        var template = $(\"#resultTemplate\").render(event.diaryElement, { DiaryUrl: window.AppSettings.DiaryUrl }).replace(\"col-xs-12 col-sm-6 col-md-4 col-lg-3\", \"result-card-tip\");\r\n                        var $template = $(\"<div/>\").html(template);\r\n                        $(\".nofollow\", $template).removeAttr(\"rel\");\r\n                        template = $template.html();\r\n                        element.qtip({\r\n                            content: template,\r\n                            position: {\r\n                                target: \"mouse\",\r\n                                adjust: { x: -5, y: -5 },\r\n                                my: \"bottom right\",\r\n                                at: \"top left\"\r\n                            },\r\n                            style: \"qtip-light qtip-rounded\",\r\n                            events: {\r\n                                show: function (event, api) {\r\n                                    var t = $(\".card-description\", $(this));\r\n                                    t.html(truncateString(t.html(), 160));\r\n                                }\r\n                            }\r\n                        });\r\n                    },\r\n                    loading: function (isLoading, view) {\r\n                        if (isLoading) {\r\n                            $(\"#spinner\").show();\r\n                        }\r\n                        else {\r\n                            $(\"#spinner\").hide();\r\n                        }\r\n                    }\r\n                });\r\n            });\r\n\r\n            $(\"#viewList\").on(\"click\", function (e) {\r\n                e.preventDefault();\r\n                $(this).addClass(\"active\");\r\n                $(\"#viewCalendar\").removeClass(\"active\");\r\n                $(\"#calendar\").hide();\r\n\r\n                // Important!\r\n                ignoreEventIds = [];\r\n                ignoreEventKeys = [];\r\n\r\n                searchDefaults.PageNo = 1;\r\n                searchDefaults.FinishedAutoScroll = false;\r\n                $(\".grid-only\").show();\r\n                $(\"#resultsPanel .show-more\").hide();\r\n                $(\"#results\").html(\"\");\r\n                $(\"#results\").show();\r\n\r\n                $(\"#resultsUCL\").show();\r\n                $(\"#resultsPanelUCL\").show();\r\n                $(\"#topEventsHeaderUCL\").show();\r\n\r\n                getResults();\r\n                OnClickGetGeographyResults();\r\n            });\r\n\r\n            if ($(\"#WhenIndex\").val() !== \"Custom\") {\r\n                $(\".custom-date\").hide();\r\n            }\r\n            $(\"#WhenIndex\").on(\"change\", function () {\r\n                if ($(this).val() === 'Custom') {  // Custom\r\n                    $(\".custom-date\").show();\r\n                }\r\n                else {\r\n                    $(\".custom-date\").hide();\r\n                }\r\n            });\r\n\r\n            $(\"#DiaryType\").on(\"change\", function () {\r\n                var filteredDiaryFormats = {};\r\n                var DiaryTypeSelected = $('#DiaryType').val();\r\n                switch (DiaryTypeSelected) {\r\n                    case \"1\":\r\n                        // community diary\r\n                        var selectedArray = [1, 2, 3, 4, 5, 6, 7, 8, 9]\r\n                        break;\r\n                    case \"2\":\r\n                        // training\r\n                        var selectedArray = [1, 7]\r\n                        break;\r\n                    case \"3\":\r\n                        // inter-agency\r\n                        var selectedArray = [7]\r\n                        break;\r\n                    case \"4\":\r\n                        // clubs & groups\r\n                        var selectedArray = [1, 2, 3, 6, 8, 9]\r\n                        break;\r\n                    case \"5\":\r\n                        // outreach & services\r\n                        var selectedArray = [10, 11, 12, 13, 14]\r\n                        break;\r\n                    default:\r\n                        // other diary type\r\n                        var selectedArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]\r\n                        break;\r\n                }\r\n\r\n                filteredDiaryFormats = filterDiaryFormats(selectedArray, DiaryFormatsDisplayName);\r\n                var $select = $('#DiaryFormat');\r\n                $select.find(\"option\").remove();\r\n                $.each(filteredDiaryFormats, function (key, value) {\r\n                    $select.append(\"<option value=\\\"\" + key + \"\\\">\" + value + \"</option>\");\r\n                });\r\n            });\r\n\r\n            // If the user clears the where field, clear the location id \r\n            $(\"#SearchCriteria_WhereText\").on(\"change\", function () {\r\n                if (!$(this).val()) {\r\n                    $(\"#SearchCriteria_LocationID\").val('');\r\n                }\r\n            });\r\n\r\n            //btn preselected\r\n            var evnt = $(\"#DiaryType\").val() ? $(\"#DiaryType\").val():0;\r\n            var format = $(\"#DiaryFormat\").val() ? $(\"#DiaryFormat\").val():0;\r\n            var url_type = $(\"#DiaryType\").val() ? $(\"#DiaryType\").val() : 0;\r\n            var url_format = $(\"#DiaryFormat\").val() ? $(\"#DiaryFormat\").val() : 0;\r\n\r\n            $(\"[data-type='\" + evnt + \"']\").addClass(\"btn-primary\").addClass(\"btn-mcd-orange\");\r\n            $(\"[data-format='\" + format + \"']\").addClass(\"btn-primary\").addClass(\"btn-mcd-orange\");\r\n\r\n            //if (!search.StateCode) {\r\n            //    window.history.replaceState(null, null, \"/Search/Results/\" + eventTypeMap[evnt] + \"/\" + eventFormatMap[format]);\r\n            //}\r\n         \r\n            $(\"#Clear\").on(\"click\", function () {\r\n                $(\"#eventTypeButtons .search-icon-btn\").removeClass(\"btn-primary\").addClass(\"btn-secondary\");\r\n                $(\"#eventFormatButtons .search-icon-btn\").removeClass(\"btn-primary\").addClass(\"btn-secondary\");\r\n                $(\"#DiaryType\").val('');\r\n                $(\"#DiaryFormat\").val('');\r\n                $(\"#DiaryAudience\").val('');\r\n                $(\"#KeyWords\").val('');\r\n                $(\"#WhenIndex\").val('All');\r\n                searchDefaults.PageNo = 1;\r\n                searchDefaults.FinishedAutoScroll = false;\r\n                $(\"#resultsPanel .show-more\").hide();\r\n                $(\"#results\").html(\"\");\r\n                getResults();\r\n            });\r\n\r\n            $(\"#btnFindCouncil\").on(\"click\", function () {\r\n                var whatText = $(\"#SearchCriteria_WhatText\").val();\r\n                var whereText = $(\"#SearchCriteria_WhereText\").val().replace(/\\s+/g, \"_\"); // Replace all spaces with underscores\r\n\r\n                var path = window.location.origin + window.location.pathname;\r\n                var params = [];\r\n\r\n                // Check if 'whatText' is not empty and add to parameters\r\n                if (whatText.trim() !== \"\") {\r\n                    params.push(\"what=\" + encodeURIComponent(whatText));\r\n                }\r\n\r\n                // Check if 'whereText' is not empty and add to parameters\r\n                if (whereText.trim() !== \"\") {\r\n                    params.push(\"where=\" + encodeURIComponent(whereText));\r\n                }\r\n\r\n                // Join parameters with '&' and append to the base URL\r\n                if (params.length > 0) {\r\n                    path += \"?\" + params.join(\"&\");\r\n                }\r\n\r\n                window.location.href = path;\r\n            });\r\n        }\r\n    };\r\n}();\r\n"]}