{"version":3,"sources":["modules/PageSetup.js"],"names":["PageSetup","textSize","showSpinner","item","$","addClass","removeSpinner","removeClass","setCookie","cname","cvalue","exdays","d","Date","setTime","getTime","expires","toUTCString","document","cookie","getCookie","name","ca","split","i","length","c","charAt","substring","indexOf","findCouncilLocation","position","address","val","path","coords","latitude","longitude","ajax","url","type","success","response","window","location","href","origin","findCouncilandLocation","geocoder","google","maps","Geocoder","latlng","lat","parseFloat","lng","geocode","results","status","alert","handleNoGeolocation","errorMsg","off","on","slideUp","show","html","hide","slideDown","InitTooltips","each","this","tooltip","trigger","e","preventDefault","InitSearchButton","locationId","locationName","getElementById","McdMaps","setDefaultLocation","getResults","_a","organisationId","outletId","osrId","categoryGroupId","categoryId","rad","txt","where","councilId","state","shiftCategoryId","id","criteria","queryString","search","isFromTile","URLSearchParams","get","encodeURIComponent","userSearchModel","userSearch","console","error","contentType","dataType","data","JSON","stringify","result","responseText","saveUserSearch","Common","RequestLocation","ready","keypress","keyCode","click","tempUrl","InitNavigation","toggleClass","activeElement","blur","is","hasClass","appendTo","touchMoved","closePullouts","target","parents","InitSliders","not","slick","slidesToShow","attr","slide","InitPullout","next","shown","InitTextSizeChange","ChangeTextSize","ResetTextSize","text","incrementCount","parseInt","localStorage","getItem","setItem","SaveTextSize","size","toString","increment","css","font-size","ObfuscateEmails","emailStart","emailAt","setText","Boolean","InitMap","mapContainer","firstChild","event","MapView","LatLng","MY_MAPTYPE_ID","mapOptions","zoom","center","mapTypeControlOptions","mapTypeIds","MapTypeId","ROADMAP","Map","customMapType","StyledMapType","GetStandardMapStyle","mapTypes","set","ShowCategoriesMap","InitAutoComplete","q","categories","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","replace","query","beforeSend","settings","SearchTerm","shiftCategories","limit","tags","ev","orgs","CouncilRegionId","State","councils","complete","trim","initialize","typeahead","hint","minLength","highlight","displayKey","source","ttAdapter","templates","header","suggestion","Name","TagName","DisplayText","currentBatchExecutions","datum","CategoryGroupID","CategoryID","IsOrganisation","IsLocation","ID","ShiftCategoryID","DisplayName","Url","which","clickTarget","InitCouncilSearch","modal","focus","hideSelector","prop","navigator","geolocation","getCurrentPosition","posError","message","InitOneClick","closest","$form","Init","previouslyFocused","placeholder","field","find","filter","inputs","firstInput","first","lastInput","last","shiftKey","backdrop","keyboard","SetupTooltipsStyling","InitEventRegisterValidation","validator","setDefaults","errorClass","validClass","element","findByName","remove","append","unhighlight","addMethod","value","methods","call","re","RegExp","optional","match","trimmedValue","parseExact","regexp","test","mobileRe","trimValue","startsWith","newValue","substr","InitValidation","IsValidPassword","password","isValid","GeolocateCouncil","locationTypeahead","fieldName","locations","parent","LocalityID","SendMail","to","subject","body","email","To","Subject","Body","InitSearchResultsBehavior","InitSponsors","affiliateId","hideSponsors","isCommunityInfo","councilLogo","councilUrl","councilRegionId","getJSON","platformSponsor","dataSponsor","SponsorType","push","ImageBaseUrl","template","render","$template","removeAttr","autoplay","variableWidth","infinite","centreMode","hoverVal","baseVal","template2","$template2","SetCookie","GetCookie"],"mappings":"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","file":"PageSetup.min.js","sourcesContent":["var PageSetup;\r\n(function (PageSetup) {\r\n    var textSize = 0;\r\n    function showSpinner(item) {\r\n        $(item).addClass(\"spinner\");\r\n    }\r\n    function removeSpinner(item) {\r\n        $(item).removeClass(\"spinner\");\r\n    }\r\n    function setCookie(cname, cvalue, exdays) {\r\n        var d = new Date();\r\n        d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n        var expires = \"expires=\" + d.toUTCString();\r\n        document.cookie = cname + \"=\" + cvalue + \"; \" + expires + \"; secure=true\";\r\n    }\r\n    function getCookie(cname) {\r\n        var name = cname + \"=\";\r\n        var ca = document.cookie.split(';');\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0) == ' ')\r\n                c = c.substring(1);\r\n            if (c.indexOf(name) === 0)\r\n                return c.substring(name.length, c.length);\r\n        }\r\n        return \"\";\r\n    }\r\n    function findCouncilLocation(position) {\r\n        var address = $(\"#autocomplete-location-new\").val();\r\n        var path = \"/Display/SearchRegion?lat=\" + position.coords.latitude + \"&lng=\" + position.coords.longitude + \"&address=\" + address;\r\n        $.ajax({\r\n            url: path,\r\n            type: \"POST\",\r\n            success: function (response) {\r\n                window.location.href = window.location.origin + '/' + response;\r\n            }\r\n        });\r\n    }\r\n    ;\r\n    function findCouncilandLocation(position) {\r\n        var geocoder = new google.maps.Geocoder();\r\n        var latlng = {\r\n            lat: parseFloat(position.coords.latitude),\r\n            lng: parseFloat(position.coords.longitude),\r\n        };\r\n        geocoder.geocode({ location: latlng }, function (results, status) {\r\n            if (status === \"OK\") {\r\n                if (results[0]) {\r\n                    //$(\"#autocomplete-location-new\").val(results[0].formatted_address);\r\n                }\r\n                else {\r\n                    window.alert(\"No results found\");\r\n                }\r\n            }\r\n            else {\r\n                window.alert(\"Geocoder failed due to: \" + status);\r\n            }\r\n        });\r\n    }\r\n    function handleNoGeolocation(errorMsg) {\r\n        $(\"#foundCouncilClose\").off(\"click\");\r\n        $(\"#foundCouncilClose\").on(\"click\", function () {\r\n            $(\"#foundCouncil\").slideUp('slow');\r\n        });\r\n        $(\"#foundCouncil .location-error\").show();\r\n        $(\"#foundCouncil .location-error .message-text\").html(errorMsg);\r\n        $(\"#foundCouncil .location-success\").hide();\r\n        $(\"#foundCouncil\").slideDown('slow');\r\n    }\r\n    function isValidPassword(password) {\r\n        var isValid = true;\r\n        // password bigger than 6\r\n        if (password.length > 6) {\r\n            $(\"li.six-plus\").addClass(\"complete\");\r\n        }\r\n        else {\r\n            $(\"li.six-plus\").removeClass(\"complete\");\r\n            isValid = false;\r\n        }\r\n        if (password.match(/[a-z]/)) {\r\n            $(\"li.lcase\").addClass(\"complete\");\r\n        }\r\n        else {\r\n            $(\"li.lcase\").removeClass(\"complete\");\r\n            isValid = false;\r\n        }\r\n        if (password.match(/[A-Z]/)) {\r\n            $(\"li.ucase\").addClass(\"complete\");\r\n        }\r\n        else {\r\n            $(\"li.ucase\").removeClass(\"complete\");\r\n            isValid = false;\r\n        }\r\n        //if password has at least one number give 1 point\r\n        if (password.match(/\\d+/)) {\r\n            $(\"li.numbers\").addClass(\"complete\");\r\n        }\r\n        else {\r\n            $(\"li.numbers\").removeClass(\"complete\");\r\n            isValid = false;\r\n        }\r\n        if (password.indexOf(' ') == -1) {\r\n            $(\"li.nospaces\").addClass(\"complete\");\r\n        }\r\n        else {\r\n            $(\"li.nospaces\").removeClass(\"complete\");\r\n            isValid = false;\r\n        }\r\n        //if password has at least one special character give 1 point\r\n        if (password.match(/.[!,@,#,$,%,^,&,*,=,?,_,~,-,.,(,)]/)) {\r\n            $(\"li.punctuation\").addClass(\"complete\");\r\n        }\r\n        else {\r\n            $(\"li.punctuation\").removeClass(\"complete\");\r\n            isValid = false;\r\n        }\r\n        return isValid;\r\n    }\r\n    // platform sponsors\r\n    function loadPlatformSponsors(affiliateId, councilRegionId, isCommunityInfo, councilLogo, councilUrl) {\r\n        $.getJSON(\"/api/Sponsors/\" + affiliateId + \"/\" + councilRegionId, function (data) {\r\n            if (data.length !== 0 || councilUrl !== \"\") {\r\n                var platformSponsor = [];\r\n                var dataSponsor = [];\r\n                for (var i = 0; i < data.length; i++) {\r\n                    if (data[i].SponsorType === 0) {\r\n                        platformSponsor.push(data[i]);\r\n                    }\r\n                    else {\r\n                        dataSponsor.push(data[i]);\r\n                    }\r\n                }\r\n                if (isCommunityInfo) {\r\n                    if (councilUrl !== \"\") {\r\n                        platformSponsor.push({\r\n                            ImageBaseUrl: councilLogo,\r\n                            Url: councilUrl\r\n                        });\r\n                    }\r\n                }\r\n                // Platform Sponsor //\r\n                if (platformSponsor.length > 0) {\r\n                    $(\"#sponsorsDiv\").toggleClass('hidden');\r\n                    $(\"#lstPlatformSponsors\").parent().show();\r\n                    var template = $(\"#platformSponsorsTemplate\").render(platformSponsor);\r\n                    var $template = $(\"<div/>\").html(template);\r\n                    $(\".nofollow\", $template).removeAttr(\"rel\");\r\n                    template = $template.html();\r\n                    $(\"#lstPlatformSponsors\").html(template);\r\n                    $(\"#lstPlatformSponsors\").not('.slick-initialized').slick({\r\n                        slidesToShow: 2,\r\n                        slide: $(\"#lstPlatformSponsors\").attr(\"data-slick-slideElement\"),\r\n                        autoplay: true,\r\n                        variableWidth: true,\r\n                        infinite: true,\r\n                        centreMode: true\r\n                    });\r\n                    $(\"#sponsorsDiv img\").on(\"mouseover\", function () {\r\n                        var hoverVal = '';\r\n                        if ($(this).data(\"image-hover\") === \"\") {\r\n                            hoverVal = $(this).data(\"image-base\");\r\n                        }\r\n                        else {\r\n                            hoverVal = $(this).data(\"image-hover\");\r\n                        }\r\n                        $(this).attr(\"src\", hoverVal);\r\n                    });\r\n                    $(\"#sponsorsDiv img\").on(\"mouseout\", function () {\r\n                        var baseVal = $(this).data(\"image-base\");\r\n                        $(this).attr(\"src\", baseVal);\r\n                    });\r\n                }\r\n                // Data Sponsor //\r\n                if (dataSponsor.length > 0) {\r\n                    $(\"#dataSponsorsDiv\").toggleClass('hidden');\r\n                    $(\"#lstDataSponsors\").parent().show();\r\n                    var template2 = $(\"#dataSponsorsTemplate\").render(dataSponsor);\r\n                    var $template2 = $(\"<div/>\").html(template2);\r\n                    $(\".nofollow\", $template2).removeAttr(\"rel\");\r\n                    template2 = $template2.html();\r\n                    $(\"#lstDataSponsors\").html(template2);\r\n                    $(\"#lstDataSponsors\").not('.slick-initialized').slick({\r\n                        slidesToShow: $(\"#lstDataSponsors\").attr(\"data-slick-slidesToShow\"),\r\n                        slide: $(\"#lstDataSponsors\").attr(\"data-slick-slideElement\"),\r\n                        autoplay: true\r\n                    });\r\n                    $(\"#dataSponsorsDiv img\").on(\"mouseover\", function () {\r\n                        var hoverVal = '';\r\n                        if ($(this).data(\"image-hover\") === \"\") {\r\n                            hoverVal = $(this).data(\"image-base\");\r\n                        }\r\n                        else {\r\n                            hoverVal = $(this).data(\"image-hover\");\r\n                        }\r\n                        $(this).attr(\"src\", hoverVal);\r\n                    });\r\n                    $(\"#dataSponsorsDiv img\").on(\"mouseout\", function () {\r\n                        var baseVal = $(this).data(\"image-base\");\r\n                        $(this).attr(\"src\", baseVal);\r\n                    });\r\n                }\r\n            }\r\n        });\r\n    }\r\n    // platform sponsors end\r\n    function Init() {\r\n        // Placeholder support for IE\r\n        $('input').placeholder();\r\n        var previouslyFocused;\r\n        $(\".modal\").on(\"show.bs.modal\", function () {\r\n            previouslyFocused = document.activeElement;\r\n        });\r\n        // Make first input field in a modal get focus\r\n        $(\".modal\").on(\"shown.bs.modal\", function () {\r\n            var field = $(this).find(\"input[type=text],textarea,select\").filter(\":visible:enabled:not([readonly]):first\");\r\n            if (field != null) {\r\n                field.focus();\r\n            }\r\n            $(this).attr(\"aria-hidden\", \"false\");\r\n            // Handle behaviour when user _could_ be tabbing out of modal... confusing for screen reader users\r\n            var inputs = $(\"select, input, textarea, button, a, [tabinput='0']\", this).filter(\":visible:not([disabled]):not([readonly])\");\r\n            var firstInput = inputs.first();\r\n            var lastInput = inputs.last();\r\n            lastInput.on(\"keydown\", function (e) {\r\n                if ((e.which === 9 && !e.shiftKey)) {\r\n                    e.preventDefault();\r\n                    firstInput.focus();\r\n                }\r\n            });\r\n            firstInput.on(\"keydown\", function (e) {\r\n                if ((e.which === 9 && e.shiftKey)) {\r\n                    e.preventDefault();\r\n                    lastInput.focus();\r\n                }\r\n            });\r\n        });\r\n        $(\".modal\").on(\"hidden.bs.modal\", function () {\r\n            $(this).attr(\"aria-hidden\", \"true\");\r\n            if (previouslyFocused) {\r\n                $(previouslyFocused).focus();\r\n            }\r\n        });\r\n        $(\"#popupModal\").modal({ backdrop: 'static', keyboard: false, show: true });\r\n        // Initialise apsects of the page\r\n        InitTooltips();\r\n        InitSearchButton();\r\n        InitNavigation();\r\n        InitSliders();\r\n        InitPullout();\r\n        InitTextSizeChange();\r\n        ObfuscateEmails();\r\n        InitMap();\r\n        InitAutoComplete();\r\n        InitCouncilSearch();\r\n        InitOneClick();\r\n        // Tooltips for all elements with a non-empty title attribute\r\n        Common.SetupTooltipsStyling();\r\n    }\r\n    PageSetup.Init = Init;\r\n    function InitEventRegisterValidation() {\r\n        $.validator.setDefaults({\r\n            errorClass: \"has-error\",\r\n            validClass: \"has-success\",\r\n            highlight: function (element, errorClass, validClass) {\r\n                if (element.type === \"radio\") {\r\n                    this.findByName(element.name).addClass(errorClass).removeClass(validClass);\r\n                }\r\n                else {\r\n                    $(element).closest('.form-row').removeClass(validClass).addClass(errorClass);\r\n                    $(element).closest('.form-row').find('i.glyphicon.form-control-feedback').remove();\r\n                    $(element).closest('.form-row').append('<i class=\"glyphicon glyphicon-remove form-control-feedback\"></i>');\r\n                }\r\n            },\r\n            unhighlight: function (element, errorClass, validClass) {\r\n                if (element.type === \"radio\") {\r\n                    this.findByName(element.name).removeClass(errorClass).addClass(validClass);\r\n                }\r\n                else {\r\n                    $(element).closest('.form-row').removeClass(errorClass).addClass(validClass);\r\n                    $(element).closest('.form-row').find('i.glyphicon.form-control-feedback').remove();\r\n                    $(element).closest('.form-row').append('<i class=\"glyphicon glyphicon-ok form-control-feedback\"></i>');\r\n                }\r\n            }\r\n        });\r\n        //$.validator.addMethod(\r\n        //    \"emailAvailable\",\r\n        //    function (value, element) {\r\n        //        var checkUrl = \"/api/Users/IsEmailAvailable\";\r\n        //        return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        //    }, \"Email address already in use\"\r\n        //);\r\n        $.validator.addMethod(\"usernameAvailable\", function (value, element) {\r\n            var checkUrl = \"/api/Users/IsUsernameAvailable\";\r\n            return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        }, \"User name not available\");\r\n        $.validator.addMethod(\"mobileAvailable\", function (value, element) {\r\n            var checkUrl = \"/api/Users/IsMobileAvailable\";\r\n            return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        }, \"That Mobile number is already in use\");\r\n        //$.validator.addMethod(\r\n        //    \"emailAvailable\",\r\n        //    function (value, element) {\r\n        //        var checkUrl = \"/api/Users/IsEmailAvailable\";\r\n        //        return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        //    }, \"Email address already in use\"\r\n        //);\r\n        $.validator.addMethod(\"mcdUsername\", function (value, element) {\r\n            var re = new RegExp(/^[A-Za-z0-9_@\\.\\-]{5,}$/);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please enter a valid username.\");\r\n        $.validator.addMethod(\"ausPhone\", function (value, element) {\r\n            var re = new RegExp(/^04\\d{8}\\s*$|^(04\\d{2}\\s\\d{3}\\s\\d{3})\\s*$|^(\\d{2}\\s*\\d{4}\\s*\\d{4})\\s*$|^(\\(*\\d{2}\\)\\s*\\d{4}\\s*\\d{4})\\s*$|^13(\\s*\\d{2}){2,3}$|^(1300|1800)\\s*\\d{3}\\s*\\d{3}\\s*$/);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please enter a valid Australian phone number.\");\r\n        $.validator.addMethod(\"ausMobile\", function (value, element) {\r\n            var trimmedValue = value.replace(/[^\\d\\+]/gi, '');\r\n            var re = new RegExp(/^\\({0,1}((0|\\+61)(4)){0,1}\\){0,1}(\\ |-){0,1}[0-9]{2}(\\ |-){0,1}[0-9]{2}(\\ |-){0,1}[0-9]{1}(\\ |-){0,1}[0-9]{3}$/);\r\n            return this.optional(element) || trimmedValue.match(re);\r\n        }, \"Please enter a valid Australian mobile number.\");\r\n        $.validator.addMethod(\"ausDate\", function (value) {\r\n            return Date.parseExact(value, \"d/M/yyyy\");\r\n        }, \"Please enter a value date. eg. d/M/yyyy\");\r\n        $.validator.addMethod(\"regex\", function (value, element, regexp) {\r\n            var re = new RegExp(regexp);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please check your input.\");\r\n        $.validator.addMethod(\"simpleUrl\", function (value, element) {\r\n            // Customised version of the url test to make the prefix optional\r\n            return this.optional(element) || /^((https?|ftp):\\/\\/)?(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(value);\r\n        }, \"Please enter a valid URL.\");\r\n        $.validator.addMethod(\"mcdEmail\", function (value, element) {\r\n            var re = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please enter a valid email address.\");\r\n        $(\".ausMobile\").on(\"blur\", function () {\r\n            var mobileRe = new RegExp(/^04\\d{8}$/);\r\n            var trimValue = $(this).val();\r\n            trimValue = trimValue.replace(/[^\\d\\+]/gi, '');\r\n            if (trimValue.startsWith(\"+61\")) {\r\n                trimValue = trimValue.replace(\"+61\", \"0\");\r\n            }\r\n            if (trimValue.match(mobileRe)) {\r\n                var newValue = trimValue.substr(0, 4) + \" \" + trimValue.substr(4, 3) + \" \" + trimValue.substr(7, 3);\r\n                $(this).val(newValue);\r\n            }\r\n        });\r\n    }\r\n    PageSetup.InitEventRegisterValidation = InitEventRegisterValidation;\r\n    function InitValidation() {\r\n        $.validator.setDefaults({\r\n            errorClass: \"has-error\",\r\n            validClass: \"has-success\",\r\n            highlight: function (element, errorClass, validClass) {\r\n                if (element.type === \"radio\") {\r\n                    this.findByName(element.name).addClass(errorClass).removeClass(validClass);\r\n                }\r\n                else {\r\n                    $(element).closest('.form-row').removeClass(validClass).addClass(errorClass);\r\n                    $(element).closest('.form-row').find('i.glyphicon.form-control-feedback').remove();\r\n                    $(element).closest('.form-row').append('<i class=\"glyphicon glyphicon-remove form-control-feedback\"></i>');\r\n                }\r\n            },\r\n            unhighlight: function (element, errorClass, validClass) {\r\n                if (element.type === \"radio\") {\r\n                    this.findByName(element.name).removeClass(errorClass).addClass(validClass);\r\n                }\r\n                else {\r\n                    $(element).closest('.form-row').removeClass(errorClass).addClass(validClass);\r\n                    $(element).closest('.form-row').find('i.glyphicon.form-control-feedback').remove();\r\n                    $(element).closest('.form-row').append('<i class=\"glyphicon glyphicon-ok form-control-feedback\"></i>');\r\n                }\r\n            }\r\n        });\r\n        $.validator.addMethod(\"emailAvailable\", function (value, element) {\r\n            var checkUrl = \"/api/Users/IsEmailAvailable\";\r\n            return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        }, \"Email address already in use\");\r\n        $.validator.addMethod(\"usernameAvailable\", function (value, element) {\r\n            var checkUrl = \"/api/Users/IsUsernameAvailable\";\r\n            return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        }, \"User name not available\");\r\n        $.validator.addMethod(\"mobileAvailable\", function (value, element) {\r\n            var checkUrl = \"/api/Users/IsMobileAvailable\";\r\n            return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        }, \"That Mobile number is already in use\");\r\n        $.validator.addMethod(\"emailAvailable\", function (value, element) {\r\n            var checkUrl = \"/api/Users/IsEmailAvailable\";\r\n            return $.validator.methods[\"remote\"].call(this, value, element, { url: checkUrl });\r\n        }, \"Email address already in use\");\r\n        $.validator.addMethod(\"mcdUsername\", function (value, element) {\r\n            var re = new RegExp(/^[A-Za-z0-9_@\\.\\-]{5,}$/);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please enter a valid username.\");\r\n        $.validator.addMethod(\"ausPhone\", function (value, element) {\r\n            var re = new RegExp(/^04\\d{8}\\s*$|^(04\\d{2}\\s\\d{3}\\s\\d{3})\\s*$|^(\\d{2}\\s*\\d{4}\\s*\\d{4})\\s*$|^(\\(*\\d{2}\\)\\s*\\d{4}\\s*\\d{4})\\s*$|^13(\\s*\\d{2}){2,3}$|^(1300|1800)\\s*\\d{3}\\s*\\d{3}\\s*$/);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please enter a valid Australian phone number.\");\r\n        $.validator.addMethod(\"ausMobile\", function (value, element) {\r\n            var trimmedValue = value.replace(/[^\\d\\+]/gi, '');\r\n            var re = new RegExp(/^\\({0,1}((0|\\+61)(4)){0,1}\\){0,1}(\\ |-){0,1}[0-9]{2}(\\ |-){0,1}[0-9]{2}(\\ |-){0,1}[0-9]{1}(\\ |-){0,1}[0-9]{3}$/);\r\n            return this.optional(element) || trimmedValue.match(re);\r\n        }, \"Please enter a valid Australian mobile number.\");\r\n        $.validator.addMethod(\"ausDate\", function (value) {\r\n            return Date.parseExact(value, \"d/M/yyyy\");\r\n        }, \"Please enter a value date. eg. d/M/yyyy\");\r\n        $.validator.addMethod(\"regex\", function (value, element, regexp) {\r\n            var re = new RegExp(regexp);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please check your input.\");\r\n        $.validator.addMethod(\"simpleUrl\", function (value, element) {\r\n            // Customised version of the url test to make the prefix optional\r\n            return this.optional(element) || /^((https?|ftp):\\/\\/)?(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(value);\r\n        }, \"Please enter a valid URL.\");\r\n        $.validator.addMethod(\"mcdEmail\", function (value, element) {\r\n            var re = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\r\n            return this.optional(element) || value.match(re);\r\n        }, \"Please enter a valid email address.\");\r\n        $(\".ausMobile\").on(\"blur\", function () {\r\n            var mobileRe = new RegExp(/^04\\d{8}$/);\r\n            var trimValue = $(this).val();\r\n            trimValue = trimValue.replace(/[^\\d\\+]/gi, '');\r\n            if (trimValue.startsWith(\"+61\")) {\r\n                trimValue = trimValue.replace(\"+61\", \"0\");\r\n            }\r\n            if (trimValue.match(mobileRe)) {\r\n                var newValue = trimValue.substr(0, 4) + \" \" + trimValue.substr(4, 3) + \" \" + trimValue.substr(7, 3);\r\n                $(this).val(newValue);\r\n            }\r\n        });\r\n    }\r\n    PageSetup.InitValidation = InitValidation;\r\n    function InitTooltips() {\r\n        // Create tooltips\r\n        $('[data-toggle=\"tooltip\"]').each(function () {\r\n            $(this).tooltip({\r\n                trigger: \"hover focus\"\r\n            });\r\n            $(this).on(\"click touchend\", function (e) {\r\n                e.preventDefault();\r\n            });\r\n        });\r\n    }\r\n    PageSetup.InitTooltips = InitTooltips;\r\n    function InitSearchButton(locationId, locationName) {\r\n        if (locationId === void 0) { locationId = 0; }\r\n        if (locationName === void 0) { locationName = \"\"; }\r\n        $(\"#hfLocationId\").val(locationId);\r\n        if (document.getElementById('autocomplete-location-new')) {\r\n            McdMaps.setDefaultLocation(false, true);\r\n            McdMaps.getResults('#autocomplete-location-new');\r\n        }\r\n        $(\"#btn-search\").off('click touchend');\r\n        $(\"#btn-search\").on('click touchend', function (e) {\r\n            var _a;\r\n            e.preventDefault();\r\n            var organisationId = $(\"#hfOrganisationId\").val() || 0;\r\n            var outletId = $(\"#hfOutletId\").val() || 0;\r\n            var osrId = $(\"#hfOSRId\").val() || 0;\r\n            var categoryGroupId = $(\"#hfCategoryGroupId\").val() || 0;\r\n            var categoryId = $(\"#hfCategoryId\").val() || 0;\r\n            var locationId = $(\"#hfLocationId\").val() || 0;\r\n            var rad = $(\".ddl-radius\").val() || 50;\r\n            // For tags, show the selected keyword (if relevant) in the search box, but feed through the\r\n            // actual tag name into the search\r\n            var txt = $(\"#hfTagName\").val() || $('#autocomplete-category').val();\r\n            var where = (_a = $('#autocomplete-location-new').val()) !== null && _a !== void 0 ? _a : \"\";\r\n            var councilId = $(\"#hfCouncilId\").val() || 0;\r\n            var state = $(\"#State_Code\").val() || '';\r\n            var shiftCategoryId = $(\"#hfShiftCategoryId\").val() || 0;\r\n            if ($('#autocomplete-location-new').val() == \"\") {\r\n                state = \"\";\r\n            }\r\n            var url;\r\n            if (organisationId > 0 || outletId > 0 || osrId > 0) {\r\n                var id;\r\n                var criteria;\r\n                if (organisationId > 0) {\r\n                    id = organisationId;\r\n                    criteria = \"isOrganisation\";\r\n                }\r\n                else if (outletId > 0) {\r\n                    id = outletId;\r\n                    criteria = \"isLocation\";\r\n                }\r\n                else {\r\n                    id = osrId;\r\n                    criteria = \"isListing\";\r\n                }\r\n                url = \"/Search/Redirect?id=\" + id +\r\n                    \"&\" + criteria + \"=true\" +\r\n                    (locationId > 0 ? \"&locationId=\" + locationId : \"\") +\r\n                    (councilId > 0 ? \"&councilRegionId=\" + councilId : \"\");\r\n            }\r\n            else {\r\n                var queryString = window.location.search;\r\n                var urlParams = new URLSearchParams(queryString);\r\n                var isFromTile = urlParams.get('isFromTile');\r\n                if (isFromTile)\r\n                    where = where.split(\" \")[0];\r\n                url = \"/Search/Directory?what=\" + encodeURIComponent(txt) +\r\n                    \"&where=\" + encodeURIComponent(where) +\r\n                    \"&service=\" + categoryId +\r\n                    \"&category=\" + categoryGroupId +\r\n                    (locationId > 0 ? \"&location=\" + locationId : \"\") +\r\n                    \"&radius=\" + rad +\r\n                    \"&council=\" + councilId +\r\n                    \"&state=\" + state +\r\n                    \"&shiftCategory=\" + shiftCategoryId;\r\n                if (isFromTile) {\r\n                    url = url + \"&isFromTile=\" + isFromTile;\r\n                }\r\n            }\r\n            if (typeof userSearchModel !== 'undefined') {\r\n                saveUserSearch(userSearchModel);\r\n            }\r\n            if (!isFromTile) {\r\n                Common.RequestLocation(url, \"&location=\", \"&where=\", locationId, where);\r\n            }\r\n            else {\r\n                window.location.href = url;\r\n            }\r\n        });\r\n        function saveUserSearch(userSearch) {\r\n            if (!userSearch) {\r\n                console.error(\"Invalid user search data provided.\");\r\n                return; // Exit the function if userSearch is null or undefined\r\n            }\r\n            $.ajax({\r\n                url: \"/StoreSearchedModelInSession\",\r\n                type: \"POST\",\r\n                contentType: \"application/json\",\r\n                dataType: \"json\",\r\n                data: JSON.stringify(userSearch),\r\n                error: function (result) {\r\n                    // Display a general error message to the user\r\n                    alert(\"Sorry, there was a problem processing your request. Please try again later.\");\r\n                    console.error(\"AJAX error in request: \" + result.responseText);\r\n                },\r\n                success: function (result) {\r\n                },\r\n            });\r\n        }\r\n        $(document).ready(function () {\r\n            $('#autocomplete-category').keypress(function (e) {\r\n                if (e.keyCode == 13) {\r\n                    $('#btn-search').click();\r\n                }\r\n            });\r\n        });\r\n        $(\".advanced-search-btn\").off('click touchend');\r\n        $(\".advanced-search-btn\").on('click touchend', function (e) {\r\n            e.preventDefault();\r\n            var councilId = $(\"#hfCouncilId\").val() || 0;\r\n            var state = $(\"#State_Code\").val() || \"\";\r\n            var tempUrl = '/Search/Advanced' + location.search;\r\n            if (councilId > 0) {\r\n                if (tempUrl.indexOf('?') < 0) {\r\n                    tempUrl += '?council=' + councilId;\r\n                }\r\n                else {\r\n                    tempUrl += '&council=' + councilId;\r\n                }\r\n            }\r\n            if (state !== '') {\r\n                if (tempUrl.indexOf('?') < 0) {\r\n                    tempUrl += '?state=' + state;\r\n                }\r\n                else {\r\n                    tempUrl += '&state=' + state;\r\n                }\r\n            }\r\n            window.location.href = tempUrl;\r\n        });\r\n    }\r\n    PageSetup.InitSearchButton = InitSearchButton;\r\n    function IsValidPassword(password) {\r\n        return isValidPassword(password);\r\n    }\r\n    PageSetup.IsValidPassword = IsValidPassword;\r\n    function InitNavigation() {\r\n        // Bind toggle events for navigation pullouts\r\n        $(\".menu-button\").on(\"click touchend\", function () {\r\n            $(\".wrapper:eq(0)\").toggleClass(\"reveal-right\");\r\n            document.activeElement.blur();\r\n            if ($(\"#m_google_translate_element\").is(\":visible\")) {\r\n                if ($(\".wrapper\").hasClass(\"reveal-right\")) {\r\n                    $(\"#google_translate_element\").appendTo($(\"#m_google_translate_element\"));\r\n                }\r\n                else {\r\n                    $(\"#google_translate_element\").appendTo($(\"#googleTrans\"));\r\n                }\r\n            }\r\n            return false;\r\n        });\r\n        // Close the navigation pullouts under certain conditions\r\n        // Track when the touch move event is detected\r\n        var touchMoved = false;\r\n        $(document).on(\"touchmove\", function () {\r\n            touchMoved = true;\r\n        });\r\n        $(document).on(\"click touchend\", function (e) {\r\n            // If the touchend event is detected, but the touchmoved flag is true, then don't try to close the menus\r\n            // This is to allow users to scroll down the browser in order to navigate a long menu, without it unexpectedly closing the menu\r\n            if (e.type == \"touchend\" && touchMoved)\r\n                return;\r\n            // Close by default\r\n            var closePullouts = true;\r\n            // Except when a touch or click is detected in the nav panels\r\n            if ($(e.target).hasClass(\"mobile-menu\") || $(e.target).parents(\".mobile-menu\").length > 0)\r\n                closePullouts = false;\r\n            if (closePullouts) {\r\n                $(\".wrapper\").removeClass(\"reveal-right\");\r\n                if ($(\"#m_google_translate_element\").is(\":visible\")) {\r\n                    $(\"#google_translate_element\").appendTo($(\"#googleTrans\"));\r\n                }\r\n            }\r\n        });\r\n    }\r\n    PageSetup.InitNavigation = InitNavigation;\r\n    function GeolocateCouncil() {\r\n        if (window.navigator.geolocation) {\r\n            navigator.geolocation.getCurrentPosition(findCouncilandLocation, function (posError) {\r\n                handleNoGeolocation(\"We were unable to get your location from your browser for the following reason: <i>\" + posError.message + \"</i>\");\r\n            });\r\n        }\r\n        else {\r\n            handleNoGeolocation(\"Your browser was unable to provide us with your location details.\");\r\n        }\r\n    }\r\n    PageSetup.GeolocateCouncil = GeolocateCouncil;\r\n    function InitSliders() {\r\n        // Initialise any sliders with the 'slickify' class using its defined settings\r\n        $('.slickify').each(function () {\r\n            $(this).not('.slick-initialized').slick({\r\n                slidesToShow: $(this).attr(\"data-slick-slidesToShow\"),\r\n                slide: $(this).attr(\"data-slick-slideElement\")\r\n            });\r\n        });\r\n    }\r\n    PageSetup.InitSliders = InitSliders;\r\n    function InitPullout() {\r\n        // Behaviour for the search panel pullout\r\n        $(\".pullout-button\").on(\"click touchend\", function (e) {\r\n            e.preventDefault();\r\n            $(this).next(\".pullout-content\").toggleClass(\"pullout-content-shown\");\r\n            $(this).toggleClass(\"pullout-button-active\");\r\n            var shown = $(this).next(\".pullout-content\").is(\".pullout-content-shown\");\r\n            $(this).next(\".pullout-content\").attr(\"tabindex\", shown ? \"0\" : \"-1\");\r\n            $(\"#btnSupportModal\").attr(\"tabindex\", shown ? \"0\" : \"-1\");\r\n        });\r\n        $(\".btn-support-modal\").off(\"click touchend\").on(\"click touched\", function () {\r\n            $(\"#website-help .pullout-content\").removeClass(\"pullout-content-shown\");\r\n            $(\"#website-help .pullout-button\").removeClass(\"pullout-button-active\");\r\n        });\r\n    }\r\n    PageSetup.InitPullout = InitPullout;\r\n    function InitTextSizeChange() {\r\n        $(\".text-larger\").on(\"click touchend\", function (e) {\r\n            e.preventDefault();\r\n            var increment = 10;\r\n            ChangeTextSize(increment);\r\n        });\r\n        $(\".text-smaller\").on(\"click touchend\", function (e) {\r\n            e.preventDefault();\r\n            var increment = -10;\r\n            ChangeTextSize(increment);\r\n        });\r\n        $(\".textSizeIndicator\").on(\"click touchend\", function (e) {\r\n            e.preventDefault();\r\n            ResetTextSize();\r\n        }).on(\"mouseover\", function (e) {\r\n            e.preventDefault();\r\n            $(\".textSizeIndicator\").text('Reset');\r\n        }).on(\"mouseout\", function (e) {\r\n            e.preventDefault();\r\n            if (textSize === 0)\r\n                textSize = 100;\r\n            $(\".textSizeIndicator\").text(textSize + '%');\r\n        });\r\n        if (typeof (Storage) !== \"undefined\") {\r\n            // Check for previous changes to text size\r\n            var incrementCount = parseInt(localStorage.getItem(\"incrementCount\")) || 0;\r\n            var i = 0;\r\n            if (incrementCount > 0) {\r\n                // Increase font size until it matches previous setting\r\n                for (i = 0; i < incrementCount; i++) {\r\n                    ChangeTextSize(10);\r\n                }\r\n            }\r\n            else if (incrementCount < 0) {\r\n                // Decrease font size until it matches previous setting\r\n                for (i = 0; i > incrementCount; i--) {\r\n                    ChangeTextSize(-10);\r\n                }\r\n            }\r\n        }\r\n    }\r\n    PageSetup.InitTextSizeChange = InitTextSizeChange;\r\n    function ResetTextSize() {\r\n        if (typeof (Storage) !== \"undefined\") {\r\n            localStorage.setItem(\"incrementCount\", \"0\");\r\n        }\r\n        textSize = 100;\r\n        ChangeTextSize(0);\r\n    }\r\n    PageSetup.ResetTextSize = ResetTextSize;\r\n    function SaveTextSize(size) {\r\n        if (typeof (Storage) !== \"undefined\") {\r\n            localStorage.setItem(\"incrementCount\", (parseInt(size) || 0).toString());\r\n        }\r\n    }\r\n    PageSetup.SaveTextSize = SaveTextSize;\r\n    function ChangeTextSize(increment) {\r\n        textSize = textSize === 0 ? (100 + increment) : (textSize + increment);\r\n        SaveTextSize(((textSize - 100) / 10).toString());\r\n        $(\".section, .pullout-content\").each(function () {\r\n            $(this).css({ \"font-size\": textSize + \"%\" });\r\n        });\r\n        $(\".textSizeIndicator\").text(textSize + '%');\r\n    }\r\n    PageSetup.ChangeTextSize = ChangeTextSize;\r\n    function ObfuscateEmails() {\r\n        var elementsToObfuscate = $(\".email-obfuscate\");\r\n        elementsToObfuscate.each(function () {\r\n            var emailStart = $(this).data(\"email-start\");\r\n            var emailAt = $(this).data(\"email-at\");\r\n            var setText = Boolean($(this).data(\"set-text\"));\r\n            $(this).attr(\"href\", \"mailto:\" + emailStart + \"@\" + emailAt);\r\n            if (setText)\r\n                $(this).text(emailStart + \"@\" + emailAt);\r\n        });\r\n    }\r\n    PageSetup.ObfuscateEmails = ObfuscateEmails;\r\n    function InitMap() {\r\n        $(\".view-toggles .btn-map\").on('click touchend', function () {\r\n            ShowCategoriesMap();\r\n        });\r\n        function ShowCategoriesMap() {\r\n            var mapContainer = $(\"#search-map\");\r\n            // Check that the map isn't already initialised\r\n            if (mapContainer.length !== 0 && !mapContainer[0].firstChild) {\r\n                var location = new google.maps.LatLng(-27.4679, 153.0278);\r\n                var MY_MAPTYPE_ID = 'custom_style';\r\n                var mapOptions = {\r\n                    zoom: 12,\r\n                    center: location,\r\n                    mapTypeControlOptions: {\r\n                        mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]\r\n                    },\r\n                    MapTypeId: MY_MAPTYPE_ID\r\n                };\r\n                window.MapView = new google.maps.Map(mapContainer[0], mapOptions);\r\n                var styledMapOptions = { name: 'Custom Style' };\r\n                var customMapType = new google.maps.StyledMapType(Common.Map.GetStandardMapStyle(), styledMapOptions);\r\n                window.MapView.mapTypes.set(MY_MAPTYPE_ID, customMapType);\r\n            }\r\n            else {\r\n                // If the map has already been loaded, trigger a resize event so that the map loads correctly.\r\n                // This prevents a bug which caused the map to load incorrectly after the map had loaded then the browser size is changed.\r\n                google.maps.event.trigger(window.MapView, 'resize');\r\n            }\r\n        }\r\n    }\r\n    PageSetup.InitMap = InitMap;\r\n    function InitAutoComplete() {\r\n        // This is an example of how the autocomplete functionality could be acheived using an external json file.\r\n        // For documentation on other methods, see this page: http://twitter.github.io/typeahead.js/examples/\r\n        var q = \"\";\r\n        var categories = new Bloodhound({\r\n            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('Name'),\r\n            queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n            remote: {\r\n                url: '/api/search/Services',\r\n                replace: function (url, query) {\r\n                    q = query;\r\n                    // Change the url target url so it triggers\r\n                    url = url + '#' + encodeURIComponent(q);\r\n                    return url;\r\n                },\r\n                ajax: {\r\n                    beforeSend: function (query, settings) {\r\n                        settings.data = JSON.stringify({ SearchTerm: q });\r\n                    },\r\n                    dataType: 'json',\r\n                    contentType: 'application/json; charset=utf-8',\r\n                    type: 'POST'\r\n                }\r\n            }\r\n        });\r\n        var shiftCategories = new Bloodhound({\r\n            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('Name'),\r\n            queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n            limit: 5,\r\n            remote: {\r\n                url: '/api/search/ShiftServices',\r\n                replace: function (url, query) {\r\n                    q = query;\r\n                    // Change the url target url so it triggers\r\n                    url = url + '#' + encodeURIComponent(q);\r\n                    return url;\r\n                },\r\n                ajax: {\r\n                    beforeSend: function (query, settings) {\r\n                        settings.data = JSON.stringify({ SearchTerm: q });\r\n                    },\r\n                    dataType: 'json',\r\n                    contentType: 'application/json; charset=utf-8',\r\n                    type: 'POST'\r\n                }\r\n            }\r\n        });\r\n        var tags = new Bloodhound({\r\n            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('DisplayText'),\r\n            queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n            remote: {\r\n                url: '/api/search/tags',\r\n                replace: function (url, query) {\r\n                    q = query;\r\n                    // Change the url target url so it triggers\r\n                    url = url + '#' + encodeURIComponent(q);\r\n                    return url;\r\n                },\r\n                ajax: {\r\n                    beforeSend: function (ev, settings) {\r\n                        settings.data = JSON.stringify(q);\r\n                    },\r\n                    dataType: \"json\",\r\n                    contentType: 'application/json; charset=utf-8',\r\n                    type: 'POST'\r\n                }\r\n            }\r\n        });\r\n        var orgs = new Bloodhound({\r\n            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('DisplayText'),\r\n            queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n            remote: {\r\n                url: '/api/search/organisations',\r\n                replace: function (url, query) {\r\n                    q = query;\r\n                    // Change the url target url so it triggers\r\n                    url = url + '#' + encodeURIComponent(q);\r\n                    return url;\r\n                },\r\n                ajax: {\r\n                    beforeSend: function (ev, settings) {\r\n                        settings.data = JSON.stringify({ SearchTerm: q, CouncilRegionId: $(\"#hfCouncilId\").val() || null, State: $(\"#State_Code\").val() || null });\r\n                    },\r\n                    dataType: \"json\",\r\n                    contentType: 'application/json; charset=utf-8',\r\n                    type: 'POST'\r\n                }\r\n            }\r\n        });\r\n        //var locations = McdMaps.getResults(\"#autocomplete-location-new\");\r\n        //var locations = null;\r\n        var councils = new Bloodhound({\r\n            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('DisplayName'),\r\n            queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n            limit: 10,\r\n            remote: {\r\n                url: '/api/search/councils',\r\n                ajax: {\r\n                    beforeSend: function () { showSpinner('#autocomplete-council, #autocomplete-council-mobile'); },\r\n                    complete: function () { removeSpinner('#autocomplete-council, #autocomplete-council-mobile'); }\r\n                },\r\n                replace: function (url, query) {\r\n                    // Trailing spaces can cause routing issues with GET requests so trim them\r\n                    return url + \"/\" + (query || \"\").trim();\r\n                }\r\n            }\r\n        });\r\n        // kicks off the loading/processing of `local` and `prefetch`\r\n        categories.initialize();\r\n        shiftCategories.initialize();\r\n        //locations.initialize();\r\n        councils.initialize();\r\n        tags.initialize();\r\n        orgs.initialize();\r\n        // passing in `null` for the `options` arguments will result in the default\r\n        // options being used\r\n        $(\"#autocomplete-category\").typeahead({\r\n            hint: true,\r\n            minLength: 2,\r\n            highlight: true\r\n        }, {\r\n            name: 'categories',\r\n            displayKey: 'Name',\r\n            source: categories.ttAdapter(),\r\n            templates: {\r\n                header: \"<div class='tt-suggestion-title'><h3 class='h6'>Categories</h3></div>\",\r\n                suggestion: function (d) {\r\n                    return \"<p class='needsclick'>\" + d.Name + \"</p>\";\r\n                }\r\n            }\r\n        }, {\r\n            name: 'shiftCategories',\r\n            displayKey: 'Name',\r\n            source: shiftCategories.ttAdapter(),\r\n            templates: {\r\n                header: \"<div class='tt-suggestion-title'><h3 class='h6'>Shift Categories</h3></div>\",\r\n                suggestion: function (d) {\r\n                    return \"<p class='needsclick'>\" + d.Name + \"</p>\";\r\n                }\r\n            }\r\n        }, {\r\n            name: \"tags\",\r\n            displayKey: \"DisplayText\",\r\n            source: tags.ttAdapter(),\r\n            templates: {\r\n                header: \"<div class='tt-suggestion-title'><h3 class='h6'>Tags</h3></div>\",\r\n                suggestion: function (d) {\r\n                    return \"<p class='needsclick'>\" + d.TagName + ((d.TagName != d.DisplayText) ? \" (<i>\" + d.DisplayText + \"</i>)\" : \"\") + \"</p>\";\r\n                }\r\n            }\r\n        }, {\r\n            name: \"organisations\",\r\n            displayKey: \"DisplayText\",\r\n            source: orgs.ttAdapter(),\r\n            templates: {\r\n                header: \"<div class='tt-suggestion-title'><h3 class='h6'>Locations</h3></div>\",\r\n                suggestion: function (d) {\r\n                    return \"<p class='needsclick'>\" + d.DisplayText + \"</p>\";\r\n                }\r\n            }\r\n        });\r\n        var currentBatchExecutions = 0;\r\n        var maxBatchExecutions = 3;\r\n        $(\"#autocomplete-category\")\r\n            .on(\"typeahead:selected\", function (obj, datum) {\r\n            if (typeof datum.CategoryGroupID !== \"undefined\") {\r\n                $(\"#hfCategoryGroupId\").val(datum.CategoryGroupID);\r\n                $(\"#hfCategoryId\").val(datum.CategoryID);\r\n                $(\"#hfShiftCategoryId\").val(\"0\");\r\n            }\r\n            else if (typeof datum.TagName !== \"undefined\") {\r\n                $(\"#hfTagName\").val(datum.TagName);\r\n                $(\"#hfShiftCategoryId\").val(\"0\");\r\n            }\r\n            else if (typeof datum.IsOrganisation !== \"undefined\") {\r\n                $(datum.IsOrganisation ? \"#hfOrganisationId\" : datum.IsLocation ? \"#hfOutletId\" : \"#hfOSRId\").val(datum.ID);\r\n                $(\"#hfShiftCategoryId\").val(\"0\");\r\n            }\r\n            else if (typeof datum.ShiftCategoryID !== \"undefined\") {\r\n                $(\"#hfShiftCategoryId\").val(datum.ShiftCategoryID);\r\n            }\r\n        }).on(\"typeahead:autocompleted\", function (obj, datum) {\r\n            if (typeof datum.CategoryGroupID !== \"undefined\") {\r\n                $(\"#hfCategoryGroupId\").val(datum.CategoryGroupID);\r\n                $(\"#hfCategoryId\").val(datum.CategoryID);\r\n            }\r\n            else if (typeof datum.TagName !== \"undefined\") {\r\n                $(\"#hfTagName\").val(datum.TagName);\r\n            }\r\n            else if (typeof datum.IsOrganisation !== \"undefined\") {\r\n                $(datum.IsOrganisation ? \"#hfOrganisationId\" : datum.IsLocation ? \"#hfOutletId\" : \"#hfOSRId\").val(datum.ID);\r\n            }\r\n            else if (typeof datum.ShiftCategoryID !== \"undefined\") {\r\n                $(\"#hfShiftCategoryId\").val(datum.ShiftCategoryID);\r\n            }\r\n        }).on(\"typeahead:startupdate\", function () {\r\n            currentBatchExecutions = 0;\r\n            showSpinner(\"#autocomplete-category\");\r\n            $(\"#hfCategoryGroupId\").val(\"0\");\r\n            $(\"#hfCategoryId\").val(\"0\");\r\n            $(\"#hfOrganisationId\").val(\"0\");\r\n            $(\"#hfOutletId\").val(\"0\");\r\n            $(\"#hfOSRId\").val(\"0\");\r\n            $(\"#hfTagName\").val(\"\");\r\n            $(\"#hfShiftCategoryId\").val(\"0\");\r\n        }).on(\"typeahead:datasetupdated\", function () {\r\n            if (++currentBatchExecutions >= maxBatchExecutions) {\r\n                removeSpinner(\"#autocomplete-category\");\r\n            }\r\n        });\r\n        // Locations\r\n        //locationTypeahead(\".location-filter\", locations);\r\n        //locationTypeahead(\"#location-request\", locations);\r\n        // Councils\r\n        $('#autocomplete-council, #autocomplete-council-mobile').typeahead({\r\n            hint: true,\r\n            minLength: 2,\r\n            highlight: true\r\n        }, {\r\n            name: 'councils',\r\n            displayKey: 'DisplayName',\r\n            source: councils.ttAdapter(),\r\n            templates: {\r\n                suggestion: function (d) {\r\n                    return \"<p class='needsclick'>\" + d.DisplayName + \"</p>\";\r\n                }\r\n            }\r\n        });\r\n        $('#autocomplete-council, #autocomplete-council-mobile').on('typeahead:selected', function (obj, datum, name) {\r\n            resetSessionAdsressModel();\r\n            window.location.href = datum.Url;\r\n        });\r\n        // Search On Press Enter\r\n        $(\".on-enter\").on(\"keypress\", function (e) {\r\n            if (e.which === 13) {\r\n                var clickTarget = $(this).data(\"click-target\") || \"btn-search\";\r\n                $(\"#\" + clickTarget).click();\r\n            }\r\n        });\r\n    }\r\n    PageSetup.InitAutoComplete = InitAutoComplete;\r\n    function resetSessionAdsressModel() {\r\n        $.ajax({\r\n            url: \"/StoreSearchedModelInSession\",\r\n            type: \"POST\",\r\n            contentType: \"application/json\",\r\n            dataType: \"json\",\r\n            data: null,\r\n            error: function (result) {\r\n                //console.log(\"fail: \", result);\r\n            },\r\n            success: function (result) {\r\n                //console.log(\"victory\")\r\n            },\r\n        });\r\n    }\r\n    function locationTypeahead(fieldName, locations) {\r\n        $(fieldName).typeahead({\r\n            hint: true,\r\n            minLength: 2,\r\n            highlight: true\r\n        }, {\r\n            name: \"locations\",\r\n            displayKey: \"Name\",\r\n            source: locations.ttAdapter(),\r\n            templates: {\r\n                suggestion: function (d) {\r\n                    return \"<p class='needsclick'>\" + d.Name + \"</p>\";\r\n                }\r\n            }\r\n        });\r\n        $(fieldName)\r\n            .on(\"typeahead:selected\", function (obj, datum) {\r\n            $(\".locality-id\", $(this).closest(\".twitter-typeahead\").parent()).val(datum.LocalityID);\r\n        }).on(\"typeahead:autocompleted\", function (obj, datum) {\r\n            $(\".locality-id\", $(this).closest(\".twitter-typeahead\").parent()).val(datum.LocalityID);\r\n        }).on(\"typeahead:asyncrequest\", function () {\r\n            $(\".locality-id\", $(this).closest(\".twitter-typeahead\").parent()).val(0);\r\n            $(this).addClass(\"spinner\");\r\n        }).on(\"typeahead:startupdate\", function () {\r\n            $(\".locality-id\", $(this).closest(\".twitter-typeahead\").parent()).val(0);\r\n            $(this).addClass(\"spinner\");\r\n        }).on(\"typeahead:datasetupdated\", function () {\r\n            $(this).removeClass(\"spinner\");\r\n            if (!$(this).val().length) {\r\n                $(\".locality-id\", $(this).closest(\".twitter-typeahead\").parent()).val(0);\r\n            }\r\n        });\r\n    }\r\n    PageSetup.locationTypeahead = locationTypeahead;\r\n    function InitCouncilSearch() {\r\n        $(\".council-trail\").on(\"click\", \".regionfilter\", function () {\r\n            $(\"#councilModal\").modal(\"show\");\r\n            $(\"#autocomplete-council\").focus();\r\n        });\r\n        var hideSelector = getCookie(\"hide-council-selector\");\r\n        $('#setCouncilHide').prop('checked', hideSelector !== 'true');\r\n        $(\"#setCouncilHide\").on(\"click\", function () {\r\n            setCookie(\"hide-council-selector\", !$(\"#setCouncilHide\").is(\":checked\"), 365);\r\n        });\r\n        $(\"#locateMe\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            //PageSetup.GeolocateCouncil();\r\n            $(\"#councilModal\").modal('hide');\r\n        });\r\n        $(\"#locateMee\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            //PageSetup.GeolocateCouncil();\r\n            $(\"#councilModal\").modal('hide');\r\n        });\r\n        $(\"#getMyCouncil\").on(\"click\", function (e) {\r\n            navigator.geolocation.getCurrentPosition(findCouncilLocation, function (posError) {\r\n                handleNoGeolocation(\"We were unable to get your location from your browser for the following reason: <i>\" + posError.message + \"</i>\");\r\n            });\r\n        });\r\n        $(document).ready(function () {\r\n            $('#autocomplete-category').keypress(function (e) {\r\n                if (e.keyCode == 13)\r\n                    $('#getMyCouncil').click();\r\n            });\r\n        });\r\n    }\r\n    PageSetup.InitCouncilSearch = InitCouncilSearch;\r\n    function SendMail(to, subject, body) {\r\n        var email = { To: to, Subject: subject, Body: body };\r\n        $.ajax({\r\n            type: 'POST',\r\n            url: \"/api/Email/Send\",\r\n            data: JSON.stringify(email),\r\n            contentType: 'application/json; charset=utf-8',\r\n            dataType: 'json',\r\n            success: function (data) { alert(data); },\r\n            error: function () { alert('Failed'); }\r\n        });\r\n    }\r\n    PageSetup.SendMail = SendMail;\r\n    function InitSearchResultsBehavior() {\r\n        Common.SetupTooltipsStyling();\r\n        $(\"a.phone\").each(function () {\r\n            $(this).attr(\"href\", \"tel:\" + $(this).data(\"phone\")\r\n                .replace(/ /g, \"\")\r\n                .replace(/\\(/g, \"\")\r\n                .replace(/\\)/g, \"\"));\r\n        });\r\n    }\r\n    PageSetup.InitSearchResultsBehavior = InitSearchResultsBehavior;\r\n    function InitSponsors(affiliateId, councilId, hideSponsors, isCommunityInfo, councilLogo, councilUrl) {\r\n        if (!hideSponsors) {\r\n            loadPlatformSponsors(affiliateId, councilId, isCommunityInfo, councilLogo, councilUrl);\r\n        }\r\n    }\r\n    PageSetup.InitSponsors = InitSponsors;\r\n    function SetCookie(cname, cvalue, exdays) {\r\n        setCookie(cname, cvalue, exdays);\r\n    }\r\n    PageSetup.SetCookie = SetCookie;\r\n    function GetCookie(cname) {\r\n        return getCookie(cname);\r\n    }\r\n    PageSetup.GetCookie = GetCookie;\r\n    function InitOneClick() {\r\n        $(\".one-click\").closest('form').on('submit', function (e) {\r\n            var $form = $(this);\r\n            if ($form.data('submitted') === true) {\r\n                // Previously submitted - don't submit again\r\n                e.preventDefault();\r\n            }\r\n            else {\r\n                // Mark it so that the next submit can be ignored\r\n                $form.data('submitted', true);\r\n            }\r\n        });\r\n    }\r\n    PageSetup.InitOneClick = InitOneClick;\r\n})(PageSetup || (PageSetup = {}));\r\n"]}