dojo.require("dojo.html.style");
redfin.ui.controls.HomeMap=function(_1,_2){
return {overheadMap:null,birdseyeMap:null,initialized:false,styles:{NORTH:"north",WEST:"west",SOUTH:"south",EAST:"east",HYBRID:"hybrid",AERIAL:"aerial",ROAD:"road"},birdseyeOrientations:{"north":VEOrientation.North,"west":VEOrientation.West,"south":VEOrientation.South,"east":VEOrientation.East},mapStyles:{"hybrid":VEMapStyle.Hybrid,"aerial":VEMapStyle.Aerial,"road":VEMapStyle.Road},birdseyeMapInitialized:{},maps:{},isBirdseyeStyle:function(_3){
return (_3==this.styles.NORTH||_3==this.styles.WEST||_3==this.styles.SOUTH||_3==this.styles.EAST);
},onBirdseyeMapLoad:function(_4){
if(!this.birdseyeMapInitialized[_4]){
this.maps[_4].SetBirdseyeOrientation(this.birdseyeOrientations[_4]);
this.birdseyeMapInitialized[_4]=true;
}
},initialize:function(_5,_6){
var _7=this;
for(var i=0;i<_6.length;i++){
var _9=_6[i];
this.maps[_9]=new VEMap(_1+"_"+_9+"_map");
this.maps[_9].LoadMap(new VELatLong(_5.latitude,_5.longitude),this.isBirdseyeStyle(_9)?19:17,this.isBirdseyeStyle(_9)?"o":this.mapStyles[_9],true,VEMapMode.Mode2D,false);
if(this.isBirdseyeStyle(_9)){
this.maps[_9].AttachEvent("onchangeview",this.getBirdseyeLoadFunction(_9));
}
if(!this.isBirdseyeStyle(_9)&&(typeof AddDMPParcelLayer!="undefined")){
var _a=_7.maps[_9];
AddDMPParcelLayer(_a,50);
}
}
dojo.lang.setTimeout(0,function(){
_7.sendParcelDataRequest(_5);
});
if(_6.length>0){
this.showMap(_6[0]);
this.setActiveLink(_6[0]);
}
this.initialized=true;
},getBirdseyeLoadFunction:function(_b){
var _c=this;
return function(){
_c.onBirdseyeMapLoad(_b);
};
},changeStyle:function(_d){
if(!this.initialized){
return;
}
this.showMap(_d);
this.setActiveLink(_d);
return;
},showMap:function(_e){
for(var _f in this.styles){
var _10=this.styles[_f];
var div=dojo.byId(_1+"_"+_10+"_map");
if(div){
div.style.zIndex=1;
}
}
var div=dojo.byId(_1+"_"+_e+"_map");
if(div){
div.style.zIndex=2;
}
},nextPushpinOrParcelId:1,sendParcelDataRequest:function(_12){
var _13=new DMCQueryControl();
var _14=this;
var geo=new DMCPoint(_12.longitude,_12.latitude);
_13.setGeometryFilter(geo);
_13.execute({success:function(_16){
var _17=_16.getByIndex(0);
if(_17!=null){
var _18=_17.getByName("GEOMETRY");
_14.drawPolygon(_18,_14.styles.ROAD);
_14.drawPolygon(_18,_14.styles.HYBRID);
}
},failure:function(err){
_14.addPushpinToMap(_14.styles.ROAD,_12);
_14.addPushpinToMap(_14.styles.HYBRID,_12);
}},"success","failure","ID");
},addPushpinToMap:function(_1a,_1b){
var _1c=null;
var _1d=this;
if(_1b.latitude&&_1b.longitude){
this.maps[_1a].AddPushpin(new VEPushpin(this.nextPushpinOrParcelId,new VELatLong(_1b.latitude,_1b.longitude),_2));
var _1e=dojo.byId(new String(this.nextPushpinOrParcelId));
if(_1e){
_1e.onclick=function(){
};
}
}else{
throw new Error("The listing passed to addPushpinOrParcelToMap did not have a parcel or a latitude/longitude pair.");
}
this.nextPushpinOrParcelId++;
},setActiveLink:function(_1f){
for(var _20 in this.styles){
var _21=dojo.byId(_1+"_change_map_"+this.styles[_20]);
if(_21){
dojo.html.removeClass(_21,"change_map_link_selected");
}
}
var _21=dojo.byId(_1+"_change_map_"+_1f);
if(_21){
dojo.html.addClass(_21,"change_map_link_selected");
}
},drawPolygon:function(_22,_23){
if(_23==null||_22==null){
return;
}
var id="_identifiedPolygon";
var _25=DMCtoVEGeometry(id,_22);
var _26=new VEColor(230,0,0,1);
_25.SetLineColor(_26);
_25.SetLineWidth(3);
_25.SetFillColor(new VEColor(255,255,255,0));
_25.HideIcon();
var _27=new VEShapeLayer();
this.maps[_23].AddShapeLayer(_27);
_27.AddShape(_25);
this.maps[_23].SetMapView(_25.GetPoints());
this.maps[_23].ZoomOut();
}};
};

