if(!dojo._hasResource["mq.draggable"]){
dojo._hasResource["mq.draggable"]=true;
dojo.provide("mq.draggable");
mq.reverseGeocodeLocation=function(_1){
try{
var _2=dojo.hitch(mq,"handleReverseGeocode",_1);
try{
loc=controller._model.locations[_1].location;
UIService.reverseGeocodeMapLocation(loc.latitude,loc.longitude,_2);
}
catch(e){
console.error("Error in mq.reverseGeocodeMapLocation:",e);
}
}
catch(e){
logDebug("mq.reverseGeocodeMapLocation",e);
}
};
mq.handleReverseGeocode=function(_3,_4){
var _5=controller._model.locations[_3].location;
_5.city=_4.city;
_5.state=_4.state;
_5.country=_4.country;
};
mq.getGeneralizedShape=function(_6,_7){
try{
if(enableDrag){
debug("mq.getGeneralizedShape");
var _8=dojo.hitch(mq,"handleGeneralizedShape",_6);
try{
debug("mq.getGeneralizedShape:Calling getGeneralizedShape: ");
UIService.getGeneralizedShape(_7,_8);
}
catch(e){
console.error("Error in mq.getGeneralizedShape:",e);
}
finally{
debug("Finally in mq.getGeneralizedShape");
}
}else{
debug("drag disabled, no generalized call.");
}
}
catch(e){
logDebug("mq.getGeneralizedShape",e);
}
};
mq.turnOffDragEvents=function(){
debug("mq.turnOffDragEvents");
};
mq.handleGeneralizedShape=function(_9,rs){
try{
if(_9.draggableRoute.filter.length){
_9.draggableRoute.filter=[];
}
var _b=rs.m_shapePts.length;
debug("mq.handleGeneralizedShape: "+_b);
var _c=[];
var _d=[];
if(_b==0){
for(var _e=0;_e<rs.m_segmentShapeIndexes.length;_e++){
_c[_e]=new MQA.LatLngCollection();
}
}else{
if(rs.m_segmentShapeIndexes.length==1){
_c[0]=new MQA.LatLngCollection();
for(var m=0;m<_b;m++){
var ll=rs.m_shapePts[m];
var _11=new MQA.LatLng(ll.latitude,ll.longitude);
_c[0].add(_11);
var xy=_9.draggableRoute._tileMap.llToPix(_11);
_d.push(xy.x);
_d.push(xy.y);
}
}else{
var _e=0;
var _13=0;
while(_e<rs.m_segmentShapeIndexes.length-1){
var _14=rs.m_segmentShapeIndexes[_e+1];
_c[_e]=new MQA.LatLngCollection();
if(_14>=_b){
_14=_b-1;
}
for(var m=_13;m<=_14;m++){
var ll=rs.m_shapePts[m];
var _11=new MQA.LatLng(ll.latitude,ll.longitude);
_c[_e].add(_11);
var xy=_9.draggableRoute._tileMap.llToPix(_11);
_d.push(xy.x);
_d.push(xy.y);
}
_13=_14;
_e++;
}
if(_13<_b-1){
_c[_e]=new MQA.LatLngCollection();
for(var m=_13;m<_b;m++){
var ll=rs.m_shapePts[m];
var _11=new MQA.LatLng(ll.latitude,ll.longitude);
_c[_e].add(_11);
var xy=_9.draggableRoute._tileMap.llToPix(_11);
_d.push(xy.x);
_d.push(xy.y);
}
}else{
_c[_e]=new MQA.LatLngCollection();
}
}
}
_9.draggableRoute.eRouteMouseMove=dojo.hitch(_9.draggableRoute,"onRouteMouseMove");
_9.draggableRoute.eRouteMouseOut=dojo.hitch(_9.draggableRoute,"onRouteMouseOut");
_9.draggableRoute.eRouteMouseDown=dojo.hitch(_9.draggableRoute,"onRouteMouseDown");
for(var _e=0;_e<rs.m_segmentShapeIndexes.length;_e++){
var _15=new MQA.LineOverlay();
_15.setValue("shapePoints",_c[_e]);
_15.setValue("borderWidth",10);
_15.setValue("color","#FF00FF");
_15.setValue("colorAlpha",0.01);
_15.setValue("altColor","#FF00FF");
_15.setValue("altColorAlpha",0.01);
controller._model.routeCollection.add(_15,true);
if(enableDrag&&_15.shape){
_15.shape.style.cursor="pointer";
MQA.EventManager.addListener(_15,"mousemove",_9.draggableRoute.eRouteMouseMove);
MQA.EventManager.addListener(_15,"mouseout",_9.draggableRoute.eRouteMouseOut);
MQA.EventManager.addListener(_15,"mousedown",_9.draggableRoute.eRouteMouseDown);
}
}
_9.draggableRoute.addFilter(MQA.Filters.PolyLine,_d);
if(_9.sizeHandler==null){
_9.sizeHandler=dojo.hitch(_9,"onSetSize");
MQA.EventManager.addListener(_9._tileMap,"setsize",_9.sizeHandler);
}
}
catch(e){
logDebug("mq.handleGeneralizedShape",e);
}
};
mq.dotLineLength=function(x,y,x0,y0,x1,y1,o){
function lineLength(x,y,x0,y0){
return Math.sqrt((x-=x0)*x+(y-=y0)*y);
};
if(o&&!(o=function(x,y,x0,y0,x1,y1){
if(!(x1-x0)){
return {x:x0,y:y};
}else{
if(!(y1-y0)){
return {x:x,y:y0};
}
}
var _27,tg=-1/((y1-y0)/(x1-x0));
return {x:_27=(x1*(x*tg-y+y0)+x0*(x*-tg+y-y1))/(tg*(x1-x0)+y0-y1),y:tg*_27-tg*x+y};
}(x,y,x0,y0,x1,y1),o.x>=Math.min(x0,x1)&&o.x<=Math.max(x0,x1)&&o.y>=Math.min(y0,y1)&&o.y<=Math.max(y0,y1))){
var l1=lineLength(x,y,x0,y0),l2=lineLength(x,y,x1,y1);
return l1>l2?l2:l1;
}else{
var a=y0-y1,b=x1-x0,c=x0*y1-y0*x1;
return Math.abs(a*x+b*y+c)/Math.sqrt(a*a+b*b);
}
};
mq.handleSlideEnd=function(){
var _2e=view.mapView.draggableRoute._tileMap;
_2e.overlayOffsetX=_2e.getDragOffset().x;
_2e.overlayOffsetY=_2e.getDragOffset().y;
_2e.overlaydiv.style.left=-(_2e.SURFACE_OFFSET+_2e.overlayOffsetX)+"px";
_2e.overlaydiv.style.top=-(_2e.SURFACE_OFFSET+_2e.overlayOffsetY)+"px";
if(_2e.overlaySurfaces[MQA.OVERAY_DRAG]){
_2e.dragoverlaydiv.style.left=_2e.overlaydiv.style.left;
_2e.dragoverlaydiv.style.top=_2e.overlaydiv.style.top;
}
if(_2e.overlaySurfaces[MQA.OVERAY_DRAG_DOT]){
_2e.dragdotoverlaydiv.style.left=_2e.overlaydiv.style.left;
_2e.dragdotoverlaydiv.style.top=_2e.overlaydiv.style.top;
}
_2e.redrawOverlays();
var xys=[];
view.mapView.draggableRoute.filter=[];
view.mapView.draggableRoute.addFilter(MQA.Filters.PolyLine,xys);
};
}
if(!dojo._hasResource["mq.widget.FuelCost"]){
dojo._hasResource["mq.widget.FuelCost"]=true;
dojo.provide("mq.widget.FuelCost");
dojo.declare("mq.widget.FuelCost",[mq.widget.MQPopup],{constructor:function(){
debug("FuelCost: constructor");
},closeOnBackGroundClick:true,closeButtonRequired:true,popupArrowPlacement:11,executeFlag:false,promoLoginContent:"",postMixInProperties:function(){
this.popupContent=this.promoLoginContent;
this.inherited(arguments);
},postCreate:function(){
var _30=dojo.hitch(this,"handlePromoPopupCallback");
UIService.generatePromo("mainui-fuel-popup",_30);
this.inherited(arguments);
setTimeout(function(){
mq.focus($d("mpgInput"));
if($w("dijit_DialogUnderlay_0")){
$w("dijit_DialogUnderlay_0").layout();
}
},500);
},handlePromoPopupCallback:function(_31){
if($d("fuelPromo")){
}else{
debug("couldnt load promo");
}
}});
}
if(!dojo._hasResource["mq.fuelcostcalculator"]){
dojo._hasResource["mq.fuelcostcalculator"]=true;
dojo.provide("mq.fuelcostcalculator");
mq.calcFuelCost=function(){
try{
mq.showLoadingFuelImage();
var _32=controller._model.routeResults.sessionId;
var _33=dojo.hitch(mq,"handleFuel");
UIService.calculateFuelFromProfile(_32,_33);
ua.a(":MQ08FuelCalc");
}
catch(e){
logDebug("mq.calcFuelCost",e);
}
};
mq.calcFuelCostWithMPG=function(evt){
if(evt){
evt.preventDefault();
}
var w=$w("mqFuelPopup");
var mpg=$d("mpgInput").value;
if(mpg!=parseFloat(mpg)){
var _37=mq.getMessage("ERROR_INVALID_NUMBER");
var _38="<div style='color:#CC0000;font-weight:bold;'><div class='fltl'>"+mq.setImagePng(mqPrefix+"/cdn/dotcom/images/icon-warn-sm.png",18,18)+"</div>"+_37+"</div>";
$d("fuelError").innerHTML=_38;
if(dojox.fx.highlight){
dojox.fx.highlight({node:$d("fuelError"),duration:2000}).play();
}
return;
}
mq.showLoadingFuelImage();
w.executeFlag=true;
if(w){
w.executeFlag=true;
w.close();
}
try{
var _39=controller._model.routeResults.sessionId;
var _3a=dojo.hitch(mq,"handleFuel");
UIService.calculateFuelWithMPG(_39,mpg,_3a);
ua.a(":MQ08FuelCalcMPG");
}
catch(e){
logDebug("mq.calcFuelCostWithMPG",e);
}
};
mq.handleFuel=function(_3b){
try{
mq.hideLoadingFuelImage();
window.fuelResponse=_3b;
if(_3b.cost>0){
$d("dirFuelSummary").innerHTML="$"+_3b.cost.toFixed(2);
mq.hide($d("fuelButton"));
}else{
if((!_3b.loggedIn||!_3b.vehicleAvailable)&&_3b.priceAvailable&&_3b.sessionAvailable){
var _3c=$d("fuelButton");
var _3d=dojo.coords(_3c,true);
var _3e=m2.util.Content.execFtl("/promo/fuelcost");
var _3f=new mq.widget.FuelCost({id:"mqFuelPopup",promoLoginContent:_3e,xoffset:_3d.x+110,yoffset:_3d.y-28,onClose:dojo.hitch(mq,"closeFuelPopup")});
dojo.connect($d("fuelCostForm"),"onsubmit",mq,"calcFuelCostWithMPG");
}else{
if(!_3b.sessionAvailable){
mq.handleFormErrorPopups(null,"<span class=\"redavoid\">"+mq.getMessage("ERROR_SESSION_EXPIRED")+"</span>");
}else{
if(!_3b.priceAvailable){
mq.handleFormErrorPopups(null,"<span class=\"redavoid\">"+mq.getMessage("ERROR_PRICE_NOTAVAILABLE")+"</span>");
}
}
}
}
}
catch(e){
logDebug("mq.handleFuel",e);
}
};
mq.closeFuelPopup=function(){
if(!$w("mqFuelPopup").executeFlag){
ua.a(":MQ08FuelCalcClose");
}
};
mq.showLoadingFuelImage=function(){
var l=$d("loadingFuel");
if(!l){
var div=document.createElement("div");
div.id="loadingFuel";
div.style.position="absolute";
div.style.zIndex="1002";
var img=document.createElement("img");
img.src=mqPrefix+"/cdn/dotcom/images/load_fuel.gif";
div.appendChild(img);
document.body.appendChild(div);
l=div;
}
var _43=mq.calcCenterPosition(155,36);
l.style.left=_43.x+"px";
l.style.top=_43.y+"px";
mq.show(l);
};
mq.hideLoadingFuelImage=function(){
var l=$d("loadingFuel");
mq.hide(l);
};
}
if(!dojo._hasResource["mq.maptabview"]){
dojo._hasResource["mq.maptabview"]=true;
dojo.provide("mq.maptabview");
var resultsOptions=null;
dojo.declare("mq.MapTabView",mq.TabView,{constructor:function(_45,_46,_47){
try{
debug("MapTabView.constructor");
this.manMapList={};
var _48=dijit.getViewport().w-30-dojo.coords($d("rightrailad"),true).w;
($d("mapWindow")).style.width=_48+"px";
($d("mapWindow")).style.height="540px";
this._locationListId=this._idList["locationList"];
var _49=_45._model.viewType;
if(!_49){
_49=mq.savedandrecent.getDefaultMapType();
}
debug(">> "+this.getDefaultMapLocation().longitude+", "+_49+", "+_45._model.zoomLevel);
var _4a=false;
if(serverResults&&_45._model.searchLocation){
if(serverResults.length<2){
if(serverResults[0].resultCode=="SEARCH_RESULTS"){
_4a=true;
}
}else{
if(serverResults[1].resultCode=="SEARCH_RESULTS"){
_4a=true;
}
}
}
if(!_4a){
this.loadMap(_45,_46,_47,_49,_4a);
}
this.tabView=this.tabState.map;
if(_45._model.locations){
var _4b=false;
if(_45._model.printerFriendly){
_4b=true;
_45._model.printerFriendly=false;
}
var _4c=mq.getQueryString(window.location.href,"ua");
if(_4c&&_4c.toUpperCase()=="TRAFFIC"){
ua.a(":MQ08TrafficOn");
}
if(_46){
ua.a(":pv");
this.handleServerRender();
ua.commit();
}else{
this.updateView(_45._model);
}
if(_4b){
_45._model.printerFriendly=true;
}
}else{
if(!_4a){
this.handleServerRender();
}
}
if($d("rblOverviewTab")){
if(rbltabview=="overview"){
mq.rbl.changeTab("Overview");
}else{
if(rbltabview=="reviews"){
mq.rbl.changeTab("Reviews");
}else{
mq.rbl.changeTab("Map");
}
}
}
}
catch(e){
logDebug("maptabview.constructor",e);
}
},loadMap:function(_4d,_4e,_4f,_50){
this.initMap(this.getDefaultMapLocation(),_50,_4d._model.zoomLevel,_4e);
try{
MQA.EventManager.addListener(this._tileMap,"routeRefresh",dojo.hitch(this,"onRouteRefresh"));
MQA.EventManager.addListener(this._tileMap,"redrawoveralys",dojo.hitch(this,"onRedrawOveralys"));
if(!this.zoomHandler){
this.zoomHandler=dojo.hitch(this,"onZoomEnd");
}
this.sizeHandler=null;
MQA.EventManager.addListener(this._tileMap,"moveend",dojo.hitch(this,"onMoveEnd"));
}
catch(e){
logDebug("maptabview.loadMap-listeners",e);
}
},bestFit:function(evt){
if(this.draggableRoute){
this.draggableRoute.onZoomEnd(null);
}
},onRouteRefresh:function(evt){
model.routeNeedsUpdate=true;
},onRedrawOveralys:function(evt){
model.routeNeedsUpdate=true;
},onZoomEnd:function(evt){
if(this.draggableRoute){
this.draggableRoute.onZoomEnd(null);
}
},onMoveEnd:function(evt){
if(model.routeNeedsUpdate){
if(this.draggableRoute){
this.draggableRoute.onZoomEnd(null);
}
model.routeNeedsUpdate=false;
}
},onSetSize:function(evt){
if(this.draggableRoute){
this.draggableRoute.onZoomEnd(null);
}
model.routeNeedsUpdate=false;
},imagePath:mqPrefix+"/cdn/dotcom/images",iconPattern:"stop_{VAR}.png",VARIANCE_LIMIT:0.1,updateView:function(_57){
ScrollLock.lock();
try{
if(typeof (this._tileMap)=="undefined"||!this._tileMap){
var _58=controller._model.viewType;
if(!_58){
_58=mq.savedandrecent.getDefaultMapType();
}
this.loadMap(controller,false,this._idList,_58);
}
debug("MapTabView.updateView");
mq.hideLoadingImage();
ua.a(":pv");
if(!!(view)){
if(_57.mode){
view.contentModeHandler(_57.mode);
}else{
if(view.getCurrentMode()!="MAPS"){
view.contentModeHandler("MAPS");
}
}
view.resizeLayout();
}
if(!_57.printerFriendly&&mq.isShowing($d("printDisplay"))){
window.backToMap();
}
var _59="";
var _5a="";
try{
if(_57.routeResults!=null&&_57.routeResults.resultMessages!=null&&!_57.routeResults.wasAvoidError){
var _5b=_57.routeResults.resultMessages;
debug("Route messages found: "+_5b.length);
for(var i=0;i<_5b.length;i++){
debug("Message "+i+": "+_5b[i]);
var tmp=mq.getMessage(_5b[i].match(/^[A-Z,_]*/));
(mq.startsWith(_5b[i],"WARN"))?_5a+=(tmp+"<br/>"):_59+=(tmp+"<br/>");
}
_59=(_59!="")?_59.substring(0,_59.lastIndexOf("<br/>")):_59;
_5a=(_5a!="")?_5a.substring(0,_5a.lastIndexOf("<br/>")):_5a;
}
}
catch(e){
logDebug("maptabview.updateView-dispRouteErrors",e);
}
if(_59.length<=0){
if(_57.routeResults){
_57.routeResults.wasAvoidError=null;
}
this.updateShowHideRoutingLnk(_57.showRoute);
(_57.viewType!=null)?this._tileMap.setMapType(_57.viewType):this._tileMap.setMapType(mq.savedandrecent.getDefaultMapType());
var _5e=_57.locations;
var _5f=$d("mapWindow");
if(_5e!=null&&_5e.length>0){
try{
mq.show($d("itin"));
_5f.style.borderTopWidth="1px";
this.updateMap(_57);
if(_5e.length==1){
mq.hide($d("routingOptions"));
dojo.removeClass("MAPSborder","routeWin");
mq.hide($d("infoMessage"));
}else{
mq.show($d("dirSummary"));
mq.show($d("routingOptions"));
dojo.addClass("MAPSborder","routeWin");
}
if(!!(view)){
view.resizeLayout();
}
}
catch(e){
logDebug("maptabview.updateView-Locs>Zero",e);
}
}else{
try{
mq.hide($d("itin"));
_5f.style.borderTopWidth="0px";
this.removeRouteHighlight();
mq.util.clearPoiListeners(this._tileMap.getShapeCollection(""));
this._tileMap.removeShapeCollection("");
this.setDefaultMap(this.getDefaultMapLocation());
mq.hide($d("dirSummary"));
mq.hide($d("routingOptions"));
mq.hide($d("routingOptions2"));
}
catch(e){
logDebug("maptabview.updateView-Locs<=Zero",e);
}
}
try{
debug("Calling tileMap.saveState");
this._tileMap.saveState();
this.cleanLocationList();
var _60=controller.numLocs();
if(_60>1){
this.drawLocations(_57);
}
if(_60>0){
this.addLocationForm(_60,"loc",this._locationListId);
if(_60==1){
mq.hide($d("findLoc"));
}else{
if(_60>1){
view.updateFindNBLocList();
}
}
}
this.updateDirSummary();
mq.util.updateBrowserTitle();
this.updateRouteOptions(true);
if(serverResults&&view.mapView){
serverResults=null;
}
if(dirForm&&dirForm.results){
dirForm.results=null;
}
(_5a.length>0)?this.showRouteWarningMessage(_5a):this.hideRouteWarningMessage();
this.scrollIntoView();
view.scrollToElement=null;
}
catch(e){
logDebug("maptabview.updateView-finishing",e);
}
}else{
this.updateShowHideRoutingLnk(_57.showRoute);
this.showGenericPopup(_59);
}
if(!_57.showPrint){
ua.commit();
}
debug("Before showPrint");
if(_57.printerFriendly){
window.showPrint();
}
}
catch(e){
logDebug("maptabview.updateView-generic",e);
}
finally{
ScrollLock.unlock();
}
},updateMap:function(_61){
try{
this._tileMap.removeShapeCollection("");
var _62=true;
this.addPoisToMap(_61.locations);
var _63=true;
if(_61.zoomLevel!=null&&_61.zoomLevel){
debug("MapTabView.updateView: restoring map center, zoom level, and best fit");
if(_61.showRoute){
if(!_61.routeResults){
controller.rerunRoute();
}else{
_63=false;
this.addRouteHighlight(_61,_62);
}
}
this._tileMap.setCenter(new MQA.LatLng(_61.centerLatitude,_61.centerLongitude),_61.zoomLevel);
}else{
if(_61.showRoute&&_61.routeResults!=null){
debug("MapTabView.updateView: adding route");
_63=false;
this.addRouteHighlight(_61,_62&&!this._isDragRecompute);
}else{
if(_61.locations.length==1){
var loc=_61.locations[0].location;
if(loc.geocodeQuality){
debug("MapTabView.updateView: setting zoom based on geocode quality");
var _65=this._tileMap.getZoomLevel();
this._tileMap.setCenter(new MQA.LatLng(loc.latitude,loc.longitude),this.zoomLevels[loc.geocodeQuality]);
if(this._tileMap.getZoomLevel()==_65){
controller.panZoomChange(_65,this._tileMap.getCenter());
}
}else{
debug("Geocoder did not return a geocodeQuality");
this._tileMap.bestFit(false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
}
}else{
debug("MapTabView.updateView: calling best fit");
this._tileMap.bestFit(false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
}
}
}
if(_63){
debug("MapTabView: removing route highlight");
this.removeRouteHighlight();
}
if(!this._isDragRecompute&&controller.numLocs()>1&&_61.blId&&_61.blOption=="route"&&_61.searchResults&&_61.searchResults.searchResults.length>0){
this._tileMap.bestFit(false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
}
_61.resultsAlreadyDrawn=null;
this._isDragRecompute=false;
}
catch(e){
logDebug("maptabview.updateMap",e);
}
},scrollIntoView:function(){
try{
var _66=controller._model;
var _67;
if((typeof (view.scrollToElement)!="undefined")&&view.scrollToElement!=null){
if(view.scrollToElement==0){
if(window.ScrollLock){
window.ScrollLock.clear();
}
window.scrollTo(0,0);
view.scrollToElement=null;
return;
}
_67=$d(view.scrollToElement);
view.scrollToElement=null;
}
if(_67){
var _68=dijit.getViewport();
if(!mq.util.isElementInView(_67)){
mq.util.scrollElemToView(_67,_68.h-200);
}
}
}
catch(e){
logDebug("maptabview.scrollIntoView",e);
}
},modelToRouteData:function(_69){
var _6a=_69.routeResults,_6b=_69.routeOptions,i,_6d,_6e={sessionId:_6a.sessionId,mapServerUrl:_6a.mapServerUrl,boundingBox:{ul:{lat:_6a.upperLeft.latitude,lng:_6a.upperLeft.longitude},lr:{lat:_6a.lowerRight.latitude,lng:_6a.lowerRight.longitude}}},_6f={avoid:[],unit:(_6b.distanceUnit||"m").toLowerCase(),routeType:(_6b.routeType||"fastest").toLowerCase()},_70=[];
_6e.options=_6f;
if(_6b.avoidTollRoads){
_6f.avoid.push("tollroad");
}
if(_6b.avoidSeasonal){
_6f.avoid.push("seasonal");
}
if(_6b.avoidFerries){
_6f.avoid.push("ferries");
}
if(_6b.avoidUnpaved){
_6f.avoid.push("unpaved");
}
_6e.locations=_70;
for(i=0;i<_69.locations.length;i++){
_6d=_69.locations[i].location;
_70.push({modelLoc:_69.locations[i],gefId:_6a.locationGEFIDs[i],latLng:{lat:_6d.latitude,lng:_6d.longitude},type:(_6d.locationType==2?"v":"s")});
}
return _6e;
},removeRouteHighlight:function(){
var _71=this._routeController;
if(_71){
_71.dispose();
this._routeController=null;
}
},routeCustomizePoi:function(poi){
var _73=poi.location,_74;
if(!_73){
return;
}
_74=_73.modelLoc.location;
var c=controller;
poi.setDeclutter(true);
poi.setDeclutterFixed(true);
if(_73.type=="v"){
if(poi.getInfoTitleHTML&&poi.getInfoTitleHTML.length>0){
$a("MQ08DRMoveVia","r");
}else{
ua._userAction=null;
ua.a(":MQ08DRAddVia");
}
poi.setInfoTitleHTML("Via: "+_74.addressLine1);
poi.setInfoContentHTML(mq.util.getViaInfoPopupContent(poi.locationIndex,_74,poi.locationIndex,false,true,false));
poi.setKey("vias-"+poi.locationIndex);
}else{
var _76=function(_77,_78){
poi.setInfoTitleHTML(mq.util.getMiniPopupContent(_77));
poi.setInfoContentHTML(mq.util.getInfoPopupContent(_77,_78,false,true,false));
poi.setRolloverContent(m2.util.Bubble.formatRolloverContent(_77));
poi.setKey("stops-"+_78);
};
if((_74.city==""&&_74.state=="")){
var _79=this;
var _7a=function(_7b){
_74.city=_7b.city;
_74.state=_7b.state;
_74.country=_7b.country;
_76(_74,poi.locationIndex);
var loc=controller._model.locations[poi.locationIndex].location;
loc.city=_7b.city;
loc.state=_7b.state;
loc.country=_7b.country;
if(_7b.country!="CA"){
setTimeout(function(){
_79.cleanLocationList();
_79.drawLocations(model);
_79.addLocationForm(controller.numLocs(),"loc",_79._locationListId);
},500);
$a("MQ08DRMoveStop","r");
}
};
try{
UIService.reverseGeocodeMapLocation(_74.latitude,_74.longitude,_7a);
}
catch(e){
_76(_74,poi.locationIndex);
console.error("Error in mq.reverseGeocodeMapLocation:",e);
}
}else{
_76(_74,poi.locationIndex);
}
}
MQA.EventManager.addListener(poi,"infowindowopen",dojo.hitch(this,"openInfoWindow"));
MQA.EventManager.addListener(poi,"infowindowclose",dojo.hitch(this,"clickCloseInfoWindow"));
},avoidManeuversLostPopup:function(){
var _7d=new dojox.string.Builder();
_7d.append("<div class=\"alert-warning\">");
_7d.append(" <img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_7d.append(" <span>"+mq.getMessage("MSG_DRAG_LOSE_AVOIDS")+"</span><br/><br/>");
_7d.append(" <div class=\"textc\">");
_7d.append("  <input type=\"button\" value=\"OK\" onclick=\"Javascript:$w('confirmAvoidManeuversLost').close();view.mapView.avoidManeuversLostPopupOK();\"");
_7d.append(" class=\"btn\" id=\"routeClearOk\"/>&nbsp;&nbsp;&nbsp;");
_7d.append("  <input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('confirmAvoidManeuversLost').handleCancel();view.mapView.avoidManeuversLostPopupCancel();\"");
_7d.append(" class=\"btn\" id=\"routeClearCancel\"/>");
_7d.append(" </div>");
_7d.append("</div>");
_7d=_7d.toString();
var _7e=new mq.widget.MQPopup({id:"confirmAvoidManeuversLost",position:"center",popupContent:_7d});
},avoidManeuversLostPopupOK:function(){
var _7f=this._controller._model;
_7f.routeOptions.avoidGEFIDList=null;
this.routeRecomputeChangedRoute(_7f,this._tmpRdLocations);
delete this._tmpRdLocations;
},avoidManeuversLostPopupCancel:function(){
var _80=this._controller._model;
delete this._tmpRdLocations;
this._controller.rerunRoute();
},routeRecomputeChangedRoute:function(_81,_82){
if(_81.routeOptions.avoidGEFIDList&&_81.routeOptions.avoidGEFIDList.length>0){
this._tmpRdLocations=_82;
this.avoidManeuversLostPopup();
return;
}
var _83=_81.locations,i,j=0,_86=[],_87,_88;
for(i=0;i<_82.length;i++){
_88=_82[i];
_87=_88.modelLoc;
if(_87){
_86.push(_87);
}else{
_86.push({location:{name:"",addressLine1:_88.street,city:_88.city,state:_88.state,postalCode:_88.postalCode,county:"",country:_88.country,latitude:_88.latLng.lat,longitude:_88.latLng.lng,geocodeQuality:"",phoneNumber:"",latLngPrecision:"6",locationType:(_88.type=="s"?1:2),dragPoint:0}});
}
}
_81.locations=_86;
this._isDragRecompute=true;
this._controller.rerunRoute();
},canStartDrag:function(){
if(this._controller.numVias()>=draggable_max_viastops){
var _89=new dojox.string.Builder();
_89.append("<div class=\"alert-warning\" style=\"display: block;width: 130px;\">");
_89.append("<span class=\"avoid b\">You have reached the maximum number of route editing points allowed.</span>");
_89.append("</div>");
var _8a=this._tileMap.display,_8b=0,_8c=0,_8d=MQA.Util.getParentOffset(_8a.elt),_8e=_8a.currentDrag;
if(_8e){
_8b=_8e.startXY.x-_8a.ulX+_8d.x;
_8c=_8e.startXY.y-_8a.ulY+_8d.y;
}
var _8f=mq.getPopupContentWidthHeight(_89.toString()),_90=new mq.widget.MQPopup({id:"draggableBubble",xoffset:_8b-63,yoffset:_8c+30,bgOpacity:0,fadingBg:false,closeButtonRequired:false,closeOnBackGroundClick:false,popupArrowPlacement:0,arrowOffsetX:60,popupImage:"sprt-pop-ylw",bgRequired:true,popupMinHeight:50,popupContent:_89.toString()});
$d("draggableBubble").focus();
setTimeout("$w('draggableBubble').close()",1500);
return false;
}
return true;
},addRouteHighlight:function(_91,_92){
var _93=this._routeController,io,_95,_96;
if(!_93){
io=new MQA.RouteIO("/_svc/routeio");
_95=new MQA.Route.RouteDelegate();
_95.customizePoi=dojo.hitch(this,"routeCustomizePoi");
_95.recomputeChangedRoute=dojo.hitch(this,"routeRecomputeChangedRoute",_91);
_95.canStartDrag=dojo.hitch(this,"canStartDrag");
_93=this._tileMap.createRoute(_95,io);
this._routeController=_93;
}
_96=this.modelToRouteData(_91);
if(_92&&_96.boundingBox){
this._tileMap.zoomToRect(_96.boundingBox);
}
_93.setRouteData(_96);
},rolloverManeuver:function(evt){
debug("TabView.rolloverManeuver: "+evt.eventName);
var _98=evt.srcObject;
if(evt.eventName=="MQA.LineOverlay.mouseOut"){
_98.setAltStateFlag(false);
}else{
_98.setAltStateFlag(true);
}
},showGenericPopup:function(_99){
try{
debug("MapTabView.showGenericPopup: "+_99);
var sb=new dojox.string.Builder();
sb.append("<div class=\"alert-warning\" style=\"width: 220px\">").append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">").append("<div class=\"avoid\">"+_99+"</div></div>");
var _9b=new mq.widget.MQPopup({id:"mqErrorPopup",position:"center",popupImage:"sprt-pop-ylw",popupContent:sb.toString(),closeButtonRequired:true});
}
catch(e){
logDebug("maptabview.genericError:"+(_99)?_99:"",e);
}
},cleanLocationList:function(){
try{
debug("MapTabView.cleanLocationList");
var _9c=10+parseInt(draggable_max_viastops);
for(var i=0;i<=_9c;i++){
if(window["loc"+i+"Form"]){
mq.destroyForm(window["loc"+i+"Form"]);
window["loc"+i+"Form"]=null;
}
}
dijit.registry.byClass("mq.widget.LocationListItem").forEach(function(w){
debug("destory widget: "+w.id);
w.destroy();
});
$d(this._locationListId).innerHTML="";
if(this.manMapList){
for(var i in this.manMapList){
var map=this.manMapList[i];
if(!dojo.isSafari){
map.dispose();
}
map=null;
delete this.manMapList[i];
}
}
}
catch(e){
logDebug("maptabview.cleanLocationList",e);
}
},drawLocations:function(_a0){
try{
if(_a0.locations!=null){
debug("MapTabView.drawLocations: "+_a0.locations.length);
var ul=document.createElement("div");
ul.setAttribute("id","locationList");
ul.setAttribute("class","locationList");
$d(this._locationListId).appendChild(ul);
if(_a0.showRoute&&_a0.routeResults!=null&&_a0.locations.length>1){
var div=document.createElement("div");
dojo.addClass(div,"dirTitle");
var _a3=new dojox.string.Builder();
_a3.append("Directions");
_a3.append("<div id=\"avoidRestore\" style=\"display:none;\">");
_a3.append("<div class=\"fltl\"><img src=\""+mqPrefix+"/cdn/dotcom/images/icons/icon-alert-info.gif\" height=\"15\" width=\"15\"></div>");
_a3.append("<a title=\"Click to restore avoided maneuvers\" id=\"restoreAvoidsLnk\" onclick=\"controller.removeAvoidSegments();\">Click to restore avoided maneuvers</a>");
_a3.append("</div>");
_a3.append("<div class=\"clearb\"></div>");
div.innerHTML=_a3.toString();
$d(this._locationListId).appendChild(div);
}
var _a4=0;
for(i=0;i<_a0.locations.length;i++){
loc=_a0.locations[i].location;
if(!loc.locationType||loc.locationType==1){
_a4++;
}
}
var _a6=0;
for(i=0;i<_a0.locations.length;i++){
loc=_a0.locations[i].location;
if(!loc.locationType||loc.locationType==1){
this.showLocationListItem(loc,_a6,_a4,ul);
_a6++;
}
}
if(_a0.showRoute){
for(i=0;i<_a0.routeResults.treks.length;i++){
this.showNarrative(_a0,i);
}
$d(this._locationListId).appendChild(ul);
}
if(_a0.showRoute&&_a0.routeResults!=null&&_a0.locations.length>1){
debug("Show Total Time and Distance");
var div=document.createElement("div");
dojo.addClass(div,"routeResults");
var _a7=new dojox.string.Builder();
_a7.append("<div class=\"narrTotal\">");
_a7.append("Total Estimated Time: <span class=\"timeSpan\">"+_a0.routeResults.time+"</span>");
_a7.append("Total Estimated Distance: <span>"+_a0.routeResults.distance+"</span>");
_a7.append("</div>");
div.innerHTML=_a7.toString();
$d(this._locationListId).appendChild(div);
if(_a0.routeResults.informationAreas){
var msg=new dojox.string.Builder();
for(var i=0;i<_a0.routeResults.informationAreas.length;i++){
var _a9=_a0.routeResults.informationAreas[i];
msg.append("<div class=\"infoicon\"><img src=\""+mqPrefix+"/cdn/dotcom/images/icon-info.gif\" height=\"18\" width=\"18\"></div>");
msg.append("<div class=\"infomsg\"><span>"+_a9.title+"</span><br/>");
msg.append(_a9.message);
msg.append("</div>");
msg.append("<div class=\"clearb\"></div>");
}
$d("infoMessage").innerHTML=msg.toString();
mq.show($d("infoMessage"));
}else{
$d("infoMessage").innerHTML="";
mq.hide($d("infoMessage"));
}
}
}
}
catch(e){
logDebug("maptabview.drawLocations",e);
}
},reorder:function(){
var _aa=[];
var _ab=$d("locationList").childNodes;
for(i=0;i<_ab.length;i++){
id=_ab[i].id;
index=id[id.length-1];
_aa[i]=$w("listItem"+index).location;
}
this._controller.reorder(_aa);
},showNarrative:function(_ac,_ad){
try{
debug("MapTabView.showNarrative: "+_ad);
if(_ac.routeResults==null||!_ac.routeResults.treks||_ac.routeResults.treks.length==0||(_ad>(_ac.routeResults.treks.length-1))){
return;
}
var _ae=$d("routeNarrative"+_ad);
if(_ae){
if($d("dirHide"+_ad)){
dojo.disconnect($d("dirHide"+_ad),"onclick",this,"toggleNarrative");
}
var sb=new dojox.string.Builder();
sb.append("<div class=\"routeNarrative\"><div class=\"narrHeader\"><img class=\"alignm\" title=\"Hide/Show Route\" alt=\"Hide/Show Route\" id=\"dirHide"+_ad+"\" src=\""+this.imagePath+"/arw-dir_open.png\">&nbsp;&nbsp;Directions from ");
sb.append(this.alphabet[_ad]+" to "+this.alphabet[_ad+1]+":</div>");
var _b0=_ac.routeResults.treks[_ad];
sb.append(this.createNarrativeTableExpand(_b0,_ad,_ac.routeResults.variance));
sb.append("<div class=\"narrTotalEst\">Estimated Time: "+_b0.time+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
sb.append("Estimated Distance: "+_b0.distance+"</b></div></div>");
_ae.innerHTML=sb.toString();
dojo.connect($d("dirHide"+_ad),"onclick",this,"toggleNarrative");
if(this.tabView==this.tabState.text){
for(var i=0;i<_b0.maneuvers.length;i++){
var man=_b0.maneuvers[i];
if(man.showMap){
this.showManeuverMap(_ad,i);
}
}
}
}
debug("Index at end of showNarrative: "+_ad);
}
catch(e){
logDebug("maptabview.showNarriative",e);
}
},hasVariance:function(loc){
flag=false;
if(loc.distance!=null&&loc.distance>this.VARIANCE_LIMIT){
flag=true;
}
return flag;
},displayVarianceMessage:function(_b4,_b5){
var _b6=controller._model.routeOptions.distanceUnit;
var msg=(_b5==0)?mq.getMessage("VARIANCE_BEGIN",[mq.util.formatDistance(_b4,_b6)]):mq.getMessage("VARIANCE_END",[mq.util.formatDistance(_b4,_b6)]);
return msg;
},createNarrativeTableExpand:function(_b8,_b9,_ba){
debug("MapTabView.createNarrativeTableExpand");
var sb=new dojox.string.Builder();
sb.append("<div id=\"narrative"+_b9+"\">");
if(_ba[_b9]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_ba[_b9],0));
sb.append("</div>");
}
sb.append("<table width=\"100%\">");
sb.append("<tr>");
sb.append("<td>");
for(k=0;k<_b8.maneuvers.length;k++){
var man=_b8.maneuvers[k];
sb.append("<table class=\"rtRow\" width=\"100%\" id=\"maneuver"+_b9+"-"+k+"\">");
sb.append("<tr>");
sb.append("<td class=\"rtCol1\" valign=\"top\"><img src=\""+man.roadSignUrl+"\"/></div></td>");
sb.append("<td class=\"rtCol2\" valign=\"top\">"+(k+1)+":&nbsp;</td>");
sb.append("<td class=\"rtCol3\" valign=\"top\">").append(man.narrative.replace(/\//g,"/<span class=\"sm\"> </span>"));
if(man.message!=null&&man.message!=""){
sb.append("<div class=\"red\">(").append(mq.getMessage(man.message)).append(")</div>");
}
sb.append("</td>");
sb.append("<td align=\"right\" valign=\"top\">");
sb.append("<table>");
sb.append("<tr>");
sb.append("<td class=\"rtCol4\">&nbsp;");
if(man.distance!=null){
sb.append(man.distance);
}
sb.append("</td>");
sb.append("<td class=\"rtCol5\">");
sb.append("<ul class=\"bLinks\">");
if(k>0&&k<_b8.maneuvers.length-1){
if(man.message&&man.message=="MSG_UNABLE_TO_AVOID"){
sb.append("<li class=\"singleli\" id=\"manMapLink"+_b9+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_b9+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
}else{
sb.append("<li class=\"firstli\" id=\"manMapLink"+_b9+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_b9+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
sb.append("<li class=\"lastli\"><a href=\"javascript:view.mapView.avoidSegmentPopup("+_b9+","+k+");\">"+mq.getMessage("AVOID")+"</a></li>");
}
}else{
sb.append("<li class=\"singleli\" id=\"manMapLink"+_b9+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_b9+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
}
sb.append("</ul>");
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
sb.append("</td>");
sb.append("</tr>");
sb.append("<tr>");
sb.append("<td colspan=\"5\">");
sb.append("<div style=\"width:400px;height:200px;\" class=\"manMapHide\" id=\"manMap"+_b9+"-"+k+"\"></div>");
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
}
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
if(_ba[_b9+1]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_ba[_b9+1],1));
sb.append("</div>");
}
sb.append("</div>");
return sb.toString();
},toggleNarrative:function(evt){
debug("toggleNarrative: "+evt.currentTarget.id);
id=evt.currentTarget.id.substring(7);
if($d("narrative"+id).style.display=="none"){
ua.a(":MQ08MaxRouteMan");
$d("narrative"+id).style.display="block";
document.getElementById("dirHide"+id).src=this.imagePath+"/arw-dir_open.png";
}else{
ua.a(":MQ08MinRouteMan");
$d("narrative"+id).style.display="none";
document.getElementById("dirHide"+id).src=this.imagePath+"/arw-dir_clsd.png";
}
},chooseAmbigLocation:function(_be){
debug("MapTabView.chooseAmbigLocation: "+_be);
var _bf=$w("ambigWin");
var loc=_bf.resultList[_be];
debug("loc-addressInput: "+loc.addressInput);
if(loc.query!=null&&loc.query!=""){
this._controller._model.searchLocation=loc;
this._controller.search(loc,_bf.position);
}else{
this._controller.addLocation(loc,_bf.position);
}
_bf.close();
},removeLocation:function(_c1){
debug("MapTabView.removeLocation: "+_c1);
var _c2=new dojox.string.Builder();
_c2.append("<div class=\"alert-warning\">");
_c2.append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_c2.append("<span>"+mq.getMessage("MSG_CLEAR_LOCATION")+"</span><br/><br/>");
_c2.append("<div class=\"textc\">");
_c2.append("<input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.confirmRemoveLocation("+_c1+");\" class=\"btn\" id=\"locationClearOk\"/>&nbsp;&nbsp;&nbsp;");
_c2.append("<input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('removeLocation').handleCancel();\" class=\"btn\" id=\"locationClearCancel\"/>");
_c2.append("</div>");
_c2.append("</div>");
_c2=_c2.toString();
var _c3=new mq.widget.MQPopup({id:"removeLocation",position:"center",popupContent:_c2});
},confirmRemoveLocation:function(_c4){
$w("removeLocation").handleAccept();
if(controller.numStops()==2){
var _c5=controller._model;
var _c6=document.getElementById("mapIdHidden");
if(_c6!=null){
var _c7=_c6.value;
_c7=_c7.replace(",","");
}
controller.removeVias(_c4);
var _c8=controller.getLocIndexOfStop(_c4);
_c5.locations.splice(_c8,1);
mq.createUrlFromModel(_c5,"",_c7);
}else{
this.cleanLocationList();
mq.showLoadingImage();
controller.removeLocation(_c4);
}
},acceptHandler:function(evt){
var _ca=this._controller._model.routeOptions;
if(_ca==null){
_ca={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_ca.avoidHighways=true:_ca.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_ca.avoidTollRoads=true:_ca.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_ca.avoidSeasonal=true:_ca.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_ca.avoidFerries=true:_ca.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_ca.avoidUnpaved=true:_ca.avoidUnpaved=false;
($d("fastest").checked)?_ca.routeType="FASTEST":_ca.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_ca.reverseRoute=true;
$d("rev").value=false;
}else{
_ca.reverseRoute=false;
}
view.scrollToElement=0;
this.setAdvancedRoutingOptions();
},reverseRoute:function(evt){
$d("rev").value=true;
this.acceptHandler();
},reverseRouteQuick:function(evt){
$d("rev").value=true;
var _cd=this._controller._model.routeOptions;
if(_cd==null){
_cd={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_cd.avoidHighways=true:_cd.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_cd.avoidTollRoads=true:_cd.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_cd.avoidSeasonal=true:_cd.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_cd.avoidFerries=true:_cd.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_cd.avoidUnpaved=true:_cd.avoidUnpaved=false;
($d("fastest").checked)?_cd.routeType="FASTEST":_cd.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_cd.reverseRoute=true;
$d("rev").value=false;
}else{
_cd.reverseRoute=false;
}
view.scrollToElement=0;
ua.a(":MQ08StartEndSwitch");
mq.showLoadingImage();
this._controller.rerunRoute();
},editLocation:function(_ce){
debug("MapTabView.editLocation: "+_ce);
var idx=this._controller.getLocIndexOfStop(_ce);
ua.a(":MQ08Edit");
var _d0=$d("location"+_ce);
mq.hide($d("locDiv"+_ce));
var _d1="loc"+_ce;
window[_d1+"Form"]=new mq.editlocationform({template:"editLocation",jsId:_d1+"Form",prefix:_d1,formType:"edit",mode:"ajax",tmpStartLocation:$w("listItem"+_ce).location,parentElem:$d("locEditDiv"+_ce),searchBoxStartId:_d1+"0-query",locationBoxStartId:_d1+"0-addressInput",locNum:_ce});
},showLocationListItem:function(loc,_d3,_d4,_d5){
debug("MapTabView.showLocationList: "+_d3);
loc.addressInput=mq.formatLocationSingleLine(loc);
var w=new mq.widget.LocationListItem({id:"listItem"+_d3,position:_d3,listSize:_d4,location:loc});
dojo.connect(w,"onRemove",this,"removeLocation");
dojo.connect(w,"onMoveUp",this._controller,"moveUp");
dojo.connect(w,"onMoveDown",this._controller,"moveDown");
dojo.connect(w,"onEdit",this,"editLocation");
dojo.connect(w,"onZoomToStreet",this,"zoomToStreet");
_d5.appendChild(w.domNode);
},chooseSavedRecent:function(_d7,_d8){
var _d9=$w("savedRecent"+_d7);
_d9.close();
var _da=dojo.cookie.getCookie("locationhistory");
var _db=mq.util.parseLocations(_da);
var loc=_db[_d8].location;
this._controller.addLocation(loc,_d7);
},showManeuverMap:function(_dd,_de){
debug("Showing maneuver map: "+_dd+","+_de);
ua.a(":MQ08ManMap");
var _df=$d("manMap"+_dd+"-"+_de);
dojo.removeClass(_df,"manMapHide");
dojo.addClass(_df,"manMapShow");
routeResults=this._controller._model.routeResults;
var man=routeResults.treks[_dd].maneuvers[_de];
var l1=man.shapePoints[0];
man.showMap=true;
var _e2=-3;
var _e3=-27;
var _e4=new MQA.ShapeCollection();
var _e5=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_de+1)+".png",26,27,true,false);
var _e6=new MQA.Icon("http://img.mqcdn.com/mqtoolkit/shadow.png",23,7);
if(!l1){
var loc=controller._model.locations[_dd].location;
l1={latitude:loc.latitude,longitude:loc.longitude};
}
var pt1=new MQA.Poi(new MQA.LatLng(l1.latitude,l1.longitude));
pt1.setValue("iconOffset",new MQA.Point(_e2,_e3));
pt1.setValue("shadow",_e6);
pt1.setValue("shadowOffset",new MQA.Point(5,-4));
pt1.setIcon(_e5);
pt1.setKey("pois-"+(_de+1));
_e4.add(pt1);
if(_de<routeResults.treks[_dd].maneuvers.length-1){
var l2=man.shapePoints[1];
if(l2){
var _ea=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_de+2)+".png",26,27,true,false);
var pt2=new MQA.Poi(new MQA.LatLng(l2.latitude,l2.longitude));
pt2.setValue("iconOffset",new MQA.Point(_e2,_e3));
pt2.setValue("shadow",_e6);
pt2.setValue("shadowOffset",new MQA.Point(5,-4));
pt2.setIcon(_ea);
pt2.setKey("pois-"+(_de+2));
_e4.add(pt2);
}
}
if(_e4.getSize()>1){
var _ec={};
_ec.bestFitRect=_e4.getBoundingRect();
}
var _ed=new MQA.TileMap(_df,12,new MQA.LatLng(l1.latitude,l1.longitude),"map",_ec||null);
MQA.withModule("zoomcontrol",function(){
var _ee=new MQA.ZoomControl(_ed);
_ed.addControl(_ee,new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(5,15)));
});
var _ef=new MQA.Icon(this.imagePath+"/via-red-circle.png",11,11);
var _f0=0;
for(var i=0;i<controller._model.locations.length;i++){
var _f2=new MQA.Icon(this.imagePath+"/icons/stop_"+_f0+".png",27,27,true,false);
var l=controller._model.locations[i].location;
var pt=new MQA.Poi(new MQA.LatLng(l.latitude,l.longitude));
if(l.locationType==1){
pt.setKey("stops-"+unescape("%"+(_f0+65).toString(16)));
pt.setIcon(_f2);
pt.setValue("shadow",_e6);
pt.setValue("shadowOffset",new MQA.Point(5,-4));
_f0++;
}else{
pt.setKey(i);
pt.setIcon(_ef);
pt.setValue("iconOffset",new MQA.Point(-4,-4));
pt.setValue("shadow",null);
}
_e4.add(pt);
}
_ed.addShapeCollection(_e4);
MQA.EventManager.addListener(_ed,"dragend",dojo.hitch(this,"dragManeuverMap"));
MQA.EventManager.addListener(_ed,"zoomend",dojo.hitch(this,"zoomManeuverMap"));
var ul=controller._model.routeResults.upperLeft;
var lr=controller._model.routeResults.lowerRight;
var _f7=new MQA.RectLL(new MQA.LatLng(ul.latitude,ul.longitude),new MQA.LatLng(lr.latitude,lr.longitude));
debug("Maneuver map session id: "+routeResults.sessionId);
MQA.withModule("rasterroutehighlight",function(){
_ed.addRouteHighlight(_f7,routeResults.mapServerUrl,routeResults.sessionId,false);
});
this.manMapList["manMap"+_dd+"-"+_de]=_ed;
var _f8=$d("manMapLink"+_dd+"-"+_de);
_f8.innerHTML="<a href=\"javascript:view.mapView.hideManeuverMap("+_dd+","+_de+");\">"+mq.getMessage("HIDE")+"</a>";
},handleSTOClick:function(){
ua.a(":MQ08S2O");
},handleSTGClick:function(){
ua.a(":MQ08S2G");
mq.showLoadingImage();
$d("gps").innerHTML="<iframe name=\"iframe_gps\" id=\"iframe_gps\" src=\"/controller/mainui/gps?popup\" style=\"width:0;height:0;visibility:hidden;\"></iframe>";
},updateSTGConnects:function(){
dojo.connect($d("gpsNotDetectedClose"),"onclick",$w("mqSTGPopup"),"handleCancel");
dojo.connect($d("gpsNoPluginClose"),"onclick",$w("mqSTGPopup"),"handleCancel");
dojo.connect($d("STGSendButton"),"onclick",$w("mqSTG"),"handleSend");
dojo.connect($d("STGCancelButton"),"onclick",$w("mqSTGPopup"),"handleCancel");
dojo.connect($d("gpsNotDetectedRetry"),"onclick",$w("mqSTG"),"requestReload");
dojo.connect($d("routeCheck"),"onclick",$w("mqSTG"),"handleNameToggle");
dojo.connect($d("waypointCheck"),"onclick",$w("mqSTG"),"handleNameToggle");
dojo.connect($d("gpsInfoImage"),"onclick",$w("mqSTG"),"showMoreInfoPopup");
},showSTG:function(_f9,loc){
if(_f9.result&&_f9.result.loadError){
var _fb=dojo.hitch(this,"processShowSTG",_f9,loc);
UIService.generatePromo("stg-NoPlugin-promo",_fb);
}else{
if(_f9.gpsController.getDevicesCount()==0){
var _fb=dojo.hitch(this,"processShowSTG",_f9,loc);
UIService.generatePromo("stg-NoDevice-promo",_fb);
}else{
this.processShowSTG(_f9,loc);
}
}
},processShowSTG:function(_fc,loc,_fe){
mq.hideLoadingImage();
if(!_fe){
_fe="";
}
var _ff=new mq.widget.SendToGPS({id:"mqSTG",location:loc,gps:_fc,PromoResult:_fe});
var _100=new mq.widget.MQPopup({id:"mqSTGPopup",popupWidget:_ff,position:"center",closeButtonRequired:true,onClose:dojo.hitch(_ff,"handleCancel")});
this.updateSTGConnects();
},reloadSTGCallback:function(_101){
if($w("mqSTG")){
$w("mqSTG").reload();
}
if($w("mqSTGPopup")){
$w("mqSTGPopup").changeContent($d("mqSTGPopupContent").innerHTML);
}
this.updateSTGConnects();
},completeSTG:function(_102){
var stg=$w("mqSTG");
if(!stg){
return;
}
if(_102.msg){
stg.showError(_102.msg);
return;
}
stg.deviceWriteResults.push(_102);
if(stg.deviceWriteResults.length==stg.selectedDevices.length){
var _104=false;
for(i=0;i<stg.deviceWriteResults.length;i++){
if(!stg.deviceWriteResults[i].success){
_104=true;
}
}
if(!_104){
var _105=new dojox.string.Builder();
if(controller._model.locations.length==1||stg.gps.waypointsOnly){
ua.a(":MQ08S2GSuccessWP");
_105.append("You have successfully sent the waypoints to the following devices(s)");
}else{
ua.a(":MQ08S2GSuccessRte");
_105.append("You have successfully sent the route to the following devices(s)");
}
_105.append("<br/><br/><ul>");
for(i=0;i<stg.selectedDevices.length;i++){
_105.append("<li>").append("<span class='b'>").append(stg.selectedDevices[i].displayName).append("</span></li>");
}
_105.append("<ul>");
$d("gpsSuccessMessage").innerHTML=_105;
$w("mqSTGPopup").changeContent($d("mqSTGConfirmationSuccess").innerHTML);
}else{
var _105=new dojox.string.Builder();
for(i=0;i<stg.deviceWriteResults.length;i++){
_105.append(stg.deviceWriteResults[i].msg).append("<br/>");
}
$d("stgError").innerHTML=_105+"<br/>";
}
dojo.connect($d("closeButton"),"onclick",$w("mqSTGPopup"),"handleCancel");
}else{
if(stg.deviceWriteResults.length<stg.selectedDevices.length){
stg.prepareAndWrite(stg.selectedDevices[stg.deviceWriteResults.length]);
}else{
}
}
},hideManeuverMap:function(_106,_107){
ua.a(":MQ08ManMapHide");
var _108=$d("manMap"+_106+"-"+_107);
_108.innerHTML="";
dojo.removeClass(_108,"manMapShow");
dojo.addClass(_108,"manMapHide");
var _109=$d("manMapLink"+_106+"-"+_107);
_109.innerHTML="<a href=\"javascript:view.mapView.showManeuverMap("+_106+","+_107+");\">"+mq.getMessage("MAP")+"</a>";
var man=routeResults.treks[_106].maneuvers[_107];
man.showMap=false;
var _10b="manMap"+_106+"-"+_107;
var map=this.manMapList[_10b];
map.dispose();
map=null;
delete this.manMapList[_10b];
},avoidSegmentPopup:function(_10d,_10e){
var _10f=new dojox.string.Builder();
_10f.append("<div class=\"alert-warning\">");
_10f.append(" <img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_10f.append(" <span>"+mq.getMessage("MSG_AVOID_AND_RECALC")+"</span><br/><br/>");
_10f.append(" <div class=\"textc\">");
_10f.append("  <input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.avoidSegment("+_10d+","+_10e+");\" class=\"btn\" id=\"routeClearOk\"/>&nbsp;&nbsp;&nbsp;");
_10f.append("  <input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('confirmAvoidAndRecalculate').handleCancel();\" class=\"btn\" id=\"routeClearCancel\"/>");
_10f.append(" </div>");
_10f.append("</div>");
_10f=_10f.toString();
var _110=new mq.widget.MQPopup({id:"confirmAvoidAndRecalculate",position:"center",popupContent:_10f});
},avoidSegment:function(_111,_112){
$w("confirmAvoidAndRecalculate").close();
debug("MapTabView.avoidSegment");
ua.a(":MQ08AvoidMan");
this._controller.avoidRouteSegment(_111,_112);
},setAdvancedRoutingOptions:function(){
debug("MapTabView.setAdvancedRoutingOptions");
if(this._controller._model.routeOptions.reverseRoute==false){
ua.a(":MQ08RouteOptionsGo");
}else{
ua.a(":MQ08ReverseRoute");
}
mq.showLoadingImage();
this._controller.rerunRoute();
},showRouteWarningMessage:function(_113){
var _114=$d("routeWarningMsg");
var _115=new dojox.string.Builder();
var _116=_113.split("<br/>");
_115.append("<div class='alert-warning' style='width:auto;height:auto;'>");
_115.append("<img width='24' height='25' src='"+this.imagePath+"/icon-warn.gif' />");
if(_116.length==1){
_115.append("<div style='padding-top:4px;color:#990000;font-weight:bold;float:left;'>"+_113+"</div>");
}else{
_115.append("<div style='padding-top:4px;color:#990000;font-weight:bold;float:left;'>Some Road Types cannot be avoided in order to build your route.</div>");
_115.append("<div class='red clearb' style='text-align:left;padding-top:0px;'><ul class='list clearb' style='list-style-position:inside;padding:0px 0px 0px 30px'>");
for(var i=0;i<_116.length;i++){
_115.append("<li style='maring-left:0px;'>"+_116[i]+"</li>");
}
_115.append("</ul></div>");
}
_115.append("</div>");
var _118=mq.getPopupContentWidthHeight(_115);
_114.innerHTML=_115.toString();
_114.style.display="block";
},hideRouteWarningMessage:function(){
var elem=$d("routeWarningMsg");
if(elem){
elem.style.display="none";
}
},updateShowHideRoutingLnk:function(_11a){
if(mqPageContext!="results"){
return;
}
var _11b=$d("routeShowHideLnk");
if(_11a){
_11b.innerHTML="<span>"+mq.getMessage("HIDE_ROUTING")+"</span>";
_11b.title=mq.getMessage("HIDE_ROUTING");
}else{
_11b.innerHTML="<span>"+mq.getMessage("SHOW_ROUTING")+"</span>";
_11b.title=mq.getMessage("SHOW_ROUTING");
}
},isShowRoute:function(){
var _11c=$d("routeShowHideLnk");
var _11d=false;
if(_11c.title==mq.getMessage("HIDE_ROUTING")){
_11d=true;
}
return _11d;
},toggleRoute:function(){
mq.showLoadingImage();
this._controller.toggleRoute();
},closeInfoWindow:function(evt){
if(mqPageContext=="rblprofile"){
}
},dragManeuverMap:function(evt){
$a("MQ08ManMapDrag");
},zoomManeuverMap:function(evt){
$a("MQ08ManMapZoom");
},updateDirSummary:function(){
debug("maptabview.updateDirSummary");
var _121=this._controller._model;
var locs=_121.locations;
if(locs&&locs.length==1){
var _123=$d("dirStartAddrSummary");
$d("dirStartAddrSummary").innerHTML=(_121.name&&_121.name!="null")?"<div class='addrLine'>"+_121.name+"</div>":mq.util.formatLocationSummary(locs[0].location,true);
dojo.query(".narrTopTotal",$d("dirSummary")).style("display","block");
mq.show($d("dirSummary"));
mq.hide($d("dirEndBlock"));
mq.hide($d("dirTimeSumm"));
mq.show($d("mapA"));
mq.show($d("locSumDirUl0"));
mq.show($d("locSumRevise0"));
this.showHideContentTabBar2("hide");
mq.hide($d("dirStart"));
}else{
if(locs&&locs.length>=2){
$d("dirStartAddrSummary").innerHTML=mq.util.formatLocationSummary(locs[0].location,true);
mq.show($d("dirEndBlock"));
$d("dirEndAddrSummaryAddress").innerHTML=mq.util.formatLocationSummary(locs[locs.length-1].location,true);
if(_121.routeResults){
mq.show($d("dirTimeSumm"));
mq.hide($d("mapA"));
this.showHideContentTabBar2("show");
if($d("send2")){
$d("send2").onclick=function(){
ua.a(":MQ08Send2");
};
}
mq.show($d("dirStart"));
mq.hide($d("locSumDirUl0"));
mq.hide($d("locSumRevise0"));
$d("dirTimeSummary").innerHTML=_121.routeResults.time;
$d("dirDistanceSummary").innerHTML=_121.routeResults.distance;
if(_121.routeResults.fuelCost>0){
$d("dirFuelSummary").innerHTML="$"+_121.routeResults.fuelCost.toFixed(2);
mq.hide($d("fuelButton"));
}else{
$d("dirFuelSummary").innerHTML="";
$d("fuelButton").style.display="inline";
}
}
dojo.query(".narrTotalTop",$d("dirSummary")).style("display","block");
this.updateLocalLinks(locs);
}else{
mq.hide($d("dirSummary"));
dojo.query(".narrTotalTop",$d("dirSummary")).style("display","block");
}
}
},showHideContentTabBar2:function(_124){
if(_124&&_124=="show"){
mq.show($d("contentTabBar2"));
}else{
mq.hide($d("contentTabBar2"));
}
},popularSearch:function(_125,_126,pos,_128){
debug("MapView.popularSearch");
var loc=controller._model.locations[_126].location;
mq.executeSearchNearby(loc,_125,pos,_128);
},addNextLocFromBtn:function(){
var _12a=controller.numLocs();
if(!mq.validateLocationsCount()){
var _12b=new dojox.string.Builder();
_12b.append("<div class=\"alert-warning\" style=\"display: block;width: 220px;\">");
_12b.append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_12b.append(mq.getMessage("ERROR_MAX_STOPS")+"<br/><br/>");
_12b.append("</div>");
_12b=_12b.toString();
mq.handleFormErrorPopups(null,_12b);
mq.hideLoadingImage();
ua.a(":MQ08MaxStops");
return;
}
var _12c=$d("loc"+_12a+"0-addressInput");
if(_12c){
var _12d=dojo.query(".lcAddNext")[0];
mq.util.scrollElemToView(_12d,"center");
_12c.focus();
dojox.fx.highlight({node:_12d,duration:2000}).play();
ua.a(":MQ08LOCAddNext");
}
},findNearby:function(){
var _12e=$d("findSrchTerm");
var _12f=$d("findCat");
var _130="";
if(_12f.value!=""){
_130=_12f.value;
}else{
if(_12e&&dojo.trim(_12e.value)!=""){
_130=dojo.trim(_12e.value);
}
}
if(_130){
var _131=controller.numLocs();
if(_131>0){
var loc,_133;
if(_131==1){
loc=controller._model.locations[0].location;
loc.query=null;
}else{
var _134=$d("findLoc").value;
loc=controller._model.locations[_134].location;
loc.query=null;
}
ua.a(":MQ08SearchNearbyBar");
mq.executeSearchNearby(loc,_130,_131);
}
}else{
var _135=[];
_135.push("<div class=\"alert-warning\">");
_135.push("<img width=\"24\" height=\"25\" src=\""+this.imagePath+"/icon-warn.gif\" />");
_135.push("<span class=\"redavoid\">Please enter search term or select category.</span></div>");
var _136=$d("findSrchTerm");
var _137=dojo.coords(_136,true);
new mq.widget.MQPopup({id:"findNearByWarn",popupContent:_135.join(""),xoffset:(_137.x+_136.offsetWidth-135),yoffset:_137.y+30,closeButtonRequired:true,popupArrowPlacement:1,popupImage:"sprt-pop-ylw"});
}
},zoomToStreetHandler:function(_138){
var loc=controller._model.locations[_138].location;
this.zoomToStreet(loc);
},updateLocalLinks:function(locs){
var _13b=locs[0].location;
if(enableLocal=="true"&&$d("localSummary0")){
mq.show($d("localSummary0"));
$d("localSummary0").innerHTML="<a onclick=\"mq.goLocal(0,'MQ08LOCLocalLinkStart');\"><img src=\""+mqPrefix+"/cdn/dotcom/images/icon-local.png\" alt=\"MapQuest Local\" title=\"MapQuest Local\" height=\"19\" width=\"20\" /></a><a onclick=\"mq.goLocal(0,'MQ08LOCLocalLinkStart');\">See Local Events, Movies, News &amp; More</a>";
}else{
mq.hide($d("localSummary0"));
}
var end=locs[locs.length-1].location;
if(enableLocal=="true"&&$d("localSummary1")){
mq.show($d("localSummary1"));
$d("localSummary1").innerHTML="<a onclick=\"mq.goLocal(mq.util.lastLocationIndex(),'MQ08LOCLocalLinkEnd');\"><img src=\""+mqPrefix+"/cdn/dotcom/images/icon-local.png\" alt=\"MapQuest Local\" title=\"MapQuest Local\" height=\"19\" width=\"20\" /></a><a onclick=\"mq.goLocal(mq.util.lastLocationIndex(),'MQ08LOCLocalLinkEnd');\">See Local Events, Movies, News &amp; More</a>";
}else{
mq.hide($d("localSummary1"));
}
},handleServerRender:function(){
debug("Connecting events for server render");
dojo.query(".narrHeader img","locationWindow").connect("onclick",this,"toggleNarrative");
var me=this;
dijit.registry.byClass("mq.widget.LocationListItem").forEach(function(w){
debug("Connections for: "+w.position);
var loc=w.location;
var pos=w.position;
dojo.connect($d("listItemZTS"+pos),"onclick",me,dojo.hitch(me,"zoomToStreet",loc));
dojo.connect($d("listItemSTC"+pos),"onclick",w,"sendToCellHandler");
if(enableSTO){
dojo.connect($d("listItemSTO"+pos),"onclick",w,"sendToOnstarHandler");
}
dojo.connect($d("listItemSearchNearby"+pos),"onclick",w,"searchNearbyHandler");
dojo.connect($d("listItemEdit"+pos),"onclick",me,dojo.hitch(me,"editLocation",pos));
dojo.connect($d("listItemRemove"+pos),"onclick",me,dojo.hitch(w,"removeHandler",pos));
dojo.connect(w,"onRemove",me,"removeLocation");
dojo.connect(w,"onMoveUp",me._controller,"moveUp");
dojo.connect(w,"onMoveDown",me._controller,"moveDown");
});
var _141=controller.numLocs();
if(_141==0){
mq.hide($d("fNearby"));
mq.hide($d("loc0Form"));
}
if(_141==1){
mq.hide($d("findLoc"));
this.showHideContentTabBar2("hide");
}else{
if(_141>1){
view.updateFindNBLocList();
this.showHideContentTabBar2("show");
this.updateRouteOptions(false);
}
}
if(_141==0&&controller._model.trafficEnabled){
ua.a(":MQ08TrafficOn");
}
this.initTraffic();
ua.commit();
},initTraffic:function(){
debug("maptabview.initTraffic: "+model.trafficEnabled);
if(window.IsTrafficEnabled=="true"){
debug("init traffic");
if(window["trafficPopupContent"]&&!$w("mqErrorPopup")){
window.initTrafficPopup("mapTrafficHelp");
}
}
},updateRouteOptions:function(_142){
debug("maptabview.updateRouteOptions: "+_142);
if(mqPageContext!="results"){
return;
}
try{
if(_142){
var ro=controller._model.routeOptions;
$d("aoh").checked=ro&&ro.avoidHighways;
$d("aot").checked=ro&&ro.avoidTollRoads;
$d("aos").checked=ro&&ro.avoidSeasonal;
$d("aoh").disabled=(controller.isLongRoute())?true:false;
try{
$d(ro.routeType.toLowerCase()).checked=true;
}
catch(e){
$d("fastest").checked=true;
}
if(ro&&(ro.avoidHighways||ro.avoidTollRoads||ro.avoidSeasonal)){
controller.saveState();
}
}
if(controller.isLongRoute()){
$d("aoh").disabled=true;
dojo.addClass($d("aoh").parentNode,"grey");
}else{
$d("aoh").disabled=false;
dojo.removeClass($d("aoh").parentNode,"grey");
}
}
catch(e){
logDebug("maptabview.updateRouteOptions",e);
}
},openHotwireWindow:function(){
var x=model.locations.length-1;
var _145=model.locations[x].location.city;
var _146=model.locations[x].location.state;
var _147=model.locations[0].location.city;
var _148=model.locations[0].location.state;
var _149="S293";
var _14a="B310055";
var _14b=hotWireAdUrlHotel;
var _14c=hotWireAdUrlCar;
var _14d=hotWireAdUrlFlight;
var _14e="";
var _14f="http://www.hotwire.com/";
var _150=_14f;
if(document.getElementById("hotwireHotel").checked){
_150+="hotel/search-options.jsp?sid="+_149+"&bid="+_14a+"&inputId=hotel-index";
_150+="&destCity="+_145+","+_146;
_14e=_14b;
}else{
if(document.getElementById("hotwireCar").checked){
_150+="car/search-options.jsp?startLocation="+_145+","+_146;
_150+="&startSearchType=N&inputId=index&selectedCarTypes=ECAR";
_150+="&sid="+_149+"&bid="+_14a;
_14e=_14c;
}else{
if(document.getElementById("hotwireFlight").checked){
_150+="air/search-options.jsp?sid="+_149+"&bid="+_14a+"&inputId=index";
_150+="&originCity="+_147+","+_148;
_150+="&destinationCity="+_145+","+_146;
_14e=_14d;
}
}
}
if(_150!=_14f){
ua.a(":MQ08HotwireBook");
if(_14e){
_150=_14e+escape(_150);
}
window.open(_150,"_blank","height=800,width=800,directories=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1,titlebar=1,toolbar=1");
}
}});
}

mq._loader._layerLoaded('mq.maptabview');
