window.firstImageLoaded = false; window.muted = true; // TODO: when change to javascript check URL param window.queryString = window.location.search; window.urlParams = new URLSearchParams(queryString); window.anaglyph = false; const anaglyphParam = urlParams.get('anaglyph'); if (anaglyphParam) { window.anaglyph = anaglyphParam === 'yes'; } window.photos = [{"filename":"img20260120112943907jpg-1768891298952.JPG","folder":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624","gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120112943907jpg-1768891298952.JPG","image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120112943907jpg-1768891298952.JPG","thumbnail_gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120112943907jpg-1768891298952.JPG","thumbnail_image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120112943907jpg-1768891298952.JPG","rotation":0,"photo_type":"360_mono","is_stereo":false,"sort_order":1,"status":"active","created_date":"2026-01-20T06:41:38.953Z","updated_date":"2026-01-20T06:41:38.953Z","version":"v3","resumable_upload_uri":"https://storage.googleapis.com/upload/storage/v1/b/orbix360-prod-images/o?name=users%2FStvQBn7UXrYdel0l2nQRHWnSKpf1%2F5964033503002624%2Fimg20260120112943907jpg-1768891298952.JPG&uploadType=resumable&upload_id=AJRbA5U1CCMxbW5RD7UXujrkM733nfP0ioYN6L_Zayk3y9bcocOCwK8jrGq28TZfzixZYT9Bcy4E2-gbG5LM7f2M1QDWNaDIzDO9pY0ws04Vbg","id":"6051798945103872","title":"Playground","has_anaglyph":false,"index":0},{"filename":"img20260120113517134jpg-1768891298757.JPG","folder":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624","gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113517134jpg-1768891298757.JPG","image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113517134jpg-1768891298757.JPG","thumbnail_gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113517134jpg-1768891298757.JPG","thumbnail_image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113517134jpg-1768891298757.JPG","rotation":0,"photo_type":"360_mono","is_stereo":false,"sort_order":2,"status":"active","created_date":"2026-01-20T06:41:38.758Z","updated_date":"2026-01-20T06:41:38.758Z","version":"v3","resumable_upload_uri":"https://storage.googleapis.com/upload/storage/v1/b/orbix360-prod-images/o?name=users%2FStvQBn7UXrYdel0l2nQRHWnSKpf1%2F5964033503002624%2Fimg20260120113517134jpg-1768891298757.JPG&uploadType=resumable&upload_id=AJRbA5X7ED4e9wwBbhvoF3vPUCiavFcpY6KPJqLpxohbLBceQ1MVY_0UFnibnEkolFijGn9ionh-MnoGvkklD8kH4GnyQo7nJtRz7rpLW_A1LQ","id":"4897831208878080","title":"Toddler Class","has_anaglyph":false,"index":1},{"filename":"img20260120113932498jpg-1768891298751.JPG","folder":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624","gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113932498jpg-1768891298751.JPG","image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113932498jpg-1768891298751.JPG","thumbnail_gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113932498jpg-1768891298751.JPG","thumbnail_image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113932498jpg-1768891298751.JPG","rotation":0,"photo_type":"360_mono","is_stereo":false,"sort_order":3,"status":"active","created_date":"2026-01-20T06:41:38.751Z","updated_date":"2026-01-20T06:41:38.751Z","version":"v3","resumable_upload_uri":"https://storage.googleapis.com/upload/storage/v1/b/orbix360-prod-images/o?name=users%2FStvQBn7UXrYdel0l2nQRHWnSKpf1%2F5964033503002624%2Fimg20260120113932498jpg-1768891298751.JPG&uploadType=resumable&upload_id=AJRbA5UX0sbQr4lF8YmCIRu3Vag_SZiJFF-o6BDLdOcA87NOKUYM9D1Z12FPy_QMEXkhUymZM5Gf1D1vdV_o86Vxdp7QNfOs4f2FyheUERc-lw","id":"5358825886449664","title":"Vertical Class","has_anaglyph":false,"index":2}]; console.log('num photos: ' + window.photos.length); window.photosMap = {"6051798945103872":{"filename":"img20260120112943907jpg-1768891298952.JPG","folder":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624","gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120112943907jpg-1768891298952.JPG","image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120112943907jpg-1768891298952.JPG","thumbnail_gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120112943907jpg-1768891298952.JPG","thumbnail_image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120112943907jpg-1768891298952.JPG","rotation":0,"photo_type":"360_mono","is_stereo":false,"sort_order":1,"status":"active","created_date":"2026-01-20T06:41:38.953Z","updated_date":"2026-01-20T06:41:38.953Z","version":"v3","resumable_upload_uri":"https://storage.googleapis.com/upload/storage/v1/b/orbix360-prod-images/o?name=users%2FStvQBn7UXrYdel0l2nQRHWnSKpf1%2F5964033503002624%2Fimg20260120112943907jpg-1768891298952.JPG&uploadType=resumable&upload_id=AJRbA5U1CCMxbW5RD7UXujrkM733nfP0ioYN6L_Zayk3y9bcocOCwK8jrGq28TZfzixZYT9Bcy4E2-gbG5LM7f2M1QDWNaDIzDO9pY0ws04Vbg","id":"6051798945103872","title":"Playground","has_anaglyph":false,"index":0},"4897831208878080":{"filename":"img20260120113517134jpg-1768891298757.JPG","folder":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624","gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113517134jpg-1768891298757.JPG","image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113517134jpg-1768891298757.JPG","thumbnail_gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113517134jpg-1768891298757.JPG","thumbnail_image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113517134jpg-1768891298757.JPG","rotation":0,"photo_type":"360_mono","is_stereo":false,"sort_order":2,"status":"active","created_date":"2026-01-20T06:41:38.758Z","updated_date":"2026-01-20T06:41:38.758Z","version":"v3","resumable_upload_uri":"https://storage.googleapis.com/upload/storage/v1/b/orbix360-prod-images/o?name=users%2FStvQBn7UXrYdel0l2nQRHWnSKpf1%2F5964033503002624%2Fimg20260120113517134jpg-1768891298757.JPG&uploadType=resumable&upload_id=AJRbA5X7ED4e9wwBbhvoF3vPUCiavFcpY6KPJqLpxohbLBceQ1MVY_0UFnibnEkolFijGn9ionh-MnoGvkklD8kH4GnyQo7nJtRz7rpLW_A1LQ","id":"4897831208878080","title":"Toddler Class","has_anaglyph":false,"index":1},"5358825886449664":{"filename":"img20260120113932498jpg-1768891298751.JPG","folder":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624","gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113932498jpg-1768891298751.JPG","image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/img20260120113932498jpg-1768891298751.JPG","thumbnail_gcs_filename":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113932498jpg-1768891298751.JPG","thumbnail_image_url":"/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120113932498jpg-1768891298751.JPG","rotation":0,"photo_type":"360_mono","is_stereo":false,"sort_order":3,"status":"active","created_date":"2026-01-20T06:41:38.751Z","updated_date":"2026-01-20T06:41:38.751Z","version":"v3","resumable_upload_uri":"https://storage.googleapis.com/upload/storage/v1/b/orbix360-prod-images/o?name=users%2FStvQBn7UXrYdel0l2nQRHWnSKpf1%2F5964033503002624%2Fimg20260120113932498jpg-1768891298751.JPG&uploadType=resumable&upload_id=AJRbA5UX0sbQr4lF8YmCIRu3Vag_SZiJFF-o6BDLdOcA87NOKUYM9D1Z12FPy_QMEXkhUymZM5Gf1D1vdV_o86Vxdp7QNfOs4f2FyheUERc-lw","id":"5358825886449664","title":"Vertical Class","has_anaglyph":false,"index":2}}; if (window.is_static) { window.photosRoot = 'https://images.orbix360.com'; // TODO: after we create all the local schema/template folders, change this to empty string window.pluginsRoot = 'plugins/'; } else { window.photosRoot = 'https://images.orbix360.com'; window.pluginsRoot = 'https://storage.googleapis.com/orbix360-prod-plugins/'; } window.minterUrl = 'https://minter.orbix360.com'; window.tourId = "5964033503002624"; window.tourUid = "StvQBn7UXrYdel0l2nQRHWnSKpf1"; window.isTourOwner = false; window.customUrl = "https://kiddy123.com/"; window.tourSlug = "montessori-anakku-mont-kiara"; window.template = '360_mono'; window.template_category = '360'; window.tourShortCode = "laS2bmGvS"; window.room = ''; window.mask = ''; window.current_image_index = 0; // todo: use photo object instead of correlated arrays window.nextImageToLoad = 1; window.photo_indexes = {}; window.im = false; window.photo_indexes['6051798945103872'] = 0; window.current_image_index = 0; window.current_image_id = 6051798945103872 window.photo_indexes['4897831208878080'] = 1; window.photo_indexes['5358825886449664'] = 2; window.current_info_hotspot = null; window.current_explore_page = 1; let savedCurrentExplorePage = window.localStorage.getItem('current_explore_page'); if (savedCurrentExplorePage) { window.current_explore_page = Number(savedCurrentExplorePage); } window.current_explore_filter = 'featured'; let savedCurrentExploreFilter = window.localStorage.getItem('current_explore_filter'); if (savedCurrentExploreFilter) { window.current_explore_filter = savedCurrentExploreFilter; } window.user_profile_image = '/images/profile-icon.png'; window.user_profile_name = 'Orbi-3310788280'; window.shortURLRoot = 'https://orbix360.com'; window.image_url = 'https://images.orbix360.com/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/thumb_img20260120112943907jpg-1768891298952.JPG.play.jpg'; window.image_url_root = 'https://images.orbix360.com'; window.cloudFunctionsRoot = 'https://us-central1-orbix360-prod.cloudfunctions.net'; window.timeSinceRestartRotation = 0; window.initialState = {"versionNumber":3,"autorotate":{"enabled":true},"orbs":[{"id":6051798945103872,"hotspots":[{"id":"hotspot_6051798945103872_4897831208878080","from":6051798945103872,"to":4897831208878080,"position":{"x":-0.9753488127028231,"y":-0.05413214367984573,"z":0.2139261661878178},"toTitle":"Toddler Class"},{"id":"hotspot_6051798945103872_5358825886449664","from":6051798945103872,"to":5358825886449664,"position":{"x":0.7480523655877183,"y":0.005561425669701649,"z":0.6636164019093704},"toTitle":"Vertical Class"}],"infoHotspots":[],"plugins":[{"pluginId":"4826070998056960","instanceId":"plugin_4826070998056960_1768891810672","instanceName":"Image","templateFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/template.html","schemaFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/schema.json","scriptFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/script.js","position":{"x":"0.1","y":"-0.9","z":"0.01"},"rotation":{"x":"-100","y":"65","z":"0"},"scale":{"x":"1","y":"1","z":"1"},"src":"https://storage.googleapis.com/orbix360-prod-assets/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/6051798945103872/plugin_4826070998056960_1768891810672/Montessori Anakku.png","width":3,"height":"3","visible":true,"shader":"flat","transparent":true,"opacity":"1.0","side":"front","repeat":"1 1","additional_components":""}]},{"id":4897831208878080,"hotspots":[{"id":"hotspot_4897831208878080_6051798945103872","from":4897831208878080,"to":6051798945103872,"position":{"x":0.2534659574149169,"y":-0.022448788377832457,"z":-0.9670837917844073},"toTitle":"Playground"}],"infoHotspots":[],"plugins":[{"pluginId":"4826070998056960","instanceId":"plugin_4826070998056960_1768891841720","instanceName":"Image","templateFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/template.html","schemaFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/schema.json","scriptFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/script.js","position":{"x":"0.1","y":"-0.9","z":"0.01"},"rotation":{"x":"-100","y":"65","z":"0"},"scale":{"x":"1","y":"1","z":"1"},"src":"https://storage.googleapis.com/orbix360-prod-assets/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/4897831208878080/plugin_4826070998056960_1768891841720/Montessori Anakku.png","width":3,"height":"3","visible":true,"shader":"flat","transparent":true,"opacity":"1.0","side":"front","repeat":"1 1","additional_components":""}]},{"id":5358825886449664,"hotspots":[{"id":"hotspot_5358825886449664_6051798945103872","from":5358825886449664,"to":6051798945103872,"position":{"x":-0.25200241668955237,"y":-0.004435051182613972,"z":-0.9677164420963575},"toTitle":"Playground"}],"infoHotspots":[],"plugins":[{"pluginId":"4826070998056960","instanceId":"plugin_4826070998056960_1768891867621","instanceName":"Image","templateFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/template.html","schemaFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/schema.json","scriptFilename":"users/sn4iLJyuI5Y6LMBmIQrqSelGxJK2/4826070998056960/v3/script.js","position":{"x":"0.1","y":"-0.9","z":"0.01"},"rotation":{"x":"-100","y":"65","z":"0"},"scale":{"x":"1","y":"1","z":"1"},"src":"https://storage.googleapis.com/orbix360-prod-assets/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/5964033503002624/5358825886449664/plugin_4826070998056960_1768891867621/Montessori Anakku.png","width":3,"height":"3","visible":true,"shader":"flat","transparent":true,"opacity":"1.0","side":"front","repeat":"1 1","additional_components":""}]}]}; window.brandingAllowed = true; window.upgradeCheckoutSessionStatus = ''; window.isUpgradeSubscriptionValid = false; window.isPro = (window.brandingAllowed || window.isUpgradeSubscriptionValid); // 029: free-plan limits from functions/common/plan_limits.js; read by // add_photos_dropzone.js (image cap, file size), which keeps fallbacks. window.planLimits = {"freeMaxMultiImageTours":2,"freeMaxSingleImageTours":-1,"freeMaxImagesPerTour":5,"freeMaxFileBytes":20000000,"multiImageLimitCutoffDate":"2026-10-01T00:00:00Z","freeMultiImageLimitEnabled":false}; window.nadirLogoURL = (window.brandingAllowed || isUpgradeSubscriptionValid) ? 'https://images.orbix360.com/users/StvQBn7UXrYdel0l2nQRHWnSKpf1/branding/nadir-1729253472432.png' : '/images/orbix_nadir.png'; window.editMode = false; // #325 feature flag: screen-space nav hotspot dock. Environment default from // app_config.NAV_DOCK_ENABLED; overridable per page load with ?navdock=on|off // (this script runs in the viewer page's context, so location.search is the // tour page's query string). Flag off = pre-#325 world-anchored nav hotspots. window.navDockEnabled = false; (function () { try { var navdock = new URLSearchParams(window.location.search).get('navdock'); if (navdock === 'on' || navdock === 'yes') { window.navDockEnabled = true; } else if (navdock === 'off' || navdock === 'no') { window.navDockEnabled = false; } } catch (e) { /* keep the environment default */ } })();