﻿
﻿Ext.ux.AboutWindow=function(){return new Ext.Window({renderTo:document.body,id:'aboutWindow',title:'About',autoScroll:true,autoLoad:{url:'about.html'},constrainHeader:true,layout:'fit',width:750,height:450,modal:true,footer:true,buttonAlign:'center',buttons:[{text:'Go to Map',handler:function(btn,e){Ext.getCmp('aboutWindow').close();}}]});};﻿
OpenLayers.Layer.AgsCache=OpenLayers.Class(OpenLayers.Layer.Grid,{reproject:false,tileOrigin:null,fadeDuration:1500,fadeStepDuration:50,fadeState:null,fadeTimeLeft:0,fadeMaxOpacity:1,initialize:function(name,url,options){var newArguments=new Array();newArguments.push(name,url,{},options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.AGS(this.name,this.url,this.options);}
obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var res=this.map.getResolution();var x=(Math.floor(0.5+(bounds.left-this.tileOrigin.lon)/(res*this.tileSize.w))).toString(16);while(x.length<8){x="0"+x;}
x="C"+x;var y=(Math.floor(0.5+(this.tileOrigin.lat-bounds.top)/(res*this.tileSize.h))).toString(16);while(y.length<8){y="0"+y;}
y="R"+y;var z=this.map.getZoom();if(z<10){z="L0"+z;}else{z="L"+z;}
return this.url+"/"+this.layername+"/"+z+"/"+y+"/"+x+"."+this.type;},addTile:function(bounds,position){var url=this.getURL(bounds);return new OpenLayers.Tile.Image(this,position,bounds,url,this.tileSize);},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.map.maxExtent.left,this.map.maxExtent.bottom);}},fadeIn:function(){this.setVisibility(true);this.fade();},fadeOut:function(){this.fade();},fade:function(){if(this.fadeState==null){if(this.opacity===null||this.opacity===''||this.opacity===this.fadeMaxOpacity){this.fadeState=2;}else{this.fadeState=-2;}}
if(this.fadeState==1||this.fadeState==-1){this.fadeState=this.fadeState==1?-1:1;this.fadeTimeLeft=this.fadeDuration-this.fadeTimeLeft;}else{this.fadeState=this.fadeState==2?-1:1;this.fadeTimeLeft=this.fadeDuration;var startTime=new Date().getTime();var layer=this;var animFunction=this.animateFade;setTimeout(function(){animFunction(layer,startTime);},this.fadeStepDuration);}},animateFade:function(layer,lastTick){var curTick=new Date().getTime();var elapsedTicks=curTick-lastTick;var newOpVal;if(layer.fadeTimeLeft<=elapsedTicks){newOpVal=layer.fadeState==1?layer.fadeMaxOpacity:0;layer.setOpacity(newOpVal);layer.fadeState=layer.fadeState==1?2:-2;if(newOpVal==0){layer.setVisibility(false);}
return;}
layer.fadeTimeLeft-=elapsedTicks;newOpVal=layer.fadeTimeLeft/layer.fadeDuration;if(layer.fadeState==-1){newOpVal=newOpVal-(1-layer.fadeMaxOpacity);}
if(layer.fadeState==1){newOpVal=layer.fadeMaxOpacity-newOpVal;}
layer.setOpacity(newOpVal);setTimeout(function(){layer.animateFade(layer,curTick);},layer.fadeStepDuration);},CLASS_NAME:"OpenLayers.Layer.AgsCache"});﻿
CUR=window.CUR||{};CUR.AnalyticsTracker=function(config){};﻿
OpenLayers.Layer.ArcGIS93RestFadable=OpenLayers.Class(OpenLayers.Layer.ArcGIS93Rest,{fadeDuration:1500,fadeStepDuration:50,fadeState:null,fadeTimeLeft:0,fadeIn:function(){this.setVisibility(true);this.fade();},fadeOut:function(){this.fade();},fade:function(){if(this.fadeState==null){if(this.opacity===null||this.opacity===''||this.opacity===1){this.fadeState=2;}else{this.fadeState=-2;}}
if(this.fadeState==1||this.fadeState==-1){this.fadeState=this.fadeState==1?-1:1;this.fadeTimeLeft=this.fadeDuration-this.fadeTimeLeft;}else{this.fadeState=this.fadeState==2?-1:1;this.fadeTimeLeft=this.fadeDuration;var startTime=new Date().getTime();var layer=this;var animFunction=this.animateFade;setTimeout(function(){animFunction(layer,startTime);},this.fadeStepDuration);}},animateFade:function(layer,lastTick){var curTick=new Date().getTime();var elapsedTicks=curTick-lastTick;var newOpVal;if(layer.fadeTimeLeft<=elapsedTicks){newOpVal=layer.fadeState==1?1:0;layer.setOpacity(newOpVal);layer.fadeState=layer.fadeState==1?2:-2;if(newOpVal==0){layer.setVisibility(false);}
return;}
layer.fadeTimeLeft-=elapsedTicks;newOpVal=layer.fadeTimeLeft/layer.fadeDuration;if(layer.fadeState==1){newOpVal=1-newOpVal;}
layer.setOpacity(newOpVal);setTimeout(function(){layer.animateFade(layer,curTick);},layer.fadeStepDuration);},CLASS_NAME:"OpenLayers.Layer.ArcGIS93RestFadable"});OpenLayers.Control.ArgParserOasis=OpenLayers.Class(OpenLayers.Control.ArgParser,{hasZoomTo:false,initialize:function(options){OpenLayers.Control.ArgParser.prototype.initialize.apply(this,arguments);},setMap:function(map){var args=OpenLayers.Util.getParameters();if(args.query){if(args.query==='garden'){CUR.DataAccess.prototype.getGardenById(args.queryid,function(garden){CUR.MapPage.updateSelectedFeatures(garden,true,false,true);})}else if(args.query==='crpsite'){CUR.DataAccess.prototype.getCompRestPlanById(args.queryid,function(featureList){CUR.MapPage.updateSelectedFeatures(featureList,true,false,true);})}else if(args.query==='stewardship'){CUR.DataAccess.prototype.getStewardshipById(args.queryid,function(featureList){CUR.MapPage.updateSelectedFeatures(featureList,true,false,true);})}else if(args.query==='zip'){CUR.DataAccess.prototype.getZipCodeByZip(args.queryid,function(featureList){CUR.MapPage.updateSelectedFeatures(featureList,false,false,true);})}}
if(args.zoomto){if(Ext.isArray(args.zoomto)){args.zoomto=args.zoomto.join(',');}
var zoomto=args.zoomto.split(':');if(zoomto.length==2){this.hasZoomTo=true;if(zoomto[0]=='lot'){CUR.DataAccess.prototype.getLotByBBL(zoomto[1],CUR.MapPage.getRestIdsToIdentify(),function(lot){if(lot!==null){CUR.MapPage.selectLot(lot);}else{CUR.MapPage.selectLot([]);}},CUR.MapPage);}else if(zoomto[0]=='address'){var address=zoomto[1].split(',');if(address.length<2){address[0]='';address[1]='';}
CUR.DataAccess.prototype.getLotByAddress(address[0],address[1].trim(),CUR.MapPage.getRestIdsToIdentify(),function(lot){if(lot!==null){CUR.MapPage.selectLot(lot);}else{CUR.MapPage.selectLot([]);}},CUR.MapPage);}else if(zoomto[0]=='garden'){CUR.DataAccess.prototype.getGardenById(zoomto[1],function(features){CUR.MapPage.updateSelectedFeatures(features,true,true,true);});}else{map.setCenter(map.defaultCenter);}}}else{if(args.extent&&!(args.x&&args.y)){map.zoomToExtent(new OpenLayers.Bounds(args.extent[0],args.extent[1],args.extent[2],args.extent[3]));}
if(args.x&&args.y){var center=new OpenLayers.LonLat(parseFloat(args.x),parseFloat(args.y));var zoom;if(args.zoom){zoom=parseInt(args.zoom);}
map.setCenter(center,zoom);}}
if(args.satellite){var aerial=map.getLayersByName(args.satellite);if(aerial.length>0){map.initialAerial=aerial[0];}}
map.initialAerial.setOpacity(1);map.initialAerial.setVisibility(true);if(typeof args.mainlayers!=='undefined'){if(!Ext.isArray(args.mainlayers)){args.mainlayers=args.mainlayers.split(',');}
if(args.mainlayers.indexOf(map.transCacheLayer.name)==-1){map.transCacheLayer.setVisibility(false);}
if(args.mainlayers.indexOf(map.subwayLayer.name)==-1){map.subwayLayer.setVisibility(false);}
if(args.mainlayers.indexOf(map.lotCacheLayer.name)==-1){map.lotCacheLayer.setVisibility(false);}
map.luCacheLayer.handleUrlParams(args.mainlayers);}
if(args.marker){if(!Ext.isArray(args.marker)){args.marker=args.marker.split(',');}
map.getControlsByClass('OpenLayers.Control.MapClick')[0].setMarker(new OpenLayers.LonLat(args.marker[0],args.marker[1]))}},CLASS_NAME:"OpenLayers.Control.ArgParserOasis"});﻿
CUR=window.CUR||{};CUR.DataAccess=function(){this.boroughs=null;};CUR.DataAccess.prototype={getLayerMetadataByName:function(layerName,returnTo){Ext.Ajax.request({url:'service.svc/layer/'+layerName+'/metadata',success:this.success,failure:this.failure,disableCaching:false,returnTo:returnTo});},getAllBoroughs:function(){if(this.boroughs==null){this.boroughs=new Ext.data.JsonStore({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/borough',disableCaching:false}),fields:['Code','Name'],autoLoad:true});}
return this.boroughs;},getAllCounties:function(){return new Ext.data.JsonStore({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/county'}),fields:['Name','StFips']});},getCountyByFips:function(fips,returnTo,scope){Ext.Ajax.request({url:'service.svc/county/'+fips,success:this.success,failure:this.failure,scope:scope,disableCaching:false,returnTo:returnTo});},getLotByAddress:function(address,borough,layersToSelect,returnTo,scope){Ext.Ajax.request({url:'service.svc/lot/geocode?address='+address+'&borough='+borough+'&layerstoselect='+layersToSelect,success:this.success,failure:this.failure,scope:scope,disableCaching:true,returnTo:returnTo});},getLotByBBL:function(bbl,layersToSelect,returnTo,scope){Ext.Ajax.request({url:'service.svc/lot/'+bbl+'?layerstoselect='+layersToSelect,success:this.success,failure:this.failure,scope:scope,disableCaching:true,returnTo:returnTo});},getZipCodeByZip:function(zip,returnTo,scope){Ext.Ajax.request({url:'service.svc/zipcode/'+zip,success:this.success,failure:this.failure,scope:scope,disableCaching:false,returnTo:returnTo});},getAllNeighborhoods:function(){return new Ext.data.JsonStore({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/neighborhood',disableCaching:false}),fields:['Name','NameEncoded']});},getNeighborhoodByName:function(name,returnTo,scope){Ext.Ajax.request({url:'service.svc/neighborhood/'+name,success:this.success,failure:this.failure,scope:scope,disableCaching:false,returnTo:returnTo});},getAllCommunityDistricts:function(){return new Ext.data.JsonStore({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/communitydistrict',disableCaching:false}),fields:['Code','BoardFull']});},getCommunityDistrictByCode:function(code,returnTo,scope){Ext.Ajax.request({url:'service.svc/communitydistrict/'+code,success:this.success,failure:this.failure,scope:scope,disableCaching:false,returnTo:returnTo});},getAllGardens:function(){return new Ext.data.Store({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/garden',disableCaching:false}),reader:new Ext.data.JsonReader({root:'Records',totalProperty:'TotalCount',id:'Id'},['Id','Name'])});},getGardenById:function(id,returnTo){Ext.Ajax.request({url:'service.svc/garden/'+id,success:this.success,failure:this.failure,disableCaching:false,returnTo:returnTo});},getAllStewards:function(){return new Ext.data.Store({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/stewardship',disableCaching:false}),reader:new Ext.data.JsonReader({root:'Records',totalProperty:'TotalCount',id:'Id'},['Id','Name'])});},getStewardshipById:function(id,returnTo){Ext.Ajax.request({url:'service.svc/stewardship/'+id,success:this.success,failure:this.failure,disableCaching:false,returnTo:returnTo});},getAllCompRestPlans:function(){return new Ext.data.Store({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/crp/site',disableCaching:false}),reader:new Ext.data.JsonReader({root:'Records',totalProperty:'TotalCount',id:'Id'},['Id','Name'])});},getCompRestPlanById:function(id,returnTo){Ext.Ajax.request({url:'service.svc/crp/site/'+id,success:this.success,failure:this.failure,disableCaching:false,returnTo:returnTo});},getAllWaterfrontAccess:function(){return new Ext.data.Store({proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/waterfront'}),reader:new Ext.data.JsonReader({root:'Records',totalProperty:'TotalCount',id:'Id'},['Id','Name'])});},getWaterfrontAccessById:function(id,returnTo){Ext.Ajax.request({url:'service.svc/waterfront/'+id,success:this.success,failure:this.failure,disableCaching:false,returnTo:returnTo});},spatialQuery:function(x1,y1,bbox,width,height,layers,returnTo){Ext.Ajax.request({url:'service.svc/spatialquery?x1='+x1+'&y1='+y1+'&layers='+layers+'&bbox='+bbox+'&width='+width+'&height='+height,success:this.success,failure:this.failure,disableCaching:false,returnTo:returnTo});},success:function(response,options){var obj;if(response.responseText!==''){obj=Ext.decode(response.responseText);}else{obj=null;}
options.returnTo.call(this,obj);},failure:function(response,options){var obj;obj=null;options.returnTo.call(this,obj);}};﻿Ext.ux.DonateWindow=function(){return new Ext.Window({renderTo:document.body,id:'donateWindow',title:'Make a donation to OASIS',constrainHeader:true,resizable:false,layout:'form',width:400,draggable:false,closeAction:'hide',footer:true,buttonAlign:'center',buttons:[{text:'Donate Now',handler:function(){window.open('https://community.gc.cuny.edu/SSLPage.aspx?pid=255','donateWin');}}],items:[{xtype:'label',html:'Your donation will help the Center for Urban Research at the CUNY Graduate Center to sustain the OASIS mapping website. When you click the button below, select <b>"OASIS Project/Center for Urban Research"</b> as your designated donation.'}]});}﻿
Ext.ux.EasternTabs=function(config){var _querystring=Ext.urlDecode(window.location.search.substring(1));var activeTab=Ext.num(_querystring.etabs,0);return new Ext.TabPanel({activeTab:activeTab,plain:true,cls:'search-tab',deferredRender:true,items:[Ext.ux.Legend(),Ext.ux.LocationReport(),Ext.ux.SiteSearch(),Ext.ux.FusionTables()]});};﻿Ext.layout.BorderLayout.Region.prototype.slideOut=function(){if(this.isSlid||this.el.hasActiveFx()){return;}
this.isSlid=true;var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.hide();}
this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,this.collapsedEl.getHeight());}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined);}
this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",10001);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);},scope:this,block:true});}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);}};Ext.override(Ext.Panel,{doAutoLoad:function(){var u=this.body.getUpdater();if(this.renderer){u.setRenderer(this.renderer);}
u.update(typeof this.autoLoad=='object'?this.autoLoad:{url:this.autoLoad});}});Ext.override(Ext.layout.BorderLayout.Region,{render:function(ct,p){this.panel=p;p.el.enableDisplayMode();this.targetEl=ct;this.el=p.el;var gs=p.getState,ps=this.position;p.getState=function(){return Ext.apply(gs.call(p)||{},this.state);}.createDelegate(this);if(ps!='center'){p.allowQueuedExpand=false;p.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible||this.floatable){p.collapseEl='el';p.slideAnchor=this.getSlideAnchor();}
if(p.tools&&p.tools.toggle){p.tools.toggle.addClass('x-tool-collapse-'+ps);p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over');}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var tt=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');tt.disableFormats=true;tt.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=tt;}
this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+'-xcollapsed'});this.collapsedEl.enableDisplayMode('block');if(this.collapseMode=='mini'){this.collapsedEl.addClass('x-layout-cmini-'+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:"&#160;"});this.miniCollapsedEl.addClassOnOver('x-layout-mini-over');this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on('click',this.onExpandClick,this,{stopEvent:true});}else{if((this.collapsible!==false)&&!this.hideCollapseTool){var t=this.toolTemplate.append(this.collapsedEl.dom,{id:'expand-'+this.position},true);t.addClassOnOver('x-tool-expand-'+this.position+'-over');t.on('click',this.onExpandClick,this,{stopEvent:true});}
if((this.floatable!==false)||this.titleCollapse){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this[this.floatable?'collapseClick':'onExpandClick'],this);}}}
return this.collapsedEl;}});Ext.override(Ext.dd.DragSource,{autoOffset:function(x,y){this.setDelta(-8,4);}});Ext.override(Ext.dd.DragTracker,{onMouseMove:function(e,target){var isIE9=Ext.isIE&&(/msie 9/.test(navigator.userAgent.toLowerCase()))&&document.documentMode!=6;if(this.active&&Ext.isIE&&!isIE9&&!e.browserEvent.button){e.preventDefault();this.onMouseUp(e);return;}
e.preventDefault();var xy=e.getXY(),s=this.startXY;this.lastXY=xy;if(!this.active){if(Math.abs(s[0]-xy[0])>this.tolerance||Math.abs(s[1]-xy[1])>this.tolerance){this.triggerStart(e);}else{return;}}
this.fireEvent('mousemove',this,e);this.onDrag(e);this.fireEvent('drag',this,e);}});﻿CUR=window.CUR||{};Ext.ux.FusionTables=function(config){var panel;var _layer;var lastHover;var MAP_ICON='http://maps.google.com/mapfiles/kml/paddle/red-blank_maps.png';var MAP_ICON_SELECTED='http://maps.google.com/mapfiles/kml/paddle/grn-blank_maps.png';var MAP_ICON_HOVER='http://maps.google.com/mapfiles/kml/paddle/ylw-blank_maps.png';var _selected=[];var _pageSize=Ext.isIE?100:500;var _tableId;var _totalRecs;var clearData=function(){_tableId=null;_totalRecs=0;_selected=[];colStore.removeAll();store.removeAll();grid.disable();if(_layer){_layer.clearMarkers();}
linkList.setActive(null);};var getTableColumns=function(tableId,bbox){_tableId=tableId;var rUrl='service.svc/shareddata/fusiontable/'+tableId+'/metadata';if(bbox){rUrl+='?bbox='+bbox;}
if(panel.getEl()){panel.getEl().mask('Getting table information...','x-mask-loading');}
Ext.Ajax.request({url:rUrl,success:handleColumnsRequest,failure:handleColumnsRequest,disableCaching:true});};var colStore=new Ext.data.JsonStore({fields:['Id','Name','Type'],expandData:true});var handleColumnsRequest=function(response,o){if(!panel.rendered){var act=panel.ownerCt.getActiveTab();panel.ownerCt.setActiveTab(3);panel.ownerCt.setActiveTab(act);linkList.setActive(_tableId);}
panel.getEl().unmask();var metadata=Ext.decode(response.responseText);if(metadata.Columns!==null){colStore.clearData();colStore.loadData(metadata.Columns);_totalRecs=metadata.TotalRecords;var fields=[];fields.push({name:'LonOasis'});fields.push({name:'LatOasis'});for(var i=0,len=metadata.Columns.length;i<len;i++){fields.push({name:metadata.Columns[i].Name});}
store.reader=new Ext.data.JsonReader({root:'Records','fields':fields});buildTemplateString();setColumnCbos();getTable(_tableId,getLocationCol());panel.getEl().mask();}};var setColumnCbos=function(){var cmp=Ext.getCmp('cboFusion1');cmp.reset();cmp.setValue(colStore.getAt(0).get('Id'));cmp=Ext.getCmp('cboFusion2');cmp.reset();cmp.setValue(colStore.getAt(1).get('Id'));};var getTable=function(tableId,locCol,applySpatialFilter){grid.getColumnModel().config[1].dataIndex=colStore.getAt(0).get('Name');grid.getColumnModel().config[2].dataIndex=colStore.getAt(1).get('Name');store.setBaseParam('tableId',tableId);store.setBaseParam('locationColumn',locCol);store.setBaseParam('orderby',colStore.getAt(0).get('Id'));store.setBaseParam('orderdir','ASC');if(applySpatialFilter){var ext=CUR.MapPage.getMap().getExtent();var ll=CUR.convertSPToLL(ext.left,ext.bottom);var tr=CUR.convertSPToLL(ext.right,ext.top);store.setBaseParam('bbox',Math.round(ll.lat*10000)/10000+','+Math.round(ll.lon*10000)/10000+','+Math.round(tr.lat*10000)/10000+','+Math.round(tr.lon*10000)/10000);}
store.load({params:{start:0,limit:_pageSize}});}
var sortTable=function(orderby,el){if(store.baseParams.orderby===orderby){if(store.baseParams.orderdir==='ASC'){store.baseParams.orderdir='DESC';}else{store.baseParams.orderdir='ASC'}}else{store.baseParams.orderdir='ASC';}
var sorts=Ext.select('.fusion-sort');for(var i=0,len=sorts.getCount();i<len;i++){sorts.item(i).removeClass('fusion-sort-asc');sorts.item(i).removeClass('fusion-sort-desc');}
if(store.baseParams.orderdir==='ASC'){Ext.fly(el).addClass('fusion-sort-asc');}else{Ext.fly(el).addClass('fusion-sort-desc');}
store.baseParams.orderby=orderby;store.load({params:{start:0,limit:_pageSize}});}
var loadTable=function(s,r,o){if(!_layer){_layer=CUR.MapPage.getMap().getLayersByName('Fusion')[0];}
_selected=[];var i,len;var xy;_layer.clearMarkers();var marker;var hover1=getHoverValue();for(i=0,len=r.length;i<len;i++){xy=CUR.convertLLToSP(r[i].data.LatOasis,r[i].data.LonOasis);marker=new OpenLayers.Marker({lon:xy.x,lat:xy.y},new OpenLayers.Icon(MAP_ICON,null,new OpenLayers.Pixel(-10,-19)));marker.fid=i;marker.events.register('mouseover',marker,function(e){markerOver(this);});marker.events.register('mouseout',marker,function(e){markerOut(this);});marker.events.register('mousedown',marker,function(e){markerClick(this,e);});marker.icon.imageDiv.style.cursor='pointer';marker.icon.imageDiv.title=r[i].data[hover1];_layer.addMarker(marker);}
s.totalLength=_totalRecs;grid.enable();panel.getEl().unmask();};var getHoverValue=function(){var cbo=Ext.getCmp('cboFusion1')
if(cbo){return colStore.getAt(colStore.find('Id',cbo.getValue())).get('Name')}else{return colStore.getAt(0).get('Name')}};var markerOver=function(marker){Ext.fly(grid.getView().getRow(marker.fid)).addClass('x-grid3-row-over');marker.icon.setUrl(MAP_ICON_HOVER);marker.icon.imageDiv.style.zIndex=9999;};var markerOut=function(marker){Ext.fly(grid.getView().getRow(marker.fid)).removeClass('x-grid3-row-over');if(_selected.indexOf(marker.fid)>-1){marker.icon.setUrl(MAP_ICON_SELECTED);}else{marker.icon.setUrl(MAP_ICON);}
marker.icon.imageDiv.style.zIndex=0;};var markerClick=function(marker,e){if(_selected.indexOf(marker.fid)>-1&&e.ctrlKey){grid.getSelectionModel().deselectRow(marker.fid);marker.icon.setUrl(MAP_ICON);}else{grid.getSelectionModel().selectRow(marker.fid,e.ctrlKey);grid.getSelectionModel().selectRow(marker.fid,e.ctrlKey);var row=grid.getView().getRow(marker.fid-1);if(row){row.scrollIntoView();}
marker.icon.setUrl(MAP_ICON_SELECTED);}};var store=new Ext.data.Store({remoteSort:true,proxy:new Ext.data.HttpProxy({method:'GET',url:'service.svc/shareddata'}),reader:new Ext.data.JsonReader({root:'Records'}),listeners:{load:loadTable}});var setIconHoverText=function(field1){for(var i=0,len=store.getCount();i<len;i++){_layer.markers[i].icon.imageDiv.title=store.getAt(i).data[field1];}};var getLocationCol=function(){return colStore.getAt(colStore.find('Type','Location')).get('Id');};var buildTemplateString=function(){var s='<table style="margin-left:10px;">';var val;for(var i=0,len=colStore.getCount();i<len;i++){val=colStore.getAt(i).get('Name');s+='<tr><td style="font-weight:bold;color:#5f5f5f;padding-top:3px;">'+val+':</td><td style="padding-top:3px;">{[this.asHref(values["'+val+'"])]}</td></tr>';}
s+='</table>';expander.tpl=new Ext.XTemplate(s,{compiled:true,asHref:function(v){var idx=v.indexOf('http://');if(idx===0){if(this.isImg(v)){return'<a target="_blank" href="'+v+'"><img src="'+v+'" style="width:160px;" /></a>';}else{return'<a target="_blank" href="'+v+'">'+v+'</a>';}}else{return v;}},isImg:function(v){var r=new RegExp("(.*\.([jJ][pP][gG])|([jJ][pP][eE][gG])|([gG][iI][fF])|([pP][nN][gG])$)");return r.test(v);}});};var expander=new Ext.ux.grid.RowExpander({expandOnDblClick:false,tpl:null});var createLink=function(text,tableId,link){return{xtype:'container',autoEl:{tag:'div'},style:'padding:2px 0 4px 1px;display:list-item;list-style-position:inside;',items:[{xtype:'component',autoEl:{tag:'a',href:'#',cn:text},style:'cursor:pointer;',listeners:{render:function(c){if(c.ownerCt.tableId===_tableId){c.ownerCt.ownerCt.setActive(c.ownerCt.tableId);}
c.getEl().on('click',function(){c.ownerCt.ownerCt.setActive(c.ownerCt.tableId);getTableColumns(tableId);},c,{stopEvent:true});}}},{xtype:'component',autoEl:{tag:'a',target:'_blank',href:link,cn:'About...'},style:'position:absolute;right:22px;'}],tableId:tableId};};var linkList=new Ext.Container({autoEl:{tag:'div',style:'padding-left:8px;'},items:[createLink('NYC Evacuation  Centers','1357782','http://spatialityblog.com/2011/08/25/coastal-storm-impact-risk-mapped-in-nyc/'),createLink('NY4P Daffodil Blooming Map 2011','659476','http://www.ny4p.org/index.php?option=com_content&task=view&id=35&Itemid=221'),createLink('NYC skate/bike parks','1251857','http://maps.google.com/maps/ms?msid=215535736309347198287.00049418fe849e8d0af7f&msa=0&ll=63.074866,-30.234375&spn=45.884519,158.027344'),createLink('Stalled Development Sites','1229066','http://maps.google.com/maps/ms?msa=0&msid=215367689492136070792.0004a7f7d34b6e65ba2cb&hl=en&ie=UTF8&ll=40.731422,-73.91728&spn=0.311025,0.196705&source=embed'),{xtype:'box',autoEl:{tag:'a',target:'_blank',href:'http://oasisnyc.gc.cuny.edu/index.php/Community_Data_March2011',cn:'Learn more about OASIS community data...'},style:'position:absolute;right:22px;padding-top:2px;'}],setActive:function(tableId){this.items.each(function(){if(this.tableId===tableId){this.getEl().addClass('fusion-tablelist-highlight');}else{this.getEl().removeClass('fusion-tablelist-highlight');}});}});var grid=new Ext.grid.GridPanel({id:'gridFusion',maskDisabled:true,title:'Select display columns and view data on map <a href="#" onclick="Ext.getCmp(\'fusionTables\').clearData();return false;" title="Clear all records from the map" style="padding-left:35px;">Clear</a>',disabled:true,anchor:'0 -107',store:store,enableColumnMove:false,loadMask:{msg:'Loading data...'},bbar:new Ext.Container({items:[new Ext.PagingToolbar({pageSize:_pageSize,store:store,displayInfo:true,displayMsg:'{0}-{1} of {2}'})]}),plugins:[expander],columns:[expander,{header:'<select id="cboFusion1"></select><span class="fusion-sort"></span>',width:150,sortable:false,menuDisabled:true},{header:'<select id="cboFusion2"></select><span class="fusion-sort"></span>',width:150,sortable:false,menuDisabled:true}],selModel:new Ext.grid.RowSelectionModel({listeners:{rowselect:function(sm,row,rec){_layer.markers[row].icon.setUrl(MAP_ICON_SELECTED);_layer.markers[row].icon.imageDiv.style.zIndex=9999;_selected.push(row);},rowdeselect:function(sm,row,rec){_layer.markers[row].icon.setUrl(MAP_ICON);_layer.markers[row].icon.imageDiv.style.zIndex=0;_selected.remove(row);}}}),listeners:{resize:function(){grid.setHeight(grid.getHeight());},render:function(pnl){new Ext.form.ComboBox({id:'cboFusion1',transform:'cboFusion1',width:125,style:'float:left;',emptyText:'select field to display...',store:colStore,editable:false,triggerAction:'all',valueField:'Id',displayField:'Name',mode:'local',listeners:{select:function(cbo,rec,idx){var cmp=Ext.getCmp('gridFusion');cmp.getColumnModel().config[1].dataIndex=rec.get('Name');cmp.getView().refresh();setIconHoverText(getHoverValue());}}});new Ext.form.ComboBox({id:'cboFusion2',transform:'cboFusion2',width:125,style:'float:left;',emptyText:'select field to display...',store:colStore,editable:false,triggerAction:'all',valueField:'Id',displayField:'Name',mode:'local',listeners:{select:function(cbo,rec,idx){var cmp=Ext.getCmp('gridFusion');cmp.getColumnModel().config[2].dataIndex=rec.get('Name');cmp.getView().refresh();}}});var sorts=Ext.select('.fusion-sort');sorts.item(0).addListener('click',function(e,t,o){sortTable(Ext.getCmp('cboFusion1').getValue(),t);});sorts.item(1).addListener('click',function(e,t,o){sortTable(Ext.getCmp('cboFusion2').getValue(),t);});},mouseover:function(e,t){var rowIndex=this.getView().findRowIndex(t);if(rowIndex!==false){if(_layer){var rowIndex=this.getView().findRowIndex(t);if(rowIndex!==false){_layer.markers[rowIndex].icon.setUrl(MAP_ICON_HOVER);_layer.markers[rowIndex].icon.imageDiv.style.zIndex=9999;}}}},mouseout:function(e,t){if(_layer){var rowIndex=this.getView().findRowIndex(t);if(rowIndex!==false){if(_selected.indexOf(rowIndex)>-1){_layer.markers[rowIndex].icon.setUrl(MAP_ICON_SELECTED);}else{_layer.markers[rowIndex].icon.setUrl(MAP_ICON);_layer.markers[rowIndex].icon.imageDiv.style.zIndex=0;}}}},rowdblclick:function(g,idx,e,rr){if(e.getTarget().className!=='x-grid3-row-expander')
{var marker=_layer.markers[idx];if(CUR.MapPage.getMap().maxExtent.containsLonLat(marker.lonlat)){var bounds=new OpenLayers.Bounds();bounds.extend(new OpenLayers.LonLat(marker.lonlat.lon,marker.lonlat.lat));CUR.MapPage.getMap().zoomToExtent(bounds);}else{Ext.MessageBox.show({msg:'This record is located outside of the maximum extent of the map and cannot be displayed.',title:'Cannot display point',width:300,modal:false,closable:false});setTimeout(function(){Ext.MessageBox.getDialog().el.shadow.hide();Ext.MessageBox.getDialog().el.fadeOut({duration:0.2,callback:function(){Ext.MessageBox.hide();}});},1000);}}}}});panel=new Ext.Panel({title:'Community Data',id:'fusionTables',style:'font-family:Verdana;padding-top:4px;',layout:'anchor',items:[new Ext.Container({autoEl:{tag:'div'},height:107,items:[new Ext.Container({autoEl:{tag:'div',style:'',children:[{tag:'span',cn:'Click one of these datasets to view on the map ',style:'padding-right:4px;font-weight:bold;'},Ext.ux.HelpTip({tipText:'Community Data lets you add data from Google\'s Fusion Tables service and overlay it with OASIS\'s rich set of maps.  In order to test this feature we\'re limiting it to pre-determined tables.  Eventually we\'ll let you add any data that\'s public (or has unlisted visibility), is exportable, has a location column, and represents point locations.',style:'vertical-align:top;'})]}}),linkList]}),grid],getTableId:function(){return _tableId;},clearData:function(){clearData();}});var fusionId=Ext.urlDecode(location.search.substring(1))['fusionid'];if(fusionId){getTableColumns(fusionId);}
return panel;}
﻿
Ext.ux.HelpTip=function(config){return{tag:'img',src:'images/help.gif',style:config.style,qtip:config.tipText};};CUR.Highlighter=function(config){this.markerHighlight=new CUR.MarkerHighlight({mapLayer:config.markerLayer});this.polyHighlight=new CUR.PolygonHighlight({mapLayer:config.highlightLayer,highlightIds:config.highlightIds});};CUR.Highlighter.prototype={update:function(selected,clearOtherHighlight){if(clearOtherHighlight){this.polyHighlight.update(null);this.markerHighlight.update(null);}
if(selected[0].Extent.MinX===selected[0].Extent.MaxX){this.markerHighlight.update(selected[0]);}else{this.polyHighlight.update(selected);}},createMarker:function(lonlat,clearOtherHighlight){if(clearOtherHighlight){this.polyHighlight.update(null);}
this.markerHighlight.createMarker(lonlat);}};CUR.MarkerHighlight=function(config){this.mapLayer=config.mapLayer;this.marker=null;this.iconSize=new OpenLayers.Size(30,32);this.iconOffset=new OpenLayers.Pixel(-16,-34);this.icon=new OpenLayers.Icon('images/camera5.png',this.iconSize,this.iconOffset);this.icon.imageDiv.title='Click for detailed view.  See Location Report for site-specific info.';this.popup=null;};CUR.MarkerHighlight.prototype={update:function(selected){if(selected!==null){if(selected.XCoord&&selected.YCoord){this.createMarker({lon:selected.XCoord,lat:selected.YCoord});}else{this.createMarker({lon:selected.Extent.MinX,lat:selected.Extent.MinY});}}else{this.mapLayer.setVisibility(false);this.removeMarker();}},createMarker:function(lonlat){if(this.marker===null){this.marker=new OpenLayers.Marker(lonlat,this.icon);this.marker.events.fallThrough=false;this.marker.events.register('mousedown',this,this.markerClicked);this.marker.events.register('mouseup',this,this.markerMouseUp);this.mapLayer.addMarker(this.marker);this.marker.icon.imageDiv.style.cursor='pointer';}
this.marker.lonlat=lonlat;this.marker.display(true);this.mapLayer.setVisibility(true);this.mapLayer.redraw();if(this.popup!==null){if(this.popup.isVisible){this.createPopup();}}},removeMarker:function(){if(this.popup!==null){this.popup.hide();}
if(this.marker!==null){this.marker.display(false);}
this.mapLayer.redraw();},createPopup:function(){if(this.popup==null){this.popup=new OpenLayers.Popup.MapPopup('mapPopup',this.marker.lonlat,null,null,this.icon,true,null);this.popup.autoSize=false;this.mapLayer.map.addPopup(this.popup);this.popup.addTabPanel();}
this.popup.lonlat=this.marker.lonlat;this.popup.updatePosition();this.popup.show();},markerClicked:function(e){if(OpenLayers.Event.isLeftClick(e)){this.createPopup();}
OpenLayers.Event.stop(e);},markerMouseUp:function(e){if(!OpenLayers.Event.isLeftClick(e)){this.removeMarker();}},isVisible:function(){return!(this.marker===null||this.icon.imageDiv.style.display==='none');}};CUR.PolygonHighlight=function(config){this.mapLayer=config.mapLayer;this.restIds=config.highlightIds;this.selected={layer:null,id:null};};CUR.PolygonHighlight.prototype={update:function(selected){if(selected!==null){var type=selected[0].__type.slice(0,selected[0].__type.indexOf(':#'));var restId=this.restIds[type];switch(type){case'CommunityDistrict':this.setNewParams(restId,this.buildLayerDef(restId,'COMMDIST',selected,'Code'));this.selected.layer=type.toLowerCase();this.selected.id=selected[0].Code;break;case'CrpSite':this.setNewParams(restId,this.buildLayerDef(restId,'CRPID',selected,'CrpId'));this.selected.layer=type.toLowerCase();this.selected.id=selected[0].CrpId;break;case'County':this.setNewParams(restId,this.buildLayerDef(restId,'STFIPS',selected,'StFips'));this.selected.layer=type.toLowerCase();this.selected.id=selected[0].StFips;break;case'Garden':this.setNewParams(restId,this.buildLayerDef(restId,'GARDENID',selected,'Id'));this.selected.layer=type.toLowerCase();this.selected.id=selected[0].Id;break;case'StewardshipOrganization':this.setNewParams(restId,this.buildLayerDef(restId,'UNIQUEID',selected,'Id'));this.selected.layer='stewardship';this.selected.id=selected[0].Id;break;case'TaxLot':this.setNewParams(restId,this.buildLayerDef(restId,'BBL',selected,'BBL'));this.selected.layer=type.toLowerCase();this.selected.id=selected[0].BBL;break;case'ZipCode':this.setNewParams(restId,this.buildLayerDef(restId,'ZIP',selected,'Zip'));this.selected.layer='zip';this.selected.id=selected[0].Zip;break;default:break;}}else{this.mapLayer.setVisibility(false);this.selected.layer=null;this.selected.id=null;}},updateFromClick:function(lon,lat,bBox,size){this.mapLayer.mergeNewParams({X1:lon,Y1:lat,BBOX:bBox,SIZE:size,LAYERDEFS:''});this.mapLayer.setVisibility(true);},buildLayerDef:function(restId,field,selected,property){var defString=restId+':';for(var i=0,len=selected.length;i<len;i++){defString+=field+'=\''+selected[i][property]+'\' OR ';}
return defString.substring(0,defString.length-4)+';';},setNewParams:function(layerId,layerDefs){this.mapLayer.params=OpenLayers.Util.extend(this.mapLayer.params,{LAYERS:'show:'+layerId,LAYERDEFS:layerDefs,X1:'',Y1:''});this.mapLayer.setVisibility(true);},isVisible:function(){return(this.mapLayer.getVisibility());}};﻿Ext.ux.HoverSlider=Ext.extend(Ext.BoxComponent,{label:null,slider:null,mapLayers:[],initComponent:function(){Ext.ux.HoverSlider.superclass.initComponent.call(this);},onRender:function(ct,position){if(!this.el){this.el=Ext.DomHelper.append(ct,{tag:'div','class':'transparencyslider',style:'padding-bottom:18px;margin-left:4px;margin-bottom:4px;position:relative;'});this.el.id=this.getId();this.label=Ext.DomHelper.append(this.el,{tag:'div',id:this.el.id+'label',html:'50% Transparent',style:'color:#3e69a2;font-weight: normal; font-size: 1.0em;position: absolute;left: 0px;top:2px;'});this.slider=new Ext.Slider({renderTo:this.el,width:this.width,minValue:0,maxValue:10,increment:1,value:5,plugins:new Ext.ux.SliderTip(),style:'visibility:hidden;position: absolute;left:0px;top:-1px;',listeners:{change:this.setOpacity,scope:this}});Ext.get(this.el).on('mouseover',this.onMouseover,this);Ext.get(this.el).on('mouseout',this.onMouseout,this);}
Ext.ux.HoverSlider.superclass.onRender.call(this,ct,position);},onMouseover:function(){this.slider.el.dom.style.visibility='visible';this.label.style.visibility='hidden';},onMouseout:function(e){if(!e.within(this.el,true)){this.slider.el.dom.style.visibility='hidden';this.label.style.visibility='visible';}},setOpacity:function(slider,newValue){this.label.innerHTML=(newValue*10)+'% Transparent';var opacity=1-(newValue/10);for(var i=0,len=this.mapLayers.length;i<len;i++){this.mapLayers[i].setOpacity(opacity);}},getOpacity:function(){if(this.slider){return 1-(this.slider.getValue()/10);}else{return 0.5;}}});Ext.reg('hoverslider',Ext.ux.HoverSlider);Ext.ux.SliderTip=Ext.extend(Ext.Tip,{minWidth:10,offsets:[0,-10],init:function(slider){slider.on('dragstart',this.onSlide,this);slider.on('drag',this.onSlide,this);slider.on('dragend',this.hide,this);slider.on('destroy',this.destroy,this);},onSlide:function(slider){this.show();this.body.update(this.getText(slider));this.doAutoWidth();this.el.alignTo(slider.thumbs[0].el,'b-t?',this.offsets);},getText:function(slider){return String.format('<b>{0}% transparent</b>',slider.getValue()*10);}});﻿
CUR=window.CUR||{};CUR.LandUseLayers=function(config){var _layers=[];var _maxLayerIndex;var init=function(){createLayer('LandUse2003','http://146.96.129.113/arcgiscache_alt/OASIS_Landuse03/Layers',false);createLayer('LandUse2005','http://146.96.129.113/arcgiscache_alt/OASIS_Landuse05/Layers',false);createLayer('LandUse2007','http://146.96.129.113/arcgiscache_alt/OASIS_Landuse07/Layers',false);createLayer('LandUse2009','http://146.96.129.113/arcgiscache_alt/OASIS_Landuse09/Layers',false);createLayer('LandUse2010','http://146.96.129.113/arcgiscache_alt/OASIS_Landuse10/Layers',false);}
var createLayer=function(name,url,visibility){var tileOrigin=new OpenLayers.LonLat(-120039300,145506800);var maxExtent=new OpenLayers.Bounds(878033.3333332124,98800.00000014536,1304699.999999878656,440133.33333347836);var layer=new OpenLayers.Layer.AgsCache(name,url,{layername:'_allLayers',type:'png',tileOrigin:tileOrigin,maxExtent:maxExtent,transparent:true,isBaseLayer:false,visibility:visibility,buffer:0,opacity:visibility?0.9:0,fadeDuration:250,fadeState:visibility?2:-2,fadeMaxOpacity:0.9});config.map.addLayer(layer);_layers.push(layer);}
init();_maxLayerIndex=_layers[_layers.length-1].map.getLayerIndex(_layers[_layers.length-1]);return{maxLayerIndex:_maxLayerIndex,layers:_layers,activeLayer:_layers[_layers.length-1],opacity:1,getVisibility:function(){return this.activeLayer.getVisibility();},setVisibility:function(visibility){this.activeLayer.setVisibility(visibility);this.activeLayer.fadeState=visibility?2:-2;this.activeLayer.setOpacity(visibility?this.activeLayer.fadeMaxOpacity:0)},setOpacity:function(opacity){this.activeLayer.setOpacity(opacity);for(var i=0,len=this.layers.length;i<len;i++){this.layers[i].fadeMaxOpacity=opacity;}},setActiveLayer:function(index,visibility){if(visibility){var map=this.activeLayer.map;this.layers[index].fadeDuration=(this.activeLayer.fadeMaxOpacity>=0.9)?750:0;map.setLayerZIndex(this.layers[index],this.maxLayerIndex);this.layers[index].fadeIn();this.activeLayer.fadeDuration=(this.activeLayer.fadeMaxOpacity>=0.9)?500:0;map.setLayerZIndex(this.activeLayer,this.maxLayerIndex-1);var intDefer=(this.activeLayer.fadeMaxOpacity>=0.9)?500:0;var lay=this.activeLayer;lay.fadeOut.defer(intDefer,lay);}
this.activeLayer=this.layers[index];},handleUrlParams:function(layerNames){for(var i=0,len=this.layers.length;i<len;i++){if(layerNames.indexOf(this.layers[i].name)>-1){this.setActiveLayer(i,false);this.setVisibility(true);}}},getActiveIndex:function(){return this.layers.indexOf(this.activeLayer);}};};﻿
Ext.ux.LayerDetailsWindow=function(config){var win;var mask=null;var template=CUR.LayerDetailsTemplate();var updateData=function(metadata){if(metadata!==null){win.setTitle('Layer Details for '+metadata.LayerLabel);template.overwrite(win.body,{LayerLabel:metadata.LayerLabel,Logo:metadata.Logo,LegendImage:(function(){if(metadata.LegendColor!==''){return'<div class="legend-color" style="float:none;margin-left:auto;margin-right:auto;background-color:#'+metadata.LegendColor+'"></div>';}else if(metadata.LegendImage!==null){return'<img src="'+metadata.LegendImage+'" />';}else{return;}})(),Year:metadata.Year,Owner:metadata.Owner,Contact:metadata.Contact,Email:metadata.Email,Description:metadata.Description,Url:metadata.Url,Identify:metadata.Identify});}
mask.hide();};var clearLayer=function(theWin){win.setTitle('Layer Details for');win.body.update('');};var setLayer=function(layerName){if(mask==null){mask=new Ext.LoadMask(win.getEl(),{msg:"Loading..."});}
mask.show();CUR.DataAccess.prototype.getLayerMetadataByName(layerName,updateData);};win=new Ext.Window({title:'Layer Details for',width:475,height:380,closeAction:'hide',autoScroll:true,modal:true,constrain:true,listeners:{beforeshow:{fn:clearLayer}},buttonAlign:'center',buttons:[{text:'Close',handler:function(btn,e){win.hide();}}],setLayer:setLayer});return win;};CUR.LayerDetailsTemplate=function(config){return new Ext.Template('<div class="metadata">'+'<div class="head">'+'<a href="{Url}" target="_blank">'+'<img src="{Logo}" />'+'</a>'+'<div>{LayerLabel}</div>'+'{LegendImage}'+'</div>'+'<div class="item"><span class="label">Data Current as of:</span> {Year}</div>'+'<div class="item"><span class="label">Owner/Source:</span> {Owner}</div>'+'<div class="item"><span class="label">Contact:</span> {Contact}</div>'+'<div class="item"><span class="label">Email:</span> {Email}</div>'+'<div class="item"><span class="label">Description:</span> {Description}</div>'+'<div class="item"><span class="label">Download or More Information:</span> <a href="{Url}" target="_blank">{Url}</a></div>'+'<div class="item"><span class="label">Identify Information:</span> {Identify}</div>'+'</div>');}﻿
Ext.ux.Legend=function(config){return new Ext.Panel({title:'Legend',layout:'tdgi_border',items:[Ext.ux.LayerList(),Ext.ux.OverlayPanel()]});};Ext.ux.LayerList=function(config){var layerList;var _queryString=Ext.urlDecode(window.location.search.substring(1));var renderLL=function(el,response,updater,callback){buildLayerList.defer(500,this,[el,response,updater,callback]);};var buildLayerList=function(el,response,updater,callback){var categories=CUR.MapPage.allLayers;var layers;var mainUpdater=CUR.UpdateLayerDelay.getMainDelay();var labelUpdater=CUR.UpdateLayerDelay.getLabelDelay();for(var i=0,len=categories.length;i<len;i++){if(categories[i].Name==='PROPERTY_INFO'){layerList.add(new Ext.ux.LandUseCategory({category:categories[i],scaleDependentLayers:layerList.scaleDependentLayers,checkClickDelay:mainUpdater,checkLabelDelay:labelUpdater}));}else if(categories[i].Name==='TRANSREF'){layerList.add(new Ext.ux.TransRefCategory({category:categories[i],scaleDependentLayers:layerList.scaleDependentLayers,checkClickDelay:mainUpdater,checkLabelDelay:labelUpdater}));}else{layerList.add(new Ext.ux.LayerCategory({category:categories[i],scaleDependentLayers:layerList.scaleDependentLayers,checkClickDelay:mainUpdater,checkLabelDelay:labelUpdater}));}}
layerList.doLayout();layerList.mapScaleChanged(CUR.MapPage.getMapScale());el.unmask();};layerList=new Ext.Panel({id:'layerList',region:'center',cls:'layerlist',listeners:{render:{fn:function(pnl){pnl.body.mask.defer(1,pnl.body,['Loading...','x-mask-loading']);buildLayerList.defer(1000,this,[pnl.body]);}}},tbar:new Ext.Container({autoEl:{tag:'div',style:'border-bottom:solid 3px #E1EAE1;',children:[{tag:'img',src:'images/LAYER_LABEL.gif'},Ext.ux.HelpTip({tipText:'Customize your map by clicking the checkboxes next to each item in the Legend list. Click each section of the Legend to open or hide it. Click each legend item for a description of what it will show on the map and how current it is. The ‘Show All / Hide All’ links add everything in each section to the map at once, or remove them all from the map at once.'})]}}),autoScroll:true,scaleDependentLayers:[],mapScaleChanged:function(newScale){for(var i=0,len=this.scaleDependentLayers.length;i<len;i++){this.scaleDependentLayers[i].mapScaleChanged(newScale);}},getRestIdsToIdentify:function(){var ids='';if(!this.items){var categories=CUR.MapPage.allLayers;var layer;var mapScale=CUR.MapPage.getMapScale();for(var j=0;j<categories.length;j++){for(var k=0;k<categories[j].Layers.length;k++){layer=categories[j].Layers[k];if(layer.RestIdentifyIds!==null&&(layer.Scale.Max>mapScale&&layer.Scale.Min<mapScale)){ids+=','+categories[j].Layers[k].RestIdentifyIds;}}}}else{var catIds='';var cats=this.items.items;for(var i=1,len=cats.length;i<len;i++){catIds=cats[i].getIdentifyIds(CUR.MapPage.getMapScale());if(catIds!==''){ids+=','+catIds;}}}
return ids.substring(1,ids.length);},getLayerNamesThatAreVisible:function(){var names='';if(!this.items){var categories=CUR.MapPage.allLayers;var layer;var mapScale=CUR.MapPage.getMapScale();for(var j=0;j<categories.length;j++){for(var k=0;k<categories[j].Layers.length;k++){layer=categories[j].Layers[k];if(layer.IsVisibleOnLoad&&(layer.Scale.Max>mapScale&&layer.Scale.Min<mapScale)){names+=','+categories[j].Layers[k].Name;}}}}else{var cats=this.items.items;var catNames;for(var i=0,len=cats.length;i<len;i++){catNames=cats[i].getLayerNamesThatAreVisible();if(catNames!=''){names+=','+catNames;}}}
return names.substring(1,names.length);},getExpandedCategories:function(){var expanded=[];var categories;if(!this.items){categories=CUR.MapPage.allLayers;for(var i=0,len=categories.length;i<len;i++){if(categories[i].IsExpandedOnLoad){expanded.push(categories[i].Name);}}}else{categories=this.items.items;for(var i=0,len=categories.length;i<len;i++){if(!categories[i].collapsed){expanded.push(categories[i].category.Name);}}}
return expanded.join(',');},getLayerNameByWmsId:function(wmsId){var categories=CUR.MapPage.allLayers;var layers;for(var i=0,len=categories.length;i<len;i++){layers=categories[i].Layers;for(var j=0,lenj=layers.length;j<lenj;j++){for(var k=0,lenk=layers[j].OpenLayersGroups.length;k<lenk;k++){if(layers[j].OpenLayersGroups[k].WmsIds.indexOf(wmsId)>-1){return layers[j].Name;}}}}}});return layerList;};Ext.ux.LayerCategory=function(config){this.identifiable=[],Ext.apply(this,{title:config.category.Label,cls:' layer-category',collapsedCls:'layer-category-collapsed',collapsible:true,titleCollapse:true,hideCollapseTool:true,collapsed:!config.category.IsExpandedOnLoad,tools:[{id:'show',text:'Show All',handler:this.showAll,scope:this},{id:'hide',text:'Hide All',handler:this.hideAll,scope:this}]});Ext.ux.LayerCategory.superclass.constructor.apply(this,arguments);};Ext.extend(Ext.ux.LayerCategory,Ext.Panel,{category:null,scaleDependentLayers:null,initComponent:function(){Ext.apply(this,{items:this.buildLayers(this.category.IsExpandedOnLoad)});Ext.ux.LayerCategory.superclass.initComponent.apply(this);},toolTemplate:new Ext.XTemplate('<tpl if="id==\'show\' || id==\'hide\'">','<a class="x-tool x-tool-link" href="#">{text}</a>','</tpl>','<tpl if="id!=\'show\' && id!=\'hide\'">','<div class="x-tool x-tool-{id}"> </div>','</tpl>'),getIdentifyIds:function(mapScale){var ids='';var i,len;var layer;if(this.items.length===0){for(i=0,len=this.category.Layers.length;i<len;i++){layer=this.category.Layers[i];if(layer.RestIdentifyIds!==null&&(layer.Scale.Max>mapScale&&layer.Scale.Min<mapScale)){ids+=','+layer.RestIdentifyIds;}}}else{for(i=0,len=this.identifiable.length;i<len;i++){if(this.identifiable[i].shouldBeIdentified()){ids+=','+this.identifiable[i].layer.RestIdentifyIds;}}}
return ids.substring(1,ids.length);},getLayerNamesThatAreVisible:function(){var names='';var i,len;if(this.items.length===0){var layer;for(i=0,len=this.category.Layers.length;i<len;i++){layer=this.category.Layers[i];if(layer.IsVisibleOnLoad){names+=','+layer.Name;}}}else{for(i=0,len=this.items.length;i<len;i++){if(this.items.items[i].isVisibleOnMap()){names+=','+this.items.items[i].getLayerName();}}}
return names.substring(1,names.length);},getWmsIdsByOlGroupName:function(layer,olName){for(var i=0,len=layer.OpenLayersGroups.length;i<len;i++){if(layer.OpenLayersGroups[i].Name==olName){return layer.OpenLayersGroups[i].WmsIds;}}
return null;},showAll:function(e,tool,pnl){if(this.items.length===0){for(var i=0,len=this.category.Layers.length;i<len;i++){this.category.Layers[i].IsVisibleOnLoad=true;var mainWmsIds=this.getWmsIdsByOlGroupName(this.category.Layers[i],'Main');if(mainWmsIds!==null){this.checkClickDelay.updateLayer(mainWmsIds,true);}}}else{for(var i=0,len=pnl.items.length;i<len;i++){if(typeof this.items.get(i).el._mask==='undefined'){this.items.get(i).chkLayer.setValue(true);}}}},hideAll:function(e,tool,pnl){if(this.items.length===0){for(var i=0,len=this.category.Layers.length;i<len;i++){this.category.Layers[i].IsVisibleOnLoad=false;this.category.Layers[i].IsLabeledOnLoad=false;var mainWmsIds=this.getWmsIdsByOlGroupName(this.category.Layers[i],'Main');if(mainWmsIds!==null){this.checkClickDelay.updateLayer(mainWmsIds,false);this.checkLabelDelay.updateLayer(this.getWmsIdsByOlGroupName(this.category.Layers[i],'Label'),false);}}}else{for(var i=0,len=pnl.items.length;i<len;i++){if(typeof this.items.get(i).el._mask==='undefined'){this.items.get(i).chkLayer.setValue(false);if(this.items.get(i).chkLabel!==null){this.items.get(i).chkLabel.setValue(false)};}}}},buildLayers:function(isExpanded){if(isExpanded){var layers=this.category.Layers;var uiLayer
var items=[];for(var i=0,len=layers.length;i<len;i++){uiLayer=new Ext.ux.MainLayer({layer:layers[i],isChecked:layers[i].IsVisibleOnLoad,isLabeled:layers[i].IsLabeledOnLoad,checkClickDelay:this.checkClickDelay,checkLabelDelay:this.checkLabelDelay});items.push(uiLayer);if(layers[i].RestIdentifyIds!==null){this.identifiable.push(uiLayer);}
if(layers[i].Scale.Min>0||layers[i].Scale.Max<2000000){this.scaleDependentLayers.push(uiLayer);uiLayer.mapScaleChanged(CUR.MapPage.getMapScale());}}
return items;}else{return null;}},onExpand:function(){this.getIdentifyIds(CUR.MapPage.getMapScale());if(this.items.length===0){var layers=this.buildLayers(true);for(var i=0,len=layers.length;i<len;i++){this.add(layers[i]);}
this.doLayout();}
Ext.ux.LayerCategory.superclass.onExpand.apply(this,arguments);}});Ext.reg('layercategory',Ext.ux.LayerCategory);Ext.ux.LandUseCategory=Ext.extend(Ext.ux.LayerCategory,{luRadios:[],initComponent:function(){Ext.ux.LandUseCategory.superclass.initComponent.apply(this);},buildLayers:function(isExpanded){if(isExpanded){var layers=this.category.Layers;var uiLayer
var luIsChecked=false;var luRadValue='CACHED';var items=[];for(var i=0,len=layers.length;i<len;i++){if(layers[i].Group==='LandUse'){this.luRadios.push(layers[i]);if(layers[i].IsVisibleOnLoad){luIsChecked=true;if(layers[i].OpenLayersGroups.length>0){luRadValue=layers[i].OpenLayersGroups[0].WmsIds;}}}else if(layers[i].Name==='LOTS'){layers[i].OpenLayersGroups[0].Name='Main';uiLayer=new Ext.ux.CachedLayer({layer:layers[i],isChecked:layers[i].IsVisibleOnLoad,isLabeled:false,olLayer:CUR.MapPage.lotCacheLayer});items.push(uiLayer);if(layers[i].RestIdentifyIds!==null){this.identifiable.push(uiLayer);}
if(layers[i].Scale.Min>0||layers[i].Scale.Max<2000000){this.scaleDependentLayers.push(uiLayer);uiLayer.mapScaleChanged(CUR.MapPage.getMapScale());}}}
var landUseGroup=new Ext.ux.GroupLayer({layers:this.luRadios,isChecked:luIsChecked,checkClickDelay:this.checkClickDelay,radValue:luRadValue,timelineValue:CUR.MapPage.luCacheLayer.getActiveIndex()});items.push(landUseGroup);this.scaleDependentLayers.push(landUseGroup);landUseGroup.mapScaleChanged(CUR.MapPage.getMapScale());return items;}else{return null;}},showAll:function(e,tool,pnl){if(this.items.length===0){for(var i=0,len=this.category.Layers.length;i<len;i++){this.category.Layers[i].IsVisibleOnLoad=true;CUR.MapPage.lotCacheLayer.setVisibility(true);CUR.MapPage.luCacheLayer.setVisibility(true);}}else{for(var i=0,len=pnl.items.length;i<len;i++){if(typeof this.items.get(i).el._mask==='undefined'){this.items.get(i).chkLayer.setValue(true);}}}},hideAll:function(e,tool,pnl){if(this.items.length===0){for(var i=0,len=this.category.Layers.length;i<len;i++){this.category.Layers[i].IsVisibleOnLoad=false;this.category.Layers[i].IsLabeledOnLoad=false;CUR.MapPage.lotCacheLayer.setVisibility(false);CUR.MapPage.luCacheLayer.setVisibility(false);}}else{for(var i=0,len=pnl.items.length;i<len;i++){if(typeof this.items.get(i).el._mask==='undefined'){this.items.get(i).chkLayer.setValue(false);if(this.items.get(i).chkLabel!==null){this.items.get(i).chkLabel.setValue(false)};}}}}});Ext.reg('landusecategory',Ext.ux.LandUseCategory);Ext.ux.TransRefCategory=Ext.extend(Ext.ux.LayerCategory,{luRadios:[],initComponent:function(){Ext.ux.LandUseCategory.superclass.initComponent.apply(this);},buildLayers:function(isExpanded){if(isExpanded){var layers=this.category.Layers;var uiLayer
var items=[];items.push(new Ext.ux.CachedLayer({layer:{LegendColor:'',LegendImage:this.category.Layers[0].LegendImage,IsThematicLayer:this.category.Layers[0].IsThematicLayer,IsVisibleOnLoad:this.category.Layers[0].IsVisibleOnLoad,Name:this.category.Layers[0].Name,Label:this.category.Layers[0].Label,OpenLayersGroups:[{Name:'Main'}]},isChecked:this.category.Layers[0].IsVisibleOnLoad,isLabeled:true,olLayer:CUR.MapPage.transCacheLayer}));items.push(new Ext.ux.CachedLayer({layer:{LegendColor:'',LegendImage:this.category.Layers[1].LegendImage,IsThematicLayer:this.category.Layers[1].IsThematicLayer,IsVisibleOnLoad:this.category.Layers[1].IsVisibleOnLoad,Name:this.category.Layers[1].Name,Label:this.category.Layers[1].Label,OpenLayersGroups:[{Name:'Main'}],Scale:{Max:CUR.MapPage.subwayLayer.minScale+1,Min:CUR.MapPage.subwayLayer.maxScale}},isChecked:this.category.Layers[1].IsVisibleOnLoad,isLabeled:true,olLayer:CUR.MapPage.subwayLayer}));this.scaleDependentLayers.push(items[items.length-1]);items[items.length-1].mapScaleChanged(CUR.MapPage.getMapScale());for(var i=2,len=layers.length;i<len;i++){uiLayer=new Ext.ux.MainLayer({layer:layers[i],isChecked:layers[i].IsVisibleOnLoad,isLabeled:layers[i].IsLabeledOnLoad,checkClickDelay:this.checkClickDelay,checkLabelDelay:this.checkLabelDelay});items.push(uiLayer);if(layers[i].RestIdentifyIds!==null){this.identifiable.push(uiLayer);}
if(layers[i].Scale.Min>0||layers[i].Scale.Max<2000000){this.scaleDependentLayers.push(uiLayer);uiLayer.mapScaleChanged(CUR.MapPage.getMapScale());}}
return items;}else{return null;}},showAll:function(e,tool,pnl){Ext.ux.TransRefCategory.superclass.showAll.apply(this,arguments);if(this.items.length===0){CUR.MapPage.transCacheLayer.setVisibility(true);CUR.MapPage.subwayLayer.setVisibility(true);}},hideAll:function(e,tool,pnl){Ext.ux.TransRefCategory.superclass.hideAll.apply(this,arguments);if(this.items.length===0){CUR.MapPage.transCacheLayer.setVisibility(false);CUR.MapPage.subwayLayer.setVisibility(false);}}});Ext.reg('transrefcategory',Ext.ux.TransRefCategory);Ext.ux.UiLayer=Ext.extend(Ext.Container,{layer:null,chkLayer:null,chkLabel:null,checkClickDelay:null,checkLabelDelay:null,autoEl:'div',style:'overflow:hidden;width:320px;clear:both;margin-bottom:5px;',initComponent:function(){Ext.apply(this,{items:[this.buildChkLayer(),this.buildChkLabel(),this.label()]});Ext.ux.UiLayer.superclass.initComponent.apply(this);},buildChkLayer:function(){var olGroup=this.getOpenLayersGroupByName('Main');if(olGroup!=null){this.chkLayer=new Ext.form.Checkbox({hideLabel:true,boxLabel:null,itemCls:'layer-checkbox',checked:this.isChecked,listeners:{'check':{fn:function(chkBox,checked){this.setFeatureVisibility(checked);},scope:this},'render':{fn:function(chkBox){chkBox.wrap.applyStyles((Ext.isIE?'styleFloat':'cssFloat')+':left;');}}}});return this.chkLayer;}else{return this.chkPlaceHolder();}},buildChkLabel:function(){var olGroup=this.getOpenLayersGroupByName('Label');if(olGroup!=null){this.chkLabel=new Ext.form.Checkbox({hideLabel:true,boxLabel:null,checked:this.isLabeled,listeners:{'check':{fn:function(chkBox,checked){this.setFeatureLabel(checked);},scope:this},'render':{fn:function(chkBox){chkBox.wrap.applyStyles((Ext.isIE?'styleFloat':'cssFloat')+':left;');}}}});return this.chkLabel}else{return this.chkPlaceHolder();}},chkPlaceHolder:function(){return new Ext.Component({autoEl:{tag:'div',style:'width:13px;height:13px;margin-right:2px;float:left;overflow:hidden;'}});},label:function(){var img;if(this.layer.LegendColor!==''){img='<span class="legend-color" style="background-color:#'+this.layer.LegendColor+';" ></span>';}else if(this.layer.LegendImage!==null){img='<img src="'+this.layer.LegendImage+'" style="vertical-align:bottom;" />';}else{img='';}
var kmlLink='';if(this.layer.KmlFile){kmlLink='<a href="'+this.layer.KmlFile+'" class="kmllink" title="KML data (Google Earth)">&nbsp;</a>';}
if(this.layer.IsThematicLayer){return new Ext.Component({autoEl:{tag:'div',style:'float:left;',html:'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(\''+this.getId()+'\',\''+this.layer.Name+'\');return false;">'+this.getLabelText()+'</a><br />'+img}});}else{return new Ext.Component({autoEl:{tag:'div',style:'float:left;margin:0px;width:290px;',html:img+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(\''+this.getId()+'\',\''+this.layer.Name+'\');return false;" >'+this.getLabelText()+'</a>'+kmlLink}});}},getOpenLayersGroupByName:function(name){for(var i=0,len=this.layer.OpenLayersGroups.length;i<len;i++){if(this.layer.OpenLayersGroups[i].Name==name){return this.layer.OpenLayersGroups[i];}}
return null;},mapScaleChanged:function(newScale){if(this.layer.Scale.Max>newScale&&this.layer.Scale.Min<newScale){if(this.disabled){this.enable();}}else{if(!this.disabled){this.disable();}}},onDisable:function(){Ext.ux.UiLayer.superclass.onDisable.apply(this,arguments);this.chkLayer.disable();if(this.chkLabel!==null){this.chkLabel.disable();}},onEnable:function(){Ext.ux.UiLayer.superclass.onEnable.apply(this,arguments);this.chkLayer.enable();if(this.chkLabel!==null){this.chkLabel.enable();}},getWmsIdentifyIds:function(){return this.layer.WmsIdentifyIds},shouldBeIdentified:function(){if(!this.disabled){return true;}
return false;},getLayerName:function(){return this.layer.Name;},isVisibleOnMap:function(){return!this.disabled&&this.chkLayer.checked;},getLayerWmsIds:function(){return this.getOpenLayersGroupByName('Main').WmsIds;},getLabelWmsIds:function(){return this.getOpenLayersGroupByName('Label').WmsIds;},setFeatureVisibility:function(visible){this.checkClickDelay.updateLayer(this.getLayerWmsIds(),visible)},setFeatureLabel:function(visible){this.checkLabelDelay.updateLayer(this.getLabelWmsIds(),visible)},getLabelText:function(){}});Ext.ux.GroupLayer=Ext.extend(Ext.Container,{layers:null,layer:{Name:'ALL_LAND_USE'},radios:null,radName:'radLandUse',radValue:'',chkLayer:null,chkLabel:null,sldTimeline:null,timelineValue:1,checkClickDelay:null,checkLabelDelay:null,autoEl:'div',style:'overflow:auto;width:320px;clear:both;margin-bottom:3px;',initComponent:function(){Ext.apply(this,{items:[this.buildChkLayer(),this.buildRadios()]});Ext.ux.GroupLayer.superclass.initComponent.apply(this);},onRender:function(ct,position){Ext.ux.GroupLayer.superclass.onRender.apply(this,arguments);var layer=this.layer;var layers=this.layers;var radName=this.radName;var that=this;this.dragSource=new Ext.dd.DragSource(this.el,{ddGroup:'myDragGroup',getDragData:function(e){return{layers:layers,layer:layer,radValue:that.radValue,timelineValue:that.sldTimeline.items.items[0].getValue()};},onBeforeDrag:function(data,e){if(e.getTarget().className.indexOf('slider')>-1){return false;}},onStartDrag:function(){that.radios[0].items.get(0).setValue(that.radValue);Ext.get('overlayPanel').addClass('drop-target-active');Ext.getCmp('overlayPanel').theCollapsedEl.addClass('drop-target-active');},endDrag:function(){Ext.get('overlayPanel').removeClass('drop-target-active');Ext.getCmp('overlayPanel').theCollapsedEl.removeClass('drop-target-active');}});},buildChkLayer:function(){this.chkLayer=new Ext.form.Checkbox({xtype:'checkbox',boxLabel:'<span style="padding-left:14px;color:#444444;">Land Use</span>',hideLabel:true,checked:this.isChecked,handler:this.chkCheckedHandler,scope:this});return this.chkLayer;},buildTimeline:function(){this.sldTimeline=new Ext.Container({autoEl:{tag:'div',style:'font-family:Verdana;clear:both;margin:4px 0 6px 5px;padding-bottom:8px;border-bottom:2px solid #BBBBBB;background-image: url(images/landuse-tics.png);width: 174px;background-repeat: repeat-x;background-position:8px 0;'},items:[new Ext.Slider({width:169,value:this.timelineValue,increment:1,minValue:0,maxValue:4,style:'margin-left:8px;',listeners:{changecomplete:{fn:function(slider,newValue,thumb){CUR.MapPage.luCacheLayer.setActiveLayer(newValue,this.chkLayer.checked);},scope:this}}}),new Ext.Component({autoEl:{html:'<div style="width:100%;margin-bottom: 4px;">'+'<span style="left:1px;position:relative;background-color:#ffffff;">2003</span>'+'<span style="left:12px;position:relative;background-color:#ffffff;">2005</span>'+'<span style="left:23px;position:relative;background-color:#ffffff;">2007</span>'+'<span style="left:34px;position:relative;background-color:#ffffff;">2009</span>'+'<span style="left:45px;position:relative;background-color:#ffffff;">2010</span>'+'</div>'}})],setValue:function(value){this.items.items[0].setValue(value,(value===0)?false:true);CUR.MapPage.luCacheLayer.setActiveLayer(value,true);},listeners:{enable:function(cmp){cmp.items.items[0].enable();},disable:function(cmp){cmp.items.items[0].disable();}}});return this.sldTimeline},buildRadios:function(){this.radios=[];for(var i=0,len=this.layers.length;i<len;i++){if(this.layers[i].Name==='ALL_LAND_USE'||this.layers[i].OpenLayersGroups.length>0){this.radios.push(this.buildRadio(this.layers[i]));}}
return{xtype:'container',autoEl:{tag:'div'},style:'padding-left:32px;color:#444444;overflow:hidden;',items:this.radios};},buildRadio:function(layer){var checkHandler=this.radCheckedHandler;var inputValue;var style='width:95%;clear:both;';var img;if(layer.LegendColor!==''){img='<span class="legend-color" style="background-color:#'+layer.LegendColor+';" ></span>';}else if(layer.LegendImage!==''&&layer.LegendImage!==null){img='<img src="'+layer.LegendImage+'" style="float:left;vertical-align:text-bottom;" />';}else{img=''};if(layer.Name==='ALL_LAND_USE'){inputValue="CACHED";}else{inputValue=layer.OpenLayersGroups[0].WmsIds;}
var items=[new Ext.form.Radio({name:this.radName,checked:this.radValue==inputValue?true:false,handler:checkHandler,scope:this,inputValue:inputValue,listeners:{'render':{fn:function(rad){rad.wrap.applyStyles((Ext.isIE?'styleFloat':'cssFloat')+':left;');}}}}),new Ext.Component({autoEl:{tag:'div',style:'float:left;margin-top:0px;padding-bottom:1px;',html:img+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(\''+this.getId()+'\',\''+layer.Name+'\');return false;" ><span ext:qtip="Click for metadata. Drag to make transparent." >'+layer.Label+'</span></a>'}})];if(layer.Name==='ALL_LAND_USE'){items.push(this.buildTimeline());}
return new Ext.Container({autoEl:{tag:'div',style:style},scale:layer.Scale,layerName:layer.Name,items:items});},chkCheckedHandler:function(chk,checked){this.setLayerVisibility(this.radValue,checked);},radCheckedHandler:function(radio,checked){if(checked){this.radValue=radio.inputValue;};if(this.chkLayer.getValue()){this.setLayerVisibility(radio.inputValue,checked);}
if(checked){if(radio.inputValue==='CACHED'){this.sldTimeline.enable();}else{this.sldTimeline.disable();}}},getLayerName:function(){var name='';if(this.radios[0].items.get(0).checked){for(var i=1,len=this.radios.length;i<len;i++){name+=','+this.radios[i].layerName;}}else{for(var i=0,len=this.radios.length;i<len;i++){if(this.radios[i].items.get(0).checked){name=this.radios[i].layerName;}}}
return name.substring(1,name.length);},isVisibleOnMap:function(){return!this.disabled&&this.chkLayer.checked;},setLayerVisibility:function(value,visible){if(value==='CACHED'){CUR.MapPage.luCacheLayer.setVisibility(visible);}else{this.checkClickDelay.updateLayer(value,visible);}},setFeatureVisibility:function(visible){this.setLayerVisibility(this.radValue,visible);},mapScaleChanged:function(newScale){for(var i=0,len=this.radios.length;i<len;i++){if(this.radios[i].scale.Max>newScale&&this.radios[i].scale.Min<newScale){if(this.radios[i].disabled){this.radios[i].enable();this.radios[i].items.get(0).enable();}}else{if(!this.radios[i].disabled){this.radios[i].disable();this.radios[i].items.get(0).disable();}}}},addedToOverlay:function(){this.setFeatureVisibility(false);this.el.highlight('#c3daf9',{attr:'background-color',duration:1});this.el.mask('In transparency','in-overlay-mask');},removedFromOverlay:function(visible,labeled,timelineValue){if(this.chkLayer.getValue()!==visible){this.chkLayer.setValue(visible);}else{this.setFeatureVisibility(visible);}
this.sldTimeline.items.items[0].setValue(timelineValue,false);this.el.highlight('#c3daf9',{attr:'background-color',duration:1});this.el.unmask();}});Ext.ux.GroupOverlayLayer=Ext.extend(Ext.ux.GroupLayer,{twinEl:'',twinLayer:null,radName:'radLandUseOv',initComponent:function(){Ext.ux.GroupOverlayLayer.superclass.initComponent.apply(this);this.twinLayer=Ext.getCmp(this.twinEl);this.twinLayer.addedToOverlay();this.setLayerVisibility(this.radValue,true)
var overlay=this;this.items.insert(0,new Ext.Component({autoEl:{tag:'img',src:'images/overlay-remove.gif',style:'float:right;margin-right:100px;cursor:pointer;'},listeners:{render:function(c){c.getEl().on('click',function(){this.ownerCt.removeLayer(this);},overlay);}}}));}});Ext.ux.MainLayer=Ext.extend(Ext.ux.UiLayer,{onRender:function(ct,position){Ext.ux.MainLayer.superclass.onRender.apply(this,arguments);var layer=this.layer;var chk;chk=this.chkLabel;this.dragSource=new Ext.dd.DragSource(this.el,{ddGroup:'myDragGroup',getDragData:function(e){var isLabeled=false;if(chk!==null){isLabeled=chk.getValue();}
return{layer:layer,isLabeled:isLabeled};},onStartDrag:function(){Ext.get('overlayPanel').addClass('drop-target-active');Ext.getCmp('overlayPanel').theCollapsedEl.addClass('drop-target-active');},endDrag:function(){Ext.get('overlayPanel').removeClass('drop-target-active');Ext.getCmp('overlayPanel').theCollapsedEl.removeClass('drop-target-active');}});},getLabelText:function(){return'<span ext:qtip="Click for metadata. Drag to make transparent." >'+this.layer.Label+'</span>'},addedToOverlay:function(){this.setFeatureVisibility(false);this.el.highlight('#c3daf9',{attr:'background-color',duration:1});this.el.mask('In transparency','in-overlay-mask');},removedFromOverlay:function(visible,labeled){if(this.chkLayer.getValue()!==visible){this.chkLayer.setValue(visible);}else{this.setFeatureVisibility(visible);}
if(this.chkLabel!==null){this.chkLabel.setValue(labeled);}
this.el.highlight('#c3daf9',{attr:'background-color',duration:1});this.el.unmask();}});Ext.reg('mainlayer',Ext.ux.MainLayer);Ext.ux.OverlayLayer=Ext.extend(Ext.ux.UiLayer,{twinEl:'',twinLayer:null,initComponent:function(){this.twinLayer=Ext.getCmp(this.twinEl);Ext.ux.OverlayLayer.superclass.initComponent.apply(this);this.setFeatureVisibility(true);this.twinLayer.addedToOverlay();var overlay=this;this.items.add(new Ext.Component({autoEl:{tag:'img',src:'images/overlay-remove.gif',style:'cursor:pointer;'},listeners:{render:function(c){c.getEl().on('click',function(){this.ownerCt.removeLayer(this);},overlay);}}}));},getLabelText:function(){return'<span>'+this.layer.Label+'</span>'}});Ext.ux.CachedLayer=Ext.extend(Ext.ux.UiLayer,{setFeatureVisibility:function(visible){this.olLayer.setVisibility(visible);},getLabelText:function(){return'<span>'+this.layer.Label+'</span>'}});Ext.ux.OverlayPanel=function(config){return new Ext.Panel({title:'Transparency Control',region:'south',id:'overlayPanel',cls:'overlay-panel',floatable:false,autoScroll:true,collapsedTitle:true,collapsible:true,titleCollapse:true,collapsed:true,height:210,layout:'form',cmargins:'5 0 0 0',margins:'5 0 0 0',tools:[{id:'help',qtip:'Drag layers here.'}],listeners:{render:{fn:function(panel){this.overlayLayerList=Ext.getCmp('overlayLayerList');this.body.dropZone=new Ext.dd.DropTarget(this.el,{ddGroup:'myDragGroup',overClass:'drop-target-over',notifyDrop:function(ds,e,data){Ext.fly(this.getEl()).removeClass('drop-target-over');panel.overlayLayerList.addLayer(ds,data);return true;}});}},collapse:{fn:function(panel){if(typeof this.theCollapsedEl=='undefined'){this.theCollapsedEl=Ext.get('overlayPanel-xcollapsed');var theCollapsedEl=this.theCollapsedEl;new Ext.dd.DropTarget(this.theCollapsedEl,{ddGroup:'myDragGroup',overClass:'drop-target-over',notifyEnter:function(ds,e,data){theCollapsedEl.removeClass('drop-target-active');theCollapsedEl.addClass('drop-target-over');return'drop-target-over';},notifyOut:function(ds,e,data){theCollapsedEl.removeClass('drop-target-over');theCollapsedEl.addClass('drop-target-active');},notifyDrop:function(ds,e,data){panel.expand();theCollapsedEl.removeClass('drop-target-over');panel.overlayLayerList.addLayer(ds,data);return true;}});}}}},items:[{xtype:'hoverslider',id:'overlayTransSlider',value:5,width:150},{xtype:'panel',id:'overlayLayerList',cls:'overlay-layerlist',scaleDependentLayers:[],identifiableLayers:[],mapScaleChanged:function(newScale){for(var i=0,len=this.scaleDependentLayers.length;i<len;i++){this.scaleDependentLayers[i].mapScaleChanged(newScale);}},addLayer:function(ds,data){if(this.items.length===0||this.items.findIndexBy(function(object,key){if(object.layer.Name==data.layer.Name){return true;}})==-1){var overlayUpdater=CUR.UpdateLayerDelay.getOverlayDelay();var labelUpdater=CUR.UpdateLayerDelay.getLabelDelay();var uiLayer;if(data.layers){this.ownerCt.setMapLayer(CUR.MapPage.luCacheLayer);uiLayer=new Ext.ux.GroupOverlayLayer({layers:data.layers,twinEl:ds.el.id,isChecked:true,checkClickDelay:overlayUpdater,checkLabelDelay:labelUpdater,radValue:data.radValue,timelineValue:data.timelineValue});this.add(uiLayer);this.scaleDependentLayers.push(uiLayer);}else{uiLayer=new Ext.ux.OverlayLayer({layer:data.layer,twinEl:ds.el.id,isChecked:true,isLabeled:data.isLabeled,checkClickDelay:overlayUpdater,checkLabelDelay:labelUpdater});this.add(uiLayer);if(uiLayer.layer.Scale.Min>0||uiLayer.layer.Scale.Max<2000000){this.scaleDependentLayers.push(uiLayer);}
if(uiLayer.layer.WmsIdentifyIds!==null){this.identifiableLayers.push(uiLayer);}}
this.doLayout();this.mapScaleChanged(CUR.MapPage.getMapScale());return true;}},removeLayer:function(ovLayer){ovLayer.setFeatureVisibility(false);var isLabeled=false;if(ovLayer.chkLabel!==null){isLabeled=ovLayer.chkLabel.getValue();}
if(ovLayer.layers){CUR.MapPage.luCacheLayer.setOpacity(.9);this.ownerCt.removeMapLayer(CUR.MapPage.luCacheLayer);ovLayer.twinLayer.removedFromOverlay(ovLayer.chkLayer.getValue(),null,ovLayer.sldTimeline.items.items[0].getValue());}else{ovLayer.twinLayer.removedFromOverlay(ovLayer.chkLayer.getValue(),isLabeled);}
this.scaleDependentLayers.remove(ovLayer);this.identifiableLayers.remove(ovLayer);this.remove(ovLayer);}}],mapScaleChanged:function(newScale){this.items.items[1].mapScaleChanged(newScale);},setMapLayer:function(layer){var slider=Ext.getCmp('overlayTransSlider');slider.mapLayers.push(layer);layer.setOpacity(slider.getOpacity());layer.isInTransControl=true;},removeMapLayer:function(layer){var slider=Ext.getCmp('overlayTransSlider');slider.mapLayers.remove(layer);layer.isInTransControl=false;}});};﻿
Ext.ux.LinkWindow=function(config){var atTitle='OASIS Map';var atPub='cunycur';var addAddThisJs=function(){addthis_exclude='print';addthis_share={title:atTitle,templates:{twitter:'check out {{url}} via @oasisnycmaps'}};var element=document.createElement("script");element.src='http://s7.addthis.com/js/250/addthis_widget.js?pub='+atPub+'&domready=1';element.type='text/javascript';document.body.appendChild(element);};addAddThisJs();var win;var addThisToolBox=null;var setLinkUrl=function(){if(addThisToolBox===null){addThisToolBox=Ext.getCmp('addThisToolBox');}
var params=[];var url;params['zoom']=win.map.getZoom();var center=win.map.getCenter();params['x']=Math.round(center.lon*100)/100;params['y']=Math.round(center.lat*100)/100;var tPanel=win.layerList.ownerCt.ownerCt;params['etabs']=tPanel.items.indexOf(tPanel.getActiveTab());params['categories']=win.layerList.getExpandedCategories()
params['mainlayers']=layerNamesFromOlLayer(win.map.mainLayer);if(win.map.transCacheLayer.getVisibility()){params['mainlayers']+=','+win.map.transCacheLayer.name;}
if(win.map.subwayLayer.getVisibility()){params['mainlayers']+=','+win.map.subwayLayer.name;}
if(win.map.lotCacheLayer.getVisibility()){params['mainlayers']+=','+win.map.lotCacheLayer.name;}
if(win.map.luCacheLayer.getVisibility()){params['mainlayers']+=','+win.map.luCacheLayer.activeLayer.name;}
params['labellayers']=layerNamesFromOlLayer(win.map.labelLayer);params['satellite']=win.satelliteWin.getActiveAerial().name;if(win.map.highlighter.markerHighlight.isVisible()){params['marker']=win.map.highlighter.markerHighlight.marker.lonlat.lon+','+win.map.highlighter.markerHighlight.marker.lonlat.lat;}
if(win.map.highlighter.polyHighlight.isVisible()){params['query']=win.map.highlighter.polyHighlight.selected.layer;params['queryid']=win.map.highlighter.polyHighlight.selected.id;}
var fusionId=Ext.getCmp('fusionTables').getTableId();if(fusionId){params['fusionid']=fusionId;}
url=location.href.split('?')[0];url=url.split('#')[0];url=url+'?'+OpenLayers.Util.getParameterString(params);addthis_share.url=url;addthis_share={'url':url};addThisToolBox.updateUrl(url);textField.setValue(url);};var layerNamesFromOlLayer=function(olLayer){var wmsLayers=olLayer.params.LAYERS.split(',');var layers=[];var layer;for(var i=0,len=wmsLayers.length;i<len;i++){layer=win.layerList.getLayerNameByWmsId(wmsLayers[i]);if(layers.indexOf(layer)===-1){layers.push(layer);}}
return layers.join(',');}
var textField=new Ext.form.TextField({fieldLabel:'Copy the link below so you can email it, IM it, or add it to your website.',selectOnFocus:true,anchor:'99%'});var documentClick=function(e){if(!e.within(win.getEl())&&!e.within(config.link)){win.hide(null);}}
win=new Ext.Window({id:'linkWindow',renderTo:document.body,width:550,title:'Link to this map',resizable:false,layout:'form',labelAlign:'top',items:[textField,{xtype:'label',style:'font-weight:bold;font-size:1em;display:block;text-align:center;margin-left:auto;margin-right:auto;',text:'OR'},{xtype:'label',style:'display:block;margin-bottom:2px;margin-top:10px;padding:0 0 0 14px;',text:'Share what you\'ve found with the rest of the world...'},Ext.ux.AddThis({title:atTitle,pub:atPub})],closeAction:'hide',draggable:false,listeners:{show:{fn:function(win){textField.getEl().on('click',function(tField,e){textField.selectText();});textField.focus(true);setLinkUrl();Ext.getDoc().on('mouseup',documentClick);window.addthis.toolbox('#addThisToolBox');}},hide:{fn:function(win){Ext.getDoc().un('mouseup',documentClick);}}},layerList:config.layerList,map:config.map,satelliteWin:config.satelliteWin});return win;};Ext.ux.AddThis=function(config){var toolBox;var updateUrl=function(url){toolBox.el.set({'addthis:url':url});};toolBox=new Ext.Container({id:'addThisToolBox',autoEl:{tag:'div',style:'padding-bottom:4px;','class':'addthis_toolbox','addthis:url':'',html:'<div class="columns">'+'<div class="column">'+'<a class="addthis_button_bitly">Bit.ly</a>'+'<a class="addthis_button_digg">Digg</a>'+'</div>'+'<div class="column">'+'<a class="addthis_button_facebook">Facebook</a>'+'<a class="addthis_button_instapaper">Instapaper</a>'+'</div>'+'<div class="column">'+'<a class="addthis_button_linkedin">LinkedIn</a>'+'<a class="addthis_button_tumblr">Tumblr</a>'+'</div>'+'<div class="column">'+'<a class="addthis_button_twitter">Twitter</a>'+'<a id="atButton" class="addthis_button_expanded">More...</a>'+'</div>'+'</div>'},updateUrl:updateUrl});return toolBox;};OpenLayers.Control.LoadingPanel=OpenLayers.Class(OpenLayers.Control,{counter:0,maximized:false,visible:true,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,[options]);},setVisible:function(visible){this.visible=visible;if(visible){OpenLayers.Element.show(this.div);}else{OpenLayers.Element.hide(this.div);}},getVisible:function(){return this.visible;},hide:function(){this.setVisible(false);},show:function(){this.setVisible(true);},toggle:function(){this.setVisible(!this.getVisible());},addLayer:function(evt){if(evt.layer){evt.layer.events.register('loadstart',this,this.increaseCounter);evt.layer.events.register('loadend',this,this.decreaseCounter);}},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);this.map.events.register('preaddlayer',this,this.addLayer);for(var i=0;i<this.map.layers.length;i++){var layer=this.map.layers[i];if(layer.CLASS_NAME!='OpenLayers.Layer.AgsCache'){layer.events.register('loadstart',this,this.increaseCounter);layer.events.register('loadend',this,this.decreaseCounter);}}},increaseCounter:function(){this.counter++;if(this.counter>0){if(!this.maximized&&this.visible){this.maximizeControl();}}},decreaseCounter:function(){if(this.counter>0){this.counter--;}
if(this.counter==0){if(this.maximized&&this.visible){this.minimizeControl();}}},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);return this.div;},minimizeControl:function(evt){this.div.style.display="none";this.maximized=false;if(evt!=null){OpenLayers.Event.stop(evt);}},maximizeControl:function(evt){this.div.style.display="block";this.maximized=true;if(evt!=null){OpenLayers.Event.stop(evt);}},destroy:function(){if(this.map){this.map.events.unregister('preaddlayer',this,this.addLayer);if(this.map.layers){for(var i=0;i<this.map.layers.length;i++){var layer=this.map.layers[i];layer.events.unregister('loadstart',this,this.increaseCounter);layer.events.unregister('loadend',this,this.decreaseCounter);}}}
OpenLayers.Control.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.LoadingPanel"});﻿CUR=window.CUR||{};Ext.ux.LocationReport=function(config){var panel;var updateData=function(featuresLists){if(!panel.rendered){var act=panel.ownerCt.getActiveTab();panel.ownerCt.setActiveTab(1);panel.ownerCt.setActiveTab(act);}
var featureCount=0;if(featuresLists!=null){if(featuresLists.length>0){for(var j=0;j<featuresLists.length;j++){featureCount+=featuresLists[j].length;}
panel.setTitle('Location Report <b>('+featureCount+')</b>');}
var panels=panel.findByType('featuregroup');for(var i=0,len=panels.length;i<len;i++){panels[i].updateData(featuresLists);}
if(typeof pageTracker!='undefined'){}}
this.toggleLoadMask(false);};panel=new Ext.Panel({title:'Location Report',id:'locationReport',style:'font-family:Verdana;',autoScroll:true,listeners:{render:{fn:function(pnl){this.doLayout();pnl.tabHeader=Ext.get(panel.ownerCt.getTabEl(1));pnl.items.get(0).items.get(0).updateData([]);}},resize:{fn:function(pnl,adjWidth,adjHeight,rawWidth,rawHeight){}}},items:[{xtype:'featuregroup',title:'OASIS Featured Layers',items:[new Ext.ux.NullFeatureType({label:null,dataTemplate:CUR.IdentifyNullTemplate(),featureType:null}),new Ext.ux.FeatureType({label:'Property Information',dataTemplate:CUR.IdentifyLotTemplate(),featureType:'TaxLot'}),new Ext.ux.FeatureType({label:'Mannahatta',dataTemplate:CUR.IdentifyMannahattaTemplate(),featureType:'MannahattaBlock'}),new Ext.ux.FeatureType({label:'Stewards',dataTemplate:CUR.IdentifyStewardshipOrgTemplate(),featureType:'StewardshipOrganization',buttons:[new Ext.Component({autoEl:{tag:'span',html:'<a href="stewardship/stewardshipsearch.aspx?searchby=regional">Stewards with large turfs (not mapped)</a>'}})]}),new Ext.ux.FeatureType({label:'Waterfront Access',dataTemplate:CUR.IdentifyWaterfrontAccessTemplate(),featureType:'WaterfrontAccess'}),new Ext.ux.FeatureType({label:'Comprehensive Restoration Plan',dataTemplate:CUR.IdentifyCrpSiteTemplate(),featureType:'CrpSite'}),new Ext.ux.FeatureType({label:'Community Garden',dataTemplate:CUR.IdentifyGardenTemplate(),featureType:'Garden'}),new Ext.ux.FeatureType({label:'School',dataTemplate:CUR.IdentifySchoolTemplate(),featureType:'School'}),new Ext.ux.FeatureType({label:'Library',dataTemplate:CUR.IdentifyLibraryTemplate(),featureType:'Library'}),new Ext.ux.FeatureType({label:'Living Memorials',dataTemplate:CUR.IdentifyLivingMemorialTemplate(),featureType:'LivingMemorial'}),new Ext.ux.FeatureType({label:'All Parks',dataTemplate:CUR.IdentifyParkTemplate(),featureType:'Park'}),new Ext.ux.FeatureType({label:'Outside NYC',dataTemplate:CUR.IdentifyOutsideNycTemplate(),featureType:'OutsideNycLink'}),new Ext.ux.FeatureType({label:'Community District',dataTemplate:CUR.IdentifyCommDistTemplate(),featureType:'CommunityDistrict'}),new Ext.ux.FeatureType({label:'Political Districts',dataTemplate:CUR.IdentifyPoliticalDistrictTemplate(),featureType:'PoliticalDistrict'})]}],updateData:updateData,tabHeader:null,toggleLoadMask:function(showMask){if(panel.tabHeader===null){panel.tabHeader=Ext.get(panel.ownerCt.getTabEl(1));}
if(showMask){if(panel.body){panel.el.mask('Loading...');}
panel.setTitle('Location Report');panel.tabHeader.addClass('show-loading-tab');}else{if(panel.body){panel.el.unmask();}
panel.tabHeader.removeClass('show-loading-tab');}}});return panel;};Ext.ux.FeatureGroup=function(config){this.dataTemplate=config.dataTemplate;Ext.apply(this,{header:false,collapsible:false,titleCollapse:true,hideCollapseTool:true,cls:'feature-group'});Ext.ux.FeatureGroup.superclass.constructor.apply(this,arguments);};Ext.extend(Ext.ux.FeatureGroup,Ext.Panel,{updateData:function(featuresLists){var panels=this.findByType('featuretype');for(var i=0,len=panels.length;i<len;i++){panels[i].updateData(featuresLists);}}});Ext.reg('featuregroup',Ext.ux.FeatureGroup);Ext.ux.FeatureType=function(config){this.dataTemplate=config.dataTemplate;this.featureType=null;Ext.apply(this,{title:config.label,collapsible:true,cls:'feature-type',collapsedCls:'feature-type-collapsed',titleCollapse:true,hideCollapseTool:true,hidden:true});Ext.ux.FeatureType.superclass.constructor.apply(this,arguments);};Ext.extend(Ext.ux.FeatureType,Ext.Panel,{updateData:function(featuresLists){if(this.dataTemplate!=null){var features=this.extractMyFeaturesByType(featuresLists);if(features!==null){this.setTitle(this.label+' ('+features.length+')');this.dataTemplate.updateData(features,this);this.show();}else{this.hide();}}},extractMyFeaturesByType:function(featuresLists){for(var i=0,len=featuresLists.length;i<len;i++){if(featuresLists[i][0].__type.indexOf(this.featureType)>-1){return featuresLists[i];}}
return null;}});Ext.reg('featuretype',Ext.ux.FeatureType);Ext.ux.NullFeatureType=Ext.extend(Ext.ux.FeatureType,{updateData:function(featuresLists){if(this.dataTemplate!=null){if(featuresLists.length===0){this.dataTemplate.updateData(null,this);this.show();}else{this.hide();}}}});Ext.reg('featuretype',Ext.ux.NullFeatureType);CUR.Templates={map:{},getTemplate:function(url,callback){if(this.map[url]===undefined){Ext.Ajax.request({url:url,success:function(xhr){var text=xhr.responseText;var template=new Ext.XTemplate(text.slice(text.indexOf('>',text.indexOf('<body'))+1,text.indexOf('</body>')));template.compile();this.map[url]=template;callback(template);},scope:this});}else{callback(this.map[url]);}}};CUR.IdentifyLotTemplate=function(){CUR.IdentifyLotTemplate.isHistVis=false;CUR.IdentifyLotTemplate.toggleHistLu=function(el){this.isHistVis=!el.isVisible();el.setDisplayed(this.isHistVis);};CUR.IdentifyLotTemplate.goToNycFF=function(address,borough,radius){window.open('http://gis.nyc.gov/dcp/pa/Map?hseNumber=&address='+address+'&borough='+borough+'&event=PROCESS_TRACT&sltdMBuffer='+radius+'&entry=1&smind=MULTI','nycff');};var template;var url=location.href.split('?')[0];url=url.split('#')[0]+'?zoomto=lot:';template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/taxlot.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Borough:features[i].Borough,BoroughName:features[i].BoroughName,Block:features[i].Block,Lot:features[i].Lot,Address:features[i].Address,AddressPluto:features[i].AddressPluto,DisplayAlternate:(function(addressEntered){return addressEntered===null?'none':'block';})(features[i].AddressEntered),ZipCode:features[i].ZipCode,Area:features[i].Area.addCommas(),LotFront:features[i].LotFront,LotDepth:features[i].LotDepth,NumBuildings:features[i].NumBuildings,YearBuilt:features[i].YearBuilt,BuiltCode:(function(){if(features[i].BuiltCode==='E'){return'(Year built is an estimate)';}else{return'';}})(),NumFloors:features[i].NumFloors,BuildingArea:features[i].BuildingArea.addCommas(),UnitsResidential:features[i].UnitsResidential,UnitsTotal:features[i].UnitsTotal,LandUse:features[i].LandUse,LandUseColor:features[i].LandUseColor,Zoning:features[i].Zoning,CommercialOverlay:features[i].CommercialOverlay,ZoningMap:features[i].ZoningMap,ZoningMapLink:features[i].ZoningMapLink,FloorAreaRatio:features[i].FloorAreaRatio,MaxFloorAreaRatio:features[i].MaxFloorAreaRatio,OwnerName:features[i].OwnerName,BisLink:features[i].BisLink,AcrisLink:features[i].AcrisLink,DofLink:features[i].DofLink,DigitalTaxMapLink:features[i].DigitalTaxMapLink,OasisShortcut:url+features[i].BBL,YahooLocal:(function(yahooLocal){var str='';if(yahooLocal!==null){for(var j=0,lenJ=yahooLocal.length;j<lenJ;j++){str+='<div><a href="'+yahooLocal[j].Url+'" target="newWin">'+yahooLocal[j].Title+'</a></div>';}}
return str;})(features[i].YahooLocal)});}});};return template;};CUR.IdentifyCommDistTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/communitydistrict.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{BoardFull:features[i].BoardFull,Chairperson:features[i].Chairperson,DistrictManager:features[i].DistrictManager,Address:features[i].Address,City:features[i].City,State:features[i].State,ZipCode:features[i].ZipCode,Phone:features[i].Phone,Email:features[i].Email,Website:features[i].Website,MeetingLocation:features[i].MeetingLocation,DcpProfile:features[i].DcpProfile});}});};return template;};CUR.IdentifyGardenTemplate=function(){var url=location.href.split('?')[0];url=url.split('#')[0]+'?zoomto=garden:';var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/garden.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Id:features[i].Id,Name:features[i].Name,Address:features[i].Address,CrossStreets:features[i].CrossStreets,NeighborhoodArea:features[i].NeighborhoodArea,Type:features[i].Type,YearFounded:features[i].YearFounded,OasisShortcut:url+features[i].Id,SettlementDecision:features[i].SettlementDecision});}});};return template;};CUR.IdentifyWaterfrontAccessTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/waterfrontaccess.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Name:features[i].Name,Waterbody:features[i].Waterbody,MainUse:features[i].MainUse,OtherUses:features[i].OtherUses,Website:features[i].Website});}});};return template;};CUR.IdentifyStewardshipOrgTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/stewardshiporganization.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{OrgName:features[i].OrgName,Id:features[i].Id});}});};return template;};CUR.IdentifyCrpSiteTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/crpsite.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Name:features[i].Name,CrpId:features[i].CrpId,Watershed:features[i].Watershed,LandOwnership:features[i].LandOwnership,Municipality:features[i].Municipality,Acreage:features[i].Acreage});}});};return template;};CUR.IdentifySchoolTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/school.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Name:features[i].Name,Address:features[i].Address,Type:features[i].Type,EnrollTotal:features[i].EnrollTotal});}});};return template;};CUR.IdentifyLivingMemorialTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/livingmemorial.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Name:features[i].Name,Address:features[i].Address,Link:features[i].Link});}});};return template;};CUR.IdentifyParkTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/park.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Name:features[i].Name,Url:features[i].Url});}});};return template;};CUR.IdentifyPoliticalDistrictTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/politicaldistrict.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Type:features[i].Type,Name:features[i].Name,Url:features[i].Url});}});};return template;};CUR.IdentifyLibraryTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/library.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Name:features[i].Name,Address:features[i].Address});}});};return template;};CUR.IdentifyMannahattaTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/mannahattablock.htm',function(tpl){var center=CUR.MapPage.getMapCenter();var ll=CUR.convertSPToLL(center.lon,center.lat);for(var i=0,len=features.length;i<len;i++){url=tpl.append(panel.body,{Name:features[i].Name,Url:'?sll='+ll.lat+','+ll.lon+'&z='+features[i].Zoom+'&bid='+features[i].Bid});}});};return template;};CUR.IdentifyOutsideNycTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/outsidenyclink.htm',function(tpl){for(var i=0,len=features.length;i<len;i++){tpl.append(panel.body,{Region:features[i].Region,Url:features[i].Url});}});};return template;};CUR.IdentifyNullTemplate=function(){var template;template={};template.updateData=function(features,panel){panel.body.update();CUR.Templates.getTemplate('identifytemplates/norecordsfound.htm',function(tpl){tpl.append(panel.body,{});});};return template;};﻿
CUR=window.CUR||{};CUR.Map=function(config){OpenLayers.ImgPath='images/openlayers/';OpenLayers.DOTS_PER_INCH=96;var _overviewIds=config.overviewIds;var map;var maxExtent=new OpenLayers.Bounds(622033.333333212672,-71866.666666521088,1304699.999999878656,440133.3333334784);var projection="EPSG:2263";var maxResolution="auto";var units="ft";var mapOptions={controls:[],maxExtent:maxExtent,projection:projection,units:units,resolutions:new Array(333.333333333333,166.666666666667,83.3333333333333,41.6666666666667,20.8333333333333,10.4166666666667,5.20833333333333,2.60416666666667,1.30208333333333),restrictedExtent:new OpenLayers.Bounds(707250,11250,1272750,388750),allOverlays:true};var addAerialLayers=function(map){var aerialLayers=[];var maxResolution=41.6666666666667;var minResolution=1.30208333333333;var aerialLayer0=new OpenLayers.Layer.AgsCache("1609",CUR.Urls.getLocalCacheUrl1('OASIS_Aerials1609'),{layername:'_allLayers',type:'jpg',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),transparent:true,isBaseLayer:false,visibility:false,buffer:0,opacity:0});map.addLayer(aerialLayer0);aerialLayers.push(aerialLayer0);var aerialLayer1=new OpenLayers.Layer.AgsCache('1996',CUR.Urls.getLocalCacheUrl1('OASIS_Aerials96'),{layername:'_allLayers',type:'jpg',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),transparent:true,isBaseLayer:false,visibility:false,buffer:0,opacity:0});map.addLayer(aerialLayer1);aerialLayers.push(aerialLayer1);var aerialLayer3=new OpenLayers.Layer.AgsCache('2004',CUR.Urls.getLocalCacheUrl1('OASIS_Aerials04'),{layername:'_allLayers',type:'jpg',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),maxExtent:new OpenLayers.Bounds(622033.333333212672,-71866.666666521088,1304699.999999878656,440133.3333334784),transparent:true,isBaseLayer:false,visibility:false,buffer:0,opacity:0});map.addLayer(aerialLayer3);aerialLayers.push(aerialLayer3);var aerialLayer4=new OpenLayers.Layer.ArcGIS93RestFadable('2006',CUR.Urls.getStateAerialUrl('2006'),{layers:'0',format:'jpg',transparent:false},{buffer:0,isBaseLayer:false,visibility:false,opacity:0,maxExtent:new OpenLayers.Bounds(878033.3333332124,98800.00000014536,1304699.999999878656,440133.33333347836)});map.addLayer(aerialLayer4);aerialLayers.push(aerialLayer4);var aerialLayer5=new OpenLayers.Layer.ArcGIS93RestFadable('2008',CUR.Urls.getStateAerialUrl('2008'),{layers:'0',format:'jpg',transparent:false},{buffer:0,isBaseLayer:false,visibility:false,opacity:0,maxExtent:new OpenLayers.Bounds(878033.3333332124,98800.00000014536,1304699.999999878656,440133.33333347836)});map.addLayer(aerialLayer5);aerialLayers.push(aerialLayer5);var aerialLayer6=new OpenLayers.Layer.ArcGIS93RestFadable('2010',CUR.Urls.getStateAerialUrl('2010'),{layers:'0',format:'jpg',transparent:false},{buffer:0,isBaseLayer:false,visibility:false,opacity:0,maxExtent:new OpenLayers.Bounds(878033.3333332124,98800.00000014536,1304699.999999878656,440133.33333347836)});map.addLayer(aerialLayer6);aerialLayers.push(aerialLayer6);map.aerialLayers=aerialLayers;var cacheLayer3=new OpenLayers.Layer.AgsCache('BaseCache',CUR.Urls.getLocalCacheUrl1('OASIS_BaseCache'),{layername:'_allLayers',type:'png',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),transparent:true,isBaseLayer:false,visibility:false,buffer:0,opacity:0});aerialLayers.push(cacheLayer3);map.addLayer(cacheLayer3);map.initialAerial=aerialLayers[aerialLayers.length-1];};var addLayers=function(){var highlightLayer=new OpenLayers.Layer.ArcGIS93Rest("Highlight",'highlightimage.ashx',{layers:'',format:'png8',transparent:true},{opacity:0.8,singleTile:true,buffer:0,gutter:0,isBaseLayer:false,visibility:false});map.addLayer(highlightLayer);map.highlightLayer=highlightLayer;addAerialLayers(map);map.luCacheLayer=CUR.LandUseLayers({map:map});var mainLayer=new OpenLayers.Layer.WMS("Main",CUR.Urls.getLocalWmsUrl2('OASISMap'),{layers:config.mainIds,format:'image/gif',transparent:true},{singleTile:false,buffer:0,gutter:0,isBaseLayer:false,visibility:(config.mainIds.length>0)?true:false,opacity:0.85});map.addLayer(mainLayer);map.mainLayer=mainLayer;var lotLayer=new OpenLayers.Layer.AgsCache('LOTS',CUR.Urls.getLocalCacheUrl1('OASIS_BlockLotCache'),{layername:'_allLayers',type:'png',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),maxExtent:new OpenLayers.Bounds(622033.333333212672,-71866.666666521088,1304699.999999878656,440133.3333334784),transparent:true,isBaseLayer:false,visibility:true,buffer:0,maxResolution:5.20833333333333,minResolution:0,opacity:0.8});map.addLayer(lotLayer);map.lotCacheLayer=lotLayer;var subwayLayer=new OpenLayers.Layer.AgsCache('NYCT_subway',CUR.Urls.getLocalCacheUrl1('OASIS_SubwayCache'),{layername:'_allLayers',type:'png',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),maxExtent:new OpenLayers.Bounds(622033.333333212672,-71866.666666521088,1304699.999999878656,440133.3333334784),transparent:true,buffer:0,isBaseLayer:false,visibility:true,maxResolution:166.666666666667,minResolution:0});map.addLayer(subwayLayer);map.subwayLayer=subwayLayer;var cacheLayer2=new OpenLayers.Layer.AgsCache('Cache_Transit',CUR.Urls.getLocalCacheUrl1('OASIS_TransitLabelCache'),{layername:'_allLayers',type:'png',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),maxExtent:new OpenLayers.Bounds(622033.333333212672,-71866.666666521088,1304699.999999878656,440133.3333334784),transparent:true});cacheLayer2.isBaseLayer=false;cacheLayer2.buffer=0;map.addLayer(cacheLayer2);map.transCacheLayer=cacheLayer2;var overlayLayer=new OpenLayers.Layer.WMS("Overlay",CUR.Urls.getLocalWmsUrl1('OASISMap'),{layers:'',format:'image/gif',transparent:true},{opacity:0.5,singleTile:false,buffer:0,gutter:0,isBaseLayer:false,visibility:false});map.addLayer(overlayLayer);map.overlayLayer=overlayLayer;map.setLayerZIndex(highlightLayer,map.layers.length);var labelLayer=new OpenLayers.Layer.WMS("Label",CUR.Urls.getLocalWmsUrl1('OASISMap'),{layers:config.labelIds,format:'image/gif',transparent:true},{singleTile:true,buffer:0,gutter:0,isBaseLayer:false,visibility:true,transitionEffect:'resize'});if(typeof pageTracker!='undefined'){}
map.addLayer(labelLayer);map.labelLayer=labelLayer;map.addLayer(new OpenLayers.Layer.Markers('Fusion'));var markerLayer=new OpenLayers.Layer.Markers('Marker');map.addLayer(markerLayer);};var addControls=function(){map.addControl(new OpenLayers.Control.Navigation());map.addControl(new OpenLayers.Control.PanZoomBar({zoomWorldIcon:true}));map.addControl(new OpenLayers.Control.ScaleLine());map.addControl(new OpenLayers.Control.LoadingPanel({div:document.getElementById('loadingPanel')}));var click=new OpenLayers.Control.MapClick();map.addControl(click);click.activate();map.addControl(new OpenLayers.Control.ArgParserOasis());var nav=new OpenLayers.Control.NavigationHistory({limit:5});map.addControl(nav);var navPanel=new OpenLayers.Control.Panel();navPanel.addControls([nav.next,nav.previous]);map.addControl(navPanel);};var addOverview=function(){var ovLayer2=new OpenLayers.Layer.AgsCache('OView',CUR.Urls.getLocalCacheUrl1('Oview'),{layername:'_allLayers',type:'png',tileOrigin:new OpenLayers.LonLat(-120039300,145506800),transparent:true,projection:projection});ovLayer2.isBaseLayer=true;var ovControl=new OpenLayers.Control.OverviewMap({layers:[ovLayer2]});var ovOptions={maxExtent:new OpenLayers.Bounds(494033.33333314048,-93199.99999976704,1560699.99999980544,440133.33333356544),resolutions:[2083.33333333333,1041.66666666667],projection:projection,numZoomLevels:2};ovControl.mapOptions=ovOptions;map.addControl(ovControl);ovControl.maximizeControl();};map=new OpenLayers.Map(config.mapDiv,mapOptions);map.defaultCenter=new OpenLayers.LonLat(990000,200000);addLayers();map.highlighter=new CUR.Highlighter({markerLayer:map.getLayersByName("Marker")[0],highlightLayer:map.highlightLayer,highlightIds:config.highlightIds});addControls();addOverview();map.events.register('zoomend',null,CUR.MapPage.mapScaleChanged);map.div.oncontextmenu=function noContextMenu(e){return false;};if(!map.getCenter()&&!map.getControlsByClass('OpenLayers.Control.ArgParserOasis')[0].hasZoomTo){map.setCenter(map.defaultCenter);}
return map;};﻿OpenLayers.Control.MapClick=OpenLayers.Class(OpenLayers.Control,{locationReport:null,defaultHandlerOptions:{'single':true,'double':false,'pixelTolerance':0,'stopSingle':true,'stopDouble':false},initialize:function(options){this.handlerOptions=OpenLayers.Util.extend({},this.defaultHandlerOptions);OpenLayers.Control.prototype.initialize.apply(this,arguments);this.handler=new OpenLayers.Handler.Click(this,{'click':this.trigger},this.handlerOptions);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);},trigger:function(e){if(OpenLayers.Event.element(e).id.indexOf('Icon')===-1){this.locationReport.toggleLoadMask(true);var lonlat=this.map.getLonLatFromViewPortPx(e.xy);this.setMarker(lonlat);}},setMarker:function(lonlat){var layers=CUR.MapPage.getRestIdsToIdentify(this.map.getScale());CUR.DataAccess.prototype.spatialQuery(lonlat.lon,lonlat.lat,this.map.getExtent().toBBOX(),this.map.size.w,this.map.size.h,layers,CUR.MapPage.spatialQueryResults);this.map.highlighter.createMarker(lonlat,true);this.map.highlighter.polyHighlight.update(null);if(this.map.getZoom()>=6){this.map.highlighter.polyHighlight.updateFromClick(lonlat.lon,lonlat.lat,this.map.getExtent().toBBOX(),this.map.size.w+','+this.map.size.h);}},CLASS_NAME:"OpenLayers.Control.MapClick"});﻿
CUR=window.CUR||{};CUR.MapPage=(function(){var viewport;var toolbar;var map;var layerList=null;var locationReport=null;var searchPanel=null;var satelliteWin=null;var layerDetailsWin=null;var overlayPanel=null;var linkWin=null;var loadingPanel=null;return{mainLayer:null,labelLayer:null,overlayLayer:null,luCacheLayer:null,transCacheLayer:null,subwayLayer:null,lotLayer:null,init:function(oasisConfig){Ext.BLANK_IMAGE_URL='http://extjs.cachefly.net/ext-2.2/resources/images/default/s.gif';Ext.WindowMgr.zseed=10000;Ext.QuickTips.init();viewport=Ext.ux.Viewport();map=CUR.Map(oasisConfig);this.mainLayer=map.mainLayer;this.labelLayer=map.labelLayer;this.overlayLayer=map.overlayLayer;this.luCacheLayer=map.luCacheLayer;this.transCacheLayer=map.transCacheLayer;this.subwayLayer=map.subwayLayer;this.lotCacheLayer=map.lotCacheLayer;layerList=Ext.getCmp('layerList');locationReport=Ext.getCmp('locationReport');map.getControlsByClass('OpenLayers.Control.MapClick')[0].locationReport=locationReport;searchPanel=new Ext.ux.SearchPanel({locationReport:locationReport});overlayPanel=Ext.getCmp('overlayPanel');this.toggleSatelliteWin(true);Ext.getCmp('overlayPanel').setMapLayer(map.overlayLayer);Ext.fly('feedbackLink').set({href:'mailto:oasisnyc@gc.cuny.edu?subject=OASIS%20feedback'});this.buildLinkWin(Ext.get('linkLink'));},getMap:function(){return map;},updateMapSize:function(panel,adjWidth,adjHeight,rawWidth,rawHeight){if(typeof map!='undefined'){map.updateSize();}},setToolbarBusy:function(isBusy){if(loadingPanel===null){loadingPanel=map.getControlsByClass('OpenLayers.Control.LoadingPanel')[0];}
if(isBusy){loadingPanel.maximizeControl(null);}else{loadingPanel.minimizeControl(null);}},showAboutWin:function(link){var win=Ext.ux.AboutWindow();win.setAnimateTarget(link);win.show();},showPrintWin:function(link){var win=Ext.getCmp('printWindow');if(!win){win=Ext.ux.PrintWindow({map:map,layerList:layerList,satelliteWin:satelliteWin});win.alignTo(link,'tr-br');win.setAnimateTarget(link);}
win.setVisible(!win.isVisible());},showDonateWin:function(link){var win=Ext.getCmp('donateWindow');if(!win){win=Ext.ux.DonateWindow();win.setAnimateTarget(link);win.doAnchor=function(){win.alignTo.defer(100,win,[link,'tr-br']);};win.alignTo(link,'tr-br');Ext.EventManager.onWindowResize(win.doAnchor,win);}
win.setVisible(!win.isVisible());},toggleSatelliteWin:function(toggle){if(satelliteWin===null){var x=38;var y=74;satelliteWin=Ext.ux.SatelliteWindow({x:x,y:y,activeAerial:map.initialAerial,aerialLayers:map.aerialLayers,mainLayer:map.mainLayer,landUseLayer:map.luCacheLayer});}
if(toggle){satelliteWin.show();}else{satelliteWin.hide();}},toggleAerialLayers:function(visibility){if(satelliteWin!==null){satelliteWin.toggleAerials(visibility);}else{map.aerialLayers[map.aerialLayers.length-1].setVisibility(visibility);map.aerialLayers[map.aerialLayers.length-2].setVisibility(visibility);}
if(visibility){map.mainLayer.setOpacity(0.65);}else{map.mainLayer.setOpacity(0.85);}},showLayerDetailsWin:function(el,layerName){if(layerDetailsWin===null){layerDetailsWin=Ext.ux.LayerDetailsWindow();}
layerDetailsWin.show(el);layerDetailsWin.setLayer(layerName);},buildLinkWin:function(link){var win=Ext.getCmp('linkWindow');if(!win){win=Ext.ux.LinkWindow({link:link,map:map,layerList:layerList,satelliteWin:satelliteWin});win.anchorTo(link,'tr-br');win.setAnimateTarget(link);}},showLinkWin:function(link){var win=Ext.getCmp('linkWindow');if(!win){this.buildLinkWin(link);}
win.setAnimateTarget(link);win.setVisible(!win.isVisible());},changeOlLayerWmsIds:function(olGroup,add){var layer;var i;layer=map.getLayersByName(olGroup.Name)[0];if(add){CUR.MapPage.addToLayer(layer,olGroup.WmsIds);}else{CUR.MapPage.removeFromLayer(layer,olGroup.WmsIds);}},changeOverlayLayerWmsIds:function(olGroup,add){if(add){CUR.MapPage.addToLayer(map.overlayLayer,olGroup.WmsIds);}else{CUR.MapPage.removeFromLayer(map.overlayLayer,olGroup.WmsIds);}},getLayerWmsIds:function(olLayer){if(olLayer.params.LAYERS.length>0){return olLayer.params.LAYERS.split(',');}else{return[];}},getMainLayerWmsIds:function(){return CUR.MapPage.getLayerWmsIds(map.mainLayer);},setMainLayerWmsIds:function(wmsIds){map.mainLayer.mergeNewParams({LAYERS:wmsIds.join(',')});if(wmsIds.length===0){map.mainLayer.setVisibility(false);}else{map.mainLayer.setVisibility(true);}},setLayerWmsIds:function(olLayer,wmsIds){olLayer.mergeNewParams({LAYERS:wmsIds.join(',')});if(wmsIds.length===0){olLayer.setVisibility(false);this.setToolbarBusy(false);}else{olLayer.setVisibility(true);}},hideMainLayer:function(){map.mainLayer.setVisibility(false);},getLabelLayerWmsIds:function(){return CUR.MapPage.getLayerWmsIds(map.labelLayer);},setLabelLayerWmsIds:function(wmsIds){map.labelLayer.mergeNewParams({LAYERS:wmsIds.join(',')});if(wmsIds.length===0){map.labelLayer.setVisibility(false);}else{map.labelLayer.setVisibility(true);}},hideLabelLayer:function(){map.labelLayer.setVisibility(false);},addToLayer:function(layer,wmsIds){var newWmsIds;if(layer.params.LAYERS.length==0){newWmsIds=wmsIds;}else{newWmsIds=layer.params.LAYERS.split(',').concat(wmsIds);}
newWmsIds=newWmsIds.unique(false);newWmsIds.sortNum();layer.setVisibility(true);layer.mergeNewParams({LAYERS:newWmsIds.join()});},removeFromLayer:function(layer,wmsIds){var olLayerWmsIds=layer.params.LAYERS.split(',');var i,j;for(i=olLayerWmsIds.length;i>=0;i--){for(j=0;j<wmsIds.length;j++){if(olLayerWmsIds[i]==wmsIds[j]){olLayerWmsIds.splice(i,1);}}}
if(olLayerWmsIds.length===0){layer.setVisibility(false);}
layer.mergeNewParams({LAYERS:olLayerWmsIds.join()});},selectLot:function(features,doZoom){doZoom=true;if(features.length>0){if(doZoom){if(features[0][0]!==null){CUR.MapPage.zoomToExtent(features[0][0].Extent);}}
CUR.MapPage.updateHighlightLayer(features[0],true);map.highlighter.createMarker(new OpenLayers.LonLat(features[0][0].XCoord,features[0][0].YCoord),false);locationReport.updateData(features);}else{locationReport.updateData(features);if(!map.getCenter()){map.setCenter(new OpenLayers.LonLat(990000,200000));}};},updateSelectedFeatures:function(features,doLocationReport,doZoom,doHighlight){if(features!==null){if(doHighlight){CUR.MapPage.updateHighlightLayer(features[0]);}
if(doZoom){CUR.MapPage.zoomToExtent(features[0][0].Extent);}}else{if(!map.getCenter()){map.setCenter(map.defaultCenter);}}
if(doLocationReport){locationReport.updateData(features);}else{locationReport.updateData([]);}},zoomToExtent:function(extent){map.zoomToExtent(new OpenLayers.Bounds(extent.MinX,extent.MinY,extent.MaxX,extent.MaxY));},spatialQueryResults:function(featuresLists){if(locationReport!==null){locationReport.updateData(featuresLists);}
if(featuresLists.length>0){if(featuresLists[0][0].__type.slice(0,featuresLists[0][0].__type.indexOf(':#'))=='TaxLot'){map.highlighter.update(featuresLists[0],false);}}},mapScaleChanged:function(event){layerList.mapScaleChanged(event.object.getScale());overlayPanel.mapScaleChanged(event.object.getScale());},getMapCenter:function(){return map.getCenter();},getMapScale:function(){return map.getScale();},getWmsIdsToIdentify:function(){return layerList.getWmsIdsToIdentify();},getRestIdsToIdentify:function(scale){if(layerList!==null){return layerList.getRestIdsToIdentify();}else{return this.getRestIdsToIdentifyFromInitialJson(scale);}},getRestIdsToIdentifyFromInitialJson:function(scale){if(typeof scale==='undefined'){scale=1500;}
var ids=[];var categories=CUR.MapPage.allLayers;var layer;for(var j=0;j<categories.length;j++){for(var k=0;k<categories[j].Layers.length;k++){layer=categories[j].Layers[k];if(layer.RestIdentifyIds!==null&&(layer.Scale.Max>scale&&layer.Scale.Min<scale)){ids.push(categories[j].Layers[k].RestIdentifyIds);}}}
return ids.join(',');},updateHighlightLayer:function(feature){map.highlighter.update(feature,true);}};})();﻿
OpenLayers.Popup.MapPopup=OpenLayers.Class(OpenLayers.Popup.FramedCloud,{maximizeDiv:null,isVisible:false,sizeState:'minimized',minSize:new OpenLayers.Size(250,200),maxSize:new OpenLayers.Size(450,325),tabPanel:null,extraWidth:0,extraHeight:0,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){contentSize=this.minSize;this.panMapIfOutOfView=false;OpenLayers.Popup.FramedCloud.prototype.initialize.apply(this,arguments);this.addMaximizeBox();this.contentDiv.style.overflow="visible";if(OpenLayers.Util.getBrowserName()=="msie"){extraWidth=18;extraHeight=0;}else{extraWidth=24;extraHeight=0;}},destroy:function(){if(this.maximizeDiv){OpenLayers.Event.stopObservingElement(this.maximizeDiv);this.groupDiv.removeChild(this.maximizeDiv);}
this.maximizeDiv=null;OpenLayers.Popup.FramedCloud.prototype.destroy.apply(this,arguments);},show:function(){OpenLayers.Popup.FramedCloud.prototype.show.apply(this,arguments);this.isVisible=true;this.tabPanel.setLocation(this.lonlat);},hide:function(){OpenLayers.Popup.FramedCloud.prototype.hide.apply(this,arguments);this.isVisible=false;},addMaximizeBox:function(callback){this.maximizeDiv=OpenLayers.Util.createDiv(this.id+"_minimize",null,new OpenLayers.Size(17,17));if(this.sizeState=='maximized'){this.maximizeDiv.className="olPopupMinimizeBox";}else{this.maximizeDiv.className="olPopupMaximizeBox";}
var contentDivPadding=this.getContentDivPadding();this.maximizeDiv.style.right=contentDivPadding.right+40+"px";this.maximizeDiv.style.top=contentDivPadding.top+"px";this.maximizeDiv.style.zIndex=12000;this.groupDiv.appendChild(this.maximizeDiv);var togglePopupSize=callback||function(e){if(this.sizeState=='minimized'){this.sizeState='maximized';this.maximizeDiv.className="olPopupMinimizeBox";this.setSize(this.maxSize);this.tabPanel.setSize(this.maxSize.w+extraWidth-2,this.maxSize.h+extraHeight-2);}else{this.sizeState='minimized';this.maximizeDiv.className="olPopupMaximizeBox";this.setSize(this.minSize);this.tabPanel.setSize(this.minSize.w+extraWidth-2,this.minSize.h+extraHeight-2);}
OpenLayers.Event.stop(e);};OpenLayers.Event.observe(this.maximizeDiv,"click",OpenLayers.Function.bindAsEventListener(togglePopupSize,this));},updateRelativePosition:function(){OpenLayers.Popup.FramedCloud.prototype.updateRelativePosition.apply(this,arguments);if(this.maximizeDiv){var contentDivPadding=this.getContentDivPadding();this.maximizeDiv.style.right=contentDivPadding.right+
this.padding.right+20+"px";this.maximizeDiv.style.top=contentDivPadding.top+
this.padding.top+"px";}},setSize:function(contentSize){OpenLayers.Popup.FramedCloud.prototype.setSize.apply(this,arguments);this.contentDiv.style.width=(contentSize.w+extraWidth)+'px';this.contentDiv.style.height=(contentSize.h+extraHeight)+'px';},addTabPanel:function(content){if(this.tabPanel===null){this.tabPanel=new Ext.TabPanel({id:'tabsPopup',renderTo:this.contentDiv.id,cls:'search-tab',width:this.contentSize.w+extraWidth-2,height:this.contentSize.h+extraHeight-2,style:'border:solid 1px #ffffff;',border:false,plain:true,activeTab:0,deferredRender:false,items:[{id:'tabDetail',title:'2008-09 Aerial View',items:[new Ext.BoxComponent({autoEl:{tag:'iframe',id:'ifrDetailed',src:'birdseyeview.aspx',width:'100%',height:'100%',frameborder:'0px',style:'border:solid 0px #ff0000; width:100%; height 100%;'}})]}],listeners:{tabchange:{fn:function(tabs,tab){tab.doLayout();if(tab.id==='tabDetail'){}}},afterrender:{fn:function(tabpanel){tabpanel.doLayout();var msk=tabpanel.items.get(0).body.mask();msk.setSize('100%','100%');var iframeDoc=this.items.get(0).items.get(0).el.dom.contentWindow;tabpanel.items.get(0).body.on('dblclick',function(e,el,o){iframeDoc.toggleZoom();},this);Ext.DomHelper.append(tabpanel.items.get(0).body,{tag:'div',style:'position:absolute;left:33px;top:20px;z-index:20000;cursor:pointer;width:10px;height:10px;overflow:hidden;'});Ext.DomHelper.append(tabpanel.items.get(0).body,{tag:'div',style:'position:absolute;left:65px;top:49px;z-index:20000;cursor:pointer;width:10px;height:10px;overflow:hidden;'},true).on('click',function(){iframeDoc.setOrientation(1);});Ext.DomHelper.append(tabpanel.items.get(0).body,{tag:'div',style:'position:absolute;left:33px;top:81px;z-index:20000;cursor:pointer;width:10px;height:10px;overflow:hidden;'},true).on('click',function(){iframeDoc.setOrientation(2);});Ext.DomHelper.append(tabpanel.items.get(0).body,{tag:'div',style:'position:absolute;left:2px;top:49px;z-index:20000;cursor:pointer;width:10px;height:10px;overflow:hidden;'},true).on('click',function(){iframeDoc.setOrientation(3);});}}},setLocation:function(xy){if(typeof this.items.get(0).items.get(0).el.dom.contentWindow.setLocation!='undefined'){var lonlat=CUR.convertSPToLL(xy.lon,xy.lat);this.items.get(0).items.get(0).el.dom.contentWindow.setLocation(lonlat);}else{var that=this;var afunc=function(xy){this.setLocation(xy);};afunc.defer(500,that,[xy]);}}});}}});﻿OpenLayers.Control.PanZoomBar.prototype.draw=function(px){OpenLayers.Control.prototype.draw.apply(this,arguments);this.div.style.left="";this.div.style.right=70+"px";px=this.position.clone();this.buttons=[];var sz=new OpenLayers.Size(18,18);var centered=new OpenLayers.Pixel(px.x+sz.w/2,px.y);var wposition=sz.w;if(this.zoomWorldIcon){centered=new OpenLayers.Pixel(px.x+sz.w,px.y);}
this._addButton("panup","north-mini.png",centered,sz);px.y=centered.y+sz.h;this._addButton("panleft","west-mini.png",px,sz);if(this.zoomWorldIcon){this._addButton("zoomworld","zoom-world-mini.png",px.add(sz.w,0),sz);wposition*=2;}
this._addButton("panright","east-mini.png",px.add(wposition,0),sz);this._addButton("pandown","south-mini.png",centered.add(0,sz.h*2),sz);this._addButton("zoomin","zoom-plus-mini.png",centered.add(0,sz.h*3+5),sz);centered=this._addZoomBar(centered.add(0,sz.h*4+5));this._addButton("zoomout","zoom-minus-mini.png",centered,sz);return this.div;};OpenLayers.Map.prototype.updateSize=function(){this.events.clearMouseCache();var newSize=this.getCurrentSize();var oldSize=this.getSize();if(oldSize==null){this.size=oldSize=newSize;}
if(!newSize.equals(oldSize)){var newCenter=new OpenLayers.Pixel(newSize.w/2,newSize.h/2)
var newCenterLL=this.getLonLatFromViewPortPx(newCenter);this.size=newSize;for(var i=0,len=this.layers.length;i<len;i++){this.layers[i].onMapResize();}
if(this.baseLayer!=null){var center=new OpenLayers.Pixel(newSize.w/2,newSize.h/2);var centerLL=this.getLonLatFromViewPortPx(center);var zoom=this.getZoom();this.zoom=null;this.setCenter(newCenterLL,zoom);}}};OpenLayers.Control.OverviewMap.prototype.draw=function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!(this.layers.length>0)){if(this.map.baseLayer){var layer=this.map.baseLayer.clone();this.layers=[layer];}else{this.map.events.register("changebaselayer",this,this.baseLayerDraw);return this.div;}}
this.element=document.createElement('div');this.element.className=this.displayClass+'Element';this.element.style.display='none';this.mapDiv=document.createElement('div');this.mapDiv.style.width=this.size.w+'px';this.mapDiv.style.height=this.size.h+'px';this.mapDiv.style.position='relative';this.mapDiv.style.overflow='hidden';this.mapDiv.id=OpenLayers.Util.createUniqueID('overviewMap');this.extentRectangle=document.createElement('div');this.extentRectangle.style.position='absolute';this.extentRectangle.style.zIndex=1000;this.extentRectangle.className=this.displayClass+'ExtentRectangle';this.mapDiv.appendChild(this.extentRectangle);this.element.appendChild(this.mapDiv);this.div.appendChild(this.element);if(!this.outsideViewport){this.div.className+=" "+this.displayClass+'Container';var imgLocation=OpenLayers.Util.getImagesLocation();var img=imgLocation+'overview_open.png';this.maximizeDiv=OpenLayers.Util.createAlphaImageDiv(this.displayClass+'MaximizeButton',null,new OpenLayers.Size(72,18),img,'absolute');this.maximizeDiv.style.display='none';this.maximizeDiv.className=this.displayClass+'MaximizeButton';OpenLayers.Event.observe(this.maximizeDiv,'click',OpenLayers.Function.bindAsEventListener(this.maximizeControl,this));this.div.appendChild(this.maximizeDiv);var img=imgLocation+'overview_close.png';this.minimizeDiv=OpenLayers.Util.createAlphaImageDiv('OpenLayers_Control_minimizeDiv',null,new OpenLayers.Size(29,18),img,'absolute');this.minimizeDiv.style.display='none';this.minimizeDiv.className=this.displayClass+'MinimizeButton';OpenLayers.Event.observe(this.minimizeDiv,'click',OpenLayers.Function.bindAsEventListener(this.minimizeControl,this));this.div.appendChild(this.minimizeDiv);var eventsToStop=['dblclick','mousedown'];for(var i=0;i<eventsToStop.length;i++){OpenLayers.Event.observe(this.maximizeDiv,eventsToStop[i],OpenLayers.Event.stop);OpenLayers.Event.observe(this.minimizeDiv,eventsToStop[i],OpenLayers.Event.stop);}
this.minimizeControl();}else{this.element.style.display='';}
if(this.map.getExtent()){this.update();}
this.map.events.register('moveend',this,this.update);return this.div;};﻿Ext.ux.PrintWindow=function(config){var win;var submitPrint=function(){var formP=win.items.get(0);formP.getForm().getEl().dom.action=formP.url;formP.getForm().getEl().dom.target='printwin';var mapview=formP.map;var size=mapview.getSize();var selectedXY=null;var selectedLayer=null;var selectedId=null;var tiles=[];var layers=[];var layer;mapview.setCenter(mapview.getCenter(),mapview.zoom,false,true);for(var i=0,len=mapview.layers.length;i<len;i++){layer=mapview.layers[i];if(layer.getVisibility()&&layer.calculateInRange()){if(layer.CLASS_NAME.indexOf('WMS')>-1){layers.push({name:layer.name,opacity:layer.opacity,sort:layer.getZIndex(),wmsIds:layer.params.LAYERS});}else if(layer.CLASS_NAME.indexOf('Cache')>-1){tiles=[];for(var j=0;j<layer.grid.length;j++){for(var k=0;k<layer.grid[j].length;k++){var tile=layer.grid[j][k]
var url=layer.getURL(tile.bounds);var position=tile.position;tiles[tiles.length]={url:url,x:position.x,y:position.y};}}
layers.push({name:layer.name,opacity:layer.opacity,sort:layer.getZIndex(),tiles:tiles});}else if(layer.CLASS_NAME.indexOf('ArcGIS93Rest')>-1){layers.push({name:layer.name,opacity:layer.opacity,sort:layer.getZIndex(),restIds:layer.params.LAYERS,layerDefs:layer.params.LAYERDEFS});}else if(layer.CLASS_NAME.indexOf('Markers')>-1){if(layer.markers.length>0){var markers=[];for(var j=0,len2=layer.markers.length;j<len2;j++){if(layer.markers[j].icon.imageDiv.style.display!='none'){var marker=layer.markers[j];markers.push((marker.icon.px.x+marker.icon.offset.x)+','+(marker.icon.px.y+marker.icon.offset.y))}}
layers.push({name:layer.name,opacity:layer.opacity,sort:layer.getZIndex(),markers:markers});};}}}
if(mapview.highlighter.markerHighlight.isVisible()){selectedXY=mapview.highlighter.markerHighlight.marker.lonlat.toShortString()}
if(mapview.highlighter.polyHighlight.isVisible()){selectedLayer=mapview.highlighter.polyHighlight.selected.layer;selectedId=mapview.highlighter.polyHighlight.selected.id;}
var prnMap={width:size.w,height:size.h,bbox:mapview.getExtent().toBBOX(),selectedXY:selectedXY,selectedLayer:selectedLayer,selectedId:selectedId,layersToSelect:formP.layerList.getRestIdsToIdentify(),layers:layers};var ovControl=mapview.getControlsByClass('OpenLayers.Control.OverviewMap')[0];var overview;var ovlayers=[];ovControl.ovmap.setCenter(ovControl.ovmap.getCenter(),ovControl.ovmap.zoom,false,true);layer=ovControl.ovmap.layers[0];tiles=[];for(var j=0;j<layer.grid.length;j++){for(var k=0;k<layer.grid[j].length;k++){var tile=layer.grid[j][k]
var url=layer.getURL(tile.bounds);var position=tile.position;if((position.x+256)>=0&&(position.x)<=180&&(position.y+256)>=0&&(position.y)<=90){tiles[tiles.length]={url:url,x:position.x,y:position.y};}}}
ovlayers.push({name:layer.name,opacity:layer.opacity,sort:layer.getZIndex(),tiles:tiles});overview={width:ovControl.ovmap.getSize().w,height:ovControl.ovmap.getSize().h,bbox:ovControl.ovmap.getExtent().toBBOX(),layers:ovlayers};if(formP.items.get('prntitle').getValue()==''){formP.items.get('prntitle').el.dom.value='';}
formP.items.get('prnmap').setValue(Ext.util.JSON.encode(prnMap));formP.items.get('prnoverview').setValue(Ext.util.JSON.encode(overview));formP.items.get('prnuilayers').setValue(formP.layerList.getLayerNamesThatAreVisible());var satellite=formP.satelliteWin.getActiveAerial().name;if(satellite!='BaseCache'){formP.items.get('prnsatellite').setValue(satellite);}else{formP.items.get('prnsatellite').setValue('');}
formP.ownerCt.doLayout();formP.getForm().submit();};win=new Ext.Window({renderTo:document.body,id:'printWindow',title:'Print',constrainHeader:true,resizable:false,width:350,closeAction:'hide',items:[new Ext.form.FormPanel({standardSubmit:true,url:'printmap.aspx',bodyBorder:false,border:false,keys:[{key:Ext.EventObject.ENTER,fn:submitPrint,stopEvent:true}],items:[{xtype:'label',text:'Enter title for your map. Click "Create Map" button. Your map will open in a new window.'},{xtype:'textfield',name:'prntitle',id:'prntitle',hideLabel:true,width:'300',emptyText:'map title'},{xtype:'hidden',name:'prnmap',id:'prnmap'},{xtype:'hidden',name:'prnoverview',id:'prnoverview'},{xtype:'hidden',name:'prnuilayers',id:'prnuilayers'},{xtype:'hidden',name:'prnsatellite',id:'prnsatellite'}],buttonAlign:'center',buttons:[{xtype:'button',text:'Create Map',handler:submitPrint}],map:config.map,layerList:config.layerList,satelliteWin:config.satelliteWin})]});return win;};Ext.ns('Ext.ux.grid');Ext.ux.grid.RowExpander=Ext.extend(Ext.util.Observable,{expandOnEnter:true,expandOnDblClick:true,header:'',width:20,sortable:false,fixed:true,hideable:false,menuDisabled:true,dataIndex:'',id:'expander',lazyRender:true,enableCaching:true,constructor:function(config){Ext.apply(this,config);this.addEvents({beforeexpand:true,expand:true,beforecollapse:true,collapse:true});Ext.ux.grid.RowExpander.superclass.constructor.call(this);if(this.tpl){if(typeof this.tpl=='string'){this.tpl=new Ext.Template(this.tpl);}
this.tpl.compile();}
this.state={};this.bodyContent={};},getRowClass:function(record,rowIndex,p,ds){p.cols=p.cols-1;var content=this.bodyContent[record.id];if(!content&&!this.lazyRender){content=this.getBodyContent(record,rowIndex);}
if(content){p.body=content;}
return this.state[record.id]?'x-grid3-row-expanded':'x-grid3-row-collapsed';},init:function(grid){this.grid=grid;var view=grid.getView();view.getRowClass=this.getRowClass.createDelegate(this);view.enableRowBody=true;grid.on('render',this.onRender,this);grid.on('destroy',this.onDestroy,this);},onRender:function(){var grid=this.grid;var mainBody=grid.getView().mainBody;mainBody.on('mousedown',this.onMouseDown,this,{delegate:'.x-grid3-row-expander'});if(this.expandOnEnter){this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{'enter':this.onEnter,scope:this});}
if(this.expandOnDblClick){grid.on('rowdblclick',this.onRowDblClick,this);}},onDestroy:function(){if(this.keyNav){this.keyNav.disable();delete this.keyNav;}
var mainBody=this.grid.getView().mainBody;if(mainBody){mainBody.un('mousedown',this.onMouseDown,this);}},onRowDblClick:function(grid,rowIdx,e){this.toggleRow(rowIdx);},onEnter:function(e){var g=this.grid;var sm=g.getSelectionModel();var sels=sm.getSelections();for(var i=0,len=sels.length;i<len;i++){var rowIdx=g.getStore().indexOf(sels[i]);this.toggleRow(rowIdx);}},getBodyContent:function(record,index){if(!this.enableCaching){return this.tpl.apply(record.data);}
var content=this.bodyContent[record.id];if(!content){content=this.tpl.apply(record.data);this.bodyContent[record.id]=content;}
return content;},onMouseDown:function(e,t){e.stopEvent();var row=e.getTarget('.x-grid3-row');this.toggleRow(row);},renderer:function(v,p,record){p.cellAttr='rowspan="2"';return'<div class="x-grid3-row-expander">&#160;</div>';},beforeExpand:function(record,body,rowIndex){if(this.fireEvent('beforeexpand',this,record,body,rowIndex)!==false){if(this.tpl&&this.lazyRender){body.innerHTML=this.getBodyContent(record,rowIndex);}
return true;}else{return false;}},toggleRow:function(row){if(typeof row=='number'){row=this.grid.view.getRow(row);}
this[Ext.fly(row).hasClass('x-grid3-row-collapsed')?'expandRow':'collapseRow'](row);},expandRow:function(row){if(typeof row=='number'){row=this.grid.view.getRow(row);}
var record=this.grid.store.getAt(row.rowIndex);var body=Ext.DomQuery.selectNode('tr:nth(2) div.x-grid3-row-body',row);if(this.beforeExpand(record,body,row.rowIndex)){this.state[record.id]=true;Ext.fly(row).replaceClass('x-grid3-row-collapsed','x-grid3-row-expanded');this.fireEvent('expand',this,record,body,row.rowIndex);}},collapseRow:function(row){if(typeof row=='number'){row=this.grid.view.getRow(row);}
var record=this.grid.store.getAt(row.rowIndex);var body=Ext.fly(row).child('tr:nth(1) div.x-grid3-row-body',true);if(this.fireEvent('beforecollapse',this,record,body,row.rowIndex)!==false){this.state[record.id]=false;Ext.fly(row).replaceClass('x-grid3-row-expanded','x-grid3-row-collapsed');this.fireEvent('collapse',this,record,body,row.rowIndex);}}});Ext.preg('rowexpander',Ext.ux.grid.RowExpander);Ext.grid.RowExpander=Ext.ux.grid.RowExpander;﻿
Ext.ux.SatelliteWindow=function(config){var _activeAerial=config.activeAerial;var satelliteWindow;satelliteWindow=new Ext.Window({id:'satelliteWindow',header:false,cls:'search-window',width:295,height:50,x:config.x,y:config.y,draggable:false,resizable:false,closable:true,closeAction:'hide',shadow:false,listeners:{render:{fn:function(win){win.getEl().addClassOnOver('search-window-over');}}},items:[new Ext.Container({id:'timeline',autoEl:{tag:'div'},listeners:{render:{fn:function(component){var width=component.getEl().getWidth();new Ext.Slider({renderTo:'timeline',width:width,minValue:0,maxValue:180,aerialLayers:config.aerialLayers,mainLayer:config.mainLayer,landUseLayer:config.landUseLayer,lowerVis:0,upperVis:1,onClickChange:function(local){if(local.top>this.clickRange[0]&&local.top<this.clickRange[1]){var thumb=this.getNearest(local,'left'),index=thumb.index;var val=Ext.util.Format.round(this.reverseValue(local.left),this.decimalPrecision);var diff=val%30;var snapVal=val;if(diff<=4){snapVal=val-diff;}else if(diff>=26){snapVal=30-diff+val;}
this.setValue(index,snapVal,true,true);}},listeners:{render:{fn:function(slider){slider.setValue(this.aerialLayers.indexOf(_activeAerial)*30,true,true);}},change:{fn:function(slider,val,thumb){var divided=(val-1)/30;var lowerVis=divided>0?Math.floor(divided):0;var upperVis=lowerVis+1;if(this.lowerVis!==lowerVis&&this.lowerVis!==upperVis){this.aerialLayers[this.lowerVis].setVisibility(false);this.aerialLayers[this.lowerVis].setOpacity(0);}
if(this.upperVis!==upperVis&&this.upperVis!==lowerVis){this.aerialLayers[this.upperVis].setVisibility(false);this.aerialLayers[this.upperVis].setOpacity(0);}
var upperVisOpac=(val-(lowerVis*30))/30;this.aerialLayers[lowerVis].setVisibility((upperVisOpac>=0.95)?false:true);this.aerialLayers[lowerVis].setOpacity(1);this.aerialLayers[upperVis].setVisibility((upperVisOpac<0.05)?false:true);this.aerialLayers[upperVis].setOpacity(upperVisOpac);if((upperVis===this.aerialLayers.length-1)&&(upperVisOpac>0.7)){this.mainLayer.setOpacity(0.85);if(!this.landUseLayer.isInTransControl){if(this.landUseLayer.opacity>0){this.landUseLayer.setOpacity(0.9)};this.landUseLayer.fadeMaxOpacity=0.9;}}else{this.mainLayer.setOpacity(0.65);if(!this.landUseLayer.isInTransControl){if(this.landUseLayer.opacity>0){this.landUseLayer.setOpacity(0.7)};this.landUseLayer.fadeMaxOpacity=0.7;}}
this.lowerVis=lowerVis;this.upperVis=upperVis;if(thumb.dragging){if(upperVis-divided<.14){slider.setValue(upperVis*30,false);}else if(divided-lowerVis<.03){slider.setValue(lowerVis*30,false);}}}},changecomplete:{fn:function(slider,newValue,thumb){_activeAerial=this.aerialLayers[Math.round(newValue/30)];}}}})}}}}),new Ext.Component({autoEl:{html:'<div style="width:100%;">'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_1609\');return false;" style="position:relative;left:0px;background-color:#ffffff;">1609</a>'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_1996\');return false;" style="position:relative;left:16px;background-color:#ffffff;">1996</a>'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_2004\');return false;" style="position:relative;left:32px;background-color:#ffffff;">2004</a>'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_2006\');return false;" style="position:relative;left:48px;background-color:#ffffff;">2006</a>'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_2008\');return false;" style="position:relative;left:64px;background-color:#ffffff;">2008</a>'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_2010\');return false;" style="position:relative;left:80px;background-color:#ffffff;">2010</a>'+'<a href="" onclick="CUR.MapPage.showLayerDetailsWin(this,\'Aerial_Map\');return false;" style="position:relative;left:98px;background-color:#ffffff;">Map</a>'+'</div>'}}),new Ext.Component({autoEl:{tag:'img',style:'position:absolute;right:0px;top:0px;height:40px;',src:'images/timeline_hide.png'},satelliteOpen:null,winVisisble:true,listeners:{render:{fn:function(cmp){this.satelliteOpen=Ext.get('satelliteOpen');this.satelliteOpen.show();cmp.getEl().on('click',function(e,el,o){satelliteWindow.getEl().slideOut('l');this.winVisible=false;},this);this.satelliteOpen.on('click',function(e,el,o){if(this.winVisible===false){satelliteWindow.getEl().slideIn('l');this.winVisible=true;}else{satelliteWindow.getEl().slideOut('l');this.winVisible=false;}},this);}}}})],getActiveAerial:function(){return _activeAerial;}});return satelliteWindow;};﻿
Ext.ux.SearchPanel=Ext.extend(Ext.Container,{autoEl:'div',style:'position: absolute; bottom: 0px; left: 150px;',locationReport:null,initComponent:function(){var searchPanelFactory=Ext.ux.SearchPanelFactory(this);Ext.apply(this,{renderTo:'north',items:[new Ext.TabPanel({activeTab:0,plain:true,width:510,height:55,cls:'search-tab',items:searchPanelFactory.buildPanels(),keys:[{key:Ext.EventObject.ENTER,scope:this,fn:this.searchClicked}]}),new Ext.Button({text:'Search',listeners:{'click':{fn:this.searchClicked,scope:this}},style:'position: absolute; bottom: 7px; right: 34px;'})]});Ext.ux.SearchPanel.superclass.initComponent.apply(this);},searchClicked:function(btn,e){this.getEl().mask('Searching...','x-mask-loading');var activeTab=this.items.get(0).getActiveTab();activeTab.doSearch();this.locationReport.toggleLoadMask(true);},removeMask:function(features){var el=this.getEl();if(!features){el.mask('Record not found. Please try another search.','important-mask');setTimeout(function(){el.child('.ext-el-mask-msg').fadeOut({duration:0.5,callback:function(){el.unmask();}});},1000);}else{el.unmask();}},selectLot:function(lot){if(lot!==null){CUR.MapPage.selectLot(lot);}else{CUR.MapPage.selectLot([]);}
this.removeMask(lot);},selectCounty:function(features){CUR.MapPage.updateSelectedFeatures(features,false,true,true);this.removeMask(features);},selectZip:function(features){CUR.MapPage.updateSelectedFeatures(features,false,true,true);this.removeMask(features);},selectNeighborhood:function(features){CUR.MapPage.updateSelectedFeatures(features,false,true,false);this.removeMask(features);},selectCommunityDistrict:function(features){CUR.MapPage.updateSelectedFeatures(features,true,true,true);this.removeMask(features);}});Ext.ux.SearchPanelOLD=function(config){var mask=null;var searchClicked=function(btn,e){if(mask==null){mask=new Ext.LoadMask(Ext.get('searchWindow'),{msg:"Searching..."});}
mask.show();var activeTab=tabPanel.getActiveTab();activeTab.doSearch();};var selectLot=function(lot){if(lot!==null){CUR.MapPage.selectLot(lot);};};var selectCounty=function(county){if(county!==null){CUR.MapPage.zoomToExtent(county.Extent);};};var selectZip=function(zip){if(zip!==null){CUR.MapPage.zoomToExtent(zip.Extent);};};var selectNeighborhood=function(neighborhood){if(neighborhood!==null){CUR.MapPage.zoomToExtent(neighborhood.Extent);};};var selectCommunityDistrict=function(district){if(district!==null){CUR.MapPage.selectCommunityDistrict(district);};};var tabPanel=new Ext.TabPanel({renderTo:'search',activeTab:0,plain:true,width:510,height:200,cls:'search-tab',deferredRender:false,selectLot:selectLot,selectCounty:selectCounty,selectZip:selectZip,selectNeighborhood:selectNeighborhood,selectCommunityDistrict:selectCommunityDistrict});var searchPanelFactory=Ext.ux.SearchPanelFactory(tabPanel);var panels=searchPanelFactory.buildPanels();tabPanel.add(panels[0]);tabPanel.add(panels[1]);tabPanel.add(panels[2]);tabPanel.add(panels[3]);tabPanel.add(panels[4]);tabPanel.add(panels[5]);tabPanel.setActiveTab(0);tabPanel.getActiveTab().doLayout();return tabPanel;};Ext.ux.SearchPanelFactory=function(win){var boroughCombo=function(name){var boroughs=CUR.DataAccess.prototype.getAllBoroughs();return{xtype:'combo',name:name,hideLabel:true,anchor:'95%',store:boroughs,typeAhead:false,mode:'local',forceSelection:true,triggerAction:'all',displayField:'Name',valueField:'Code',emptyText:'select a borough...'};};var addSearchPanel=function(title,fields,searchFunction){var colWidth=((1/(fields.length+.8))*Math.pow(10,1))/Math.pow(10,1);colWidth=(colWidth==1?0.5:colWidth);var panelItems=[];var i,len;for(i=0,len=fields.length;i<len;i++){panelItems.push({columnWidth:colWidth,layout:'form',items:[fields[i]]});}
return{xtype:'form',title:title,layout:'fit',doSearch:searchFunction,items:[{layout:'column',items:panelItems}]};};var addAddressPanel=function(){return addSearchPanel('Address',[{xtype:'textfield',emptyText:'enter address',hideLabel:true,name:'address',anchor:'95%'},boroughCombo('addrBorough')],function(){CUR.DataAccess.prototype.getLotByAddress(this.getForm().findField('address').getValue(),this.getForm().findField('addrBorough').getValue(),CUR.MapPage.getRestIdsToIdentify(),win.selectLot,win);})};var addBBLPanel=function(){return addSearchPanel('Block & Lot',[boroughCombo('bblBorough'),{xtype:'textfield',name:'block',hideLabel:true,emptyText:'enter block',anchor:'95%'},{xtype:'textfield',name:'lot',hideLabel:true,emptyText:'enter lot',anchor:'95%'}],function(){CUR.DataAccess.prototype.getLotByBBL(this.getForm().findField('bblBorough').getValue()+String.leftPad(this.getForm().findField('block').getValue(),5,'0')+String.leftPad(this.getForm().findField('lot').getValue(),4,'0'),CUR.MapPage.getRestIdsToIdentify(),win.selectLot,win);})};var addCountyBoroughPanel=function(){var counties=CUR.DataAccess.prototype.getAllCounties();return addSearchPanel('County/Borough',[{xtype:'combo',hideLabel:true,name:'countyBorough',anchor:'95%',store:counties,mode:'local',forceSelection:true,triggerAction:'all',emptyText:'select a county/borough...',displayField:'Name',valueField:'StFips',listeners:{render:{fn:function(){this.store.load();}}}}],function(){CUR.DataAccess.prototype.getCountyByFips(this.getForm().findField('countyBorough').getValue(),win.selectCounty,win);})};var addZipCodePanel=function(){return addSearchPanel('ZIP Code',[{xtype:'textfield',hideLabel:true,name:'zipCode',emptyText:'enter zip',anchor:'95%'}],function(){CUR.DataAccess.prototype.getZipCodeByZip(this.getForm().findField('zipCode').getValue(),win.selectZip,win);})};var addNeighborhoodPanel=function(){var neighborhoods=CUR.DataAccess.prototype.getAllNeighborhoods();return addSearchPanel('Neighborhood',[{xtype:'combo',hideLabel:true,name:'neighborhood',anchor:'95%',store:neighborhoods,mode:'local',forceSelection:true,triggerAction:'all',emptyText:'select a neighborhood...',displayField:'Name',valueField:'NameEncoded',listeners:{render:{fn:function(){this.store.load();}}}}],function(){CUR.DataAccess.prototype.getNeighborhoodByName(this.getForm().findField('neighborhood').getValue(),win.selectNeighborhood,win);})};var addCommDistPanel=function(){var districts=CUR.DataAccess.prototype.getAllCommunityDistricts();return addSearchPanel('Community District',[{xtype:'combo',hideLabel:true,name:'commDist',anchor:'95%',store:districts,mode:'local',forceSelection:true,triggerAction:'all',emptyText:'select a community district...',displayField:'BoardFull',valueField:'Code',listeners:{render:{fn:function(){this.store.load();}}}}],function(){CUR.DataAccess.prototype.getCommunityDistrictByCode(this.getForm().findField('commDist').getValue(),win.selectCommunityDistrict,win);})};return{buildPanels:function(){var searchPanels=[addAddressPanel(),addBBLPanel(),addZipCodePanel(),addNeighborhoodPanel(),addCommDistPanel(),addCountyBoroughPanel()];return searchPanels;}}};﻿Ext.ux.SiteSearch=function(config){var panel;panel=new Ext.Panel({title:'Site Search',id:'siteSearch',autoScroll:true,style:'font-family:Verdana;padding-top:4px;',layout:'form',items:[{xtype:'label',style:'color:#555555;',html:'<b>About Site Search:</b> <p>You can search for community gardens, stewardship turfs, or other sites by typing just a few letters or a word included in the site’s name (you can also type the full name). As you’re typing, wait a few seconds to see a list of items that include your search term. Then select your site from the list (scroll to another page if the list includes more than 10 items).  The map will zoom to that location, hilite it in orange, & display site details in the OASIS Location Report above.</p>'},new Ext.ux.SiteCombo({fieldLabel:'Community Gardens',emptyText:'type garden name...',displayField:'Name',valueField:'Id',store:CUR.DataAccess.prototype.getAllGardens(),queryFunction:'getGardenById',searchPage:'garden/gardensearch.aspx'}),new Ext.ux.SiteCombo({fieldLabel:'Stewardship Groups',emptyText:'type steward name...',displayField:'Name',valueField:'Id',store:CUR.DataAccess.prototype.getAllStewards(),queryFunction:'getStewardshipById',searchPage:'stewardship/stewardshipsearch.aspx'}),new Ext.ux.SiteCombo({fieldLabel:'Habitat Site',emptyText:'type habitat name...',displayField:'Name',valueField:'Id',store:CUR.DataAccess.prototype.getAllCompRestPlans(),queryFunction:'getCompRestPlanById',searchPage:'crp/crpsearch.aspx',searchText:'CRP'}),new Ext.ux.SiteCombo({fieldLabel:'Waterfront Access Site',emptyText:'type waterfront access site name...',displayField:'Name',valueField:'Id',store:CUR.DataAccess.prototype.getAllWaterfrontAccess(),queryFunction:'getWaterfrontAccessById'})],listeners:{'render':function(cmp){cmp.syncSize();}}});return panel;};Ext.ux.SiteCombo=Ext.extend(Ext.Container,{autoEl:'div',style:'color:#335533;background:#CFDBC5;border:solid 1px #88BB88;margin-top:6px;padding:6px 2px 6px 6px;',anchor:'99%',layout:'form',queryFunction:null,maskTarget:null,searchPage:null,labelAlign:'top',initComponent:function(){var items=[{xtype:'combo',fieldLabel:this.fieldLabel,labelStyle:'font-weight:bold;',emptyText:this.emptyText,anchor:'99%',minChars:1,pageSize:10,hideTrigger:true,displayField:this.displayField,valueField:this.valueField,store:this.store,listeners:{'select':function(cbo,record,idx){this.getRecord(record.id);},'specialkey':function(cbo,e){if(e.getKey()===e.ENTER&&(cbo.getRawValue()===cbo.lastSelectionText)){this.getRecord(cbo.getValue());}}},getRecord:function(id){var mt=this.ownerCt.maskTarget;mt.mask('Searching...','x-mask-loading')
CUR.DataAccess.prototype[this.ownerCt.queryFunction](id,function(features){mt.unmask();CUR.MapPage.updateSelectedFeatures(features,true,true,true);});}}];if(this.searchPage){items.push({xtype:'box',autoEl:{tag:'div','class':'faded-text',html:'You can also search from the <a href="'+this.searchPage+'" target="searchPage">'+((this.searchText)?this.searchText:this.fieldLabel.toLowerCase())+' search page</a>',style:'padding-left:2px;font-size:.8em;'}});}
Ext.apply(this,{items:items});this.fieldLabel=null;Ext.ux.SiteCombo.superclass.initComponent.apply(this);},onRender:function(ct,position){this.maskTarget=Ext.getCmp('siteSearch').getEl();Ext.ux.SiteCombo.superclass.onRender.apply(this,arguments);}});Ext.reg('sitecombo',Ext.ux.SiteCombo);Ext.namespace('Ext.ux','Ext.ux.TDGi');Ext.ux.TDGi.BorderLayout=function(config){Ext.ux.TDGi.BorderLayout.superclass.constructor.call(this,config,this);};Ext.extend(Ext.ux.TDGi.BorderLayout,Ext.layout.BorderLayout,{northTitleAdded:false,southTitleAdded:false,eastTitleAdded:false,westTitleAdded:false,doCollapsedTitle:function(ct){function doHtmlInsert(ct,element){if(ct.region=='east'||ct.region=='west'){if(Ext.isIE6||Ext.isIE7){if(ct.region=='east'){Ext.get(ct.collapsedEl.dom.firstChild).applyStyles({margin:'3px 3px 5px 3px'});}
else{Ext.get(ct.collapsedEl.dom.firstChild).applyStyles({margin:'3px auto 5px 3px'});}}
return(Ext.DomHelper.append(ct.collapsedEl,element));}
else{return(Ext.DomHelper.insertFirst(ct.collapsedEl,element));}}
if(ct.collapsedTitle){if(typeof ct.collapsedTitle=='object'){if(typeof ct.collapsedTitle.element=='object'){var element=ct.collapsedTitle.element;if(element.style){element.style+='float: left;';}
else{element.style='float: left;';}
doHtmlInsert(ct,element);return(true);}}
else if(typeof ct.collapsedTitle=='string'){var element=ct.collapsedTitle;doHtmlInsert(ct,element);return(true)}
else if(typeof ct.collapsedTitle=='boolean'&&ct.collapsedTitle==true){if(ct.region=='east'||ct.region=='west'){if(Ext.isIE6||Ext.isIE7){var element={tag:'div',style:"writing-mode: tb-rl; ",html:ct.title}}
else{var y=0,txt='';for(i=0;y<ct.title.length;i++){txt+=ct.title.substr(y,1)+'<br />';y++;}
var element={tag:'div',style:"text-align: center;",html:txt}}}
else{var element={tag:'div',html:ct.title,style:'float: left;'}}
doHtmlInsert(ct,element);return(true);}}},onLayout:function(ct,target){var collapsed;if(!this.rendered){target.position();target.addClass('x-border-layout-ct');var items=ct.items.items;collapsed=[];for(var i=0,len=items.length;i<len;i++){var c=items[i];var pos=c.region;if(c.collapsed){collapsed.push(c);}
c.collapsed=false;if(!c.rendered){c.cls=c.cls?c.cls+' x-border-panel':'x-border-panel';c.render(target,i);}
this[pos]=pos!='center'&&c.split?new Ext.layout.BorderLayout.SplitRegion(this,c.initialConfig,pos):new Ext.layout.BorderLayout.Region(this,c.initialConfig,pos);this[pos].render(target,c);}
this.rendered=true;}
var size=target.getViewSize();if(size.width<20||size.height<20){if(collapsed){this.restoreCollapsed=collapsed;}
return;}else if(this.restoreCollapsed){collapsed=this.restoreCollapsed;delete this.restoreCollapsed;}
var w=size.width,h=size.height;var centerW=w,centerH=h,centerY=0,centerX=0;var n=this.north,s=this.south,west=this.west,e=this.east,c=this.center;if(!c){throw'No center region defined in BorderLayout '+ct.id;}
if(n&&n.isVisible()){var b=n.getSize();var m=n.getMargins();b.width=w-(m.left+m.right);b.x=m.left;b.y=m.top;centerY=b.height+b.y+m.bottom;centerH-=centerY;n.applyLayout(b);if(typeof n.collapsedEl!='undefined'&&n.collapsedTitle&&this.northTitleAdded==false){if(this.doCollapsedTitle(n)){this.northTitleAdded=true;}}}
if(s&&s.isVisible()){var b=s.getSize();var m=s.getMargins();b.width=w-(m.left+m.right);b.x=m.left;var totalHeight=(b.height+m.top+m.bottom);b.y=h-totalHeight+m.top;centerH-=totalHeight;s.applyLayout(b);if(typeof s.collapsedEl!='undefined'&&s.collapsedTitle&&this.southTitleAdded==false){if(this.doCollapsedTitle(s)){this.southTitleAdded=true;}}}
if(west&&west.isVisible()){var b=west.getSize();var m=west.getMargins();b.height=centerH-(m.top+m.bottom);b.x=m.left;b.y=centerY+m.top;var totalWidth=(b.width+m.left+m.right);centerX+=totalWidth;centerW-=totalWidth;west.applyLayout(b);if(typeof west.collapsedEl!='undefined'&&west.collapsedTitle&&this.westTitleAdded==false){if(this.doCollapsedTitle(west)){this.westTitleAdded=true;}}}
if(e&&e.isVisible()){var b=e.getSize();var m=e.getMargins();b.height=centerH-(m.top+m.bottom);var totalWidth=(b.width+m.left+m.right);b.x=w-totalWidth+m.left;b.y=centerY+m.top;centerW-=totalWidth;e.applyLayout(b);if(typeof e.collapsedEl!='undefined'&&e.collapsedTitle&&this.eastTitleAdded==false){if(this.doCollapsedTitle(e)){this.eastTitleAdded=true;}}}
var m=c.getMargins();var centerBox={x:centerX+m.left,y:centerY+m.top,width:centerW-(m.left+m.right),height:centerH-(m.top+m.bottom)};c.applyLayout(centerBox);if(collapsed){for(var i=0,len=collapsed.length;i<len;i++){collapsed[i].collapse(false);}}
if(Ext.isIE&&Ext.isStrict){target.repaint();}}});Ext.Container.LAYOUTS['tdgi_border']=Ext.ux.TDGi.BorderLayout;﻿CUR=window.CUR||{};CUR.UpdateLayerDelay=function(config){this.arrLyrsToAdd=[];this.arrLyrsToRemove=[];this.mapLayer=config.mapLayer;this.transitionEffect=this.mapLayer.transitionEffect;this.delayedTask=new Ext.util.DelayedTask();};CUR.UpdateLayerDelay.prototype={updateLayer:function(wmsIds,visibility){var i,len;CUR.MapPage.setToolbarBusy(true);this.mapLayer.transitionEffect=null;this.mapLayer.setVisibility(false);if(wmsIds&&visibility){this.arrLyrsToAdd=this.arrLyrsToAdd.concat(wmsIds);for(i=0,len=wmsIds.length;i<len;i++){this.arrLyrsToRemove.remove(wmsIds[i]);}}else if(wmsIds){this.arrLyrsToRemove=this.arrLyrsToRemove.concat(wmsIds);for(i=0,len=wmsIds.length;i<len;i++){this.arrLyrsToAdd.remove(wmsIds[i]);}}
this.delayedTask.delay(700,this.delayedFunc,this);},delayedFunc:function(){var wmsIds=CUR.MapPage.getLayerWmsIds(this.mapLayer);wmsIds=wmsIds.concat(this.arrLyrsToAdd);for(var i=0,len=this.arrLyrsToRemove.length;i<len;i++){wmsIds.remove(this.arrLyrsToRemove[i]);}
wmsIds=wmsIds.unique(false);wmsIds.sortNum();CUR.MapPage.setLayerWmsIds(this.mapLayer,wmsIds);this.arrLyrsToAdd=[];this.arrLyrsToRemove=[];this.mapLayer.transitionEffect=this.transitionEffect;}};CUR.UpdateLayerDelay.mainDelay=null;CUR.UpdateLayerDelay.getMainDelay=function(){if(CUR.UpdateLayerDelay.mainDelay===null){CUR.UpdateLayerDelay.mainDelay=new CUR.UpdateLayerDelay({mapLayer:CUR.MapPage.mainLayer});}
return CUR.UpdateLayerDelay.mainDelay;};CUR.UpdateLayerDelay.labelDelay=null;CUR.UpdateLayerDelay.getLabelDelay=function(){if(CUR.UpdateLayerDelay.labelDelay===null){CUR.UpdateLayerDelay.labelDelay=new CUR.UpdateLayerDelay({mapLayer:CUR.MapPage.labelLayer});}
return CUR.UpdateLayerDelay.labelDelay;};CUR.UpdateLayerDelay.overlayDelay=null;CUR.UpdateLayerDelay.getOverlayDelay=function(){if(CUR.UpdateLayerDelay.overlayDelay===null){CUR.UpdateLayerDelay.overlayDelay=new CUR.UpdateLayerDelay({mapLayer:CUR.MapPage.overlayLayer});}
return CUR.UpdateLayerDelay.overlayDelay;};﻿var CUR=window.CUR||{};CUR.Urls=(function(){var mapServer1='www.urbanresearchmaps.org';var mapServer2='146.96.129.113';return{getLocalCacheUrl1:function(cacheName){return'http://'+mapServer1+'/arcgiscache/'+cacheName+'/Layers';},getLocalCacheUrl2:function(cacheName){return'http://'+mapServer2+'/arcgiscache/'+cacheName+'/Layers';},getLocalWmsUrl1:function(serviceName){return'http://'+mapServer1+'/ArcGIS_CUR/services/Oasis/'+serviceName+'/MapServer/WMSServer?';},getLocalWmsUrl2:function(serviceName){return'http://'+mapServer2+'/ArcGIS_CUR/services/Oasis/'+serviceName+'/MapServer/WMSServer?';},getLocalRestUrl:function(serviceName){return'http://'+mapServer1+'/ArcGIS_CUR/rest/services/OASIS/'+serviceName+'/MapServer/export?';},getStateAerialUrl:function(year){return'http://www.orthos.dhses.ny.gov/ArcGIS/rest/services/'+year+'/MapServer/export';}};})();﻿
Array.prototype.sortNum=function(){return this.sort(function(a,b){return a-b;});}
Array.prototype.unique=function(b){var a=[],i,l=this.length;for(i=0;i<l;i++){if(a.indexOf(this[i],0,b)<0){a.push(this[i]);}}
return a;};Array.prototype.indexOf=function(o){for(var i=0,len=this.length;i<len;i++){if(this[i]==o)return i;}
return-1;};Number.prototype.addCommas=function(){if(this!=null){var nStr=this+'';x=nStr.split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,'$1'+','+'$2');}
return x1+x2;}};String.prototype.splitCSV=function(sep){for(var foo=this.split(sep=sep||","),x=foo.length-1,tl;x>=0;x--){if(foo[x].replace(/"\s+$/,'"').charAt(foo[x].length-1)=='"'){if((tl=foo[x].replace(/^\s+"/,'"')).length>1&&tl.charAt(0)=='"'){foo[x]=foo[x].replace(/^\s*"|"\s*$/g,'').replace(/""/g,'"');}else if(x){foo.splice(x-1,2,[foo[x-1],foo[x]].join(sep));}else foo=foo.shift().split(sep).concat(foo);}else foo[x].replace(/""/g,'"');}return foo;};var CUR=window.CUR||{};CUR.convertSPToLL=function(uX,uY){var a=20925604.48;var ec=0.08181905782;var angRad=0.01745329252;var pi4=3.141592653582/4;var p0=40.166667*angRad;var p1=40.666667*angRad;var p2=41.033333*angRad;var m0=-74.0000*angRad;var x0=984250.00;with(Math){var m1=cos(p1)/sqrt(1-(pow(ec,2))*pow(sin(p1),2));var m2=cos(p2)/sqrt(1-(pow(ec,2))*pow(sin(p2),2));var t0=tan(pi4-(p0/2));var t1=tan(pi4-(p1/2));var t2=tan(pi4-(p2/2));t0=t0/pow(((1-(ec*(sin(p0))))/(1+(ec*(sin(p0))))),ec/2);t1=t1/pow(((1-(ec*(sin(p1))))/(1+(ec*(sin(p1))))),ec/2);t2=t2/pow(((1-(ec*(sin(p2))))/(1+(ec*(sin(p2))))),ec/2);var n=log(m1/m2)/log(t1/t2);var f=m1/(n*pow(t1,n));var rho0=a*f*pow(t0,n);var uX=uX-x0;var pi2=pi4*2;var rho=sqrt(pow(uX,2)+pow((rho0-uY),2));var theta=atan(uX/(rho0-uY));var txy=pow((rho/(a*f)),(1/n));var lon=(theta/n)+m0;uX=uX+x0;var lat0=pi2-(2*atan(txy));var part1=(1-(ec*sin(lat0)))/(1+(ec*sin(lat0)));var lat1=pi2-(2*atan(txy*pow(part1,(ec/2))));while((abs(lat1-lat0))>0.000000002){lat0=lat1;part1=(1-(ec*sin(lat0)))/(1+(ec*sin(lat0)));lat1=pi2-(2*atan(txy*pow(part1,(ec/2))));}
var Lat=lat1/angRad;var Lon=lon/angRad;return{lon:Lon,lat:Lat};}};CUR.convertLLToSP=function(lat,lon){var a=20925604.48;var e=0.08181905782;var angRad=0.01745329252;var pi4=3.141592653582/4;var p0=40.166667*angRad;var p1=40.666667*angRad;var p2=41.033333*angRad;var m0=-74.0000*angRad;var X0=984250.00;var Y0=0;with(Math){var m1=cos(p1)/sqrt(1-(pow(e,2))*pow(sin(p1),2));var m2=cos(p2)/sqrt(1-(pow(e,2))*pow(sin(p2),2));var t0=tan(pi4-(p0/2));var t1=tan(pi4-(p1/2));var t2=tan(pi4-(p2/2));t0=t0/pow(((1-(e*(sin(p0))))/(1+(e*(sin(p0))))),e/2);t1=t1/pow(((1-(e*(sin(p1))))/(1+(e*(sin(p1))))),e/2);t2=t2/pow(((1-(e*(sin(p2))))/(1+(e*(sin(p2))))),e/2);var n=log(m1/m2)/log(t1/t2);var f=m1/(n*pow(t1,n));var rho0=a*f*pow(t0,n);lat=lat*angRad;lon=lon*angRad;var t=tan(pi4-(lat/2));t=t/pow((((1-(e*(sin(lat))))/(1+(e*(sin(lat)))))),(e/2));var rho=a*f*(pow(t,n));var theta=n*(lon-m0);var x=(rho*sin(theta))+X0;var y=rho0-(rho*cos(theta))+Y0;lat=lat/angRad;lon=lon/angRad;}
return{x:x,y:y};};﻿
Ext.ux.Viewport=function(){return new Ext.Viewport({layout:'border',items:[new Ext.BoxComponent({region:'north',el:'north',split:false,height:70,minSize:70,title:'',margins:'0 5 0 5'}),{region:'center',contentEl:'center',header:false,margins:'0 0 5 5',style:'border-width:3px;',listeners:{resize:{fn:CUR.MapPage.updateMapSize}}},{region:'east',header:false,split:true,width:340,minSize:250,maxSize:450,collapsible:true,collapseMode:'mini',useSplitTips:true,margins:'0 5 5 0',cmargins:'0 5 5 5',style:'border-width:0px;',layout:'fit',items:[Ext.ux.EasternTabs()]}]});};
