1<!DOCTYPE html> 2<html lang="fr"> 3<head> 4 <title>CHALET LES BOIS</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6 <meta name="viewport" id="metaViewport" content="user-scalable=no, initial-scale=1, width=device-width, viewport-fit=cover" data-tdv-general-scale="0.5"/> 7 <meta name="apple-mobile-web-app-capable" content="yes"/> 8 <meta name="apple-mobile-web-app-status-bar-style" content="default"> 9 <link rel="preload" href="locale/fr.txt?v=1641288413170" as="fetch" crossorigin="anonymous"/> 10 <link rel="preload" href="script.js?v=1641288413170" as="script"/> 11 <link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/r/3/0_0.jpg?v=1641288413170" as="image"/> 12 <link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/l/3/0_0.jpg?v=1641288413170" as="image"/> 13 <link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/u/3/0_0.jpg?v=1641288413170" as="image"/> 14 <link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/d/3/0_0.jpg?v=1641288413170" as="image"/> 15 <link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/f/3/0_0.jpg?v=1641288413170" as="image"/> 16 <link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/b/3/0_0.jpg?v=1641288413170" as="image"/> 17 <meta property="og:title" content="CHALET LES BOIS" /> 18 <meta property="og:type" content="website" /> 19 <meta property="og:description" content="Pour les séjours en famille ou entre amis, de 2 à 7 personnes, nos 3 appartements situés dans la Vallée de Chamonix sur le Domaine des Planards seront le logement idéal pour vos vacances à la montagne. Ils ont tous des ambiances différentes mais des points communs qui sont le bien être, le confort, la vue et lâaccueil personnalisé. Location de vacances toute lâannée à Chamonix." /> 20 <meta property="og:url" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/index.htm" /> 21 <meta property="og:image" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/socialThumbnail.jpg" /> 22 <meta property="og:image:width" content="1200" /> 23 <meta property="og:image:height" content="630" /> 24 <meta property="fb:app_id" content="817622095004141" /> 25 <link rel="image_src" href="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/socialThumbnail.jpg?v=1641288413170"> 26 <meta property="og:locale" content="fr"/> 27 <meta property="og:locale:alternate" content="en"/> 28 <meta name="twitter:card" content="summary_large_image"/> 29 <meta name="twitter:title" content="CHALET LES BOIS"/> 30 <meta name="twitter:description" content="Pour les séjours en famille ou entre amis, de 2 à 7 personnes, nos 3 appartements situés dans la Vallée de Chamonix sur le Domaine des Planards seront le logement idéal pour vos vacances à la montagne. Ils ont tous des ambiances différentes mais des points communs qui sont le bien être, le confort, la vue et lâaccueil personnalisé. Location de vacances toute lâannée à Chamonix."/> 31 <meta name="twitter:url" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/index.htm"/> 32 <meta name="twitter:image:src" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/socialThumbnail.jpg?v=1641288413170"/> 33 <meta name="twitter:image:width" content="1200"/> 34 <meta name="twitter:image:height" content="630"/> 35 <meta name="description" content="Pour les séjours en famille ou entre amis, de 2 à 7 personnes, nos 3 appartements situés dans la Vallée de Chamonix sur le Domaine des Planards seront le logement idéal pour vos vacances à la montagne. Ils ont tous des ambiances différentes mais des points communs qui sont le bien être, le confort, la vue et lâaccueil personnalisé. Location de vacances toute lâannée à Chamonix."/> 36 <meta name="theme-color" content="#FFFFFF"/> 37
37<script src="lib/tdvplayer.js?v=1641288413170"></script>
37 38
38<script src="script.js?v=1641288413170"></script>
38 39
39<script type="text/javascript"> 40 var tour; 41 var devicesUrl = {"ipad":"script_general.js?v=1641288413170","mobile":"script_mobile.js?v=1641288413170","general":"script_general.js?v=1641288413170"}; 42 43 (function() 44 { 45 var deviceType = ['general']; 46 if(TDV.PlayerAPI.mobile) 47 deviceType.unshift('mobile'); 48 if(TDV.PlayerAPI.device == TDV.PlayerAPI.DEVICE_IPAD) 49 deviceType.unshift('ipad'); 50 var url; 51 for(var i=0; i<deviceType.length; ++i) { 52 var d = deviceType[i]; 53 if(d in devicesUrl) { 54 url = devicesUrl[d]; 55 break; 56 } 57 } 58 if(typeof url == "object") { 59 var orient = TDV.PlayerAPI.getOrientation(); 60 if(orient in url) { 61 url = url[orient]; 62 } 63 } 64 var link = document.createElement('link'); 65 link.rel = 'preload'; 66 link.href = url; 67 link.as = 'script'; 68 var el = document.getElementsByTagName('script')[0]; 69 el.parentNode.insertBefore(link, el); 70 })(); 71 72 function loadTour() 73 { 74 if(tour) return; 75 76 if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) { 77 var preloadContainer = document.getElementById('preloadContainer'); 78 if(preloadContainer) 79 document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor; 80 } 81 82 var settings = new TDV.PlayerSettings(); 83 settings.set(TDV.PlayerSettings.CONTAINER, document.getElementById('viewer')); 84 settings.set(TDV.PlayerSettings.WEBVR_POLYFILL_URL, 'lib/WebVRPolyfill.js?v=1641288413170'); 85 settings.set(TDV.PlayerSettings.HLS_URL, 'lib/Hls.js?v=1641288413170'); 86 settings.set(TDV.PlayerSettings.QUERY_STRING_PARAMETERS, 'v=1641288413170'); 87 88 tour = new TDV.Tour(settings, devicesUrl); 89 tour.bind(TDV.Tour.EVENT_TOUR_INITIALIZED, onVirtualTourInit); 90 tour.bind(TDV.Tour.EVENT_TOUR_LOADED, onVirtualTourLoaded); 91 tour.bind(TDV.Tour.EVENT_TOUR_ENDED, onVirtualTourEnded); 92 tour.load(); 93 } 94 95 function pauseTour() 96 { 97 if(!tour) 98 return; 99 100 tour.pause(); 101 } 102 103 function resumeTour() 104 { 105 if(!tour) 106 return; 107 108 tour.resume(); 109 } 110 111 function onVirtualTourInit() 112 { 113 var updateTexts = function() { 114 document.title = this.trans("tour.name") 115 }; 116 117 tour.locManager.bind(TDV.Tour.LocaleManager.EVENT_LOCALE_CHANGED, updateTexts.bind(tour.locManager)); 118 119 if (tour.player.cookiesEnabled) 120 enableCookies(); 121 else 122 tour.player.bind('enableCookies', enableCookies); 123 } 124 125 function onVirtualTourLoaded() 126 { 127 disposePreloader(); 128 } 129 130 function onVirtualTourEnded() 131 { 132 133 } 134 135 function enableCookies() 136 { 137 138 } 139 140 function setMediaByIndex(index) { 141 if(!tour) 142 return; 143 144 tour.setMediaByIndex(index); 145 } 146 147 function setMediaByName(name) 148 { 149 if(!tour) 150 return; 151 152 tour.setMediaByName(name); 153 } 154 155 function showPreloader() 156 { 157 var preloadContainer = document.getElementById('preloadContainer'); 158 if(preloadContainer != undefined) 159 preloadContainer.style.opacity = 1; 160 } 161 162 function disposePreloader() 163 { 164 var preloadContainer = document.getElementById('preloadContainer'); 165 if(preloadContainer == undefined) 166 return; 167 168 var transitionEndName = transitionEndEventName(); 169 if(transitionEndName) 170 { 171 preloadContainer.addEventListener(transitionEndName, hide, false); 172 preloadContainer.style.opacity = 0; 173 setTimeout(hide, 500); //Force hide. Some cases the transitionend event isn't dispatched with an iFrame. 174 } 175 else 176 { 177 hide(); 178 } 179 180 function hide() 181 { 182 //DisposePreloader 183 document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor; 184 preloadContainer.style.visibility = 'hidden'; 185 preloadContainer.style.display = 'none'; 186 var videoList = preloadContainer.getElementsByTagName("video"); 187 for(var i=0; i<videoList.length; ++i) 188 { 189 var video = videoList[i]; 190 video.pause(); 191 while (video.children.length) 192 video.removeChild(video.children[0]); 193 } 194 } 195 196 function transitionEndEventName () { 197 var el = document.createElement('div'); 198 var transitions = { 199 'transition':'transitionend', 200 'OTransition':'otransitionend', 201 'MozTransition':'transitionend', 202 'WebkitTransition':'webkitTransitionEnd' 203 }; 204 205 var t; 206 for (t in transitions) { 207 if (el.style[t] !== undefined) { 208 return transitions[t]; 209 } 210 } 211 212 return undefined; 213 } 214 } 215 216 function onBodyClick(){ 217 document.body.removeEventListener("click", onBodyClick); 218 document.body.removeEventListener("touchend", onBodyClick); 219 220 } 221 222 function onLoad() {
223 if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) 224 { 225 var onOrientationChange = function() 226 { 227 document.documentElement.style.height = 'initial'; 228 Array.from(document.querySelectorAll('.fill-viewport')).forEach(function(element) 229 { 230 element.classList.toggle('landscape-right', window.orientation == -90); 231 element.classList.toggle('landscape-left', window.orientation == 90); 232 }); 233 setTimeout(function() 234 { 235 document.documentElement.style.height = '100%'; 236 }, 500); 237 }; 238 window.addEventListener('orientationchange', onOrientationChange); 239 onOrientationChange(); 240 } 241 242 var params = getParams(location.search.substr(1)); 243 if(params.hasOwnProperty("skip-loading")) 244 { 245 loadTour(); 246 disposePreloader(); 247 return; 248 } 249 250 if (isOVRWeb()){ 251 showPreloader(); 252 loadTour(); 253 return; 254 } 255 256 showPreloader(); 257 loadTour(); 258 } 259 260 function playVideo(video) { 261 function isSafariDesktopV11orGreater() { 262 return /^((?!chrome|android|crios|ipad|iphone).)*safari/i.test(navigator.userAgent) && parseFloat(/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent)[1]) >= 11; 263 } 264 265 function hasAudio (video) { 266 return video.mozHasAudio || 267 Boolean(video.webkitAudioDecodedByteCount) || 268 Boolean(video.audioTracks && video.audioTracks.length); 269 } 270 271 function detectUserAction() { 272 var onVideoClick = function(e) { 273 if(video.paused) { 274 video.play(); 275 } 276 video.muted = false; 277 if(hasAudio(video)) 278 { 279 e.stopPropagation(); 280 e.stopImmediatePropagation(); 281 e.preventDefault(); 282 } 283 284 video.removeEventListener('click', onVideoClick); 285 video.removeEventListener('touchend', onVideoClick); 286 }; 287 video.addEventListener("click", onVideoClick); 288 video.addEventListener("touchend", onVideoClick); 289 } 290 291 if (isSafariDesktopV11orGreater()) { 292 video.muted = true; 293 video.play(); 294 } else { 295 var canPlay = true; 296 var promise = video.play(); 297 if (promise) { 298 promise.catch(function() { 299 video.muted = true; 300 video.play(); 301 detectUserAction(); 302 }); 303 } else { 304 canPlay = false; 305 } 306 307 if (!canPlay || video.muted) { 308 detectUserAction(); 309 } 310 } 311 } 312 313 function isOVRWeb(){ 314 return window.location.hash.substring(1).split('&').indexOf('ovrweb') > -1; 315 } 316 317 function getParams(params) { 318 var queryDict = {}; params.split("&").forEach(function(item) {var k = item.split("=")[0], v = decodeURIComponent(item.split("=")[1]);queryDict[k.toLowerCase()] = v}); 319 return queryDict; 320 } 321 322 document.addEventListener('DOMContentLoaded', onLoad); 323 </script>
323 324 <style type="text/css"> 325 html, body { height:100%; width:100%; height:100vh; width:100vw; margin:0; padding:0; overflow:hidden; } 326 .fill-viewport { position:fixed; top:0; left:0; right:0; bottom:0; padding:0; margin:0; overflow: hidden; } 327 .fill-viewport.landscape-left { left: env(safe-area-inset-left); } 328 .fill-viewport.landscape-right { right: env(safe-area-inset-right); } 329 #viewer { z-index:1; } 330 331 </style> 332 <link rel="stylesheet" href="fonts.css?v=1641288413170"> 333</head> 334<body> 335 336 <div id="viewer" class="fill-viewport"></div> 337</body> 338</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.