function SubscriptionMapHelper(){}SubscriptionMapHelper.GeocodeAddress=function(){var a=$("input.address").val();$("#location-status").hide();if(a!=undefined&&a!=null&&a!=""){$("#loading-spinner").show();BingGeocoderHelper.GeocodeAddress(a,SubscriptionMapHelper.GeocodingFinished)}else{$("#loading-spinner").hide();$("#location-status").fadeIn().html("<strong>Try again....</strong><br/>The address you entered was not found.</a>").removeClass("success").addClass("failure");var b=SubscriptionMap.Map.getLayer("graphicsLayer1");if(b){b.clear()}}};SubscriptionMapHelper.GeocodingFinished=function(a){if(a!=null){if(a.length==1){SubscriptionMapHelper.PlaceAddressGraphic(a[0].X,a[0].Y,a[0].Address)}else{var c="";c='<div class="label">Did you mean:</div><a class="clear" onclick="$(\'#did-you-mean-panel, #loading-spinner\').hide();">Clear?</a>';c+='<p class="list">';for(var b=0;b<a.length;b++){c+=(b+1)+'. <a onclick="SubscriptionMapHelper.PlaceAddressGraphic('+a[b].X+", "+a[b].Y+", '"+a[b].Address+"'); $('#did-you-mean-panel').hide();\">"+a[b].Address+"</a><br/>"}c+="</p>";$("#did-you-mean-panel").html(c).show()}}else{$("#loading-spinner").hide();$("#location-status").fadeIn().html("<strong>Try again....</strong><br/>The address you entered was not found.</a>").removeClass("success").addClass("failure")}};SubscriptionMapHelper.PlaceAddressGraphic=function(e,c,d){$("input.address").val(d);var b=SubscriptionMap.Map.getLayer("graphicsLayer1");if(b){b.clear()}else{b=new esri.layers.GraphicsLayer({id:"graphicsLayer1"});SubscriptionMap.Map.addLayer(b);SubscriptionMap.Map.reorderLayer(b,0)}var a=new esri.geometry.Point(e,c,Configuration.SpatialReferenceWKID_BING);SubscriptionMap.AddressGraphic=new esri.Graphic(a,Configuration.AddressGraphicSymbol);SubscriptionMap.AddressBufferCenterLat=c;SubscriptionMap.AddressBufferCenterLng=e;SubscriptionMap.AddressText=d;b.add(SubscriptionMap.AddressGraphic);SubscriptionMapHelper.QueryByBuffer(SubscriptionMap.AddressGraphic)};SubscriptionMapHelper.QueryByBuffer=function(a){$("input.address-lat-y").val(a.geometry.y);$("input.address-lng-x").val(a.geometry.x);var c=$("select.buffer-distances").val();var b=new esri.tasks.BufferParameters();b.distances=[c];b.bufferSpatialReference=new esri.SpatialReference({wkid:Configuration.SpatialReferenceWKID});b.outSpatialReference=SubscriptionMap.Map.spatialReference;b.unit=esri.tasks.BufferParameters.UNIT_STATUTE_MILE;a.geometry.setSpatialReference(SubscriptionMap.Map.spatialReference);b.features=[a];Configuration.GeometryService.buffer(b,SubscriptionMapHelper.ShowBuffer)};SubscriptionMapHelper.ShowBuffer=function(b){var c=null;var a=null;if(b!=undefined&&b!=null){c=new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,new dojo.Color([5,95,158,0.65]),2),new dojo.Color([145,209,255,0.35]));dojo.forEach(b,function(d){a=new esri.Graphic(d.geometry,c);SubscriptionMap.Map.getLayer("graphicsLayer1").remove(SubscriptionMap.AddressGraphic);SubscriptionMap.Map.getLayer("graphicsLayer1").remove(SubscriptionMap.AddressBufferGraphic);SubscriptionMap.Map.getLayer("graphicsLayer1").add(a);SubscriptionMap.Map.getLayer("graphicsLayer1").add(SubscriptionMap.AddressGraphic);SubscriptionMap.AddressBufferGraphic=a});if(a!=null){SubscriptionMap.Map.setExtent(a.geometry.getExtent(),true);SubscriptionMap.Query.geometry=a.geometry;if(typeof(Global_IsStaging)!="undefined"&&typeof(Global_IsStaging)!=undefined&&typeof(Global_IsStaging)!=null&&typeof(Global_IsStaging)!=""){SubscriptionMap.Query.where="IsStaging = 'False' OR (Agency_ID IN ("+Global_StagingAgencyIDs+"))"}else{SubscriptionMap.Query.where="IsStaging = 'False'"}SubscriptionMap.QueryTask.execute(SubscriptionMap.Query,SubscriptionMapHelper.QueryTaskExecuteComplete,SubscriptionMapHelper.QueryTaskExecuteError)}}else{$("#loading-spinner").hide();$("#location-status").fadeIn().html("<strong>Oops....</strong><br/>There is a problem with the application.</a>").removeClass("success").addClass("failure");alert("Buffer proces failed. No features were returned.")}};SubscriptionMapHelper.QueryTaskExecuteError=function(b){$("#loading-spinner").hide();$("#location-status").fadeIn().html("<strong>Oops....</strong><br/>There is a problem with the application.</a>").removeClass("success").addClass("failure");var a="";a+=(b.code!=undefined&&b.code!=null&&b.code!="")?"("+b.code+")":"";a+=(b.message!=undefined&&b.message!=null&&b.message!="")?'"'+b.message+'"':"";a+=(b.details!=undefined&&b.details!=null&&b.details!="")?" - "+b.message+" - ":"";alert("QueryTask failed:\r\n\r\n"+a)};SubscriptionMapHelper.QueryTaskExecuteComplete=function(b){var d="";var c=false;if(b!=undefined&&b!=null){if(b.features!=undefined&&b.features!=null&&b.features.length>0){c=true;for(var a=0;a<b.features.length;a++){if(d.length>0){d+=","+b.features[a].attributes.Agency_ID}else{d+=b.features[a].attributes.Agency_ID}}}else{c=false}}else{c=false}$("#loading-spinner").hide();if(c){$("input.agencies").val(d);$("#location-status").fadeIn().html("<strong>Crime found!</strong><br/> We have crime data for this region.").removeClass("failure").addClass("success")}else{$("input.agencies").val("");$("input.address-lat-y").val("");$("input.address-lng-x").val("");$("#location-status").fadeIn().html("<strong>Try again....</strong><br/>We don't have crime data for this area.  <a href=\""+Configuration.WebRoot+'help/faq.aspx#howcanijoin">Why not?</a>').removeClass("success").addClass("failure")}};SubscriptionMapHelper.CheckAllCrimeTypes=function(a){$("input.arson").attr({checked:a});$("input.assault").attr({checked:a});$("input.burglary").attr({checked:a});$("input.disturbing-the-peace").attr({checked:a});$("input.drugs-alcohol-violations").attr({checked:a});$("input.dui").attr({checked:a});$("input.fraud").attr({checked:a});$("input.homicide").attr({checked:a});$("input.motor-vehicle-theft").attr({checked:a});$("input.robbery").attr({checked:a});$("input.sex-crimes").attr({checked:a});$("input.theft-larceny").attr({checked:a});$("input.vandalism").attr({checked:a});$("input.vehicle-break-in-theft").attr({checked:a});$("input.weapons").attr({checked:a})};SubscriptionMapHelper.ValidateForm=function(){var a="";var b=false;if($("input.email-address").val()!=""){$("input.email-address").removeClass("red-border");if(!$("input.email-address").val().match("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$")){a+="<li>We need a properly formatted <strong>Email Address</strong> from you. <br />Example:  <strong>someone@domainname.com</strong></li>";$("input.email-address").addClass("red-border")}else{$("input.email-address").removeClass("red-border")}}else{a+="<li>Please enter an <strong>Email Address</strong>.</li>";$("input.email-address").addClass("red-border")}if($("input.confirm-email-address").val()!=""){$("input.confirm-email-address").removeClass("red-border");if(!$("input.confirm-email-address").val().toString().match("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$")){a+="<li>Be sure to properly format the <strong>Confirmed Email Address</strong>. <br />Example:  <strong>someone@domainname.com</strong></li>";$("input.confirm-email-address").addClass("red-border")}else{$("input.confirm-email-address").removeClass("red-border")}}else{a+="<li>Please confirm your email and enter an <strong>Email Address</strong>, again.</li>";$("input.confirm-email-address").addClass("red-border")}if($("input.email-address").val().toString().toLowerCase()!=$("input.confirm-email-address").val().toString().toLowerCase()){a+="<li>Your <strong>Email Address</strong> must match the <strong>Confirmed Email Address</strong>.</li>";$("input.email-address").addClass("red-border");$("input.confirm-email-address").addClass("red-border")}if(($("input.address-lat-y").val()=="")||($("input.address-lng-x").val()=="")||$().val("input.agencies")==""||($("input.address").val()=="")){a+="<li>Please be sure to provide a <strong>Location of Interest</strong> around which a report can be made. Also, it is possible that we do not have crime data for the <strong>Location</strong> around which you focused.</li>";$("input.address").addClass("red-border")}else{$("input.address").removeClass("red-border")}if(!SubscriptionMapHelper.HasCrimeTypeChecked()){a+="<li>Choose at least one <strong>Crime Type</strong> that you would like to see in your report.</li>"}if(a.length>0){$(".error-list").html(a);$(".error-summary").slideDown();b=false;$.scrollTo("#results")}else{$(".error-list").html("");$(".error-summary").slideUp();b=true}return b};SubscriptionMapHelper.ClearForm=function(){$("input.email-address").val("");$("input.confirm-email-address").val("");$("input.address").val("");$("input.address-lat-y").val("");$("input.address-lng-x").val("");SubscriptionMapHelper.CheckAllCrimeTypes(true)};SubscriptionMapHelper.HasCrimeTypeChecked=function(){if($("input.arson").attr("checked")){return true}if($("input.assault").attr("checked")){return true}if($("input.burglary").attr("checked")){return true}if($("input.disturbing-the-peace").attr("checked")){return true}if($("input.drugs-alcohol-violations").attr("checked")){return true}if($("input.dui").attr("checked")){return true}if($("input.homicide").attr("checked")){return true}if($("input.motor-vehicle-theft").attr("checked")){return true}if($("input.robbery").attr("checked")){return true}if($("input.sex-crimes").attr("checked")){return true}if($("input.theft-larceny").attr("checked")){return true}if($("input.vandalism").attr("checked")){return true}if($("input.vehicle-break-in-theft").attr("checked")){return true}if($("input.weapons").attr("checked")){return true}return false};SubscriptionMapHelper.EnableMapCacheButtons=function(){$("a#roads").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_roads")});$("a#aerials").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_aerials")});$("a#aerials-with-labels").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_aeriallabel")})};SubscriptionMapHelper.SetCurrentMapCache=function(a){$("a#roads, a#aerials, a#aerials-with-labels").removeClass("current");SubscriptionMap.BingRoadLayer.hide();SubscriptionMap.BingAerialLayer.hide();SubscriptionMap.BingAerialLabeledLayer.hide();switch(a){case"ve_roads":SubscriptionMap.BingRoadLayer.show();$("a#roads").addClass("current").unbind("click");$("a#aerials").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_aerial")});$("a#aerials-with-labels").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_aeriallabel")});break;case"ve_aerial":SubscriptionMap.BingAerialLayer.show();$("a#aerials").addClass("current").unbind("click");$("a#roads").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_roads")});$("a#aerials-with-labels").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_aeriallabel")});break;case"ve_aeriallabel":SubscriptionMap.BingAerialLabeledLayer.show();$("a#aerials-with-labels").addClass("current").unbind("click");$("a#roads").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_roads")});$("a#aerials").bind("click",function(){SubscriptionMapHelper.SetCurrentMapCache("ve_aerial")});break}};