{"version":3,"sources":["pages/SuggestAListingPage.js"],"names":["SuggestAListingPage","geocoder","map","infowindow","marker","autocomplete","showGeocodeResults","place","status","address","addr","address_components","formatted_address","length","short_name","join","su","a1a","a1b","a1","st","pc","i","types","long_name","$","val","trim","readonly","show","prop","setAddressEdit","saveLatLng","geometry","location","loadDetails","latlng","content","close","google","maps","InfoWindow","setMap","Marker","position","clickable","setContent","setPosition","open","event","trigger","setCenter","setZoom","markMap","lat","lng","Init","validator","setDefaults","highlight","element","group","closest","addClass","unhighlight","removeClass","errorElement","errorClass","errorPlacement","error","insertAfter","selectize","delimiter","maxItems","create","closeAfterSelect","openOnFocus","plugins","accessibility","Label","DescribedBy","document","on","keyCode","hide","mask","q","orgs","Bloodhound","name","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","limit","remote","url","replace","query","encodeURIComponent","ajax","beforeSend","ev","settings","data","JSON","stringify","Search","dataType","contentType","type","filter","results","result","DisplayName","OrganisationID","initialize","typeahead","hint","minLength","displayKey","source","ttAdapter","templates","suggestion","d","datum","html","e","preventDefault","valid","submit","first","focus","validate","rules","LocationPhone","ausPhone","require_from_group","LocationEmail","mcdEmail","LocationWebsite","UserPhone","UserMobile","ausMobile","UserEmail","ContactPhone","ContactMobile","ContactEmail","AddressComplete","Suburb","State","Postcode","messages","OrganisationName","Geocoder","input","mapOptions","center","LatLng","zoom","mapTypeId","MapTypeId","ROADMAP","Map","getElementById","places","Autocomplete","componentRestrictions","country","bindTo","addListener","getPlace","viewport","fitBounds","latLng","geocode","GeocoderStatus","OK","alert","initAddress","this","Common","FormatAsAusPhone"],"mappings":"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","file":"SuggestAListingPage.min.js","sourcesContent":["var SuggestAListingPage;\r\n(function (SuggestAListingPage) {\r\n function Init() {\r\n $(function () {\r\n $.validator.setDefaults({\r\n highlight: function (element) {\r\n var group = $(element).closest('.form-group');\r\n if (group.length) {\r\n group.addClass('has-error');\r\n }\r\n else {\r\n $(element).addClass('has-error');\r\n }\r\n },\r\n unhighlight: function (element) {\r\n var group = $(element).closest('.form-group');\r\n if (group.length) {\r\n group.removeClass('has-error');\r\n }\r\n else {\r\n $(element).removeClass('has-error');\r\n }\r\n },\r\n errorElement: 'span',\r\n errorClass: 'help-block',\r\n errorPlacement: function (error, element) {\r\n var group = $(element).closest('.form-group');\r\n if (group.length) {\r\n error.insertAfter(group);\r\n }\r\n else {\r\n error.insertAfter(element);\r\n }\r\n }\r\n });\r\n $(\"#Services\").selectize({\r\n delimiter: '|',\r\n maxItems: null,\r\n create: false,\r\n closeAfterSelect: false,\r\n openOnFocus: false,\r\n plugins: { \"accessibility\": { Label: \"Select a Service Category\", DescribedBy: \"servicesDescription\" } }\r\n });\r\n // Disable the Enter key from submitting the form (i.e when users press Enter to select address or add a new line in the brief description)\r\n $(document).on(\"keypress\", \":input:not(textarea)\", function (event) {\r\n return event.keyCode != 13;\r\n });\r\n $(\"#divFormattedAddress\").hide();\r\n $('#Address1').prop(\"readonly\", true);\r\n $('#Address2').prop(\"readonly\", true);\r\n $('#Suburb').prop(\"readonly\", true);\r\n $('#Postcode').prop(\"readonly\", true);\r\n $('#State').prop(\"readonly\", true);\r\n $(\"#ABN\").mask('99 999 999 999');\r\n var q = \"\";\r\n var orgs = new Bloodhound({\r\n name: \"organisations\",\r\n datumTokenizer: Bloodhound.tokenizers.obj.whitespace(\"DisplayName\"),\r\n queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n limit: 20,\r\n remote: {\r\n url: \"/SuggestAListing/FetchOrganisations\",\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({ Search: q });\r\n },\r\n dataType: \"json\",\r\n contentType: \"application/json; charset=utf-8\",\r\n type: \"POST\"\r\n },\r\n filter: function (results) {\r\n return $.map(results, function (result) {\r\n return {\r\n DisplayName: result.DisplayName,\r\n OrganisationID: result.OrganisationID\r\n };\r\n });\r\n }\r\n }\r\n });\r\n orgs.initialize();\r\n $(\"#OrganisationName\").typeahead({\r\n hint: true,\r\n minLength: 3,\r\n highlight: true\r\n }, {\r\n name: \"organisations\",\r\n displayKey: \"DisplayName\",\r\n source: orgs.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 $(\"#OrganisationName\").on(\"typeahead:selected\", function (obj, datum) {\r\n $(\"#LocationName\").val(\"\");\r\n $(\".outletPreview\").html(\"\");\r\n $(\"#LocationName\").removeClass(\"sal-square-right\");\r\n $(\"#divContactDetails\").show();\r\n $(\"#divLocationAddress\").show();\r\n $(\"#OutletID\").val(\"0\");\r\n $(\"#OrganisationID\").val(datum.OrganisationID);\r\n });\r\n $(\"#btnSave\").on(\"click\", function (e) {\r\n e.preventDefault();\r\n if ($(\"#suggestAListingForm\").valid()) {\r\n $(\"#suggestAListingForm\").submit();\r\n }\r\n else {\r\n $(\".has-error :input:not([readonly])\").first().focus();\r\n }\r\n });\r\n $(\"#suggestAListingForm\").validate({\r\n rules: {\r\n LocationPhone: {\r\n ausPhone: true,\r\n require_from_group: [1, \".location-contact\"]\r\n },\r\n LocationEmail: {\r\n mcdEmail: true,\r\n require_from_group: [1, \".location-contact\"]\r\n },\r\n LocationWebsite: {\r\n url: true,\r\n require_from_group: [1, \".location-contact\"]\r\n },\r\n UserPhone: {\r\n ausPhone: true,\r\n require_from_group: [1, \".user-contact\"]\r\n },\r\n UserMobile: {\r\n ausMobile: true,\r\n require_from_group: [1, \".user-contact\"]\r\n },\r\n UserEmail: {\r\n mcdEmail: true,\r\n require_from_group: [1, \".user-contact\"]\r\n },\r\n ContactPhone: {\r\n ausPhone: true\r\n },\r\n ContactMobile: {\r\n ausMobile: true\r\n },\r\n ContactEmail: {\r\n mcdEmail: true\r\n },\r\n AddressComplete: {\r\n require_from_group: [4, \".location-address\"]\r\n },\r\n Suburb: {\r\n require_from_group: [4, \".location-address\"]\r\n },\r\n State: {\r\n require_from_group: [4, \".location-address\"]\r\n },\r\n Postcode: {\r\n require_from_group: [4, \".location-address\"]\r\n }\r\n },\r\n messages: {\r\n OrganisationName: \"An Organisation Name is required\",\r\n LocationPhone: { require_from_group: \"A Phone, Email or Website is required\", ausPhone: \"Please enter a valid Phone number\" },\r\n LocationEmail: { require_from_group: \"A Phone, Email or Website is required\", mcdEmail: \"Please enter a valid Email address\" },\r\n LocationWebsite: { require_from_group: \"A Phone, Email or Website is required\", url: \"Please enter a valid Website\" },\r\n AddressComplete: \"An Address is required\",\r\n Suburb: \"A Suburb is required\",\r\n State: \"A State is required\",\r\n Postcode: \"A Postcode is required\",\r\n UserPhone: { require_from_group: \"A Phone, Mobile or Email is required\", ausPhone: \"Please enter a valid Phone number\" },\r\n UserMobile: { require_from_group: \"A Phone, Mobile or Email is required\", ausMobile: \"Please enter a valid Mobile number\" },\r\n UserEmail: { require_from_group: \"A Phone, Mobile or Email is required\", mcdEmail: \"Please enter a valid Email address\" },\r\n ContactPhone: { ausPhone: \"Please enter a valid Phone number\" },\r\n ContactMobile: { ausMobile: \"Please enter a valid Mobile number\" },\r\n ContactEmail: { mcdEmail: \"Please enter a valid Email address\" }\r\n }\r\n });\r\n initAddress();\r\n $(\"#AddressComplete\").on(\"blur\", function () {\r\n if (!$(this).val()) {\r\n $(\"#divFormattedAddress\").hide();\r\n $(\"#BuildingAddress\").val('');\r\n $(\"#Address1\").val('');\r\n $(\"#Address2\").val('');\r\n $(\"#Suburb\").val('');\r\n $(\"#State\").val('');\r\n $(\"#Postcode\").val('');\r\n }\r\n });\r\n $(\".ausPhone\").on(\"blur\", function () {\r\n if ($(this).val()) {\r\n // format the number\r\n Common.FormatAsAusPhone($(this), $(\"#State\").val());\r\n }\r\n });\r\n });\r\n }\r\n SuggestAListingPage.Init = Init;\r\n var geocoder;\r\n var map;\r\n var infowindow;\r\n var marker;\r\n var autocomplete;\r\n function initAddress() {\r\n geocoder = new google.maps.Geocoder();\r\n var mapOptions = {\r\n center: new google.maps.LatLng(-25.049072, 134.35711879999997),\r\n zoom: 4,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n map = new google.maps.Map(document.getElementById('map'), mapOptions);\r\n var input;\r\n input = document.getElementById('AddressComplete');\r\n autocomplete = new google.maps.places.Autocomplete(input, { componentRestrictions: { country: 'au' } });\r\n autocomplete.bindTo(\"bounds\", map);\r\n google.maps.event.addListener(autocomplete, 'place_changed', function () {\r\n clearMap();\r\n var place = autocomplete.getPlace();\r\n if (place.geometry.viewport) {\r\n map.fitBounds(place.geometry.viewport);\r\n }\r\n else {\r\n map.setCenter(place.geometry.location);\r\n }\r\n showGeocodeResults(place, 'AutoComplete failed.', '');\r\n });\r\n google.maps.event.addListener(map, 'click', function (event) { geocodeLatLng(event.latLng); });\r\n }\r\n function setAddressEdit(readonly) {\r\n $(\"#divFormattedAddress\").show();\r\n $('#Address1').prop(\"readonly\", readonly);\r\n $('#Address2').prop(\"readonly\", readonly);\r\n $('#Suburb').prop(\"readonly\", readonly);\r\n $('#Postcode').prop(\"readonly\", readonly);\r\n $('#State').prop(\"readonly\", readonly);\r\n }\r\n function geocodeLatLng(latlng) {\r\n geocoder.geocode({ 'latLng': latlng }, function (results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n showGeocodeResults(results[0], status, '');\r\n }\r\n else {\r\n alert('Geocode was not successful for the following reason: ' + status);\r\n }\r\n });\r\n }\r\n function showGeocodeResults(place, status, address) {\r\n var addr = address;\r\n if (place.address_components) {\r\n if ((place.formatted_address || \"\").length > 0) {\r\n addr = place.formatted_address;\r\n }\r\n else {\r\n addr = [(place.address_components[0] && place.address_components[0].short_name || ''),\r\n (place.address_components[1] && place.address_components[1].short_name || ''),\r\n (place.address_components[2] && place.address_components[2].short_name || '')].join(', ');\r\n }\r\n loadDetails(place);\r\n $('#editAddress').show();\r\n }\r\n markMap(place.geometry.location, addr);\r\n }\r\n function loadDetails(place) {\r\n var su = '';\r\n var a1a = '';\r\n var a1b = '';\r\n var a1 = '';\r\n var a2 = '';\r\n var st = '';\r\n var pc = '';\r\n for (var i = 0; i < place.address_components.length; i++) {\r\n switch (place.address_components[i].types[0]) {\r\n case \"street_address\":\r\n a1 = place.address_components[i].long_name;\r\n break;\r\n case \"street_number\":\r\n a1a = place.address_components[i].long_name;\r\n break;\r\n case \"route\":\r\n a1b = place.address_components[i].long_name;\r\n break;\r\n case \"locality\":\r\n su = place.address_components[i].long_name;\r\n break;\r\n case \"administrative_area_level_1\":\r\n st = place.address_components[i].short_name;\r\n break;\r\n case \"postal_code\":\r\n pc = place.address_components[i].short_name;\r\n break;\r\n default: break;\r\n }\r\n }\r\n if (a1.length == 0)\r\n a1 = a1a + ' ' + a1b;\r\n if (a1.length > 0 || su.length > 0) {\r\n $(\"#AddressComplete\").val(place.formatted_address);\r\n $(\"#BuildingAddress\").val(\"\");\r\n $(\"#Address1\").val($.trim(a1) || \"\");\r\n $(\"#Address2\").val($.trim(a2) || \"\");\r\n $(\"#Suburb\").val($.trim(su) || \"\");\r\n $(\"#State\").val($.trim(st) || \"\");\r\n $(\"#Postcode\").val($.trim(pc) || \"\");\r\n setAddressEdit(true);\r\n }\r\n saveLatLng(place.geometry.location);\r\n }\r\n function saveLatLng(latlng) {\r\n $(\"#Lat\").val(latlng.lat());\r\n $(\"#Lng\").val(latlng.lng());\r\n }\r\n function clearMap() {\r\n $(\"#Lat\").val(0);\r\n $(\"#Lng\").val(0);\r\n if (infowindow != null)\r\n infowindow.close();\r\n }\r\n function markMap(latlng, content) {\r\n if (infowindow != null)\r\n infowindow.close();\r\n infowindow = new google.maps.InfoWindow();\r\n if (marker != null)\r\n marker.setMap(null);\r\n marker = new google.maps.Marker({\r\n position: latlng,\r\n map: map,\r\n clickable: false\r\n });\r\n infowindow.setContent('<div><strong>Your Location</strong></div>' + content);\r\n infowindow.setPosition(latlng);\r\n infowindow.open(map);\r\n google.maps.event.trigger(map, 'resize');\r\n map.setCenter(latlng);\r\n saveLatLng(latlng);\r\n map.setZoom(15);\r\n }\r\n})(SuggestAListingPage || (SuggestAListingPage = {}));\r\n"]}