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");
for(var x=0;x<model.routeCollection.getSize();x++){
var _a=model.routeCollection.getAt(x);
MQA.EventManager.removeListener(_a,"mousemove",view.mapView.draggableRoute.eRouteMouseMove);
MQA.EventManager.removeListener(_a,"mouseout",view.mapView.draggableRoute.eRouteMouseOut);
MQA.EventManager.removeListener(_a,"mousedown",view.mapView.draggableRoute.eRouteMouseDown);
debug("   mq.turnOffDragEvents - "+x);
}
};
mq.handleGeneralizedShape=function(_b,rs){
try{
if(model.routeCollection){
for(var x=0;x<model.routeCollection.getSize();x++){
var _e=model.routeCollection.getAt(x);
MQA.EventManager.removeListener(_e,"mousemove",_b.draggableRoute.eRouteMouseMove);
MQA.EventManager.removeListener(_e,"mouseout",_b.draggableRoute.eRouteMouseOut);
MQA.EventManager.removeListener(_e,"mousedown",_b.draggableRoute.eRouteMouseDown);
}
model.routeCollection.removeAll();
}
if(model.dragRouteCollection){
model.dragRouteCollection.removeAll();
}
if(_b.draggableRoute.filter.length){
_b.draggableRoute.filter=[];
}
var _f=rs.m_shapePts.length;
debug("mq.handleGeneralizedShape: "+_f);
var _10=[];
var xys=[];
if(_f==0){
for(var _12=0;_12<rs.m_segmentShapeIndexes.length;_12++){
_10[_12]=new MQA.LatLngCollection();
}
}else{
if(rs.m_segmentShapeIndexes.length==1){
_10[0]=new MQA.LatLngCollection();
for(var m=0;m<_f;m++){
var ll=rs.m_shapePts[m];
var _15=new MQA.LatLng(ll.latitude,ll.longitude);
_10[0].add(_15);
var xy=_b.draggableRoute._tileMap.llToPix(_15);
xys.push(xy.x);
xys.push(xy.y);
}
}else{
var _12=0;
var _17=0;
while(_12<rs.m_segmentShapeIndexes.length-1){
var _18=rs.m_segmentShapeIndexes[_12+1];
_10[_12]=new MQA.LatLngCollection();
if(_18>=_f){
_18=_f-1;
}
for(var m=_17;m<=_18;m++){
var ll=rs.m_shapePts[m];
var _15=new MQA.LatLng(ll.latitude,ll.longitude);
_10[_12].add(_15);
var xy=_b.draggableRoute._tileMap.llToPix(_15);
xys.push(xy.x);
xys.push(xy.y);
}
_17=_18;
_12++;
}
if(_17<_f-1){
_10[_12]=new MQA.LatLngCollection();
for(var m=_17;m<_f;m++){
var ll=rs.m_shapePts[m];
var _15=new MQA.LatLng(ll.latitude,ll.longitude);
_10[_12].add(_15);
var xy=_b.draggableRoute._tileMap.llToPix(_15);
xys.push(xy.x);
xys.push(xy.y);
}
}else{
_10[_12]=new MQA.LatLngCollection();
}
}
}
_b.draggableRoute.eRouteMouseMove=dojo.hitch(_b.draggableRoute,"onRouteMouseMove");
_b.draggableRoute.eRouteMouseOut=dojo.hitch(_b.draggableRoute,"onRouteMouseOut");
_b.draggableRoute.eRouteMouseDown=dojo.hitch(_b.draggableRoute,"onRouteMouseDown");
for(var _12=0;_12<rs.m_segmentShapeIndexes.length;_12++){
debug("model.routeCollection.getSize(): "+model.routeCollection.getSize());
var _19=new MQA.LineOverlay();
_19.setValue("key",model.routeCollection.getSize());
_19.setValue("shapePoints",_10[_12]);
_19.setValue("borderWidth",10);
_19.setValue("color","#FF00FF");
_19.setValue("colorAlpha",0.01);
_19.setValue("altColor","#FF00FF");
_19.setValue("altColorAlpha",0.01);
controller._model.routeCollection.add(_19,true);
if(enableDrag&&_19.shape){
_19.shape.style.cursor="pointer";
MQA.EventManager.addListener(_19,"mousemove",_b.draggableRoute.eRouteMouseMove);
MQA.EventManager.addListener(_19,"mouseout",_b.draggableRoute.eRouteMouseOut);
MQA.EventManager.addListener(_19,"mousedown",_b.draggableRoute.eRouteMouseDown);
}
}
_b.draggableRoute.addFilter(MQA.Filters.PolyLine,xys);
if(_b.sizeHandler==null){
_b.sizeHandler=dojo.hitch(_b,"onSetSize");
MQA.EventManager.addListener(_b._tileMap,"setsize",_b.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 _2b,tg=-1/((y1-y0)/(x1-x0));
return {x:_2b=(x1*(x*tg-y+y0)+x0*(x*-tg+y-y1))/(tg*(x1-x0)+y0-y1),y:tg*_2b-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 _32=view.mapView.draggableRoute._tileMap;
_32.overlayOffsetX=_32.getDragOffset().x;
_32.overlayOffsetY=_32.getDragOffset().y;
_32.overlaydiv.style.left=-(_32.SURFACE_OFFSET+_32.overlayOffsetX)+"px";
_32.overlaydiv.style.top=-(_32.SURFACE_OFFSET+_32.overlayOffsetY)+"px";
if(_32.overlaySurfaces[MQA.OVERAY_DRAG]){
_32.dragoverlaydiv.style.left=_32.overlaydiv.style.left;
_32.dragoverlaydiv.style.top=_32.overlaydiv.style.top;
}
if(_32.overlaySurfaces[MQA.OVERAY_DRAG_DOT]){
_32.dragdotoverlaydiv.style.left=_32.overlaydiv.style.left;
_32.dragdotoverlaydiv.style.top=_32.overlaydiv.style.top;
}
_32.redrawOverlays();
var xys=[];
for(var y=0;y<model.routeCollection.getSize();y++){
var _35=model.routeCollection.getAt(y);
var _36=_35.getValue("shapePoints");
for(var x=0;x<_36.getSize();x++){
var pt=_36.getAt(x);
var xy=_32.llToPix(pt);
xys.push(xy.x);
xys.push(xy.y);
}
}
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 _3a=dojo.hitch(this,"handlePromoPopupCallback");
UIService.generatePromo("mainui-fuel-popup",_3a);
this.inherited(arguments);
setTimeout(function(){
mq.focus($d("mpgInput"));
if($w("dijit_DialogUnderlay_0")){
$w("dijit_DialogUnderlay_0").layout();
}
},500);
},handlePromoPopupCallback:function(_3b){
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 _3c=controller._model.routeResults.sessionId;
var _3d=dojo.hitch(mq,"handleFuel");
UIService.calculateFuelFromProfile(_3c,_3d);
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 _41=mq.getMessage("ERROR_INVALID_NUMBER");
var _42="<div style='color:#CC0000;font-weight:bold;'><div class='fltl'>"+mq.setImagePng(mqPrefix+"/cdn/dotcom/images/icon-warn-sm.png",18,18)+"</div>"+_41+"</div>";
$d("fuelError").innerHTML=_42;
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 _43=controller._model.routeResults.sessionId;
var _44=dojo.hitch(mq,"handleFuel");
UIService.calculateFuelWithMPG(_43,mpg,_44);
ua.a(":MQ08FuelCalcMPG");
}
catch(e){
logDebug("mq.calcFuelCostWithMPG",e);
}
};
mq.handleFuel=function(_45){
try{
mq.hideLoadingFuelImage();
window.fuelResponse=_45;
if(_45.cost>0){
$d("dirFuelSummary").innerHTML="$"+_45.cost.toFixed(2);
mq.hide($d("fuelButton"));
}else{
if((!_45.loggedIn||!_45.vehicleAvailable)&&_45.priceAvailable&&_45.sessionAvailable){
var _46=$d("fuelButton");
var _47=dojo.coords(_46,true);
var _48=m2.util.Content.execFtl("/promo/fuelcost");
var _49=new mq.widget.FuelCost({id:"mqFuelPopup",promoLoginContent:_48,xoffset:_47.x+110,yoffset:_47.y-28,onClose:dojo.hitch(mq,"closeFuelPopup")});
dojo.connect($d("fuelCostForm"),"onsubmit",mq,"calcFuelCostWithMPG");
}else{
if(!_45.sessionAvailable){
mq.handleFormErrorPopups(null,"<span class=\"redavoid\">"+mq.getMessage("ERROR_SESSION_EXPIRED")+"</span>");
}else{
if(!_45.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 _4d=mq.calcCenterPosition(155,36);
l.style.left=_4d.x+"px";
l.style.top=_4d.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,{draggableRoute:new MQA.DraggableRoute(),constructor:function(_4f,_50,_51){
try{
debug("MapTabView.constructor");
this.manMapList={};
var _52=dijit.getViewport().w-30-dojo.coords($d("rightrailad"),true).w;
($d("mapWindow")).style.width=_52+"px";
($d("mapWindow")).style.height="540px";
this._locationListId=this._idList["locationList"];
var _53=_4f._model.viewType;
if(!_53){
_53=mq.savedandrecent.getDefaultMapType();
}
debug(">> "+this.getDefaultMapLocation().longitude+", "+_53+", "+_4f._model.zoomLevel);
var _54=false;
if(serverResults&&_4f._model.searchLocation){
if(serverResults.length<2){
if(serverResults[0].resultCode=="SEARCH_RESULTS"){
_54=true;
}
}else{
if(serverResults[1].resultCode=="SEARCH_RESULTS"){
_54=true;
}
}
}
if(!_54){
this.loadMap(_4f,_50,_51,_53,_54);
}
dojo.connect(this,"onMapTypeChange",this._controller,"viewTypeChange");
dojo.connect(this,"onPanZoomChange",this._controller,"panZoomChange");
if(_4f._model.blId&&_4f.numLocs()>1){
var me=this;
if(_4f._model.showRoute==true||(_4f._model.showRoute==false&&_4f._model.blOption!="route")){
mq.dynamicRequire("mq.corridor",function(){
mq.executeCorridorSearch(_4f._model,me._tileMap);
});
}else{
this.showGenericPopup("Please click on \"Show Directions\" to see results along your route.");
}
return;
}
this.tabView=this.tabState.map;
if(_4f._model.locations){
var _56=false;
if(_4f._model.printerFriendly){
_56=true;
_4f._model.printerFriendly=false;
}
var _57=mq.getQueryString(window.location.href,"ua");
if(_57&&_57.toUpperCase()=="TRAFFIC"){
ua.a(":MQ08TrafficOn");
}
if(_50){
ua.a(":pv");
this.handleServerRender();
ua.commit();
}else{
this.updateView(_4f._model);
}
if(_56){
_4f._model.printerFriendly=true;
}
}else{
if(!_54){
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(_58,_59,_5a,_5b){
this.initMap(this.getDefaultMapLocation(),_5b,_58._model.zoomLevel,_59);
try{
if(model.blId&&model.searchResults){
this.drawCorridorResults();
}
MQA.EventManager.addListener(this._tileMap,"maptypechanged",dojo.hitch(this,"changeMapType"));
MQA.EventManager.addListener(this._tileMap,"zoomend",dojo.hitch(this,"changeZoom"));
MQA.EventManager.addListener(this._tileMap,"routeRefresh",dojo.hitch(this,"onRouteRefresh"));
MQA.EventManager.addListener(this._tileMap,"redrawoveralys",dojo.hitch(this,"onRedrawOveralys"));
MQA.EventManager.addListener(this._tileMap,"dragend",dojo.hitch(this,"panMap"));
MQA.EventManager.addListener(this._tileMap.controls[MQA.CONTROL_PANZOOM3],"bestfit",dojo.hitch(this,"bestFit"));
if(!this.zoomHandler){
this.zoomHandler=dojo.hitch(this,"onZoomEnd");
}
this.sizeHandler=null;
MQA.EventManager.addListener(this._tileMap,"moveend",dojo.hitch(this,"onMoveEnd"));
this.comscoreTracker=new mq.ComScore(this._controller,this._tileMap,"mapWindow");
MQA.EventManager.addListener(this._tileMap,"mousedown",dojo.hitch(this.comscoreTracker,"monitor"));
MQA.EventManager.addListener(this._tileMap,"dragend",dojo.hitch(this.comscoreTracker,"monitor"));
}
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(_62){
ScrollLock.lock();
try{
this._tileMap.closeInfoDisplayBox();
if(typeof (this._tileMap)=="undefined"||!this._tileMap){
var _63=controller._model.viewType;
if(!_63){
_63=mq.savedandrecent.getDefaultMapType();
}
this.loadMap(controller,false,this._idList,_63);
}
debug("MapTabView.updateView");
mq.hideLoadingImage();
ua.a(":pv");
if(!!(view)){
if(_62.mode){
view.contentModeHandler(_62.mode);
}else{
if(view.getCurrentMode()!="MAPS"){
view.contentModeHandler("MAPS");
}
}
view.resizeLayout();
}
if(!_62.printerFriendly&&mq.isShowing($d("printDisplay"))){
window.backToMap();
}
var _64="";
var _65="";
try{
if(_62.routeResults!=null&&_62.routeResults.resultMessages!=null&&!_62.routeResults.wasAvoidError){
var _66=_62.routeResults.resultMessages;
debug("Route messages found: "+_66.length);
for(var i=0;i<_66.length;i++){
debug("Message "+i+": "+_66[i]);
var tmp=mq.getMessage(_66[i].match(/^[A-Z,_]*/));
(mq.startsWith(_66[i],"WARN"))?_65+=(tmp+"<br/>"):_64+=(tmp+"<br/>");
}
_64=(_64!="")?_64.substring(0,_64.lastIndexOf("<br/>")):_64;
_65=(_65!="")?_65.substring(0,_65.lastIndexOf("<br/>")):_65;
}
}
catch(e){
logDebug("maptabview.updateView-dispRouteErrors",e);
}
if(_64.length<=0){
if(_62.routeResults){
_62.routeResults.wasAvoidError=null;
}
this.updateShowHideRoutingLnk(_62.showRoute);
(_62.viewType!=null)?this._tileMap.setMapType(_62.viewType):this._tileMap.setMapType(mq.savedandrecent.getDefaultMapType());
var _69=_62.locations;
var _6a=$d("mapWindow");
if(_69!=null&&_69.length>0){
try{
mq.show($d("itin"));
_6a.style.borderTopWidth="1px";
this.updateMap(_62);
if(_69.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"));
_6a.style.borderTopWidth="0px";
this._tileMap.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 _6b=controller.numLocs();
if(_6b>1){
this.drawLocations(_62);
}
if(_6b>0){
this.addLocationForm(_6b,"loc",this._locationListId);
if(_6b==1){
mq.hide($d("findLoc"));
}else{
if(_6b>1){
view.updateFindNBLocList();
}
}
}
this.updateDirSummary();
mq.util.updateBrowserTitle();
this.updateRouteOptions(true);
if(serverResults&&view.mapView){
serverResults=null;
}
if(dirForm&&dirForm.results){
dirForm.results=null;
}
(_65.length>0)?this.showRouteWarningMessage(_65):this.hideRouteWarningMessage();
this.scrollIntoView();
view.scrollToElement=null;
}
catch(e){
logDebug("maptabview.updateView-finishing",e);
}
}else{
this.updateShowHideRoutingLnk(_62.showRoute);
this.showGenericPopup(_64);
}
if(!_62.showPrint){
ua.commit();
}
debug("Before showPrint");
if(_62.printerFriendly){
window.showPrint();
}
}
catch(e){
logDebug("maptabview.updateView-generic",e);
}
finally{
ScrollLock.unlock();
}
},updateMap:function(_6c){
try{
this._tileMap.removeShapeCollection("");
var _6d=this._tileMap.getShapeCollection("corridorBizLocPOIS");
if(_6d!=null){
this._tileMap.removeShapeCollection("corridorBizLocPOIS");
}
var _6e=true;
if(!_6c.blId&&resultsOptions!=null){
resultsOptions.removeResults();
}
if(controller.numLocs()>1&&_6c.blId&&_6c.searchResults){
_6c.resultsAlreadyDrawn=true;
_6c.blOption=((null==_6c.blOption)?"route":_6c.blOption);
if(_6c.blOption=="route"){
var _6f=_6c.searchResults.searchResults;
if(_6f.length==0){
_6e=true;
this.drawCorridorResults();
}else{
_6e=false;
var _70=new Array();
for(var i in _6f){
_70.push(new MQA.LatLng(_6f[i].latitude,_6f[i].longitude));
}
this._tileMap.bestFitLL(_70,false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
this.drawCorridorResults();
}
}else{
if(_6c.blOption=="map"){
_6e=false;
this.drawCorridorResults();
}else{
_6e=false;
var _6f=_6c.searchResults.searchResults;
var _72=controller.getLocIndexOfStop(_6c.blOption);
var _73=_6c.locations[_72].location;
var _74=new MQA.LatLng(_73.latitude,_73.longitude);
this._tileMap.setCenter(_74);
var _70=new Array();
_70.push(_74);
for(var i in _6f){
_70.push(new MQA.LatLng(_6f[i].latitude,_6f[i].longitude));
}
var _75=(_6f.length==1)?12:this.zoomLevels["MAX"];
var _76=this._tileMap.getBestFitMargin();
this._tileMap.setBestFitMargin(50);
this._tileMap.bestFitLL(_70,true,this.zoomLevels["MIN"],_75);
this._tileMap.setBestFitMargin(_76);
this.drawCorridorResults();
}
}
}
this.addPoisToMap(_6c.locations);
if(dojo.isSafari){
this._tileMap.getDeclutter().redrawLeaderLines();
}
debug("MapTabView: removing route highlight");
this._tileMap.removeRouteHighlight();
if(_6c.zoomLevel!=null&&_6c.zoomLevel){
debug("MapTabView.updateView: restoring map center, zoom level, and best fit");
if(_6c.showRoute){
if(!_6c.routeResults){
controller.rerunRoute();
}else{
this.addRouteHighlight(_6c,_6e);
}
}
this._tileMap.setCenter(new MQA.LatLng(_6c.centerLatitude,_6c.centerLongitude),_6c.zoomLevel);
}else{
if(_6c.showRoute&&_6c.routeResults!=null){
debug("MapTabView.updateView: adding route");
this.addRouteHighlight(_6c,_6e);
}else{
if(_6c.locations.length==1){
var loc=_6c.locations[0].location;
if(loc.geocodeQuality){
debug("MapTabView.updateView: setting zoom based on geocode quality");
var _78=this._tileMap.getZoomLevel();
this._tileMap.setCenter(new MQA.LatLng(loc.latitude,loc.longitude),this.zoomLevels[loc.geocodeQuality]);
if(this._tileMap.getZoomLevel()==_78){
controller.panZoomChange(_78,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(controller.numLocs()>1&&_6c.blId&&_6c.blOption=="route"&&_6c.searchResults&&_6c.searchResults.searchResults.length>0){
this._tileMap.bestFit(false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
}
_6c.resultsAlreadyDrawn=null;
}
catch(e){
logDebug("maptabview.updateMap",e);
}
},zoomInToSuperPOI:function(){
if(arguments.length>0){
ua.a(":MQ08BLZoomInDetails");
var _79=new Array();
for(var i=0;i<arguments.length;i+=2){
_79.push(new MQA.LatLng(arguments[i],arguments[i+1]));
}
this._tileMap.bestFitLL(_79,false,this.zoomLevels["MIN"],this.zoomLevels["MAX"]);
}
},removeResultsFromMap:function(e){
debug("MapTabView.removeResultsFromMap");
view.mapView._tileMap.removeShapeCollection("corridorBizLocPOIS");
controller.clearBusinessLocator();
if(typeof resultsOptions!="undefined"){
if(resultsOptions){
resultsOptions.setResultsCount(0);
}
}
ua.a(":MQ08BLRemoveResults");
},refreshResults:function(e){
debug("MapTabView.refreshResults");
ua.a(":MQ08BLRefreshResults");
if(controller._model.showRoute==true||(controller._model.showRoute==false&&controller._model.blOption!="route")){
mq.executeCorridorSearch(controller._model,this._tileMap);
}else{
this.showGenericPopup("Please click on \"Show Directions\" to see results along your route.");
}
},handleResultOptionChange:function(e){
debug("MapTabView.handleResultOptionChange: "+e.selectedValue);
controller._model.blOption=e.selectedValue;
mq.executeCorridorSearch(controller._model,this._tileMap);
},scrollIntoView:function(){
try{
var _7e=controller._model;
var _7f;
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;
}
_7f=$d(view.scrollToElement);
view.scrollToElement=null;
}
if(_7f){
var _80=dijit.getViewport();
if(!mq.util.isElementInView(_7f)){
mq.util.scrollElemToView(_7f,_80.h-200);
}
}
}
catch(e){
logDebug("maptabview.scrollIntoView",e);
}
},onCategorySearchForCS:function(_81,_82){
var loc={};
controller._model.searchOptions.refineFilter="category";
controller._model.searchOptions.refineCategory=_81;
loc=controller._model.searchResults.searchResults[_82];
ua.a(":MQ08BUBRelatedCategory");
ua.showDebugger();
mq.search(loc,null,controller._model.searchOptions);
},addRouteHighlight:function(_84,_85){
try{
box=this._tileMap.getBounds();
var ul=_84.routeResults.upperLeft;
var lr=_84.routeResults.lowerRight;
var box=new MQA.RectLL(new MQA.LatLng(ul.latitude,ul.longitude),new MQA.LatLng(lr.latitude,lr.longitude));
debug("SessionId: "+_84.routeResults.sessionId+", "+_85);
debug("Box: "+box.ul.lat+","+box.ul.lng+": "+box.lr.lat+","+box.lr.lng);
debug("MapSize: "+this._tileMap.getSize());
if(this.zoomHandler){
MQA.EventManager.removeListener(this._tileMap,"zoomend",this.zoomHandler);
}
if(this.sizeHandler!=null){
MQA.EventManager.removeListener(this._tileMap,"setsize",this.sizeHandler);
}
if(_84.dragOccured){
this._tileMap.addRouteHighlight(box,_84.routeResults.mapServerUrl,_84.routeResults.sessionId,false);
_84.dragOccured=false;
}else{
this._tileMap.addRouteHighlight(box,_84.routeResults.mapServerUrl,_84.routeResults.sessionId,_85);
}
debug("MapTabView.addRouteHighlight: after highlight added");
this.draggableRoute.setTileMap(this._tileMap);
this.draggableRoute.setController(this._controller);
if(!this.zoomHandler){
this.zoomHandler=dojo.hitch(this,"onZoomEnd");
}
MQA.EventManager.addListener(this._tileMap,"zoomend",this.zoomHandler);
if(this.sizeHandler!=null){
MQA.EventManager.addListener(this._tileMap,"setsize",this.sizeHandler);
}
if(!_84.dragRouteResults){
_84.dragRouteResults=null;
}
if(!_84.routeCollection){
this._tileMap.removeShapeCollection("mqa.routeColl");
debug("addRouteHighlight - in if");
_84.routeCollection=new MQA.ShapeCollection();
_84.routeCollection.setName("mqa.routeColl");
_84.routeCollection.setDeclutter(false);
this._tileMap.addShapeCollection(_84.routeCollection);
}else{
for(var x=0;x<_84.routeCollection.getSize();x++){
var _8a=_84.routeCollection.getAt(x);
MQA.EventManager.removeListener(_8a,"mousemove",this.eRouteMouseMove);
MQA.EventManager.removeListener(_8a,"mouseout",this.eRouteMouseOut);
MQA.EventManager.removeListener(_8a,"mousedown",this.eRouteMouseDown);
}
_84.routeCollection.removeAll();
}
if(!_84.dragRouteCollection){
this._tileMap.removeShapeCollection("mqa.dragRouteColl");
_84.dragRouteCollection=new MQA.ShapeCollection();
_84.dragRouteCollection.setName("mqa.dragRouteColl");
_84.dragRouteCollection.setDeclutter(false);
this._tileMap.addShapeCollection(_84.dragRouteCollection);
}
if(!_84.dragPointCollection){
this._tileMap.removeShapeCollection("dragPointColl");
_84.dragPointCollection=new MQA.ShapeCollection();
_84.dragPointCollection.setName("dragPointColl");
_84.dragPointCollection.setDeclutter(false);
this._tileMap.addShapeCollection(_84.dragPointCollection);
}
var _8b={centerLat:this._tileMap.getCenter().getLatitude(),centerLng:this._tileMap.getCenter().getLongitude(),height:parseFloat((this._tileMap.getSize().getHeight()+1024)/72),width:parseFloat((this._tileMap.getSize().getWidth()+1024)/72),scale:this._tileMap.getScale(),sessionId:_84.routeResults.sessionId};
mq.getGeneralizedShape(this,_8b);
}
catch(e){
logDebug("maptabview.addRouteHighlight",e);
}
},rolloverManeuver:function(evt){
debug("TabView.rolloverManeuver: "+evt.eventName);
var _8d=evt.srcObject;
if(evt.eventName=="MQA.LineOverlay.mouseOut"){
_8d.setAltStateFlag(false);
}else{
_8d.setAltStateFlag(true);
}
},showGenericPopup:function(_8e){
try{
debug("MapTabView.showGenericPopup: "+_8e);
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\">"+_8e+"</div></div>");
var _90=new mq.widget.MQPopup({id:"mqErrorPopup",position:"center",popupImage:"sprt-pop-ylw",popupContent:sb.toString(),closeButtonRequired:true});
}
catch(e){
logDebug("maptabview.genericError:"+(_8e)?_8e:"",e);
}
},cleanLocationList:function(){
try{
debug("MapTabView.cleanLocationList");
var _91=10+draggable_max_viastops;
for(var i=0;i<=_91;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(_95){
try{
if(_95.locations!=null){
debug("MapTabView.drawLocations: "+_95.locations.length);
var ul=document.createElement("div");
ul.setAttribute("id","locationList");
ul.setAttribute("class","locationList");
$d(this._locationListId).appendChild(ul);
if(_95.showRoute&&_95.routeResults!=null&&_95.locations.length>1){
var div=document.createElement("div");
dojo.addClass(div,"dirTitle");
var _98=new dojox.string.Builder();
_98.append("Directions");
_98.append("<div id=\"avoidRestore\" style=\"display:none;\">");
_98.append("<div class=\"fltl\"><img src=\""+mqPrefix+"/cdn/dotcom/images/icons/icon-alert-info.gif\" height=\"15\" width=\"15\"></div>");
_98.append("<a title=\"Click to restore avoided maneuvers\" id=\"restoreAvoidsLnk\" onclick=\"controller.removeAvoidSegments();\">Click to restore avoided maneuvers</a>");
_98.append("</div>");
_98.append("<div class=\"clearb\"></div>");
div.innerHTML=_98.toString();
$d(this._locationListId).appendChild(div);
}
var _99=0;
for(i=0;i<_95.locations.length;i++){
loc=_95.locations[i].location;
if(loc.locationType==1){
_99++;
}
}
var _9b=0;
for(i=0;i<_95.locations.length;i++){
loc=_95.locations[i].location;
if(loc.locationType==1){
this.showLocationListItem(loc,_9b,_99,ul);
_9b++;
}
}
if(_95.showRoute){
for(i=0;i<_95.routeResults.treks.length;i++){
this.showNarrative(_95,i);
}
$d(this._locationListId).appendChild(ul);
}
if(_95.showRoute&&_95.routeResults!=null&&_95.locations.length>1){
debug("Show Total Time and Distance");
var div=document.createElement("div");
dojo.addClass(div,"routeResults");
var _9c=new dojox.string.Builder();
_9c.append("<div class=\"narrTotal\">");
_9c.append("Total Estimated Time: <span class=\"timeSpan\">"+_95.routeResults.time+"</span>");
_9c.append("Total Estimated Distance: <span>"+_95.routeResults.distance+"</span>");
_9c.append("</div>");
div.innerHTML=_9c.toString();
$d(this._locationListId).appendChild(div);
if(_95.routeResults.informationAreas){
var msg=new dojox.string.Builder();
for(var i=0;i<_95.routeResults.informationAreas.length;i++){
var _9e=_95.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>"+_9e.title+"</span><br/>");
msg.append(_9e.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 _9f=[];
var _a0=$d("locationList").childNodes;
for(i=0;i<_a0.length;i++){
id=_a0[i].id;
index=id[id.length-1];
_9f[i]=$w("listItem"+index).location;
}
this._controller.reorder(_9f);
},showNarrative:function(_a1,_a2){
try{
debug("MapTabView.showNarrative: "+_a2);
if(_a1.routeResults==null||!_a1.routeResults.treks||_a1.routeResults.treks.length==0||(_a2>(_a1.routeResults.treks.length-1))){
return;
}
var _a3=$d("routeNarrative"+_a2);
if(_a3){
if($d("dirHide"+_a2)){
dojo.disconnect($d("dirHide"+_a2),"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"+_a2+"\" src=\""+this.imagePath+"/arw-dir_open.png\">&nbsp;&nbsp;Directions from ");
sb.append(this.alphabet[_a2]+" to "+this.alphabet[_a2+1]+":</div>");
var _a5=_a1.routeResults.treks[_a2];
sb.append(this.createNarrativeTableExpand(_a5,_a2,_a1.routeResults.variance));
sb.append("<div class=\"narrTotalEst\">Estimated Time: "+_a5.time+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
sb.append("Estimated Distance: "+_a5.distance+"</b></div></div>");
_a3.innerHTML=sb.toString();
dojo.connect($d("dirHide"+_a2),"onclick",this,"toggleNarrative");
if(this.tabView==this.tabState.text){
for(var i=0;i<_a5.maneuvers.length;i++){
var man=_a5.maneuvers[i];
if(man.showMap){
this.showManeuverMap(_a2,i);
}
}
}
}
debug("Index at end of showNarrative: "+_a2);
}
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(_a9,_aa){
var _ab=controller._model.routeOptions.distanceUnit;
var msg=(_aa==0)?mq.getMessage("VARIANCE_BEGIN",[mq.util.formatDistance(_a9,_ab)]):mq.getMessage("VARIANCE_END",[mq.util.formatDistance(_a9,_ab)]);
return msg;
},createNarrativeTableExpand:function(_ad,_ae,_af){
debug("MapTabView.createNarrativeTableExpand");
var sb=new dojox.string.Builder();
sb.append("<div id=\"narrative"+_ae+"\">");
if(_af[_ae]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_af[_ae],0));
sb.append("</div>");
}
sb.append("<table width=\"100%\">");
sb.append("<tr>");
sb.append("<td>");
for(k=0;k<_ad.maneuvers.length;k++){
var man=_ad.maneuvers[k];
sb.append("<table class=\"rtRow\" width=\"100%\" id=\"maneuver"+_ae+"-"+k+"\">");
sb.append("<tr>");
sb.append("<td class=\"rtCol1\" valign=\"top\"><div style=\"height:22px\"><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<_ad.maneuvers.length-1){
if(man.message&&man.message=="MSG_UNABLE_TO_AVOID"){
sb.append("<li class=\"singleli\" id=\"manMapLink"+_ae+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_ae+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
}else{
sb.append("<li class=\"firstli\" id=\"manMapLink"+_ae+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_ae+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
sb.append("<li class=\"lastli\"><a href=\"javascript:view.mapView.avoidSegmentPopup("+_ae+","+k+");\">"+mq.getMessage("AVOID")+"</a></li>");
}
}else{
sb.append("<li class=\"singleli\" id=\"manMapLink"+_ae+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_ae+","+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"+_ae+"-"+k+"\"></div>");
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
}
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
if(_af[_ae+1]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_af[_ae+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(_b3){
debug("MapTabView.chooseAmbigLocation: "+_b3);
var _b4=$w("ambigWin");
var loc=_b4.resultList[_b3];
debug("loc-addressInput: "+loc.addressInput);
if(loc.query!=null&&loc.query!=""){
this._controller._model.searchLocation=loc;
this._controller.search(loc,_b4.position);
}else{
this._controller.addLocation(loc,_b4.position);
}
_b4.close();
},removeLocation:function(_b6){
debug("MapTabView.removeLocation: "+_b6);
var _b7=new dojox.string.Builder();
_b7.append("<div class=\"alert-warning\">");
_b7.append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_b7.append("<span>"+mq.getMessage("MSG_CLEAR_LOCATION")+"</span><br/><br/>");
_b7.append("<div class=\"textc\">");
_b7.append("<input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.confirmRemoveLocation("+_b6+");\" class=\"btn\" id=\"locationClearOk\"/>&nbsp;&nbsp;&nbsp;");
_b7.append("<input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('removeLocation').handleCancel();\" class=\"btn\" id=\"locationClearCancel\"/>");
_b7.append("</div>");
_b7.append("</div>");
_b7=_b7.toString();
var _b8=new mq.widget.MQPopup({id:"removeLocation",position:"center",popupContent:_b7});
},confirmRemoveLocation:function(_b9){
$w("removeLocation").handleAccept();
if(controller.numStops()==2){
var _ba=controller._model;
var _bb=document.getElementById("mapIdHidden");
if(_bb!=null){
var _bc=_bb.value;
_bc=_bc.replace(",","");
}
controller.removeVias(_b9);
var _bd=controller.getLocIndexOfStop(_b9);
_ba.locations.splice(_bd,1);
mq.createUrlFromModel(_ba,"",_bc);
}else{
this.cleanLocationList();
mq.showLoadingImage();
controller.removeLocation(_b9);
}
},acceptHandler:function(evt){
var _bf=this._controller._model.routeOptions;
if(_bf==null){
_bf={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_bf.avoidHighways=true:_bf.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_bf.avoidTollRoads=true:_bf.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_bf.avoidSeasonal=true:_bf.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_bf.avoidFerries=true:_bf.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_bf.avoidUnpaved=true:_bf.avoidUnpaved=false;
($d("fastest").checked)?_bf.routeType="FASTEST":_bf.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_bf.reverseRoute=true;
$d("rev").value=false;
}else{
_bf.reverseRoute=false;
}
view.scrollToElement=0;
this.setAdvancedRoutingOptions();
},reverseRoute:function(evt){
$d("rev").value=true;
this.acceptHandler();
},reverseRouteQuick:function(evt){
$d("rev").value=true;
var _c2=this._controller._model.routeOptions;
if(_c2==null){
_c2={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_c2.avoidHighways=true:_c2.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_c2.avoidTollRoads=true:_c2.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_c2.avoidSeasonal=true:_c2.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_c2.avoidFerries=true:_c2.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_c2.avoidUnpaved=true:_c2.avoidUnpaved=false;
($d("fastest").checked)?_c2.routeType="FASTEST":_c2.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_c2.reverseRoute=true;
$d("rev").value=false;
}else{
_c2.reverseRoute=false;
}
view.scrollToElement=0;
ua.a(":MQ08StartEndSwitch");
mq.showLoadingImage();
this._controller.rerunRoute();
},editLocation:function(_c3){
debug("MapTabView.editLocation: "+_c3);
var idx=this._controller.getLocIndexOfStop(_c3);
ua.a(":MQ08Edit");
var _c5=$d("location"+_c3);
mq.hide($d("locDiv"+_c3));
var _c6="loc"+_c3;
window[_c6+"Form"]=new mq.editlocationform({template:"editLocation",jsId:_c6+"Form",prefix:_c6,formType:"edit",mode:"ajax",tmpStartLocation:$w("listItem"+_c3).location,parentElem:$d("locEditDiv"+_c3),searchBoxStartId:_c6+"0-query",locationBoxStartId:_c6+"0-addressInput",locNum:_c3});
},showLocationListItem:function(loc,_c8,_c9,_ca){
debug("MapTabView.showLocationList: "+_c8);
loc.addressInput=mq.formatLocationSingleLine(loc);
var w=new mq.widget.LocationListItem({id:"listItem"+_c8,position:_c8,listSize:_c9,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");
_ca.appendChild(w.domNode);
},chooseSavedRecent:function(_cc,_cd){
var _ce=$w("savedRecent"+_cc);
_ce.close();
var _cf=dojo.cookie.getCookie("locationhistory");
var _d0=mq.util.parseLocations(_cf);
var loc=_d0[_cd].location;
this._controller.addLocation(loc,_cc);
},showManeuverMap:function(_d2,_d3){
debug("Showing maneuver map: "+_d2+","+_d3);
ua.a(":MQ08ManMap");
var _d4=$d("manMap"+_d2+"-"+_d3);
routeResults=this._controller._model.routeResults;
var man=routeResults.treks[_d2].maneuvers[_d3];
var l1=man.shapePoints[0];
man.showMap=true;
var _d7=-3;
var _d8=-27;
var _d9=new MQA.ShapeCollection();
var _da=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_d3+1)+".png",26,27,true,false);
var _db=new MQA.Icon("http://img.mqcdn.com/mqtoolkit/shadow.png",23,7);
var pt1=new MQA.Poi(new MQA.LatLng(l1.latitude,l1.longitude));
pt1.setValue("iconOffset",new MQA.Point(_d7,_d8));
pt1.setValue("shadow",_db);
pt1.setValue("shadowOffset",new MQA.Point(5,-4));
pt1.setIcon(_da);
pt1.setKey("pois-"+(_d3+1));
_d9.add(pt1);
if(_d3<routeResults.treks[_d2].maneuvers.length-1){
var l2=man.shapePoints[1];
var _de=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_d3+2)+".png",26,27,true,false);
var pt2=new MQA.Poi(new MQA.LatLng(l2.latitude,l2.longitude));
pt2.setValue("iconOffset",new MQA.Point(_d7,_d8));
pt2.setValue("shadow",_db);
pt2.setValue("shadowOffset",new MQA.Point(5,-4));
pt2.setIcon(_de);
pt2.setKey("pois-"+(_d3+2));
_d9.add(pt2);
}
var _e0=new MQA.MapInit();
_e0.setBestFitRect(_d9.getBoundingRect());
var _e1=new MQA.TileMap(_d4,null,new MQA.LatLng(l1.latitude,l1.longitude),"map",_e0);
var _e2=new MQA.ZoomControl(_e1);
_e2.zoomin.src=MQA.Util._modifyImageSrc("http://img.mqcdn.com/mqtoolkit/z-in2");
_e2.zoomout.src=MQA.Util._modifyImageSrc("http://img.mqcdn.com/mqtoolkit/z-out2");
_e1.addControl(_e2,new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(5,15)));
var _e3=new MQA.Icon(this.imagePath+"/via-red-circle.png",11,11);
var _e4=0;
for(var i=0;i<controller._model.locations.length;i++){
var _e6=new MQA.Icon(this.imagePath+"/icons/stop_"+_e4+".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("%"+(_e4+65).toString(16)));
pt.setIcon(_e6);
pt.setValue("shadow",_db);
pt.setValue("shadowOffset",new MQA.Point(5,-4));
_e4++;
}else{
pt.setKey(i);
pt.setIcon(_e3);
pt.setValue("iconOffset",new MQA.Point(-4,-4));
pt.setValue("shadow",null);
}
_d9.add(pt);
}
_e1.addShapeCollection(_d9);
MQA.EventManager.addListener(_e1,"dragend",dojo.hitch(this,"dragManeuverMap"));
var ul=controller._model.routeResults.upperLeft;
var lr=controller._model.routeResults.lowerRight;
var _eb=new MQA.RectLL(new MQA.LatLng(ul.latitude,ul.longitude),new MQA.LatLng(lr.latitude,lr.longitude));
debug("Maneuver map session id: "+routeResults.sessionId);
_e1.addRouteHighlight(_eb,routeResults.mapServerUrl,this._controller._model.routeResults.sessionId,false);
this.manMapList["manMap"+_d2+"-"+_d3]=_e1;
dojo.removeClass(_d4,"manMapHide");
dojo.addClass(_d4,"manMapShow");
var _ec=$d("manMapLink"+_d2+"-"+_d3);
_ec.innerHTML="<a href=\"javascript:view.mapView.hideManeuverMap("+_d2+","+_d3+");\">"+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(_ed,loc){
if(_ed.result&&_ed.result.loadError){
var _ef=dojo.hitch(this,"processShowSTG",_ed,loc);
UIService.generatePromo("stg-NoPlugin-promo",_ef);
}else{
if(_ed.gpsController.getDevicesCount()==0){
var _ef=dojo.hitch(this,"processShowSTG",_ed,loc);
UIService.generatePromo("stg-NoDevice-promo",_ef);
}else{
this.processShowSTG(_ed,loc);
}
}
},processShowSTG:function(_f0,loc,_f2){
mq.hideLoadingImage();
if(!_f2){
_f2="";
}
var _f3=new mq.widget.SendToGPS({id:"mqSTG",location:loc,gps:_f0,PromoResult:_f2});
var _f4=new mq.widget.MQPopup({id:"mqSTGPopup",popupWidget:_f3,position:"center",closeButtonRequired:true,onClose:dojo.hitch(_f3,"handleCancel")});
this.updateSTGConnects();
},reloadSTGCallback:function(_f5){
if($w("mqSTG")){
$w("mqSTG").reload();
}
if($w("mqSTGPopup")){
$w("mqSTGPopup").changeContent($d("mqSTGPopupContent").innerHTML);
}
this.updateSTGConnects();
},completeSTG:function(_f6){
var stg=$w("mqSTG");
if(!stg){
return;
}
if(_f6.msg){
stg.showError(_f6.msg);
return;
}
stg.deviceWriteResults.push(_f6);
if(stg.deviceWriteResults.length==stg.selectedDevices.length){
var _f8=false;
for(i=0;i<stg.deviceWriteResults.length;i++){
if(!stg.deviceWriteResults[i].success){
_f8=true;
}
}
if(!_f8){
var _f9=new dojox.string.Builder();
if(controller._model.locations.length==1||stg.gps.waypointsOnly){
ua.a(":MQ08S2GSuccessWP");
_f9.append("You have successfully sent the waypoints to the following devices(s)");
}else{
ua.a(":MQ08S2GSuccessRte");
_f9.append("You have successfully sent the route to the following devices(s)");
}
_f9.append("<br/><br/><ul>");
for(i=0;i<stg.selectedDevices.length;i++){
_f9.append("<li>").append("<span class='b'>").append(stg.selectedDevices[i].displayName).append("</span></li>");
}
_f9.append("<ul>");
$d("gpsSuccessMessage").innerHTML=_f9;
$w("mqSTGPopup").changeContent($d("mqSTGConfirmationSuccess").innerHTML);
}else{
var _f9=new dojox.string.Builder();
for(i=0;i<stg.deviceWriteResults.length;i++){
_f9.append(stg.deviceWriteResults[i].msg).append("<br/>");
}
$d("stgError").innerHTML=_f9+"<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(_fa,_fb){
ua.a(":MQ08ManMapHide");
var _fc=$d("manMap"+_fa+"-"+_fb);
_fc.innerHTML="";
dojo.removeClass(_fc,"manMapShow");
dojo.addClass(_fc,"manMapHide");
var _fd=$d("manMapLink"+_fa+"-"+_fb);
_fd.innerHTML="<a href=\"javascript:view.mapView.showManeuverMap("+_fa+","+_fb+");\">"+mq.getMessage("MAP")+"</a>";
var man=routeResults.treks[_fa].maneuvers[_fb];
man.showMap=false;
var _ff="manMap"+_fa+"-"+_fb;
var map=this.manMapList[_ff];
map.dispose();
map=null;
delete this.manMapList[_ff];
},avoidSegmentPopup:function(_101,_102){
var _103=new dojox.string.Builder();
_103.append("<div class=\"alert-warning\">");
_103.append(" <img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_103.append(" <span>"+mq.getMessage("MSG_AVOID_AND_RECALC")+"</span><br/><br/>");
_103.append(" <div class=\"textc\">");
_103.append("  <input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.avoidSegment("+_101+","+_102+");\" class=\"btn\" id=\"routeClearOk\"/>&nbsp;&nbsp;&nbsp;");
_103.append("  <input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('confirmAvoidAndRecalculate').handleCancel();\" class=\"btn\" id=\"routeClearCancel\"/>");
_103.append(" </div>");
_103.append("</div>");
_103=_103.toString();
var _104=new mq.widget.MQPopup({id:"confirmAvoidAndRecalculate",position:"center",popupContent:_103});
},avoidSegment:function(_105,_106){
$w("confirmAvoidAndRecalculate").close();
debug("MapTabView.avoidSegment");
ua.a(":MQ08AvoidMan");
this._controller.avoidRouteSegment(_105,_106);
},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(_107){
var _108=$d("routeWarningMsg");
var _109=new dojox.string.Builder();
var _10a=_107.split("<br/>");
_109.append("<div class='alert-warning' style='width:auto;height:auto;'>");
_109.append("<img width='24' height='25' src='"+this.imagePath+"/icon-warn.gif' />");
if(_10a.length==1){
_109.append("<div style='padding-top:4px;color:#990000;font-weight:bold;float:left;'>"+_107+"</div>");
}else{
_109.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>");
_109.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<_10a.length;i++){
_109.append("<li style='maring-left:0px;'>"+_10a[i]+"</li>");
}
_109.append("</ul></div>");
}
_109.append("</div>");
var _10c=mq.getPopupContentWidthHeight(_109);
_108.innerHTML=_109.toString();
_108.style.display="block";
},hideRouteWarningMessage:function(){
var elem=$d("routeWarningMsg");
if(elem){
elem.style.display="none";
}
},updateShowHideRoutingLnk:function(_10e){
if(mqPageContext!="results"){
return;
}
var _10f=$d("routeShowHideLnk");
if(_10e){
_10f.innerHTML="<span>"+mq.getMessage("HIDE_ROUTING")+"</span>";
_10f.title=mq.getMessage("HIDE_ROUTING");
}else{
_10f.innerHTML="<span>"+mq.getMessage("SHOW_ROUTING")+"</span>";
_10f.title=mq.getMessage("SHOW_ROUTING");
}
},isShowRoute:function(){
var _110=$d("routeShowHideLnk");
var _111=false;
if(_110.title==mq.getMessage("HIDE_ROUTING")){
_111=true;
}
return _111;
},toggleRoute:function(){
mq.showLoadingImage();
this._controller.toggleRoute();
},openInfoWindow:function(evt){
},closeInfoWindow:function(evt){
if(mqPageContext=="rblprofile"){
}
},dragManeuverMap:function(evt){
ua.a(":MQ08ManMapDrag");
},updateDirSummary:function(){
debug("maptabview.updateDirSummary");
var _115=this._controller._model;
var locs=_115.locations;
if(locs&&locs.length==1){
var _117=$d("dirStartAddrSummary");
$d("dirStartAddrSummary").innerHTML=(_115.name&&_115.name!="null")?"<div class='addrLine'>"+_115.name+"</div>":mq.util.formatLocationSummary(locs[0].location);
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);
mq.show($d("dirEndBlock"));
$d("dirEndAddrSummaryAddress").innerHTML=mq.util.formatLocationSummary(locs[locs.length-1].location);
if(_115.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=_115.routeResults.time;
$d("dirDistanceSummary").innerHTML=_115.routeResults.distance;
if(_115.routeResults.fuelCost>0){
$d("dirFuelSummary").innerHTML="$"+_115.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(_118){
if(_118&&_118=="show"){
mq.show($d("contentTabBar2"));
}else{
mq.hide($d("contentTabBar2"));
}
},popularSearch:function(_119,_11a,pos,_11c){
debug("MapView.popularSearch");
var loc=controller._model.locations[_11a].location;
mq.executeSearchNearby(loc,_119,pos,_11c);
},addNextLocFromBtn:function(){
var _11e=controller.numLocs();
if(!mq.validateLocationsCount()){
var _11f=new dojox.string.Builder();
_11f.append("<div class=\"alert-warning\" style=\"display: block;width: 220px;\">");
_11f.append("<img src=\""+mqPrefix+"/cdn/dotcom/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_11f.append(mq.getMessage("ERROR_MAX_STOPS")+"<br/><br/>");
_11f.append("</div>");
_11f=_11f.toString();
mq.handleFormErrorPopups(null,_11f);
mq.hideLoadingImage();
ua.a(":MQ08MaxStops");
return;
}
var _120=$d("loc"+_11e+"0-addressInput");
if(_120){
var _121=dojo.query(".lcAddNext")[0];
mq.util.scrollElemToView(_121,"center");
_120.focus();
dojox.fx.highlight({node:_121,duration:2000}).play();
ua.a(":MQ08LOCAddNext");
}
},findNearby:function(){
var _122=$d("findSrchTerm");
var _123=$d("findCat");
var _124="";
if(_123.value!=""){
_124=_123.value;
}else{
if(_122&&dojo.trim(_122.value)!=""){
_124=dojo.trim(_122.value);
}
}
if(_124){
var _125=controller.numLocs();
if(_125>0){
var loc,_127;
if(_125==1){
loc=controller._model.locations[0].location;
loc.query=null;
}else{
var _128=$d("findLoc").value;
loc=controller._model.locations[_128].location;
loc.query=null;
}
ua.a(":MQ08SearchNearbyBar");
mq.executeSearchNearby(loc,_124,_125);
}
}else{
var _129=[];
_129.push("<div class=\"alert-warning\">");
_129.push("<img width=\"24\" height=\"25\" src=\""+this.imagePath+"/icon-warn.gif\" />");
_129.push("<span class=\"redavoid\">Please enter search term or select category.</span></div>");
var _12a=$d("findSrchTerm");
var _12b=dojo.coords(_12a,true);
new mq.widget.MQPopup({id:"findNearByWarn",popupContent:_129.join(""),xoffset:(_12b.x+_12a.offsetWidth-135),yoffset:_12b.y+30,closeButtonRequired:true,popupArrowPlacement:1,popupImage:"sprt-pop-ylw"});
}
},zoomToStreetHandler:function(_12c){
var loc=controller._model.locations[_12c].location;
this.zoomToStreet(loc);
},updateLocalLinks:function(locs){
var _12f=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 _135=controller.numLocs();
if(_135==0){
mq.hide($d("fNearby"));
mq.hide($d("loc0Form"));
}
if(_135==1){
mq.hide($d("findLoc"));
this.showHideContentTabBar2("hide");
}else{
if(_135>1){
view.updateFindNBLocList();
this.showHideContentTabBar2("show");
this.updateRouteOptions(false);
}
}
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(_136){
debug("maptabview.updateRouteOptions: "+_136);
if(mqPageContext!="results"){
return;
}
try{
if(_136){
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);
}
}});
}

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