{"id":384,"date":"2024-08-15T15:55:43","date_gmt":"2024-08-15T07:55:43","guid":{"rendered":"https:\/\/www.cyma.edu.hk\/?page_id=384"},"modified":"2025-02-08T13:48:03","modified_gmt":"2025-02-08T05:48:03","slug":"school-facilities","status":"publish","type":"page","link":"https:\/\/www.cyma.edu.hk\/en\/school-profile\/school-facilities\/","title":{"rendered":"School Facilities"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Shot by: 2C \u6587\u6d1b\u5ef7\u30012C \u9ec3\u6cbb\u8ed2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Equipment: Insta360 X4<\/strong><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">G\/F &#8211; ELSAC \u82f1\u8a9e\u81ea\u5b78\u4e2d\u5fc3<\/h3>\n\n\n<style>#pano7441 div.pnlm-orientation-button {\n                    display: none;\n                }\n            .wpvr-floor-map .floor-plan-pointer.add-pulse:before {\n                border: 17px solid #cca92c;\n            }\n            @-webkit-keyframes pulse {\n                0% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                }\n                70% {\n                    -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                }\n                100% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                }\n            }\n            @keyframes pulse {\n            0% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n            }\n            70% {\n                -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n            }\n            100% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n            }\n        }<\/style><div id=\"master-container\" class=\"wpvr-master-container wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:; direction:ltr; \"><div id=\"pano27441\" class=\"pano-wrap pano-left pano27441\" style=\"width: 49%; border-radius:\"><div id=\"center-pointer27441\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano7441\" class=\"pano-wrap pano-right pano7441\" style=\"width: 100%;\"><div class=\"explainer\" id=\"explainer7441\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"7441\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"7441\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-pano7441\">\n            #pano7441 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano7441 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7441 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7441 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano7441 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano7441 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano7441 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano7441.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano7441.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano7441.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano7441.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano7441 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano7441 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano7441 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano7441\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"ELSAC\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"ELSAC\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241025_183313_145-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes = response[1];function wpvrResolveDevicePanorama(scenesConfig) {    if (!scenesConfig || !scenesConfig.scenes) return;    var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent) || (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);    var isSmallScreen = (window.innerWidth <= 768);    if (typeof window.wpvrMaxTexture === \"undefined\") {        window.wpvrMaxTexture = 16384;        try {            var testCanvas = document.createElement(\"canvas\");            var gl = testCanvas.getContext(\"webgl\") || testCanvas.getContext(\"experimental-webgl\");            if (gl) {                window.wpvrMaxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE) || 16384;                var ext = gl.getExtension(\"WEBGL_lose_context\");                if (ext) { ext.loseContext(); }            }        } catch (e) {}    }    var maxTexture = window.wpvrMaxTexture;    for (var scId in scenesConfig.scenes) {        if (!scenesConfig.scenes.hasOwnProperty(scId)) continue;        var sc = scenesConfig.scenes[scId];        if (!sc) continue;        var exceedsGpu = sc.desktop_width && (sc.desktop_width > maxTexture);        if (isMobile || isSmallScreen || exceedsGpu) {            if (sc.mobile_panorama) {                sc.panorama = sc.mobile_panorama;            }        } else if (sc.desktop_panorama) {            sc.panorama = sc.desktop_panorama;        }    }}wpvrResolveDevicePanorama(scenes);if(scenes) {var scenedata = scenes.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx].type === \"info\") {    scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[hIdx].type === \"scene\") {    scenehotspot[hIdx][\"clickHandlerArgs\"] = scenehotspot[hIdx][\"text\"] || \"\";}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var panoshow7441;var panoshow27441;function initWPVRViewer7441() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer7441, 50); return; }panoshow7441 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow7441;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow7441 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow7441.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow7441.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer7441();var response_duplicate = [{\"panoid\":\"pano7441\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"ELSAC\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"ELSAC\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241025_183313_145-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes_duplicate = response_duplicate[1];wpvrResolveDevicePanorama(scenes_duplicate);if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx][\"clickHandlerArgs\"] != \"\") {scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var vr_mode = \"off\";jQuery(\"#pano7441 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow7441.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow7441.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    const node = document.querySelector(\".add-pulse\");\n        panoshow7441.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow7441.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano27441 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano7441 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano27441 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano7441 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano7441\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls7441\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls7441\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow7441.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer7441 = null;\n                        var wpvrAutoRotateStopDelay7441 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate7441 = function () {\n                            clearTimeout(wpvrAutoRotateTimer7441);\n                            if (wpvrAutoRotateStopDelay7441 > 0) {\n                                wpvrAutoRotateTimer7441 = setTimeout(function () {\n                                    panoshow7441.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay7441);\n                            } else {\n                                wpvrAutoRotateTimer7441 = setTimeout(function () {\n                                    panoshow7441.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow7441.on(\"load\", wpvrScheduleAutoRotate7441);\n                        panoshow7441.on(\"scenechange\", wpvrScheduleAutoRotate7441);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot7441 = document.getElementById(\"pano7441\");\n            if (wpvrHotspotRoot7441) {\n                wpvrHotspotRoot7441.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    \/\/ Social share icons navigate independently using their own links and targets.\n                    if (hotspot.querySelector(\".wpvr-sticker-card--social-share\")) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_7441\",function() {\n                    jQuery(\"#explainer7441\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer7441\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano7441\",function(event) {\n        var isCross = event.target.closest(\".cross\");\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents-wrapper\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isCross != null){\n            return;\n        }\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide();\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_7441\",function() {\n                jQuery(\"#wpvr-floor-map7441\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map7441\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols7441\").hide();\n                      jQuery(\"#pano7441 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl7441\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide7441 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols7441\",function() {\n\t\t            if (slide7441 == \"up\") {\n\t\t              jQuery(\".vrgctrl7441\").empty();\n\t\t              jQuery(\".vrgctrl7441\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide7441 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl7441\").empty();\n\t\t              jQuery(\".vrgctrl7441\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide7441 = \"up\";\n\t\t            }\n                    jQuery(\"#pano7441 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols7441\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols7441\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols7441\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        if (pano_id == \"pano7441\") {\n                          jQuery(\"#pano7441\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano7441\").children(\".pnlm-ui\").remove();\n                          panoshow7441 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow7441;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow7441 }\n                          }));\n                          jQuery(\"#pano7441\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click to Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow7441.loadScene(\"ELSAC\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano7441\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls7441\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls7441\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano7441\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano7441\").children(\".pnlm-ui\").remove();\n              panoshow7441 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow7441;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow7441 }\n              }));\n              setTimeout(function() {\n                      panoshow7441.loadScene(\"ELSAC\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano7441\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls7441\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls7441\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano7441\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click to Load Panorama\")\n            jQuery(\"#pano7441 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano7441 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-pano7441\">\n            (function () {\n                var pano = document.getElementById(\"pano7441\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode ? firstNode.nodeType === 3 : false) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = Boolean(title ? title.textContent.trim() : false);\n                    var hasAuthor = Boolean(author ? author.textContent.trim() : false);\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">G\/F - Gym Room \u9ad4\u9069\u80fd\u8a13\u7df4\u4e2d\u5fc3<\/h3>\n\n\n<style>#pano7445 div.pnlm-orientation-button {\n                    display: none;\n                }\n            .wpvr-floor-map .floor-plan-pointer.add-pulse:before {\n                border: 17px solid #cca92c;\n            }\n            @-webkit-keyframes pulse {\n                0% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                }\n                70% {\n                    -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                }\n                100% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                }\n            }\n            @keyframes pulse {\n            0% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n            }\n            70% {\n                -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n            }\n            100% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n            }\n        }<\/style><div id=\"master-container\" class=\"wpvr-master-container wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:; direction:ltr; \"><div id=\"pano27445\" class=\"pano-wrap pano-left pano27445\" style=\"width: 49%; border-radius:\"><div id=\"center-pointer27445\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano7445\" class=\"pano-wrap pano-right pano7445\" style=\"width: 100%;\"><div class=\"explainer\" id=\"explainer7445\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"7445\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"7445\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-pano7445\">\n            #pano7445 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano7445 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7445 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7445 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano7445 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano7445 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano7445 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano7445.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano7445.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano7445.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano7445.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano7445 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano7445 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano7445 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano7445\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"L4BL0cej\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"L4BL0cej\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_170744_934-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes = response[1];function wpvrResolveDevicePanorama(scenesConfig) {    if (!scenesConfig || !scenesConfig.scenes) return;    var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent) || (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);    var isSmallScreen = (window.innerWidth <= 768);    if (typeof window.wpvrMaxTexture === \"undefined\") {        window.wpvrMaxTexture = 16384;        try {            var testCanvas = document.createElement(\"canvas\");            var gl = testCanvas.getContext(\"webgl\") || testCanvas.getContext(\"experimental-webgl\");            if (gl) {                window.wpvrMaxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE) || 16384;                var ext = gl.getExtension(\"WEBGL_lose_context\");                if (ext) { ext.loseContext(); }            }        } catch (e) {}    }    var maxTexture = window.wpvrMaxTexture;    for (var scId in scenesConfig.scenes) {        if (!scenesConfig.scenes.hasOwnProperty(scId)) continue;        var sc = scenesConfig.scenes[scId];        if (!sc) continue;        var exceedsGpu = sc.desktop_width && (sc.desktop_width > maxTexture);        if (isMobile || isSmallScreen || exceedsGpu) {            if (sc.mobile_panorama) {                sc.panorama = sc.mobile_panorama;            }        } else if (sc.desktop_panorama) {            sc.panorama = sc.desktop_panorama;        }    }}wpvrResolveDevicePanorama(scenes);if(scenes) {var scenedata = scenes.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx].type === \"info\") {    scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[hIdx].type === \"scene\") {    scenehotspot[hIdx][\"clickHandlerArgs\"] = scenehotspot[hIdx][\"text\"] || \"\";}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var panoshow7445;var panoshow27445;function initWPVRViewer7445() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer7445, 50); return; }panoshow7445 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow7445;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow7445 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow7445.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow7445.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer7445();var response_duplicate = [{\"panoid\":\"pano7445\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"L4BL0cej\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"L4BL0cej\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_170744_934-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes_duplicate = response_duplicate[1];wpvrResolveDevicePanorama(scenes_duplicate);if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx][\"clickHandlerArgs\"] != \"\") {scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var vr_mode = \"off\";jQuery(\"#pano7445 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow7445.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow7445.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    const node = document.querySelector(\".add-pulse\");\n        panoshow7445.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow7445.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano27445 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano7445 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano27445 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano7445 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano7445\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls7445\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls7445\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow7445.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer7445 = null;\n                        var wpvrAutoRotateStopDelay7445 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate7445 = function () {\n                            clearTimeout(wpvrAutoRotateTimer7445);\n                            if (wpvrAutoRotateStopDelay7445 > 0) {\n                                wpvrAutoRotateTimer7445 = setTimeout(function () {\n                                    panoshow7445.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay7445);\n                            } else {\n                                wpvrAutoRotateTimer7445 = setTimeout(function () {\n                                    panoshow7445.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow7445.on(\"load\", wpvrScheduleAutoRotate7445);\n                        panoshow7445.on(\"scenechange\", wpvrScheduleAutoRotate7445);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot7445 = document.getElementById(\"pano7445\");\n            if (wpvrHotspotRoot7445) {\n                wpvrHotspotRoot7445.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    \/\/ Social share icons navigate independently using their own links and targets.\n                    if (hotspot.querySelector(\".wpvr-sticker-card--social-share\")) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_7445\",function() {\n                    jQuery(\"#explainer7445\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer7445\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano7445\",function(event) {\n        var isCross = event.target.closest(\".cross\");\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents-wrapper\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isCross != null){\n            return;\n        }\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide();\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_7445\",function() {\n                jQuery(\"#wpvr-floor-map7445\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map7445\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols7445\").hide();\n                      jQuery(\"#pano7445 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl7445\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide7445 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols7445\",function() {\n\t\t            if (slide7445 == \"up\") {\n\t\t              jQuery(\".vrgctrl7445\").empty();\n\t\t              jQuery(\".vrgctrl7445\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide7445 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl7445\").empty();\n\t\t              jQuery(\".vrgctrl7445\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide7445 = \"up\";\n\t\t            }\n                    jQuery(\"#pano7445 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols7445\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols7445\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols7445\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        if (pano_id == \"pano7445\") {\n                          jQuery(\"#pano7445\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano7445\").children(\".pnlm-ui\").remove();\n                          panoshow7445 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow7445;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow7445 }\n                          }));\n                          jQuery(\"#pano7445\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow7445.loadScene(\"L4BL0cej\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano7445\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls7445\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls7445\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano7445\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano7445\").children(\".pnlm-ui\").remove();\n              panoshow7445 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow7445;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow7445 }\n              }));\n              setTimeout(function() {\n                      panoshow7445.loadScene(\"L4BL0cej\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano7445\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls7445\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls7445\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano7445\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n            jQuery(\"#pano7445 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano7445 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-pano7445\">\n            (function () {\n                var pano = document.getElementById(\"pano7445\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode ? firstNode.nodeType === 3 : false) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = Boolean(title ? title.textContent.trim() : false);\n                    var hasAuthor = Boolean(author ? author.textContent.trim() : false);\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">1\/F - Forensic Lab \u9451\u8b49\u5be6\u9a57\u5ba4<\/h3>\n\n\n<style>#pano7437 div.pnlm-orientation-button {\n                    display: none;\n                }\n            .wpvr-floor-map .floor-plan-pointer.add-pulse:before {\n                border: 17px solid #cca92c;\n            }\n            @-webkit-keyframes pulse {\n                0% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                }\n                70% {\n                    -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                }\n                100% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                }\n            }\n            @keyframes pulse {\n            0% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n            }\n            70% {\n                -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n            }\n            100% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n            }\n        }<\/style><div id=\"master-container\" class=\"wpvr-master-container wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:; direction:ltr; \"><div id=\"pano27437\" class=\"pano-wrap pano-left pano27437\" style=\"width: 49%; border-radius:\"><div id=\"center-pointer27437\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano7437\" class=\"pano-wrap pano-right pano7437\" style=\"width: 100%;\"><div class=\"explainer\" id=\"explainer7437\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"7437\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"7437\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-pano7437\">\n            #pano7437 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano7437 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7437 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7437 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano7437 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano7437 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano7437 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano7437.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano7437.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano7437.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano7437.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano7437 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano7437 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano7437 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano7437\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"ForensicLab\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"ForensicLab\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241025_183221_590-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes = response[1];function wpvrResolveDevicePanorama(scenesConfig) {    if (!scenesConfig || !scenesConfig.scenes) return;    var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent) || (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);    var isSmallScreen = (window.innerWidth <= 768);    if (typeof window.wpvrMaxTexture === \"undefined\") {        window.wpvrMaxTexture = 16384;        try {            var testCanvas = document.createElement(\"canvas\");            var gl = testCanvas.getContext(\"webgl\") || testCanvas.getContext(\"experimental-webgl\");            if (gl) {                window.wpvrMaxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE) || 16384;                var ext = gl.getExtension(\"WEBGL_lose_context\");                if (ext) { ext.loseContext(); }            }        } catch (e) {}    }    var maxTexture = window.wpvrMaxTexture;    for (var scId in scenesConfig.scenes) {        if (!scenesConfig.scenes.hasOwnProperty(scId)) continue;        var sc = scenesConfig.scenes[scId];        if (!sc) continue;        var exceedsGpu = sc.desktop_width && (sc.desktop_width > maxTexture);        if (isMobile || isSmallScreen || exceedsGpu) {            if (sc.mobile_panorama) {                sc.panorama = sc.mobile_panorama;            }        } else if (sc.desktop_panorama) {            sc.panorama = sc.desktop_panorama;        }    }}wpvrResolveDevicePanorama(scenes);if(scenes) {var scenedata = scenes.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx].type === \"info\") {    scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[hIdx].type === \"scene\") {    scenehotspot[hIdx][\"clickHandlerArgs\"] = scenehotspot[hIdx][\"text\"] || \"\";}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var panoshow7437;var panoshow27437;function initWPVRViewer7437() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer7437, 50); return; }panoshow7437 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow7437;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow7437 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow7437.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow7437.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer7437();var response_duplicate = [{\"panoid\":\"pano7437\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"ForensicLab\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"ForensicLab\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241025_183221_590-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes_duplicate = response_duplicate[1];wpvrResolveDevicePanorama(scenes_duplicate);if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx][\"clickHandlerArgs\"] != \"\") {scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var vr_mode = \"off\";jQuery(\"#pano7437 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow7437.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow7437.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    const node = document.querySelector(\".add-pulse\");\n        panoshow7437.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow7437.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano27437 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano7437 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano27437 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano7437 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano7437\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls7437\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls7437\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow7437.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer7437 = null;\n                        var wpvrAutoRotateStopDelay7437 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate7437 = function () {\n                            clearTimeout(wpvrAutoRotateTimer7437);\n                            if (wpvrAutoRotateStopDelay7437 > 0) {\n                                wpvrAutoRotateTimer7437 = setTimeout(function () {\n                                    panoshow7437.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay7437);\n                            } else {\n                                wpvrAutoRotateTimer7437 = setTimeout(function () {\n                                    panoshow7437.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow7437.on(\"load\", wpvrScheduleAutoRotate7437);\n                        panoshow7437.on(\"scenechange\", wpvrScheduleAutoRotate7437);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot7437 = document.getElementById(\"pano7437\");\n            if (wpvrHotspotRoot7437) {\n                wpvrHotspotRoot7437.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    \/\/ Social share icons navigate independently using their own links and targets.\n                    if (hotspot.querySelector(\".wpvr-sticker-card--social-share\")) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_7437\",function() {\n                    jQuery(\"#explainer7437\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer7437\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano7437\",function(event) {\n        var isCross = event.target.closest(\".cross\");\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents-wrapper\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isCross != null){\n            return;\n        }\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide();\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_7437\",function() {\n                jQuery(\"#wpvr-floor-map7437\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map7437\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols7437\").hide();\n                      jQuery(\"#pano7437 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl7437\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide7437 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols7437\",function() {\n\t\t            if (slide7437 == \"up\") {\n\t\t              jQuery(\".vrgctrl7437\").empty();\n\t\t              jQuery(\".vrgctrl7437\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide7437 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl7437\").empty();\n\t\t              jQuery(\".vrgctrl7437\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide7437 = \"up\";\n\t\t            }\n                    jQuery(\"#pano7437 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols7437\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols7437\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols7437\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        if (pano_id == \"pano7437\") {\n                          jQuery(\"#pano7437\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano7437\").children(\".pnlm-ui\").remove();\n                          panoshow7437 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow7437;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow7437 }\n                          }));\n                          jQuery(\"#pano7437\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click to Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow7437.loadScene(\"ForensicLab\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano7437\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls7437\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls7437\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano7437\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano7437\").children(\".pnlm-ui\").remove();\n              panoshow7437 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow7437;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow7437 }\n              }));\n              setTimeout(function() {\n                      panoshow7437.loadScene(\"ForensicLab\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano7437\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls7437\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls7437\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano7437\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click to Load Panorama\")\n            jQuery(\"#pano7437 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano7437 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-pano7437\">\n            (function () {\n                var pano = document.getElementById(\"pano7437\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode ? firstNode.nodeType === 3 : false) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = Boolean(title ? title.textContent.trim() : false);\n                    var hasAuthor = Boolean(author ? author.textContent.trim() : false);\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">1\/F - VA Room \u8996\u85dd\u5ba4<\/h3>\n\n\n<style>#pano7447 div.pnlm-orientation-button {\n                    display: none;\n                }\n            .wpvr-floor-map .floor-plan-pointer.add-pulse:before {\n                border: 17px solid #cca92c;\n            }\n            @-webkit-keyframes pulse {\n                0% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                }\n                70% {\n                    -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                }\n                100% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                }\n            }\n            @keyframes pulse {\n            0% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n            }\n            70% {\n                -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n            }\n            100% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n            }\n        }<\/style><div id=\"master-container\" class=\"wpvr-master-container wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:; direction:ltr; \"><div id=\"pano27447\" class=\"pano-wrap pano-left pano27447\" style=\"width: 49%; border-radius:\"><div id=\"center-pointer27447\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano7447\" class=\"pano-wrap pano-right pano7447\" style=\"width: 100%;\"><div class=\"explainer\" id=\"explainer7447\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"7447\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"7447\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-pano7447\">\n            #pano7447 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano7447 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7447 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7447 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano7447 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano7447 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano7447 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano7447.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano7447.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano7447.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano7447.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano7447 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano7447 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano7447 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano7447\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"Yyw8MjCE\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"Yyw8MjCE\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241025_183048_579-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes = response[1];function wpvrResolveDevicePanorama(scenesConfig) {    if (!scenesConfig || !scenesConfig.scenes) return;    var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent) || (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);    var isSmallScreen = (window.innerWidth <= 768);    if (typeof window.wpvrMaxTexture === \"undefined\") {        window.wpvrMaxTexture = 16384;        try {            var testCanvas = document.createElement(\"canvas\");            var gl = testCanvas.getContext(\"webgl\") || testCanvas.getContext(\"experimental-webgl\");            if (gl) {                window.wpvrMaxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE) || 16384;                var ext = gl.getExtension(\"WEBGL_lose_context\");                if (ext) { ext.loseContext(); }            }        } catch (e) {}    }    var maxTexture = window.wpvrMaxTexture;    for (var scId in scenesConfig.scenes) {        if (!scenesConfig.scenes.hasOwnProperty(scId)) continue;        var sc = scenesConfig.scenes[scId];        if (!sc) continue;        var exceedsGpu = sc.desktop_width && (sc.desktop_width > maxTexture);        if (isMobile || isSmallScreen || exceedsGpu) {            if (sc.mobile_panorama) {                sc.panorama = sc.mobile_panorama;            }        } else if (sc.desktop_panorama) {            sc.panorama = sc.desktop_panorama;        }    }}wpvrResolveDevicePanorama(scenes);if(scenes) {var scenedata = scenes.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx].type === \"info\") {    scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[hIdx].type === \"scene\") {    scenehotspot[hIdx][\"clickHandlerArgs\"] = scenehotspot[hIdx][\"text\"] || \"\";}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var panoshow7447;var panoshow27447;function initWPVRViewer7447() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer7447, 50); return; }panoshow7447 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow7447;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow7447 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow7447.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow7447.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer7447();var response_duplicate = [{\"panoid\":\"pano7447\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"Yyw8MjCE\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"Yyw8MjCE\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241025_183048_579-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes_duplicate = response_duplicate[1];wpvrResolveDevicePanorama(scenes_duplicate);if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx][\"clickHandlerArgs\"] != \"\") {scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var vr_mode = \"off\";jQuery(\"#pano7447 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow7447.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow7447.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    const node = document.querySelector(\".add-pulse\");\n        panoshow7447.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow7447.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano27447 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano7447 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano27447 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano7447 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano7447\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls7447\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls7447\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow7447.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer7447 = null;\n                        var wpvrAutoRotateStopDelay7447 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate7447 = function () {\n                            clearTimeout(wpvrAutoRotateTimer7447);\n                            if (wpvrAutoRotateStopDelay7447 > 0) {\n                                wpvrAutoRotateTimer7447 = setTimeout(function () {\n                                    panoshow7447.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay7447);\n                            } else {\n                                wpvrAutoRotateTimer7447 = setTimeout(function () {\n                                    panoshow7447.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow7447.on(\"load\", wpvrScheduleAutoRotate7447);\n                        panoshow7447.on(\"scenechange\", wpvrScheduleAutoRotate7447);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot7447 = document.getElementById(\"pano7447\");\n            if (wpvrHotspotRoot7447) {\n                wpvrHotspotRoot7447.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    \/\/ Social share icons navigate independently using their own links and targets.\n                    if (hotspot.querySelector(\".wpvr-sticker-card--social-share\")) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_7447\",function() {\n                    jQuery(\"#explainer7447\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer7447\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano7447\",function(event) {\n        var isCross = event.target.closest(\".cross\");\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents-wrapper\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isCross != null){\n            return;\n        }\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide();\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_7447\",function() {\n                jQuery(\"#wpvr-floor-map7447\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map7447\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols7447\").hide();\n                      jQuery(\"#pano7447 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl7447\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide7447 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols7447\",function() {\n\t\t            if (slide7447 == \"up\") {\n\t\t              jQuery(\".vrgctrl7447\").empty();\n\t\t              jQuery(\".vrgctrl7447\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide7447 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl7447\").empty();\n\t\t              jQuery(\".vrgctrl7447\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide7447 = \"up\";\n\t\t            }\n                    jQuery(\"#pano7447 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols7447\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols7447\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols7447\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        if (pano_id == \"pano7447\") {\n                          jQuery(\"#pano7447\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano7447\").children(\".pnlm-ui\").remove();\n                          panoshow7447 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow7447;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow7447 }\n                          }));\n                          jQuery(\"#pano7447\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow7447.loadScene(\"Yyw8MjCE\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano7447\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls7447\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls7447\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano7447\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano7447\").children(\".pnlm-ui\").remove();\n              panoshow7447 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow7447;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow7447 }\n              }));\n              setTimeout(function() {\n                      panoshow7447.loadScene(\"Yyw8MjCE\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano7447\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls7447\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls7447\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano7447\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n            jQuery(\"#pano7447 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano7447 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-pano7447\">\n            (function () {\n                var pano = document.getElementById(\"pano7447\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode ? firstNode.nodeType === 3 : false) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = Boolean(title ? title.textContent.trim() : false);\n                    var hasAuthor = Boolean(author ? author.textContent.trim() : false);\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">2\/F - Music Room \u97f3\u6a02\u5ba4<\/h3>\n\n\n<style>#pano7429 div.pnlm-orientation-button {\n                    display: none;\n                }\n            .wpvr-floor-map .floor-plan-pointer.add-pulse:before {\n                border: 17px solid #cca92c;\n            }\n            @-webkit-keyframes pulse {\n                0% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                }\n                70% {\n                    -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                }\n                100% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                }\n            }\n            @keyframes pulse {\n            0% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n            }\n            70% {\n                -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n            }\n            100% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n            }\n        }<\/style><div id=\"master-container\" class=\"wpvr-master-container wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:; direction:ltr; \"><div id=\"pano27429\" class=\"pano-wrap pano-left pano27429\" style=\"width: 49%; border-radius:\"><div id=\"center-pointer27429\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano7429\" class=\"pano-wrap pano-right pano7429\" style=\"width: 100%;\"><div class=\"explainer\" id=\"explainer7429\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"7429\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"7429\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-pano7429\">\n            #pano7429 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano7429 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7429 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7429 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano7429 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano7429 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano7429 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano7429.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano7429.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano7429.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano7429.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano7429 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano7429 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano7429 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano7429\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"MusicRoom\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"MusicRoom\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_171124_582-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[{\"text\":\"1wlU6yfe\",\"pitch\":\" 3.63150994033244\",\"yaw\":\" -71.82265767474131\",\"type\":\"scene\",\"URL\":\"\",\"wpvr_url_open\":\"off\",\"clickHandlerArgs\":[],\"createTooltipArgs\":\"\",\"sceneId\":\"MusicRoom_MacLab\",\"hotspot_type\":\"scene\",\"hotspot_target\":\"notBlank\",\"hotspot_shape\":\"round\"}]},\"MusicRoom_MacLab\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_171111_973-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[{\"text\":\"CN0W83sJ\",\"pitch\":\" -5.59609443414254\",\"yaw\":\" 145.88400922087477\",\"type\":\"scene\",\"URL\":\"\",\"wpvr_url_open\":\"off\",\"clickHandlerArgs\":[],\"createTooltipArgs\":\"\",\"sceneId\":\"MusicRoom\",\"hotspot_type\":\"scene\",\"hotspot_target\":\"notBlank\",\"hotspot_shape\":\"round\"}]}}}];var scenes = response[1];function wpvrResolveDevicePanorama(scenesConfig) {    if (!scenesConfig || !scenesConfig.scenes) return;    var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent) || (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);    var isSmallScreen = (window.innerWidth <= 768);    if (typeof window.wpvrMaxTexture === \"undefined\") {        window.wpvrMaxTexture = 16384;        try {            var testCanvas = document.createElement(\"canvas\");            var gl = testCanvas.getContext(\"webgl\") || testCanvas.getContext(\"experimental-webgl\");            if (gl) {                window.wpvrMaxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE) || 16384;                var ext = gl.getExtension(\"WEBGL_lose_context\");                if (ext) { ext.loseContext(); }            }        } catch (e) {}    }    var maxTexture = window.wpvrMaxTexture;    for (var scId in scenesConfig.scenes) {        if (!scenesConfig.scenes.hasOwnProperty(scId)) continue;        var sc = scenesConfig.scenes[scId];        if (!sc) continue;        var exceedsGpu = sc.desktop_width && (sc.desktop_width > maxTexture);        if (isMobile || isSmallScreen || exceedsGpu) {            if (sc.mobile_panorama) {                sc.panorama = sc.mobile_panorama;            }        } else if (sc.desktop_panorama) {            sc.panorama = sc.desktop_panorama;        }    }}wpvrResolveDevicePanorama(scenes);if(scenes) {var scenedata = scenes.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx].type === \"info\") {    scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[hIdx].type === \"scene\") {    scenehotspot[hIdx][\"clickHandlerArgs\"] = scenehotspot[hIdx][\"text\"] || \"\";}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var panoshow7429;var panoshow27429;function initWPVRViewer7429() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer7429, 50); return; }panoshow7429 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow7429;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow7429 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow7429.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow7429.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer7429();var response_duplicate = [{\"panoid\":\"pano7429\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"MusicRoom\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"MusicRoom\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_171124_582-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[{\"text\":\"1wlU6yfe\",\"pitch\":\" 3.63150994033244\",\"yaw\":\" -71.82265767474131\",\"type\":\"scene\",\"URL\":\"\",\"wpvr_url_open\":\"off\",\"clickHandlerArgs\":[],\"createTooltipArgs\":\"\",\"sceneId\":\"MusicRoom_MacLab\",\"hotspot_type\":\"scene\",\"hotspot_target\":\"notBlank\",\"hotspot_shape\":\"round\"}]},\"MusicRoom_MacLab\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_171111_973-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[{\"text\":\"CN0W83sJ\",\"pitch\":\" -5.59609443414254\",\"yaw\":\" 145.88400922087477\",\"type\":\"scene\",\"URL\":\"\",\"wpvr_url_open\":\"off\",\"clickHandlerArgs\":[],\"createTooltipArgs\":\"\",\"sceneId\":\"MusicRoom\",\"hotspot_type\":\"scene\",\"hotspot_target\":\"notBlank\",\"hotspot_shape\":\"round\"}]}}}];var scenes_duplicate = response_duplicate[1];wpvrResolveDevicePanorama(scenes_duplicate);if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx][\"clickHandlerArgs\"] != \"\") {scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var vr_mode = \"off\";jQuery(\"#pano7429 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow7429.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow7429.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    const node = document.querySelector(\".add-pulse\");\n        panoshow7429.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow7429.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano27429 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano7429 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano27429 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano7429 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano7429\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls7429\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls7429\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow7429.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer7429 = null;\n                        var wpvrAutoRotateStopDelay7429 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate7429 = function () {\n                            clearTimeout(wpvrAutoRotateTimer7429);\n                            if (wpvrAutoRotateStopDelay7429 > 0) {\n                                wpvrAutoRotateTimer7429 = setTimeout(function () {\n                                    panoshow7429.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay7429);\n                            } else {\n                                wpvrAutoRotateTimer7429 = setTimeout(function () {\n                                    panoshow7429.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow7429.on(\"load\", wpvrScheduleAutoRotate7429);\n                        panoshow7429.on(\"scenechange\", wpvrScheduleAutoRotate7429);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot7429 = document.getElementById(\"pano7429\");\n            if (wpvrHotspotRoot7429) {\n                wpvrHotspotRoot7429.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    \/\/ Social share icons navigate independently using their own links and targets.\n                    if (hotspot.querySelector(\".wpvr-sticker-card--social-share\")) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_7429\",function() {\n                    jQuery(\"#explainer7429\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer7429\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano7429\",function(event) {\n        var isCross = event.target.closest(\".cross\");\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents-wrapper\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isCross != null){\n            return;\n        }\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide();\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_7429\",function() {\n                jQuery(\"#wpvr-floor-map7429\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map7429\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols7429\").hide();\n                      jQuery(\"#pano7429 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl7429\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide7429 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols7429\",function() {\n\t\t            if (slide7429 == \"up\") {\n\t\t              jQuery(\".vrgctrl7429\").empty();\n\t\t              jQuery(\".vrgctrl7429\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide7429 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl7429\").empty();\n\t\t              jQuery(\".vrgctrl7429\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide7429 = \"up\";\n\t\t            }\n                    jQuery(\"#pano7429 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols7429\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols7429\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols7429\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        if (pano_id == \"pano7429\") {\n                          jQuery(\"#pano7429\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano7429\").children(\".pnlm-ui\").remove();\n                          panoshow7429 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow7429;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow7429 }\n                          }));\n                          jQuery(\"#pano7429\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click to Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow7429.loadScene(\"MusicRoom\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano7429\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls7429\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls7429\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano7429\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano7429\").children(\".pnlm-ui\").remove();\n              panoshow7429 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow7429;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow7429 }\n              }));\n              setTimeout(function() {\n                      panoshow7429.loadScene(\"MusicRoom\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano7429\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls7429\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls7429\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano7429\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click to Load Panorama\")\n            jQuery(\"#pano7429 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano7429 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-pano7429\">\n            (function () {\n                var pano = document.getElementById(\"pano7429\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode ? firstNode.nodeType === 3 : false) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = Boolean(title ? title.textContent.trim() : false);\n                    var hasAuthor = Boolean(author ? author.textContent.trim() : false);\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">2\/F - STEAM Room \u5275\u85dd\u5be6\u9a57\u5ba4 \uff0f \u96fb\u8166\u5ba4<\/h3>\n\n\n<style>#pano7446 div.pnlm-orientation-button {\n                    display: none;\n                }\n            .wpvr-floor-map .floor-plan-pointer.add-pulse:before {\n                border: 17px solid #cca92c;\n            }\n            @-webkit-keyframes pulse {\n                0% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                }\n                70% {\n                    -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                }\n                100% {\n                    -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                }\n            }\n            @keyframes pulse {\n            0% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.7);\n            }\n            70% {\n                -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);\n            }\n            100% {\n                -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n                box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);\n            }\n        }<\/style><div id=\"master-container\" class=\"wpvr-master-container wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:; direction:ltr; \"><div id=\"pano27446\" class=\"pano-wrap pano-left pano27446\" style=\"width: 49%; border-radius:\"><div id=\"center-pointer27446\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano7446\" class=\"pano-wrap pano-right pano7446\" style=\"width: 100%;\"><div class=\"explainer\" id=\"explainer7446\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"7446\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"7446\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-pano7446\">\n            #pano7446 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano7446 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7446 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano7446 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano7446 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano7446 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano7446 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano7446.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano7446.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano7446.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano7446.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano7446 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano7446 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano7446 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano7446\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"mhtGaTTt\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"mhtGaTTt\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_171142_365-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes = response[1];function wpvrResolveDevicePanorama(scenesConfig) {    if (!scenesConfig || !scenesConfig.scenes) return;    var isMobile = \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent) || (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);    var isSmallScreen = (window.innerWidth <= 768);    if (typeof window.wpvrMaxTexture === \"undefined\") {        window.wpvrMaxTexture = 16384;        try {            var testCanvas = document.createElement(\"canvas\");            var gl = testCanvas.getContext(\"webgl\") || testCanvas.getContext(\"experimental-webgl\");            if (gl) {                window.wpvrMaxTexture = gl.getParameter(gl.MAX_TEXTURE_SIZE) || 16384;                var ext = gl.getExtension(\"WEBGL_lose_context\");                if (ext) { ext.loseContext(); }            }        } catch (e) {}    }    var maxTexture = window.wpvrMaxTexture;    for (var scId in scenesConfig.scenes) {        if (!scenesConfig.scenes.hasOwnProperty(scId)) continue;        var sc = scenesConfig.scenes[scId];        if (!sc) continue;        var exceedsGpu = sc.desktop_width && (sc.desktop_width > maxTexture);        if (isMobile || isSmallScreen || exceedsGpu) {            if (sc.mobile_panorama) {                sc.panorama = sc.mobile_panorama;            }        } else if (sc.desktop_panorama) {            sc.panorama = sc.desktop_panorama;        }    }}wpvrResolveDevicePanorama(scenes);if(scenes) {var scenedata = scenes.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx].type === \"info\") {    scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[hIdx].type === \"scene\") {    scenehotspot[hIdx][\"clickHandlerArgs\"] = scenehotspot[hIdx][\"text\"] || \"\";}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var panoshow7446;var panoshow27446;function initWPVRViewer7446() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer7446, 50); return; }panoshow7446 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow7446;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow7446 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow7446.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow7446.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer7446();var response_duplicate = [{\"panoid\":\"pano7446\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":false,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":true,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"mhtGaTTt\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"mhtGaTTt\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/www.cyma.edu.hk\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/IMG_20241115_171142_365-scaled.jpg\",\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes_duplicate = response_duplicate[1];wpvrResolveDevicePanorama(scenes_duplicate);if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var scId in scenedata) {if(!scenedata.hasOwnProperty(scId)) continue;var scenehotspot = scenedata[scId].hotSpots;if(scenehotspot && scenehotspot.length) {for(var hIdx = 0; hIdx < scenehotspot.length; hIdx++) {if(scenehotspot[hIdx][\"clickHandlerArgs\"] != \"\") {scenehotspot[hIdx][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[hIdx].hotspot_type === \"sticker\" || scenehotspot[hIdx].type === \"sticker\" || scenehotspot[hIdx].stickerTemplate) {    (function(hs) {        hs[\"createTooltipFunc\"] = function(div) {            if (typeof window.wpvrRenderStickerHotspot === \"function\") {                window.wpvrRenderStickerHotspot(div, hs);            }        };    })(scenehotspot[hIdx]);}else if(scenehotspot[hIdx][\"createTooltipArgs\"] != \"\") {    scenehotspot[hIdx][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}}var vr_mode = \"off\";jQuery(\"#pano7446 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow7446.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow7446.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    const node = document.querySelector(\".add-pulse\");\n        panoshow7446.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow7446.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano27446 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano7446 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano27446 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano7446 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano7446\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls7446\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls7446\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow7446.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer7446 = null;\n                        var wpvrAutoRotateStopDelay7446 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate7446 = function () {\n                            clearTimeout(wpvrAutoRotateTimer7446);\n                            if (wpvrAutoRotateStopDelay7446 > 0) {\n                                wpvrAutoRotateTimer7446 = setTimeout(function () {\n                                    panoshow7446.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay7446);\n                            } else {\n                                wpvrAutoRotateTimer7446 = setTimeout(function () {\n                                    panoshow7446.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow7446.on(\"load\", wpvrScheduleAutoRotate7446);\n                        panoshow7446.on(\"scenechange\", wpvrScheduleAutoRotate7446);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot7446 = document.getElementById(\"pano7446\");\n            if (wpvrHotspotRoot7446) {\n                wpvrHotspotRoot7446.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    \/\/ Social share icons navigate independently using their own links and targets.\n                    if (hotspot.querySelector(\".wpvr-sticker-card--social-share\")) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_7446\",function() {\n                    jQuery(\"#explainer7446\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer7446\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano7446\",function(event) {\n        var isCross = event.target.closest(\".cross\");\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents-wrapper\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isCross != null){\n            return;\n        }\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide();\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_7446\",function() {\n                jQuery(\"#wpvr-floor-map7446\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map7446\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols7446\").hide();\n                      jQuery(\"#pano7446 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl7446\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide7446 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols7446\",function() {\n\t\t            if (slide7446 == \"up\") {\n\t\t              jQuery(\".vrgctrl7446\").empty();\n\t\t              jQuery(\".vrgctrl7446\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide7446 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl7446\").empty();\n\t\t              jQuery(\".vrgctrl7446\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide7446 = \"up\";\n\t\t            }\n                    jQuery(\"#pano7446 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols7446\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols7446\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols7446\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        if (pano_id == \"pano7446\") {\n                          jQuery(\"#pano7446\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano7446\").children(\".pnlm-ui\").remove();\n                          panoshow7446 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow7446;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow7446 }\n                          }));\n                          jQuery(\"#pano7446\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow7446.loadScene(\"mhtGaTTt\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano7446\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls7446\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls7446\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano7446\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano7446\").children(\".pnlm-ui\").remove();\n              panoshow7446 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow7446;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow7446 }\n              }));\n              setTimeout(function() {\n                      panoshow7446.loadScene(\"mhtGaTTt\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano7446\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls7446\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls7446\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano7446\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n            jQuery(\"#pano7446 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano7446 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-pano7446\">\n            (function () {\n                var pano = document.getElementById(\"pano7446\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode ? firstNode.nodeType === 3 : false) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = Boolean(title ? title.textContent.trim() : false);\n                    var hasAuthor = Boolean(author ? author.textContent.trim() : false);\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"Shot by: 2C \u6587\u6d1b\u5ef7\u30012C \u9ec3\u6cbb\u8ed2 Equipment: Insta360 X4 G\/F &#038;#821 [&hellip;]","protected":false},"author":1,"featured_media":7,"parent":382,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"wp-custom-template-3","meta":{"ngg_post_thumbnail":0,"footnotes":""},"ppma_author":[418],"class_list":["post-384","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/pages\/384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/comments?post=384"}],"version-history":[{"count":2,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/pages\/384\/revisions"}],"predecessor-version":[{"id":7459,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/pages\/384\/revisions\/7459"}],"up":[{"embeddable":true,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/pages\/382"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/media\/7"}],"wp:attachment":[{"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/media?parent=384"}],"wp:term":[{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.cyma.edu.hk\/en\/wp-json\/wp\/v2\/ppma_author?post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}