if(!dojo._hasResource["mq.maptabview"]){
dojo._hasResource["mq.maptabview"]=true;
dojo.provide("mq.maptabview");
dojo.declare("mq.MapTabView",mq.TabView,{constructor:function(_1,_2,_3){
try{
debug("MapTabView.constructor");
this.manMapList={};
var _4=dijit.getViewport().w-30-dojo.coords($d("rightrailad"),true).w;
($d("mapWindow")).style.width=_4+"px";
($d("mapWindow")).style.height="540px";
this._locationListId=this._idList["locationList"];
var _5=_1._model.viewType;
if(!_5){
_5=mq.savedandrecent.getDefaultMapType();
}
debug(">> "+this.getDefaultMapLocation().longitude+", "+_5+", "+_1._model.zoomLevel);
var _6=false;
if(serverResults&&_1._model.searchLocation){
if(serverResults.length<2){
if(serverResults[0].resultCode=="SEARCH_RESULTS"){
_6=true;
}
}else{
if(serverResults[1].resultCode=="SEARCH_RESULTS"){
_6=true;
}
}
}
if(!_6){
this.loadMap(_1,_2,_3,_5,_6);
}
dojo.connect(this,"onMapTypeChange",this._controller,"viewTypeChange");
dojo.connect(this,"onPanZoomChange",this._controller,"panZoomChange");
this.tabView=this.tabState.map;
if(_1._model.locations){
var _7=false;
if(_1._model.printerFriendly){
_7=true;
_1._model.printerFriendly=false;
}
var _8=mq.getQueryString(window.location.href,"ua");
if(_8&&_8.toUpperCase()=="TRAFFIC"){
ua.a(":MQ08TrafficOn");
}
if(_2){
ua.a(":pv");
this.handleServerRender();
ua.commit();
}else{
this.updateView(_1._model);
}
if(_7){
_1._model.printerFriendly=true;
}
}else{
if(!_6){
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(_9,_a,_b,_c){
this.initMap(this.getDefaultMapLocation(),_c,_9._model.zoomLevel,_a);
try{
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,"dragend",dojo.hitch(this,"panMap"));
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);
}
},imagePath:mqPrefix+"/cdn/images",iconPattern:"stop_{VAR}.png",VARIANCE_LIMIT:0.1,updateView:function(_d){
try{
this._tileMap.closeInfoDisplayBox();
if(typeof (this._tileMap)=="undefined"||!this._tileMap){
var _e=controller._model.viewType;
if(!_e){
_e=mq.savedandrecent.getDefaultMapType();
}
this.loadMap(controller,false,this._idList,_e);
}
debug("MapTabView.updateView");
mq.hideLoadingImage();
ua.a(":pv");
if(!!(view)){
if(_d.mode){
view.contentModeHandler(_d.mode);
}else{
if(view.getCurrentMode()!="MAPS"){
view.contentModeHandler("MAPS");
}
}
view.resizeLayout();
}
if(!_d.printerFriendly&&mq.isShowing($d("printDisplay"))){
window.backToMap();
}
var _f="";
var _10="";
try{
if(_d.routeResults!=null&&_d.routeResults.resultMessages!=null&&!_d.routeResults.wasAvoidError){
var _11=_d.routeResults.resultMessages;
debug("Route messages found: "+_11.length);
for(var i=0;i<_11.length;i++){
debug("Message "+i+": "+_11[i]);
var tmp=mq.getMessage(_11[i].match(/^[A-Z,_]*/));
(mq.startsWith(_11[i],"WARN"))?_10+=(tmp+"<br/>"):_f+=(tmp+"<br/>");
}
_f=(_f!="")?_f.substring(0,_f.lastIndexOf("<br/>")):_f;
_10=(_10!="")?_10.substring(0,_10.lastIndexOf("<br/>")):_10;
}
}
catch(e){
logDebug("maptabview.updateView-dispRouteErrors",e);
}
if(_f.length<=0){
if(_d.routeResults){
_d.routeResults.wasAvoidError=null;
}
this.updateShowHideRoutingLnk(_d.showRoute);
(_d.viewType!=null)?this._tileMap.setMapType(_d.viewType):this._tileMap.setMapType(mq.savedandrecent.getDefaultMapType());
var _14=_d.locations;
var _15=$d("mapWindow");
if(_14!=null&&_14.length>0){
try{
mq.show($d("itin"));
_15.style.borderTopWidth="1px";
this.updateMap(_d);
if(_14.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"));
_15.style.borderTopWidth="0px";
this._tileMap.removeRouteHighlight();
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 _16=controller.numLocs();
if(_16>1){
this.drawLocations(_d);
}
if(_16>0){
this.addLocationForm(_16,"loc",this._locationListId);
if(_16==1){
mq.hide($d("findLoc"));
}else{
if(_16>1){
view.updateFindNBLocList();
}
}
}
this.updateDirSummary();
mq.util.updateBrowserTitle();
this.updateRouteOptions(true);
if(serverResults&&view.mapView){
serverResults=null;
}
if(dirForm&&dirForm.results){
dirForm.results=null;
}
(_10.length>0)?this.showRouteWarningMessage(_10):this.hideRouteWarningMessage();
this.scrollIntoView();
view.scrollToElement=null;
}
catch(e){
logDebug("maptabview.updateView-finishing",e);
}
}else{
this.updateShowHideRoutingLnk(_d.showRoute);
this.showGenericPopup(_f);
}
if(!_d.showPrint){
ua.commit();
}
debug("Before showPrint");
if(_d.printerFriendly){
window.showPrint();
}
}
catch(e){
logDebug("maptabview.updateView-generic",e);
}
},updateMap:function(_17){
try{
this._tileMap.removeShapeCollection("");
this.addPoisToMap(_17.locations);
if(dojo.isSafari){
this._tileMap.getDeclutter().redrawLeaderLines();
}
debug("MapTabView: removing route highlight");
this._tileMap.removeRouteHighlight();
if(_17.zoomLevel!=null&&_17.zoomLevel){
debug("MapTabView.updateView: restoring map center, zoom level, and best fit");
if(_17.showRoute){
if(!_17.routeResults){
controller.rerunRoute();
}else{
this.addRouteHighlight(_17,true);
}
}
this._tileMap.setCenter(new MQA.LatLng(_17.centerLatitude,_17.centerLongitude),_17.zoomLevel);
}else{
if(_17.showRoute&&_17.routeResults!=null){
debug("MapTabView.updateView: adding route");
this.addRouteHighlight(_17,true);
}else{
if(_17.locations.length==1){
var loc=_17.locations[0].location;
if(loc.geocodeQuality){
debug("MapTabView.updateView: setting zoom based on geocode quality");
var _19=this._tileMap.getZoomLevel();
this._tileMap.setCenter(new MQA.LatLng(loc.latitude,loc.longitude),this.zoomLevels[loc.geocodeQuality]);
if(this._tileMap.getZoomLevel()==_19){
controller.panZoomChange(_19,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"]);
}
}
}
}
catch(e){
logDebug("maptabview.updateMap",e);
}
},scrollIntoView:function(){
try{
var _1a=controller._model;
var _1b;
if((typeof (view.scrollToElement)!="undefined")&&view.scrollToElement!=null){
if(view.scrollToElement==0){
window.scrollTo(0,0);
view.scrollToElement=null;
return;
}
_1b=$d(view.scrollToElement);
view.scrollToElement=null;
}
if(_1b){
var _1c=dijit.getViewport();
if(!mq.util.isElementInView(_1b)){
mq.util.scrollElemToView(_1b,_1c.h-200);
}
}
}
catch(e){
logDebug("maptabview.scrollIntoView",e);
}
},addRouteHighlight:function(_1d,_1e){
try{
box=this._tileMap.getBounds();
var ul=_1d.routeResults.upperLeft;
var lr=_1d.routeResults.lowerRight;
var box=new MQA.RectLL(new MQA.LatLng(ul.latitude,ul.longitude),new MQA.LatLng(lr.latitude,lr.longitude));
debug("SessionId: "+_1d.routeResults.sessionId+", "+_1e);
debug("Box: "+box.ul.lat+","+box.ul.lng+": "+box.lr.lat+","+box.lr.lng);
debug("MapSize: "+this._tileMap.getSize());
this._tileMap.addRouteHighlight(box,_1d.routeResults.mapServerUrl,_1d.routeResults.sessionId,_1e);
debug("MapTabView.addRouteHighlight: after highlight added");
}
catch(e){
logDebug("maptabview.addRouteHighlight",e);
}
},rolloverManeuver:function(evt){
debug("TabView.rolloverManeuver: "+evt.eventName);
var _23=evt.srcObject;
if(evt.eventName=="MQA.LineOverlay.mouseOut"){
_23.setAltStateFlag(false);
}else{
_23.setAltStateFlag(true);
}
},showGenericPopup:function(_24){
try{
debug("MapTabView.showGenericPopup: "+_24);
var sb=new dojox.string.Builder();
sb.append("<div class=\"alert-warning\" style=\"width: 220px\">").append("<img src=\""+mqPrefix+"/cdn/images/icon-warn.gif\" height=\"25\" width=\"24\">").append("<div class=\"avoid\">"+_24+"</div></div>");
var _26=new mq.widget.MQPopup({id:"mqErrorPopup",position:"center",popupImage:"sprt-pop-ylw",popupContent:sb.toString(),closeButtonRequired:true});
}
catch(e){
logDebug("maptabview.genericError:"+(_24)?_24:"",e);
}
},cleanLocationList:function(){
try{
debug("MapTabView.cleanLocationList");
for(var i=0;i<11;i++){
if(window["loc"+i+"Form"]){
mq.destroyForm(window["loc"+i+"Form"]);
window["loc"+i+"Form"]=null;
}
}
if(window["loc11Form"]){
mq.destroyForm(window["loc11Form"]);
}
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(_2a){
try{
if(_2a.locations!=null){
debug("MapTabView.drawLocations: "+_2a.locations.length);
var ul=document.createElement("div");
ul.setAttribute("id","locationList");
ul.setAttribute("class","locationList");
$d(this._locationListId).appendChild(ul);
if(_2a.showRoute&&_2a.routeResults!=null&&_2a.locations.length>1){
var div=document.createElement("div");
dojo.addClass(div,"dirTitle");
var _2d=new dojox.string.Builder();
_2d.append("Directions");
_2d.append("<div id=\"avoidRestore\" style=\"display:none;\">");
_2d.append("<div class=\"fltl\"><img src=\""+mqPrefix+"/cdn/images/icons/icon-alert-info.gif\" height=\"15\" width=\"15\"></div>");
_2d.append("<a title=\"Click to restore avoided maneuvers\" id=\"restoreAvoidsLnk\" onclick=\"controller.removeAvoidSegments();\">Click to restore avoided maneuvers</a>");
_2d.append("</div>");
_2d.append("<div class=\"clearb\"></div>");
div.innerHTML=_2d.toString();
$d(this._locationListId).appendChild(div);
}
for(i=0;i<_2a.locations.length;i++){
loc=_2a.locations[i].location;
this.showLocationListItem(loc,i,_2a.locations.length,ul);
this.showNarrative(_2a,i);
}
$d(this._locationListId).appendChild(ul);
if(_2a.showRoute&&_2a.routeResults!=null&&_2a.locations.length>1){
debug("Show Total Time and Distance");
var div=document.createElement("div");
dojo.addClass(div,"routeResults");
var _2f=new dojox.string.Builder();
_2f.append("<div class=\"narrTotal\">");
_2f.append("Total Estimated Time: <span class=\"timeSpan\">"+_2a.routeResults.time+"</span>");
_2f.append("Total Estimated Distance: <span>"+_2a.routeResults.distance+"</span>");
_2f.append("</div>");
div.innerHTML=_2f.toString();
$d(this._locationListId).appendChild(div);
if(_2a.routeResults.informationAreas){
var msg=new dojox.string.Builder();
for(var i=0;i<_2a.routeResults.informationAreas.length;i++){
var _31=_2a.routeResults.informationAreas[i];
msg.append("<div class=\"infoicon\"><img src=\""+mqPrefix+"/cdn/images/icon-info.gif\" height=\"18\" width=\"18\"></div>");
msg.append("<div class=\"infomsg\"><span>"+_31.title+"</span><br/>");
msg.append(_31.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 _32=[];
var _33=$d("locationList").childNodes;
for(i=0;i<_33.length;i++){
id=_33[i].id;
index=id[id.length-1];
_32[i]=$w("listItem"+index).location;
}
this._controller.reorder(_32);
},showNarrative:function(_34,_35){
try{
debug("MapTabView.showNarrative: "+_35);
if(_34.routeResults==null||!_34.routeResults.treks||_34.routeResults.treks.length==0||(_35>(_34.routeResults.treks.length-1))){
return;
}
var _36=$d("routeNarrative"+_35);
if(_36){
if($d("dirHide"+_35)){
dojo.disconnect($d("dirHide"+_35),"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"+_35+"\" src=\""+this.imagePath+"/arw-dir_open.png\">&nbsp;&nbsp;Directions from ");
sb.append(this.alphabet[_35]+" to "+this.alphabet[_35+1]+":</div>");
var _38=_34.routeResults.treks[_35];
sb.append(this.createNarrativeTableExpand(_38,_35,_34.routeResults.variance));
sb.append("<div class=\"narrTotalEst\">Estimated Time: "+_38.time+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
sb.append("Estimated Distance: "+_38.distance+"</b></div></div>");
_36.innerHTML=sb.toString();
dojo.connect($d("dirHide"+_35),"onclick",this,"toggleNarrative");
if(this.tabView==this.tabState.text){
for(var i=0;i<_38.maneuvers.length;i++){
var man=_38.maneuvers[i];
if(man.showMap){
this.showManeuverMap(_35,i);
}
}
}
}
debug("Index at end of showNarrative: "+_35);
}
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(_3c,_3d){
var _3e=controller._model.routeOptions.distanceUnit;
var msg=(_3d==0)?mq.getMessage("VARIANCE_BEGIN",[mq.util.formatDistance(_3c,_3e)]):mq.getMessage("VARIANCE_END",[mq.util.formatDistance(_3c,_3e)]);
return msg;
},createNarrativeTableExpand:function(_40,_41,_42){
debug("MapTabView.createNarrativeTableExpand");
var sb=new dojox.string.Builder();
sb.append("<div id=\"narrative"+_41+"\">");
if(_42[_41]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_42[_41],0));
sb.append("</div>");
}
sb.append("<table width=\"100%\">");
sb.append("<tr>");
sb.append("<td>");
for(k=0;k<_40.maneuvers.length;k++){
var man=_40.maneuvers[k];
sb.append("<table class=\"rtRow\" width=\"100%\" id=\"maneuver"+_41+"-"+k+"\">");
sb.append("<tr>");
sb.append("<td class=\"rtCol1\" valign=\"top\"><img src=\""+man.roadSignUrl+"\"/></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<_40.maneuvers.length-1){
if(man.message&&man.message=="MSG_UNABLE_TO_AVOID"){
sb.append("<li class=\"singleli\" id=\"manMapLink"+_41+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_41+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
}else{
sb.append("<li class=\"firstli\" id=\"manMapLink"+_41+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_41+","+k+");\">"+mq.getMessage("MAP")+"</a></li>");
sb.append("<li class=\"lastli\"><a href=\"javascript:view.mapView.avoidSegmentPopup("+_41+","+k+");\">"+mq.getMessage("AVOID")+"</a></li>");
}
}else{
sb.append("<li class=\"singleli\" id=\"manMapLink"+_41+"-"+k+"\"><a href=\"javascript:view.mapView.showManeuverMap("+_41+","+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"+_41+"-"+k+"\"></div>");
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
}
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
if(_42[_41+1]>this.VARIANCE_LIMIT){
sb.append("<div class=\"evenRow error\">");
sb.append(this.displayVarianceMessage(_42[_41+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(_46){
debug("MapTabView.chooseAmbigLocation: "+_46);
var _47=$w("ambigWin");
var loc=_47.resultList[_46];
debug("loc-addressInput: "+loc.addressInput);
if(loc.query!=null&&loc.query!=""){
this._controller._model.searchLocation=loc;
this._controller.search(loc,_47.position);
}else{
this._controller.addLocation(loc,_47.position);
}
_47.close();
},removeLocation:function(_49){
debug("MapTabView.removeLocation: "+_49);
var _4a=new dojox.string.Builder();
_4a.append("<div class=\"alert-warning\">");
_4a.append("<img src=\""+mqPrefix+"/cdn/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_4a.append("<span>"+mq.getMessage("MSG_CLEAR_LOCATION")+"</span><br/><br/>");
_4a.append("<div class=\"textc\">");
_4a.append("<input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.confirmRemoveLocation("+_49+");\" class=\"btn\" id=\"locationClearOk\"/>&nbsp;&nbsp;&nbsp;");
_4a.append("<input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('removeLocation').handleCancel();\" class=\"btn\" id=\"locationClearCancel\"/>");
_4a.append("</div>");
_4a.append("</div>");
_4a=_4a.toString();
var _4b=new mq.widget.MQPopup({id:"removeLocation",position:"center",popupContent:_4a});
},confirmRemoveLocation:function(_4c){
$w("removeLocation").handleAccept();
if(controller.numLocs()==2){
var _4d=controller._model;
_4d.locations.splice(_4c,1);
mq.createUrlFromModel(_4d);
}else{
this.cleanLocationList();
mq.showLoadingImage();
controller.removeLocation(_4c);
}
},acceptHandler:function(evt){
var _4f=this._controller._model.routeOptions;
if(_4f==null){
_4f={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_4f.avoidHighways=true:_4f.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_4f.avoidTollRoads=true:_4f.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_4f.avoidSeasonal=true:_4f.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_4f.avoidFerries=true:_4f.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_4f.avoidUnpaved=true:_4f.avoidUnpaved=false;
($d("fastest").checked)?_4f.routeType="FASTEST":_4f.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_4f.reverseRoute=true;
$d("rev").value=false;
}else{
_4f.reverseRoute=false;
}
view.scrollToElement=0;
this.setAdvancedRoutingOptions();
},reverseRoute:function(evt){
$d("rev").value=true;
this.acceptHandler();
},reverseRouteQuick:function(evt){
$d("rev").value=true;
var _52=this._controller._model.routeOptions;
if(_52==null){
_52={routeType:"FASTEST"};
}
($d("aoh")&&$d("aoh").checked)?_52.avoidHighways=true:_52.avoidHighways=false;
($d("aot")&&$d("aot").checked)?_52.avoidTollRoads=true:_52.avoidTollRoads=false;
($d("aos")&&$d("aos").checked)?_52.avoidSeasonal=true:_52.avoidSeasonal=false;
($d("aof")&&$d("aof").checked)?_52.avoidFerries=true:_52.avoidFerries=false;
($d("aou")&&$d("aou").checked)?_52.avoidUnpaved=true:_52.avoidUnpaved=false;
($d("fastest").checked)?_52.routeType="FASTEST":_52.routeType="SHORTEST";
if($d("rev")&&($d("rev").value=="true")){
_52.reverseRoute=true;
$d("rev").value=false;
}else{
_52.reverseRoute=false;
}
view.scrollToElement=0;
ua.a(":MQ08StartEndSwitch");
mq.showLoadingImage();
this._controller.rerunRoute();
},editLocation:function(_53){
debug("MapTabView.editLocation: "+_53);
ua.a(":MQ08Edit");
var _54=$d("location"+_53);
mq.hide($d("locDiv"+_53));
var _55="loc"+_53;
window[_55+"Form"]=new mq.editlocationform({template:"editLocation",jsId:_55+"Form",prefix:_55,formType:"edit",mode:"ajax",tmpStartLocation:$w("listItem"+_53).location,parentElem:$d("locEditDiv"+_53),searchBoxStartId:_55+"0-query",locationBoxStartId:_55+"0-addressInput",locNum:_53});
},showLocationListItem:function(loc,_57,_58,_59){
debug("MapTabView.showLocationList: "+_57);
loc.addressInput=mq.formatLocationSingleLine(loc);
var w=new mq.widget.LocationListItem({id:"listItem"+_57,position:_57,listSize:_58,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");
_59.appendChild(w.domNode);
},chooseSavedRecent:function(_5b,_5c){
var _5d=$w("savedRecent"+_5b);
_5d.close();
var _5e=dojo.cookie.getCookie("locationhistory");
var _5f=mq.util.parseLocations(_5e);
var loc=_5f[_5c].location;
this._controller.addLocation(loc,_5b);
},showManeuverMap:function(_61,_62){
debug("Showing maneuver map: "+_61+","+_62);
ua.a(":MQ08ManMap");
var _63=$d("manMap"+_61+"-"+_62);
routeResults=this._controller._model.routeResults;
var man=routeResults.treks[_61].maneuvers[_62];
var l1=man.shapePoints[0];
man.showMap=true;
var _66=-3;
var _67=-27;
var _68=new MQA.ShapeCollection();
var _69=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_62+1)+".png",26,27,true,false);
var _6a=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(_66,_67));
pt1.setValue("shadow",_6a);
pt1.setValue("shadowOffset",new MQA.Point(5,-4));
pt1.setIcon(_69);
pt1.setKey("pois-"+(_62+1));
_68.add(pt1);
if(_62<routeResults.treks[_61].maneuvers.length-1){
var l2=man.shapePoints[1];
var _6d=new MQA.Icon(this.imagePath+"/icons/mapPin-purple-"+(_62+2)+".png",26,27,true,false);
var pt2=new MQA.Poi(new MQA.LatLng(l2.latitude,l2.longitude));
pt2.setValue("iconOffset",new MQA.Point(_66,_67));
pt2.setValue("shadow",_6a);
pt2.setValue("shadowOffset",new MQA.Point(5,-4));
pt2.setIcon(_6d);
pt2.setKey("pois-"+(_62+2));
_68.add(pt2);
}
var _6f=new MQA.MapInit();
_6f.setBestFitRect(_68.getBoundingRect());
var _70=new MQA.TileMap(_63,null,new MQA.LatLng(l1.latitude,l1.longitude),"map",_6f);
var _71=new MQA.ZoomControl(_70);
_71.zoomin.src=MQA.Util._modifyImageSrc("http://img.mqcdn.com/mqtoolkit/z-in2");
_71.zoomout.src=MQA.Util._modifyImageSrc("http://img.mqcdn.com/mqtoolkit/z-out2");
_70.addControl(_71,new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT,new MQA.Size(5,15)));
_70.addShapeCollection(_68);
for(var i=0;i<controller._model.locations.length;i++){
var _73=new MQA.Icon(this.imagePath+"/icons/stop_"+i+".png",27,27,true,false);
var l=controller._model.locations[i].location;
var pt=new MQA.Poi(new MQA.LatLng(l.latitude,l.longitude));
pt.setKey("stops-"+unescape("%"+(i+65).toString(16)));
pt.setIcon(_73);
pt.setValue("shadow",_6a);
pt.setValue("shadowOffset",new MQA.Point(5,-4));
_70.addPoi(pt);
}
MQA.EventManager.addListener(_70,"dragend",dojo.hitch(this,"dragManeuverMap"));
var ul=controller._model.routeResults.upperLeft;
var lr=controller._model.routeResults.lowerRight;
var _78=new MQA.RectLL(new MQA.LatLng(ul.latitude,ul.longitude),new MQA.LatLng(lr.latitude,lr.longitude));
debug("Maneuver map session id: "+routeResults.sessionId);
_70.addRouteHighlight(_78,routeResults.mapServerUrl,this._controller._model.routeResults.sessionId,false);
this.manMapList["manMap"+_61+"-"+_62]=_70;
dojo.removeClass(_63,"manMapHide");
dojo.addClass(_63,"manMapShow");
var _79=$d("manMapLink"+_61+"-"+_62);
_79.innerHTML="<a href=\"javascript:view.mapView.hideManeuverMap("+_61+","+_62+");\">"+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(_7a,loc){
if(_7a.result&&_7a.result.loadError){
var _7c=dojo.hitch(this,"processShowSTG",_7a,loc);
UIService.generatePromo("stg-NoPlugin-promo",_7c);
}else{
if(_7a.gpsController.getDevicesCount()==0){
var _7c=dojo.hitch(this,"processShowSTG",_7a,loc);
UIService.generatePromo("stg-NoDevice-promo",_7c);
}else{
this.processShowSTG(_7a,loc);
}
}
},processShowSTG:function(_7d,loc,_7f){
mq.hideLoadingImage();
if(!_7f){
_7f="";
}
var _80=new mq.widget.SendToGPS({id:"mqSTG",location:loc,gps:_7d,PromoResult:_7f});
var _81=new mq.widget.MQPopup({id:"mqSTGPopup",popupWidget:_80,position:"center",closeButtonRequired:true,onClose:dojo.hitch(_80,"handleCancel")});
this.updateSTGConnects();
},reloadSTGCallback:function(_82){
if($w("mqSTG")){
$w("mqSTG").reload();
}
if($w("mqSTGPopup")){
$w("mqSTGPopup").changeContent($d("mqSTGPopupContent").innerHTML);
}
this.updateSTGConnects();
},completeSTG:function(_83){
var stg=$w("mqSTG");
if(!stg){
return;
}
if(_83.msg){
stg.showError(_83.msg);
return;
}
stg.deviceWriteResults.push(_83);
if(stg.deviceWriteResults.length==stg.selectedDevices.length){
var _85=false;
for(i=0;i<stg.deviceWriteResults.length;i++){
if(!stg.deviceWriteResults[i].success){
_85=true;
}
}
if(!_85){
var _86=new dojox.string.Builder();
if(controller._model.locations.length==1||stg.gps.waypointsOnly){
ua.a(":MQ08S2GSuccessWP");
_86.append("You have successfully sent the waypoints to the following devices(s)");
}else{
ua.a(":MQ08S2GSuccessRte");
_86.append("You have successfully sent the route to the following devices(s)");
}
_86.append("<br/><br/><ul>");
for(i=0;i<stg.selectedDevices.length;i++){
_86.append("<li>").append("<span class='b'>").append(stg.selectedDevices[i].displayName).append("</span></li>");
}
_86.append("<ul>");
$d("gpsSuccessMessage").innerHTML=_86;
$w("mqSTGPopup").changeContent($d("mqSTGConfirmationSuccess").innerHTML);
}else{
var _86=new dojox.string.Builder();
for(i=0;i<stg.deviceWriteResults.length;i++){
_86.append(stg.deviceWriteResults[i].msg).append("<br/>");
}
$d("stgError").innerHTML=_86+"<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(_87,_88){
ua.a(":MQ08ManMapHide");
var _89=$d("manMap"+_87+"-"+_88);
_89.innerHTML="";
dojo.removeClass(_89,"manMapShow");
dojo.addClass(_89,"manMapHide");
var _8a=$d("manMapLink"+_87+"-"+_88);
_8a.innerHTML="<a href=\"javascript:view.mapView.showManeuverMap("+_87+","+_88+");\">"+mq.getMessage("MAP")+"</a>";
var man=routeResults.treks[_87].maneuvers[_88];
man.showMap=false;
var _8c="manMap"+_87+"-"+_88;
var map=this.manMapList[_8c];
map.dispose();
map=null;
delete this.manMapList[_8c];
},avoidSegmentPopup:function(_8e,_8f){
var _90=new dojox.string.Builder();
_90.append("<div class=\"alert-warning\">");
_90.append(" <img src=\""+mqPrefix+"/cdn/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_90.append(" <span>"+mq.getMessage("MSG_AVOID_AND_RECALC")+"</span><br/><br/>");
_90.append(" <div class=\"textc\">");
_90.append("  <input type=\"button\" value=\"OK\" onclick=\"Javascript:view.mapView.avoidSegment("+_8e+","+_8f+");\" class=\"btn\" id=\"routeClearOk\"/>&nbsp;&nbsp;&nbsp;");
_90.append("  <input type=\"button\" value=\"Cancel\" onclick=\"Javascript:$w('confirmAvoidAndRecalculate').handleCancel();\" class=\"btn\" id=\"routeClearCancel\"/>");
_90.append(" </div>");
_90.append("</div>");
_90=_90.toString();
var _91=new mq.widget.MQPopup({id:"confirmAvoidAndRecalculate",position:"center",popupContent:_90});
},avoidSegment:function(_92,_93){
$w("confirmAvoidAndRecalculate").close();
debug("MapTabView.avoidSegment");
ua.a(":MQ08AvoidMan");
this._controller.avoidRouteSegment(_92,_93);
},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(_94){
var _95=$d("routeWarningMsg");
var _96=new dojox.string.Builder();
var _97=_94.split("<br/>");
_96.append("<div class='alert-warning' style='width:auto;height:auto;'>");
_96.append("<img width='24' height='25' src='"+this.imagePath+"/icon-warn.gif' />");
if(_97.length==1){
_96.append("<div style='padding-top:4px;color:#990000;font-weight:bold;float:left;'>"+_94+"</div>");
}else{
_96.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>");
_96.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<_97.length;i++){
_96.append("<li style='maring-left:0px;'>"+_97[i]+"</li>");
}
_96.append("</ul></div>");
}
_96.append("</div>");
var _99=mq.getPopupContentWidthHeight(_96);
_95.innerHTML=_96.toString();
_95.style.display="block";
},hideRouteWarningMessage:function(){
var _9a=$d("routeWarningMsg");
if(_9a){
_9a.style.display="none";
}
},updateShowHideRoutingLnk:function(_9b){
if(mqPageContext!="results"){
return;
}
var _9c=$d("routeShowHideLnk");
if(_9b){
_9c.innerHTML="<span>"+mq.getMessage("HIDE_ROUTING")+"</span>";
_9c.title=mq.getMessage("HIDE_ROUTING");
}else{
_9c.innerHTML="<span>"+mq.getMessage("SHOW_ROUTING")+"</span>";
_9c.title=mq.getMessage("SHOW_ROUTING");
}
},isShowRoute:function(){
var _9d=$d("routeShowHideLnk");
var _9e=false;
if(_9d.title==mq.getMessage("HIDE_ROUTING")){
_9e=true;
}
return _9e;
},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 _a2=this._controller._model;
var _a3=_a2.locations;
if(_a3&&_a3.length==1){
var _a4=$d("dirStartAddrSummary");
$d("dirStartAddrSummary").innerHTML=(_a2.name&&_a2.name!="null")?"<div class='addrLine'>"+_a2.name+"</div>":mq.util.formatLocationSummary(_a3[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(_a3&&_a3.length>=2){
$d("dirStartAddrSummary").innerHTML=mq.util.formatLocationSummary(_a3[0].location);
mq.show($d("dirEndBlock"));
$d("dirEndAddrSummaryAddress").innerHTML=mq.util.formatLocationSummary(_a3[_a3.length-1].location);
if(_a2.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=_a2.routeResults.time;
$d("dirDistanceSummary").innerHTML=_a2.routeResults.distance;
}
dojo.query(".narrTotalTop",$d("dirSummary")).style("display","block");
this.updateLocalLinks(_a3);
}else{
mq.hide($d("dirSummary"));
dojo.query(".narrTotalTop",$d("dirSummary")).style("display","block");
}
}
},showHideContentTabBar2:function(_a5){
if(_a5&&_a5=="show"){
mq.show($d("contentTabBar2"));
}else{
mq.hide($d("contentTabBar2"));
}
},popularSearch:function(_a6,_a7,pos){
debug("MapView.popularSearch");
var loc=controller._model.locations[_a7].location;
mq.executeSearchNearby(loc,_a6,pos);
},addNextLocFromBtn:function(){
var _aa=controller.numLocs();
if(_aa>9){
var _ab=new dojox.string.Builder();
_ab.append("<div class=\"alert-warning\" style=\"display: block;width: 220px;\">");
_ab.append("<img src=\""+mqPrefix+"/cdn/images/icon-warn.gif\" height=\"25\" width=\"24\">");
_ab.append(mq.getMessage("ERROR_MAX_STOPS")+"<br/><br/>");
_ab.append("</div>");
_ab=_ab.toString();
mq.handleFormErrorPopups(null,_ab);
mq.hideLoadingImage();
ua.a(":MQ08MaxStops");
return;
}
var _ac=$d("loc"+_aa+"0-addressInput");
if(_ac){
var _ad=dojo.query(".lcAddNext")[0];
mq.util.scrollElemToView(_ad,"center");
_ac.focus();
dojox.fx.highlight({node:_ad,duration:2000}).play();
ua.a(":MQ08LOCAddNext");
}
},findNearby:function(){
var _ae=$d("findSrchTerm");
var _af=$d("findCat");
var _b0="";
if(_af.value!=""){
_b0=_af.value;
}else{
if(_ae&&dojo.trim(_ae.value)!=""){
_b0=dojo.trim(_ae.value);
}
}
if(_b0){
var _b1=controller.numLocs();
if(_b1>0){
var loc,_b3;
if(_b1==1){
loc=controller._model.locations[0].location;
loc.query=null;
}else{
var _b4=$d("findLoc").value;
loc=controller._model.locations[_b4].location;
loc.query=null;
}
ua.a(":MQ08SearchNearbyBar");
mq.executeSearchNearby(loc,_b0,_b1);
}
}else{
var _b5=[];
_b5.push("<div class=\"alert-warning\">");
_b5.push("<img width=\"24\" height=\"25\" src=\""+this.imagePath+"/icon-warn.gif\" />");
_b5.push("<span class=\"redavoid\">Please enter search term or select category.</span></div>");
var _b6=$d("findSrchTerm");
var _b7=dojo.coords(_b6,true);
new mq.widget.MQPopup({id:"findNearByWarn",popupContent:_b5.join(""),xoffset:(_b7.x+_b6.offsetWidth-135),yoffset:_b7.y+30,closeButtonRequired:true,popupArrowPlacement:1,popupImage:"sprt-pop-ylw"});
}
},zoomToStreetHandler:function(_b8){
var loc=controller._model.locations[_b8].location;
this.zoomToStreet(loc);
},updateLocalLinks:function(_ba){
var _bb=_ba[0].location;
if(enableLocal=="true"){
mq.show($d("localSummary0"));
$d("localSummary0").innerHTML="<a onclick=\"mq.goLocal(0,'MQ08LOCLocalLinkStart');\"><img src=\""+mqPrefix+"/cdn/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=_ba[_ba.length-1].location;
if(enableLocal=="true"){
mq.show($d("localSummary1"));
$d("localSummary1").innerHTML="<a onclick=\"mq.goLocal(mq.util.lastLocationIndex(),'MQ08LOCLocalLinkEnd');\"><img src=\""+mqPrefix+"/cdn/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 _c1=controller.numLocs();
if(_c1==0){
mq.hide($d("fNearby"));
mq.hide($d("loc0Form"));
}
if(_c1==1){
mq.hide($d("findLoc"));
this.showHideContentTabBar2("hide");
}else{
if(_c1>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(_c2){
debug("maptabview.updateRouteOptions: "+_c2);
if(mqPageContext!="results"){
return;
}
try{
if(_c2){
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.constructor",e);
}
}});
}

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