dojo.require("esri.map");var resizeTimer;var map;var OSI_50k,duncan,Aerial,first_ed,Third_ed,Rocque,Taylor_South,GS_Map,IE_GSGS_4136;var findTask,findTaskT,findParams,findParamsT;var startExtent,startExtentT;var grid,gridTown,store,StoreT;var layersLoaded;var loading;var east;var north;function init(){east=getQuerystring('x');north=getQuerystring('y');layersLoaded=0;loading=dojo.byId("loadingImg");esriConfig.defaults.map.slider={left:"40px",top:"100px",width:null,height:"180px"};esriConfig.defaults.map.panDuration=1000;esriConfig.defaults.map.panRate=50;dojo.connect(grid,"onRowClick",onRowClickHandler);dojo.connect(gridTown,"onRowClick",onRowClickHandlerT);var initialExtent=new esri.geometry.Extent(293874.808748031,214673.569724751,319937.050041662,236755.315121147,new esri.SpatialReference({wkid:29902}));{dojo.connect(dojo.byId("SearchAddress"),'onkeypress',function(e){if(e.keyCode==dojo.keys.ENTER){doFind();}});}{dojo.connect(dojo.byId("SearchTown"),'onkeypress',function(e){if(e.keyCode==dojo.keys.ENTER){doFindTown();}});}map=new esri.Map("mapDiv",{extent:initialExtent,logo:false});OSI_50k=new esri.layers.ArcGISTiledMapServiceLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/OSI_50k_Colour/MapServer",{id:"OSI_50k"});map.addLayer(OSI_50k);Duncan=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/duncan/MapServer","Duncan");Aerial=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/Orthophotography_2009/MapServer","Aerial");first_ed=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/First_Edition/MapServer","first_ed");Third_ed=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/Third_Edition/MapServer","Third_ed");Fourth_ed=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/Fourth_Edition/MapServer","Fourth_ed");Rocque=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/Rocque/MapServer","Rocque");Taylor_South=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/taylor/MapServer","Taylor_South");GS_Map=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/GS_Map_3906/MapServer","GS_Map");IE_GSGS_4136=initLayer("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/GSGS_4136/MapServer","IE_GSGS_4136");dojo.connect(map,"onZoomStart",showLoading);dojo.connect(map,"onPanStart",showLoading);dojo.connect(map,'onLoad',function(theMap){dojo.connect(dijit.byId('mapDiv'),'resize',function(){resizeMap();});});dojo.connect(OSI_50k,"onUpdate",hideLoading);dojo.connect(Aerial,"onUpdate",hideLoading);dojo.connect(Duncan,"onUpdate",hideLoading);dojo.connect(Aerial,"onUpdate",hideLoading);dojo.connect(first_ed,"onUpdate",hideLoading);dojo.connect(Third_ed,"onUpdate",hideLoading);dojo.connect(Fourth_ed,"onUpdate",hideLoading);dojo.connect(Rocque,"onUpdate",hideLoading);dojo.connect(Taylor_South,"onUpdate",hideLoading);dojo.connect(GS_Map,"onUpdate",hideLoading);dojo.connect(IE_GSGS_4136,"onUpdate",hideLoading);dojo.connect(map,"onLoad",initFunctionality);if(north>1){zoomtoQSext();}}function checkforqs(){if(north>1){zoomToInitialExtent();}else{zoomtoQSext();}}function zoomtoQSext(){var extent=new esri.geometry.Extent(east-100,north-100,east+100,north+100);map.setExtent(extent.expand(25));east=0;north=0;}function initFunctionality(){}function showLoading(){esri.show(loading);}function hideLoading(){layersLoaded++;if(layersLoaded===1){esri.hide(loading);layersLoaded=0;}}function resizeMap(){clearTimeout(resizeTimer);resizeTimer=setTimeout(function(){map.resize();map.reposition();},800);}function initLayer(url,id){var layer=new esri.layers.ArcGISTiledMapServiceLayer(url,{id:id,visible:false});map.addLayer(layer);return layer;}function changeMap(layers,layername){showLoading();hideImageTiledLayers(layers);for(var i=0;i<layers.length;i++){layers[i].show();}showLoading();MapDescription(layername);hideLoading();}function hideImageTiledLayers(layers){for(var j=0,jl=map.layerIds.length;j<jl;j++){var layer=map.getLayer(map.layerIds[j]);if(dojo.indexOf(layers,layer)==-1){layer.hide();}}}function MapDescription(layername){document.getElementById('MapName').innerHTML=layername;if(layername=='OSI Current Mapping'){document.getElementById('MapDesc').innerHTML='';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#OSI" target="_blank">More info on this map... </a>';}else if(layername=='Aerial Photography (2009)'){document.getElementById('MapDesc').innerHTML='20cm resolution Geo-referenced Aerial Photography flown during the summer of 2009.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#Aerial" target="_blank">More info on this map... </a>';}else if(layername=='Fourth Edition OS Maps (1935-38)'){document.getElementById('MapDesc').innerHTML='Only a small number of six inch maps were produced by the  Ordnance Survey of Ireland from 1930 to 1955, usually for areas of growth  around larger towns.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#FourthEd" target="_blank">More info on this map... </a>';}else if(layername=='Duncan (1821)'){document.getElementById('MapDesc').innerHTML='Maps of the county of Dublin.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#Duncan" target="_blank">More info on this map... </a>';}else if(layername=='First Edition OS Maps (1843)'){document.getElementById('MapDesc').innerHTML='OS First Edition Maps were surveyed in 1837, revised in 1843 and published in 1870.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#FirstEd" target="_blank">More info on this map... </a>';}else if(layername=='Third Edition OS Maps (1911-12)'){document.getElementById('MapDesc').innerHTML='Third Edition Maps were surveyed in 1837, revised between 1907 & 1908, and published between 1911 & 1912.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#ThirdEd" target="_blank">More info on this map... </a>';}else if(layername=='Rocque (1760)'){document.getElementById('MapDesc').innerHTML='An actual survey of the county of Dublin on the same scale as those of Middlesex, Oxford, Barks and Buckinghamshire by John Rocque.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#Rocque" target="_blank">More info on this map... </a>';}else if(layername=='Taylor (1816)'){document.getElementById('MapDesc').innerHTML="Taylor's map of the environs of Dublin extending 10 to 14 miles from the castle by actual survey on a scale of 2 inches to one mile.";document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#Taylor" target="_blank">More info on this map... </a>';}else if(layername=='GSGS 3906 (1940)'){document.getElementById('MapDesc').innerHTML='Geographical Section General Staff 6 Inch Map.<br> Published in 1940.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#GSGS1906" target="_blank">More info on this map... </a>';}else if(layername=='GSGS 4136 (1942)'){document.getElementById('MapDesc').innerHTML='Geographical Section General Staff Third Edition. <br>Published in 1942.';document.getElementById('MapInfo').innerHTML='<a class="style3" href="map_descriptions.html#GSGS1942" target="_blank">More info on this map... </a>';}}findTask=new esri.tasks.FindTask("http://gis.sdublincoco.ie/EGis/rest/services/Addressing/AddressSearch/MapServer");findTaskT=new esri.tasks.FindTask("http://gis.sdublincoco.ie/EGis/rest/services/Libraries/Townlands/MapServer");findParams=new esri.tasks.FindParameters();findParams.returnGeometry=true;findParams.layerIds=[0];findParams.searchFields=["ADDR_LINE_1"];findParamsT=new esri.tasks.FindParameters();findParamsT.returnGeometry=true;findParamsT.layerIds=[0];findParamsT.searchFields=["TLAND_NAME"];function doFind(){var address=document.getElementById('SearchAddress').value;if(address==""){alert("Please enter all or part of an address!")}else if(address=="Enter all or part of an address"){alert("Please enter all or part of an address!")}else grid.setStore("");findParams.searchText=dojo.byId('SearchAddress').value;findTask.execute(findParams,showResults);}function doFindTown(){var townland=document.getElementById('SearchTown').value;if(townland==""){alert("Please enter a Townland!")}else if(townland=="Enter a townland name"){alert("Please enter a Townland!")}else gridTown.setStore("");findParamsT.searchText=dojo.byId('SearchTown').value;findTaskT.execute(findParamsT,showTownland);}function showResults(results){var address=document.getElementById('SearchAddress').value;if(results==""&&address!=""&&address!="Enter all or part of an address"){alert("There are no results for "+address);}map.graphics.clear();var symbol=new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NULL,new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,new dojo.Color([255,255,0]),2),new dojo.Color([0,0,0,0]));var items=[];for(var i=0,il=results.length;i<il;i++){items.push(results[i].feature.attributes);var graphic=results[i].feature;graphic.setSymbol(symbol);map.graphics.add(graphic);}var data={identifier:"OBJECTID",label:"OBJECTID",items:items};store=new dojo.data.ItemFileReadStore({data:data});grid.setStore(store);grid.setQuery({OBJECTID:'*'});map.setExtent(startExtent);}function onRowClickHandler(evt){var clickedObjectId=grid.getItem(evt.rowIndex).OBJECTID;var selectedObject;for(var i=0,il=map.graphics.graphics.length;i<il;i++){var currentGraphic=map.graphics.graphics[i];if((currentGraphic.attributes)&&currentGraphic.attributes.OBJECTID==clickedObjectId){selectedObject=currentGraphic;break;}}var theExtent=new esri.geometry.Extent(map.graphics.graphics[i].geometry.x,map.graphics.graphics[i].geometry.y,map.graphics.graphics[i].geometry.x,map.graphics.graphics[i].geometry.y,new esri.SpatialReference({wkid:29902}));theExtent.ymin=theExtent.ymin-1.05;theExtent.ymax=theExtent.ymax+1.05;theExtent.xmin=theExtent.xmin-1.05;theExtent.xmax=theExtent.xmax+1.05;map.setExtent(theExtent.expand(500));map.setExtent(theExtent);document.getElementById('layer').style.visibility='hidden';unCheck();}function showTownland(results){var town=document.getElementById('SearchTown').value;if(results==""&&town!=""&&town!="Enter a townland name"){alert("There are no results for "+town);}map.graphics.clear();var symbol=new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NULL,new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,new dojo.Color([255,0,0]),5),new dojo.Color([0,0,0,0]));var items=[];for(var i=0,il=results.length;i<il;i++){items.push(results[i].feature.attributes);var graphic=results[i].feature;graphic.setSymbol(symbol);map.graphics.add(graphic);}var data={identifier:"OBJECTID",label:"OBJECTID",items:items};storeT=new dojo.data.ItemFileReadStore({data:data});gridTown.setStore(storeT);gridTown.setQuery({OBJECTID:'*'});map.setExtent(startExtentT);}function onRowClickHandlerT(evt){var clickedObjectId=gridTown.getItem(evt.rowIndex).OBJECTID;var selectedObject;for(var i=0,il=map.graphics.graphics.length;i<il;i++){var currentGraphic=map.graphics.graphics[i];if((currentGraphic.attributes)&&currentGraphic.attributes.OBJECTID==clickedObjectId){selectedObject=currentGraphic;break;}}var TownlandExtent=selectedObject.geometry.getExtent();map.setExtent(TownlandExtent.expand(2));document.getElementById('layerTown').style.visibility='hidden';unCheckTown();}function clearDefault(el){if(el.defaultValue==el.value)el.value="";if(el.style)el.style.cssText="";}function unCheck(){var check=document.getElementById('searchcheck').value;if(check=='on');{document.getElementById('searchcheck').checked=false}}function unCheckTown(){var check=document.getElementById('towncheck').value;if(check=='on'){document.getElementById('towncheck').checked=false}}dojo.addOnLoad(init);function switchlayer(){grid.setStore("");var current=document.getElementById('layer').style.visibility;if(current=='visible'){document.getElementById('layer').style.visibility='hidden';}else{unCheckTown();ResetMap();document.getElementById('layerTown').style.visibility='hidden';document.getElementById('layer').style.visibility='visible';document.getElementById('SearchAddress').value='Enter all or part of an address';document.getElementById('SearchAddress').style.fontStyle='italic';}}function switchlayer2(){gridTown.setStore("");var current2=document.getElementById('layerTown').style.visibility;if(current2=='visible'){document.getElementById('layerTown').style.visibility='hidden';}else{unCheck();ResetMap();document.getElementById('layer').style.visibility='hidden';document.getElementById('layerTown').style.visibility='visible';document.getElementById('SearchTown').value='Enter a townland name';document.getElementById('SearchTown').style.fontStyle='italic';}}function ResetMap(){map.graphics.clear();var startExtentT=new esri.geometry.Extent(293874.808748031,214673.569724751,319937.050041662,236755.315121147,new esri.SpatialReference({wkid:29902}));map.setExtent(startExtentT);var startExtent=new esri.geometry.Extent(293874.808748031,214673.569724751,319937.050041662,236755.315121147,new esri.SpatialReference({wkid:29902}));map.setExtent(startExtent);}function disableEnterKey(e){var key;if(window.event)key=window.event.keyCode;else key=e.which;return(key!=13);}function newwindow(){window.open('about.html','jav','width=450,height=330,resizable=no');}
