PageSourceSearch

https://earnest-taffy-de9ec8.netlify.app/

html earnest-taffy-de9ec8.netlify.app collected 2026-10-03 10:40:26 UTC 13,183 bytes, 323 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <title>แบบบ้านไดมอนด์ 08</title>
5    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6<!-- This site is hosted on Netlify. Anyone can build and deploy a site
7     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=353073cc-3859-45ff-8eae-add5411a2500
8     Netlify hosting facts for this site: static/SSR served via Netlify Edge. -->
9    <meta name="viewport" id="metaViewport" content="user-scalable=no, initial-scale=1, width=device-width, viewport-fit=cover" data-tdv-general-scale="0.5"/>
10    <meta name="apple-mobile-web-app-capable" content="yes"/>
11    <meta name="apple-mobile-web-app-status-bar-style" content="default">
12    <link rel="preload" href="locale/en.txt?v=1739247120304" as="fetch" crossorigin="anonymous"/>
13	<link rel="preload" href="script.js?v=1739247120304" as="script"/>
14	<link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/r/3/0_0.jpg?v=1739247120304" as="image"/>
15	<link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/l/3/0_0.jpg?v=1739247120304" as="image"/>
16	<link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/u/3/0_0.jpg?v=1739247120304" as="image"/>
17	<link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/d/3/0_0.jpg?v=1739247120304" as="image"/>
18	<link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/f/3/0_0.jpg?v=1739247120304" as="image"/>
19	<link rel="preload" href="media/panorama_F9B45345_F2D2_A166_41E2_1F1AC0D14647_0/b/3/0_0.jpg?v=1739247120304" as="image"/>
20	<meta name="description" content="Virtual Tour"/>
21	<meta name="theme-color" content="#FFFFFF"/>
22    
22<script src="lib/tdvplayer.js?v=1739247120304"></script>
22
23    
23<script src="script.js?v=1739247120304"></script>
23
24    
24<script type="text/javascript">
25        var tour;
26        var devicesUrl = {"general":"script_general.js?v=1739247120304"};
27
28        (function()
29        {
30            var deviceType = ['general'];
31            if(TDV.PlayerAPI.mobile)
32                deviceType.unshift('mobile');
33            if(TDV.PlayerAPI.device == TDV.PlayerAPI.DEVICE_IPAD)
34                deviceType.unshift('ipad');
35            var url;
36            for(var i=0; i<deviceType.length; ++i) {
37                var d = deviceType[i];
38                if(d in devicesUrl) {
39                    url = devicesUrl[d];
40                    break;
41                }
42            }
43            if(typeof url == "object") {
44                var orient = TDV.PlayerAPI.getOrientation();
45                if(orient in url) {
46                    url = url[orient];
47                }
48            }
49            var link = document.createElement('link');
50            link.rel = 'preload';
51            link.href = url;
52            link.as = 'script';
53            var el = document.getElementsByTagName('script')[0];
54            el.parentNode.insertBefore(link, el);
55        })();
56
57        function loadTour()
58        {
59            if(tour) return;
60
61            if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) {
62                var preloadContainer = document.getElementById('preloadContainer');
63                if(preloadContainer)
64                    document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor;
65            }
66
67            var settings = new TDV.PlayerSettings();
68            settings.set(TDV.PlayerSettings.CONTAINER, document.getElementById('viewer'));
69            settings.set(TDV.PlayerSettings.WEBVR_POLYFILL_URL, 'lib/WebVRPolyfill.js?v=1739247120304');
70            settings.set(TDV.PlayerSettings.HLS_URL, 'lib/Hls.js?v=1739247120304');
71            settings.set(TDV.PlayerSettings.QUERY_STRING_PARAMETERS, 'v=1739247120304');
72
73            tour = new TDV.Tour(settings, devicesUrl);
74            tour.bind(TDV.Tour.EVENT_TOUR_INITIALIZED, onVirtualTourInit);
75            tour.bind(TDV.Tour.EVENT_TOUR_LOADED, onVirtualTourLoaded);
76            tour.bind(TDV.Tour.EVENT_TOUR_ENDED, onVirtualTourEnded);
77            tour.load();
78        }
79
80        function pauseTour()
81        {
82            if(!tour)
83                return;
84
85            tour.pause();
86        }
87
88        function resumeTour()
89        {
90            if(!tour)
91                return;
92
93            tour.resume();
94        }
95
96        function onVirtualTourInit()
97        {
98            var updateTexts = function() {
99                document.title = this.trans("tour.name")
100            };
101
102            tour.locManager.bind(TDV.Tour.LocaleManager.EVENT_LOCALE_CHANGED, updateTexts.bind(tour.locManager));
103            
104            if (tour.player.cookiesEnabled)
105                enableCookies();
106            else
107                tour.player.bind('enableCookies', enableCookies);
108        }
109
110        function onVirtualTourLoaded()
111        {
112            disposePreloader();
113        }
114
115        function onVirtualTourEnded()
116        {
117
118        }
119
120        function enableCookies()
121        {
122            
123        }
124
125        function setMediaByIndex(index) {
126            if(!tour)
127                return;
128
129            tour.setMediaByIndex(index);
130        }
131
132        function setMediaByName(name)
133        {
134            if(!tour)
135                return;
136
137            tour.setMediaByName(name);
138        }
139
140        function showPreloader()
141        {
142            var preloadContainer = document.getElementById('preloadContainer');
143            if(preloadContainer != undefined)
144                preloadContainer.style.opacity = 1;
145        }
146
147        function disposePreloader()
148        {
149            var preloadContainer = document.getElementById('preloadContainer');
150            if(preloadContainer == undefined)
151                return;
152
153            var transitionEndName = transitionEndEventName();
154            if(transitionEndName)
155            {
156                preloadContainer.addEventListener(transitionEndName, hide, false);
157                preloadContainer.style.opacity = 0;
158                setTimeout(hide, 500); //Force hide. Some cases the transitionend event isn't dispatched with an iFrame.
159            }
160            else
161            {
162                hide();
163            }
164
165            function hide()
166            {
167                
168                document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor;
169                preloadContainer.style.visibility = 'hidden';
170                preloadContainer.style.display = 'none';
171                var videoList = preloadContainer.getElementsByTagName("video");
172                for(var i=0; i<videoList.length; ++i)
173                {
174                    var video = videoList[i];
175                    video.pause();
176                    while (video.children.length)
177                        video.removeChild(video.children[0]);
178                }
179            }
180
181            function transitionEndEventName () {
182                var el = document.createElement('div');
183                var transitions = {
184                        'transition':'transitionend',
185                        'OTransition':'otransitionend',
186                        'MozTransition':'transitionend',
187                        'WebkitTransition':'webkitTransitionEnd'
188                    };
189
190                var t;
191                for (t in transitions) {
192                    if (el.style[t] !== undefined) {
193                        return transitions[t];
194                    }
195                }
196
197                return undefined;
198            }
199        }
200
201        function onBodyClick(){
202            document.body.removeEventListener("click", onBodyClick);
203            document.body.removeEventListener("touchend", onBodyClick);
204            
205        }
206
207        function onLoad() {
208            if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent))
209            {
210                var onOrientationChange = function()
211                {
212                    document.documentElement.style.height = 'initial';
213                    Array.from(document.querySelectorAll('.fill-viewport')).forEach(function(element)
214                    {
215                        element.classList.toggle('landscape-right', window.orientation == -90);
216                        element.classList.toggle('landscape-left', window.orientation == 90);
217                    });
218                    setTimeout(function()
219                    {
220                        document.documentElement.style.height = '100%';
221                    }, 500);
222                };
223                window.addEventListener('orientationchange', onOrientationChange);
224                onOrientationChange();
225            }
226
227            var params = getParams(location.search.substr(1));
228            if(params.hasOwnProperty("skip-loading"))
229            {
230                loadTour();
231                disposePreloader();
232                return;
233            }
234
235            if (isOVRWeb()){
236                showPreloader();
237                loadTour();
238                return;
239            }
240
241            showPreloader();
242			loadTour();
243        }
244
245        function playVideo(video) {
246            function isSafariDesktopV11orGreater() {
247                return /^((?!chrome|android|crios|ipad|iphone).)*safari/i.test(navigator.userAgent) && parseFloat(/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent)[1]) >= 11;
248            }
249
250            function hasAudio (video) {
251                return video.mozHasAudio ||
252                       Boolean(video.webkitAudioDecodedByteCount) ||
253                       Boolean(video.audioTracks && video.audioTracks.length);
254            }
255
256            function detectUserAction() {
257                var onVideoClick = function(e) {
258                    if(video.paused) {
259                        video.play();
260                    }
261                    video.muted = false;
262                    if(hasAudio(video))
263                    {
264                        e.stopPropagation();
265                        e.stopImmediatePropagation();
266                        e.preventDefault();
267                    }
268
269                    video.removeEventListener('click', onVideoClick);
270                    video.removeEventListener('touchend', onVideoClick);
271                };
272                video.addEventListener("click", onVideoClick);
273                video.addEventListener("touchend", onVideoClick);
274            }
275
276            if (isSafariDesktopV11orGreater()) {
277                video.muted = true;
278                video.play();
279            } else {
280                var canPlay = true;
281                var promise = video.play();
282                if (promise) {
283                    promise.catch(function() {
284                        video.muted = true;
285                        video.play();
286                        detectUserAction();
287                    });
288                } else {
289                    canPlay = false;
290                }
291
292                if (!canPlay || video.muted) {
293                    detectUserAction();
294                }
295            }
296        }
297
298        function isOVRWeb(){
299            return window.location.hash.substring(1).split('&').indexOf('ovrweb') > -1;
300        }
301
302        function getParams(params) {
303            var queryDict = {}; params.split("&").forEach(function(item) {var k = item.split("=")[0], v = decodeURIComponent(item.split("=")[1]);queryDict[k.toLowerCase()] = v});
304            return queryDict;
305        }
306
307        document.addEventListener('DOMContentLoaded', onLoad);
308    </script>
308
309    <style type="text/css">
310        html, body { height:100%; width:100%; height:100vh; width:100vw; margin:0; padding:0; overflow:hidden; }
311        .fill-viewport { position:fixed; top:0; left:0; right:0; bottom:0; padding:0; margin:0; overflow: hidden; }
312        .fill-viewport.landscape-left { left: env(safe-area-inset-left); }
313		.fill-viewport.landscape-right { right: env(safe-area-inset-right); }
314        #viewer { z-index:1; }
315        #preloadContainer { z-index:2; opacity:0; background-color:rgba(255,255,255,1); transition: opacity 0.5s; -webkit-transition: opacity 0.5s; -moz-transition: opacity 0.5s; -o-transition: opacity 0.5s;}
316    </style>
317    <link rel="stylesheet" href="fonts.css?v=1739247120304">
318</head>
319<body>
320    <div id="preloadContainer" class="fill-viewport"><div style="z-index: 4; position: absolute; left: 0%; top: 50%; width: 100.00%; height: 10.00%"><div style="text-align:left; color:#000; "><DIV STYLE="text-align:center;font-size:1.6666666666666663vmin;"><SPAN STYLE="display:inline-block; letter-spacing:0vmin; white-space:pre-wrap;color:#777777;font-size:1.67vmin;font-family:Arial, Helvetica, sans-serif;">Loading virtual tour. Please wait...</SPAN></DIV></div></div></div>
321    <div id="viewer" class="fill-viewport"></div>
322</body>
323</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.