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:[-81.66274231101232,36.167039527381725],zoom:6,cooperativeGestures:true});window.contentMaps[1]=contentMap_1;if(typeof window.bounds[1]==='undefined'){window.bounds[1]=new mapboxgl.LngLatBounds();} const contentStart_1_1=[-78.85802791101202,38.03095165832942];const contentStart_1_1_geoson={'type':'FeatureCollection','features':[{'type':'Feature','geometry':{'type':'Point','coordinates':contentStart_1_1},'properties':{'title':'Start','description':'Start point'}}]};for(const feature of contentStart_1_1_geoson.features){const el=document.createElement('div');el.className='marker_start';new mapboxgl.Marker(el,{offset:[0,-29]}).setLngLat(feature.geometry.coordinates).addTo(contentMap_1);} window.bounds[1].extend(contentStart_1_1);const contentFinish_1_2=[-83.29997902166865,35.50662222807799];const contentFinish_1_2_geoson={'type':'FeatureCollection','features':[{'type':'Feature','geometry':{'type':'Point','coordinates':contentFinish_1_2},'properties':{'title':'Finish','description':'Finish point'}}]};for(const feature of contentFinish_1_2_geoson.features){const el=document.createElement('div');el.className='marker_star';new mapboxgl.Marker(el,{offset:[0,-29]}).setLngLat(feature.geometry.coordinates).addTo(contentMap_1);} window.bounds[1].extend(contentFinish_1_2);async function getRoute_1_0(start,finish,via){const url=`https://api.mapbox.com/directions/v5/mapbox/driving/${start.join(',')};${via}${finish.join(',')}?alternatives=true&geometries=geojson&language=en&overview=full&steps=true&access_token=${mapboxgl.accessToken}`;const response=await fetch(url);const json=await response.json();const data=json.routes[0];const route=data.geometry.coordinates;const geojson={type:'Feature',properties:{},geometry:{type:'LineString',coordinates:route}};for(const coord of route){window.bounds[1].extend(coord);contentMap_1.fitBounds(window.bounds[1],{padding:{top:60,bottom:60,left:60,right:60}});} if(contentMap_1.getSource('route1_0')){contentMap_1.getSource('route1_0').setData(geojson);}else{contentMap_1.addLayer({id:'route1_0',type:'line',source:{type:'geojson',data:geojson},layout:{'line-join':'round','line-cap':'round'},paint:{'line-color':'#0b7192','line-width':5,'line-opacity':0.80}});}} const start_1_0=[-78.858027911012,38.030951658329];const finish_1_0=[-81.682633623612,36.153399564216];const via_1_0='-78.952315283789,37.933554078799;-79.179816772171,37.809303772607;-79.179816772171,37.809303772607;-79.275615704021,37.779965029526;-79.327595585059,37.690742138554;-79.351723825004,37.561390884357;-79.357927084675,37.557139650592;-79.46533325093,37.544878620206;-79.952219162975,37.210962665102;-80.130042035506,37.127577463563;-80.112618236185,37.094221804252;-80.284711895234,36.865880931588;-80.346364126064,36.812149317576;-80.386012419654,36.784067200071;-80.406232314003,36.750837507107;-80.546832979483,36.642947673005;-80.69227719397,36.665905724539;-81.177647185232,36.433444835646;-81.305057116753,36.364619616992;-81.36837638611,36.324150522907;-81.379486891018,36.276475812015;-81.45426762582,36.250160882455;-81.555822463382,36.232119523942;';contentMap_1.on('load',async()=>{await getRoute_1_0(start_1_0,finish_1_0,via_1_0);});contentMap_1.fitBounds(window.bounds[1],{padding:{top:60,bottom:60,left:60,right:60}});async function getRoute_1_1(start,finish,via){const url=`https://api.mapbox.com/directions/v5/mapbox/driving/${start.join(',')};${via}${finish.join(',')}?alternatives=true&geometries=geojson&language=en&overview=full&steps=true&access_token=${mapboxgl.accessToken}`;const response=await fetch(url);const json=await response.json();const data=json.routes[0];const route=data.geometry.coordinates;const geojson={type:'Feature',properties:{},geometry:{type:'LineString',coordinates:route}};for(const coord of route){window.bounds[1].extend(coord);contentMap_1.fitBounds(window.bounds[1],{padding:{top:60,bottom:60,left:60,right:60}});} if(contentMap_1.getSource('route1_1')){contentMap_1.getSource('route1_1').setData(geojson);}else{contentMap_1.addLayer({id:'route1_1',type:'line',source:{type:'geojson',data:geojson},layout:{'line-join':'round','line-cap':'round'},paint:{'line-color':'#0b7192','line-width':5,'line-opacity':0.80}});}} const start_1_1=[-81.682633623612,36.153399564216];const finish_1_1=[-83.299979021669,35.506622228078];const via_1_1='-81.682633623612,36.153399564216;-81.731798583145,36.139322291649;-81.79907420095,36.097146038437;-81.812498272818,36.09514516682;-81.830129128878,36.084001064088;-81.949586042655,35.965080285884;-82.278182685174,35.716697135104;-82.442343483859,35.667990008522;-82.479049264312,35.588913832709;-82.476096095619,35.581334451406;-82.847514642147,35.319795520905;-83.14276206836,35.45634448714;';contentMap_1.on('load',async()=>{await getRoute_1_1(start_1_1,finish_1_1,via_1_1);});contentMap_1.fitBounds(window.bounds[1],{padding:{top:60,bottom:60,left:60,right:60}});initialMapBounds[1]=new mapboxgl.LngLatBounds(window.bounds[1].getSouthWest(),window.bounds[1].getNorthEast());const visibleMapRoutes_1=[];contentMaps[1].on('click',(e)=>{resetMarkersAndCards(1);});addMarkersToMap(1);contentMap_1.fitBounds(window.bounds[1],{padding:{top:60,bottom:60,left:60,right:60}});} 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))); });