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 _1=dojo.hitch(this,"handlePromoPopupCallback");
UIService.generatePromo("mainui-fuel-popup",_1);
this.inherited(arguments);
setTimeout(function(){
mq.focus($d("mpgInput"));
if($w("dijit_DialogUnderlay_0")){
$w("dijit_DialogUnderlay_0").layout();
}
},500);
},handlePromoPopupCallback:function(_2){
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(_3){
try{
mq.showLoadingFuelImage();
var _4=controller._model.routeResults.sessionId;
var _5=dojo.hitch(mq,"handleFuel",_3);
UIService.calculateFuelFromProfile(_4,_5);
ua.a(":MQ08FuelCalc");
}
catch(e){
logDebug("mq.calcFuelCost",e);
}
};
mq.calcFuelCostWithMPG=function(_6){
if(_6){
_6.preventDefault();
}
var w=$w("mqFuelPopup");
var _8=$d("mpgInput").value;
if(_8!=parseFloat(_8)){
var _9=mq.getMessage("ERROR_INVALID_NUMBER");
var _a="<div style='color:#CC0000;font-weight:bold;'><div class='fltl'>"+mq.setImagePng(mqPrefix+"/cdn/dotcom/images/icon-warn-sm.png",18,18)+"</div>"+_9+"</div>";
$d("fuelError").innerHTML=_a;
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 _b=controller._model.routeResults.sessionId;
var _c=dojo.hitch(mq,"handleFuel",_6);
UIService.calculateFuelWithMPG(_b,_8,_c);
ua.a(":MQ08FuelCalcMPG");
}
catch(e){
logDebug("mq.calcFuelCostWithMPG",e);
}
};
mq.handleFuel=function(_d,_e){
try{
mq.hideLoadingFuelImage();
window.fuelResponse=_e;
if(_e.cost>0){
$d("dirFuelSummary").innerHTML="$"+_e.cost.toFixed(2);
$d("dirFuelSummary2").innerHTML="$"+_e.cost.toFixed(2);
mq.hide($d("fuelButton"));
mq.hide($d("fuelButton2"));
}else{
if((!_e.loggedIn||!_e.vehicleAvailable)&&_e.priceAvailable&&_e.sessionAvailable){
var _f=_d;
var _10=dojo.coords(_f,true);
var _11=m2.util.Content.execFtl("/promo/fuelcost");
var _12=new mq.widget.FuelCost({id:"mqFuelPopup",promoLoginContent:_11,xoffset:_10.x+110,yoffset:_10.y-28,onClose:dojo.hitch(mq,"closeFuelPopup")});
dojo.connect($d("fuelCostForm"),"onsubmit",mq,"calcFuelCostWithMPG");
}else{
if(!_e.sessionAvailable){
mq.handleFormErrorPopups(null,"<span class=\"redavoid\">"+mq.getMessage("ERROR_SESSION_EXPIRED")+"</span>");
}else{
if(!_e.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 _16=mq.calcCenterPosition(155,36);
l.style.left=_16.x+"px";
l.style.top=_16.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;
var addNextFormId=0;
dojo.declare("mq.MapTabView",mq.TabView,{constructor:function(_18,_19,_1a){
try{
debug("MapTabView.constructor");
this.manMapList={};
this.roadShieldFound=false;
var _1b=dijit.getViewport().w-30-dojo.coords($d("rightrailad"),true).w;
($d("mapWindow")).style.width=_1b+"px";
($d("mapWindow")).style.height="540px";
this._locationListId=this._idList["locationList"];
var _1c=_18._model.viewType;
if(!_1c){
_1c=mq.savedandrecent.getDefaultMapType();
}
debug(">> "+this.getDefaultMapLocation().longitude+", "+_1c+", "+_18._model.zoomLevel);
var _1d=false;
if(serverResults&&_18._model.searchLocation){
if(serverResults.length<2){
if(serverResults[0].resultCode=="SEARCH_RESULTS"){
_1d=true;
}
}else{
if(serverResults[1].resultCode=="SEARCH_RESULTS"){
_1d=true;
}
}
}
if(!_1d){
this.loadMap(_18,_19,_1a,_1c,_1d);
}
this.tabView=this.tabState.map;
if(_18._model.locations){
var _1e=false;
if(_18._model.printerFriendly){
_1e=true;
_18._model.printerFriendly=false;
}
var _1f=mq.getQueryString(window.location.href,"ua");
if(_1f&&_1f.toUpperCase()=="TRAFFIC"){
ua.a(":MQ08TrafficOn");
}
if(_19){
ua.a(":pv");
this.handleServerRender();
ua.commit();
}else{
this.updateView(_18._model);
}
if(_1e){
_18._model.printerFriendly=true;
}
}else{
if(!_1d){
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(_20,_21,_22,_23){
this.initMap(this.getDefaultMapLocation(),_23,_20._model.zoomLevel,_21);
this._tileMap.addControl(new MQA.LargeZoomControl3(),new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(5,5)));
this._tileMap.addControl(new MQA.ViewControl3(),new MQA.MapCornerPlacement(MQA.MapCorner.TOP_RIGHT,new MQA.Size(-5,5)));
var _24=false;
if(_20._model.locations){
var _25=_20._model.locations[0].location.country;
_24=(!_25||(_25.toUpperCase()!="US"&&_25.toUpperCase()!="CA"))?true:false;
}
if(!_24){
var _26=new MQA.TrafficToggleControl();
this._tileMap.addControl(_26,new MQA.MapCornerPlacement(MQA.MapCorner.TOP_RIGHT,new MQA.Size(-180,5)));
if(model&&model.trafficEnabled){
_26.toggle(true);
}
}
var me=this;
MQA.withModule("dragtrack",function(){
if(MQA.DragTracker){
var _28=new MQA.DragTracker(me._tileMap);
me.dragTracker=_28;
_28.onChange=MQA.EventUtil.hitch(me,"onMapChange");
}
});
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(_2f){
ScrollLock.lock();
try{
if(typeof (this._tileMap)=="undefined"||!this._tileMap){
var _30=controller._model.viewType;
if(!_30){
_30=mq.savedandrecent.getDefaultMapType();
}
this.loadMap(controller,false,this._idList,_30);
}
debug("MapTabView.updateView");
mq.hideLoadingImage();
ua.a(":pv");
if(!!(view)){
if(_2f.mode){
view.contentModeHandler(_2f.mode);
}else{
if(view.getCurrentMode()!="MAPS"){
view.contentModeHandler("MAPS");
}
}
view.resizeLayout();
}
if(!_2f.printerFriendly&&mq.isShowing($d("printDisplay"))){
window.backToMap();
}
var _31="";
var _32="";
try{
if(_2f.routeResults!=null&&_2f.routeResults.resultMessages!=null&&!_2f.routeResults.wasAvoidError){
var _33=_2f.routeResults.resultMessages;
debug("Route messages found: "+_33.length);
for(var i=0;i<_33.length;i++){
debug("Message "+i+": "+_33[i]);
var tmp=mq.getMessage(_33[i].match(/^[A-Z,_]*/));
(mq.startsWith(_33[i],"WARN"))?_32+=(tmp+"<br/>"):_31+=(tmp+"<br/>");
}
_31=(_31!="")?_31.substring(0,_31.lastIndexOf("<br/>")):_31;
_32=(_32!="")?_32.substring(0,_32.lastIndexOf("<br/>")):_32;
}
}
catch(e){
logDebug("maptabview.updateView-dispRouteErrors",e);
}
if(_31.length<=0){
if(_2f.routeResults){
_2f.routeResults.wasAvoidError=null;
}
this.updateShowHideRoutingLnk(_2f.showRoute);
(_2f.viewType!=null)?this._tileMap.setMapType(_2f.viewType):this._tileMap.setMapType(mq.savedandrecent.getDefaultMapType());
var _36=_2f.locations;
var _37=$d("mapWindow");
if(_36!=null&&_36.length>0){
try{
mq.show($d("itin"));
_37.style.borderTopWidth="1px";
this.updateMap(_2f);
if(_36.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"));
_37.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 _38=controller.numLocs();
if(_38>1){
this.drawLocations(_2f);
}
if(_38>0){
if(addNextFormId==1){
this.addLocationSummaryForm(_38,"loc","fltlId");
}
if(_38==1){
mq.hide($d("findLoc"));
}else{
if(_38>1){
this.addLocationForm(_38,"loc",this._locationListId);
view.updateFindNBLocList();
}
}
}
this.updateDirSummary();
mq.util.updateBrowserTitle();
this.updateRouteOptions(true);
if(serverResults&&view.mapView){
serverResults=null;
}
if(dirForm&&dirForm.results){
dirForm.results=null;
}
(_32.length>0)?this.showRouteWarningMessage(_32):this.hideRouteWarningMessage();
this.scrollIntoView();
view.scrollToElement=null;
}
catch(e){
logDebug("maptabview.updateView-finishing",e);
}
}else{
this.updateShowHideRoutingLnk(_2f.showRoute);
this.showGenericPopup(_31);
}
if(!_2f.showPrint){
ua.commit();
}
debug("Before showPrint");
if(_2f.printerFriendly){
window.showPrint();
}
}
catch(e){
logDebug("maptabview.updateView-generic",e);
}
finally{
ScrollLock.unlock();
}
},updateMap:function(_39){
try{
this._tileMap.removeShapeCollection("");
var _3a=true;
this.addPoisToMap(_39.locations);
var _3b=true;
if(_39.zoomLevel!=null&&_39.zoomLevel){
debug("MapTabView.updateView: restoring map center, zoom level, and best fit");
if(_39.showRoute){
if(!_39.routeResults){
controller.rerunRoute();
}else{
_3b=false;
this.addRouteHighlight(_39,_3a);
}
}
this._tileMap.setCenter(new MQA.LatLng(_39.centerLatitude,_39.centerLongitude),_39.zoomLevel);
}else{
if(_39.showRoute&&_39.routeResults!=null){
debug("MapTabView.updateView: adding route");
_3b=false;
this.addRouteHighlight(_39,_3a&&!this._isDragRecompute);
}else{
if(_39.locations.length==1){
var loc=_39.locations[0].location;
if(loc.geocodeQuality){
debug("MapTabView.updateView: setting zoom based on geocode quality");
var _3d=this._tileMap.getZoomLevel();
this._tileMap.setCenter(new MQA.LatLng(loc.latitude,loc.longitude),this.zoomLevels[loc.geocodeQuality]);
if(this._tileMap.getZoomLevel()==_3d){
controller.panZoomChange(_3d,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(_3b){
debug("MapTabView: removing route highlight");
this.removeRouteHighlight();
}
if(!this._isDragRecompute&&controller.numLocs()>1&&_39.blId&&_39.blOption=="route"&&_39.searchResults&&_39.searchResults.searchResults.length>0){
this._tileMap.bestFit(false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
}
_39.resultsAlreadyDrawn=null;
this._isDragRecompute=false;
}
catch(e){
logDebug("maptabview.updateMap",e);
}
},scrollIntoView:function(){
try{
var _3e=controller._model;
var _3f;
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;
}
_3f=$d(view.scrollToElement);
view.scrollToElement=null;
}
if(_3f){
var _40=dijit.getViewport();
if(!mq.util.isElementInView(_3f)){
mq.util.scrollElemToView(_3f,_40.h-200);
}
}
}
catch(e){
logDebug("maptabview.scrollIntoView",e);
}
},modelToRouteData:function(_41){
var _42=_41.routeResults,_43=_41.routeOptions,i,_45,_46={sessionId:_42.sessionId,mapServerUrl:_42.mapServerUrl,boundingBox:{ul:{lat:_42.upperLeft.latitude,lng:_42.upperLeft.longitude},lr:{lat:_42.lowerRight.latitude,lng:_42.lowerRight.longitude}}},_47={avoid:[],unit:(_43.distanceUnit||"m").toLowerCase(),routeType:(_43.routeType||"fastest").toLowerCase()},_48=[];
_46.options=_47;
if(_43.avoidTollRoads){
_47.avoid.push("tollroad");
}
if(_43.avoidSeasonal){
_47.avoid.push("seasonal");
}
if(_43.avoidFerries){
_47.avoid.push("ferries");
}
if(_43.avoidUnpaved){
_47.avoid.push("unpaved");
}
_46.locations=_48;
for(i=0;i<_41.locations.length;i++){
_45=_41.locations[i].location;
_48.push({modelLoc:_41.locations[i],gefId:_42.locationGEFIDs[i],latLng:{lat:_45.latitude,lng:_45.longitude},type:(_45.locationType==2?"v":"s")});
}
return _46;
},removeRouteHighlight:function(){
var _49=this._routeController;
if(_49){
_49.dispose();
this._routeController=null;
}
},routeCustomizePoi:function(poi){
var _4b=poi.location,_4c;
if(!_4b){
return;
}
_4c=_4b.modelLoc.location;
var c=controller;
poi.setDeclutter(true);
poi.setDeclutterFixed(true);
if(_4b.type=="v"){
if(poi.getInfoTitleHTML&&poi.getInfoTitleHTML.length>0){
$a("MQ08DRMoveVia","r");
}else{
ua._userAction=null;
ua.a(":MQ08DRAddVia");
}
poi.setInfoTitleHTML("Via: "+_4c.addressLine1);
poi.setInfoContentHTML(mq.util.getViaInfoPopupContent(poi.locationIndex,_4c,poi.locationIndex,false,true,false));
poi.setKey("vias-"+poi.locationIndex);
}else{
var _4e=function(_4f,_50){
poi.setInfoTitleHTML(mq.util.getMiniPopupContent(_4f));
poi.setInfoContentHTML(mq.util.getInfoPopupContent(_4f,_50,false,true,false));
poi.setRolloverContent(m2.util.Bubble.formatRolloverContent(_4f));
poi.setKey("stops-"+_50);
};
if((_4c.city==""&&_4c.state==""&&_4c.country=="")){
var _51=this;
var _52=function(_53){
if(_53){
_4c.city=_53.city;
_4c.state=_53.state;
_4c.country=_53.country;
}
_4e(_4c,poi.locationIndex);
var loc=controller._model.locations[poi.locationIndex].location;
if(_53){
loc.city=_53.city;
loc.state=_53.state;
loc.country=_53.country;
if(_53&&_53.country==""&&_53.latitude&&_53.longitude&&_53.postalCode){
if(_53.longitude<-50&&_53.longitude>-142){
if(_53.postalCode!=""&&(/^[a-zA-Z][0-9][a-zA-Z]/).test(_53.postalCode)){
loc.country="CA";
}
}
}
}
if(_53&&_53.country=="US"){
setTimeout(function(){
_51.cleanLocationList();
_51.drawLocations(model);
_51.addLocationForm(controller.numLocs(),"loc",_51._locationListId);
if(addNextFormId==1){
_51.addLocationSummaryForm(controller.numLocs(),"loc","fltlId");
}
},500);
$a("MQ08DRMoveStop","r");
}
};
try{
UIService.reverseGeocodeMapLocation(_4c.latitude,_4c.longitude,_52);
}
catch(e){
_4e(_4c,poi.locationIndex);
console.error("Error in mq.reverseGeocodeMapLocation:",e);
}
}else{
_4e(_4c,poi.locationIndex);
}
}
MQA.EventManager.addListener(poi,"infowindowopen",dojo.hitch(this,"openInfoWindow"));
MQA.EventManager.addListener(poi,"infowindowclose",dojo.hitch(this,"clickCloseInfoWindow"));
},avoidManeuversLostPopup:function(){
var _55=new dojox.string.Builder();
_55.append("<div class=\"alert-warning\">");
_55.append(" <img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_55.append(" <span>"+mq.getMessage("MSG_DRAG_LOSE_AVOIDS")+"</span><br/><br/>");
_55.append(" <div class=\"textc\">");
_55.append("  <input type=\"button\" value=\"OK\" onclick=\"Javascript:$w('confirmAvoidManeuversLost').close();view.mapView.avoidManeuversLostPopupOK();\"");
_55.append(" class=\"btn\" id=\"routeClearOk\"/>&nbsp;&nbsp;&nbsp;");
_55.append("  <input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('confirmAvoidManeuversLost').handleCancel();view.mapView.avoidManeuversLostPopupCancel();\"");
_55.append(" class=\"btn\" id=\"routeClearCancel\"/>");
_55.append(" </div>");
_55.append("</div>");
_55=_55.toString();
var _56=new mq.widget.MQPopup({id:"confirmAvoidManeuversLost",position:"center",popupContent:_55});
},avoidManeuversLostPopupOK:function(){
var _57=this._controller._model;
_57.routeOptions.avoidGEFIDList=null;
this.routeRecomputeChangedRoute(_57,this._tmpRdLocations);
delete this._tmpRdLocations;
},avoidManeuversLostPopupCancel:function(){
var _58=this._controller._model;
delete this._tmpRdLocations;
this._controller.rerunRoute();
},routeRecomputeChangedRoute:function(_59,_5a){
if(_59.routeOptions.avoidGEFIDList&&_59.routeOptions.avoidGEFIDList.length>0){
this._tmpRdLocations=_5a;
this.avoidManeuversLostPopup();
return;
}
var _5b=_59.locations,i,j=0,_5e=[],_5f,_60;
for(i=0;i<_5a.length;i++){
_60=_5a[i];
_5f=_60.modelLoc;
if(_5f){
_5e.push(_5f);
}else{
_5e.push({location:{name:"",addressLine1:_60.street,city:_60.city,state:_60.state,postalCode:_60.postalCode,county:"",country:_60.country,latitude:_60.latLng.lat,longitude:_60.latLng.lng,geocodeQuality:"",phoneNumber:"",latLngPrecision:"6",locationType:(_60.type=="s"?1:2),dragPoint:0}});
}
}
_59.locations=_5e;
this._isDragRecompute=true;
this._controller.rerunRoute();
},canStartDrag:function(){
if(this._controller.numVias()>=draggable_max_viastops){
var _61=new dojox.string.Builder();
_61.append("<div class=\"alert-warning\" style=\"display: block;width: 130px;\">");
_61.append("<span class=\"avoid b\">You have reached the maximum number of route editing points allowed.</span>");
_61.append("</div>");
var _62=this._tileMap.display,_63=0,_64=0,_65=MQA.Util.getParentOffset(_62.elt),_66=_62.currentDrag;
if(_66){
_63=_66.startXY.x-_62.ulX+_65.x;
_64=_66.startXY.y-_62.ulY+_65.y;
}
var _67=mq.getPopupContentWidthHeight(_61.toString()),_68=new mq.widget.MQPopup({id:"draggableBubble",xoffset:_63-63,yoffset:_64+30,bgOpacity:0,fadingBg:false,closeButtonRequired:false,closeOnBackGroundClick:false,popupArrowPlacement:0,arrowOffsetX:60,popupImage:"sprt-pop-ylw",bgRequired:true,popupMinHeight:50,popupContent:_61.toString()});
$d("draggableBubble").focus();
setTimeout("$w('draggableBubble').close()",1500);
return false;
}
return true;
},addRouteHighlight:function(_69,_6a){
var _6b=this._routeController,io,_6d,_6e;
if(!_6b){
io=new MQA.RouteIO("/_svc/routeio");
_6d=new MQA.Route.RouteDelegate();
_6d.customizePoi=dojo.hitch(this,"routeCustomizePoi");
_6d.recomputeChangedRoute=dojo.hitch(this,"routeRecomputeChangedRoute",_69);
_6d.canStartDrag=dojo.hitch(this,"canStartDrag");
_6b=this._tileMap.createRoute(_6d,io);
this._routeController=_6b;
}
_6e=this.modelToRouteData(_69);
if(_6a&&_6e.boundingBox){
this._tileMap.zoomToRect(_6e.boundingBox);
}else{
if(this._tileMap.searchManager){
this._tileMap.searchManager.refresh();
}
}
_6b.setRouteData(_6e);
},rolloverManeuver:function(evt){
debug("TabView.rolloverManeuver: "+evt.eventName);
var _70=evt.srcObject;
if(evt.eventName=="MQA.LineOverlay.mouseOut"){
_70.setAltStateFlag(false);
}else{
_70.setAltStateFlag(true);
}
},showGenericPopup:function(_71){
try{
debug("MapTabView.showGenericPopup: "+_71);
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\">"+_71+"</div></div>");
var _73=new mq.widget.MQPopup({id:"mqErrorPopup",position:"center",popupImage:"sprt-pop-ylw",popupContent:sb.toString(),closeButtonRequired:true});
}
catch(e){
logDebug("maptabview.genericError:"+(_71)?_71:"",e);
}
},cleanLocationList:function(){
try{
debug("MapTabView.cleanLocationList");
if(controller.numLocs()!=1){
var _74=10+parseInt(draggable_max_viastops);
for(var i=0;i<=_74;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(_78){
try{
if(_78.locations!=null){
debug("MapTabView.drawLocations: "+_78.locations.length);
var ul=document.createElement("div");
ul.setAttribute("id","locationList");
ul.setAttribute("class","locationList");
$d(this._locationListId).appendChild(ul);
if(_78.showRoute&&_78.routeResults!=null&&_78.locations.length>1){
var div=document.createElement("div");
dojo.addClass(div,"dirTitle");
var _7b=new dojox.string.Builder();
_7b.append(this.buildPrintBar());
_7b.append("<div id=\"avoidRestore\" style=\"display:none;\">");
_7b.append("<div class=\"fltl\"><img src=\""+mqPrefix+"/cdn/dotcom/images/icons/icon-alert-info.gif\" height=\"15\" width=\"15\"></div>");
_7b.append("<a title=\"Click to restore avoided maneuvers\" id=\"restoreAvoidsLnk\" onclick=\"controller.removeAvoidSegments();\">Click to restore avoided maneuvers</a>");
_7b.append("</div>");
_7b.append("<div class=\"clearb\"></div>");
div.innerHTML=_7b.toString();
$d(this._locationListId).appendChild(div);
}
var _7c=0;
for(i=0;i<_78.locations.length;i++){
loc=_78.locations[i].location;
if(!loc.locationType||loc.locationType==1){
_7c++;
}
}
var _7e=0;
for(i=0;i<_78.locations.length;i++){
loc=_78.locations[i].location;
if(!loc.locationType||loc.locationType==1){
this.showLocationListItem(loc,_7e,_7c,ul);
_7e++;
}
}
if(_78.showRoute){
for(i=0;i<_78.routeResults.treks.length;i++){
this.showNarrative(_78,i);
}
$d(this._locationListId).appendChild(ul);
}
if(_78.showRoute&&_78.routeResults!=null&&_78.locations.length>1){
debug("Show Total Time and Distance");
var div=document.createElement("div");
dojo.addClass(div,"routeResults");
var _7f=new dojox.string.Builder();
_7f.append("<div class=\"narrTotal\">");
_7f.append("<span>Total Travel Estimates:</span>&nbsp;<span class=\"timeSpan\"></span>&nbsp;"+_78.routeResults.time+"&nbsp;");
_7f.append("&nbsp;/&nbsp;");
_7f.append("<span></span>&nbsp;"+_78.routeResults.distance+"");
var _80=false;
if(controller._model.locations){
var _81=controller._model.locations[0].location.country;
_80=(!_81||(_81.toUpperCase()!="US"&&_81.toUpperCase()!="CA"))?true:false;
}
if(!_80){
_7f.append("&nbsp;&nbsp;&nbsp;&nbsp;<span>Fuel Cost:</span>&nbsp;<span id=\"dirFuelSummary2\"></span>");
_7f.append("<span id=\"fuelButton2\" onclick=\"mq.calcFuelCost(this);\" style=\"font-weight:bold;\">");
_7f.append("Calculate");
_7f.append("</span>");
}
_7f.append("</div>");
div.innerHTML=_7f.toString();
$d(this._locationListId).appendChild(div);
if(_78.routeResults.informationAreas){
var msg=new dojox.string.Builder();
for(var i=0;i<_78.routeResults.informationAreas.length;i++){
var _83=_78.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>"+_83.title+"</span><br/>");
msg.append(_83.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);
}
},buildPrintBar:function(){
var _84=new dojox.string.Builder();
_84.append("<div class=\"hdrBar\">");
_84.append("\t<div style=\"padding-top: 3px;float:left;\">");
_84.append("\t\t<div class=\"menuItem\" style=\"display: inline;float:left;\">");
_84.append("\t   \t\t<div id=\"menuTitle\"></div>");
_84.append("\t\t</div>");
_84.append("\t\t<div class=\"menuItem\">");
_84.append("\t\t\t<button class=\"summ\" onClick=\"javascript:showPrint();\">Print</button>");
_84.append("\t\t\t<span class=\"printBarPipe\">|</span>");
_84.append("\t\t</div>");
_84.append("\t\t<div class=\"menuItem\" id=\"save\" >");
_84.append("\t\t\t<button class=\"summ\" onClick=\"javascript:view.handleSaveMap();\">Save</button>");
_84.append("\t\t\t<span class=\"printBarPipe\">|</span>");
_84.append("\t\t</div>");
_84.append("\t\t<div class=\"menuItem\" id=\"menusavedd\" style=\"display:none;\">");
_84.append("\t\t\t<button class=\"summ\" onClick=\"javascript:m2.widget.MapSendTo.showOptionsDialog(this, 'saveDD');return false;\">Save</button>");
_84.append("\t\t\t<span class=\"printBarPipe\">|</span>");
_84.append("\t\t</div>");
_84.append("\t\t<div class=\"menuItem\">");
_84.append("\t\t\t<button id=\"btnSendTo\" class=\"summ\" onClick=\"javascript:m2.widget.MapSendTo.showOptionsDialog(this, 'sendDD');return false;\">Send <img src=\"/cdn/dotcom/images/icon-btnDwn.png\"></button>");
_84.append("\t\t\t<span class=\"printBarPipe\">|</span>");
_84.append("\t\t</div>");
_84.append("\t\t<div class=\"menuItem\">");
_84.append("\t\t\t<button class=\"summ\" onClick=\"javascript:view.handleLinkEmbed(this.domNode);return false;\">Link or Embed</button>");
_84.append("\t\t</div>");
_84.append("\t</div>");
_84.append("\t<div class=\"clearb\"></div>");
_84.append("</div>");
return _84.toString();
},reorder:function(){
var _85=[];
var _86=$d("locationList").childNodes;
for(i=0;i<_86.length;i++){
id=_86[i].id;
index=id[id.length-1];
_85[i]=$w("listItem"+index).location;
}
this._controller.reorder(_85);
},showNarrative:function(_87,_88){
try{
debug("MapTabView.showNarrative: "+_88);
if(_87.routeResults==null||!_87.routeResults.treks||_87.routeResults.treks.length==0||(_88>(_87.routeResults.treks.length-1))){
return;
}
var _89=$d("routeNarrative"+_88);
if(_89){
if($d("dirHide"+_88)){
dojo.disconnect($d("dirHide"+_88),"onclick",this,"toggleNarrative");
}
if($d("lnkHide"+_88)){
dojo.disconnect($d("lnkHide"+_88),"onclick",this,"toggleNarrative");
}
var sb=new dojox.string.Builder();
sb.append("<div class=\"routeNarrative\"><div class=\"narrHeader\"><span class=\"clickableLeg\"><img class=\"\" title=\"Hide/Show Route\" alt=\"Hide/Show Route\" id=\"dirHide"+_88+"\" src=\""+this.imagePath+"/arw-dir_open_new.png\"></span>&nbsp;&nbsp;<a title=\"Hide/Show Route\" id=\"lnkHide"+_88+"\">Directions from ");
sb.append(this.alphabet[_88]+" to "+this.alphabet[_88+1]+":</a> &nbsp;&nbsp;</div>");
var _8b=_87.routeResults.treks[_88];
sb.append(this.createNarrativeTableExpand(_8b,_88,_87.routeResults.variance));
if(_87.routeResults.treks.length>1){
sb.append("<div class=\"narrTotalEst\"><span class=\"timeSpan\">"+this.alphabet[_88]+"</span> to <span class=\"timeSpan\">"+this.alphabet[_88+1]+"</span> Travel Estimates:&nbsp;&nbsp;<span class=\"timeSpan\">"+_8b.time+"</span>&nbsp;&nbsp;");
sb.append("&nbsp;/&nbsp;&nbsp;");
sb.append("<span class=\"timeSpan\">"+_8b.distance+"</span></div></div>");
}
_89.innerHTML=sb.toString();
dojo.connect($d("dirHide"+_88),"onclick",this,"toggleNarrative");
dojo.connect($d("lnkHide"+_88),"onclick",this,"toggleNarrative");
if(this.tabView==this.tabState.text){
for(var i=0;i<_8b.maneuvers.length;i++){
var man=_8b.maneuvers[i];
if(man.showMap){
this.showManeuverMap(_88,i);
}
}
}
}
debug("Index at end of showNarrative: "+_88);
}
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(_8f,_90){
var _91=controller._model.routeOptions.distanceUnit;
var msg=(_90==0)?mq.getMessage("VARIANCE_BEGIN",[mq.util.formatDistance(_8f,_91)]):mq.getMessage("VARIANCE_END",[mq.util.formatDistance(_8f,_91)]);
return msg;
},getRoadShieldUrl:function(url,_94){
var _95=";";
if(url!=null){
urls=url.split(_95);
if(urls.length>_94){
return urls[_94];
}
}
return "";
},createNarrativeTableExpand:function(_96,_97,_98){
debug("MapTabView.createNarrativeTableExpand");
var sb=new dojox.string.Builder();
sb.append("<div id=\"narrative"+_97+"\">");
if(_98[_97]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_98[_97],0));
sb.append("</div>");
}
sb.append("<table width=\"100%\">");
sb.append("<tr>");
sb.append("<td>");
for(k=0;k<_96.maneuvers.length;k++){
var man=_96.maneuvers[k];
sb.append("<table class=\"rtRow\" width=\"100%\" id=\"maneuver"+_97+"-"+k+"\">");
sb.append("<tr>");
sb.append("<td>");
sb.append("</td>");
sb.append("</tr>");
sb.append("<tr>");
sb.append("<td class=\"rtCol1\" valign=\"center\"><img src=\""+this.getRoadShieldUrl(man.roadSignUrl,0)+"\"/></div></td>");
var _9b=this.getRoadShieldUrl(man.roadSignUrl,1);
if(_9b.length>0){
sb.append("<td class=\"rtCol1b\" valign=\"center\"><img src=\""+_9b+"\"/></div></td>");
this.roadShieldFound=true;
}else{
sb.append("<td class=\"rtCol1b\" valign=\"center\"></div></td>");
}
sb.append("<td class=\"rtCol2\" valign=\"center\">"+(k+1)+":&nbsp;</td>");
sb.append("<td class=\"rtCol3\" valign=\"center\">"+man.narrative);
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=\"center\">");
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<_96.maneuvers.length-1){
if(man.message&&man.message=="MSG_UNABLE_TO_AVOID"){
sb.append("<li class=\"singleli\" id=\"manMapLink"+_97+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_97+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
}else{
sb.append("<li class=\"firstli\" id=\"manMapLink"+_97+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_97+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
sb.append("<li class=\"lastli\"><a href=\"javascript:view.mapView.avoidSegmentPopup("+_97+","+k+");\">"+mq.getMessage("AVOID")+"</a></li>");
}
}else{
sb.append("<li class=\"singleli\" id=\"manMapLink"+_97+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_97+","+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"+_97+"-"+k+"\"></div>");
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
}
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
if(_98[_97+1]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_98[_97+1],1));
sb.append("</div>");
}
sb.append("</div>");
sb.append("<style>");
sb.append(".rtCol1b {");
if(this.roadShieldFound){
sb.append("width:40px;");
}else{
sb.append("width:1px;");
}
sb.append("}");
sb.append("</style>");
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_new.png";
}else{
ua.a(":MQ08MinRouteMan");
$d("narrative"+id).style.display="none";
document.getElementById("dirHide"+id).src=this.imagePath+"/arw-dir_clsd_new.png";
}
},chooseAmbigLocation:function(_9d){
debug("MapTabView.chooseAmbigLocation: "+_9d);
var _9e=$w("ambigWin");
var loc=_9e.resultList[_9d];
debug("loc-addressInput: "+loc.addressInput);
if(loc.query!=null&&loc.query!=""){
this._controller._model.searchLocation=loc;
this._controller.search(loc,_9e.position);
}else{
this._controller.addLocation(loc,_9e.position);
}
_9e.close();
},removeLocation:function(_a0){
debug("MapTabView.removeLocation: "+_a0);
var _a1=new dojox.string.Builder();
_a1.append("<div class=\"alert-warning\">");
_a1.append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_a1.append("<span>"+mq.getMessage("MSG_CLEAR_LOCATION")+"</span><br/><br/>");
_a1.append("<div class=\"textc\">");
_a1.append("<input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.confirmRemoveLocation("+_a0+");\" class=\"btn\" id=\"locationClearOk\"/>&nbsp;&nbsp;&nbsp;");
_a1.append("<input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('removeLocation').handleCancel();\" class=\"btn\" id=\"locationClearCancel\"/>");
_a1.append("</div>");
_a1.append("</div>");
_a1=_a1.toString();
var _a2=new mq.widget.MQPopup({id:"removeLocation",position:"center",popupContent:_a1});
},confirmRemoveLocation:function(_a3){
$w("removeLocation").handleAccept();
if(controller.numStops()==2){
var _a4=controller._model;
var _a5=document.getElementById("mapIdHidden");
if(_a5!=null){
var _a6=_a5.value;
_a6=_a6.replace(",","");
}
controller.removeVias(_a3);
var _a7=controller.getLocIndexOfStop(_a3);
_a4.locations.splice(_a7,1);
mq.createUrlFromModel(_a4,"",_a6);
}else{
this.cleanLocationList();
mq.showLoadingImage();
controller.removeLocation(_a3);
}
},acceptHandler:function(evt){
var _a9=this._controller._model.routeOptions;
if(_a9==null){
_a9={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_a9.avoidHighways=true:_a9.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_a9.avoidTollRoads=true:_a9.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_a9.avoidSeasonal=true:_a9.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_a9.avoidFerries=true:_a9.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_a9.avoidUnpaved=true:_a9.avoidUnpaved=false;
($d("fastest").checked)?_a9.routeType="FASTEST":_a9.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_a9.reverseRoute=true;
$d("rev").value=false;
}else{
_a9.reverseRoute=false;
}
view.scrollToElement=0;
this.setAdvancedRoutingOptions();
},reverseRoute:function(evt){
$d("rev").value=true;
this.acceptHandler();
},reverseRouteQuick:function(evt){
$d("rev").value=true;
var _ac=this._controller._model.routeOptions;
if(_ac==null){
_ac={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_ac.avoidHighways=true:_ac.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_ac.avoidTollRoads=true:_ac.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_ac.avoidSeasonal=true:_ac.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_ac.avoidFerries=true:_ac.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_ac.avoidUnpaved=true:_ac.avoidUnpaved=false;
($d("fastest").checked)?_ac.routeType="FASTEST":_ac.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_ac.reverseRoute=true;
$d("rev").value=false;
}else{
_ac.reverseRoute=false;
}
view.scrollToElement=0;
ua.a(":MQ08StartEndSwitch");
mq.showLoadingImage();
this._controller.rerunRoute();
},editLocation:function(_ad){
debug("MapTabView.editLocation: "+_ad);
var idx=this._controller.getLocIndexOfStop(_ad);
var _af=false;
if(controller._model.locations){
var _b0=controller._model.locations[0].location.country;
_af=(!_b0||(_b0.toUpperCase()!="US"&&_b0.toUpperCase()!="CA"))?true:false;
}
ua.a(":MQ08Edit");
var _b1=$d("location"+_ad);
mq.hide($d("locDiv"+_ad));
var _b2="loc"+_ad;
window[_b2+"Form"]=new mq.editlocationform({template:"editLocation",jsId:_b2+"Form",prefix:_b2,formType:"edit",mode:"ajax",tmpStartLocation:$w("listItem"+_ad).location,parentElem:$d("locEditDiv"+_ad),searchBoxStartId:_b2+"0-query",locationBoxStartId:_b2+"0-addressInput",locNum:_ad,international:_af});
},showLocationListItem:function(loc,_b4,_b5,_b6){
debug("MapTabView.showLocationList: "+_b4);
loc.addressInput=mq.formatLocationSingleLine(loc);
var w=new mq.widget.LocationListItem({id:"listItem"+_b4,position:_b4,listSize:_b5,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");
_b6.appendChild(w.domNode);
},chooseSavedRecent:function(_b8,_b9){
var _ba=$w("savedRecent"+_b8);
_ba.close();
var _bb=dojo.cookie.getCookie("locationhistory");
var _bc=mq.util.parseLocations(_bb);
var loc=_bc[_b9].location;
this._controller.addLocation(loc,_b8);
},showManeuverMap:function(_be,_bf){
debug("Showing maneuver map: "+_be+","+_bf);
ua.a(":MQ08ManMap");
var _c0=$d("manMap"+_be+"-"+_bf);
dojo.removeClass(_c0,"manMapHide");
dojo.addClass(_c0,"manMapShow");
routeResults=this._controller._model.routeResults;
var man=routeResults.treks[_be].maneuvers[_bf];
var l1=man.shapePoints[0];
man.showMap=true;
var _c3=-3;
var _c4=-27;
var _c5=new MQA.ShapeCollection();
var _c6=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_bf+1)+".png",26,27,true,false);
var _c7=new MQA.Icon("http://img.mqcdn.com/mqtoolkit/shadow.png",23,7);
if(!l1){
var loc=controller._model.locations[_be+1].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(_c3,_c4));
pt1.setValue("shadow",_c7);
pt1.setValue("shadowOffset",new MQA.Point(5,-4));
pt1.setIcon(_c6);
pt1.setKey("pois-"+(_bf+1));
_c5.add(pt1);
if(_bf<routeResults.treks[_be].maneuvers.length-1){
var l2=man.shapePoints[1];
if(l2){
var _cb=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_bf+2)+".png",26,27,true,false);
var pt2=new MQA.Poi(new MQA.LatLng(l2.latitude,l2.longitude));
pt2.setValue("iconOffset",new MQA.Point(_c3,_c4));
pt2.setValue("shadow",_c7);
pt2.setValue("shadowOffset",new MQA.Point(5,-4));
pt2.setIcon(_cb);
pt2.setKey("pois-"+(_bf+2));
_c5.add(pt2);
}
}
if(_c5.getSize()>1){
var _cd={};
_cd.bestFitRect=_c5.getBoundingRect();
}
var _ce=new MQA.TileMap(_c0,12,new MQA.LatLng(l1.latitude,l1.longitude),"map",_cd||null);
MQA.withModule("zoomcontrol",function(){
var _cf=new MQA.ZoomControl(_ce);
_ce.addControl(_cf,new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(5,15)));
});
var _d0=new MQA.Icon(this.imagePath+"/via-red-circle.png",11,11);
var _d1=0;
for(var i=0;i<controller._model.locations.length;i++){
var _d3=new MQA.Icon(this.imagePath+"/icons/stop_"+_d1+".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("%"+(_d1+65).toString(16)));
pt.setIcon(_d3);
pt.setValue("shadow",_c7);
pt.setValue("shadowOffset",new MQA.Point(5,-4));
_d1++;
}else{
pt.setKey(i);
pt.setIcon(_d0);
pt.setValue("iconOffset",new MQA.Point(-4,-4));
pt.setValue("shadow",null);
}
_c5.add(pt);
}
_ce.addShapeCollection(_c5);
MQA.EventManager.addListener(_ce,"dragend",dojo.hitch(this,"dragManeuverMap"));
MQA.EventManager.addListener(_ce,"zoomend",dojo.hitch(this,"zoomManeuverMap"));
var ul=controller._model.routeResults.upperLeft;
var lr=controller._model.routeResults.lowerRight;
var _d8=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(){
_ce.addRouteHighlight(_d8,routeResults.mapServerUrl,routeResults.sessionId,false);
});
this.manMapList["manMap"+_be+"-"+_bf]=_ce;
var _d9=$d("manMapLink"+_be+"-"+_bf);
_d9.innerHTML="<a href=\"javascript:view.mapView.hideManeuverMap("+_be+","+_bf+");\">"+mq.getMessage("HIDE")+"</a>";
},handleSTOClick:function(){
$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(_da,loc){
if(_da.result&&_da.result.loadError){
var _dc=dojo.hitch(this,"processShowSTG",_da,loc);
UIService.generatePromo("stg-NoPlugin-promo",_dc);
}else{
if(_da.gpsController.getDevicesCount()==0){
var _dc=dojo.hitch(this,"processShowSTG",_da,loc);
UIService.generatePromo("stg-NoDevice-promo",_dc);
}else{
this.processShowSTG(_da,loc);
}
}
},processShowSTG:function(_dd,loc,_df){
mq.hideLoadingImage();
if(!_df){
_df="";
}
var _e0=new mq.widget.SendToGPS({id:"mqSTG",location:loc,gps:_dd,PromoResult:_df});
var _e1=new mq.widget.MQPopup({id:"mqSTGPopup",popupWidget:_e0,position:"center",closeButtonRequired:true,onClose:dojo.hitch(_e0,"handleCancel")});
this.updateSTGConnects();
},reloadSTGCallback:function(_e2){
if($w("mqSTG")){
$w("mqSTG").reload();
}
if($w("mqSTGPopup")){
$w("mqSTGPopup").changeContent($d("mqSTGPopupContent").innerHTML);
}
this.updateSTGConnects();
},completeSTG:function(_e3){
var stg=$w("mqSTG");
if(!stg){
return;
}
if(_e3.msg){
stg.showError(_e3.msg);
return;
}
stg.deviceWriteResults.push(_e3);
if(stg.deviceWriteResults.length==stg.selectedDevices.length){
var _e5=false;
for(i=0;i<stg.deviceWriteResults.length;i++){
if(!stg.deviceWriteResults[i].success){
_e5=true;
}
}
if(!_e5){
var _e6=new dojox.string.Builder();
if(controller._model.locations.length==1||stg.gps.waypointsOnly){
ua.a(":MQ08S2GSuccessWP");
_e6.append("You have successfully sent the waypoints to the following devices(s)");
}else{
ua.a(":MQ08S2GSuccessRte");
_e6.append("You have successfully sent the route to the following devices(s)");
}
_e6.append("<br/><br/><ul>");
for(i=0;i<stg.selectedDevices.length;i++){
_e6.append("<li>").append("<span class='b'>").append(stg.selectedDevices[i].displayName).append("</span></li>");
}
_e6.append("<ul>");
$d("gpsSuccessMessage").innerHTML=_e6;
$w("mqSTGPopup").changeContent($d("mqSTGConfirmationSuccess").innerHTML);
}else{
var _e6=new dojox.string.Builder();
for(i=0;i<stg.deviceWriteResults.length;i++){
_e6.append(stg.deviceWriteResults[i].msg).append("<br/>");
}
$d("stgError").innerHTML=_e6+"<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(_e7,_e8){
ua.a(":MQ08ManMapHide");
var _e9=$d("manMap"+_e7+"-"+_e8);
_e9.innerHTML="";
dojo.removeClass(_e9,"manMapShow");
dojo.addClass(_e9,"manMapHide");
var _ea=$d("manMapLink"+_e7+"-"+_e8);
_ea.innerHTML="<a href=\"javascript:view.mapView.showManeuverMap("+_e7+","+_e8+");\">"+mq.getMessage("MAP")+"</a>";
var man=routeResults.treks[_e7].maneuvers[_e8];
man.showMap=false;
var _ec="manMap"+_e7+"-"+_e8;
var map=this.manMapList[_ec];
map.dispose();
map=null;
delete this.manMapList[_ec];
},avoidSegmentPopup:function(_ee,_ef){
var _f0=new dojox.string.Builder();
_f0.append("<div class=\"alert-warning\">");
_f0.append(" <img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_f0.append(" <span>"+mq.getMessage("MSG_AVOID_AND_RECALC")+"</span><br/><br/>");
_f0.append(" <div class=\"textc\">");
_f0.append("  <input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.avoidSegment("+_ee+","+_ef+");\" class=\"btn\" id=\"routeClearOk\"/>&nbsp;&nbsp;&nbsp;");
_f0.append("  <input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('confirmAvoidAndRecalculate').handleCancel();\" class=\"btn\" id=\"routeClearCancel\"/>");
_f0.append(" </div>");
_f0.append("</div>");
_f0=_f0.toString();
var _f1=new mq.widget.MQPopup({id:"confirmAvoidAndRecalculate",position:"center",popupContent:_f0});
},avoidSegment:function(_f2,_f3){
$w("confirmAvoidAndRecalculate").close();
debug("MapTabView.avoidSegment");
ua.a(":MQ08AvoidMan");
this._controller.avoidRouteSegment(_f2,_f3);
},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(_f4){
var _f5=$d("routeWarningMsg");
var _f6=new dojox.string.Builder();
var _f7=_f4.split("<br/>");
_f6.append("<div class='alert-warning' style='width:auto;height:auto;'>");
_f6.append("<img width='24' height='25' src='"+this.imagePath+"/icon-warn.gif' />");
if(_f7.length==1){
_f6.append("<div style='padding-top:4px;color:#990000;font-weight:bold;float:left;'>"+_f4+"</div>");
}else{
_f6.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>");
_f6.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<_f7.length;i++){
_f6.append("<li style='maring-left:0px;'>"+_f7[i]+"</li>");
}
_f6.append("</ul></div>");
}
_f6.append("</div>");
var _f9=mq.getPopupContentWidthHeight(_f6);
_f5.innerHTML=_f6.toString();
_f5.style.display="block";
},hideRouteWarningMessage:function(){
var _fa=$d("routeWarningMsg");
if(_fa){
_fa.style.display="none";
}
},updateShowHideRoutingLnk:function(_fb){
if(mqPageContext!="results"){
return;
}
var _fc=$d("routeShowHideLnk");
if(_fb){
_fc.innerHTML="<span>"+mq.getMessage("HIDE_ROUTING")+"</span>";
_fc.title=mq.getMessage("HIDE_ROUTING");
}else{
_fc.innerHTML="<span>"+mq.getMessage("SHOW_ROUTING")+"</span>";
_fc.title=mq.getMessage("SHOW_ROUTING");
}
},isShowRoute:function(){
var _fd=$d("routeShowHideLnk");
var _fe=false;
if(_fd.title==mq.getMessage("HIDE_ROUTING")){
_fe=true;
}
return _fe;
},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(){
if($d("fuelButton")){
$d("fuelButton").style.display="inline";
}
debug("maptabview.updateDirSummary");
var _102=this._controller._model;
var locs=_102.locations;
if(locs&&locs.length==1){
var _104=$d("dirStartAddrSummary");
$d("dirStartAddrSummary").innerHTML=(_102.name&&_102.name!="null")?"<div class='addrLine'>"+_102.name+"</div>":mq.util.formatLocationSummary(locs[0].location,true,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(_102.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=_102.routeResults.time;
$d("dirDistanceSummary").innerHTML=_102.routeResults.distance;
if(_102.routeResults.fuelCost>0){
if($d("dirFuelSummary")){
$d("dirFuelSummary").innerHTML="$"+_102.routeResults.fuelCost.toFixed(2);
}
if($d("dirFuelSummary2")){
$d("dirFuelSummary2").innerHTML="$"+_102.routeResults.fuelCost.toFixed(2);
}
mq.hide($d("fuelButton"));
mq.hide($d("fuelButton2"));
}else{
if($d("dirFuelSummary")){
$d("dirFuelSummary").innerHTML="";
}
if($d("dirFuelSummary2")){
$d("dirFuelSummary2").innerHTML="";
}
if($d("fuelButton")){
$d("fuelButton").style.display="inline";
}
if($d("fuelButton2")){
$d("fuelButton2").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(_105){
if(_105&&_105=="show"){
mq.show($d("contentTabBar2"));
}else{
mq.hide($d("contentTabBar2"));
}
},popularSearch:function(_106,_107,pos,_109){
debug("MapView.popularSearch");
var loc=controller._model.locations[_107].location;
mq.executeSearchNearby(loc,_106,pos,_109);
},addNextLocFromBtn:function(){
var _10b=controller.numLocs();
if(!mq.validateLocationsCount()){
var _10c=new dojox.string.Builder();
_10c.append("<div class=\"alert-warning\" style=\"display: block;width: 220px;\">");
_10c.append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_10c.append(mq.getMessage("ERROR_MAX_STOPS")+"<br/><br/>");
_10c.append("</div>");
_10c=_10c.toString();
mq.handleFormErrorPopups(null,_10c);
mq.hideLoadingImage();
ua.a(":MQ08MaxStops");
return;
}
var _10d=null;
if($d("loc"+(_10b+1)+"0-address")&&$d("loc"+(_10b+1)+"addNextLocationFieldsIntl")&&$d("loc"+(_10b+1)+"addNextLocationFieldsIntl").style.display!="none"){
_10d=$d("loc"+(_10b+1)+"0-address");
}else{
if($d("loc"+(_10b+1)+"0-city")&&$d("loc"+(_10b+1)+"addNextLocationFieldsIntl")&&$d("loc"+(_10b+1)+"addNextLocationFieldsIntl").style.display!="none"){
_10d=$d("loc"+(_10b+1)+"0-city");
}else{
_10d=$d("loc"+(_10b+1)+"0-addressInput");
}
}
if(_10d){
var _10e=dojo.query(".lcAddNext")[0];
mq.util.scrollElemToView(_10e,"center");
_10d.focus();
dojox.fx.highlight({node:_10e,duration:2000}).play();
ua.a(":MQ08LOCAddNext");
}
},findNearby:function(){
var _10f=$d("findSrchTerm");
var _110=$d("findCat");
var _111="";
if(_110.value!=""){
_111=_110.value;
}else{
if(_10f&&dojo.trim(_10f.value)!=""){
_111=dojo.trim(_10f.value);
}
}
if(_111){
var _112=controller.numLocs();
if(_112>0){
var loc,_114;
if(_112==1){
loc=controller._model.locations[0].location;
loc.query=null;
}else{
var _115=$d("findLoc").value;
loc=controller._model.locations[_115].location;
loc.query=null;
}
ua.a(":MQ08SearchNearbyBar");
mq.executeSearchNearby(loc,_111,_112);
}
}else{
var _116=[];
_116.push("<p>Please enter search term or select category.</p>");
popupContent="<div class=\"bubbleError\">"+_116.join("")+"</div>";
m2.dialog.open({dialogName:"mqErrorPopup",content:popupContent,modal:true,showCloseButton:true,position:{el:"findOr",align:{one:"b",two:"c"}},size:{width:"288",height:"auto"},skipReposition:false,closeOnBackgroundClick:true,showArrow:true,dialogClass:"mqErrorPopup"});
}
},zoomToStreetHandler:function(_117){
var loc=controller._model.locations[_117].location;
this.zoomToStreet(loc);
},updateLocalLinks:function(locs){
var _11a=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");
dojo.query(".narrHeader a","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("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 _120=controller.numLocs();
if(_120==0){
mq.hide($d("fNearby"));
mq.hide($d("loc0Form"));
}
if(_120==1){
mq.hide($d("findLoc"));
this.showHideContentTabBar2("hide");
}else{
if(_120>1){
view.updateFindNBLocList();
this.showHideContentTabBar2("show");
this.updateRouteOptions(false);
}
}
if(_120==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(_121){
debug("maptabview.updateRouteOptions: "+_121);
if(mqPageContext!="results"){
return;
}
try{
if(_121){
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 _124=model.locations[x].location.city;
var _125=model.locations[x].location.state;
var _126=model.locations[0].location.city;
var _127=model.locations[0].location.state;
var _128="S293";
var _129="B310055";
var _12a=hotWireAdUrlHotel;
var _12b=hotWireAdUrlCar;
var _12c=hotWireAdUrlFlight;
var _12d="";
var _12e="http://www.hotwire.com/";
var _12f=_12e;
if(document.getElementById("hotwireHotel").checked){
_12f+="hotel/search-options.jsp?sid="+_128+"&bid="+_129+"&inputId=hotel-index";
_12f+="&destCity="+_124+","+_125;
_12d=_12a;
}else{
if(document.getElementById("hotwireCar").checked){
_12f+="car/search-options.jsp?startLocation="+_124+","+_125;
_12f+="&startSearchType=N&inputId=index&selectedCarTypes=ECAR";
_12f+="&sid="+_128+"&bid="+_129;
_12d=_12b;
}else{
if(document.getElementById("hotwireFlight").checked){
_12f+="air/search-options.jsp?sid="+_128+"&bid="+_129+"&inputId=index";
_12f+="&originCity="+_126+","+_127;
_12f+="&destinationCity="+_124+","+_125;
_12d=_12c;
}
}
}
if(_12f!=_12e){
ua.a(":MQ08HotwireBook");
if(_12d){
_12f=_12d+escape(_12f);
}
window.open(_12f,"_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');
