var ParcelTiles={maps_ready:false,maps_ready_timer:false,authenticated:false,selected_parcel:null,tile_cfg:{minZoom:17,maxZoom:19,color:"FFFFFF"},hilighted_cfg:{strokeColor:"#FFA500",fillColor:"#FFFCCC",zIndex:50,clickable:true},default_cfg:{strokeWeight:2,strokeColor:"#FFA500",fillColor:"#FFFFFF",zIndex:50,strokeOpacity:1,fillOpacity:0.1,clickable:true},MOUSEMOVE_DELAY:300};ParcelTiles.init=function(b,c){this.required_maps=b;if(this.required_maps&&this.required_maps.length<1){return}var a=this;this.maps_ready_timer=setInterval(function(){if(a.maps_ready===true){clearTimeout(a.maps_ready_timer);return}if(!trulia.maps||!trulia.maps.instances){return}var f=true;for(var e=0;e<a.required_maps.length;e++){var d=trulia.maps.instances[a.required_maps[e]]||false;if(!d||d.mapLoaded!==true||(typeof(d.primaryMarker)=="function"&&!d.primaryMarker())){f=false}}if(f){a.maps_ready=true;if(typeof(c)=="function"){a.authenticate(function(){c()})}}},200)};ParcelTiles.load_parcel_by_lat_lng=function(e,f,d,h){if(!f||!d){return false}var a=this,c="getByGeometry.aspx?returnGeoType=1&dataSource=Dmp_License/Parcels&inclusionGeometries=POINT("+d+" "+f+")",b="parcel_mutex";if(!is_mutex_free(b)){return false}set_mutex(b,1);var g=function(m){var l=null,i=null,k=null,j=null;if(m.Response.Results.totalRecords>0){l=m.Response.Results.RecordSet;if(l){i=l[0].Data.Row[0]}else{i=m.Response.Results.Data.Row}if(i||typeof(i.GEOMETRY)!="undefined"){k=i.GEOMETRY;j=Dmp.Core.WktTools.toShape(k)}}if(typeof(h)=="function"){h(e,j)}release_mutex(b)};Dmp.Env.Connections.SS.getJson(c,g)};ParcelTiles.attach_parcel_events_to_markers=function(e,f){var b=this,a=false,d=false;if(typeof(f)=="object"){for(var c in f){if(!f.hasOwnProperty(c)||f[c].data().no_boundary===true){continue}a=f[c];d=function(h,j,g){return function(){b.clear_parcels_by_markers(j);var i=j[g];if(i.data().parcel_boundary){b.add_parcel_object(h,i.data().parcel_boundary)}else{b.add_parcel_by_marker(h,i)}}}(e,f,c);google.maps.event.addListener(f[c].node(),"click",d);google.maps.event.addListener(f[c].node(),"mouseover",d);google.maps.event.addListener(f[c].node(),"mouseout",function(){b.clear_parcels_by_markers(f)})}}};ParcelTiles.add_parcel_by_marker=function(c,a){if(typeof(c)!="object"||typeof(a)!="object"){return false}var b=this,d=typeof(a.data)=="function"?a.data():a.data,e=function(f,g){if(f&&g){d.parcel_boundary=g;b.add_parcel_object(f,g,a.node())}else{d.no_boundary=true}};if(d.no_boundary===true){return false}if(d.parcel_boundary){this.add_parcel_object(c,d.parcel_boundary,d.node())}else{this.load_parcel_by_lat_lng(c,d.lat,d.lng,e)}};ParcelTiles.add_parcel_object=function(b,c,d){var a=this;if(typeof(c)!="object"){return false}c.setOptions(a.default_cfg);c.setMap(b);if(d){google.maps.event.addListener(c,"click",function(e){c.setOptions(a.hilighted_cfg);google.maps.event.trigger(d,"open_infowindow",e)})}};ParcelTiles.clear_parcels_by_markers=function(b){for(var a in b){if(!b.hasOwnProperty(a)){continue}if(b[a].data().parcel_boundary){b[a].data().parcel_boundary.setMap(null)}}};ParcelTiles.show_tiles=function(b){var a=new Dmp.Layer.TileLayer("SS","Dmp_License/ParcelTiles",this.tile_cfg);b.overlayMapTypes.push(new google.maps.ImageMapType(a))};ParcelTiles.authenticate=function(b){var a=this;Dmp.Env.Connections.SS.init("",function(){a.authenticated=true;b()})};ParcelTiles.add_mouseover_parcel_event=function(d){var a=this,c=d.getMap(),b=false;d.current_parcel_boundary=null;google.maps.event.addListener(c,"mousemove",function(f){clearTimeout(b);b=setTimeout(function(){var e=c?c.getZoom():0;if(e>16&&e<20&&f&&f.latLng){var g=function(i,j){if(i&&j){if(d.current_parcel_boundary){d.current_parcel_boundary.setMap(null)}a.add_parcel_object(i,j);var h=function(k){d.current_parcel_boundary.setMap(null);d.current_parcel_boundary=null};google.maps.event.addListener(j,"mouseout",h);d.current_parcel_boundary=j}};a.load_parcel_by_lat_lng(c,f.latLng.lat(),f.latLng.lng(),g)}},a.MOUSEMOVE_DELAY)})};
