{const jR=await new Promise(resolve=>{const intervalId=setInterval(()=>{if(x.c.route.json&&Array.isArray(x.c.route.json)&&x.c.route.json.length>0){clearInterval(intervalId);resolve(true);}},100);});if(jR){const paddingRoutePixels=20;let extendWest=false,extendEast=false,extendNorth=false,extendSouth=false;x.c.route.json.forEach(coord=>{if(coord[0]R.getEast())extendEast=true;if(coord[1]>R.getNorth())extendNorth=true;if(coord[1]status)){T.extend(B.getSouthWest());T.extend(B.getNorthEast());T.extend(R.getSouthWest());T.extend(R.getNorthEast());map.fitBounds(T,{padding:0,duration:600,easing:(t)=>t*(2-t)});}}const markerConfig={'finish':{className:'marker_finish',size:[58,58],offset:[0,-29],span:false,best:false,text:false,},'start':{className:'marker_start',size:[58,58],offset:[0,-29],span:false,best:false,text:false,},'star':{className:'marker_star',size:[58,58],offset:[0,-29],span:false,best:false,text:false,},'numbered':{className:'mapMarkerNum',size:false,offset:[0,0],span:true,best:true,text:false,},'star-plain':{className:'mapMarkerNum markerSpanRed',size:false,offset:[0,0],span:true,best:false,text:'☆',},'grey':{className:'mapMarkerNum markerSpanGrey',size:false,offset:[0,0],span:true,best:false,text:false,},};function addMarkersToMap(m,f=null){Object.values(markerData[m]).forEach((i,n)=>{if(f!==null&&n'+t+'';}
if(mC.width&&mC.height){el.style.width=mC.width+'px';el.style.height=mC.height+'px';}
var marker=new mapboxgl.Marker(el,{offset:mC.offset}).setLngLat(i.lonLat).addTo(window.contentMaps[m]);marker.markerType=i.iconType;if(f!==null){}
i.marker=marker;window.bounds[m].extend(i.lonLat);if(i.c){marker.getElement().addEventListener('click',function(){event.stopPropagation();toggleMapIconClick(m,n,true);});}});}if(typeof window.contentMaps==='undefined'){window.contentMaps={};window.initialMapBounds={};}
if(typeof window.bounds==='undefined'){window.bounds={};}
if(typeof window.markerData==='undefined'){window.markerData={};}
if(!markerData[1]){markerData[1]={};}
function initMapbox_1(){mapboxgl.accessToken='pk.eyJ1IjoibGF6eXRyaXBzIiwiYSI6ImNsaTJ4anh2MTA5NDYzZW85ODJmMm45ZzcifQ.9u5pN47V7SsoFwF6_Pw5bQ';const contentMap_1=new mapboxgl.Map({container:'contentMap_1',style:'mapbox://styles/mapbox/streets-v11',center:[-79.63613452468846,35.2159386652799],zoom:5,cooperativeGestures:false});window.contentMaps[1]=contentMap_1;if(typeof window.bounds[1]==='undefined'){window.bounds[1]=new mapboxgl.LngLatBounds();}
markerData[1][0]={"lonLat":[-75.16038984,39.95195008],"type":"star-plain"};markerData[1][1]={"lonLat":[-73.98533875,40.75708072],"best":1,"time":130,"distance":96,"type":"numbered","c":{"route":{"id":2298,"color":"#fa5050"},"card":{"title":"New York","d":"96 miles","t":130,"p":"[\"c3bf2e1b466a15ed1698f96c681c113c\",\"Aerial view of the Central park in New York.\"]","oX":175,"oY":0}}};markerData[1][2]={"lonLat":[-79.07365235085214,43.08939593715554],"best":2,"time":420,"distance":415,"type":"numbered","c":{"route":{"id":940,"color":"#fa5050"},"card":{"title":"Niagara Falls","d":"415 miles","t":420,"p":"[\"7ccc7fd4471dc1aa4016c34760f0571b\",\"Niagara Falls Hornblower Cruise Boat Approaching Waterfall Under a Perfectly Arched Rainbow\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-niagara-falls","linkText":"Read more"}}};markerData[1][3]={"lonLat":[-74.38215440964541,42.0099590268232],"best":3,"time":240,"distance":220,"type":"numbered","c":{"route":{"id":2303,"color":"#fa5050"},"card":{"title":"Catskill Mountains","d":"220 miles","t":240,"p":"[\"0405b301c9b31f45880177d6e4d332b8\",\"Kaaterskill falls waterfall in the New York Catskill mountains\"]","oX":175,"oY":0}}};markerData[1][4]={"lonLat":[-87.6309582820485,41.87737048027971],"best":4,"time":720,"distance":770,"type":"numbered","c":{"route":{"id":945,"color":"#fa5050"},"card":{"title":"Chicago","d":"770 miles","t":720,"p":"[\"38b96a0f05ab389e8a999512e71de2f8\",\"The Chicago River and downtown Chicago skyline USA\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-chicago","linkText":"Read more"}}};markerData[1][5]={"lonLat":[-77.4121678,39.94235867],"best":5,"time":170,"distance":150,"type":"numbered","c":{"route":{"id":2299,"color":"#fa5050"},"card":{"title":"Michaux State Forest","d":"150 miles","t":170,"p":"[\"c39198e432db52ffc769bb58292566ba\",\"Landscape of The area around Long Pine Reservoir in Michaux State Forest in Central Pennsylvania\"]","oX":175,"oY":0}}};markerData[1][6]={"lonLat":[-78.45346488475428,38.47674434605844],"best":6,"time":250,"distance":230,"type":"numbered","c":{"route":{"id":2302,"color":"#fa5050"},"card":{"title":"Shenandoah National Park","d":"230 miles","t":250,"p":"[\"49db45b26eacd2f26bbe7d8a337927e9\",\"Cave stalactites, stalagmites, and other formations at Luray Caverns, Virginia.\"]","oX":175,"oY":0}}};markerData[1][7]={"lonLat":[-73.56744,45.501942],"best":7,"time":625,"distance":590,"type":"numbered","c":{"route":{"id":1440,"color":"#fa5050"},"card":{"title":"Montreal","d":"590 miles","t":625,"p":"[\"b7bf6a430b7f8b8ce8a460a532df7a66\",\"Montreal, Canada with the city skyline in the background and a yacht in the foreground in the Lachine Canal taken on a sunny day. \"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-montreal","linkText":"Read more"}}};markerData[1][8]={"lonLat":[-86.82518827403933,36.163969013130256],"best":8,"time":720,"distance":800,"type":"numbered","c":{"route":{"id":887,"color":"#fa5050"},"card":{"title":"Nashville","d":"800 miles","t":720,"p":"[\"41b2b601778117659d194d5689b1866f\",\"Huge guitars at Grand Ole Opry in Nashville, Tennessee\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-nashville","linkText":"Read more"}}};markerData[1][9]={"lonLat":[-85.5806587,41.6701808],"best":9,"time":100,"distance":60,"type":"numbered","c":{"route":{"id":2297,"color":"#fa5050"},"card":{"title":"Amish Country","d":"60 miles","t":100,"p":"[\"01c49eba18c7e50683c9ed5ef1f31b1a\",\"Amish Farmer Baling Hay onto Wagon, Amish Country\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-to-amish-country","linkText":"Read more"}}};markerData[1][10]={"lonLat":[-77.03658923,38.90252109],"best":10,"time":165,"distance":140,"type":"numbered","c":{"route":{"id":2300,"color":"#fa5050"},"card":{"title":"Washington, DC","d":"140 miles","t":165,"p":"[\"43890bbf409803b99a69f034dcbe2ddb\",\"The United States Capitol building in Washington DC at twilight\"]","oX":175,"oY":0}}};markerData[1][11]={"lonLat":[-79.99987509,40.44143245],"best":11,"time":315,"distance":305,"type":"numbered","c":{"route":{"id":2304,"color":"#fa5050"},"card":{"title":"Pittsburgh","d":"305 miles","t":315,"p":"[\"87c864d877bfde6e6a331f29e955d7a3\",\"Hershey smoke stacks in Hershey Pennsylvania\"]","oX":175,"oY":0}}};markerData[1][12]={"lonLat":[-74.17092674,39.64876728],"best":12,"time":70,"distance":50,"type":"numbered","c":{"route":{"id":2295,"color":"#fa5050"},"card":{"title":"Jersey Shore","d":"50 miles","t":70,"p":"[\"dc1d2770befc86bdef8e8f3376ca5c8b\",\"The Steel Pier at Atlantic City, New Jersey.\"]","oX":175,"oY":0}}};markerData[1][13]={"lonLat":[-75.97654421,36.84899104],"best":13,"time":345,"distance":360,"type":"numbered","c":{"route":{"id":2305,"color":"#fa5050"},"card":{"title":"Virginia Beach","d":"360 miles","t":345,"p":"[\"a34d49dd04ef5b7ffae798bf9b864a40\",\"Sunrise at the 15th Street Pier in Virginia Beach, Virginia.\"]","oX":175,"oY":0}}};markerData[1][14]={"lonLat":[-71.05870865839533,42.36043286060893],"best":14,"time":420,"distance":420,"type":"numbered","c":{"route":{"id":915,"color":"#fa5050"},"card":{"title":"Boston","d":"420 miles","t":420,"p":"[\"22591c2d8e3801c3babeaa66cfccc9fa\",\"Boston Public Garden. George Washington Statue surrounded by tulips, tourists and beautiful spring colors.\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-boston","linkText":"Read more"}}};markerData[1][15]={"lonLat":[-71.20945251041479,46.815996419804726],"best":15,"time":750,"distance":620,"type":"numbered","c":{"route":{"id":1167,"color":"#fa5050"},"card":{"title":"Quebec City","d":"620 miles","t":750,"p":"[\"4cde5a6207a126c95efb964b6440fa7f\",\"Frontenac Castle in Old Quebec City in the beautiful sunrise light. \"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-quebec-city","linkText":"Read more"}}};markerData[1][16]={"lonLat":[-73.24393415057271,44.46648549645365],"best":16,"time":435,"distance":430,"type":"numbered","c":{"route":{"id":2307,"color":"#fa5050"},"card":{"title":"Lake Champlain","d":"430 miles","t":435,"p":"[\"744a87b46170de34b0bad7b151fa9890\",\"Adirondack chairs by Lake Champlain in New York State\"]","oX":175,"oY":0}}};markerData[1][17]={"lonLat":[-84.39008875,33.75609976],"best":17,"time":780,"distance":820,"type":"numbered","c":{"route":{"id":2310,"color":"#fa5050"},"card":{"title":"Atlanta","d":"820 miles","t":780,"p":"[\"5be1271650ee5b7de5b40b08cf24bfb2\",\"Centennial Olympic Park in Atlanta during twilight hour after sunset\"]","oX":175,"oY":0}}};markerData[1][18]={"lonLat":[-68.30347510321873,44.36515570590988],"best":18,"time":600,"distance":580,"type":"numbered","c":{"route":{"id":943,"color":"#fa5050"},"card":{"title":"Acadia National Park and Bar Harbor","d":"580 miles","t":600,"p":"[\"4cdfb760d9b3de562c9f6d7d3dee7ab7\",\"Beach in Acadia National Park in autumn\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-acadia-national-park","linkText":"Read more"}}};markerData[1][19]={"lonLat":[-74.95366702913591,40.36489014994448],"best":19,"time":48,"distance":42,"type":"numbered","c":{"route":{"id":2296,"color":"#fa5050"},"card":{"title":"New Hope","d":"42 miles","t":48,"p":"[\"022b2e2d118974e803cee4cd79b48fe1\",\"An old, dark red locomotive pulls into the station at the New Hope Railroad, PA\"]","oX":175,"oY":0}}};markerData[1][20]={"lonLat":[-75.05767634057422,41.7666559347414],"best":20,"time":210,"distance":180,"type":"numbered","c":{"route":{"id":2301,"color":"#fa5050"},"card":{"title":"Callicoon","d":"180 miles","t":210,"p":"[\"b76b1093425e15c0b2c7c2ff03e42cc3\",\"Kayakers in the Delaware River and Canoes and Rafts on the Shore at the Delaware Water Gap in Pennsylvania\"]","oX":175,"oY":0}}};initialMapBounds[1]=new mapboxgl.LngLatBounds(window.bounds[1].getSouthWest(),window.bounds[1].getNorthEast());const visibleMapRoutes_1=[];contentMaps[1].on('click',(e)=>{resetMarkersAndCards(1);});onMapZoom(1);markerData[1][23]={"lonLat":[-81.38377702832248,28.53680764175731],"time":1080,"distance":1110,"type":"grey","c":{"route":{"id":496,"color":"#fa5050"},"card":{"title":"Orlando","d":"1,110 miles","t":1080,"p":"[\"8b2e1e851af3b939aec9ab96104c91bc\",\"Orlando, Florida, USA with the sun shining over Lake Eola park in Orlando.\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-orlando","linkText":"Read more"}}};markerData[1][21]={"lonLat":[-80.19071651142177,25.759696261694128],"time":1215,"distance":1300,"type":"grey","c":{"route":{"id":503,"color":"#fa5050"},"card":{"title":"Miami","d":"1,300 miles","t":1215,"p":"[\"bf02e93dda33a40438aa89d03bf19bb1\",\"Beautiful Crandon Park Beach in Miami. Florida.\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-miami","linkText":"Read more"}}};markerData[1][22]={"lonLat":[-90.07112154503588,29.950982159562688],"time":1350,"distance":1340,"type":"grey","c":{"route":{"id":645,"color":"#fa5050"},"card":{"title":"New Orleans","d":"1,340 miles","t":1350,"p":"[\"080e7315de0c88dfe01519e4a9b694df\",\"Streetcar in downtown New Orleans, USA at twilight\"]","oX":175,"oY":0,"link":"\/trip\/road-trip-from-philadelphia-to-new-orleans","linkText":"Read more"}}};addMarkersToMap(1);contentMap_1.fitBounds(window.bounds[1],{padding:{top:60,bottom:60,left:60,right:60}});const sortByValue=document.querySelector('.cardListSortDropdown').value;sortMapMarkers(markerData,sortOptionsMap,sortByValue,1);}const sortOptionsMap={'best':'best','distance':'distanceSort',};function sortMapMarkers(markerData,sortOptionsMap,sortBy,listNum){const markersWithDistance=Object.values(markerData[listNum]).filter(marker=>marker.hasOwnProperty('distance')&&marker.hasOwnProperty('best'));const hasDistanceSort=markersWithDistance.some(marker=>marker.hasOwnProperty('distanceSort'));if(!hasDistanceSort){const sortedMarkers=markersWithDistance.sort((a,b)=>a.distance-b.distance);sortedMarkers.forEach((sortedMarker,index)=>{sortedMarker.distanceSort=index+1;});}
Object.keys(markerData[listNum]).forEach(n=>{const marker=markerData[listNum][n];if(marker.hasOwnProperty('distance')&&marker.hasOwnProperty('best')){const markerElement=document.getElementById('markerSpan-'+listNum+'-'+n);if(markerElement){const propertyToUse=sortOptionsMap[sortBy]||sortBy;const v=marker[propertyToUse];if(v!==undefined){markerElement.innerHTML=v;}else{markerElement.innerHTML='';}}}});document.querySelectorAll('.cardListSortDropdown').forEach(function(dropdownUpdate){dropdownUpdate.value=sortBy;});}
(function(){function iSort(){document.querySelectorAll('.cardListSortDropdown').forEach(function(dropdown){dropdown.addEventListener('change',function(){const sortBy=this.value;const listNum=this.getAttribute('data-listnum');const cardsContainer=document.querySelector('.row[data-listnum=\"'+listNum+'\"]');Array.from(cardsContainer.children).sort((a,b)=>{const aValue=parseFloat(a.getAttribute('data-'+sortBy)||Infinity);const bValue=parseFloat(b.getAttribute('data-'+sortBy)||Infinity);return aValue-bValue;}).forEach((card,index)=>{cardsContainer.appendChild(card);const titleElement=card.querySelector('.card-title');if(titleElement){const updatedTitle=titleElement.innerHTML.replace(/^\s*\d+/,index+1);titleElement.innerHTML=updatedTitle;}});sortMapMarkers(markerData,sortOptionsMap,sortBy,listNum);});});}
if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',iSort);}else{iSort();}})(); var mapScriptCreated = 0;
var mapCssCreated = 0;
var mapScriptLoaded = 0;
var mapCssLoaded = 0;
var mapLoadList = [];
function showLazyMap(fname) {
if (mapScriptLoaded == 1 && mapCssLoaded == 1) {
if (!mapLoadList.includes(fname)) {
window[fname]();
mapLoadList.push(fname);
}
}
}
(function fn() {
var pics = document.querySelectorAll('.no-js-hide');
pics.forEach(function(pic) {
pic.classList.toggle('no-js-hide');
});
var lazyImages = [].slice.call(document.querySelectorAll(".lazeeload"));
if ("IntersectionObserver" in window) {
const config = {
root: null,
rootMargin: '1000px',
threshold: 0
};
let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
let lazyImage = entry.target;
if (lazyImage.dataset.src) {lazyImage.src = lazyImage.dataset.src;}
if (lazyImage.dataset.srcset) {lazyImage.srcset = lazyImage.dataset.srcset;}
if (lazyImage.dataset.map) {
const fname = "initMapbox_"+lazyImage.dataset.map;
if (mapScriptLoaded == 0) {
let script = document.createElement('script');
script.async=true;
script.defer=true;
script.src = "https://api.mapbox.com/mapbox-gl-js/v3.0.0/mapbox-gl.js";
script.onload = function(){
mapScriptLoaded = 1;
showLazyMap(fname);
}
document.head.appendChild(script);
mapScriptCreated = 1;
let css = document.createElement('link');
css.rel = "stylesheet";
css.href = "https://api.mapbox.com/mapbox-gl-js/v3.0.0/mapbox-gl.css";
css.onload = function(){
mapCssLoaded = 1;
showLazyMap(fname);
}
document.head.appendChild(css);
mapCssCreated = 1;
} else {
if (typeof window[fname] === 'function') {
window[fname]();
}
showLazyMap(fname);
}
}
lazyImage.classList.remove("no-js-hide");
lazyImage.classList.remove("lazeeload");
lazyImageObserver.unobserve(lazyImage);
}
});
}, config);
lazyImages.forEach(function(lazyImage) {
lazyImageObserver.observe(lazyImage);
lazyImage.classList.add("lazeeload-activated");
});
} else {
let active = false;
const lazyLoad = function() {
if (active === false) {
active = true;
setTimeout(function() {
lazyImages.forEach(function(lazyImage) {
if ((lazyImage.getBoundingClientRect().top <= window.innerHeight+1000 && lazyImage.getBoundingClientRect().bottom >= 0) && getComputedStyle(lazyImage).display !== "none") {
if (lazyImage.dataset.src) lazyImage.src = lazyImage.dataset.src;
if (lazyImage.dataset.srcset) lazyImage.srcset = lazyImage.dataset.srcset;
if (lazyImage.dataset.onload) lazyImage.onload = lazyImage.dataset.onload;
lazyImage.classList.remove("lazeeload");
lazyImages = lazyImages.filter(function(image) {
return image !== lazyImage;
});
if (lazyImages.length === 0) {
document.removeEventListener("scroll", lazyLoad);
window.removeEventListener("resize", lazyLoad);
window.removeEventListener("orientationchange", lazyLoad);
}
}
});
active = false;
}, 200);
}
};
document.addEventListener("scroll", lazyLoad);
window.addEventListener("resize", lazyLoad);
window.addEventListener("orientationchange", lazyLoad);
}
var lazyImages = [].slice.call(document.querySelectorAll(".lazeeload"));
i=1;
lazyImages.forEach(function(lazyImage) {
if (!(lazyImage.classList.contains("lazeeload-activated"))) {
if (lazyImage.dataset.src) lazyImage.src = lazyImage.dataset.src;
if (lazyImage.dataset.srcset) lazyImage.srcset = lazyImage.dataset.srcset;
lazyImage.classList.remove("lazeeload");
}
});
})();
document.addEventListener('DOMContentLoaded', () => {
const h = document.querySelector('header.fixed-top'), o = getComputedStyle(h).right;
['show.bs.modal', 'hidden.bs.modal'].forEach(e => document.querySelectorAll('.fullScreenModal').forEach(m => m.addEventListener(e, ev => h.style.right = ev.type === 'show.bs.modal' ? `${window.innerWidth - document.documentElement.clientWidth}px` : o)));
});