{"version":3,"sources":["modules/Common.Map.js"],"names":["Common","Map","Location","australiaLatLng","google","maps","LatLng","Autocomplete","Geocode","MarkerLocation","deg2rad","deg","Math","PI","convertLocation","formattedAddress","addressComponents","types","latLng","suburb","num","route","addr","state","postcode","country","premise","subpremise","establishment","i","length","comp","indexOf","long_name","short_name","$","trim","ampersand","comma","substring","building","address","convertGeocoder","result","geometry","location","formatted_address","address_components","SetMarker","marker","lat","lng","setPosition","GetPointForAddress","onSuccess","onFail","Geocoder","geocode","results","status","GeocoderStatus","OK","alert","FitMapBounds","map","bounds","fitBounds","event","addListenerOnce","window","MapView","this","getZoom","setZoom","GetStandardMapStyle","featureType","stylers","saturation","elementType","hue","weight","InitAutoComplete","inputElem","mapElem","data","input","get","autocomplete","places","componentRestrictions","addListener","place","getPlace","is","trigger","setCenter","addressMarker","setMap","viewport","convertPlace","InitMap","options","zoom","mapOptions","extend","center","MY_MAPTYPE_ID","mapTypeControlOptions","style","ZoomControlStyle","SMALL","mapTypeIds","MapTypeId","ROADMAP","mapTypeId","customMapType","StyledMapType","name","mapTypes","set","AddMarker","markerOptions","position","icon","draggable","Marker","e","SetCentre","SetDraggable","setDraggable","GetAddressForPoint","geocoder","req","GeocodeAddress","DistanceBetween","latLng1","latLng2","lat1","lon1","lat2","lon2","dLat","dLon","a","sin","cos","atan2","sqrt","LoadMapMarkers","mapName","showResourceList","searchCenter","markerHandler","InfoWindow","setContent","html","open","Bounds","LatLngBounds","Markers","forEach","array","CouncilLayer","filter","listing","Outlet","MapLocation","ShowMarker","phone","Phone","pstripped","replace","substr","value","DisplayAddress","inner","encodeURIComponent","Url","Suburb","Distance","LookingForVolunteer","Yes","Maybe","markerPos","Lat","Lng","Nickname","CurrentCouncil","KmlLayer","url","KmlLocation","GetCustomStyle","color","visibility"],"mappings":"AAAA,IAAIA,QACJ,SAAWA,IAEP,SAAWC,GAKH,SADAC,KAHJ,IACIC,EAAkB,IAAIC,OAAOC,KAAKC,QAAQ,UAAW,YAOzDL,EAAIC,SAAWA,EAGX,SADAK,KAKJN,EAAIM,aAAeA,EAEf,SADAC,KAKJP,EAAIO,QAAUA,EAGV,SADAC,KAMJ,SAASC,EAAQC,GACb,OAAOA,GAAOC,KAAKC,GAAK,KAa5B,SAASC,EAAgBC,EAAkBC,EAAmBC,EAAOC,GAWjE,IAVA,IAAIC,EAAS,GACTC,EAAM,GACNC,EAAQ,GACRC,EAAO,GACPC,EAAQ,GACRC,EAAW,GACXC,EAAU,GACVC,EAAU,GACVC,EAAa,GACbC,EAAgB,GACXC,EAAI,EAAGA,EAAIb,EAAkBc,OAAQD,IAAK,CAC/C,IAAIE,EAAOf,EAAkBa,IACa,IAAtCE,EAAKd,MAAMe,QAAQ,UAAW,GAC9BN,EAAUK,EAAKE,WAC+B,IAAzCF,EAAKd,MAAMe,QAAQ,aAAc,GACtCL,EAAaI,EAAKE,WAC+B,IAA5CF,EAAKd,MAAMe,QAAQ,gBAAiB,GACzCJ,EAAgBG,EAAKE,WAC6B,IAA7CF,EAAKd,MAAMe,QAAQ,iBAAkB,GAC1CV,EAAOS,EAAKE,WACqC,IAA5CF,EAAKd,MAAMe,QAAQ,gBAAiB,GACzCZ,EAAMW,EAAKE,WAC8B,IAApCF,EAAKd,MAAMe,QAAQ,QAAS,GACjCX,EAAQU,EAAKE,WAC+B,IAAvCF,EAAKd,MAAMe,QAAQ,WAAY,GACpCb,EAASY,EAAKE,WACiD,IAA1DF,EAAKd,MAAMe,QAAQ,8BAA+B,GACvDT,EAAQQ,EAAKG,YACkC,IAA1CH,EAAKd,MAAMe,QAAQ,cAAe,GACvCR,EAAWO,EAAKG,YAC2B,IAAtCH,EAAKd,MAAMe,QAAQ,UAAW,KACnCP,EAAUM,EAAKE,WAMvB,GAJoB,IAAhBX,EAAKQ,SACLR,EAAOa,EAAEC,KAAKhB,EAAM,IAAMC,KAGY,IAAtCJ,EAAMe,QAAQ,eAAgB,GAAW,CACzC,IAAIK,EAAYtB,EAAiBiB,QAAQ,IAAK,GAC1CM,EAAQvB,EAAiBiB,QAAQ,IAAK,GAC1B,EAAZK,GAAyBA,EAARC,IACjBhB,EAAO,UAAYa,EAAEC,KAAKrB,EAAiBwB,UAAU,EAAGD,KAGhE,OAAkB,EAAdhB,EAAKQ,QAA8B,EAAhBX,EAAOW,OACb,CACTU,SAAUL,EAAEC,KAAKT,EAAa,IAAMD,EAAU,IAAME,GACpDa,QAASnB,EACTH,OAAQA,EACRK,SAAUA,EACVD,MAAOA,EACPE,QAASA,EACTP,OAAQA,GAIT,KAQX,SAASwB,EAAgBC,GACrB,GAAIA,GAAUA,EAAOC,UAAYD,EAAOC,SAASC,SAC7C,OAAO/B,EAAgB6B,EAAOG,kBAAmBH,EAAOI,mBAAoBJ,EAAO1B,MAAO0B,EAAOC,SAASC,UAwFlH,SAASG,EAAUC,EAAQ/B,GACnB+B,GAAU/B,GAAUA,EAAOgC,KAAOhC,EAAOiC,KACzCF,EAAOG,YAAYlC,GAuC3B,SAASmC,EAAmBZ,EAASa,EAAWC,IAC7B,IAAInD,OAAOC,KAAKmD,UACtBC,QAAQ,CAAEhB,QAASA,GAAW,SAAUiB,EAASC,GAClDA,IAAWvD,OAAOC,KAAKuD,eAAeC,GAClCP,GACAA,EAAU,CAAET,SAAUH,EAAgBgB,EAAQ,IAAKA,QAASA,EAASC,OAAQA,IAI7EJ,EACAA,EAAO,CAAEG,QAASA,EAASC,OAAQA,IAGnCG,MAAM,8DAAgEH,KAuJtF,SAASI,EAAaC,EAAKC,GACvBD,EAAIE,UAAUD,GACd7D,OAAOC,KAAK8D,MAAMC,gBAAgBC,OAAOC,QAAS,iBAAkB,SAAUH,GACrD,GAAjBI,KAAKC,WACLD,KAAKE,QAAQ,MAKzB,SAASC,IAeL,MAdkB,CACd,CAAEC,YAAa,QAASC,QAAS,CAAC,CAAEC,YAAa,MACjD,CAAEF,YAAa,OAAQC,QAAS,CAAC,CAAEC,YAAa,OAChD,CAAEF,YAAa,0BAA2BG,YAAa,cAAeF,QAAS,CAAC,CAAEG,IAAK,WAAa,CAAEC,OAAQ,OAC9G,CAAEL,YAAa,iBAAkBC,QAAS,CAAC,CAAEC,YAAa,OAC1D,CAAEF,YAAa,eAAgBC,QAAS,CAAC,CAAEC,YAAa,OACxD,CAAEF,YAAa,iBAAkBC,QAAS,CAAC,CAAEC,YAAa,OAC1D,CAAEF,YAAa,cAAeC,QAAS,CAAC,CAAEC,YAAa,OACvD,CAAEF,YAAa,uBAAwBC,QAAS,CAAC,CAAEC,YAAa,OAChE,CAAEF,YAAa,aAAcC,QAAS,CAAC,CAAEC,YAAa,OACtD,CAAEF,YAAa,qBAAsBC,QAAS,CAAC,CAAEC,YAAa,OAC9D,CAAEF,YAAa,QAASC,QAAS,CAAC,CAAEC,WAAY,MAChD,CAAEF,YAAa,4BA7YvB1E,EAAIQ,eAAiBA,EAqHrBR,EAAIgF,iBA/BJ,SAA0BC,EAAWC,GAEjC,IADWhD,EAAE+C,GAAWE,KAAK,YAClB,CACP,IAAIC,EAAQlD,EAAE+C,GAAWI,IAAI,GACzBC,EAAe,IAAInF,OAAOC,KAAKmF,OAAOjF,aAAa8E,EAAO,CAAEI,sBAAuB,CAAEhE,QAAS,QAClGU,EAAE+C,GAAWE,KAAK,WAAYG,GAC9BnF,OAAOC,KAAK8D,MAAMuB,YAAYH,EAAc,gBAAiB,WACzD,IAAII,EAAQJ,EAAaK,WACzB,GAAKD,GAAUA,EAAM/C,SAArB,CAEA,GAAIuC,GAAWhD,EAAEgD,GAASU,GAAG,YAAa,CACtC,IAAI7B,EAAM7B,EAAEgD,GAASC,KAAK,WAC1B,GAAIpB,EAEA,GADA5D,OAAOC,KAAK8D,MAAM2B,QAAQ9B,EAAK,UAC3B2B,EAAM/C,SAASC,SAAU,CACzBmB,EAAI+B,UAAUJ,EAAM/C,SAASC,UAC7B,IAAImD,EAAgB7D,EAAEgD,GAASC,KAAK,uBAChCY,IACAA,EAAc5C,YAAYuC,EAAM/C,SAASC,UACzCmD,EAAcC,OAAOjC,SAGpB2B,EAAM/C,SAASsD,UACpBlC,EAAIE,UAAUyB,EAAM/C,SAASsD,UAIzC/D,EAAE+C,GAAWY,QAAQ,mBAAoB,CAAEjD,SAvCvD,SAAsB8C,GAClB,GAAIA,GAASA,EAAM/C,UAAY+C,EAAM/C,SAASC,SAC1C,OAAO/B,EAAgB6E,EAAM7C,kBAAmB6C,EAAM5C,mBAAoB4C,EAAM1E,MAAO0E,EAAM/C,SAASC,UAqC7CsD,CAAaR,GAAQhD,OAAQgD,SAiC9F1F,EAAImG,QA5BJ,SAAiBjB,EAASjE,EAAQmF,GAC9B,IAAIrC,EAAM7B,EAAEgD,GAASC,KAAK,WAC1B,IAAKpB,EAAK,CACN,IAAIsC,EAAO,GACPD,GAAWA,EAAQC,OACnBA,EAAOD,EAAQC,MAEnBnE,EAAEgD,GAASC,KAAK,WAAYkB,GAC5B,IAAIC,OAAa,EAEbA,EADArF,GAAUA,EAAOgC,KAAOhC,EAAOiC,IAClBhB,EAAEqE,OAAO,CAAEF,KAAMA,EAAMG,OAAQvF,GAAUmF,GAGzClE,EAAEqE,OAAO,CAAEF,KA7JhB,GA6JqCG,OAAQtG,GAAmBkG,GAE5E,IAAIK,EAAgB,eACpBH,EAAapE,EAAEqE,OAAO,CAClBG,sBAAuB,CAAEC,MAAOxG,OAAOC,KAAKwG,iBAAiBC,MAAOC,WAAY,CAAC3G,OAAOC,KAAK2G,UAAUC,QAASP,IAChHQ,UAAWR,GACZH,GACHvC,EAAM,IAAI5D,OAAOC,KAAKJ,IAAIkC,EAAEgD,GAAS,GAAIoB,GACzC,IACIY,EAAgB,IAAI/G,OAAOC,KAAK+G,cAAc1C,IAD3B,CAAE2C,KAAM,WAE/BrD,EAAIsD,SAASC,IAAIb,EAAeS,GAChChF,EAAEgD,GAASC,KAAK,UAAWpB,GAE/B,OAAOA,GAyBX/D,EAAIuH,UAtBJ,SAAmBrC,EAASjE,EAAQmF,GAChC,IAAIrC,EAAM7B,EAAEgD,GAASC,KAAK,WAC1B,IAAKpB,EACD,KAAM,sBACV,IAAIyD,EAAgBtF,EAAEqE,OAAO,CACzBkB,SAAUxG,EACV8C,IAAKA,EACL2D,KAtLU,mEAuLVC,WAAW,EACXrC,cAAc,GACfc,GACCL,EAAgB,IAAI5F,OAAOC,KAAKwH,OAAOJ,GAS3C,OARIA,EAAcG,WACdxH,OAAOC,KAAK8D,MAAMuB,YAAYM,EAAe,UAAW,SAAU8B,GAC9D3F,EAAEgD,GAASW,QAAQ,kBAAmB,CAAE7C,OAAQ+C,EAAe9E,OAAQ,CAAEgC,IAAK4E,EAAE5G,OAAOgC,MAAOC,IAAK2E,EAAE5G,OAAOiC,WAGhHsE,EAAclC,cACdpD,EAAEgD,GAASC,KAAK,sBAAuBY,GAEpCA,GAQX/F,EAAI+C,UAAYA,EAUhB/C,EAAI8H,UATJ,SAAmB5C,EAASjE,GACxB,IAAI8C,EAAM7B,EAAEgD,GAASC,KAAK,WAC1B,IAAKpB,EACD,KAAM,sBACN9C,GAAUA,EAAOgC,KAAOhC,EAAOiC,MAC/Ba,EAAI+B,UAAU7E,GACd8C,EAAIS,QAAQtC,EAAEgD,GAASC,KAAK,eAOpCnF,EAAI+H,aAHJ,SAAsB/E,EAAQ2E,GAC1B3E,EAAOgF,aAAaL,IAuBxB3H,EAAIiI,mBApBJ,SAA4BhH,EAAQoC,EAAWC,GAC3C,IAAI4E,EAAW,IAAI/H,OAAOC,KAAKmD,SAC3B4E,EAAM,GACVA,EAAIvF,SAAW3B,EACfiH,EAAS1E,QAAQ2E,EAAK,SAAU1E,EAASC,GACjCA,IAAWvD,OAAOC,KAAKuD,eAAeC,GAClCP,GACAA,EAAU,CAAET,SAAUH,EAAgBgB,EAAQ,IAAKA,QAASA,EAASC,OAAQA,IAI7EJ,EACAA,EAAO,CAAEG,QAASA,EAASC,OAAQA,IAGnCG,MAAM,iEAAmEH,MAwBzF1D,EAAIoD,mBAAqBA,EAezBpD,EAAIoI,eAdJ,SAAwB5F,EAAS0C,EAASlC,GAEtC,IADUd,EAAEgD,GAASC,KAAK,WAEtB,KAAM,sBACV/B,EAAmBZ,EAAS,SAAU2C,GAC9BA,EAAKvC,SAAS3B,QACd8B,EAAUC,EAAQmC,EAAKvC,SAAS3B,QAChCiB,EAAEgD,GAASW,QAAQ,kBAAmB,CAAE7C,OAAQA,EAAQJ,SAAUuC,EAAKvC,YAGvEiB,MAAM,wEAQlB7D,EAAIqI,gBAHJ,SAAyBC,EAASC,GAC9B,OAlP8BC,EAkPEF,EAAQrF,MAlPJwF,EAkPWH,EAAQpF,MAlPbwF,EAkPoBH,EAAQtF,MAlPtB0F,EAkP6BJ,EAAQrF,MAhPjF0F,EAAOnI,EAAQiI,EAAOF,GACtBK,EAAOpI,EAAQkI,EAAOF,GACtBK,EAAInI,KAAKoI,IAAIH,EAAO,GAAKjI,KAAKoI,IAAIH,EAAO,GACzCjI,KAAKqI,IAAIvI,EAAQ+H,IAAS7H,KAAKqI,IAAIvI,EAAQiI,IACvC/H,KAAKoI,IAAIF,EAAO,GAAKlI,KAAKoI,IAAIF,EAAO,GACrC,EAAIlI,KAAKsI,MAAMtI,KAAKuI,KAAKJ,GAAInI,KAAKuI,KAAK,EAAIJ,IAN3C,KADZ,IAAkCN,EAAMC,EAAMC,EAAMC,EAE5CC,EACAC,EACAC,GA8WR9I,EAAImJ,eA7HJ,SAAwBC,EAAS3F,EAAS4F,EAAkBC,GAepC,SAAhBC,IACAnF,OAAOoF,WAAWC,WAAWnF,KAAKoF,MAClCtF,OAAOoF,WAAWG,KAAKvF,OAAOC,QAASC,MAhB3CF,OAAOC,QAAUtE,EAAOC,IAAImG,QAAQiD,GACpChF,OAAOwF,OAAS,IAAIzJ,OAAOC,KAAKyJ,aAE5BzF,OAAO0F,SAAmC,EAAxB1F,OAAO0F,QAAQjI,QACjCuC,OAAO0F,QAAQC,QAAQ,SAAU/G,EAAQpB,EAAGoI,GACxChH,EAAOgD,OAAO,QAGtB5B,OAAO0F,QAAU,GACjB1F,OAAOoF,WAAa,IAAIrJ,OAAOC,KAAKoJ,WAAW,SAEZ,IAAxBpF,OAAO6F,cACd7F,OAAO6F,aAAajE,OAAO5B,OAAOC,SAMtCD,OAAO0F,QAAUrG,EAAQyG,OAAO,SAAUC,EAASvI,EAAGoI,GAClD,OAAOG,EAAQC,OAAOC,YAAYC,aACnCvG,IAAI,SAAUoG,EAASvI,EAAGoI,GACzB,IAAIN,EAAO,2DACX,GAAIL,EAAkB,CAClB,IAAIkB,EAAQJ,EAAQC,OAAOI,OAAS,GAChCC,EAAYF,EAAMG,QAAQ,WAAY,IACnB,EAAnBD,EAAU5I,OACV6H,GAAQ,6CAA+Ce,EAAY,KAAOF,EAAQ,WAEtD,OAAvBA,EAAMI,OAAO,EAAG,KACrBjB,GAAQ,gCAAkCkB,EAAQ,QAEtD,IAAIA,EAAQT,EAAQC,OAAOS,gBAAkB,GACzCC,EAAQ,mBACO,EAAfF,EAAM/I,SAEFiJ,EADuB,OAAvBF,EAAMD,OAAO,EAAG,GACRC,EAGA,uCAAyCG,mBAAmBH,GAAS,qBAAuBA,EAAQ,QAGpHlB,GAAQ,8BAAgCoB,EAAQ,YAGhDpB,GAAQ,yCAA2CS,EAAQa,IAAM,sDACjEtB,GAAQ,8BAAgCS,EAAQC,OAAOa,OAAS,OAE/C,cAAjB3B,GAAiD,KAAjBA,IAChCI,GAAQ,yCAA2CS,EAAQe,SAAW,uBAAyB5B,EAAe,QAE9Ga,EAAQC,OAAOe,sBAAwBpL,EAAOoL,oBAAoBC,MAClE1B,GAAQ,wCAA0CS,EAAQa,IAAM,kKAEhEb,EAAQC,OAAOe,sBAAwBpL,EAAOoL,oBAAoBE,QAClE3B,GAAQ,wCAA0CS,EAAQa,IAAM,wJAEpEtB,GAAQ,eACR,IAAI4B,EAAY,IAAInL,OAAOC,KAAKC,OAAO8J,EAAQC,OAAOC,YAAYkB,IAAKpB,EAAQC,OAAOC,YAAYmB,KAC9FxI,EAAS,IAAI7C,OAAOC,KAAKwH,OAAO,CAChCH,SAAU6D,EACVvH,IAAKK,OAAOC,QACZqD,KAAM,iCACNgC,KAAM,kCAAuCS,EAAQa,IAAM,KAAQb,EAAQC,OAAOqB,SAAW,YAAc/B,IAI/G,OAFAtF,OAAOwF,OAAOrD,OAAO+E,GACrBnL,OAAOC,KAAK8D,MAAMuB,YAAYzC,EAAQ,QAASuG,GACxCvG,IAgDmB,IAA1BoB,OAAO0F,QAAQjI,OACXuC,OAAOsH,iBACPtH,OAAO6F,aAAe,IAAI9J,OAAOC,KAAKuL,SAAS,CAAEC,IAAKxH,OAAOsH,eAAeG,cAC5EzH,OAAO6F,aAAajE,OAAO5B,OAAOC,UAItCP,EAAaM,OAAOC,QAASD,OAAOwF,SAY5C5J,EAAI8D,aAAeA,EAkBnB9D,EAAIyE,oBAAsBA,EAsK1BzE,EAAI8L,eArKJ,WAmKI,MAlKkB,CACd,CACIpH,YAAa,QAASG,YAAa,gBAAiBF,QAAS,CAAC,CACtDoH,MAAO,aAGnB,CACIrH,YAAa,UACbC,QAAS,CACL,CACIoH,MAAO,WAEX,CACIC,WAAY,SAIxB,CACItH,YAAa,eACbG,YAAa,kBACbF,QAAS,CACL,CACIqH,WAAY,MAEhB,CACID,MAAO,aAInB,CACIrH,YAAa,eACbG,YAAa,gBACbF,QAAS,CACL,CACIoH,MAAO,aAInB,CACIrH,YAAa,aACbG,YAAa,gBACbF,QAAS,CACL,CACIqH,WAAY,MAEhB,CACID,MAAO,WAEX,CACIhH,OAAQ,OAIpB,CACIL,YAAa,aACbG,YAAa,kBACbF,QAAS,CACL,CACIoH,MAAO,aAInB,CACIrH,YAAa,MACbG,YAAa,gBACbF,QAAS,CACL,CACIqH,WAAY,MAEhB,CACID,MAAO,aAInB,CACIrH,YAAa,iBACbG,YAAa,WACbF,QAAS,CACL,CACIoH,MAAO,aAInB,CACIrH,YAAa,gBACbG,YAAa,gBACbF,QAAS,CACL,CACIoH,MAAO,aAInB,CACIrH,YAAa,gBACbG,YAAa,gBACbF,QAAS,CACL,CACIoH,MAAO,aAInB,CACIrH,YAAa,YACbG,YAAa,gBACbF,QAAS,CACL,CACIqH,WAAY,MAEhB,CACID,MAAO,aAInB,CACIrH,YAAa,OACbG,YAAa,mBACbF,QAAS,CACL,CACIoH,MAAO,aAInB,CACIrH,YAAa,iBACbG,YAAa,mBACbF,QAAS,CACL,CACIqH,WAAY,MAEhB,CACID,MAAO,aAInB,CACIrH,YAAa,MACbG,YAAa,cACbF,QAAS,CACL,CACIqH,WAAY,SAIxB,CACItH,YAAa,MACbG,YAAa,cACbF,QAAS,CACL,CACIqH,WAAY,SAIxB,CACItH,YAAa,MACbG,YAAa,cACbF,QAAS,CACL,CACIqH,WAAY,WA7kBpC,CAqlBSjM,EAAOC,MAAQD,EAAOC,IAAM,KAvlBzC,CAwlBcD,OAAXA,QAAoB","file":"Common.Map.min.js","sourcesContent":["var Common;\r\n(function (Common) {\r\n var Map;\r\n (function (Map) {\r\n var addressIcon = \"https://mcdcdn.blob.core.windows.net/map-icons/markers/blank.png\";\r\n var australiaLatLng = new google.maps.LatLng(-25.610111, 134.354806);\r\n var australiaZoom = 10;\r\n var Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n }());\r\n Map.Location = Location;\r\n ;\r\n var Autocomplete = /** @class */ (function () {\r\n function Autocomplete() {\r\n }\r\n return Autocomplete;\r\n }());\r\n Map.Autocomplete = Autocomplete;\r\n var Geocode = /** @class */ (function () {\r\n function Geocode() {\r\n }\r\n return Geocode;\r\n }());\r\n Map.Geocode = Geocode;\r\n ;\r\n var MarkerLocation = /** @class */ (function () {\r\n function MarkerLocation() {\r\n }\r\n return MarkerLocation;\r\n }());\r\n Map.MarkerLocation = MarkerLocation;\r\n function deg2rad(deg) {\r\n return deg * (Math.PI / 180);\r\n }\r\n function getDistanceBetweenPoints(lat1, lon1, lat2, lon2) {\r\n var R = 6371; // Radius of the earth in km\r\n var dLat = deg2rad(lat2 - lat1); // deg2rad below\r\n var dLon = deg2rad(lon2 - lon1);\r\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *\r\n Math.sin(dLon / 2) * Math.sin(dLon / 2);\r\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n var d = R * c; // Distance in km\r\n return d;\r\n }\r\n function convertLocation(formattedAddress, addressComponents, types, latLng) {\r\n var suburb = '';\r\n var num = '';\r\n var route = '';\r\n var addr = '';\r\n var state = '';\r\n var postcode = '';\r\n var country = '';\r\n var premise = '';\r\n var subpremise = '';\r\n var establishment = '';\r\n for (var i = 0; i < addressComponents.length; i++) {\r\n var comp = addressComponents[i];\r\n if (comp.types.indexOf(\"premise\", 0) !== -1)\r\n premise = comp.long_name;\r\n else if (comp.types.indexOf(\"subpremise\", 0) !== -1)\r\n subpremise = comp.long_name;\r\n else if (comp.types.indexOf(\"establishment\", 0) !== -1)\r\n establishment = comp.long_name;\r\n else if (comp.types.indexOf(\"street_address\", 0) !== -1)\r\n addr = comp.long_name;\r\n else if (comp.types.indexOf(\"street_number\", 0) !== -1)\r\n num = comp.long_name;\r\n else if (comp.types.indexOf(\"route\", 0) !== -1)\r\n route = comp.long_name;\r\n else if (comp.types.indexOf(\"locality\", 0) !== -1)\r\n suburb = comp.long_name;\r\n else if (comp.types.indexOf(\"administrative_area_level_1\", 0) !== -1)\r\n state = comp.short_name;\r\n else if (comp.types.indexOf(\"postal_code\", 0) !== -1)\r\n postcode = comp.short_name;\r\n else if (comp.types.indexOf(\"country\", 0) !== -1)\r\n country = comp.long_name;\r\n }\r\n if (addr.length === 0) {\r\n addr = $.trim(num + \" \" + route);\r\n }\r\n // Look for text like Brunswick St & McLachlan St, Fortitude Valley QLD 4006, Australia\r\n if (types.indexOf(\"intersection\", 0) !== -1) {\r\n var ampersand = formattedAddress.indexOf(\"&\", 0);\r\n var comma = formattedAddress.indexOf(\",\", 0);\r\n if (ampersand > 0 && comma > ampersand) {\r\n addr = \"Cnr of \" + $.trim(formattedAddress.substring(0, comma));\r\n }\r\n }\r\n if (addr.length > 0 || suburb.length > 0) {\r\n var result = {\r\n building: $.trim(subpremise + \" \" + premise + \" \" + establishment),\r\n address: addr,\r\n suburb: suburb,\r\n postcode: postcode,\r\n state: state,\r\n country: country,\r\n latLng: latLng\r\n };\r\n return result;\r\n }\r\n return null;\r\n }\r\n function convertPlace(place) {\r\n if (place && place.geometry && place.geometry.location) {\r\n return convertLocation(place.formatted_address, place.address_components, place.types, place.geometry.location);\r\n }\r\n return undefined;\r\n }\r\n function convertGeocoder(result) {\r\n if (result && result.geometry && result.geometry.location) {\r\n return convertLocation(result.formatted_address, result.address_components, result.types, result.geometry.location);\r\n }\r\n return undefined;\r\n }\r\n function InitAutoComplete(inputElem, mapElem) {\r\n var auto = $(inputElem).data(\"auto-obj\");\r\n if (!auto) {\r\n var input = $(inputElem).get(0);\r\n var autocomplete = new google.maps.places.Autocomplete(input, { componentRestrictions: { country: 'au' } });\r\n $(inputElem).data(\"auto-obj\", autocomplete);\r\n google.maps.event.addListener(autocomplete, 'place_changed', function () {\r\n var place = autocomplete.getPlace();\r\n if (!place || !place.geometry)\r\n return;\r\n if (mapElem && $(mapElem).is(\":visible\")) {\r\n var map = $(mapElem).data(\"map-obj\");\r\n if (map) {\r\n google.maps.event.trigger(map, 'resize');\r\n if (place.geometry.location) {\r\n map.setCenter(place.geometry.location);\r\n var addressMarker = $(mapElem).data(\"autocomplete-marker\");\r\n if (addressMarker) {\r\n addressMarker.setPosition(place.geometry.location);\r\n addressMarker.setMap(map);\r\n }\r\n }\r\n else if (place.geometry.viewport) {\r\n map.fitBounds(place.geometry.viewport);\r\n }\r\n }\r\n }\r\n $(inputElem).trigger(\"mcd:autocomplete\", { location: convertPlace(place), result: place });\r\n });\r\n }\r\n }\r\n Map.InitAutoComplete = InitAutoComplete;\r\n function InitMap(mapElem, latLng, options) {\r\n var map = $(mapElem).data(\"map-obj\");\r\n if (!map) {\r\n var zoom = 13;\r\n if (options && options.zoom) {\r\n zoom = options.zoom;\r\n }\r\n $(mapElem).data(\"map-zoom\", zoom);\r\n var mapOptions = void 0;\r\n if (latLng && latLng.lat && latLng.lng) {\r\n mapOptions = $.extend({ zoom: zoom, center: latLng }, options);\r\n }\r\n else {\r\n mapOptions = $.extend({ zoom: australiaZoom, center: australiaLatLng }, options);\r\n }\r\n var MY_MAPTYPE_ID = 'custom_style';\r\n mapOptions = $.extend({\r\n mapTypeControlOptions: { style: google.maps.ZoomControlStyle.SMALL, mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID] },\r\n mapTypeId: MY_MAPTYPE_ID\r\n }, mapOptions);\r\n map = new google.maps.Map($(mapElem)[0], mapOptions);\r\n var styledMapOptions = { name: 'Custom' };\r\n var customMapType = new google.maps.StyledMapType(GetStandardMapStyle(), styledMapOptions);\r\n map.mapTypes.set(MY_MAPTYPE_ID, customMapType);\r\n $(mapElem).data(\"map-obj\", map);\r\n }\r\n return map;\r\n }\r\n Map.InitMap = InitMap;\r\n function AddMarker(mapElem, latLng, options) {\r\n var map = $(mapElem).data(\"map-obj\");\r\n if (!map)\r\n throw \"Map not initialised\";\r\n var markerOptions = $.extend({\r\n position: latLng,\r\n map: map,\r\n icon: addressIcon,\r\n draggable: false,\r\n autocomplete: true\r\n }, options);\r\n var addressMarker = new google.maps.Marker(markerOptions);\r\n if (markerOptions.draggable) {\r\n google.maps.event.addListener(addressMarker, 'dragend', function (e) {\r\n $(mapElem).trigger(\"mcd:marker-drag\", { marker: addressMarker, latLng: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\r\n });\r\n }\r\n if (markerOptions.autocomplete) {\r\n $(mapElem).data(\"autocomplete-marker\", addressMarker);\r\n }\r\n return addressMarker;\r\n }\r\n Map.AddMarker = AddMarker;\r\n function SetMarker(marker, latLng) {\r\n if (marker && latLng && latLng.lat && latLng.lng) {\r\n marker.setPosition(latLng);\r\n }\r\n }\r\n Map.SetMarker = SetMarker;\r\n function SetCentre(mapElem, latLng) {\r\n var map = $(mapElem).data(\"map-obj\");\r\n if (!map)\r\n throw \"Map not initialised\";\r\n if (latLng && latLng.lat && latLng.lng) {\r\n map.setCenter(latLng);\r\n map.setZoom($(mapElem).data(\"map-zoom\"));\r\n }\r\n }\r\n Map.SetCentre = SetCentre;\r\n function SetDraggable(marker, draggable) {\r\n marker.setDraggable(draggable);\r\n }\r\n Map.SetDraggable = SetDraggable;\r\n function GetAddressForPoint(latLng, onSuccess, onFail) {\r\n var geocoder = new google.maps.Geocoder();\r\n var req = {};\r\n req.location = latLng;\r\n geocoder.geocode(req, function (results, status) {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n if (onSuccess) {\r\n onSuccess({ location: convertGeocoder(results[0]), results: results, status: status });\r\n }\r\n }\r\n else {\r\n if (onFail) {\r\n onFail({ results: results, status: status });\r\n }\r\n else {\r\n alert('We were unable to determine the address for the new location: ' + status);\r\n }\r\n }\r\n });\r\n }\r\n Map.GetAddressForPoint = GetAddressForPoint;\r\n function GetPointForAddress(address, onSuccess, onFail) {\r\n var geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({ address: address }, function (results, status) {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n if (onSuccess) {\r\n onSuccess({ location: convertGeocoder(results[0]), results: results, status: status });\r\n }\r\n }\r\n else {\r\n if (onFail) {\r\n onFail({ results: results, status: status });\r\n }\r\n else {\r\n alert('We were unable to determine the location from the address: ' + status);\r\n }\r\n }\r\n });\r\n }\r\n Map.GetPointForAddress = GetPointForAddress;\r\n function GeocodeAddress(address, mapElem, marker) {\r\n var map = $(mapElem).data(\"map-obj\");\r\n if (!map)\r\n throw \"Map not initialised\";\r\n GetPointForAddress(address, function (data) {\r\n if (data.location.latLng) {\r\n SetMarker(marker, data.location.latLng);\r\n $(mapElem).trigger(\"mcd:marker-move\", { marker: marker, location: data.location });\r\n }\r\n else {\r\n alert(\"We are unable to pinpoint your location from the supplied address\");\r\n }\r\n });\r\n }\r\n Map.GeocodeAddress = GeocodeAddress;\r\n function DistanceBetween(latLng1, latLng2) {\r\n return getDistanceBetweenPoints(latLng1.lat(), latLng1.lng(), latLng2.lat(), latLng2.lng());\r\n }\r\n Map.DistanceBetween = DistanceBetween;\r\n function LoadMapMarkers(mapName, results, showResourceList, searchCenter) {\r\n window.MapView = Common.Map.InitMap(mapName);\r\n window.Bounds = new google.maps.LatLngBounds();\r\n // Clear out any existing map markers\r\n if (window.Markers && window.Markers.length > 0) {\r\n window.Markers.forEach(function (marker, i, array) {\r\n marker.setMap(null);\r\n });\r\n }\r\n window.Markers = [];\r\n window.InfoWindow = new google.maps.InfoWindow({});\r\n // Clear out the council map if used.\r\n if (typeof window.CouncilLayer !== 'undefined') {\r\n window.CouncilLayer.setMap(window.MapView);\r\n }\r\n var markerHandler = function () {\r\n window.InfoWindow.setContent(this.html);\r\n window.InfoWindow.open(window.MapView, this);\r\n };\r\n window.Markers = results.filter(function (listing, i, array) {\r\n return listing.Outlet.MapLocation.ShowMarker;\r\n }).map(function (listing, i, array) {\r\n var html = \"<div class='google-result'><div class='contact-details'>\";\r\n if (showResourceList) {\r\n var phone = listing.Outlet.Phone || \"\";\r\n var pstripped = phone.replace(/[^0-9]+/g, \"\");\r\n if (pstripped.length > 0) {\r\n html += \"<p class='icon icon-phone60'><a href='tel:\" + pstripped + \"'>\" + phone + \"</a></p>\";\r\n }\r\n else if (phone.substr(0, 2) === \"--\") {\r\n html += \"<p class='icon icon-phone60'>\" + value + \"</p>\";\r\n }\r\n var value = listing.Outlet.DisplayAddress || \"\";\r\n var inner = \"--not supplied--\";\r\n if (value.length > 0) {\r\n if (value.substr(0, 2) === \"--\") {\r\n inner = value;\r\n }\r\n else {\r\n inner = \"<a href='https://maps.google.com/?q=\" + encodeURIComponent(value) + \"' target='_blank'>\" + value + \"</a>\";\r\n }\r\n }\r\n html += \"<p class='icon icon-map15'>\" + inner + \"</p>\";\r\n }\r\n else {\r\n html += \"<p class='icon icon-phone60'><a href='\" + listing.Url + \"' class='btn btn-small btn-blue'>Contact Us</a></p>\";\r\n html += \"<p class='icon icon-map15'>\" + listing.Outlet.Suburb + \"</p>\";\r\n }\r\n if (searchCenter !== 'undefined' && searchCenter !== '') {\r\n html += \"<p class='icon icon-podcast distance'>\" + listing.Distance + \" from the centre of \" + searchCenter + \"</p>\";\r\n }\r\n if (listing.Outlet.LookingForVolunteer === Common.LookingForVolunteer.Yes) {\r\n html += \"<p class='icon icon-user58'><a href='\" + listing.Url + \"' style='color: #d14905' class='nofollow'>We currently have (THE NUMBER OF POSITION) volunteer positions available. Click here for further information</a></p>\";\r\n }\r\n if (listing.Outlet.LookingForVolunteer === Common.LookingForVolunteer.Maybe) {\r\n html += \"<p class='icon icon-user58'><a href='\" + listing.Url + \"' style='color: #d14905' class='nofollow'>We may have volunteer positions available for the right person. Click here for further information</a></p>\";\r\n }\r\n html += \"</div></div>\";\r\n var markerPos = new google.maps.LatLng(listing.Outlet.MapLocation.Lat, listing.Outlet.MapLocation.Lng);\r\n var marker = new google.maps.Marker({\r\n position: markerPos,\r\n map: window.MapView,\r\n icon: \"/_static/images/map_marker.png\",\r\n html: \"<h3 class=\\\"h5 orange\\\"><a href=\\\"\" + listing.Url + \"\\\">\" + listing.Outlet.Nickname + \"</a></h3>\" + html\r\n });\r\n window.Bounds.extend(markerPos);\r\n google.maps.event.addListener(marker, 'click', markerHandler);\r\n return marker;\r\n });\r\n //for (i = 0; i < results.length; i++) {\r\n // // An example marker\r\n // var listing = results[i];\r\n // var html = \"<div class='google-result'><div class='contact-details'>\";\r\n // if (showResourceList) {\r\n // var phone = listing.Outlet.Phone || \"\";\r\n // var pstripped = phone.replace(/[^0-9]+/g, \"\");\r\n // if (pstripped.length > 0) {\r\n // html += \"<p class='icon icon-phone60'><a href='tel:\" + pstripped + \"'>\" + phone + \"</a></p>\";\r\n // }\r\n // else if (phone.substr(0, 2) === \"--\") {\r\n // html += \"<p class='icon icon-phone60'>\" + value + \"</p>\";\r\n // }\r\n // var value = listing.Outlet.DisplayAddress || \"\";\r\n // var inner = \"--not supplied--\";\r\n // if (value.length > 0) {\r\n // if (value.substr(0, 2) === \"--\") {\r\n // inner = value;\r\n // }\r\n // else {\r\n // inner = \"<a href='https://maps.google.com/?q=\" + encodeURIComponent(value) + \"' target='_blank'>\" + value + \"</a>\";\r\n // }\r\n // }\r\n // html += \"<p class='icon icon-map15'>\" + inner + \"</p>\";\r\n // }\r\n // else {\r\n // html += \"<p class='icon icon-phone60'><a href='\" + listing.Url + \"' class='btn btn-small btn-blue'>Contact Us</a></p>\";\r\n // html += \"<p class='icon icon-map15'>\" + listing.Outlet.Suburb + \"</p>\";\r\n // }\r\n // if (searchCenter !== 'undefined' && searchCenter !== '') {\r\n // html += \"<p class='icon icon-podcast distance'>\" + listing.Distance + \" from the centre of \" + searchCenter + \"</p>\";\r\n // }\r\n // html += \"</div></div>\";\r\n // if (listing.Outlet.MapLocation.ShowMarker) {\r\n // var markerPos = new google.maps.LatLng(listing.Outlet.MapLocation.Lat, listing.Outlet.MapLocation.Lng);\r\n // var marker = new google.maps.Marker({\r\n // position: markerPos,\r\n // map: window.Map,\r\n // icon: \"/_static/images/map_marker.png\",\r\n // html: `<h3 class=\"h5 orange\"><a href=\"${listing.Url}\">${listing.Outlet.Nickname}</a></h3>${html}`\r\n // });\r\n // bounds.extend(markerPos);\r\n // google.maps.event.addListener(marker, 'click', markerHandler);\r\n // window.Markers[window.Markers.length] = marker;\r\n // }\r\n //}\r\n if (window.Markers.length === 0) {\r\n if (window.CurrentCouncil) {\r\n window.CouncilLayer = new google.maps.KmlLayer({ url: window.CurrentCouncil.KmlLocation });\r\n window.CouncilLayer.setMap(window.MapView);\r\n }\r\n }\r\n else {\r\n FitMapBounds(window.MapView, window.Bounds);\r\n }\r\n }\r\n Map.LoadMapMarkers = LoadMapMarkers;\r\n function FitMapBounds(map, bounds) {\r\n map.fitBounds(bounds);\r\n google.maps.event.addListenerOnce(window.MapView, 'bounds_changed', function (event) {\r\n if (this.getZoom() > 17) {\r\n this.setZoom(17);\r\n }\r\n });\r\n }\r\n Map.FitMapBounds = FitMapBounds;\r\n function GetStandardMapStyle() {\r\n var featureOpts = [\r\n { featureType: \"water\", stylers: [{ saturation: -63 }] },\r\n { featureType: \"road\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"administrative.province\", elementType: \"labels.text\", stylers: [{ hue: \"#dd00ff\" }, { weight: 1.2 }] },\r\n { featureType: \"poi.government\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"poi.business\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"poi.government\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"poi.medical\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"poi.place_of_worship\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"poi.school\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"poi.sports_complex\", stylers: [{ saturation: -100 }] },\r\n { featureType: \"water\", stylers: [{ saturation: 44 }] },\r\n { featureType: \"administrative.locality\" }\r\n ];\r\n return featureOpts;\r\n }\r\n Map.GetStandardMapStyle = GetStandardMapStyle;\r\n function GetCustomStyle() {\r\n var featureOpts = [\r\n {\r\n featureType: \"water\", elementType: 'geometry.fill', stylers: [{\r\n color: '#d3d3d3',\r\n }]\r\n },\r\n {\r\n featureType: 'transit',\r\n stylers: [\r\n {\r\n color: '#808080',\r\n },\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.stroke',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n {\r\n color: '#b3b3b3',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n color: '#ffffff',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n {\r\n color: '#ffffff',\r\n },\r\n {\r\n weight: 1.8,\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'geometry.stroke',\r\n stylers: [\r\n {\r\n color: '#d7d7d7',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n {\r\n color: '#ebebeb',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#a7a7a7',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n color: '#ffffff',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n color: '#ffffff',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'landscape',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n {\r\n color: '#efefef',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#696969',\r\n },\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n {\r\n color: '#737373',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n }\r\n ];\r\n return featureOpts;\r\n }\r\n Map.GetCustomStyle = GetCustomStyle;\r\n })(Map = Common.Map || (Common.Map = {}));\r\n})(Common || (Common = {}));\r\n"]}