File: /home/dronicaehy/www/MuseoDeLaSangreTourVirtual/index.htm
<!DOCTYPE html>
<html lang="es">
<head>
<title>Museo Cristo de la Sangre</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" id="metaViewport" content="user-scalable=no, initial-scale=1, width=device-width, viewport-fit=cover" data-tdv-general-scale="0.5"/>
<link rel="preload" href="locale/es.txt?v=1617614081060" as="fetch" crossorigin="anonymous"/>
<link rel="preload" href="script.js?v=1617614081060" as="script"/>
<link rel="preload" href="media/panorama_7D0CEA67_68AA_C01F_41C9_AB73E54F6708_0/r/4/0_0.jpg?v=1617614081060" as="image"/>
<link rel="preload" href="media/panorama_7D0CEA67_68AA_C01F_41C9_AB73E54F6708_0/l/4/0_0.jpg?v=1617614081060" as="image"/>
<link rel="preload" href="media/panorama_7D0CEA67_68AA_C01F_41C9_AB73E54F6708_0/u/4/0_0.jpg?v=1617614081060" as="image"/>
<link rel="preload" href="media/panorama_7D0CEA67_68AA_C01F_41C9_AB73E54F6708_0/d/4/0_0.jpg?v=1617614081060" as="image"/>
<link rel="preload" href="media/panorama_7D0CEA67_68AA_C01F_41C9_AB73E54F6708_0/f/4/0_0.jpg?v=1617614081060" as="image"/>
<link rel="preload" href="media/panorama_7D0CEA67_68AA_C01F_41C9_AB73E54F6708_0/b/4/0_0.jpg?v=1617614081060" as="image"/>
<script src="https://remote.3dvista.com/lib/tdvremote.js?v=1617614081060" type="text/javascript"></script>
<meta name="description" content="Virtual Tour"/>
<meta name="theme-color" content="#FFFFFF"/>
<script src="lib/tdvplayer.js?v=1617614081060"></script>
<script src="script.js?v=1617614081060"></script>
<script type="text/javascript">
var tour;
var devicesUrl = {"general":"script_general.js?v=1617614081060","mobile":"script_mobile.js?v=1617614081060"};
(function()
{
var deviceType = ['general'];
if(TDV.PlayerAPI.mobile)
deviceType.unshift('mobile');
if(TDV.PlayerAPI.device == TDV.PlayerAPI.DEVICE_IPAD)
deviceType.unshift('ipad');
var url;
for(var i=0; i<deviceType.length; ++i) {
var d = deviceType[i];
if(d in devicesUrl) {
url = devicesUrl[d];
break;
}
}
if(typeof url == "object") {
var orient = TDV.PlayerAPI.getOrientation();
if(orient in url) {
url = url[orient];
}
}
var link = document.createElement('link');
link.rel = 'preload';
link.href = url;
link.as = 'script';
var el = document.getElementsByTagName('script')[0];
el.parentNode.insertBefore(link, el);
})();
function loadTour()
{
if(tour) return;
var settings = new TDV.PlayerSettings();
settings.set(TDV.PlayerSettings.CONTAINER, document.getElementById('viewer'));
settings.set(TDV.PlayerSettings.WEBVR_POLYFILL_URL, 'lib/WebVRPolyfill.js?v=1617614081060');
settings.set(TDV.PlayerSettings.HLS_URL, 'lib/Hls.js?v=1617614081060');
settings.set(TDV.PlayerSettings.QUERY_STRING_PARAMETERS, 'v=1617614081060');
tour = new TDV.Tour(settings, devicesUrl);
tour.bind(TDV.Tour.EVENT_TOUR_INITIALIZED, onVirtualTourInit);
tour.bind(TDV.Tour.EVENT_TOUR_LOADED, onVirtualTourLoaded);
tour.bind(TDV.Tour.EVENT_TOUR_ENDED, onVirtualTourEnded);
tour.load();
}
function pauseTour()
{
if(!tour)
return;
tour.pause();
}
function resumeTour()
{
if(!tour)
return;
tour.resume();
}
function onVirtualTourInit()
{
var updateTexts = function() {
document.title = this.trans("tour.name")
};
tour.locManager.bind(TDV.Tour.LocaleManager.EVENT_LOCALE_CHANGED, updateTexts.bind(tour.locManager));
TDV.Remote.start(tour.player, "gu91wpkit4yd");
if (tour.player.cookiesEnabled)
enableCookies();
else
tour.player.bind('enableCookies', enableCookies);
}
function onVirtualTourLoaded()
{
disposePreloader();
}
function onVirtualTourEnded()
{
}
function enableCookies()
{
}
function setMediaByIndex(index) {
if(!tour)
return;
tour.setMediaByIndex(index);
}
function setMediaByName(name)
{
if(!tour)
return;
tour.setMediaByName(name);
}
function showPreloader()
{
var preloadContainer = document.getElementById('preloadContainer');
if(preloadContainer != undefined)
preloadContainer.style.opacity = 1;
}
function disposePreloader()
{
var preloadContainer = document.getElementById('preloadContainer');
if(preloadContainer == undefined)
return;
var transitionEndName = transitionEndEventName();
if(transitionEndName)
{
preloadContainer.addEventListener(transitionEndName, hide, false);
preloadContainer.style.opacity = 0;
setTimeout(hide, 500); //Force hide. Some cases the transitionend event isn't dispatched with an iFrame.
}
else
{
hide();
}
function hide()
{
preloadContainer.style.visibility = 'hidden';
preloadContainer.style.display = 'none';
var videoList = preloadContainer.getElementsByTagName("video");
for(var i=0; i<videoList.length; ++i)
{
var video = videoList[i];
video.pause();
while (video.children.length)
video.removeChild(video.children[0]);
}
}
function transitionEndEventName () {
var el = document.createElement('div');
var transitions = {
'transition':'transitionend',
'OTransition':'otransitionend',
'MozTransition':'transitionend',
'WebkitTransition':'webkitTransitionEnd'
};
var t;
for (t in transitions) {
if (el.style[t] !== undefined) {
return transitions[t];
}
}
return undefined;
}
}
function onBodyClick(){
document.body.removeEventListener("click", onBodyClick);
document.body.removeEventListener("touchend", onBodyClick);
loadTour();
}
function onLoad() {
if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent))
{
var inIFrame = false;
try
{
inIFrame = (window.self !== window.top);
}
catch (e)
{
inIFrame = true;
}
if (!inIFrame)
{
var onResize = function(async)
{
[0, 250, 1000, 2000].forEach(function(delay)
{
setTimeout(function()
{
var viewer = document.querySelector('#viewer');
var scale = window.innerWidth / document.documentElement.clientWidth;
var width = document.documentElement.clientWidth;
var height = Math.round(window.innerHeight / scale);
viewer.style.width = width + 'px';
viewer.style.height = height + 'px';
viewer.style.left = Math.round((window.innerWidth - width) * 0.5) + 'px';
viewer.style.top = Math.round((window.innerHeight - height) * 0.5) + 'px';
viewer.style.transform = 'scale(' + scale + ', ' + scale + ')';
window.scrollTo(0,0);
}, delay);
});
};
var onTouchEnd = function()
{
document.body.removeEventListener("touchend", onTouchEnd);
clearInterval(resizeIntervalId);
onResize();
if (/CriOS/.test(navigator.userAgent))
setInterval(onResize, 4000);
};
document.body.addEventListener("touchend", onTouchEnd);
var resizeIntervalId = setInterval(onResize, 300);
window.addEventListener('resize', onResize);
onResize();
}
}
var params = getParams(location.search.substr(1));
if(params.hasOwnProperty("skip-loading"))
{
loadTour();
disposePreloader();
return;
}
if (isOVRWeb()){
showPreloader();
loadTour();
return;
}
document.body.addEventListener("click", onBodyClick);
document.body.addEventListener("touchend", onBodyClick);
showPreloader();
}
function playVideo(video) {
function isSafariDesktopV11orGreater() {
return /^((?!chrome|android|crios|ipad|iphone).)*safari/i.test(navigator.userAgent) && parseFloat(/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent)[1]) >= 11;
}
function hasAudio (video) {
return video.mozHasAudio ||
Boolean(video.webkitAudioDecodedByteCount) ||
Boolean(video.audioTracks && video.audioTracks.length);
}
function detectUserAction() {
var onVideoClick = function(e) {
if(video.paused) {
video.play();
}
video.muted = false;
if(hasAudio(video))
{
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
}
video.removeEventListener('click', onVideoClick);
video.removeEventListener('touchend', onVideoClick);
};
video.addEventListener("click", onVideoClick);
video.addEventListener("touchend", onVideoClick);
}
if (isSafariDesktopV11orGreater()) {
video.muted = true;
video.play();
} else {
var canPlay = true;
var promise = video.play();
if (promise) {
promise.catch(function() {
video.muted = true;
video.play();
detectUserAction();
});
} else {
canPlay = false;
}
if (!canPlay || video.muted) {
detectUserAction();
}
}
}
function isOVRWeb(){
return window.location.hash.substring(1).split('&').indexOf('ovrweb') > -1;
}
function getParams(params) {
var queryDict = {}; params.split("&").forEach(function(item) {var k = item.split("=")[0], v = decodeURIComponent(item.split("=")[1]);queryDict[k.toLowerCase()] = v});
return queryDict;
}
document.addEventListener('DOMContentLoaded', onLoad);
</script>
<style type="text/css">
html, body { width: 100%; height: 100%; margin: 0; padding: 0; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
#viewer { z-index:1; position:absolute; width: 100%; height: 100%; top: 0; }
#preloadContainer { z-index:2; position:relative; width:100%; height:100%; 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;}
</style>
<link rel="stylesheet" href="fonts.css?v=1617614081060">
</head>
<body>
<div id="preloadContainer"><div style="z-index: 4; position: absolute; background-image: url('loading/HTMLImage_BB32D249_A11C_D87F_41C4_3C2CE6DFE8AC.jpg'); background-size: contain; background-repeat: no-repeat; background-position: center center; overflow: hidden; right: 0%; bottom: 0%; width: 100.00%; height: 100.00%"></div></div>
<div id="viewer"></div>
</body>
</html>