var iframe = document.getElementById("showcase_iframe");
iframe.addEventListener('load', showcaseLoader, true);
var initialVar = 0;
var moveTo;
var hrExists;
function showcaseLoader() {
try {
var showcase = window.MP_SDK.connect(
iframe, // Obtained earlier
'bc2c9f62713a42acba1d0a00d5b8c81c', // Your API key
'3.4' // SDK version you are using
// Use the latest version you can for your app
)
.then(function(mpSdk) {
// Model.Event.MODEL_LOADED
console.log("MATTERPORT SDK CONNECTED, YIPEEKAIEY");
loadedShowcaseHandler(mpSdk);
})
.catch(function(error) {
});
}
catch (e) {
console.error(e);
}
}
var userAgent = window.navigator.userAgent,
platform = window.navigator.platform,
macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],
windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],
iosPlatforms = ['iPhone', 'iPad', 'iPod'],
os = null;
if (macosPlatforms.indexOf(platform) !== -1) {
os = 'Mac OS';
} else if (iosPlatforms.indexOf(platform) !== -1) {
os = 'iOS';
} else if (windowsPlatforms.indexOf(platform) !== -1) {
os = 'Windows';
} else if (/Android/.test(userAgent)) {
os = 'Android';
} else if (!os && /Linux/.test(platform)) {
os = 'Linux';
}
var sPath= document.getElementById('postname').value;
if (document.getElementById('editmodel')){
var editmodel = document.getElementById('editmodel').value;
}
if (document.getElementById('version')){
var version = document.getElementById('version').value;
}
var noSign = false;
var listened = [];
var medialistened = [];
var videolistened = [];
var aVideolistened = [];
var gtlistened = [];
var initialPose = 0;
window.addEventListener('DOMContentLoaded', (event) => {
console.log("BUTTONS" + rb);
var startButton = document.getElementById('loader-cont');
if (typeof cssFg !== 'undefined') {
let root = document.documentElement;
root.style.setProperty('--cssForeground', "#" + cssFg);
root.style.setProperty('--cssBackground', "#" + cssBg);
root.style.setProperty('--cssTextColor', "#" + cssTxt);
}
modelExists = document.getElementById("model");
if (modelExists) {
var model = document.getElementById('model').value;
}
if (startButton) {
startButton.addEventListener('click', event => {
$('#loading-gui').addClass('collapsed');
$('#loading-background').addClass('collapsed');
$('#framecontainer').addClass('showing');
if($(document).height() <= 700) {
iframe.src = 'https://my.matterport.com/show/?m=' + model + '&play=1&' + newQuery + '&vr=0&mt=' + tagsdisable;
} else {
iframe.src = 'https://my.matterport.com/show/?m=' + model + '&play=1&' + newQuery + '&vr=0&mt=' + tagsdisable;
}
audio = new Audio();
audio.id = "audio";
audio.controls = true;
audio.src="https://boost3d.net/media/1sec.mp3";
audio.volume = 1;
audio.load();
audio.play();
if (os != "iOS" && os != "Mac OS"){
if('webkitAudioContext' in window) {
bgcontext = new webkitAudioContext();
} else {
bgcontext = new AudioContext();
}
source2 = bgcontext.createMediaElementSource(audio);
gainNode2 = bgcontext.createGain();
gainNode2.gain.setValueAtTime(0.001, bgcontext.currentTime);
source2.connect(gainNode2);
gainNode2.connect(bgcontext.destination);
if (typeof bgAudio !== 'undefined') {
if (!bgAudio == "") {
audioBG = new Audio("https://cors-anywhere.herokuapp.com/" + bgAudio);
audioBG.crossOrigin = "anonymous";
audioBG.play();
source = bgcontext.createMediaElementSource(audioBG);
gainNode = bgcontext.createGain();
gainNode.gain.setValueAtTime(0.3, bgcontext.currentTime);
source.connect(gainNode);
gainNode.connect(bgcontext.destination);
console.error("SOURCE CONNECTED");
audioBG.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, false);
}
}
} else {
$("#bgButtonHolder").css("display", "none");
}
});
} else {
var audioenable = document.getElementById('enableaudio');
if (audioenable) {
console.log("AUDIO PRIMED");
audioenable.addEventListener('click', event => {
audio= new Audio();
audio.id = "audio";
audio.controls = false;
audio.src="https://boost3d.net/media/1sec.mp3";
audio.load();
audio.play();
audioenable.setAttribute("hidden", true);
console.log("AUDIO ENABLED");
if (os != "iOS" && os != "Mac OS"){
if('webkitAudioContext' in window) {
bgcontext = new webkitAudioContext();
} else {
bgcontext = new AudioContext();
}
source2 = bgcontext.createMediaElementSource(audio);
gainNode2 = bgcontext.createGain();
gainNode2.gain.setValueAtTime(0.001, bgcontext.currentTime);
source2.connect(gainNode2);
gainNode2.connect(bgcontext.destination);
}
});
}
}
});
function loadedShowcaseHandler(mpSdk) {
mpSdk.Settings.get("highlight_reel")
.then(function(data) {
hrExists = data;
})
.catch(function(error) {
// Setting retrieval error.
});
mpSdk.on(mpSdk.Mode.Event.CHANGE_END, function(from, to){
moveTo = to;
});
if(initialVar == 0) {
if (moveTo == "function moveTo() { [native code] }") {
console.log("BUTTONS" + rb);
initialVar = 1;
if (rb != "0") {
$('#audiotoggle').addClass('showing').removeClass('collapsed');
$('#navHeader').addClass('showing').removeClass('collapsed');
$('#navdivider').addClass('showing').removeClass('collapsed');
$('#navDiv').addClass('showing').removeClass('collapsed');
$('#icon-right').removeAttr('hidden');
$('#icon-left').attr('hidden',true);
mpSdk.Camera.pose.subscribe(function (pose) {
from = "undefined";
to = pose.sweep;
audioplay(from, to);
mediaplay(from, to);
videoplay(from, to);
avideoplay(from, to);
});
}
}
}
var sPath= document.getElementById('postname').value;
if(sPath == "view"){
var voiceControl = document.getElementById('voiceControl').value;
if (annyang) {
if (os != "Mac OS" && os != "iOS" && os != "Android" && voiceControl =="1"){
console.log("Voice Control Requested");
console.log("Voice Control Starting");
// Let's define our first command. First the text we expect, and then the function it should call
commands = {
'forward': function() {
var dir = 'FORWARD';
mpSdk.Camera.moveInDirection(dir);
},
'left': function() {
var directions = {
'LEFT' : [-45, 0],
'RIGHT' : [ 45, 0],
'UP' : [0,20],
'DOWN' : [0,-20]
};
var dir = 'LEFT';
mpSdk.Camera.rotate(directions[dir][0], directions[dir][1]);
},
'right': function() {
var directions = {
'LEFT' : [-45, 0],
'RIGHT' : [ 45, 0],
'UP' : [0,20],
'DOWN' : [0,-20]
};
var dir = 'RIGHT';
mpSdk.Camera.rotate(directions[dir][0], directions[dir][1]);
},
'up': function() {
var directions = {
'LEFT' : [-45, 0],
'RIGHT' : [ 45, 0],
'UP' : [0,20],
'DOWN' : [0,-20]
};
var dir = 'UP';
mpSdk.Camera.rotate(directions[dir][0], directions[dir][1]);
},
'down': function() {
var directions = {
'LEFT' : [-45, 0],
'RIGHT' : [ 45, 0],
'UP' : [0,20],
'DOWN' : [0,-20]
};
var dir = 'DOWN';
mpSdk.Camera.rotate(directions[dir][0], directions[dir][1]);
},
'upstairs' : function(floor) {
mpSdk.Floor.getData()
.then(function(floors) {
mpSdk.Floor.moveTo(floors.currentFloor +1)
})
},
'downstairs' : function(floor) {
mpSdk.Floor.getData()
.then(function(floors) {
mpSdk.Floor.moveTo(floors.currentFloor -1)
})
},
'make me dizzy': function() {
var directions = {
'LEFT' : [-1800, 0],
'RIGHT' : [ 45, 0],
'UP' : [0,20],
'DOWN' : [0,-20]
};
var dir = 'LEFT';
mpSdk.Camera.rotate(directions[dir][0], directions[dir][1]);
},
'close media': function() {
closeFrame();
},
'music off' : function() {
document.getElementById("myonoffswitch").click();
},
'dollhouse' : function() {
mpSdk.Mode.moveTo("mode.dollhouse");
},
'floor plan' : function() {
mpSdk.Mode.moveTo("mode.floorplan");
},
'walkthrough' : function() {
mpSdk.Mode.moveTo("mode.inside");
},
'*buttonvalue' : function(buttonvalue) {
var jupper = buttonvalue.replace(/^\w/, c => c.toUpperCase());
var testbutton = jArray.indexOf(buttonvalue);
if( testbutton != -1) {
var sweepId = jArray[testbutton -2];
} else {
var testbutton = jArray.indexOf(jupper);
if( testbutton != -1) {
var sweepId = jArray[testbutton -2];
} else {
var testbutton = vArray.indexOf(buttonvalue);
if( testbutton != -1) {
var sweepId = vArray[testbutton -5];
} else {
var testbutton = vArray.indexOf(jupper);
if( testbutton != -1) {
var sweepId = vArray[testbutton -5];
} else {
var testbutton = mArray.indexOf(buttonvalue);
if( testbutton != -1) {
var sweepId = mArray[testbutton -4];
} else {
var testbutton = mArray.indexOf(jupper);
if( testbutton != -1) {
var sweepId = jArray[testbutton -4];
}
}
}
}
}
}
mpSdk.Sweep.moveTo(sweepId, {
rotation: 0,
transition: mpSdk.Sweep.Transition.INSTANT
});
}
}
annyang.addCommands(commands);
//Start listening. You can call this here, or attach this call to an event, button, etc.
annyang.start();
};
}
}
if(sPath == "tourbuilddev"){
}
mpSdk.Model.getDetails()
.then(function(model) {
modelData = model;
modelId = model.sid;
});
mpSdk.on(mpSdk.Camera.Event.MOVE, function(pose){
if(mpSdk.Camera.pose){
mpSdk.Camera.pose.subscribe(function (pose) {
// Changes to the Camera pose have occurred.
window.rotation = pose.rotation;
window.sweep = pose.sweep;
});
}
});
mpSdk.on(mpSdk.Sweep.Event.ENTER, function(from, to){
if(initialVar == 0) {
console.log("BUTTONS" + rb);
if (rb != "0") {
$('#audiotoggle').addClass('showing').removeClass('collapsed');
$('#navHeader').addClass('showing').removeClass('collapsed');
$('#navdivider').addClass('showing').removeClass('collapsed');
$('#navDiv').addClass('showing').removeClass('collapsed');
$('#icon-right').removeAttr('hidden');
$('#icon-left').attr('hidden',true);
initialVar = 1;
}
}
if (typeof ga !== 'undefined') {
ga('send', 'event', '' + "TIME ON SWEEP", from, window.totalSeconds);
}
window.totalSeconds = 0;
setInterval(setTime, 1000);
function setTime() {
++window.totalSeconds;
}
audioplay(from, to);
mediaplay(from, to);
videoplay(from, to);
avideoplay(from, to);
if (typeof ga !== 'undefined') {
ga('send', 'event', "SWEEP ENTERED", to, from );
// console.log(collect);
}
});
const transition = mpSdk.Sweep.Transition.INSTANT;
$('#audiotoggle').on('click', function() {
if ($('#navHeader').hasClass('showing')) {
$('#navHeader').addClass('collapsed').removeClass('showing');
$('#navdivider').addClass('collapsed').removeClass('showing');
$('#icon-left').removeAttr('hidden', true);
$('#icon-right').attr('hidden',true);
$('#navDiv').addClass('collapsed').removeClass('showing');
} else {
$('#navHeader').addClass('showing').removeClass('collapsed');
$('#navdivider').addClass('showing').removeClass('collapsed');
$('#navDiv').addClass('showing').removeClass('collapsed');
$('#icon-right').removeAttr('hidden');
$('#icon-left').attr('hidden',true);
}
});
$(document).on('click', ".movetoSweep", function () {
audio.pause();
var sweepId = ($(this).attr('data-val'));
var rotationId = JSON.parse(($(this).attr('data-rot')));
var isaVideoListened = aVideolistened.includes(sweepId);
if (isaVideoListened) {
var sweepPos = avArray.indexOf(sweepId);
var avideofile = avArray[sweepPos + 1];
aVideolistened.splice(avideofile, 1 );
aVideolistened.splice(sweepPos, 1 );
}
var isListened = listened.includes(sweepId);
if (isListened) {
var sweepPos = jArray.indexOf(sweepId);
var audiofile = jArray[sweepPos + 1];
listened.splice(sweepPos, 1 );
listened.splice(audiofile, 1 );
}
mpSdk.Sweep.moveTo(sweepId, {
rotation: rotationId,
transition: transition
});
});
$(document).on('click', ".movetoMediaSweep", function () {
audio.pause();
var sweepId = ($(this).attr('data-val'));
var rotationId = JSON.parse(($(this).attr('data-rot')));
var ismediaListened = medialistened.includes(sweepId);
if (ismediaListened) {
var sweepPos = mArray.indexOf(sweepId);
var mediafile = mArray[sweepPos + 1];
var mediatype = mArray[sweepPos + 2];
medialistened.splice(mediatype, 1 );
medialistened.splice(mediafile, 1 );
medialistened.splice(sweepPos, 1 );
}
var isaVideoListened = aVideolistened.includes(sweepId);
if (isaVideoListened) {
var sweepPos = avArray.indexOf(sweepId);
var avideofile = avArray[sweepPos + 1];
aVideolistened.splice(avideofile, 1 );
aVideolistened.splice(sweepPos, 1 );
}
var isListened = listened.includes(sweepId);
if (isListened) {
var sweepPos = jArray.indexOf(sweepId);
var audiofile = jArray[sweepPos + 1];
listened.splice(sweepPos, 1 );
listened.splice(audiofile, 1 );
}
mpSdk.Sweep.moveTo(sweepId, {
rotation: rotationId,
transition: transition
});
});
$(document).on('click', ".movetoVideoSweep", function () {
audio.pause();
var sweepId = ($(this).attr('data-val'));
var rotationId = JSON.parse(($(this).attr('data-rot')));
var isvideoListened = videolistened.includes(sweepId);
if (isvideoListened) {
var sweepPos = vArray.indexOf(sweepId);
var videofile = vArray[sweepPos + 1];
videolistened.splice(videofile, 1 );
videolistened.splice(sweepPos, 1 );
}
var isaVideoListened = aVideolistened.includes(sweepId);
if (isaVideoListened) {
var sweepPos = avArray.indexOf(sweepId);
var avideofile = avArray[sweepPos + 1];
aVideolistened.splice(avideofile, 1 );
aVideolistened.splice(sweepPos, 1 );
}
var isListened = listened.includes(sweepId);
if (isListened) {
var sweepPos = jArray.indexOf(sweepId);
var audiofile = jArray[sweepPos + 1];
listened.splice(sweepPos, 1 );
listened.splice(audiofile, 1 );
}
mpSdk.Sweep.moveTo(sweepId, {
rotation: rotationId,
transition: transition
});
});
var guidedTour = 0;
var sweepNumber = 0;
var rotNumber = 1;
$("#guidedTour").on('click', function() {
if (guidedTour == 0) {
guidedtour = 1;
if (typeof vtArray !== 'undefined') {
var vtsweeps = vtArray;
var vtsweepsLength = vtsweeps.length;
$("#audio").on('ended', function() {
if (sweepNumber < vtsweepsLength) {
sweepNumber = sweepNumber + 2;
rotNumber = rotNumber + 2;
var sweepId = vtsweeps[sweepNumber];
var rotId = JSON.parse(vtsweeps[rotNumber]);
mpSdk.Sweep.moveTo(sweepId, {
rotation: rotId,
transition: mpSdk.Sweep.Transition.FADE
});
}
})
}
} else {
guidedTour = 0;
}
});
function audioplay(from, to){
if (typeof audio !== 'undefined') {
var audiogen = 0;
var audio1 = 0;
var firstaudio=0;
if (typeof jArray !== 'undefined') {
var sweeps = jArray;
}
var isListened = listened.includes(to);
if (!isListened) {
var isPresent = jArray.includes(to);
if (isPresent) {
if (document.getElementById("mediaframe")) {
closeFrame();
}
var sweepPos = jArray.indexOf(to);
var audiofile = jArray[sweepPos + 1];
if (audio1 ==0){
document.getElementById('audioplayer').appendChild(audio);
}
if (audiogen ==0){
audio.crossOrigin = "anonymous";
audio.src = audiofile;
audio.type='audio/mpeg';
audio.controls = false;
audio.load();
document.getElementById("audio-play").setAttribute("hidden", true);
document.getElementById("audio-pause").removeAttribute("hidden");
$(document).on('click', "#audio-pause", function () {
audio.pause();
document.getElementById("audio-play").removeAttribute("hidden");
document.getElementById("audio-pause").setAttribute("hidden", true);
});
$(document).on('click', "#audio-play", function () {
audio.play();
document.getElementById("audio-pause").removeAttribute("hidden");
document.getElementById("audio-play").setAttribute("hidden", true);
});
if(annyang) {
if (os != "Mac OS" && os != "iOS" && os != "Android" && voiceControl == "1"){
annyang.pause();
}
}
if (os != "iOS" && os != "Mac OS"){
if (typeof gainNode !== 'undefined') {
gainNode.gain.setTargetAtTime(0.1, bgcontext.currentTime, 1);
}
gainNode2.gain.setTargetAtTime(0.8, bgcontext.currentTime, 0.5);
console.log("volume up");
}
var playPromise = audio.play();
if (playPromise !== undefined) {
playPromise.then(_ => {
// Automatic playback started!
// Show playing UI.
})
.catch(error => {
// Auto-play was prevented
// Show paused UI.
console.log(error);
});
}
if (modelExists){
if (window.audioOverride ==1) {
audio1 = 0;
audiogen = 0;
} else {
audio1 = 1;
audiogen = 1;
}
window.audioOverride = 0;
listened.push(to);
}
audio.onended = function(){
document.getElementById("audio-play").setAttribute("hidden", true);
document.getElementById("audio-pause").setAttribute("hidden", true);
if (os != "iOS" && os != "Mac OS"){
if (typeof gainNode !== 'undefined') {
gainNode.gain.setTargetAtTime(0.3, bgcontext.currentTime, 2);
}
gainNode2.gain.setValueAtTime(0.01, bgcontext.currentTime);
console.log("volume up");
}
audio.controls=false;
audiogen = 0;
if(annyang){
if (os != "Mac OS" && os != "iOS" && os != "Android" && voiceControl == "1"){
annyang.start();
}
};
}
}
}
}
goAnnyang = "go";
}
}
function mediaplay (from, to) {
if (typeof mArray !== 'undefined') {
var mediasweeps = mArray;
}
var isMediaListened = medialistened.includes(to);
if (!isMediaListened) {
var isMediaPresent = mArray.includes(to);
if (isMediaPresent) {
if(annyang) {
if (os != "Mac OS" && os != "iOS" && os != "Android" && voiceControl == "1"){
annyang.pause();
}
}
console.log("Media Started");
var sweepPos = mArray.indexOf(to);
var mediafile = mArray[sweepPos + 1];
var mediatype = mArray[sweepPos + 2];
var mediatitle = mArray[sweepPos + 4];
var eid = mArray[sweepPos + 3];
if (!document.getElementById("mediaframe")) {
mediaframe = document.createElement('iframe');
mediaframe.setAttribute('id', 'mediaframe');
mediaframe.setAttribute('width', '100%');
mediaframe.setAttribute('height', '100%');
mediaframe.setAttribute("scrolling", "yes");
mediaframe.setAttribute("allow", "autoplay");
mediaframe.setAttribute("playsinline", true);
} else {
mediaframe = document.getElementById("mediaframe");
}
if (mediatype == "stmedia") {
embedlink = "https://boost3d.net/frameembed?eid=" + eid;
}
if (mediatype == "360 IMAGE") {
embedlink = "https://boost3d.net/360imageembed?eid=" + mediafile;
}
mediaframe.setAttribute('src', embedlink);
document.getElementById('mediaholder').appendChild(mediaframe);
document.getElementById('mediaTitle').innerHTML = mediatitle;
if (typeof gainNode !== 'undefined') {
if (os != "iOS" && os != "Mac OS"){
gainNode.gain.setTargetAtTime(0.1, bgcontext.currentTime, 1);
gainNode2.gain.setTargetAtTime(0.8, bgcontext.currentTime, 0.5);
}
}
$('#popupframe').addClass('showing').removeClass('hidden');
$('#mediaholder').addClass('showing').removeClass('hidden');
medialistened.push(to);
// Move successful.
}
}
}
function videoplay (from, to) {
if (typeof vArray !== 'undefined') {
var videosweeps = vArray;
}
var isVideoListened = videolistened.includes(to);
if (!isVideoListened) {
var isVideoPresent = vArray.includes(to);
if (isVideoPresent) {
console.log("Video Started");
var sweepPos = vArray.indexOf(to);
var videofile = vArray[sweepPos + 1];
embedlink = videofile;
var videotitle = vArray[sweepPos + 2];
var videomute = vArray[sweepPos + 3];
var tsovid = vArray[sweepPos + 4];
if (annyang) {
if (os != "Mac OS" && os != "iOS" && os != 'Android' && voiceControl == "1"){
annyang.pause();
}
}
if (!document.getElementById("mediaframe")) {
mediaframe = document.createElement('iframe');
mediaframe.setAttribute('id', 'mediaframe');
mediaframe.setAttribute('width', '100%');
mediaframe.setAttribute('height', '100%');
mediaframe.setAttribute("scrolling", "yes");
mediaframe.setAttribute("allow", "autoplay");
mediaframe.setAttribute("playsinline", true);
} else {
mediaframe = document.getElementById("mediaframe");
}
if (tsovid == "yes"){
if (videomute == "yes"){
mediaframe.setAttribute('src', "https://boost3d.net/360videoembed?eid=" + embedlink + "&muted=true");
mediaframe.muted = true;
} else {
mediaframe.setAttribute('src', "https://boost3d.net/360videoembed?eid=" + embedlink);
}
} else {
if (videomute == "yes"){
mediaframe.setAttribute('src', "https://boost3d.net/videoembed?embedurl=" + embedlink + "&muted=true");
mediaframe.muted = true;
if (os != "iOS" && os != "Mac OS"){
gainNode2.gain.setValueAtTime(0.8, bgcontext.currentTime, 0.6);
}
} else {
mediaframe.setAttribute('src', "https://boost3d.net/videoembed?embedurl=" + embedlink);
//if (os != "iOS" && os != "Mac OS"){
//gainNode3.gain.setValueAtTime(0.8, bgcontext.currentTime, 0.6);
//}
}
}
if (typeof gainNode !== 'undefined') {
if (os != "iOS" && os != "Mac OS"){
gainNode.gain.setTargetAtTime(0.1, bgcontext.currentTime, 1);
}
}
document.getElementById('mediaholder').appendChild(mediaframe);
document.getElementById('mediaTitle').innerHTML = videotitle;
$('#popupframe').addClass('showing').removeClass('hidden');
$('#mediaholder').addClass('showing').removeClass('hidden');
videolistened.push(to);
// Move successful.
}
}
}
function avideoplay (from, to) {
if (typeof noSign !== 'undefined') {
if (noSign == false){
if (typeof avArray !== 'undefined') {
var avideosweeps = avArray;
var isaVideoListened = aVideolistened.includes(to);
if (!isaVideoListened) {
var isaVideoPresent = avArray.includes(to);
if (isaVideoPresent) {
console.log("Video Started");
var sweepPos = avArray.indexOf(to);
var avideofile = avArray[sweepPos + 1];
embedlink = avideofile;
var avideotitle = avArray[sweepPos + 2];
var avideomute = avArray[sweepPos + 3];
accessvideoframe = document.createElement('video');
accessvideoframe.setAttribute('id', 'accessvideoframe');
accessvideoframe.setAttribute('width', '100%');
accessvideoframe.setAttribute('height', '100%');
accessvideoframe.setAttribute("controls", false);
accessvideoframe.crossOrigin = "anonymous"
accessvideoframe.setAttribute('src', embedlink);
accessvideoframe.setAttribute("type", "video/mp4");
accessvideoframe.setAttribute("playsinline", "");
accessvideoframe.muted = true;
accessvideoframe.play();
document.getElementById('accessmediaholder').appendChild(accessvideoframe);
document.getElementById('accessmediaTitle').innerHTML = avideotitle;
$('#accesspopupframe').addClass('showing').removeClass('hidden');
$('#accessmediaholder').addClass('showing').removeClass('hidden');
aVideolistened.push(to);
// Move successful.
}
}
}
}
}
}
}
window.addEventListener('DOMContentLoaded', (event) => {
recordButton = document.getElementById('record');
linkButton = document.getElementById("linkAudio");
hPara = document.getElementById("hPara");
list = document.getElementById('recordings');
//webkitURL is deprecated but nevertheless
URL = window.URL || window.webkitURL;
var gumStream; //stream from getUserMedia()
var recorder; //WebAudioRecorder object
var input; //MediaStreamAudioSourceNode we'll be recording
var encodingType; //holds selected encoding for resulting audio (file)
encodeAfterRecord = true; // when to encode
// shim for AudioContext when it's not avb.
var encodingTypeSelect = "mp3";
if(recordButton) {
linkButton.getAttribute('hidden');
linkButton.removeAttribute('hidden');
linkButton.addEventListener("click", insertAudioLink);
recordButton.getAttribute('hidden');
recordButton.removeAttribute('hidden');
recordButton.addEventListener("click", startRecording);
}
});
function insertAudioLink() {
document.getElementById("audioLinkHolder").removeAttribute('hidden');
linkButton.setAttribute('hidden', true);
recordButton.setAttribute('hidden', true);
hPara.setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("audioLinkSubmit").addEventListener("click", linkUpload);
}
function linkUpload() {
files = document.getElementById('audioLink').files;
for (let i = 0; i < files.length; i++) {
let file = files[i]
fetch(`https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/blobhandle.php`, {method:"POST", body:file})
.then(response => {
if (response.ok)
return response;
console.log("Audio Handled in Memory");
})
.then(response => {
var blobData = new FormData();
blobData.append('dirpath', document.getElementById('directoryName').value);
blobData.append('editmodel', document.getElementById('editmodel').value);
blobData.append('version', document.getElementById('version').value);
var blobrequest = new XMLHttpRequest();
blobrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/upload.php');
blobrequest.send(blobData);
console.log("Audio Uploaded");
blobrequest.onreadystatechange = function(){
if (blobrequest.readyState === 4){
if (blobrequest.status === 200){
var formData = new FormData();
formData.append('dirpath', document.getElementById('directoryName').value);
formData.append('editmodel', document.getElementById('editmodel').value);
formData.append('version', document.getElementById('version').value);
formData.append('title', document.getElementById('title').value);
formData.append('subSelect', document.getElementById('subSelect').value);
formData.append('audioSelect', document.getElementById('audioSelect').value);
formData.append('voiceControl', document.getElementById('voiceControl').value);
formData.append('sweep', window.sweep);
formData.append('rotation', JSON.stringify(rotation));
var checkBox = document.getElementById('requirebutton');
formData.append('button', document.getElementById('buttonValue').value);
formData.append('note', "");
var request = new XMLHttpRequest();
request.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/dbupdate.php');
request.setRequestHeader("Cache-Control", "no-cache");
request.send(formData);
request.onreadystatechange = function(){
if (request.readyState === 4){
if (request.status === 200){
console.log("Database Updated");
$(".ssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("ssMsg").getAttribute("hidden");
document.getElementById("ssMsg").removeAttribute("hidden");
document.getElementById('audioLink').value = '';
linkButton.removeAttribute('hidden');
recordButton.removeAttribute('hidden');
hPara.removeAttribute('hidden');
document.getElementById("audioLinkHolder").setAttribute('hidden', true);
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentpoints.php?model=" + editmodel + "&version=" + version;
setTimeout(function(){
$(".existingRow").load(refreshpoints);
}, 2000);
console.log("Links Refreshed");
}
}
};
}
}
};
});
}
}
function startRecording() {
linkButton.setAttribute("hidden", true);
hPara.setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
recordButton.innerText = 'Stop';
recordButton.removeEventListener("click", startRecording);
recordButton.addEventListener("click", stopRecording);
var constraints = { audio: {echoCancellation: true, noiseSurpression:true}, video:false };
navigator.mediaDevices.getUserMedia(constraints).then(function(stream) {
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext; //new audio context to help us record
if (os === "iOS" || os === "Mac OS"){
context = new AudioContext({sampleRate: 48000});
} else {
context = new AudioContext({sampleRate: 44100});
}
var timeLeft = 90;
//assign to gumStream for later use
gumStream = stream;
/* use the stream */
input = context.createMediaStreamSource(gumStream);
//stop the input from playing back through the speakers
//input.connect(audioContext.destination)
//get the encoding
encodingType = encodingTypeSelect.value;
//disable the encoding selector
encodingTypeSelect.disabled = true;
recorder = new WebAudioRecorder(input, {
workerDir: "js/", // must end with slash
encoding: encodingType,
numChannels:2, //2 is the default, mp3 encoding supports only 2
onEncoderLoading: function(recorder, encoding) {
//show "loading encoder..." display
console.log("Loading "+encoding+" encoder...");
},
onEncoderLoaded: function(recorder, encoding) {
// hide "loading encoder..." display
console.log("encoder loaded");
}
});
if (os === "iOS" || os === "Mac OS"){
var br = 96;
} else {
var br = 192;
}
recorder.setOptions({
timeLimit: 90,
encodeAfterRecord: encodeAfterRecord,
ogg: {
quality: 0.5
},
mp3: {
bitRate: br
}
});
recorder.startRecording();
console.error("Recording started");
var timeLeft = 90;
clockelem = document.getElementById('countdown');
timerId = setInterval(countdown, 1000);
clockelem.getAttribute("hidden");
clockelem.removeAttribute("hidden");
function countdown() {
if (timeLeft == -1) {
clearTimeout(timerId);
timerId = null;
recordButton.click();
clockelem.setAttribute("hidden", true);
} else {
if (recorder.state === 'inactive'){
clearTimeout(timerId);
clockelem.setAttribute("hidden", true);
timerId=null;
} else {
clockelem.innerHTML = timeLeft + ' seconds remaining';
timeLeft--;
}
}
}
recorder.onComplete = function(recorder, blob) {
console.log("encoding complete");
const blobUrl = URL.createObjectURL(blob);
const li = document.createElement('li');
li.className = "inputListItem";
const audio1 = document.createElement('audio');
const upload = document.createElement('BUTTON');
upload.className = "inputListButton";
const deleteButton = document.createElement('BUTTON');
deleteButton.className = "inputListButton";
upload.innerHTML = "UPLOAD";
deleteButton.innerHTML = "DISCARD";
audio1.setAttribute('src', blobUrl);
audio1.setAttribute('controls', 'controls');
li.appendChild(audio1);
li.appendChild(upload);
li.appendChild(deleteButton);
list.appendChild(li);
deleteButton.addEventListener('click', async () => {
tbnavDiv.setAttribute('hidden', true);
upload.setAttribute('hidden', true);
deleteButton.setAttribute('hidden', true);
document.getElementById("ssMsg").getAttribute("hidden");
document.getElementById("ssMsg").removeAttribute("hidden");
document.getElementById('audioLink').value = '';
linkButton.removeAttribute('hidden');
recordButton.removeAttribute('hidden');
hPara.removeAttribute('hidden');
document.getElementById("audioLinkHolder").setAttribute('hidden', true);
audio1.setAttribute('hidden', true);
clearTimeout(timerId);
timerId = null;
});
upload.addEventListener('click', async () => {
tbnavDiv.setAttribute('hidden', true);
upload.setAttribute('hidden', true);
deleteButton.setAttribute('hidden', true);
recordButton.getAttribute('hidden');
recordButton.removeAttribute('hidden');
audio1.setAttribute('hidden', true);
fetch(`https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/blobhandle.php`, {method:"POST", body:blob})
.then(response => {
if (response.ok)
return response;
console.log("Audio Handled in Memory");
})
.then(response => {
var blobData = new FormData();
blobData.append('dirpath', document.getElementById('directoryName').value);
blobData.append('editmodel', document.getElementById('editmodel').value);
blobData.append('version', document.getElementById('version').value);
var blobrequest = new XMLHttpRequest();
blobrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/upload.php');
blobrequest.send(blobData);
console.log("Audio Uploaded");
blobrequest.onreadystatechange = function(){
if (blobrequest.readyState === 4){
if (blobrequest.status === 200){
var formData = new FormData();
formData.append('dirpath', document.getElementById('directoryName').value);
formData.append('editmodel', document.getElementById('editmodel').value);
formData.append('version', document.getElementById('version').value);
formData.append('title', document.getElementById('title').value);
formData.append('subSelect', document.getElementById('subSelect').value);
formData.append('audioSelect', document.getElementById('audioSelect').value);
formData.append('voiceControl', document.getElementById('voiceControl').value);
formData.append('sweep', window.sweep);
formData.append('rotation', JSON.stringify(rotation));
var checkBox = document.getElementById('requirebutton');
formData.append('button', document.getElementById('buttonValue').value);
formData.append('note', "");
var request = new XMLHttpRequest();
request.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/dbupdate.php');
request.setRequestHeader("Cache-Control", "no-cache");
request.send(formData);
request.onreadystatechange = function(){
if (request.readyState === 4){
if (request.status === 200){
console.log("Database Updated");
$(".ssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("ssMsg").getAttribute("hidden");
document.getElementById("ssMsg").removeAttribute("hidden");
document.getElementsByTagName("li").innerHTML = "";
document.getElementById("buttonValue").value = '';
linkButton.removeAttribute('hidden');
hPara.removeAttribute('hidden');
gumStream.getTracks().forEach(function(track) {
track.stop();
});
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentpoints.php?model=" + editmodel + "&version=" + version;
setTimeout(function(){
$(".existingRow").load(refreshpoints);
}, 2000);
console.log("Links Refreshed");
clearTimeout(timerId);
timerId=null;
}
}
};
}
}
};
});
});
};
console.log("Encoding complete");
});
}
function renderError(message) {
const main = document.querySelector('main');
main.innerHTML = `
`;
}
function renderError(message) {
const main = document.querySelector('main');
main.innerHTML = ``;
}
function stopRecording() {
recordButton.removeEventListener("click", stopRecording);
recordButton.addEventListener("click", startRecording);
recordButton.innerText = 'Record';
recordButton.setAttribute("hidden", true);
clockelem.setAttribute("hidden", true);
tbnavDiv.getAttribute('hidden');
tbnavDiv.removeAttribute('hidden');
console.log("Stop Recording Request Detected");
//stop microphone access
gumStream.getAudioTracks()[0].stop();
//disable the stop button
//stopButton.disabled = true;
//recordButton.disabled = false;
//tell the recorder to finish the recording (stop recording + encode the recorded audio)
recorder.finishRecording();
console.log('Recording stopped');
}
$(document).on('click', "#shareLink", function () {
var model = $(this).attr('data-mod');
var version = $(this).attr('data-ver');
bPopup = $('#linkPopup').bPopup({
contentContainer:'.linkContent',
loadUrl: "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/sharelink.php?model=" + model + "&version=" + version //Uses jQuery.load()
});
$(document).on('click', "#linkPopup .close", function () {
bPopup.close();
});
});
$(document).on('click', "#shareEmbed", function () {
var model = $(this).attr('data-mod');
var version = $(this).attr('data-ver');
bPopup2 = $('#embedPopup').bPopup({
contentContainer:'.embedContent',
loadUrl: "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/shareembed.php?model=" + model + "&version=" + version //Uses jQuery.load()
});
$(document).on('click', "#embedPopup .close", function () {
bPopup2.close();
});
});
$(document).on('click', "#linkVideo", function () {
document.getElementById("linkVideo").setAttribute("hidden", true);
document.getElementById("vhPara").setAttribute("hidden", true);
vidtbnavDiv.removeAttribute('hidden');
$('#vidtbnavDiv').addClass("linkclass");
document.getElementById("vidLinkHolder").removeAttribute("hidden");
document.getElementById("linkVideoSubmit").removeAttribute("hidden");
document.getElementById("360VideoHolder").removeAttribute("hidden");
document.getElementById("vidLinkSubmit").removeAttribute("hidden");
document.getElementById("vrecord").setAttribute("hidden", true);
document.getElementById("linkVideoSubmit").addEventListener('click', async () => {
var vulformData = new FormData();
vulformData.append('editmodel', document.getElementById('editmodel').value);
vulformData.append('version', document.getElementById('version').value);
vulformData.append('title', document.getElementById('title').value);
vulformData.append('video_title', document.getElementById('vidtitle').value);
vulformData.append('video', "https://cors-anywhere.herokuapp.com/" + document.getElementById('vidLink').value);
var checkMute = document.getElementById("muteVideo").checked;
if (checkMute == true){
vulformData.append('mutevid', "yes");
} else {
vulformData.append('mutevid', "no");
}
var is360 = document.getElementById("360Video").checked;
if (is360 == true){
vulformData.append('360vid', "yes");
} else {
vulformData.append('360vid', "no");
}
var accessVid = document.getElementById("accessVideo").checked;
if (accessVid == true){
vulformData.append('accessvid', "yes");
} else {
vulformData.append('accessvid', "no");
}
vulformData.append('sweep', window.sweep);
vulformData.append('rotation', JSON.stringify(rotation));
vulformData.append('button', document.getElementById('vidbuttonValue').value);
var vulrequest = new XMLHttpRequest();
vulrequest.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with upload progress
console.log(percentComplete);
}
}, false);
vulrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/vidlinkupload.php');
vulrequest.setRequestHeader("Cache-Control", "no-cache");
vulrequest.send(vulformData);
vulrequest.onreadystatechange = function(){
if (vulrequest.readyState === 4){
if (vulrequest.status === 200){
console.log("Database Updated");
$(".vidssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("vidssMsg").getAttribute("hidden");
document.getElementById("vidssMsg").removeAttribute("hidden");
document.getElementsByTagName("li").innerHTML = "";
document.getElementById("vidbuttonValue").value = '';
document.getElementById('vidLink').value = '';
document.getElementById('vidtitle').value = '';
document.getElementById('muteVideo').checked = false;
document.getElementById('360Video').checked = false;
document.getElementById("vrecord").removeAttribute("hidden");
document.getElementById("vhPara").removeAttribute("hidden");
document.getElementById("linkVideo").removeAttribute("hidden");
document.getElementById("vidtbnavDiv").setAttribute("hidden", true);
document.getElementById("linkVideoSubmit").setAttribute("hidden", true);
var editmodel = document.getElementById('editmodel').value;
var version = document.getElementById('version').value;
var refreshvidpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentvidpoints.php?model=" + editmodel + "&version=" + version;
var refreshavidpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentavidpoints.php?model=" + editmodel + "&version=" + version;
setTimeout(function(){
$("#existingVidRow").load(refreshvidpoints);
$("#existingaVidRow").load(refreshavidpoints);
}, 2000);
console.log("Links Refreshed");
document.getElementById("vidssMsg").setAttribute("hidden", true);
}
}
};
});
});
$(document).on('click', "#copyShare", function () {
var copyText = document.getElementById("myShareLink");
copyText.select();
copyText.setSelectionRange(0, 99999);
document.execCommand("copy");
alert("Link Copied");
bPopup.close();
});
$(document).on('click', "#embedCopyShare", function () {
var copyText = document.getElementById("myShareEmbed");
copyText.select();
copyText.setSelectionRange(0, 99999);
document.execCommand("copy");
alert("Embed Code Copied");
bPopup2.close();
});
$(document).on('click', ".deleteExisting", function () {
var delSweepId = ($(this).attr('data-swe'));
var delModelId = ($(this).attr('data-mod'));
var delVersionId = ($(this).attr('data-ver'));
var delData = new FormData();
delData.append('sweep', delSweepId);
delData.append('model', delModelId);
delData.append('version', delVersionId);
var delrequest = new XMLHttpRequest();
delrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/audiosweepdelete.php');
delrequest.send(delData);
delrequest.onreadystatechange = function(){
if (delrequest.readyState === 4){
if (delrequest.status === 200){
$(".ssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentpoints.php?model=" + delModelId + "&version=" + delVersionId;
setTimeout(function(){
$(".existingRow").load(refreshpoints);
}, 2000);
}
}
};
});
$(document).on('click', ".deleteExistingMedia", function () {
var delSweepId = ($(this).attr('data-swe'));
var delModelId = ($(this).attr('data-mod'));
var delVersionId = ($(this).attr('data-ver'));
var delData = new FormData();
delData.append('sweep', delSweepId);
delData.append('model', delModelId);
delData.append('version', delVersionId);
var delrequest = new XMLHttpRequest();
delrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/mediasweepdelete.php');
delrequest.send(delData);
delrequest.onreadystatechange = function(){
if (delrequest.readyState === 4){
if (delrequest.status === 200){
$(".ssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentmediapoints.php?model=" + delModelId + "&version=" + delVersionId;
setTimeout(function(){
$("#existingMediaRow").load(refreshpoints);
}, 2000);
}
}
};
});
$(document).on('click', ".deleteExistingVid", function () {
var delSweepId = ($(this).attr('data-swe'));
var delModelId = ($(this).attr('data-mod'));
var delVersionId = ($(this).attr('data-ver'));
var delData = new FormData();
delData.append('sweep', delSweepId);
delData.append('model', delModelId);
delData.append('version', delVersionId);
var delrequest = new XMLHttpRequest();
delrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/videosweepdelete.php');
delrequest.send(delData);
delrequest.onreadystatechange = function(){
if (delrequest.readyState === 4){
if (delrequest.status === 200){
$(".ssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentvidpoints.php?model=" + delModelId + "&version=" + delVersionId;
setTimeout(function(){
$("#existingVidRow").load(refreshpoints);
}, 2000);
}
}
};
});
$(document).on('click', ".deleteExistingaVid", function () {
var delSweepId = ($(this).attr('data-swe'));
var delModelId = ($(this).attr('data-mod'));
var delVersionId = ($(this).attr('data-ver'));
var delData = new FormData();
delData.append('sweep', delSweepId);
delData.append('model', delModelId);
delData.append('version', delVersionId);
var delrequest = new XMLHttpRequest();
delrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/avideosweepdelete.php');
delrequest.send(delData);
delrequest.onreadystatechange = function(){
if (delrequest.readyState === 4){
if (delrequest.status === 200){
$(".ssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentavidpoints.php?model=" + delModelId + "&version=" + delVersionId;
setTimeout(function(){
$("#existingVidRow").load(refreshpoints);
}, 2000);
}
}
};
});
$(document).on('click', "#bgMusicSubmit", function () {
var bgformData = new FormData();
bgformData.append('audio', document.getElementById('bgMusicLink').value);
bgformData.append('model', document.getElementById('editmodel').value);
bgformData.append('version', document.getElementById('version').value);
var bgrequest = new XMLHttpRequest();
bgrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/bginsert.php');
bgrequest.setRequestHeader("Cache-Control", "no-cache");
bgrequest.send(bgformData);
bgrequest.onreadystatechange = function(){
if (bgrequest.readyState === 4){
if (bgrequest.status === 200){
console.log("Database Updated");
$(".bgssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("bgssMsg").getAttribute("hidden");
document.getElementById("bgssMsg").removeAttribute("hidden");
document.getElementById('bgMusicLink').value = '';
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentbgmusic.php?model=" + editmodel + "&version=" + version;
setTimeout(function(){
$("#existingBgRow").load(refreshpoints);
}, 2000);
}
}
};
});
$(document).on('click', "#mmSubmit", function () {
var mmformData = new FormData();
mmformData.append('mmLink', document.getElementById('mmLink').value);
mmformData.append('mmTitle', document.getElementById('mmTitle').value);
var tsoimg = document.getElementById("360Image").checked;
if (tsoimg == true){
mmformData.append('mmType', "360 IMAGE");
} else {
mmformData.append('mmType', "stmedia");
}
mmformData.append('mmButton', document.getElementById('mmButton').value);
mmformData.append('model', document.getElementById('editmodel').value);
mmformData.append('version', document.getElementById('version').value);
mmformData.append('title', document.getElementById('title').value);
mmformData.append('sweep', window.sweep);
mmformData.append('rotation', JSON.stringify(rotation));
var mmrequest = new XMLHttpRequest();
mmrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/eminsert.php');
mmrequest.setRequestHeader("Cache-Control", "no-cache");
mmrequest.send(mmformData);
mmrequest.onreadystatechange = function(){
if (mmrequest.readyState === 4){
if (mmrequest.status === 200){
console.log("Database Updated");
$(".mmssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("mmssMsg").getAttribute("hidden");
document.getElementById("mmssMsg").removeAttribute("hidden");
document.getElementById('mmTitle').value = '';
document.getElementById('mmButton').value = '';
var refreshpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentmediapoints.php?model=" + editmodel + "&version=" + version;
setTimeout(function(){
$("#existingMediaRow").load(refreshpoints);
}, 2000);
}
}
};
});
$(document).on('click', "#themeSubmit", function () {
var themeformData = new FormData();
themeformData.append('model', document.getElementById('editmodel').value);
themeformData.append('version', document.getElementById('version').value);
themeformData.append('title', document.getElementById('mytitle').value);
themeformData.append('logo', document.getElementById("logo").value);
themeformData.append('embedWhiteList', document.getElementById("embedWhiteList").value);
var vcInput = document.getElementById("voiceControl").checked;
if (vcInput == true){
themeformData.append('voiceControl', "1");
} else {
themeformData.append('voiceControl', "0");
}
var tdInput = document.getElementById("tagsdisable").checked;
if (tdInput == true){
themeformData.append('tagsdisable', "1");
} else {
themeformData.append('tagsdisable', "0");
}
var slInput = document.getElementById("selflimit").checked;
if (slInput == true){
themeformData.append('selflimit', "1");
} else {
themeformData.append('selflimit', "0");
}
themeformData.append('cssb', document.getElementById("cssBackground").value);
themeformData.append('cssf', document.getElementById("cssForeground").value);
themeformData.append('csst', document.getElementById("cssTxt").value);
var themerequest = new XMLHttpRequest();
themerequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/dbupdatelogo.php');
themerequest.setRequestHeader("Cache-Control", "no-cache");
themerequest.send(themeformData);
themerequest.onreadystatechange = function(){
if (themerequest.readyState === 4){
if (themerequest.status === 200){
console.log("Database Updated");
$(".themessMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("themessMsg").getAttribute("hidden");
document.getElementById("themessMsg").removeAttribute("hidden");
}
}
};
});
function closeaccessFrame () {
$($("#accessvideoframe").parent()).empty();
$('#accesspopupframe').addClass('hidden').removeClass('showing');
}
function closeFrame () {
if (typeof gainNode2 !== 'undefined') {
gainNode2.gain.setTargetAtTime(0.001, bgcontext.currentTime, 0.6);
}
if (typeof gainNode3 !== 'undefined') {
gainNode3.gain.setTargetAtTime(0.001, bgcontext.currentTime, 0.6);
}
if ($($("#mediaframe"))) {
document.getElementById("mediaframe").src = "";
}
if ($($("#accessvideoframe"))) {
$($("#accessvideoframe").parent()).empty();
$('#accesspopupframe').addClass('hidden').removeClass('showing');
}
$('#mediaholder').addClass('hidden').removeClass('showing');
$('#popupframe').addClass('hidden').removeClass('showing');
if (typeof gainNode !== 'undefined') {
gainNode.gain.setTargetAtTime(0.3, bgcontext.currentTime, 1);
}
if ($('#popupframe').hasClass('hidden')) {
audio.pause();
}
if (annyang) {
if (os != "Mac OS" && os != "iOS" && os != "Android" && document.getElementById('voiceControl').value == "1"){
annyang.start();
}
}
}
const vidRecordButton = document.querySelector('button#vidrecord');
if(vidRecordButton){
const mediaSource = new MediaSource();
mediaSource.addEventListener('sourceopen', handleSourceOpen, false);
}
let videoRecorder;
let recordedBlobs;
let sourceBuffer;
const errorMsgElement = document.querySelector('span#errorMsg');
const recordedVideo = document.querySelector('video#recorded');
if(vidRecordButton){
vidRecordButton.addEventListener('click', () => {
if (vidRecordButton.innerText === 'RECORD') {
startVidRecording();
} else {
if (vidRecordButton.innerText === 'STOP') {
stopVidRecording();
}
}
});
}
function buildBlob(recordedBlobs) {
var blob = new Blob(recordedBlobs, {type: 'video/webm'});
var blobUrl = URL.createObjectURL(blob);
const vidlist = document.getElementById('vidrecordings');
const li = document.createElement('li');
vidRecordButton.setAttribute('hidden', true);
const vidUpload = document.createElement('BUTTON');
vidUpload.className = "inputListButton";
vidUpload.innerHTML = "UPLOAD";
const vidDeleteButton = document.createElement('BUTTON');
vidDeleteButton.className = "inputListButton";
vidDeleteButton.innerHTML = "DISCARD";
li.appendChild(vidUpload);
li.appendChild(vidDeleteButton);
vidlist.appendChild(li);
vidDeleteButton.addEventListener('click', async () => {
blob = null;
vidtbnavDiv.setAttribute('hidden', true);
vidUpload.setAttribute('hidden', true);
vidDeleteButton.setAttribute('hidden', true);
document.getElementById("getCam").getAttribute('hidden');
document.getElementById("getCam").removeAttribute('hidden');
document.getElementById("getScreen").getAttribute('hidden');
document.getElementById("getScreen").removeAttribute('hidden');
clearTimeout(vidtimerId);
vidtimerId = null;
});
vidUpload.addEventListener('click', async () => {;
vidtbnavDiv.setAttribute('hidden', true);
vidDeleteButton.setAttribute('hidden', true);
vidUpload.innerText = 'UPLOADING';
fetch(`https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/blobhandle.php`, {method:"POST", body:blob})
.then(response => {
if (response.ok)
return response;
console.log("Audio Handled in Memory");
})
.then(response => {
var blobData = new FormData();
blobData.append('dirpath', document.getElementById('directoryName').value);
blobData.append('editmodel', document.getElementById('editmodel').value);
blobData.append('version', document.getElementById('version').value);
blobData.append('blobUrl', blobUrl);
var blobrequest = new XMLHttpRequest();
blobrequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/vidupload.php');
blobrequest.send(blobData);
console.log("Video Uploaded");
blobrequest.onreadystatechange = function(){
if (blobrequest.readyState === 4){
if (blobrequest.status === 200){
vidUpload.setAttribute('hidden', true);
vidRecordButton.getAttribute('hidden');
vidRecordButton.removeAttribute('hidden');
var formData = new FormData();
formData.append('dirpath', document.getElementById('directoryName').value);
formData.append('editmodel', document.getElementById('editmodel').value);
formData.append('version', document.getElementById('version').value);
formData.append('title', document.getElementById('title').value);
formData.append('video_title', document.getElementById('vidtitle').value);
formData.append('subSelect', document.getElementById('subSelect').value);
formData.append('videoSelect', document.getElementById('audioSelect').value);
formData.append('voiceControl', document.getElementById('voiceControl').value);
var checkMute = document.getElementById("muteVideo").checked;
if (checkMute == true){
formData.append('mutevid', "yes");
} else {
formData.append('mutevid', "no");
}
var accessVid = document.getElementById("accessVideo").checked;
if (accessVid == true){
formData.append('accessvid', "yes");
} else {
formData.append('accessvid', "no");
}
formData.append('sweep', window.sweep);
formData.append('rotation', JSON.stringify(rotation));
var checkBox = document.getElementById('requirebutton');
formData.append('button', document.getElementById('vidbuttonValue').value);
formData.append('note', "");
var request = new XMLHttpRequest();
request.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
console.log(percentComplete);
}
}, false);
request.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/viddbupdate.php');
request.setRequestHeader("Cache-Control", "no-cache");
request.send(formData);
request.onreadystatechange = function(){
if (request.readyState === 4){
if (request.status === 200){
console.log("Database Updated");
$(".vidssMsg").load("https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/smessage.php");
document.getElementById("vidssMsg").getAttribute("hidden");
document.getElementById("vidssMsg").removeAttribute("hidden");
document.getElementsByTagName("li").innerHTML = "";
document.getElementById("vidbuttonValue").value = '';
document.getElementById('vidtitle').value = '';
document.getElementById("vrecord").removeAttribute("hidden");
document.getElementById("vhPara").removeAttribute("hidden");
document.getElementById("linkVideo").removeAttribute("hidden");
document.getElementById("gum").setAttribute("hidden", true);
document.getElementById("getCam").setAttribute("hidden", true);
document.getElementById("getScreen").setAttribute("hidden", true);
document.getElementById("vidrecord").setAttribute("hidden", true);
var editmodel = document.getElementById('editmodel').value;
var version = document.getElementById('version').value;
stream.getTracks().forEach(function(track) {
track.stop();
});
var refreshvidpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentvidpoints.php?model=" + editmodel + "&version=" + version;
var refreshavidpoints = "https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/currentavidpoints.php?model=" + editmodel + "&version=" + version;
setTimeout(function(){
$("#existingaVidRow").load(refreshavidpoints);
$("#existingVidRow").load(refreshvidpoints);
}, 2000);
console.log("Links Refreshed");
vidRecordButton. disabled = false;
vidRecordButton.innerText = "RECORD";
setTimeout(() => {
}, 100);
}
}
};
}
}
};
});
});
console.log("Encoding complete");
}
function handleSourceOpen(event) {
sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vp9"');
}
function handleDataAvailable(event) {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
}
}
function startVidRecording() {
vidRecordButton.innerText='STOP';
console.log("recording");
recordedBlobs = [];
let options = {mimeType: 'video/webm; codecs=vp9'};
try {
videoRecorder = new MediaRecorder(window.stream, options);
} catch (e) {
console.error('Exception while creating MediaRecorder:', e);
errorMsgElement.innerHTML = `Exception while creating MediaRecorder: ${JSON.stringify(e)}`;
return;
}
videoRecorder.onstop = (event) => {
vidRecordButton.disabled = true;
vidtbnavDiv.removeAttribute("hidden");
console.log('Recorder stopped: ', event);
buildBlob(recordedBlobs);
};
videoRecorder.ondataavailable = handleDataAvailable;
videoRecorder.start(10); // collect 10ms of data
var vidtimeLeft = 90;
clockelem = document.getElementById('vidcountdown');
vidtimerId = setInterval(countdown, 1000);
clockelem.getAttribute("hidden");
clockelem.removeAttribute("hidden");
function countdown() {
if (vidtimeLeft == -1) {
clearTimeout(vidtimerId);
vidtimerId = null;
vidRecordButton.click();
clockelem.setAttribute("hidden", true);;
} else {
if (videoRecorder.state === 'inactive'){
clearTimeout(vidtimerId);
clockelem.setAttribute("hidden", true);
vidtimerId=null;
} else {
clockelem.innerHTML = vidtimeLeft + ' seconds remaining';
vidtimeLeft--;
}
}
}
console.log('MediaRecorder started', videoRecorder);
}
function stopVidRecording() {
videoRecorder.stop();
}
function handleSuccess(stream) {
vidRecordButton.disabled = false;
window.stream = stream;
const gumVideo = document.querySelector('video#gum');
gumVideo.srcObject = stream;
gumVideo.muted = true;
gumVideo.play();
}
async function init(constraints) {
try {
vidRecordButton.textContext='RECORD';
vidRecordButton.innerText='RECORD';
if (recType === "camera") {
stream = await navigator.mediaDevices.getUserMedia(constraints);
}
if (recType === "screen") {
stream = await navigator.mediaDevices.getDisplayMedia(screenconstraints);
}
handleSuccess(stream);
} catch (e) {
console.error('navigator.getUserMedia error:', e);
errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`;
}
}
if (document.querySelector('#getCam')) {
document.querySelector('#getCam').addEventListener('click', async () => {
document.getElementById('getCam').setAttribute ("hidden", true);
document.getElementById('getScreen').setAttribute ("hidden", true);
recType = "camera";
vidRecordButton.removeAttribute("hidden");
constraints = {
audio: {
echoCancellation: true, noiseSurpression:true
},
video: {
width: 1280, height: 720
}
};
await init(constraints);
});
document.querySelector('#getScreen').addEventListener('click', async () => {
document.getElementById('getCam').setAttribute ("hidden", true);
document.getElementById('getScreen').setAttribute ("hidden", true);
recType = "screen";
vidRecordButton.removeAttribute("hidden");
screenconstraints = {
cursor: {
exact: "none"
},
video: true,
audio: { echoCancellation: true, noiseSurpression:true
}
};
await init(screenconstraints);
});
}
$('.fullscreenreplace').on('click', function(e) {
var doc = window.document;
var docEl = doc.documentElement;
var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
var cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
if (!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
requestFullScreen.call(docEl);
} else {
cancelFullScreen.call(doc);
}
});
$('.fullscreenreplacebottom').on('click', function(e) {
var doc = window.document;
var docEl = doc.documentElement;
var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
var cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
if (!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
requestFullScreen.call(docEl);
} else {
cancelFullScreen.call(doc);
}
});
$('i.fas.fa-envelope').click(function() {
var title = document.title;
location.href = 'mailto:?subject=' + encodeURIComponent(title) +
'&body=' + encodeURIComponent(title + '\n\n') + encodeURIComponent(window.location.href) + '%26utm_source%3D3';
});
$('i.fab.fa-pinterest-p').click(function() {
var title = document.title;
var vars = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
vars[key] = value;
});
var thumb = 'https://my.matterport.com/api/v1/player/models/' + vars.m + '/thumb';
window.open('https://www.pinterest.com/pin/create/link/?url=' +
encodeURIComponent(window.location.href) + '%26utm_source%3D5' +
'&description=' + encodeURIComponent(title) +
'&media=' + encodeURIComponent(thumb), 'sharer', 'toolbar=0,status=0,width=640,height=480');
});
$('i.fab.fa-linkedin-in').click(function() {
window.open('https://www.linkedin.com/sharing/share-offsite/?url=' +
encodeURIComponent(window.location.href) + '%26utm_source%3D6', 'sharer', 'toolbar=0,status=0,width=640,height=480');
});
$('i.fab.fa-twitter').click(function() {
var title = document.title;
window.open('https://twitter.com/intent/tweet?text=Explore%20' +
encodeURIComponent(title) + ' at ' + encodeURIComponent(window.location.href) + '%26utm_source%3D2', 'sharer', 'toolbar=0,status=0,width=640,height=480');
});
$('i.fab.fa-facebook-f').click(function() {
window.open('https://www.facebook.com/sharer.php?u=' + encodeURIComponent(window.location.href) + '%26utm_source%3D1', 'sharer', 'toolbar=0,status=0,width=640,height=480');
});
$('i.fas.fa-link').click(function() {
var el = document.createElement('textarea');
el.value = window.location.href;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
$('#share-slider div').attr('data-balloon', 'Copied!');
setTimeout(function() {
$('#share-slider div').attr('data-balloon', 'Copy URL');
}, 3000);
});
$('#vrecord').click(function() {
$('#getCam').removeAttr("hidden");
$('#getScreen').removeAttr("hidden");
document.getElementById("linkVideo").setAttribute("hidden", true);
document.getElementById("vrecord").setAttribute("hidden", true);
document.getElementById("vhPara").setAttribute("hidden", true);
$('#gum').removeAttr("hidden");
});
$('.sharereplace').click(function() {
if ($('#share-slider').hasClass('isOpen')) {
$('#share-slider').removeClass('isOpen');
$('#share-button').removeClass('hidetooltip');
} else {
$('#share-slider').addClass('isOpen');
$('#share-button').addClass('hidetooltip');
}
});
$('.sharereplacebottom').click(function() {
if ($('#share-slider').hasClass('isOpen')) {
$('#share-slider').removeClass('isOpen');
$('#share-button').removeClass('hidetooltip');
} else {
$('#share-slider').addClass('isOpen');
$('#share-button').addClass('hidetooltip');
}
});
$('#menutitlecurrent').click(function() {
});
$('#bgControlPage').click(function() {
$(".controlWrapper").removeAttr("hidden");
document.getElementById("audiocontrols").setAttribute("hidden", true);
document.getElementById("mmControls").setAttribute("hidden", true);
document.getElementById("videocontrols").setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("mmssMsg").setAttribute("hidden", true);
document.getElementById("vidssMsg").setAttribute("hidden", true);
$("#bgMusic").removeAttr("hidden");
});
$('#currentmediapages').click(function() {
$("#tbvflex").removeAttr("hidden");
});
$('#audioControlPage').click(function() {
$(".controlWrapper").removeAttr("hidden");
document.getElementById("bgMusic").setAttribute("hidden", true);
document.getElementById("mmControls").setAttribute("hidden", true);
document.getElementById("videocontrols").setAttribute("hidden", true);
document.getElementById("mytheme").setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("mmssMsg").setAttribute("hidden", true);
document.getElementById("vidssMsg").setAttribute("hidden", true);
$("#audiocontrols").removeAttr("hidden");
activeControl = $("#audiocontrols");
});
$('#mediaControlPage').click(function() {
$(".controlWrapper").removeAttr("hidden");
document.getElementById("bgMusic").setAttribute("hidden", true);
document.getElementById("audiocontrols").setAttribute("hidden", true);
document.getElementById("videocontrols").setAttribute("hidden", true);
document.getElementById("mytheme").setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("mmssMsg").setAttribute("hidden", true);
document.getElementById("vidssMsg").setAttribute("hidden", true);
$("#mmControls").removeAttr("hidden")
activeControl = $("#mmControls");
});
$('#themeControlPage').click(function() {
$(".controlWrapper").removeAttr("hidden");
document.getElementById("bgMusic").setAttribute("hidden", true);
document.getElementById("audiocontrols").setAttribute("hidden", true);
document.getElementById("videocontrols").setAttribute("hidden", true);
document.getElementById("mmControls").setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("mmssMsg").setAttribute("hidden", true);
document.getElementById("vidssMsg").setAttribute("hidden", true);
$("#mytheme").removeAttr("hidden")
activeControl = $("#mytheme");
});
$('#videoControlPage').click(function() {
$(".controlWrapper").removeAttr("hidden");
document.getElementById("bgMusic").setAttribute("hidden", true);
document.getElementById("audiocontrols").setAttribute("hidden", true);
document.getElementById("mytheme").setAttribute("hidden", true);
document.getElementById("mmControls").setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("mmssMsg").setAttribute("hidden", true);
document.getElementById("vidssMsg").setAttribute("hidden", true);
$("#videocontrols").removeAttr("hidden")
activeControl = $("#videocontrols");
});
$('#controlsClose').click(function() {
document.getElementById("bgMusic").setAttribute("hidden", true);
document.getElementById("audiocontrols").setAttribute("hidden", true);
document.getElementById("mmControls").setAttribute("hidden", true);
document.getElementById("mytheme").setAttribute("hidden", true);
document.getElementById("videocontrols").setAttribute("hidden", true);
document.getElementById("controlWrapper").setAttribute("hidden", true);
document.getElementById("ssMsg").setAttribute("hidden", true);
document.getElementById("mmssMsg").setAttribute("hidden", true);
document.getElementById("vidssMsg").setAttribute("hidden", true);
});
$('#existingClose').click(function() {
document.getElementById("tbvflex").setAttribute("hidden", true);
});
$(".accessonoffswitch").on('change', function() {
if ($('.accessonoffswitch-checkbox').is(':checked')) {
noSign = false;
document.getElementById("accesspopupframe").removeAttribute("hidden");
} else {
noSign = "true";
document.getElementById("accesspopupframe").setAttribute("hidden", true);
}
})
window.bgSeconds = 0;
setInterval(setTime, 1000);
function setTime() {
++window.bgSeconds;
}
$(".onoffswitch").on('change', function() {
if ($('.onoffswitch-checkbox').is(':checked')) {
audioBG.play();
console.log("BG Playing");
} else {
if (typeof ga !== 'undefined') {
ga('send', 'event', '' + "BG MUSIC", "STOP", window.bgSeconds);
}
window.totalSeconds = 0;
setInterval(setTime, 1000);
function setTime() {
++window.totalSeconds;
}
audioBG.pause();
console.log("BG Paused");
}
})
window.onload = function exit( status ) {
if (typeof limitSelf !== 'undefined') {
if (user === 'null') {
if ( window.location === window.parent.location && limitSelf === "1") {
alert("THIS VIRTUAL TOUR CANNOT BE VIEWED DIRECTLY");
var i;
if (typeof status === 'string') {
alert(status);
}
window.addEventListener('error', function (e) {e.preventDefault();e.stopPropagation();}, false);
var handlers = [
'copy', 'cut', 'paste',
'beforeunload', 'blur', 'change', 'click', 'contextmenu', 'dblclick', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', 'scroll',
'DOMNodeInserted', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument', 'DOMNodeInsertedIntoDocument', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMElementNameChanged', 'DOMAttributeNameChanged', 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'online', 'offline', 'textInput',
'abort', 'close', 'dragdrop', 'load', 'paint', 'reset', 'select', 'submit', 'unload'
];
function stopPropagation (e) {
e.stopPropagation();
// e.preventDefault(); // Stop for the form controls, etc., too?
}
for (i=0; i < handlers.length; i++) {
window.addEventListener(handlers[i], function (e) {stopPropagation(e);}, true);
}
if (window.stop) {
window.stop();
}
throw '';
}
}
}
}
$('#videoframe').hover(function toggleControls() {
if (this.hasAttribute("controls")) {
this.removeAttribute("controls")
} else {
this.setAttribute("controls", "controls")
}
})
$('#accessvideoframe').hover(function toggleControls() {
if (this.hasAttribute("controls")) {
this.removeAttribute("controls")
} else {
this.setAttribute("controls", "controls")
}
})
$('#accesspopupframe')
.draggable()
.resizable();
$('#popupframe')
.draggable()
.resizable();
$( ".circmenu-toggle" ).click(function() {
$(".circmenu-toggle").toggleClass('open');
$(".circmenu-round").toggleClass('open');
$(".circmenu-line").toggleClass('open');
});
$(".gtp").on('change', function() {
var toursweep = ($(this).attr('data-sweep'));
var model = ($(this).attr('data-model'));
var version = ($(this).attr('data-version'));
var rotation = ($(this).attr('data-rotation'));
var position = ($(this).val());
var formData = new FormData();
formData.append('sweep_id', toursweep);
formData.append('model', model);
formData.append('version', version);
formData.append('position', position);
formData.append('rotation', rotation);
var gtprequest = new XMLHttpRequest();
gtprequest.open('POST', 'https://boost3d.net/wp-content/themes/x-child-theme/mpaudio/gtupdatedb.php');
gtprequest.setRequestHeader("Cache-Control", "no-cache");
gtprequest.send(formData);
gtprequest.onreadystatechange = function(){
if (gtprequest.readyState === 4){
if (gtprequest.status === 200){
console.log("Database Updated");
}
}
}
});