var DrawPage={};DrawPage={map:"",overlay:"",defaultTypeControl:"#dtypeC",districtType:"NATIONAL_LOWER",searchType:"Address",officialsByType:{},districtTypeName:"",currentCity:"",currentState:"",currentDistrictID:"",btnStartDrawing:"#startDrawing",btnEditDrawing:"#editDrawing",btnScoreDrawing:"#scoreDrawing",divDistrictScores:"#district_scores",divSearchMessages:"#search_messages",ScoreTemplateFile:"/gerrysite/templates/drawscore.jst",mapPanel:"",mapControls:"",drawingLayer:"",currentPolygon:"",lastResults:"",referenceOverlays:"",lastReferenceOverlay:"",cachedTooltips:"",ToolTipFile:"/gerrysite/js/tooltipData.js",worldExtent:"",phillyExtent:"",endKey:""};$(document).ready(function(){var A="http://cdn.azavea.com/lib/openlayers/OpenLayers_9492_RTN.min.js";if((typeof (OpenLayers))=="undefined"){$.getScript(A,loadDrawPage)}else{loadDrawPage()}});var loadDrawPage=function(){setExtent();var A={projection:new OpenLayers.Projection("EPSG:900913"),units:"m",maxResolution:156543.0339,maxExtent:DrawPage.worldExtent,animate:false,controls:[new OpenLayers.Control.MouseDefaults(),new OpenLayers.Control.ZoomPanel(),new OpenLayers.Control.PanPanel()]};var D=new OpenLayers.Map("map_canvas",A);DrawPage.map=D;var E=new OpenLayers.Layer.VirtualEarth("Shaded",{type:VEMapStyle.Shaded,transparent:"true",onMapResize:function(){this.mapObject.Resize(this.map.size.w,this.map.size.h);this.mapObject.AttachEvent("onendpan",redrawOverlay);this.mapObject.AttachEvent("onendzoom",redrawOverlay)},sphericalMercator:true,minZoomLevel:1,maxZoomLevel:20,projection:new OpenLayers.Projection("EPSG:900913"),units:"m",maxResolution:156543.0339,maxExtent:DrawPage.worldExtent});var C=new OpenLayers.Layer.Vector("Vector Layer");DrawPage.drawingLayer=C;D.addLayers([E,C]);DrawPage.mapControls={polygon:new OpenLayers.Control.DrawFeature(C,OpenLayers.Handler.SimplePolygon,{featureAdded:drawFinished}),modify:new OpenLayers.Control.ModifyFeature(C,{standalone:true})};for(var B in DrawPage.mapControls){D.addControl(DrawPage.mapControls[B])}$(DrawPage.btnStartDrawing).click(startDrawing);$(DrawPage.btnEditDrawing).click(editDrawing);$(DrawPage.btnScoreDrawing).click(scoreDrawing);$("#right_minmax").click(function(){$(DrawPage.divDistrictScores).toggle(1500)});$("#formSearch").submit(function(){return false});if(!handleParameters()){DrawPage.previousZoomLevel=DrawPage.map.getZoomForExtent(DrawPage.phillyExtent);DrawPage.map.setCenter(DrawPage.phillyExtent.getCenterLonLat().clone(),DrawPage.previousZoomLevel)}else{}activateTooltips();startDrawing()};function setExtent(){var A=(new OpenLayers.Format.WKT());var C="POLYGON((-8388505.2309605 4879299.8124325, -8388810.9790737 4837423.5756328, -8335457.933338 4838219.5727701, -8336375.1776773 4878900.1565138, -8336375.1776773 4878700.3346021, -8388505.2309605 4879299.8124325))";DrawPage.phillyExtent=A.read(C).geometry.getBounds();var B="POLYGON((-18804731.947988 11778561.768568, -18178559.812363 1621764.1188529, -5576845.5829102 3044630.2228499, -7690176.5406445 12307443.484842, -7611905.0236914 12307443.484842, -18804731.947988 11778561.768568))";DrawPage.worldExtent=A.read(B).geometry.getBounds()}function selectAction(A){$(DrawPage.btnStartDrawing).removeClass("selectedAction");$(DrawPage.btnEditDrawing).removeClass("selectedAction");$(DrawPage.btnScoreDrawing).removeClass("selectedAction");$(A).addClass("selectedAction")}function clearDrawing(){toggleLoading(true);DrawPage.currentPolygon="";DrawPage.drawingLayer.destroyFeatures();$(DrawPage.divSearchMessages).hide(500,null);$(DrawPage.divSearchMessages).removeClass("ui-state-error ui-corner-all");$(DrawPage.divDistrictScores).hide(500,null);toggleLoading(false)}function startDrawing(){selectAction(DrawPage.btnStartDrawing);clearDrawing();DrawPage.mapControls.modify.deactivate();DrawPage.mapControls.polygon.activate()}function getCurrentPolygon(){if((DrawPage.drawingLayer!=null)&&(DrawPage.drawingLayer.features!=null)){for(key in DrawPage.drawingLayer.features){DrawPage.currentPolygon=DrawPage.drawingLayer.features[key];break}}return DrawPage.currentPolygon}function editDrawing(){selectAction(DrawPage.btnEditDrawing);DrawPage.mapControls.polygon.deactivate();DrawPage.mapControls.modify.mode=OpenLayers.Control.ModifyFeature.RESHAPE;getCurrentPolygon();DrawPage.mapControls.modify.activate();DrawPage.mapControls.modify.selectControl.select(DrawPage.currentPolygon);DrawPage.mapControls.modify.selectControl.handlers.feature.feature=DrawPage.currentPolygon}function drawFinished(){scoreDrawing()}function scoreDrawing(){selectAction(DrawPage.btnScoreDrawing);getCurrentPolygon();DrawPage.mapControls.polygon.deactivate();DrawPage.mapControls.modify.unselectFeature(DrawPage.currentPolygon);scorePolygon()}function scorePolygon(){toggleLoading(true);var A={internalProjection:DrawPage.map.baseLayer.projection,externalProjection:DrawPage.map.baseLayer.projection};var B={PolyWKT:new OpenLayers.Format.WKT(A).write(DrawPage.currentPolygon,true)};callScoreCustomDistrict(B,handleScoring)}function handleScoring(C){DrawPage.lastResults=C;for(var A in C.Scores){var D=C.Scores[A];var B="show"+D.Name.replace("/","").replace(" ","").replace("-","");D.controlID=B}getTemplateAsync(DrawPage.ScoreTemplateFile,function(E){showNewScore(E,C)})}function activateTooltips(){if(DrawPage.cachedTooltips!=""){processTooltips(DrawPage.cachedTooltips);return }else{$.getJSON(DrawPage.ToolTipFile,function(A){DrawPage.cachedTooltips=A;processTooltips(A)})}}function processTooltips(E){var F=E.items;for(var A in F){var D=F[A];D.options.tip="#"+D.id+"Tip";var C=$("#"+D.id+"Tip");var G=$("#"+D.id);if((C.length>0)&&(G.length>0)){C.html(D.text);if(typeof G.tooltip=="function"){var B=G.tooltip(D.options);if(typeof B.dynamic=="function"){B.dynamic()}}}}}function toggleOverlayButton(A){$(".buttonRefGeo a").each(function(){if($(this).attr("id")==$(A).attr("id")){$(A).toggleClass("active")}else{$(this).removeClass("active")}})}function showNewScore(E,D){$(DrawPage.divSearchMessages).hide(500,null);$(DrawPage.divSearchMessages).removeClass("ui-state-error ui-corner-all");var B=E.process(D);$(DrawPage.divDistrictScores).html(B);toggleLoading(false);$(DrawPage.divDistrictScores).show(1500,null);for(var A in D.Scores){var F=D.Scores[A];var C=F.controlID;if(F.Name.indexOf("Convex")!=-1){$("#"+C).click(function(){showConvexHullOverlay("convex",D.ConvexHull,"#4C9AAF",0,"#4C9AAF",2);toggleOverlayButton(this)})}else{if(F.Name.indexOf("Reo")!=-1){$("#"+C).click(function(){showCircleOverlay("reo",D.CircPt,D.CircRadius,"#4C9AAF",0,"#4C9AAF",2);toggleOverlayButton(this)})}else{if(F.Name.indexOf("Pols")!=-1){$("#"+C).click(function(){showCircleOverlay("pols",D.PolPt,D.PolRadius,"#00ee00",0,"#DF3789",2);toggleOverlayButton(this)})}else{if(F.Name.indexOf("Schw")!=-1){$("#"+C).click(function(){showCircleOverlay("schw",D.SchPt,D.SchRadius,"#0000ee",0,"#DF3789",2);toggleOverlayButton(this)})}}}}}activateTooltips()}function toggleLoading(C){var B="images/loading1.gif";var A="/gerrysite/img/cicero_logo.png";var D=(C)?B:A;$("#cicerologo").children("img").attr("src",D)}function handleParameters(){var D=$(document).getUrlParam("type");var C=$(document).getUrlParam("id");var B=$(document).getUrlParam("state");var A=$(document).getUrlParam("city");if((D!=null)&&(C!=null)&&(B!=null)){D=unescape(D);C=unescape(C);B=unescape(B);A=(A!=null)?unescape(A):"";DrawPage.districtTypeName="err....";DrawPage.districtType=D;DrawPage.searchType="DistrictID";DrawPage.currentCity=A;DrawPage.currentState=B;DrawPage.currentDistrictID=C;selectOfficial(C);return true}return false}function refreshOfficialsList(){if((DrawPage.currentState=="")||(DrawPage.districtType=="")){$("#cboOfficials").html("");return }retrieveOfficials(populateOfficialsDropDown)}function populateOfficialsDropDown(F){if(isNullOrEmpty(F)){var H=DrawPage.currentCity;if((H=="")||(H==null)){$("#cboOfficials").html("Please search for a city/state first")}else{$("#cboOfficials").html("no officials found")}return false}var C="";for(var D in F){var B=F[D];var G=(DrawPage.currentDistrictID==B.DistrictID);var E=(G)?"selected":"";var A="<option "+E+" value='"+B.DistrictID+"'>";A+="District "+B.DistrictID+", ";if(B.City!=null){A+=B.City+" "}A+=B.State+", "+B.Title+". "+B.First+" "+B.Last+"</option>";C+=A+"\n"}$("#cboOfficials").html(C)}function retrieveOfficials(A){var D=(DrawPage.currentCity!=null)?DrawPage.currentCity:"";var C=D+":"+DrawPage.currentState+":"+DrawPage.districtType;if((!isNullOrEmpty(DrawPage.officialsByType))&&(DrawPage.officialsByType[C]!=undefined)){if(A!=null){A(DrawPage.officialsByType[C])}return }var B={City:DrawPage.currentCity,State:DrawPage.currentState,DistrictType:DrawPage.districtType};callGetOfficialsByTypeAndState(B,handleOfficialsResponse);return null}function handleOfficialsResponse(A){var B=A.City+":"+A.State+":"+A.DistrictType;DrawPage.officialsByType[B]=A.Officials;DrawPage.currentCity=A.City;populateOfficialsDropDown(DrawPage.officialsByType[B])}function selectOfficial(B){toggleLoading(true);var A={DistrictID:B,SearchType:"DistrictID",DistrictType:DrawPage.districtType,State:DrawPage.currentState,City:DrawPage.currentCity};callLookupDistricts(A,handleSearchResponse)}function doSearch(){toggleLoading(true);var B=(DrawPage.searchType=="Address");var D=(B)?"":DrawPage.currentCity;var C=(B)?"":DrawPage.currentState;var A={City:D,State:C,TextField:$("#txtSearch").val(),SearchType:DrawPage.searchType,DistrictType:DrawPage.districtType};callLookupDistricts(A,handleSearchResponse)}function doLatLonSearch(B,C){DrawPage.searchType="Coords";var A={lat:B,lon:C,SearchType:DrawPage.searchType,DistrictType:DrawPage.districtType};callLookupDistricts(A,handleSearchResponse)}function showSearchError(A){$(DrawPage.divSearchMessages).html(A);$(DrawPage.divSearchMessages).addClass("ui-state-error ui-corner-all");$(DrawPage.divSearchMessages).show(500,null)}function clearSearchError(){$(DrawPage.divSearchMessages).hide(500,null)}function handleSearchResponse(G){toggleLoading(false);if(G==null){toggleLoading(false);showSearchError("There was a problem communicating with the server, please refresh and try again.");return }if((G.State==null)||(G.State=="")){toggleLoading(false);var F=(DrawPage.searchType=="Address")?"I couldn't find a "+DrawPage.districtTypeName+" district at that address":"Couldn't find that Legislator in this State / District Type";showSearchError(F);return }DrawPage.currentCity=G.City;DrawPage.currentState=G.State;if(!isNullOrEmpty(G.Districts)){DrawPage.currentDistrictID=G.Districts[0].DistrictID}refreshOfficialsList();if(DrawPage.overlay!=""){DrawPage.map.removeLayer(DrawPage.overlay);DrawPage.overlay=""}if((!isNullOrEmpty(G.DistrictOverlays))&&(G.DistrictOverlays[0]!=null)){var D=G.DistrictOverlays[0];var B=D.MapExtent;var A=D.MapUrl;var C=new OpenLayers.Bounds(parseFloat(B.MinX),parseFloat(B.MinY),parseFloat(B.MaxX),parseFloat(B.MaxY));var E=new OpenLayers.Projection("EPSG:4326");C.transform(E,DrawPage.map.getProjectionObject());DrawPage.overlay=new OpenLayers.Layer.Image("districtOverlay",A,C,new OpenLayers.Size(400,700),{numZoomLevels:60,isBaseLayer:false,maxResolution:700,opacity:0.9,transparent:"true",alwaysInRange:true});DrawPage.map.addLayer(DrawPage.overlay);DrawPage.map.setCenter(C.getCenterLonLat(),DrawPage.map.getZoomForExtent(C))}else{toggleLoading(false);var F=(DrawPage.searchType=="Address")?"I couldn't find a "+DrawPage.districtTypeName+" district at that address":"Couldn't find that Legislator in this State / District Type";showSearchError(F);return }}function showCircleOverlay(F,K,D,C,A,M,I){if(DrawPage.referenceOverlays!=""){DrawPage.drawingLayer.destroyFeatures([DrawPage.referenceOverlays]);DrawPage.referenceOverlays=""}if(DrawPage.lastReferenceOverlay==F){DrawPage.lastReferenceOverlay="";return }if(K==null){return }DrawPage.lastReferenceOverlay=F;var G=new OpenLayers.Format.WKT;var E=1*D;var B=G.read(K);var H=OpenLayers.Geometry.Polygon.createRegularPolygon(B.geometry,E,80,0);var J=OpenLayers.Util.extend({},OpenLayers.Feature.Vector.style["default"]);J.fillColor=C;J.fillOpacity=A;J.strokeColor=M;J.strokeWidth=I;var L=new OpenLayers.Feature.Vector(H,null,J);DrawPage.drawingLayer.addFeatures([L]);DrawPage.referenceOverlays=L}function showConvexHullOverlay(D,H,C,A,J,F){if(DrawPage.referenceOverlays!=""){DrawPage.drawingLayer.destroyFeatures([DrawPage.referenceOverlays]);DrawPage.referenceOverlays=""}if(DrawPage.lastReferenceOverlay==D){DrawPage.lastReferenceOverlay="";return }if(H==null){return }DrawPage.lastReferenceOverlay=D;var E=new OpenLayers.Format.WKT;var B=E.read(H);var G=OpenLayers.Util.extend({},OpenLayers.Feature.Vector.style["default"]);G.fillColor=C;G.fillOpacity=A;G.strokeColor=J;G.strokeWidth=F;var I=new OpenLayers.Feature.Vector(B.geometry,null,G);DrawPage.drawingLayer.addFeatures([I]);DrawPage.referenceOverlays=I}function redrawOverlay(){if(DrawPage.overlay!=""){DrawPage.overlay.redraw();DrawPage.drawingLayer.redraw()}};
