require(["esri/Map","esri/views/MapView","esri/Basemap","esri/widgets/BasemapToggle","esri/widgets/Home","esri/widgets/Expand","esri/layers/TileLayer","esri/layers/FeatureLayer","esri/layers/GraphicsLayer","esri/geometry/Point","esri/PopupTemplate","esri/widgets/Zoom","esri/widgets/ScaleBar","esri/widgets/Legend","esri/Graphic","esri/symbols/SimpleFillSymbol","esri/geometry/geometryEngine","esri/renderers/UniqueValueRenderer","esri/renderers/SimpleRenderer","dojo/on","dojo/dom","dojo/dom-construct","dojo/dom-class","dojo/_base/lang","dojo/_base/window","dojo/query","dojo/domReady!"],function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt,tt,it,rt,ut){function ur(n){var r=n.target,t=r.value,i=t&&at&&at[parseInt(t,10)];i&&ft.popup.open({features:[i]})}function fr(n,t){/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(n)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(n.substr(0,4))?(layerListExpand=new f({expandIconClass:"esri-icon-question",expandTooltip:"Expand Legend",view:ft,content:t.domNode}),ft.ui.add(layerListExpand,"top-right")):ft.ui.add(t,"top-left")}function er(n,t){return n.attributes.Label.toLowerCase()<t.attributes.Label.toLowerCase()?-1:n.attributes.Label.toLowerCase()>t.attributes.Label.toLowerCase()?1:0}function or(){setTimeout(function(){var n=ut(".popup-button");n.forEach(function(n){d(n,"click",sr)})},1e3)}function sr(n){var t=n.target,i=t.dataset.link;window.open(i,"_blank")}function hr(n){var f=n.graphic.attributes.Description,t="",i="",r,u;return n.graphic.attributes.Type.toLowerCase()==="prohibited"?(t=ct+"/freedomcamping/images/prohibited.png",i="<img alt src='"+t+"' height='42' width='42' >"):n.graphic.attributes.Type.toLowerCase()==="restricted"&&(t=ct+"/freedomcamping/images/restricted.png",i="<img alt src='"+t+"' height='43' width='90' >"),r=nt.create("div",{"class":"container-fluid"}),u=nt.create("div",{"class":"row"},r),nt.create("div",{innerHTML:i,"class":"col-4 popup-image-type"},u),nt.create("div",{innerHTML:f,"class":"col-8 popup-content"},u),r}function cr(n){var t="";return n.graphic.attributes.Label&&(t="{Label}"),t}function lr(n){var t="";return n.graphic.attributes.SubType&&(t="{SubType}"),t}function ar(n){var t="";return n.graphic.attributes.Label&&(t+="{Label}<br><br>"),n.graphic.attributes.Link&&(t+='<button class="popup-button" data-link="{Link}" >Find out more<\/button><br><br>'),t}function vr(n){var t="";return n.graphic.attributes.SubType&&(t="{SubType}"),t}function yr(n){var t="";return n.graphic.attributes.Label&&(t+="{Label}<br><br>"),n.graphic.attributes.Description&&(t+="{Description}<br><br>"),n.graphic.attributes.Link&&(t+='<button class="popup-button" data-link="{Link}" >Find out more<\/button><br><br>'),t}var ft,oi,si,hi,li,ai,vi,lt;nt.create("select",{id:"zoneSelectDiv","class":"form-control dropdown hide"},"zoneListSpan");nt.create("div",{id:"loadingDiv","class":"loading"},"viewDiv");nt.create("div",{id:"loadingImage"},"loadingDiv");nt.create("div",{id:"popupContainer","class":"popup-container hide"},"viewDiv");nt.create("div",{id:"legendContainer","class":"hide"},"viewDiv");var ct="https://sitecorecdn.npdcapps.co.nz/maps_DEV",at,bt=5e3,et,vt=1672597.0840676883,yt=5625058.3478384819,pt=1751256.6447247525,wt=5706310.9089055061,yi=new e({url:"https://maps.npdc.govt.nz/arcgis/rest/services/Street/MapServer"}),pi=new i({baseLayers:[yi],thumbnailUrl:"https://sitecorecdn.npdcapps.co.nz/images/street.png",title:"Street",id:"street"}),wi=new e({url:"https://maps.npdc.govt.nz/arcgis/rest/services/Aerial/MapServer",opacity:"0.8"}),ri=new i({baseLayers:[wi],thumbnailUrl:"https://sitecorecdn.npdcapps.co.nz/images/aerial.png",title:"Aerial",id:"aerial"}),bi={type:"picture-marker",url:ct+"/freedomcamping/images/prohibited.png",width:"42px",height:"42px"},ki={type:"picture-marker",url:ct+"/freedomcamping/images/restricted.png",width:"90px",height:"43px"},di={type:"picture-marker",url:ct+"/freedomcamping/images/toilet.png",width:"42px",height:"42px"},ui=new p({color:[255,0,0,.6],style:"solid",outline:{color:[0,0,0,0],width:"0"}}),fi=new p({color:[255,170,0,.6],style:"solid",outline:{color:[0,0,0,0],width:"0"}}),pr=new p({color:[135,170,0,.6],style:"solid",outline:{color:[76,115,0,1],width:"0"}}),gi=new p({color:[255,255,0,0],style:"solid",outline:{color:[0,255,255],width:2}}),nr={type:"simple-marker",style:"circle",color:[255,255,0,0],outline:{color:[0,255,255],width:2}},wr=new p({color:[255,255,0,0],style:"solid",outline:{color:[255,0,0],width:3}}),tr=new b({field:"Type",legendOptions:{title:" "},uniqueValueInfos:[{value:"Prohibited",label:"Camping banned",symbol:ui},{value:"Restricted",label:"Restricted camping",symbol:fi}]}),kt=new c;kt.title=cr;kt.content=hr;var ot=new o("https://maps.npdc.govt.nz/arcgis/rest/services/sap/EmbeddedMaps/MapServer/17",{popupTemplate:kt,outFields:["*"],renderer:tr}),ir={type:"simple",symbol:di},rr=new c({expressionInfos:[{name:"disabled-access",title:"Disabled Access",expression:'IIF($feature.DisabledAcces == "Yes", "Disabled access available", "No disabled access")'}],title:"{Name} Toilets",content:"{Notes}<\/br><\/br>{expression/disabled-access}<\/br><\/br>{HoursOperation}"}),dt=new o("https://maps.npdc.govt.nz/arcgis/rest/services/sap/EmbeddedMaps/MapServer/12",{popupTemplate:rr,outFields:["*"],renderer:ir,minScale:bt}),gt=new c;gt.title=lr;gt.content=ar;var ni=new o("https://maps.npdc.govt.nz/arcgis/rest/services/sap/EmbeddedMaps/MapServer/13",{popupTemplate:gt,outFields:["*"],definitionExpression:"Type = 'Rubbish and Recycling' AND (SubType = 'Transfer Station' OR SubType = 'Landfill and Transfer Station')"}),ti=new c;ti.title=vr;ti.content=yr;var ii=new o("https://maps.npdc.govt.nz/arcgis/rest/services/sap/EmbeddedMaps/MapServer/18",{popupTemplate:ti,outFields:["*"]}),st=new s,ei=new n({basemap:pi});ei.addMany([ni,ii,dt,ot,st]);ft=new t({map:ei,highlightOptions:{color:[0,255,255,1],haloOpacity:.9,fillOpacity:.2},container:"viewDiv",popup:{container:"popupContainer",dockEnabled:!0,dockOptions:{buttonEnabled:!1,breakpoint:{width:600,height:1e3}},actions:{items:[{visible:!1}]}}});ft.on("click",it.hitch(ft,function(){var n=g.byId("zoneSelectDiv");n.selectedIndex=0;et&&st.remove(et)}));oi={xmin:1628077.4171593785,ymin:5627260.6499091741,xmax:1759443.3048911542,ymax:5719865.0017845444,spatialReference:{wkid:2193}};ft.then(function(){ft.extent=oi;ft.constraints={minScale:577790.554289,rotationEnabled:!1};viewCentre=ft.center;initialViewpoint=ft.viewpoint;fr(navigator.userAgent||navigator.vendor||window.opera,ht)});ft.ui.components=["attribution"];si=new l({view:ft});ft.ui.add(si,{position:"top-left"});hi=new u({view:ft});ft.ui.add(hi,{position:"top-left"});var ht=new v({container:"legendContainer",view:ft,layerInfos:[{title:"",layer:null},{title:"Toilets",layer:null},{title:"Transfer Stations",layer:null},{title:"Dump Stations",layer:null}]}),ci=nt.create("div",{id:"basemapToggleDiv"}),br=new r({view:ft,nextBasemap:ri,container:ci});ft.ui.add(ci,{position:"top-left"});li=nt.create("div",{id:"mobileBasemapToggleDiv"});ai=new r({view:ft,nextBasemap:ri,container:li});ft.ui.add(ai,{position:"top-left"});vi=nt.create("div",{id:"scaleBarDiv"});lt=new a;lt.unit="metric";lt.view=ft;lt.container=vi;ft.ui.add(lt,{position:"bottom-left"});ft.on("drag",it.hitch(this,function(){var t=ft.center.x.toFixed(2),i=ft.center.y.toFixed(2),n=new h({x:ft.center.x,y:ft.center.y,spatialReference:2193});t>pt?(n.x=pt,ft.center=n):t<vt?(n.x=vt,ft.center=n):i>wt?(n.y=wt,ft.center=n):i<yt&&(n.y=yt,ft.center=n)}));ft.on("key-up",it.hitch(this,function(n){var u=n.key;if(u.slice(0,5)==="Arrow"){var i=ft.center.x.toFixed(2),r=ft.center.y.toFixed(2),t=new h({x:ft.center.x,y:ft.center.y,spatialReference:2193});i>pt?(t.x=pt,ft.center=t):i<vt?(t.x=vt,ft.center=t):r>wt?(t.y=wt,ft.center=t):r<yt&&(t.y=yt,ft.center=t)}}));ft.watch("updating",function(){var n=!1,t=!1,i=!1,r=!1;ot.queryFeatures().then(function(u){dt.queryFeatures().then(function(f){ni.queryFeatures().then(function(e){ii.queryFeatures().then(function(o){u.features.forEach(function(t){var i=ft.extent.intersects(t.geometry.extent);i&&(n=!0)});f.features.forEach(function(n){var i=ft.extent.contains(n.geometry);i&&ft.scale<=bt&&(t=!0)});e.features.forEach(function(n){var t=ft.extent.contains(n.geometry);t&&(i=!0)});o.features.forEach(function(n){var t=ft.extent.contains(n.geometry);t&&(r=!0)});n||t||i||r?(ht.layerInfos=[],n&&ht.layerInfos.push({title:"Camping",layer:ot}),t&&ht.layerInfos.push({title:"Toilets",layer:dt}),i&&ht.layerInfos.push({title:"Transfer Stations",layer:ni}),r&&ht.layerInfos.push({title:"Dump Stations",layer:ii}),tt.remove(ut("#legendContainer")[0],"hide")):tt.add(ut("#legendContainer")[0],"hide")})})})})});ft.watch("scale",function(n){n>2e3?(ot.renderer.uniqueValueInfos[0].symbol=bi,ot.renderer.uniqueValueInfos[1].symbol=ki):(ot.renderer.uniqueValueInfos[0].symbol=ui,ot.renderer.uniqueValueInfos[1].symbol=fi);n>bt&&et&&et.attributes.DisabledAcces&&(st.remove(et),ft.popup.clear(),tt.remove(ut(".popup-container")[0],"show"),tt.add(ut(".popup-container")[0],"hide"))});ft.popup.watch("selectedFeature",function(n,t){var i;et&&st.remove(et);t&&(t.symbol=null);n?(et=n.clone(),n.geometry.extent?(et.symbol=gi,i=n.geometry.extent.xmax-n.geometry.extent.xmin>1e4||n.geometry.extent.ymax-n.geometry.extent.ymin>1e4?w.buffer(n.geometry,1e4,"meters"):n.geometry.extent.xmax-n.geometry.extent.xmin>2500||n.geometry.extent.ymax-n.geometry.extent.ymin>2500?w.buffer(n.geometry,1e3,"meters"):n.geometry.extent.xmax-n.geometry.extent.xmin>250||n.geometry.extent.ymax-n.geometry.extent.ymin>250?w.buffer(n.geometry,100,"meters"):w.buffer(n.geometry,75,"meters")):(et.symbol=nr,et.symbol.size+=15,i=w.buffer(n.geometry,300,"meters")),st.add(et),ft.goTo({target:i}).then(function(){tt.remove(ut(".popup-container")[0],"hide");tt.add(ut(".popup-container")[0],"show");or()})):(tt.remove(ut(".popup-container")[0],"show"),tt.add(ut(".popup-container")[0],"hide"))});ft.popup.watch("visible",function(n){!n&&ft.popup.selectedFeature&&(ft.popup.clear(),et&&st.remove(et))});ft.whenLayerView(ot).then(function(n){n.watch("updating",function(t){t||at||n.queryFeatures().then(function(n){var t,i,r,u;for(n.sort(er),at=n,t=g.byId("zoneSelectDiv");t.firstChild;)t.removeChild(t.firstChild);i=rt.doc.createElement("option");i.innerHTML="Select an area";i.value="";i.id="zoneOption-1";t.appendChild(i);n.forEach(function(n,i){var u=n.attributes,r=rt.doc.createElement("option");r.innerHTML=u.Label;r.value=i;t.appendChild(r)});d(t,"change",ur);r=ut("#loadingDiv");u=ut("#zoneSelectDiv");tt.remove(u[0],"hide");tt.add(r[0],"loading-hide")})})})})